Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
9b22996
VertexAnalysis on testproc updated
Feb 26, 2019
77c77f8
Merge branch 'master' of https://github.com/lcfiplus/LCFIPlus
Mar 19, 2020
3387685
DNNProvider2 (version 1)
Jul 27, 2023
caad803
DNNProvider2 modified
Sep 29, 2023
329a268
Merge branch 'master' of https://github.com/suehara/LCFIPlus
Sep 29, 2023
f301eca
add vertexfinderdnn.h
Oct 18, 2023
a4ae6de
add vertexfinderdnn.cc/h
Oct 24, 2023
9eb2a30
Add dEdx
Mar 6, 2024
788bdec
new version
Apr 18, 2024
8e77718
Merge /home/ilc/rtagami/LCFIPlus
Apr 18, 2024
e8476b5
Improve PFA-track assignment and track-MC assignment
Apr 19, 2024
f0f9627
DNNProvider2
Jul 31, 2024
0b33110
add MLInputGenerator and TorchInference (WIP)
tomohikosan Aug 21, 2024
9da8573
implemented MLInputGenerator template functions for calculating ML in…
tomohikosan Aug 26, 2024
e710595
Changed functors types to use std::variant
tomohikosan Aug 27, 2024
a9162ab
implemented MLMakeNtuple as a new algorithm for ROOT format output of…
tomohikosan Sep 2, 2024
892cb66
File renamed
tomohikosan Sep 2, 2024
e7fbd75
Added ONNX/Weaver interface from FCCAnalyses
tomohikosan Oct 1, 2024
b850fc8
MLInferenceWeaver added
tomohikosan Oct 2, 2024
6c4c9ff
Implement MLInferenceWeaver
tomohikosan Oct 2, 2024
6f10600
fix prefix
tomohikosan Oct 8, 2024
b7278bb
merged variable changes from ongoing strange tagging study
tomohikosan Oct 8, 2024
2cf41b4
variable names are automatically read from JSON
tomohikosan Oct 14, 2024
ec3dba3
clean up code
tomohikosan Oct 14, 2024
c780a83
WeaverReader implemented
Oct 14, 2024
ebb58d3
suppress warning
tomohikosan Oct 14, 2024
f828463
Fix variable computation for weaver input
tomohikosan Oct 14, 2024
d06c8a2
Changes to make input variables match the previously trained weights
tomohikosan Oct 15, 2024
c38bceb
Use new PID
tomohikosan Oct 16, 2024
08d2926
CMakeLists modified
Oct 16, 2024
387716d
Bugfix on weaver output
Oct 17, 2024
b6a6ca4
match current training
tomohikosan Oct 17, 2024
9376c9e
implement sorted tracks and neutrals from jet
tomohikosan Oct 19, 2024
093ac55
dump weaver input
tomohikosan Oct 19, 2024
4a90523
fix neu_pfcand_mask
tomohikosan Jan 21, 2025
344e4a7
CMakeLists modified
Oct 16, 2024
347768a
Bugfix on weaver output
Oct 17, 2024
0c14e07
match current training
tomohikosan Oct 17, 2024
54f281a
implement sorted tracks and neutrals from jet
tomohikosan Oct 19, 2024
3dddeb3
dump weaver input
tomohikosan Oct 19, 2024
1c3f06a
fix neu_pfcand_mask
tomohikosan Jan 21, 2025
63a7e4b
Merge branch 'onnx'
tomohikosan Jan 21, 2025
0255ebe
Label on MLMakeNtuple, modification on FlavtagReader
Jan 21, 2025
703ac5c
Merge branch 'onnx' of 202.13.202.54:~/LCFIPlus.ml
Jan 21, 2025
ce5ac05
merge error fixed
Jan 21, 2025
af1a9cd
Remove data dump option
Jan 22, 2025
93bfb94
True jet flavor assignment implemented
Jan 30, 2025
6f85374
bugfix on MC flavor assignment
Jan 31, 2025
9296e21
Change of MLMakeNtuple for event categorization
Mar 5, 2025
f911b72
add event based classification with jets
tomohikosan Jun 12, 2025
bae2ea9
Add event-based input
Jun 17, 2025
ec3a38e
SGV new training
Jul 18, 2025
e4384a5
Compatibility for key4hep onnxruntime
Nov 25, 2025
45e5994
Add optional ONNX support with backward compatibility
Dec 3, 2025
8575a64
Implement backward compatibility for MC-PFO assignment
Dec 5, 2025
38d57b5
Merge upstream v00-11 with development branch
Dec 6, 2025
0458570
Reorder ReleaseNotes: place development additions first
Dec 6, 2025
de979ff
Fix non-trivial copy-assignment warnings in DNNProvider2 and vertexfi…
Dec 8, 2025
700465b
Remove unused variable in DNNProvider2
Dec 8, 2025
7a26be3
Remove onnx weight files
Dec 10, 2025
29b22d7
Fix hardcoded magnetic field values
Dec 25, 2025
aec0e52
Validate ambiguous settings during initialization
Dec 25, 2025
d425970
Improve sorting implementation efficiency
Dec 25, 2025
02e2aa6
Clarify LCRELATION parameter types in descriptions
Dec 25, 2025
29aba2d
Add support for LCIO jet collections with ParticleID persistence
Dec 31, 2025
b54281b
Add UpdateJetCollectionName option to MLInferenceWeaver
Jan 15, 2026
5bb6831
Add example steering files for ML workflows
Jan 16, 2026
528017c
Convert MLInputGenerator from namespace to static class
Jan 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 77 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
########################################################
# cmake file for building LCFIPlus package
# @author Tomohiko Tanabe (ICEPP, The University of Tokyo)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
CMAKE_MINIMUM_REQUIRED(VERSION 3.5 FATAL_ERROR)
########################################################


