2020#include < TVector2.h>
2121
2222// o2Physics includes.
23- #include " Framework/ASoA.h"
23+ #include " Framework/ASoA.h"
2424#include " Framework/AnalysisDataModel.h"
2525#include " Framework/AnalysisTask.h"
2626#include " Framework/ASoAHelpers.h"
@@ -55,7 +55,8 @@ DECLARE_SOA_TABLE(Flags, "AOD", "Flags", CMETrackPIDcolums::NPIDFlag);
5555} // namespace o2::aod
5656
5757using TracksPID = soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::TrackSelectionExtension, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTPCFullPr, aod::pidTOFFullPr>;
58- struct FillPIDcolums {
58+ struct FillPIDcolums
59+ {
5960 Configurable<float > cfgnSigmaCutTPCPi{" cfgnSigmaCutTPCPi" , 3.0 , " Value of the TPC Nsigma cut for pions" };
6061 Configurable<float > cfgnSigmaCutTPCKa{" cfgnSigmaCutTPCKa" , 3.0 , " Value of the TPC Nsigma cut for kaons" };
6162 Configurable<float > cfgnSigmaCutTPCPr{" cfgnSigmaCutTPCPr" , 3.0 , " Value of the TPC Nsigma cut for protons" };
@@ -79,7 +80,7 @@ struct FillPIDcolums {
7980 template <typename TrackType>
8081 bool SelTrack_PID (const TrackType track)
8182 {
82- if (!(track.pt () > cfgMinPtPID))
83+ if (!(track.pt () > cfgMinPtPID) )
8384 return false ;
8485 if (!(std::abs (track.eta ()) < cfgMaxEtaPID))
8586 return false ;
@@ -185,13 +186,13 @@ struct FillPIDcolums {
185186 }
186187
187188 HistogramRegistry histosQA{" histosQAPID" , {}, OutputObjHandlingPolicy::AnalysisObject};
188-
189+
189190 void init (InitContext const &)
190191 {
191192 AxisSpec axisRigidity{cfgrigidityBins, " #it{p}^{TPC}/#it{z}" };
192193 AxisSpec axisdEdx{cfgdedxBins, " d#it{E}/d#it{x}" };
193194 AxisSpec axisnSigma{cfgnSigmaBins, " n_{#sigma}TPC" };
194- AxisSpec axisPtPID{cfgaxisptPID, " #it{p}_{T}" };
195+ AxisSpec axisPtPID{cfgaxisptPID," #it{p}_{T}" };
195196
196197 histosQA.add (Form (" QA/PID/histdEdxTPC_All" ), " " , {HistType::kTH2F , {axisRigidity, axisdEdx}});
197198 histosQA.add (Form (" QA/PID/histdEdxTPC_Pi" ), " " , {HistType::kTH2F , {axisRigidity, axisdEdx}});
@@ -208,47 +209,48 @@ struct FillPIDcolums {
208209 void process (TracksPID const & tracks)
209210 {
210211 int8_t PID_flag;
211- for (auto & track : tracks) {
212- if (!SelTrack_PID (track)) {
212+ for (auto & track : tracks){
213+ if (!SelTrack_PID (track)) {
213214 PID_flag = -1 ;
214215 } else {
215- histosQA.fill (HIST (" QA/PID/histdEdxTPC_All" ), track.sign () * track.tpcInnerParam (), track.tpcSignal ());
216+ histosQA.fill (HIST (" QA/PID/histdEdxTPC_All" ), track.sign ()* track.tpcInnerParam (), track.tpcSignal ());
216217 float nsigma_array[3 ] = {track.tpcNSigmaPi (), track.tpcNSigmaKa (), track.tpcNSigmaPr ()};
217218 PID_flag = 0 ;
218219 for (int8_t i = 0 ; i < 3 ; i++) {
219- if (selectionPID (track, i))
220- PID_flag = PID_flag * 10 + i + 1 ;
221- if (PID_flag > 10 ) { // If a track is identified as two different tracks.
220+ if (selectionPID (track,i))
221+ PID_flag = PID_flag* 10 + i + 1 ;
222+ if (PID_flag > 10 ){ // If a track is identified as two different tracks.
222223 if (fabs (nsigma_array[(PID_flag / 10 ) - 1 ]) < fabs (nsigma_array[(PID_flag % 10 ) - 1 ])) // The track is identified as the particle whose |nsigma| is the least.
223224 PID_flag /= 10 ;
224225 else
225226 PID_flag %= 10 ;
226227 }
227228 }
228229
229- switch (PID_flag) {
230- case 1 :
231- histosQA.fill (HIST (" QA/PID/histdEdxTPC_Pi" ), track.sign () * track.tpcInnerParam (), track.tpcSignal ());
232- histosQA.fill (HIST (" QA/PID/histnSigma_Pi" ), track.tpcNSigmaPi ());
233- histosQA.fill (HIST (" QA/PID/histnSigma_Pt_Pi" ), track.pt (), track.tpcNSigmaPi ());
234- break ;
235- case 2 :
236- histosQA.fill (HIST (" QA/PID/histdEdxTPC_Ka" ), track.sign () * track.tpcInnerParam (), track.tpcSignal ());
237- histosQA.fill (HIST (" QA/PID/histnSigma_Ka" ), track.tpcNSigmaKa ());
238- histosQA.fill (HIST (" QA/PID/histnSigma_Pt_Ka" ), track.pt (), track.tpcNSigmaKa ());
239- break ;
240- case 3 :
241- histosQA.fill (HIST (" QA/PID/histdEdxTPC_Pr" ), track.sign () * track.tpcInnerParam (), track.tpcSignal ());
242- histosQA.fill (HIST (" QA/PID/histnSigma_Pr" ), track.tpcNSigmaPr ());
243- histosQA.fill (HIST (" QA/PID/histnSigma_Pt_Pr" ), track.pt (), track.tpcNSigmaPr ());
244- break ;
230+ switch (PID_flag){
231+ case 1 :
232+ histosQA.fill (HIST (" QA/PID/histdEdxTPC_Pi" ), track.sign ()* track.tpcInnerParam (), track.tpcSignal ());
233+ histosQA.fill (HIST (" QA/PID/histnSigma_Pi" ), track.tpcNSigmaPi ());
234+ histosQA.fill (HIST (" QA/PID/histnSigma_Pt_Pi" ), track.pt (), track.tpcNSigmaPi ());
235+ break ;
236+ case 2 :
237+ histosQA.fill (HIST (" QA/PID/histdEdxTPC_Ka" ), track.sign ()* track.tpcInnerParam (), track.tpcSignal ());
238+ histosQA.fill (HIST (" QA/PID/histnSigma_Ka" ), track.tpcNSigmaKa ());
239+ histosQA.fill (HIST (" QA/PID/histnSigma_Pt_Ka" ), track.pt (), track.tpcNSigmaKa ());
240+ break ;
241+ case 3 :
242+ histosQA.fill (HIST (" QA/PID/histdEdxTPC_Pr" ), track.sign ()* track.tpcInnerParam (), track.tpcSignal ());
243+ histosQA.fill (HIST (" QA/PID/histnSigma_Pr" ), track.tpcNSigmaPr ());
244+ histosQA.fill (HIST (" QA/PID/histnSigma_Pt_Pr" ), track.pt (), track.tpcNSigmaPr ());
245+ break ;
245246 }
246247 }
247248 PIDCMEtable (PID_flag);
248249 }
249250 }
250251};
251252
253+
252254struct pidcme {
253255 HistogramRegistry histosQA{" histosmain" , {}, OutputObjHandlingPolicy::AnalysisObject};
254256
@@ -275,6 +277,7 @@ struct pidcme {
275277 ConfigurableAxis cfgaxissumpt{" cfgaxissumpt" , {7 , 1 , 8 }, " Binning for #gamma and #delta pt(particle1 + particle2)" };
276278 ConfigurableAxis cfgaxisdeltaeta{" cfgaxisdeltaeta" , {5 , 0 , 1 }, " Binning for #gamma and #delta |#eta(particle1 - particle2)|" };
277279
280+
278281 Configurable<bool > OpenCME = {" cfgkOpeanCME" , true , " open PID CME" };
279282
280283 EventPlaneHelper helperEP;
@@ -309,7 +312,7 @@ struct pidcme {
309312 return 0 ;
310313 }
311314 }
312-
315+
313316 Filter col = aod::evsel::sel8 == true ;
314317 Filter collisionFilter = (nabs(aod::collision::posZ) < 10 .f);
315318 Filter ptfilter = aod::track::pt > cfgMinPt;
@@ -496,50 +499,46 @@ struct pidcme {
496499 }
497500 int DetInd = DetId * 4 + cfgnTotalSystem * 4 * (nmode - 2 );
498501 float Psi_n = helperEP.GetEventPlane (collision.qvecRe ()[DetInd + 3 ], collision.qvecIm ()[DetInd + 3 ], nmode);
499- for (auto & trk : track1) {
500- if (!SelTrack (trk))
502+ for (auto & trk : track1){
503+ if (!SelTrack (trk))
501504 continue ;
502505 if (nmode == 2 ) {
503- if (trk.sign () > 0 ) {
506+ if (trk.sign () > 0 ){
504507 histosQA.fill (HIST (" V2/PID/histCosDetV2_Pi" ), collision.centFT0C (), trk.pt (),
505- std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
506- } else if (trk.sign () < 0 ) {
508+ std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
509+ } else if (trk.sign () < 0 ){
507510 histosQA.fill (HIST (" V2/PID/histCosDetV2_Pi_Neg" ), collision.centFT0C (), trk.pt (),
508- std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
511+ std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
509512 }
510513 }
511514 }
512- for (auto & trk : track2) {
513- if (!SelTrack (trk))
515+ for (auto & trk : track2){
516+ if (!SelTrack (trk))
514517 continue ;
515518 if (nmode == 2 ) {
516- if (trk.sign () > 0 ) {
519+ if (trk.sign () > 0 ){
517520 histosQA.fill (HIST (" V2/PID/histCosDetV2_Ka" ), collision.centFT0C (), trk.pt (),
518- std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
519- } else if (trk.sign () < 0 ) {
521+ std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
522+ } else if (trk.sign () < 0 ){
520523 histosQA.fill (HIST (" V2/PID/histCosDetV2_Ka_Neg" ), collision.centFT0C (), trk.pt (),
521- std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
524+ std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
522525 }
523526 }
524527 }
525- for (auto & trk : track3) {
526- if (!SelTrack (trk))
528+ for (auto & trk : track3){
529+ if (!SelTrack (trk))
527530 continue ;
528531 if (nmode == 2 ) {
529- if (trk.sign () > 0 ) {
532+ if (trk.sign () > 0 ){
530533 histosQA.fill (HIST (" V2/PID/histCosDetV2_Pr" ), collision.centFT0C (), trk.pt (),
531- std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
532- } else if (trk.sign () < 0 ) {
534+ std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
535+ } else if (trk.sign () < 0 ){
533536 histosQA.fill (HIST (" V2/PID/histCosDetV2_Pr_Neg" ), collision.centFT0C (), trk.pt (),
534- std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
537+ std::cos (static_cast <float >(nmode) * (trk.phi () - Psi_n)));
535538 }
536539 }
537540 }
538541 if (OpenCME) {
539- <<<<<<< HEAD
540- for (auto & trk1 : track1) {
541- for (auto & trk2 : track2) {
542- =======
543542 for (auto & trk1 : track1) {
544543 for (auto & trk2 : track1) {
545544 if (trk1.globalIndex () == trk2.globalIndex ())
@@ -611,70 +610,69 @@ struct pidcme {
611610 }
612611 for (auto & trk1 : track1) {
613612 for (auto & trk2 : track2) {
614- >>>>>>> 3b9f73a9e (add pid self corr)
615613 if (trk1.globalIndex () == trk2.globalIndex ())
616614 continue ;
617615 if (nmode == 2 ) {
618- if (trk1.sign () == trk2.sign ()) {
616+ if (trk1.sign () == trk2.sign ()){
619617 histosQA.fill (HIST (" PIDCME/histgamama_PiKa_ss" ), collision.centFT0C (), std::cos ((trk1.phi () + trk2.phi () - static_cast <float >(nmode) * Psi_n)));
620618 histosQA.fill (HIST (" PIDCME/histdelta_PiKa_ss" ), collision.centFT0C (), std::cos ((trk1.phi () - trk2.phi ())));
621619 histosQA.fill (HIST (" PIDCME/Differential/histgamama_PiKa_ss_Dif" ), collision.centFT0C (), trk1.pt () + trk2.pt (), std::abs (trk1.eta () - trk2.eta ()),
622- std::cos ((trk1.phi () + trk2.phi () - static_cast <float >(nmode) * Psi_n)));
620+ std::cos ((trk1.phi () + trk2.phi () - static_cast <float >(nmode) * Psi_n)));
623621 histosQA.fill (HIST (" PIDCME/Differential/histdelta_PiKa_ss_Dif" ), collision.centFT0C (), trk1.pt () + trk2.pt (), std::abs (trk1.eta () - trk2.eta ()),
624- std::cos ((trk1.phi () - trk2.phi ())));
622+ std::cos ((trk1.phi () - trk2.phi ())));
625623 } else {
626624 histosQA.fill (HIST (" PIDCME/histgamama_PiKa_os" ), collision.centFT0C (), std::cos ((trk1.phi () + trk2.phi () - static_cast <float >(nmode) * Psi_n)));
627625 histosQA.fill (HIST (" PIDCME/histdelta_PiKa_os" ), collision.centFT0C (), std::cos ((trk1.phi () - trk2.phi ())));
628626 histosQA.fill (HIST (" PIDCME/Differential/histgamama_PiKa_os_Dif" ), collision.centFT0C (), trk1.pt () + trk2.pt (), std::abs (trk1.eta () - trk2.eta ()),
629- std::cos ((trk1.phi () + trk2.phi () - static_cast <float >(nmode) * Psi_n)));
627+ std::cos ((trk1.phi () + trk2.phi () - static_cast <float >(nmode) * Psi_n)));
630628 histosQA.fill (HIST (" PIDCME/Differential/histdelta_PiKa_os_Dif" ), collision.centFT0C (), trk1.pt () + trk2.pt (), std::abs (trk1.eta () - trk2.eta ()),
631- std::cos ((trk1.phi () - trk2.phi ())));
629+ std::cos ((trk1.phi () - trk2.phi ())));
632630 }
633631 }
634632 }
635633 }
636- for (auto & trk1 : track1) {
637- for (auto & trk3 : track3) {
634+ for (auto & trk1 : track1) {
635+ for (auto & trk3 : track3) {
638636 if (trk1.globalIndex () == trk3.globalIndex ())
639637 continue ;
640638 if (nmode == 2 ) {
641- if (trk1.sign () == trk3.sign ()) {
639+ if (trk1.sign () == trk3.sign ()){
642640 histosQA.fill (HIST (" PIDCME/histgamama_PiPr_ss" ), collision.centFT0C (), std::cos ((trk1.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
643641 histosQA.fill (HIST (" PIDCME/histdelta_PiPr_ss" ), collision.centFT0C (), std::cos ((trk1.phi () - trk3.phi ())));
644642 histosQA.fill (HIST (" PIDCME/Differential/histgamama_PiPr_ss_Dif" ), collision.centFT0C (), trk1.pt () + trk3.pt (), std::abs (trk1.eta () - trk3.eta ()),
645- std::cos ((trk1.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
643+ std::cos ((trk1.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
646644 histosQA.fill (HIST (" PIDCME/Differential/histdelta_PiPr_ss_Dif" ), collision.centFT0C (), trk1.pt () + trk3.pt (), std::abs (trk1.eta () - trk3.eta ()),
647- std::cos ((trk1.phi () - trk3.phi ())));
645+ std::cos ((trk1.phi () - trk3.phi ())));
648646 } else {
649647 histosQA.fill (HIST (" PIDCME/histgamama_PiPr_os" ), collision.centFT0C (), std::cos ((trk1.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
650648 histosQA.fill (HIST (" PIDCME/histdelta_PiPr_os" ), collision.centFT0C (), std::cos ((trk1.phi () - trk3.phi ())));
651649 histosQA.fill (HIST (" PIDCME/Differential/histgamama_PiPr_os_Dif" ), collision.centFT0C (), trk1.pt () + trk3.pt (), std::abs (trk1.eta () - trk3.eta ()),
652- std::cos ((trk1.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
650+ std::cos ((trk1.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
653651 histosQA.fill (HIST (" PIDCME/Differential/histdelta_PiPr_os_Dif" ), collision.centFT0C (), trk1.pt () + trk3.pt (), std::abs (trk1.eta () - trk3.eta ()),
654- std::cos ((trk1.phi () - trk3.phi ())));
652+ std::cos ((trk1.phi () - trk3.phi ())));
655653 }
656654 }
657655 }
658656 }
659- for (auto & trk2 : track2) {
660- for (auto & trk3 : track3) {
657+ for (auto & trk2 : track2) {
658+ for (auto & trk3 : track3) {
661659 if (trk2.globalIndex () == trk3.globalIndex ())
662660 continue ;
663661 if (nmode == 2 ) {
664- if (trk2.sign () == trk3.sign ()) {
662+ if (trk2.sign () == trk3.sign ()){
665663 histosQA.fill (HIST (" PIDCME/histgamama_KaPr_ss" ), collision.centFT0C (), std::cos ((trk2.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
666664 histosQA.fill (HIST (" PIDCME/histdelta_KaPr_ss" ), collision.centFT0C (), std::cos ((trk2.phi () - trk3.phi ())));
667665 histosQA.fill (HIST (" PIDCME/Differential/histgamama_KaPr_ss_Dif" ), collision.centFT0C (), trk2.pt () + trk3.pt (), std::abs (trk2.eta () - trk3.eta ()),
668- std::cos ((trk2.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
666+ std::cos ((trk2.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
669667 histosQA.fill (HIST (" PIDCME/Differential/histdelta_KaPr_ss_Dif" ), collision.centFT0C (), trk2.pt () + trk3.pt (), std::abs (trk2.eta () - trk3.eta ()),
670- std::cos ((trk2.phi () - trk3.phi ())));
668+ std::cos ((trk2.phi () - trk3.phi ())));
671669 } else {
672670 histosQA.fill (HIST (" PIDCME/histgamama_KaPr_os" ), collision.centFT0C (), std::cos ((trk2.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
673671 histosQA.fill (HIST (" PIDCME/histdelta_KaPr_os" ), collision.centFT0C (), std::cos ((trk2.phi () - trk3.phi ())));
674672 histosQA.fill (HIST (" PIDCME/Differential/histgamama_KaPr_os_Dif" ), collision.centFT0C (), trk2.pt () + trk3.pt (), std::abs (trk2.eta () - trk3.eta ()),
675- std::cos ((trk2.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
673+ std::cos ((trk2.phi () + trk3.phi () - static_cast <float >(nmode) * Psi_n)));
676674 histosQA.fill (HIST (" PIDCME/Differential/histdelta_KaPr_os_Dif" ), collision.centFT0C (), trk2.pt () + trk3.pt (), std::abs (trk2.eta () - trk3.eta ()),
677- std::cos ((trk2.phi () - trk3.phi ())));
675+ std::cos ((trk2.phi () - trk3.phi ())));
678676 }
679677 }
680678 }
@@ -702,13 +700,13 @@ struct pidcme {
702700 for (auto i = 0 ; i < static_cast <int >(cfgnMods->size ()); i++) {
703701 int DetInd_global = DetId * 4 + cfgnTotalSystem * 4 * (cfgnMods->at (i) - 2 );
704702 float Psi_n_global = helperEP.GetEventPlane (collision.qvecRe ()[DetInd_global + 3 ], collision.qvecIm ()[DetInd_global + 3 ], cfgnMods->at (i));
705- for (auto & trk : tracks) {
703+ for (auto & trk : tracks){
706704 if (!SelTrack (trk))
707705 continue ;
708706 histosQA.fill (HIST (" V2/histSinDetV2" ), collision.centFT0C (), trk.pt (),
709- std::sin (static_cast <float >(cfgnMods->at (i)) * (trk.phi () - Psi_n_global)));
707+ std::sin (static_cast <float >(cfgnMods->at (i)) * (trk.phi () - Psi_n_global)));
710708 histosQA.fill (HIST (" V2/histCosDetV2" ), collision.centFT0C (), trk.pt (),
711- std::cos (static_cast <float >(cfgnMods->at (i)) * (trk.phi () - Psi_n_global)));
709+ std::cos (static_cast <float >(cfgnMods->at (i)) * (trk.phi () - Psi_n_global)));
712710 }
713711 fillHistosQvec (collision, cfgnMods->at (i));
714712 fillHistosFlow_gamma_delta (collision, tracks1, tracks2, tracks3, cfgnMods->at (i));
@@ -722,4 +720,4 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
722720 adaptAnalysisTask<FillPIDcolums>(cfgc),
723721 adaptAnalysisTask<pidcme>(cfgc),
724722 };
725- }
723+ }
0 commit comments