1212// Task to produce a table joinable to the jet tables for hf jet tagging
1313//
1414// / \author Nima Zardoshti <nima.zardoshti@cern.ch>
15+ // / \author Hanseo Park <hanseo.park@cern.ch>
1516
1617#include " Framework/AnalysisTask.h"
1718#include " Framework/AnalysisDataModel.h"
@@ -34,9 +35,10 @@ struct JetTaggerHFTask {
3435 Produces<JetTaggingTableData> taggingTableData;
3536 Produces<JetTaggingTableMCD> taggingTableMCD;
3637
37- Configurable<bool > doAlgorithm1{" doAlgorithm1" , false , " fill table for algoithm 1" };
38- Configurable<bool > doAlgorithm2{" doAlgorithm2" , false , " fill table for algoithm 2" };
39- Configurable<bool > doAlgorithm3{" doAlgorithm3" , false , " fill table for algoithm 3" };
38+ Configurable<bool > doWShower{" doWShower" , false , " find jet origin included gluon spliting" }; // true:: remove gluon spliting
39+ Configurable<bool > doTC{" doTC" , false , " fill table for track counting algorithm" };
40+ Configurable<bool > doSV{" doSV" , false , " fill table for secondary vertex algorithm" };
41+ Configurable<bool > doML{" doML" , false , " fill table for machine learning" };
4042 Configurable<float > maxDeltaR{" maxDeltaR" , 0.25 , " maximum distance of jet axis from flavour initiating parton" };
4143
4244 void processDummy (JetCollisions const & collision)
@@ -51,9 +53,9 @@ struct JetTaggerHFTask {
5153 int algorithm1 = jet.globalIndex (); // This needs to be changed. It is only done because O2Physics compilation breaks if jet is unused
5254 int algorithm2 = 0 ;
5355 int algorithm3 = 0 ;
54- // if (doAlgorithm1 ) algorithm1 = jettaggingutilities::Algorithm1((mcdjet, tracks);
55- // if (doAlgorithm2 ) algorithm2 = jettaggingutilities::Algorithm2((mcdjet, tracks);
56- // if (doAlgorithm3 ) algorithm3 = jettaggingutilities::Algorithm3((mcdjet, tracks);
56+ // if (doTC ) algorithm1 = jettaggingutilities::Algorithm1((mcdjet, tracks);
57+ // if (doSV ) algorithm2 = jettaggingutilities::Algorithm2((mcdjet, tracks);
58+ // if (doML ) algorithm3 = jettaggingutilities::Algorithm3((mcdjet, tracks);
5759 taggingTableData (0 , algorithm1, algorithm2, algorithm3);
5860 }
5961 }
@@ -62,14 +64,18 @@ struct JetTaggerHFTask {
6264 void processMCD (JetCollision const & collision, JetTableMCD const & mcdjets, JetTracksMCD const & tracks, JetParticles const & particles)
6365 {
6466 for (auto & mcdjet : mcdjets) {
65-
66- int origin = jettaggingutilities::mcdJetFromHFShower (mcdjet, tracks, particles, maxDeltaR);
67+ typename JetTracksMCD::iterator hftrack;
68+ int origin = 0 ;
69+ if (!doWShower)
70+ origin = jettaggingutilities::mcdJetFromHFShower (mcdjet, tracks, particles, maxDeltaR);
71+ else
72+ origin = jettaggingutilities::jetTrackFromHFShower (mcdjet, tracks, particles, hftrack);
6773 int algorithm1 = 0 ;
6874 int algorithm2 = 0 ;
6975 int algorithm3 = 0 ;
70- // if (doAlgorithm1 ) algorithm1 = jettaggingutilities::Algorithm1((mcdjet, tracks);
71- // if (doAlgorithm2 ) algorithm2 = jettaggingutilities::Algorithm2((mcdjet, tracks);
72- // if (doAlgorithm3 ) algorithm3 = jettaggingutilities::Algorithm3((mcdjet, tracks);
76+ // if (doTC ) algorithm1 = jettaggingutilities::Algorithm1((mcdjet, tracks);
77+ // if (doSV ) algorithm2 = jettaggingutilities::Algorithm2((mcdjet, tracks);
78+ // if (doML ) algorithm3 = jettaggingutilities::Algorithm3((mcdjet, tracks);
7379 taggingTableMCD (origin, algorithm1, algorithm2, algorithm3);
7480 }
7581 }
0 commit comments