@@ -48,80 +48,66 @@ struct DijetFinderQATask {
4848
4949 HistogramRegistry registry;
5050
51- Configurable<float > setJetPtCut{" setJetPtCut" , 20 , " set jet pt minimum cut" };
52- Configurable<float > selectedJetsRadius{" selectedJetsRadius" , 0.4 , " resolution parameter for histograms without radius" };
53- Configurable<double > jetPtMax{" jetPtMax" , 200 ., " set jet pT bin max" };
54- Configurable<float > vertexZCut{" vertexZCut" , 10 .0f , " Accepted z-vertex range" };
5551 Configurable<float > centralityMin{" centralityMin" , -999.0 , " minimum centrality" };
5652 Configurable<float > centralityMax{" centralityMax" , 999.0 , " maximum centrality" };
57- Configurable<float > jetAreaFractionMin{ " jetAreaFractionMin " , - 99.0 , " used to make a cut on the jet areas " };
58- Configurable<float > leadingConstituentPtMin{ " leadingConstituentPtMin " , - 99.0 , " minimum pT selection on jet constituent " };
59- Configurable<float > leadingConstituentPtMax{ " leadingConstituentPtMax " , 9999.0 , " maximum pT selection on jet constituent " };
53+ Configurable<std::string> eventSelections{ " eventSelections " , " sel8 " , " choose event selection " };
54+ Configurable<float > vertexZCut{ " vertexZCut " , 10 . 0f , " Accepted z-vertex range " };
55+ Configurable<std::string> trackSelections{ " trackSelections " , " globalTracks " , " set track selections " };
6056 Configurable<float > trackPtMin{" trackPtMin" , 0.15 , " minimum pT acceptance for tracks" };
61- Configurable<float > trackPtMax{" trackPtMax" , 100 .0 , " maximum pT acceptance for tracks" };
57+ Configurable<float > trackPtMax{" trackPtMax" , 1000 .0 , " maximum pT acceptance for tracks" };
6258 Configurable<float > trackEtaMin{" trackEtaMin" , -0.9 , " minimum eta acceptance for tracks" };
6359 Configurable<float > trackEtaMax{" trackEtaMax" , 0.9 , " maximum eta acceptance for tracks" };
60+ Configurable<float > leadingConstituentPtMin{" leadingConstituentPtMin" , -99.0 , " minimum pT selection on jet constituent" };
61+ Configurable<float > leadingConstituentPtMax{" leadingConstituentPtMax" , 9999.0 , " maximum pT selection on jet constituent" };
62+ Configurable<float > setJetPtCut{" setJetPtCut" , 20 ., " set jet pt minimum cut" };
63+ Configurable<float > setPhiCut{" setPhiCut" , 0.5 , " set phicut" };
64+ Configurable<float > jetR{" jetR" , 0.4 , " jet resolution parameter" };
65+ Configurable<float > jetPtMin{" jetPtMin" , 20.0 , " minimum jet pT cut" };
66+ Configurable<double > jetPtMax{" jetPtMax" , 200 ., " set jet pT bin max" };
6467 Configurable<float > jetEtaMin{" jetEtaMin" , -0.5 , " minimum jet pseudorapidity" };
6568 Configurable<float > jetEtaMax{" jetEtaMax" , 0.5 , " maximum jet pseudorapidity" };
66- Configurable<float > jetPtMin{" jetPtMin" , 20.0 , " minimum jet pT cut" };
67- Configurable<float > jetR{" jetR" , 0.4 , " jet resolution parameter" };
68- Configurable<std::string> eventSelections{" eventSelections" , " sel8" , " choose event selection" };
69- Configurable<std::string> trackSelections{" trackSelections" , " globalTracks" , " set track selections" };
70- Configurable<bool > checkMcCollisionIsMatched{" checkMcCollisionIsMatched" , false , " 0: count whole MCcollisions, 1: select MCcollisions which only have their correspond collisions" };
69+ Configurable<float > jetAreaFractionMin{" jetAreaFractionMin" , -99.0 , " used to make a cut on the jet areas" };
7170
72- std::vector<int > eventSelectionBits ;
71+ std::vector<int > eventSelection ;
7372 int trackSelection = -1 ;
7473
75- std::vector<double > jetPtBins ;
74+ std::vector<double > dijetMassBins ;
7675
7776 void init (o2::framework::InitContext&)
7877 {
79- eventSelectionBits = jetderiveddatautilities::initialiseEventSelectionBits (static_cast <std::string>(eventSelections));
78+ eventSelection = jetderiveddatautilities::initialiseEventSelectionBits (static_cast <std::string>(eventSelections));
8079 trackSelection = jetderiveddatautilities::initialiseTrackSelection (static_cast <std::string>(trackSelections));
8180
82- auto jetPtTemp = 0.0 ;
83- jetPtBins.push_back (jetPtTemp);
84- while (jetPtTemp < jetPtMax) {
85- if (jetPtTemp < 100.0 ) {
86- jetPtTemp += 1.0 ;
87- jetPtBins.push_back (jetPtTemp);
88- } else if (jetPtTemp < 200.0 ) {
89- jetPtTemp += 5.0 ;
90- jetPtBins.push_back (jetPtTemp);
91- } else {
92- jetPtTemp += 10.0 ;
93- jetPtBins.push_back (jetPtTemp);
94- }
81+ auto dijetMassTemp = 0.0 ;
82+ while (dijetMassTemp <= 2 * jetPtMax) {
83+ dijetMassBins.push_back (dijetMassTemp);
84+ dijetMassTemp += 5.0 ;
9585 }
9686
97- AxisSpec jetPtAxis = {jetPtBins , " M_{jj} (GeV/#it{c}^2)" };
87+ AxisSpec dijetMassAxis = {dijetMassBins , " M_{jj} (GeV/#it{c}^2)" };
9888
9989 if (doprocessDijetMCP) {
100- registry.add (" h_part_jet_pt" , " Jet pt MCP;;entries" , {HistType::kTH1F , {jetPtAxis}});
101- registry.add (" h_part_dijet_mass" , " Dijet invariant mass;;entries" , {HistType::kTH1F , {jetPtAxis}});
90+ registry.add (" h_part_dijet_mass" , " Dijet invariant mass;;entries" , {HistType::kTH1F , {dijetMassAxis}});
10291 }
10392
10493 if (doprocessDijetMCD) {
105- registry.add (" h_detec_jet_pt" , " Jet pt MCD;;entries" , {HistType::kTH1F , {jetPtAxis}});
106- registry.add (" h_detec_dijet_mass" , " Dijet invariant mass;;entries" , {HistType::kTH1F , {jetPtAxis}});
94+ registry.add (" h_detec_dijet_mass" , " Dijet invariant mass;;entries" , {HistType::kTH1F , {dijetMassAxis}});
10795 }
10896
10997 if (doprocessDijetData) {
110- registry.add (" h_data_jet_pt" , " Jet pt Data;;entries" , {HistType::kTH1F , {jetPtAxis}});
111- registry.add (" h_data_dijet_mass" , " Dijet invariant mass;;entries" , {HistType::kTH1F , {jetPtAxis}});
98+ registry.add (" h_data_dijet_mass" , " Dijet invariant mass;;entries" , {HistType::kTH1F , {dijetMassAxis}});
11299 }
113100
114101 if (doprocessDijetMCMatched) {
115- registry.add (" h_matched_dijet_mass" , " M_{jj matched};M_{jj part}; M_{jj det}" , {HistType::kTH2F , {jetPtAxis, jetPtAxis }});
102+ registry.add (" h_matched_dijet_mass" , " M_{jj matched};M_{jj part}; M_{jj det}" , {HistType::kTH2F , {dijetMassAxis, dijetMassAxis }});
116103 }
117104 }
118105
119106 /* ***************************************************************************************************************************************************************/
120107 Filter trackCuts = (aod::jtrack::pt >= trackPtMin && aod::jtrack::pt < trackPtMax && aod::jtrack::eta > trackEtaMin && aod::jtrack::eta < trackEtaMax);
121108 Filter eventCuts = (nabs(aod::jcollision::posZ) < vertexZCut && aod::jcollision::centrality >= centralityMin && aod::jcollision::centrality < centralityMax);
122109 Filter mcCollisionsFilter = nabs(aod::jmccollision::posZ) < vertexZCut;
123- Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * 100 .0f ); // **********
124- PresliceUnsorted<soa::Filtered<aod::JetCollisionsMCD>> CollisionsPerMCPCollision = aod::jmccollisionlb::mcCollisionId;
110+ Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * 100 .0f );
125111 /* ***************************************************************************************************************************************************************/
126112
127113 template <typename T, typename U>
@@ -160,30 +146,6 @@ struct DijetFinderQATask {
160146 return true ;
161147 }
162148
163- template <typename T>
164- void fillJetPtHistogramsMCP (T const & jet)
165- {
166- if (jet.r () == round (selectedJetsRadius * 100 .0f )) {
167- registry.fill (HIST (" h_part_jet_pt" ), jet.pt ());
168- }
169- }
170-
171- template <typename T>
172- void fillJetPtHistogramsMCD (T const & jet)
173- {
174- if (jet.r () == round (selectedJetsRadius * 100 .0f )) {
175- registry.fill (HIST (" h_detec_jet_pt" ), jet.pt ());
176- }
177- }
178-
179- template <typename T>
180- void fillJetPtHistogramsData (T const & jet)
181- {
182- if (jet.r () == round (selectedJetsRadius * 100 .0f )) {
183- registry.fill (HIST (" h_data_jet_pt" ), jet.pt ());
184- }
185- }
186-
187149 template <typename T>
188150 void fillMassHistogramsMCP (T const & mass)
189151 {
@@ -217,7 +179,6 @@ struct DijetFinderQATask {
217179 {
218180 std::vector<std::array<double , 3 >> jetPtcuts;
219181 for (auto & jet : jets) {
220- fillJetPtHistogramsMCP (jet);
221182 jetPtcuts.push_back ({jet.pt (), jet.eta (), jet.phi ()});
222183 }
223184
@@ -227,18 +188,14 @@ struct DijetFinderQATask {
227188
228189 for (size_t i = 1 ; i < jetPtcuts.size () && !found_pair; i++) {
229190 auto & candidate_jet = jetPtcuts[i];
230- Double_t dphi = fabs (candidate_jet[2 ] - leading_jet[2 ]);
231- if (dphi > M_PI) {
232- dphi = 2 * M_PI - dphi;
233- }
234- if (dphi > 2 * M_PI / 3 ) {
235- double pt1 = leading_jet[0 ];
236- double pt2 = candidate_jet[0 ];
237- double eta1 = leading_jet[1 ];
238- double eta2 = candidate_jet[1 ];
239- double phi1 = leading_jet[2 ];
240- double phi2 = candidate_jet[2 ];
241- double dijet_mass = sqrt (2 * pt1 * pt2 * (cosh (eta1 - eta2) - cos (phi1 - phi2)));
191+ Double_t dphi = fabs (leading_jet[2 ] - candidate_jet[2 ]);
192+ Double_t deta = fabs (leading_jet[1 ] - candidate_jet[1 ]);
193+ Double_t condition = fabs (dphi - M_PI);
194+
195+ if (condition < setPhiCut * M_PI) {
196+ Double_t pt1 = leading_jet[0 ];
197+ Double_t pt2 = candidate_jet[0 ];
198+ Double_t dijet_mass = sqrt (2 * pt1 * pt2 * (cosh (deta) - cos (dphi)));
242199 fillMassHistogramsMCP (dijet_mass);
243200 found_pair = true ;
244201 }
@@ -249,12 +206,11 @@ struct DijetFinderQATask {
249206
250207 void processDijetMCD (soa::Filtered<aod::JetCollisions>::iterator const & collision, soa::Filtered<aod::ChargedMCDetectorLevelJets> const & jets)
251208 {
252- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits )) {
209+ if (!jetderiveddatautilities::selectCollision (collision, eventSelection )) {
253210 return ;
254211 }
255212 std::vector<std::array<double , 3 >> jetPtcuts;
256213 for (auto & jet : jets) {
257- fillJetPtHistogramsMCD (jet);
258214 jetPtcuts.push_back ({jet.pt (), jet.eta (), jet.phi ()});
259215 }
260216
@@ -264,18 +220,14 @@ struct DijetFinderQATask {
264220
265221 for (size_t i = 1 ; i < jetPtcuts.size () && !found_pair; i++) {
266222 auto & candidate_jet = jetPtcuts[i];
267- Double_t dphi = fabs (candidate_jet[2 ] - leading_jet[2 ]);
268- if (dphi > M_PI) {
269- dphi = 2 * M_PI - dphi;
270- }
271- if (dphi > 2 * M_PI / 3 ) {
272- double pt1 = leading_jet[0 ];
273- double pt2 = candidate_jet[0 ];
274- double eta1 = leading_jet[1 ];
275- double eta2 = candidate_jet[1 ];
276- double phi1 = leading_jet[2 ];
277- double phi2 = candidate_jet[2 ];
278- double dijet_mass = sqrt (2 * pt1 * pt2 * (cosh (eta1 - eta2) - cos (phi1 - phi2)));
223+ Double_t dphi = fabs (leading_jet[2 ] - candidate_jet[2 ]);
224+ Double_t deta = fabs (leading_jet[1 ] - candidate_jet[1 ]);
225+ Double_t condition = fabs (dphi - M_PI);
226+
227+ if (condition < setPhiCut * M_PI) {
228+ Double_t pt1 = leading_jet[0 ];
229+ Double_t pt2 = candidate_jet[0 ];
230+ Double_t dijet_mass = sqrt (2 * pt1 * pt2 * (cosh (deta) - cos (dphi)));
279231 fillMassHistogramsMCD (dijet_mass);
280232 found_pair = true ;
281233 }
@@ -286,13 +238,12 @@ struct DijetFinderQATask {
286238
287239 void processDijetData (soa::Filtered<aod::JetCollisions>::iterator const & collision, soa::Filtered<aod::ChargedJets> const & jets)
288240 {
289- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits )) {
241+ if (!jetderiveddatautilities::selectCollision (collision, eventSelection )) {
290242 return ;
291243 }
292244
293245 std::vector<std::array<double , 3 >> jetPtcuts;
294246 for (auto & jet : jets) {
295- fillJetPtHistogramsData (jet);
296247 jetPtcuts.push_back ({jet.pt (), jet.eta (), jet.phi ()});
297248 }
298249
@@ -302,18 +253,14 @@ struct DijetFinderQATask {
302253
303254 for (size_t i = 1 ; i < jetPtcuts.size () && !found_pair; i++) {
304255 auto & candidate_jet = jetPtcuts[i];
305- Double_t dphi = fabs (candidate_jet[2 ] - leading_jet[2 ]);
306- if (dphi > M_PI) {
307- dphi = 2 * M_PI - dphi;
308- }
309- if (dphi > 2 * M_PI / 3 ) {
310- double pt1 = leading_jet[0 ];
311- double pt2 = candidate_jet[0 ];
312- double eta1 = leading_jet[1 ];
313- double eta2 = candidate_jet[1 ];
314- double phi1 = leading_jet[2 ];
315- double phi2 = candidate_jet[2 ];
316- double dijet_mass = sqrt (2 * pt1 * pt2 * (cosh (eta1 - eta2) - cos (phi1 - phi2)));
256+ Double_t dphi = fabs (leading_jet[2 ] - candidate_jet[2 ]);
257+ Double_t deta = fabs (leading_jet[1 ] - candidate_jet[1 ]);
258+ Double_t condition = fabs (dphi - M_PI);
259+
260+ if (condition < setPhiCut * M_PI) {
261+ Double_t pt1 = leading_jet[0 ];
262+ Double_t pt2 = candidate_jet[0 ];
263+ Double_t dijet_mass = sqrt (2 * pt1 * pt2 * (cosh (deta) - cos (dphi)));
317264 fillMassHistogramsData (dijet_mass);
318265 found_pair = true ;
319266 }
@@ -327,7 +274,7 @@ struct DijetFinderQATask {
327274 soa::Filtered<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetsMatchedToChargedMCParticleLevelJets>> const & mcdjets,
328275 JetMCPTable const &, aod::JetTracks const &, aod::JetParticles const &)
329276 {
330- if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits )) {
277+ if (!jetderiveddatautilities::selectCollision (collision, eventSelection )) {
331278 return ;
332279 }
333280
@@ -355,26 +302,20 @@ struct DijetFinderQATask {
355302 auto & candidate_jet_D = jetPtcuts_D[i];
356303 auto & candidate_jet_P = jetPtcuts_P[i];
357304
358- Double_t dphi_D = fabs (candidate_jet_D[2 ] - leading_jet_D[2 ]);
359- if (dphi_D > M_PI) {
360- dphi_D = 2 * M_PI - dphi_D;
361- }
362- if (dphi_D > 2 * M_PI / 3 ) {
305+ Double_t dphi_D = fabs (leading_jet_D[2 ] - candidate_jet_D[2 ]);
306+ Double_t deta_D = fabs (leading_jet_D[1 ] - candidate_jet_D[1 ]);
307+ Double_t dphi_P = fabs (leading_jet_P[2 ] - candidate_jet_P[2 ]);
308+ Double_t deta_P = fabs (leading_jet_P[1 ] - candidate_jet_P[1 ]);
309+ Double_t condition = fabs (dphi_D - M_PI);
310+
311+ if (condition < setPhiCut * M_PI) {
363312 double pt1_D = leading_jet_D[0 ];
364313 double pt2_D = candidate_jet_D[0 ];
365- double eta1_D = leading_jet_D[1 ];
366- double eta2_D = candidate_jet_D[1 ];
367- double phi1_D = leading_jet_D[2 ];
368- double phi2_D = candidate_jet_D[2 ];
369- double dijet_mass_D = sqrt (2 * pt1_D * pt2_D * (cosh (eta1_D - eta2_D) - cos (phi1_D - phi2_D)));
314+ double dijet_mass_D = sqrt (2 * pt1_D * pt2_D * (cosh (deta_D) - cos (dphi_D)));
370315
371316 double pt1_P = leading_jet_P[0 ];
372317 double pt2_P = candidate_jet_P[0 ];
373- double eta1_P = leading_jet_P[1 ];
374- double eta2_P = candidate_jet_P[1 ];
375- double phi1_P = leading_jet_P[2 ];
376- double phi2_P = candidate_jet_P[2 ];
377- double dijet_mass_P = sqrt (2 * pt1_P * pt2_P * (cosh (eta1_P - eta2_P) - cos (phi1_P - phi2_P)));
318+ double dijet_mass_P = sqrt (2 * pt1_P * pt2_P * (cosh (deta_P) - cos (dphi_P)));
378319
379320 fillMassHistogramsMCMatched (dijet_mass_P, dijet_mass_D);
380321 found_pair = true ;
0 commit comments