Expand All @@ -14,28 +14,55 @@ SET( ${PROJECT_NAME}_VERSION_MAJOR 0 )
SET( ${PROJECT_NAME}_VERSION_MINOR 11 )
SET( ${PROJECT_NAME}_VERSION_PATCH 0 )



### DEPENDENCIES ############################################################

FIND_PACKAGE( ILCUTIL COMPONENTS ILCSOFT_CMAKE_MODULES REQUIRED )

# load default settings from ILCSOFT_CMAKE_MODULES
INCLUDE( ilcsoft_default_settings )

# Set up C++ Standard
# ``-DCMAKE_CXX_STANDARD=<standard>`` when invoking CMake
set(CMAKE_CXX_STANDARD 17 CACHE STRING "")

if(NOT CMAKE_CXX_STANDARD MATCHES "17|20")
message(FATAL_ERROR "Unsupported C++ standard: ${CMAKE_CXX_STANDARD}")
endif()

# Prevent CMake falls back to the latest standard the compiler does support
set(CMAKE_CXX_STANDARD_REQUIRED ON)


# ONNX support option
OPTION( ENABLE_ONNX "Enable ONNX Runtime support for ML inference" OFF )

FIND_PACKAGE( Marlin 1.0 REQUIRED )
FIND_PACKAGE( MarlinUtil REQUIRED )
#FIND_PACKAGE( ROOT REQUIRED COMPONENTS Minuit2 TMVA TreePlayer )
FIND_PACKAGE( ROOT REQUIRED COMPONENTS Minuit2 TMVA TreePlayer Gui Geom Eve Minuit XMLIO RGL Ged EG MLP )
#FIND_PACKAGE( Torch REQUIRED )
FIND_PACKAGE( LCFIVertex REQUIRED )

# Optional ONNX dependencies
IF( ENABLE_ONNX )
MESSAGE( STATUS "ONNX support enabled" )
FIND_PACKAGE( onnxruntime 1.17.1 REQUIRED)
FIND_PACKAGE( nlohmann_json REQUIRED)
ADD_DEFINITIONS( -DENABLE_ONNX )
ELSE()
MESSAGE( STATUS "ONNX support disabled" )
ENDIF()

#set(JSON_BuildTests OFF CACHE INTERNAL "")
#add_subdirectory(nlohmann_json)

