@@ -59,7 +59,7 @@ struct BjetTaggingGnn {
5959
6060 Configurable<float > trackNppCrit{" trackNppCrit" , 0.95 , " track not physical primary ratio" };
6161
62- // track level configurables
62+ // sv level configurables
6363 Configurable<float > svPtMin{" svPtMin" , 0.5 , " minimum SV pT" };
6464
6565 // jet level configurables
@@ -70,9 +70,15 @@ struct BjetTaggingGnn {
7070
7171 Configurable<std::vector<double >> jetRadii{" jetRadii" , std::vector<double >{0.4 }, " jet resolution parameters" };
7272
73+ Configurable<double > dbMin{" dbMin" , -10 ., " minimum GNN Db" };
74+ Configurable<double > dbMax{" dbMax" , 20 ., " maximum GNN Db" };
75+ Configurable<int > dbNbins{" dbNbins" , 3000 , " number of bins in axisDbFine" };
76+
7377 Configurable<bool > doDataDriven{" doDataDriven" , false , " Flag whether to use fill THnSpase for data driven methods" };
7478 Configurable<bool > callSumw2{" callSumw2" , false , " Flag whether to call THnSparse::Sumw2() for error calculation" };
7579
80+ Configurable<int > trainingDatasetRatioParam{" trainingDatasetRatioParam" , 0 , " Parameter for splitting training/evaluation datasets by collisionId" };
81+
7682 std::vector<int > eventSelectionBits;
7783
7884 std::vector<double > jetRadiiValues;
@@ -83,19 +89,19 @@ struct BjetTaggingGnn {
8389
8490 eventSelectionBits = jetderiveddatautilities::initialiseEventSelectionBits (static_cast <std::string>(eventSelections));
8591
86- registry.add (" h_vertexZ" , " Vertex Z;#it{Z} (cm)" , {HistType::kTH1F , {{40 , -20.0 , 20.0 }}});
92+ registry.add (" h_vertexZ" , " Vertex Z;#it{Z} (cm)" , {HistType::kTH1F , {{100 , -20.0 , 20.0 }}});
8793
8894 const AxisSpec axisJetpT{200 , 0 ., 200 ., " #it{p}_{T} (GeV/#it{c})" };
89- const AxisSpec axisDb{200 , - 10 ., 20 . , " #it{D}_{b}" };
90- const AxisSpec axisDbFine{3000 , - 10 ., 20 . , " #it{D}_{b}" };
95+ const AxisSpec axisDb{200 , dbMin, dbMax , " #it{D}_{b}" };
96+ const AxisSpec axisDbFine{dbNbins, dbMin, dbMax , " #it{D}_{b}" };
9197 const AxisSpec axisSVMass{200 , 0 ., 10 ., " #it{m}_{SV} (GeV/#it{c}^{2})" };
9298 const AxisSpec axisSVEnergy{200 , 0 ., 100 ., " #it{E}_{SV} (GeV)" };
9399 const AxisSpec axisSLxy{200 , 0 ., 100 ., " #it{SL}_{xy}" };
94100 const AxisSpec axisJetMass{200 , 0 ., 50 ., " #it{m}_{jet} (GeV/#it{c}^{2})" };
95101 const AxisSpec axisJetProb{200 , 0 ., 40 ., " -ln(JP)" };
96102 const AxisSpec axisNTracks{42 , 0 , 42 , " #it{n}_{tracks}" };
97103
98- registry.add (" h_jetpT" , " " , {HistType::kTH1F , {axisJetpT}});
104+ registry.add (" h_jetpT" , " " , {HistType::kTH1F , {axisJetpT}}, callSumw2 );
99105 registry.add (" h_Db" , " " , {HistType::kTH1F , {axisDbFine}});
100106 registry.add (" h2_jetpT_Db" , " " , {HistType::kTH2F , {axisJetpT, axisDb}});
101107 registry.add (" h2_jetpT_SVMass" , " " , {HistType::kTH2F , {axisJetpT, axisSVMass}});
@@ -104,9 +110,9 @@ struct BjetTaggingGnn {
104110 registry.add (" h2_jetpT_nTracks" , " " , {HistType::kTH2F , {axisJetpT, axisNTracks}});
105111
106112 if (doprocessMCJets) {
107- registry.add (" h_jetpT_b" , " b-jet" , {HistType::kTH1F , {axisJetpT}});
108- registry.add (" h_jetpT_c" , " c-jet" , {HistType::kTH1F , {axisJetpT}});
109- registry.add (" h_jetpT_lf" , " lf-jet" , {HistType::kTH1F , {axisJetpT}});
113+ registry.add (" h_jetpT_b" , " b-jet" , {HistType::kTH1F , {axisJetpT}}, callSumw2 );
114+ registry.add (" h_jetpT_c" , " c-jet" , {HistType::kTH1F , {axisJetpT}}, callSumw2 );
115+ registry.add (" h_jetpT_lf" , " lf-jet" , {HistType::kTH1F , {axisJetpT}}, callSumw2 );
110116 registry.add (" h_Db_b" , " b-jet" , {HistType::kTH1F , {axisDbFine}});
111117 registry.add (" h_Db_c" , " c-jet" , {HistType::kTH1F , {axisDbFine}});
112118 registry.add (" h_Db_lf" , " lf-jet" , {HistType::kTH1F , {axisDbFine}});
@@ -125,10 +131,10 @@ struct BjetTaggingGnn {
125131 registry.add (" h2_jetpT_nTracks_b" , " b-jet" , {HistType::kTH2F , {axisJetpT, axisNTracks}});
126132 registry.add (" h2_jetpT_nTracks_c" , " c-jet" , {HistType::kTH2F , {axisJetpT, axisNTracks}});
127133 registry.add (" h2_jetpT_nTracks_lf" , " lf-jet" , {HistType::kTH2F , {axisJetpT, axisNTracks}});
128- registry.add (" h2_Response_DetjetpT_PartjetpT" , " " , {HistType::kTH2F , {axisJetpT, axisJetpT}});
129- registry.add (" h2_Response_DetjetpT_PartjetpT_b" , " b-jet" , {HistType::kTH2F , {axisJetpT, axisJetpT}});
130- registry.add (" h2_Response_DetjetpT_PartjetpT_c" , " c-jet" , {HistType::kTH2F , {axisJetpT, axisJetpT}});
131- registry.add (" h2_Response_DetjetpT_PartjetpT_lf" , " lf-jet" , {HistType::kTH2F , {axisJetpT, axisJetpT}});
134+ registry.add (" h2_Response_DetjetpT_PartjetpT" , " " , {HistType::kTH2F , {axisJetpT, axisJetpT}}, callSumw2 );
135+ registry.add (" h2_Response_DetjetpT_PartjetpT_b" , " b-jet" , {HistType::kTH2F , {axisJetpT, axisJetpT}}, callSumw2 );
136+ registry.add (" h2_Response_DetjetpT_PartjetpT_c" , " c-jet" , {HistType::kTH2F , {axisJetpT, axisJetpT}}, callSumw2 );
137+ registry.add (" h2_Response_DetjetpT_PartjetpT_lf" , " lf-jet" , {HistType::kTH2F , {axisJetpT, axisJetpT}, callSumw2 });
132138 registry.add (" h2_jetpT_Db_lf_none" , " lf-jet (none)" , {HistType::kTH2F , {axisJetpT, axisDb}});
133139 registry.add (" h2_jetpT_Db_lf_matched" , " lf-jet (matched)" , {HistType::kTH2F , {axisJetpT, axisDb}});
134140 registry.add (" h2_jetpT_Db_npp" , " NotPhysPrim" , {HistType::kTH2F , {axisJetpT, axisDb}});
@@ -146,10 +152,10 @@ struct BjetTaggingGnn {
146152 }
147153
148154 if (doprocessMCTruthJets) {
149- registry.add (" h_jetpT_particle" , " " , {HistType::kTH1F , {axisJetpT}});
150- registry.add (" h_jetpT_particle_b" , " particle b-jet" , {HistType::kTH1F , {axisJetpT}});
151- registry.add (" h_jetpT_particle_c" , " particle c-jet" , {HistType::kTH1F , {axisJetpT}});
152- registry.add (" h_jetpT_particle_lf" , " particle lf-jet" , {HistType::kTH1F , {axisJetpT}});
155+ registry.add (" h_jetpT_particle" , " " , {HistType::kTH1F , {axisJetpT}}, callSumw2 );
156+ registry.add (" h_jetpT_particle_b" , " particle b-jet" , {HistType::kTH1F , {axisJetpT}}, callSumw2 );
157+ registry.add (" h_jetpT_particle_c" , " particle c-jet" , {HistType::kTH1F , {axisJetpT}}, callSumw2 );
158+ registry.add (" h_jetpT_particle_lf" , " particle lf-jet" , {HistType::kTH1F , {axisJetpT}}, callSumw2 );
153159 }
154160
155161 if (doDataDriven) {
@@ -287,6 +293,11 @@ struct BjetTaggingGnn {
287293 if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
288294 return ;
289295 }
296+
297+ // Uses only collisionId % trainingDatasetRaioParam != 0 for evaluation dataset
298+ if (trainingDatasetRatioParam && collision.collisionId () % trainingDatasetRatioParam == 0 ) {
299+ return ;
300+ }
290301
291302 registry.fill (HIST (" h_vertexZ" ), collision.posZ ());
292303
0 commit comments