@@ -258,6 +258,7 @@ struct sigmaanalysis {
258258 ConfigurableAxis axisPt{" axisPt" , {VARIABLE_WIDTH, 0 .0f , 0 .1f , 0 .2f , 0 .3f , 0 .4f , 0 .5f , 0 .6f , 0 .7f , 0 .8f , 0 .9f , 1 .0f , 1 .1f , 1 .2f , 1 .3f , 1 .4f , 1 .5f , 1 .6f , 1 .7f , 1 .8f , 1 .9f , 2 .0f , 2 .2f , 2 .4f , 2 .6f , 2 .8f , 3 .0f , 3 .2f , 3 .4f , 3 .6f , 3 .8f , 4 .0f , 4 .4f , 4 .8f , 5 .2f , 5 .6f , 6 .0f , 6 .5f , 7 .0f , 7 .5f , 8 .0f , 9 .0f , 10 .0f , 11 .0f , 12 .0f , 13 .0f , 14 .0f , 15 .0f , 17 .0f , 19 .0f , 21 .0f , 23 .0f , 25 .0f , 30 .0f , 35 .0f , 40 .0f , 50 .0f }, " p_{T} (GeV/c)" };
259259 ConfigurableAxis axisInvPt{" axisInvPt" , {VARIABLE_WIDTH, 0.0 , 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.7 , 0.8 , 0.9 , 1.0 , 1.1 , 1.2 , 1.3 , 1.4 , 1.5 , 2.0 , 5.0 , 10.0 , 20.0 , 50.0 }, " " };
260260 ConfigurableAxis axisDeltaPt{" axisDeltaPt" , {400 , -50.0 , 50.0 }, " " };
261+ ConfigurableAxis axisReso{" axisReso" , {400 , -2.0 , 2.0 }, " " };
261262 ConfigurableAxis axisRapidity{" axisRapidity" , {100 , -2 .0f , 2 .0f }, " Rapidity" };
262263 ConfigurableAxis axisIRBinning{" axisIRBinning" , {150 , 0 , 1500 }, " Binning for the interaction rate (kHz)" };
263264 ConfigurableAxis axisNch{" axisNch" , {300 , 0 .0f , 3000 .0f }, " N_{ch}" };
@@ -502,18 +503,16 @@ struct sigmaanalysis {
502503 histos.add (histodir + " /MC/ASigma0/h3dMCProcess" , " h3dMCProcess" , kTH3D , {{50 , -0 .5f , 49 .5f }, axisPt, axisSigmaMass});
503504
504505 // pT Resolution:
505- if (fillResoQAhistos && histodir == " BeforeSel " ) {
506- histos.add (histodir + " /MC/Reso/h2dGammaInvPtResolution " , " h2dGammaPtResolution" , kTH2D , {axisInvPt, axisDeltaPt });
506+ if (fillResoQAhistos) {
507+ histos.add (histodir + " /MC/Reso/h2dGammaPtResolution " , " h2dGammaPtResolution" , kTH2D , {axisInvPt, axisReso });
507508 histos.add (histodir + " /MC/Reso/h2dGammaInvPtResolution" , " h2dGammaInvPtResolution" , kTH2D , {axisInvPt, axisDeltaPt});
508509 histos.add (histodir + " /MC/Reso/h2dLambdaPtResolution" , " h2dLambdaPtResolution" , kTH2D , {axisInvPt, axisDeltaPt});
509- histos.add (histodir + " /MC/Reso/h3dLambdaPtResoVsTPCCR" , " h3dLambdaPtResoVsTPCCR" , kTH3D , {axisInvPt, axisDeltaPt, axisTPCrows});
510- histos.add (histodir + " /MC/Reso/h3dLambdaPtResoVsTPCCR" , " h3dLambdaPtResoVsTPCCR" , kTH3D , {axisInvPt, axisDeltaPt, axisTPCrows});
510+ histos.add (histodir + " /MC/Reso/h3dLambdaPtResoVsTPCCR" , " h3dLambdaPtResoVsTPCCR" , kTH3D , {axisInvPt, axisDeltaPt, axisTPCrows});
511511 histos.add (histodir + " /MC/Reso/h2dAntiLambdaPtResolution" , " h2dAntiLambdaPtResolution" , kTH2D , {axisInvPt, axisDeltaPt});
512- histos.add (histodir + " /MC/Reso/h3dAntiLambdaPtResoVsTPCCR" , " h3dAntiLambdaPtResoVsTPCCR" , kTH3D , {axisInvPt, axisDeltaPt, axisTPCrows});
513- histos.add (histodir + " /MC/Reso/h3dAntiLambdaPtResoVsTPCCR" , " h3dAntiLambdaPtResoVsTPCCR" , kTH3D , {axisInvPt, axisDeltaPt, axisTPCrows});
514- histos.add (histodir + " /MC/Reso/h2dSigma0PtResolution" , " h2dSigma0PtResolution" , kTH2D , {axisInvPt, axisDeltaPt});
512+ histos.add (histodir + " /MC/Reso/h3dAntiLambdaPtResoVsTPCCR" , " h3dAntiLambdaPtResoVsTPCCR" , kTH3D , {axisInvPt, axisDeltaPt, axisTPCrows});
513+ histos.add (histodir + " /MC/Reso/h2dSigma0PtResolution" , " h2dSigma0PtResolution" , kTH2D , {axisInvPt, axisReso});
515514 histos.add (histodir + " /MC/Reso/h2dSigma0InvPtResolution" , " h2dSigma0InvPtResolution" , kTH2D , {axisInvPt, axisDeltaPt});
516- histos.add (histodir + " /MC/Reso/h2dAntiSigma0PtResolution" , " h2dAntiSigma0PtResolution" , kTH2D , {axisInvPt, axisDeltaPt });
515+ histos.add (histodir + " /MC/Reso/h2dAntiSigma0PtResolution" , " h2dAntiSigma0PtResolution" , kTH2D , {axisInvPt, axisReso });
517516 histos.add (histodir + " /MC/Reso/h2dSigma0RadiusResolution" , " h2dSigma0RadiusResolution" , kTH2D , {axisPt, axisDeltaPt});
518517 histos.add (histodir + " /MC/Reso/h2dASigma0RadiusResolution" , " h2dASigma0RadiusResolution" , kTH2D , {axisPt, axisDeltaPt});
519518 }
@@ -1003,52 +1002,55 @@ struct sigmaanalysis {
10031002 return TrkCode;
10041003 }
10051004
1006- template <typename TSigma0Object>
1005+ template <int mode, typename TSigma0Object>
10071006 void getResolution (TSigma0Object const & sigma)
10081007 {
10091008
1009+ // Check whether it is before or after selections
1010+ static constexpr std::string_view MainDir[] = {" BeforeSel" , " AfterSel" };
1011+
10101012 // _______________________________________
10111013 // Gamma MC association
10121014 if (sigma.photonPDGCode () == 22 ) {
10131015 if (sigma.photonmcpt () > 0 ) {
1014- histos.fill (HIST (" BeforeSel /MC/Reso/h2dGammaPtResolution" ), sigma.photonmcpt (), sigma.photonPt () - sigma.photonmcpt ()); // pT resolution
1015- histos.fill (HIST (" BeforeSel /MC/Reso/h2dGammaInvPtResolution" ), 1 .f / sigma.photonmcpt (), 1 .f / sigma.photonPt () - 1 .f / sigma.photonmcpt ()); // pT resolution
1016+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h2dGammaPtResolution" ), sigma.photonmcpt (), ( sigma.photonPt ()/ sigma.photonmcpt ()) - 1 . f ); // pT resolution
1017+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h2dGammaInvPtResolution" ), 1 .f / sigma.photonmcpt (), 1 .f / sigma.photonPt () - 1 .f / sigma.photonmcpt ()); // pT resolution
10161018 }
10171019 }
10181020
10191021 // _______________________________________
10201022 // Lambda MC association
10211023 if (sigma.lambdaPDGCode () == 3122 ) {
10221024 if (sigma.lambdamcpt () > 0 ) {
1023- histos.fill (HIST (" BeforeSel /MC/Reso/h2dLambdaPtResolution" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt ()); // 1/pT resolution
1024- histos.fill (HIST (" BeforeSel /MC/Reso/h3dLambdaPtResoVsTPCCR" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt (), -1 * sigma.lambdaNegTPCCrossedRows ()); // 1/pT resolution
1025- histos.fill (HIST (" BeforeSel /MC/Reso/h3dLambdaPtResoVsTPCCR" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt (), sigma.lambdaPosTPCCrossedRows ()); // 1/pT resolution
1025+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h2dLambdaPtResolution" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt ()); // 1/pT resolution
1026+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h3dLambdaPtResoVsTPCCR" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt (), -1 * sigma.lambdaNegTPCCrossedRows ()); // 1/pT resolution
1027+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h3dLambdaPtResoVsTPCCR" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt (), sigma.lambdaPosTPCCrossedRows ()); // 1/pT resolution
10261028 }
10271029 }
10281030
10291031 // _______________________________________
10301032 // AntiLambda MC association
10311033 if (sigma.lambdaPDGCode () == -3122 ) {
10321034 if (sigma.lambdamcpt () > 0 ) {
1033- histos.fill (HIST (" BeforeSel /MC/Reso/h2dAntiLambdaPtResolution" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt ()); // pT resolution
1034- histos.fill (HIST (" BeforeSel /MC/Reso/h3dAntiLambdaPtResoVsTPCCR" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt (), -1 * sigma.lambdaNegTPCCrossedRows ()); // 1/pT resolution
1035- histos.fill (HIST (" BeforeSel /MC/Reso/h3dAntiLambdaPtResoVsTPCCR" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt (), sigma.lambdaPosTPCCrossedRows ()); // 1/pT resolution
1035+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h2dAntiLambdaPtResolution" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt ()); // pT resolution
1036+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h3dAntiLambdaPtResoVsTPCCR" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt (), -1 * sigma.lambdaNegTPCCrossedRows ()); // 1/pT resolution
1037+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h3dAntiLambdaPtResoVsTPCCR" ), 1 .f / sigma.lambdamcpt (), 1 .f / sigma.lambdaPt () - 1 .f / sigma.lambdamcpt (), sigma.lambdaPosTPCCrossedRows ()); // 1/pT resolution
10361038 }
10371039 }
10381040
10391041 // _______________________________________
10401042 // Sigma and AntiSigma MC association
10411043 if (sigma.isSigma0 ()) {
1042- histos.fill (HIST (" BeforeSel /MC/Reso/h2dSigma0RadiusResolution" ), sigma.mcpt (), sigma.radius () - sigma.mcradius ()); // pT resolution
1044+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h2dSigma0RadiusResolution" ), sigma.mcpt (), sigma.radius () - sigma.mcradius ()); // pT resolution
10431045 if (sigma.mcpt () > 0 ) {
1044- histos.fill (HIST (" BeforeSel /MC/Reso/h2dSigma0PtResolution" ), sigma.mcpt (), sigma.pt () - sigma.mcpt ()); // pT resolution
1045- histos.fill (HIST (" BeforeSel /MC/Reso/h2dSigma0InvPtResolution" ), 1 .f / sigma.mcpt (), 1 .f / sigma.pt () - 1 .f / sigma.mcpt ()); // pT resolution
1046+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h2dSigma0PtResolution" ), sigma.mcpt (), ( sigma.pt ()/ sigma.mcpt ()) - 1 . f ); // pT resolution
1047+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h2dSigma0InvPtResolution" ), 1 .f / sigma.mcpt (), 1 .f / sigma.pt () - 1 .f / sigma.mcpt ()); // pT resolution
10461048 }
10471049 }
10481050 if (sigma.isAntiSigma0 ()) {
1049- histos.fill (HIST (" BeforeSel /MC/Reso/h2dASigma0RadiusResolution" ), sigma.mcpt (), sigma.radius () - sigma.mcradius ()); // pT resolution
1051+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h2dASigma0RadiusResolution" ), sigma.mcpt (), sigma.radius () - sigma.mcradius ()); // pT resolution
10501052 if (sigma.mcpt () > 0 )
1051- histos.fill (HIST (" BeforeSel /MC/Reso/h2dAntiSigma0PtResolution" ), 1 .f / sigma.mcpt (), 1 .f / sigma.pt () - 1 .f / sigma.mcpt ()); // pT resolution
1053+ histos.fill (HIST (MainDir[mode]) + HIST ( " /MC/Reso/h2dAntiSigma0PtResolution" ), 1 .f / sigma.mcpt (), 1 .f / sigma.pt () - 1 .f / sigma.mcpt ()); // pT resolution
10521054 }
10531055 }
10541056
@@ -1220,7 +1222,7 @@ struct sigmaanalysis {
12201222
12211223 // _______________________________________
12221224 // MC specific
1223- if (doprocessMonteCarlo) {
1225+ if (doprocessMonteCarlo || doprocessMonteCarloWithEMCal ) {
12241226 if constexpr (requires { sigma.lambdaPDGCode (); sigma.photonPDGCode (); }) {
12251227
12261228 if (fillSelhistos) {
@@ -1302,8 +1304,8 @@ struct sigmaanalysis {
13021304
13031305 // _______________________________________
13041306 // pT resolution histos
1305- if ((mode == 0 ) && fillResoQAhistos)
1306- getResolution (sigma);
1307+ if (fillResoQAhistos)
1308+ getResolution<mode> (sigma);
13071309 }
13081310 }
13091311 }
@@ -1664,7 +1666,7 @@ struct sigmaanalysis {
16641666 auto sigma0 = fullSigma0s.rawIteratorAt (sigma0grouped[coll.globalIndex ()][i]);
16651667
16661668 // if MC
1667- if constexpr (requires { sigma0.isSigma0 (); sigma0.isAntiSigma0 (); }) {
1669+ if constexpr (requires { sigma0.isSigma0 (); sigma0.isAntiSigma0 (); }) {
16681670 if (doMCAssociation && !(sigma0.isSigma0 () || sigma0.isAntiSigma0 ()))
16691671 continue ;
16701672
0 commit comments