INCLUDE_DIRECTORIES( SYSTEM ${Marlin_INCLUDE_DIRS} )
ADD_DEFINITIONS ( ${Marlin_DEFINITIONS} )
INCLUDE_DIRECTORIES( SYSTEM ${MarlinUtil_INCLUDE_DIRS} )
ADD_DEFINITIONS ( ${MarlinUtil_DEFINITIONS} )
INCLUDE_DIRECTORIES( SYSTEM ${ROOT_INCLUDE_DIRS} )
INCLUDE_DIRECTORIES( SYSTEM ${LCFIVertex_INCLUDE_DIRS} )
#INCLUDE_DIRECTORIES( SYSTEM ${TORCH_INCLUDE_DIRS} )
# left here for backwards compatibility
INCLUDE_DIRECTORIES( SYSTEM ${LCFIVertex_ROOT}/vertex_lcfi ${LCFIVertex_ROOT}/boost )

Expand All @@ -58,8 +85,20 @@ SET( ROOT_DICT_INPUT_HEADERS
${PROJECT_SOURCE_DIR}/include/TrackNtuple.h
${PROJECT_SOURCE_DIR}/include/VertexMassRecovery.h
${PROJECT_SOURCE_DIR}/include/VertexNtuple.h
${PROJECT_SOURCE_DIR}/include/LinkDef.h
${PROJECT_SOURCE_DIR}/include/vertexfinderdnn.h
${PROJECT_SOURCE_DIR}/include/DNNProvider2.h
)

# Add ONNX-related headers if enabled
IF( ENABLE_ONNX )
LIST( APPEND ROOT_DICT_INPUT_HEADERS
${PROJECT_SOURCE_DIR}/include/MLInputGenerator.h
${PROJECT_SOURCE_DIR}/include/MLMakeNtuple.h
${PROJECT_SOURCE_DIR}/include/MLInferenceWeaver.h
)
ENDIF()

LIST( APPEND ROOT_DICT_INPUT_HEADERS ${PROJECT_SOURCE_DIR}/include/LinkDef.h )
SET( ROOT_DICT_INCLUDE_DIRS ${Marlin_INCLUDE_DIRS} ${LCIO_INCLUDE_DIRS})
GEN_ROOT_DICT_SOURCES( dict.cc )
INSTALL(FILES ${ROOT_DICT_OUTPUT_DIR}/dict_rdict.pcm DESTINATION lib)
Expand All @@ -79,21 +118,53 @@ ENDIF()

# include directories
INCLUDE_DIRECTORIES( "./include" )
#LINK_DIRECTORIES( "./lib" )

# definitions to pass to the compiler
ADD_DEFINITIONS( "-Wno-effc++ -Wno-shadow" )
ADD_DEFINITIONS( "-Wno-long-long" )
ADD_DEFINITIONS( "-Wno-strict-aliasing" ) # avoid warnings in dict.cc

# shut up warnings in boost
#ADD_DEFINITIONS( "-Wno-unused-local-typedefs" )

# add library
SET( libname ${PROJECT_NAME} )
AUX_SOURCE_DIRECTORY( ./src library_sources )
LIST( REMOVE_ITEM library_sources ${binary_sources} )

# Remove ONNX-related source files if ONNX is disabled
IF( NOT ENABLE_ONNX )
LIST( REMOVE_ITEM library_sources
./src/ONNXRuntime.cc
./src/MLInferenceWeaver.cc
./src/MLInputGenerator.cc
./src/MLMakeNtuple.cc
./src/WeaverInterface.cc
)
ENDIF()

ADD_SHARED_LIBRARY( ${libname} ${library_sources} )
INSTALL_SHARED_LIBRARY( ${libname} DESTINATION lib )
TARGET_LINK_LIBRARIES( ${libname} ${Marlin_LIBRARIES} ${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES} ${MarlinUtil_LIBRARIES} ${LCFIVertex_LIBRARIES} )

# Link libraries
SET( LINK_LIBS
${Marlin_LIBRARIES}
${ROOT_LIBRARIES}
${ROOT_COMPONENT_LIBRARIES}
${MarlinUtil_LIBRARIES}
${LCFIVertex_LIBRARIES}
)

# Add ONNX libraries if enabled
IF( ENABLE_ONNX )
LIST( APPEND LINK_LIBS
nlohmann_json::nlohmann_json
onnxruntime::onnxruntime
)
ENDIF()

TARGET_LINK_LIBRARIES( ${libname} ${LINK_LIBS} )

### EXECUTABLE MODE ########################################################

