1919// o2-analysis-pid-tof-base, o2-analysis-multiplicity-table, o2-analysis-event-selection
2020// (to add flow: o2-analysis-qvector-table, o2-analysis-centrality-table)
2121
22- #include < algorithm>
23- #include < cmath>
24- #include < memory>
25- #include < string>
26- #include < vector>
27-
28- #include " Math/Vector4D.h"
29-
30- #include " CCDB/BasicCCDBManager.h"
22+ #include " PWGLF/DataModel/EPCalibrationTables.h"
23+ #include " PWGLF/DataModel/LFSlimNucleiTables.h"
3124
25+ #include " Common/Core/EventPlaneHelper.h"
26+ #include " Common/Core/PID/PIDTOF.h"
27+ #include " Common/Core/RecoDecay.h"
3228#include " Common/Core/TrackSelection.h"
3329#include " Common/Core/trackUtilities.h"
3430#include " Common/DataModel/Centrality.h"
35- #include " Common/DataModel/Multiplicity.h"
3631#include " Common/DataModel/EventSelection.h"
32+ #include " Common/DataModel/Multiplicity.h"
3733#include " Common/DataModel/PIDResponse.h"
3834#include " Common/DataModel/PIDResponseITS.h"
35+ #include " Common/DataModel/Qvectors.h"
3936#include " Common/DataModel/TrackSelectionTables.h"
40- #include " Common/Core/PID/PIDTOF.h"
4137#include " Common/TableProducer/PID/pidTOFBase.h"
42- #include " Common/Core/EventPlaneHelper.h"
43- #include " Common/DataModel/Qvectors.h"
44- #include " Common/Core/RecoDecay.h"
38+ #include " EventFiltering/Zorro.h"
39+ #include " EventFiltering/ZorroSummary.h"
4540
41+ #include " CCDB/BasicCCDBManager.h"
4642#include " DataFormatsParameters/GRPMagField.h"
4743#include " DataFormatsParameters/GRPObject.h"
4844#include " DataFormatsTPC/BetheBlochAleph.h"
4945#include " DetectorsBase/GeometryManager.h"
5046#include " DetectorsBase/Propagator.h"
51-
52- #include " EventFiltering/Zorro.h"
53- #include " EventFiltering/ZorroSummary.h"
54-
47+ #include " Framework/ASoAHelpers.h"
5548#include " Framework/AnalysisDataModel.h"
5649#include " Framework/AnalysisTask.h"
57- #include " Framework/ASoAHelpers.h"
5850#include " Framework/HistogramRegistry.h"
5951#include " Framework/runDataProcessing.h"
60-
6152#include " ReconstructionDataFormats/Track.h"
6253
63- #include " PWGLF/DataModel/EPCalibrationTables.h"
64- #include " PWGLF/DataModel/LFSlimNucleiTables.h"
65-
54+ #include " Math/Vector4D.h"
6655#include " TRandom3.h"
6756
57+ #include < algorithm>
58+ #include < cmath>
59+ #include < memory>
60+ #include < string>
61+ #include < vector>
62+
6863using namespace o2 ;
6964using namespace o2 ::framework;
7065using namespace o2 ::framework::expressions;
@@ -79,6 +74,7 @@ struct NucleusCandidate {
7974 float tpcInnerParam;
8075 float beta;
8176 float zVertex;
77+ int nContrib;
8278 float DCAxy;
8379 float DCAz;
8480 float TPCsignal;
@@ -793,7 +789,7 @@ struct nucleiSpectra {
793789 }
794790 nuclei::candidates.emplace_back (NucleusCandidate{
795791 static_cast <int >(track.globalIndex ()), static_cast <int >(track.collisionId ()), (1 - 2 * iC) * mTrackParCov .getPt (), mTrackParCov .getEta (), mTrackParCov .getPhi (),
796- correctedTpcInnerParam, beta, collision.posZ (), dcaInfo[0 ], dcaInfo[1 ], track.tpcSignal (), track.itsChi2NCl (), track.tpcChi2NCl (), track.tofChi2 (),
792+ correctedTpcInnerParam, beta, collision.posZ (), collision. numContrib (), dcaInfo[0 ], dcaInfo[1 ], track.tpcSignal (), track.itsChi2NCl (), track.tpcChi2NCl (), track.tofChi2 (),
797793 nSigmaTPC, tofMasses, fillTree, fillDCAHist, correctPV, isSecondary, fromWeakDecay, flag, track.tpcNClsFindable (), static_cast <uint8_t >(track.tpcNClsCrossedRows ()), track.itsClusterMap (),
798794 static_cast <uint8_t >(track.tpcNClsFound ()), static_cast <uint8_t >(track.tpcNClsShared ()), static_cast <uint8_t >(track.itsNCls ()), static_cast <uint32_t >(track.itsClusterSizes ())});
799795 }
@@ -814,7 +810,7 @@ struct nucleiSpectra {
814810 for (size_t i1{0 }; i1 < nuclei::candidates.size (); ++i1) {
815811 auto & c1 = nuclei::candidates[i1];
816812 if (c1.fillTree ) {
817- nucleiTable (c1.pt , c1.eta , c1.phi , c1.tpcInnerParam , c1.beta , c1.zVertex , c1.DCAxy , c1.DCAz , c1.TPCsignal , c1.ITSchi2 , c1.TPCchi2 , c1.TOFchi2 , c1.flags , c1.TPCfindableCls , c1.TPCcrossedRows , c1.ITSclsMap , c1.TPCnCls , c1.TPCnClsShared , c1.clusterSizesITS );
813+ nucleiTable (c1.pt , c1.eta , c1.phi , c1.tpcInnerParam , c1.beta , c1.zVertex , c1.nContrib , c1. DCAxy , c1.DCAz , c1.TPCsignal , c1.ITSchi2 , c1.TPCchi2 , c1.TOFchi2 , c1.flags , c1.TPCfindableCls , c1.TPCcrossedRows , c1.ITSclsMap , c1.TPCnCls , c1.TPCnClsShared , c1.clusterSizesITS );
818814 if (cfgFillPairTree) {
819815 for (size_t i2{i1 + 1 }; i2 < nuclei::candidates.size (); ++i2) {
820816 auto & c2 = nuclei::candidates[i2];
@@ -849,7 +845,7 @@ struct nucleiSpectra {
849845 fillDataInfo (collision, tracks);
850846 for (auto & c : nuclei::candidates) {
851847 if (c.fillTree ) {
852- nucleiTable (c.pt , c.eta , c.phi , c.tpcInnerParam , c.beta , c.zVertex , c.DCAxy , c.DCAz , c.TPCsignal , c.ITSchi2 , c.TPCchi2 , c.TOFchi2 , c.flags , c.TPCfindableCls , c.TPCcrossedRows , c.ITSclsMap , c.TPCnCls , c.TPCnClsShared , c.clusterSizesITS );
848+ nucleiTable (c.pt , c.eta , c.phi , c.tpcInnerParam , c.beta , c.zVertex , c.nContrib , c. DCAxy , c.DCAz , c.TPCsignal , c.ITSchi2 , c.TPCchi2 , c.TOFchi2 , c.flags , c.TPCfindableCls , c.TPCcrossedRows , c.ITSclsMap , c.TPCnCls , c.TPCnClsShared , c.clusterSizesITS );
853849 }
854850 if (c.fillDCAHist ) {
855851 for (int iS{0 }; iS < nuclei::species; ++iS) {
@@ -878,7 +874,7 @@ struct nucleiSpectra {
878874 fillDataInfo (collision, tracks);
879875 for (auto & c : nuclei::candidates) {
880876 if (c.fillTree ) {
881- nucleiTable (c.pt , c.eta , c.phi , c.tpcInnerParam , c.beta , c.zVertex , c.DCAxy , c.DCAz , c.TPCsignal , c.ITSchi2 , c.TPCchi2 , c.TOFchi2 , c.flags , c.TPCfindableCls , c.TPCcrossedRows , c.ITSclsMap , c.TPCnCls , c.TPCnClsShared , c.clusterSizesITS );
877+ nucleiTable (c.pt , c.eta , c.phi , c.tpcInnerParam , c.beta , c.zVertex , c.nContrib , c. DCAxy , c.DCAz , c.TPCsignal , c.ITSchi2 , c.TPCchi2 , c.TOFchi2 , c.flags , c.TPCfindableCls , c.TPCcrossedRows , c.ITSclsMap , c.TPCnCls , c.TPCnClsShared , c.clusterSizesITS );
882878 }
883879 if (c.fillDCAHist ) {
884880 for (int iS{0 }; iS < nuclei::species; ++iS) {
@@ -971,7 +967,7 @@ struct nucleiSpectra {
971967
972968 isReconstructed[particle.globalIndex ()] = true ;
973969 float absoDecL = computeAbsoDecL (particle);
974- nucleiTableMC (c.pt , c.eta , c.phi , c.tpcInnerParam , c.beta , c.zVertex , c.DCAxy , c.DCAz , c.TPCsignal , c.ITSchi2 , c.TPCchi2 , c.TOFchi2 , c.flags , c.TPCfindableCls , c.TPCcrossedRows , c.ITSclsMap , c.TPCnCls , c.TPCnClsShared , c.clusterSizesITS , goodCollisions[particle.mcCollisionId ()], particle.pt (), particle.eta (), particle.phi (), particle.pdgCode (), motherPdgCode, motherDecRadius, absoDecL);
970+ nucleiTableMC (c.pt , c.eta , c.phi , c.tpcInnerParam , c.beta , c.zVertex , c.nContrib , c. DCAxy , c.DCAz , c.TPCsignal , c.ITSchi2 , c.TPCchi2 , c.TOFchi2 , c.flags , c.TPCfindableCls , c.TPCcrossedRows , c.ITSclsMap , c.TPCnCls , c.TPCnClsShared , c.clusterSizesITS , goodCollisions[particle.mcCollisionId ()], particle.pt (), particle.eta (), particle.phi (), particle.pdgCode (), motherPdgCode, motherDecRadius, absoDecL);
975971 }
976972
977973 int index{0 };
@@ -1014,7 +1010,7 @@ struct nucleiSpectra {
10141010 if (!isReconstructed[index] && (cfgTreeConfig->get (iS, 0u ) || cfgTreeConfig->get (iS, 1u ))) {
10151011 float absDecL = computeAbsoDecL (particle);
10161012
1017- nucleiTableMC (999 ., 999 ., 999 ., 0 ., 0 ., 999 ., 999 ., 999 ., -1 , -1 , -1 , -1 , flags, 0 , 0 , 0 , 0 , 0 , 0 , goodCollisions[particle.mcCollisionId ()], particle.pt (), particle.eta (), particle.phi (), particle.pdgCode (), motherPdgCode, motherDecRadius, absDecL);
1013+ nucleiTableMC (999 ., 999 ., 999 ., 0 ., 0 ., 999 ., - 1 , 999 ., 999 ., -1 , -1 , -1 , -1 , flags, 0 , 0 , 0 , 0 , 0 , 0 , goodCollisions[particle.mcCollisionId ()], particle.pt (), particle.eta (), particle.phi (), particle.pdgCode (), motherPdgCode, motherDecRadius, absDecL);
10181014 }
10191015 break ;
10201016 }
0 commit comments