99// granted to it by virtue of its status as an Intergovernmental Organization
1010// or submit itself to any jurisdiction.
1111//
12- // \file jetD0Substructure .cxx
12+ // \file JetD0AngSubstructure .cxx
1313//
1414// \brief Analysis task for the reconstruction and study of charged jets
1515// containing D_0 mesons in pp collisions.
@@ -89,7 +89,7 @@ DECLARE_SOA_TABLE(JetObjTable, "AOD", "JETOBJTABLE",
8989 jet_obj::HfMlScore1,
9090 jet_obj::HfMlScore2);
9191} // namespace o2::aod
92- struct JetD0Substructure {
92+ struct JetD0AngSubstructure {
9393 /* *
9494 * Histogram registry
9595 *
@@ -99,24 +99,17 @@ struct JetD0Substructure {
9999 * - D0–jet substructure observables
100100 */
101101 HistogramRegistry registry{" registry" ,
102- {{" h_collisions" , " event status;event status;entries" , {HistType::kTH1F , {{4 , 0.0 , 4.0 }}}},
103- {" h_track_pt" , " track pT;#it{p}_{T,track} (GeV/#it{c});entries" , {HistType::kTH1F , {{200 , 0 ., 200 .}}}},
104- {" h_track_eta" , " track #eta;#eta_{track};entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
105- {" h_track_phi" , " track #varphi;#varphi_{track};entries" , {HistType::kTH1F , {{80 , -1.0 , 7 .}}}},
106- {" h_jet_pt" , " jet pT;#it{p}_{T,jet} (GeV/#it{c});entries" , {HistType::kTH1F , {{200 , 0 ., 200 .}}}},
107- {" h_jet_eta" , " jet #eta;#eta_{jet};entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
108- {" h_jet_phi" , " jet #phi;#phi_{jet};entries" , {HistType::kTH1F , {{80 , -1.0 , 7 .}}}},
109- {" h_collision_counter" , " # of collisions;" , {HistType::kTH1F , {{2 , 0 ., 2 .}}}},
102+ {{" h_collision_counter" , " # of collisions;" , {HistType::kTH1F , {{2 , 0 ., 2 .}}}},
110103 {" h_jet_counter" , " ;# of D^{0} jets;" , {HistType::kTH1F , {{6 , 0 ., 3.0 }}}},
111104 {" h_d0_jet_projection" , " ;z^{D^{0},jet}_{||};dN/dz^{D^{0},jet}_{||}" , {HistType::kTH1F , {{1000 , 0 ., 10 .}}}},
112105 {" h_d0_jet_distance_vs_projection" , " ;#DeltaR_{D^{0},jet};z^{D^{0},jet}_{||}" , {HistType::kTH2F , {{1000 , 0 ., 10 .}, {1000 , 0 ., 10 .}}}},
113106 {" h_d0_jet_distance" , " ;#DeltaR_{D^{0},jet};dN/d(#DeltaR)" , {HistType::kTH1F , {{1000 , 0 ., 10 .}}}},
114107 {" h_d0_jet_pt" , " ;p_{T,D^{0} jet};dN/dp_{T,D^{0} jet}" , {HistType::kTH1F , {{200 , 0 ., 10 .}}}},
115108 {" h_d0_jet_eta" , " ;#eta_{T,D^{0} jet};dN/d#eta_{D^{0} jet}" , {HistType::kTH1F , {{250 , -5 ., 5 .}}}},
116109 {" h_d0_jet_phi" , " ;#phi_{T,D^{0} jet};dN/d#phi_{D^{0} jet}" , {HistType::kTH1F , {{250 , -10 ., 10 .}}}},
117- {" h_d0_mass" , " ;m_{D^{0}} (GeV/c^{2} );dN/dm_{D^{0}}" , {HistType::kTH1F , {{1000 , 0 ., 10 .}}}},
118- {" h_d0_eta" , " ;#eta_{D^{0}} (GeV/c^{2} );dN/d#eta_{D_{}}" , {HistType::kTH1F , {{250 , -5 ., 5 .}}}},
119- {" h_d0_phi" , " ;#phi_{D^{0}} (GeV/c^{2} );dN/d#phi_{D^{0}}" , {HistType::kTH1F , {{250 , -10 ., 10 .}}}},
110+ {" h_d0_mass" , " ;m_{D^{0}});dN/dm_{D^{0}}" , {HistType::kTH1F , {{1000 , 0 ., 10 .}}}},
111+ {" h_d0_eta" , " ;#eta_{D^{0}});dN/d#eta_{D_{}}" , {HistType::kTH1F , {{250 , -5 ., 5 .}}}},
112+ {" h_d0_phi" , " ;#phi_{D^{0}});dN/d#phi_{D^{0}}" , {HistType::kTH1F , {{250 , -10 ., 10 .}}}},
120113 {" h_d0_ang" , " ;#lambda_{#kappa}^{#alpha};counts" , {HistType::kTH1F , {{100 , 0 ., 1 .}}}}}};
121114
122115 // Configurables
@@ -137,66 +130,22 @@ struct JetD0Substructure {
137130 Produces<aod::JetObjTable> ObjJetTable;
138131
139132 float angularity;
140- float leadingConstituentPt;
141133
142134 void init (o2::framework::InitContext&)
143135 {
144136 eventSelectionBits = jetderiveddatautilities::initialiseEventSelectionBits (static_cast <std::string>(eventSelections));
145137 trackSelection = jetderiveddatautilities::initialiseTrackSelection (static_cast <std::string>(trackSelections));
146138 }
147139
148- Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * 100 .0f );
149- Filter collisionFilter = nabs(aod::jcollision::posZ) < vertexZCut;
150-
151140 template <typename T, typename U>
152141 void jetCalculateAngularity (T const & jet, U const & /* tracks*/ )
153142 {
154143 angularity = 0.0 ;
155- leadingConstituentPt = 0.0 ;
156144 for (auto & constituent : jet.template tracks_as <U>()) {
157- if (constituent.pt () >= leadingConstituentPt) {
158- leadingConstituentPt = constituent.pt ();
159- }
160- angularity += std::pow (constituent.pt (), kappa) * std::pow (jetutilities::deltaR (jet, constituent), alpha);
161- }
162- angularity /= (jet.pt () * (jet.r () / 100 .f ));
163- }
164- // Collision-level and for Tracks QA
165- void processCollisions (aod::JetCollision const & collision, aod::JetTracks const & tracks)
166- {
167-
168- registry.fill (HIST (" h_collisions" ), 0.5 );
169- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
170- return ;
171- }
172- registry.fill (HIST (" h_collisions" ), 1.5 );
173-
174- // Loop over tracks and apply track selection
175- for (auto const & track : tracks) {
176- if (!jetderiveddatautilities::selectTrack (track, trackSelection)) {
177- continue ;
178- }
179- registry.fill (HIST (" h_track_pt" ), track.pt ());
180- registry.fill (HIST (" h_track_eta" ), track.eta ());
181- registry.fill (HIST (" h_track_phi" ), track.phi ());
145+ angularity += std::pow (constituent.pt (), kappa) * std::pow (jetutilities::deltaR (jet, constituent)/(jet.r () / 100 .f ), alpha);
182146 }
147+ angularity /= std::pow (jet.pt (), kappa);
183148 }
184- PROCESS_SWITCH (JetD0Substructure, processCollisions, " process JE collisions" , false );
185-
186- // Charged jet processing (no HF requirement)
187- void processDataCharged (soa::Filtered<aod::JetCollisions>::iterator const & collision, soa::Filtered<aod::ChargedJets> const & jets)
188- {
189- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
190- return ;
191- }
192- // jets -> charged jet
193- for (auto & jet : jets) {
194- registry.fill (HIST (" h_jet_pt" ), jet.pt ());
195- registry.fill (HIST (" h_jet_eta" ), jet.eta ());
196- registry.fill (HIST (" h_jet_phi" ), jet.phi ());
197- }
198- }
199- PROCESS_SWITCH (JetD0Substructure, processDataCharged, " charged jets in data" , false );
200149
201150 void processDataChargedSubstructure (aod::JetCollision const & collision,
202151 soa::Join<aod::D0ChargedJets, aod::D0ChargedJetConstituents> const & jets,
@@ -253,7 +202,8 @@ struct JetD0Substructure {
253202 } // end of jets loop
254203
255204 } // end of process function
256- PROCESS_SWITCH (JetD0Substructure , processDataChargedSubstructure, " charged HF jet substructure" , false );
205+ PROCESS_SWITCH (JetD0AngSubstructure , processDataChargedSubstructure, " charged HF jet substructure" , false );
257206};
258207// Workflow definition
259- WorkflowSpec defineDataProcessing (ConfigContext const & cfgc) { return WorkflowSpec{adaptAnalysisTask<JetD0Substructure>(cfgc, TaskName{" jet-d0-substructure" })}; }
208+ WorkflowSpec defineDataProcessing (ConfigContext const & cfgc) { return WorkflowSpec{adaptAnalysisTask<JetD0AngSubstructure>(cfgc, TaskName{" jet-d0-ang-substructure" })}; }
209+
0 commit comments