Expand All @@ -108,7 +179,7 @@ LIST(APPEND binary_sources ${ROOT_DICT_OUTPUT_SOURCES} )
ADD_EXECUTABLE( lcfiplus_bin EXCLUDE_FROM_ALL ${binary_sources} )

SET_TARGET_PROPERTIES( lcfiplus_bin PROPERTIES COMPILE_FLAGS "-DBUILD_EVE" OUTPUT_NAME lcfiplus )
TARGET_LINK_LIBRARIES( lcfiplus_bin ${libname} ${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES} )
TARGET_LINK_LIBRARIES( lcfiplus_bin ${libname} torch ${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES} )

# display some variables and write them to cache
DISPLAY_STD_VARIABLES()
Expand Down
37 changes: 37 additions & 0 deletions doc/ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,40 @@
# Development branch additions (merged 2025-12-06)

* 2025-12-05 SUEHARA Taikan
- Implement backward compatibility for MC-PFO assignment
- Add default parameter to InitMCPPFOCollections for backward compatibility
- Use simple method (first element) when Track-MC relation is not available
- Use improved method (weight-based, multi-track support) when available
- Maintain full backward compatibility with upstream v00-11

* 2025-12-03 SUEHARA Taikan
- Add optional ONNX support with backward compatibility
- Enable ONNX Runtime support as optional feature (ENABLE_ONNX CMake option, default: OFF)
- Make onnxruntime and nlohmann_json optional dependencies
- Conditionally compile ONNX-related source files
- Full backward compatibility when ENABLE_ONNX=OFF

* SUEHARA Taikan and collaborators (2024-2025)
- Machine Learning and ONNX integration
- Add MLInputGenerator, MLMakeNtuple, MLInferenceWeaver for ML-based flavor tagging
- Add WeaverInterface and ONNXRuntime for ONNX model inference
- Add DNNProvider2 for DNN-based vertex finding
- Implement event-based classification with jets
- Add dEdx support for particle identification

- Flavor tagging improvements
- Improve PFA-track assignment and track-MC assignment
- Implement true jet flavor assignment from MC
- Add MC-to-jet assignment algorithm (AssignJetsToMC)
- Bugfixes on MC flavor assignment
- Add sorted track and neutral accessors (getAllTracksSorted, getNeutralsSorted)

- Code quality and compatibility
- Update C++ standard to C++17 with CMake 3.5+ requirement
- Compatibility fixes for key4hep environment and onnxruntime
- Various bugfixes in weaver output and neutral PF candidate masking
- Add event-based input support

Comment on lines +1 to +37
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Development branch additions (merged 2025-12-06)
* 2025-12-05 SUEHARA Taikan
- Implement backward compatibility for MC-PFO assignment
- Add default parameter to InitMCPPFOCollections for backward compatibility
- Use simple method (first element) when Track-MC relation is not available
- Use improved method (weight-based, multi-track support) when available
- Maintain full backward compatibility with upstream v00-11
* 2025-12-03 SUEHARA Taikan
- Add optional ONNX support with backward compatibility
- Enable ONNX Runtime support as optional feature (ENABLE_ONNX CMake option, default: OFF)
- Make onnxruntime and nlohmann_json optional dependencies
- Conditionally compile ONNX-related source files
- Full backward compatibility when ENABLE_ONNX=OFF
* SUEHARA Taikan and collaborators (2024-2025)
- Machine Learning and ONNX integration
- Add MLInputGenerator, MLMakeNtuple, MLInferenceWeaver for ML-based flavor tagging
- Add WeaverInterface and ONNXRuntime for ONNX model inference
- Add DNNProvider2 for DNN-based vertex finding
- Implement event-based classification with jets
- Add dEdx support for particle identification
- Flavor tagging improvements
- Improve PFA-track assignment and track-MC assignment
- Implement true jet flavor assignment from MC
- Add MC-to-jet assignment algorithm (AssignJetsToMC)
- Bugfixes on MC flavor assignment
- Add sorted track and neutral accessors (getAllTracksSorted, getNeutralsSorted)
- Code quality and compatibility
- Update C++ standard to C++17 with CMake 3.5+ requirement
- Compatibility fixes for key4hep environment and onnxruntime
- Various bugfixes in weaver output and neutral PF candidate masking
- Add event-based input support

These will be automatically added by our tagging script if you put them between the BEGINRELEASENOTES and ENDRELEASENOTES in the PR as you have already done.

# v00-11

* 2025-02-24 Thomas Madlener ([PR#73](https://github.com/LCFIPlus/LCFIPlus/pull/73))
Expand Down
81 changes: 81 additions & 0 deletions examples/steering/ml_inference_test.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<marlin>

<constants>
<!-- ***** Global constant for reconstruction ***** -->
<!-- The k4geo directory where to look for the ILD model -->
<constant name="k4geo_DIR" value="/cvmfs/sw.hsf.org/key4hep/releases/2025-05-29/x86_64-almalinux9-gcc14.2.0-opt/k4geo/00-22-ubhvqv/share/k4geo" />
<!-- ILD detector model -->
<constant name="DetectorModel" value="ILD_o1_v05" />
<!-- The full compact file name -->
<constant name="CompactFile" value="${k4geo_DIR}/ILD/compact/${DetectorModel}/${DetectorModel}.xml" />
</constants>

<execute>
<processor name="InitDD4hep"/>
<processor name="MLInferenceWeaver"/>
<processor name="LCIOOutput"/>
</execute>



<global>
<parameter name="LCIOInputFiles">
/group/ilc/users/rtagami/correction_dEdx/bb/output/n000.d_dstm_14986_0.slcio
</parameter>
<parameter name="MaxRecordNumber" value="10"/>
<parameter name="SkipNEvents" value="0" />
<parameter name="SupressCheck" value="false" />
<parameter name="Verbosity" options="DEBUG0-4,MESSAGE0-4,WARNING0-4,ERROR0-4,SILENT">MESSAGE0</parameter>
</global>

<processor name="InitDD4hep" type="InitializeDD4hep">
<!--InitializeDD4hep reads a compact xml file and initializes the DD4hep::LCDD object-->
<!--Name of the DD4hep compact xml file to load-->
<parameter name="DD4hepXMLFile" type="string"> ${CompactFile} </parameter>
</processor>

<processor name="MLInferenceWeaver" type="LcfiplusProcessor">

<!-- run ML inference -->
<parameter name="Algorithms" type="stringVec"> MLInferenceWeaver </parameter>
<parameter name="ReadSubdetectorEnergies" type="int" value="1"/> <!-- true for ILD -->
<parameter name="UpdateVertexRPDaughters" type="int" value="0"/> <!-- false for non-updative PandoraPFOs -->
<parameter name="TrackHitOrdering" type="int" value="1"/> <!-- Track hit ordering: 0=ILD-LOI,SID-DBD, 1=ILD-DBD -->
<parameter name="PrintEventNumber" type="int" value="1"/> <!-- 0 for not printing event number, n for printing every n events -->

<parameter name="MagneticField" type="double" value="3.5"/>

<!-- specify input collection names -->
<parameter name="PFOCollection" type="string" value="PandoraPFOs" />
<parameter name="PrimaryVertexCollectionName" type="string" value="PrimaryVertex" />

<!-- ML Inference Weaver parameters -->
<parameter name="MLInferenceWeaver.JetCollectionName" type="string" value="RefinedJets" />
<parameter name="MLInferenceWeaver.UpdateJetCollectionName" type="string" value="RefinedJets2" />
<parameter name="MLInferenceWeaver.JsonFileName" type="string" value="../../onnx/ilc_nnqq_strange_cpidprob_mcpdg/preprocess.json" />
<parameter name="MLInferenceWeaver.OnnxFileName" type="string" value="../../onnx/ilc_nnqq_strange_cpidprob_mcpdg/ilc_nnqq_strange_cpidprob_mcpdg.onnx" />
<parameter name="MLInferenceWeaver.OutputParameterName" type="string" value="weaver" />

</processor>

<processor name="LCIOOutput" type="LCIOOutputProcessor">
<!--Writes the current event to the specified LCIO outputfile-->
<!--drops the named collections from the event-->
<parameter name="DropCollectionNames" type="StringVec"> </parameter>
<!--drops all collections of the given type from the event-->
<parameter name="DropCollectionTypes" type="StringVec"> </parameter>
<!-- write complete objects in subset collections to the file (i.e. ignore subset flag)-->
<parameter name="FullSubsetCollections" type="StringVec"> </parameter>
<!--force keep of the named collections - overrules DropCollectionTypes (and DropCollectionNames)-->
<parameter name="KeepCollectionNames" type="StringVec"> </parameter>
<!-- name of output file -->
<parameter name="LCIOOutputFile" type="string"> ml_inference_test_output.slcio </parameter>
<!--write mode for output file: WRITE_APPEND or WRITE_NEW-->
<parameter name="LCIOWriteMode" type="string"> WRITE_NEW </parameter>
<!--Set it to true to remove intermediate collections and keep only final products-->
<parameter name="SplitFilenameByEvent" type="bool"> false </parameter>
<!--will split output file if size in kB exceeds given value - doesn't work with APPEND and NEW-->
<parameter name="SplitFilenameSizekB" type="int"> 1996488704 </parameter>
</processor>

</marlin>
64 changes: 64 additions & 0 deletions examples/steering/ml_training_data_collection.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<marlin>

<constants>
<!-- ***** Global constant for reconstruction ***** -->
<!-- The lcgeo directory where to look for the ILD model -->
<constant name="lcgeo_DIR" value="/cvmfs/ilc.desy.de/sw/x86_64_gcc103_centos7/v02-03-03/lcgeo/v00-20-00" />
<!-- ILD detector model -->
<constant name="DetectorModel" value="ILD_o1_v05" />
<!-- The full compact file name -->
<constant name="CompactFile" value="${lcgeo_DIR}/ILD/compact/${DetectorModel}/${DetectorModel}.xml" />
</constants>

<execute>
<processor name="InitDD4hep"/>
<processor name="MLMakeNtuple"/>
</execute>



<global>
<parameter name="LCIOInputFiles">
test_nnbb.slcio
</parameter>
<parameter name="MaxRecordNumber" value="100"/>
<parameter name="SkipNEvents" value="0" />
<parameter name="SupressCheck" value="false" />
<parameter name="Verbosity" options="DEBUG0-4,MESSAGE0-4,WARNING0-4,ERROR0-4,SILENT">MESSAGE0</parameter>
</global>

<processor name="InitDD4hep" type="InitializeDD4hep">
<!--InitializeDD4hep reads a compact xml file and initializes the DD4hep::LCDD object-->
<!--Name of the DD4hep compact xml file to load-->
<parameter name="DD4hepXMLFile" type="string"> ${CompactFile} </parameter>
</processor>

<processor name="MLMakeNtuple" type="LcfiplusProcessor">

<!-- run primary and secondary vertex finders -->
<parameter name="Algorithms" type="stringVec"> MLMakeNtuple </parameter>
<parameter name="ReadSubdetectorEnergies" type="int" value="1"/> <!-- true for ILD -->
<parameter name="UpdateVertexRPDaughters" type="int" value="0"/> <!-- false for non-updative PandoraPFOs -->
<parameter name="TrackHitOrdering" type="int" value="1"/> <!-- Track hit ordering: 0=ILD-LOI,SID-DBD, 1=ILD-DBD -->
<parameter name="PrintEventNumber" type="int" value="1000"/> <!-- 0 for not printing event number, n for printing every n events -->

<parameter name="MagneticField" type="double" value="3.5"/>
<parameter name="PIDAlgorithmName" type="string" value="TMVA_BDT_MC_16bins_singleP" />

<parameter name="UseMCP" type="int" value="1" />
<parameter name="MCPCollection" type="string" value="MCParticlesSkimmed" />
<parameter name="MCPFORelation" type="string" value="RecoMCTruthLink" />

<!-- specify input collection names -->
<parameter name="PFOCollection" type="string" value="PandoraPFOs" />
<parameter name="PrimaryVertexCollectionName" type="string" value="PrimaryVertex" />

<parameter name="MLMakeNtuple.JetCollectionName" type="string" value="RefinedJets" />
<parameter name="MLMakeNtuple.OutputRootFileName" type="string" value="test_nnbb_mlmakentuple.root" />
<parameter name="MLMakeNtuple.TTreeName" type="string" value="ntp" />
<parameter name="MLMakeNtuple.Label" type="int" value="0" />


</processor>

</marlin>
Loading