@@ -58,27 +58,11 @@ struct HfTaskCharmHadronsFemtoDream {
5858 PositiveCharge = 1 ,
5959 NegativeCharge = -1
6060 };
61+
62+ Produces<o2::aod::FDHfCharm> rowFemtoResultCharm;
63+ Produces<o2::aod::FDHfTrk> rowFemtoResultTrk;
64+ Produces<o2::aod::FDHfColl> rowFemtoResultColl;
6165
62- // / Binning configurables
63- ConfigurableAxis bin4Dkstar{" bin4Dkstar" , {1500 , 0 ., 6 .}, " binning kstar for the 4Dimensional plot: k* vs multiplicity vs multiplicity percentile vs mT (set <<Confuse4D>> to true in order to use)" };
64- ConfigurableAxis bin4DMult{" bin4DMult" , {VARIABLE_WIDTH , 0 .0f , 4 .0f , 8 .0f , 12 .0f , 16 .0f , 20 .0f , 24 .0f , 28 .0f , 32 .0f , 36 .0f , 40 .0f , 44 .0f , 48 .0f , 52 .0f , 56 .0f , 60 .0f , 64 .0f , 68 .0f , 72 .0f , 76 .0f , 80 .0f , 84 .0f , 88 .0f , 92 .0f , 96 .0f , 100 .0f , 200 .0f }, " multiplicity Binning for the 4Dimensional plot: k* vs multiplicity vs multiplicity percentile vs mT (set <<Confuse4D>> to true in order to use)" };
65- ConfigurableAxis bin4DmT{" bin4DmT" , {VARIABLE_WIDTH , 1 .02f , 1 .14f , 1 .20f , 1 .26f , 1 .38f , 1 .56f , 1 .86f , 4 .50f }, " mT Binning for the 4Dimensional plot: k* vs multiplicity vs multiplicity percentile vs mT (set <<Confuse4D>> to true in order to use)" };
66- ConfigurableAxis bin4DmultPercentile{" bin4DmultPercentile" , {10 , 0 .0f , 100 .0f }, " multiplicity percentile Binning for the 4Dimensional plot: k* vs multiplicity vs multiplicity percentile vs mT (set <<Confuse4D>> to true in order to use)" };
67- ConfigurableAxis binInvMass{" binInvMass" , {400 , 2.10 , 2.50 }, " InvMass binning" };
68- ConfigurableAxis binpTCharm{" binpTCharm" , {360 , 0 , 36 }, " pT binning of charm hadron" };
69- ConfigurableAxis binTempFitVarTrack{" binTempFitVarTrack" , {300 , -0.15 , 0.15 }, " binning of the TempFitVar in the pT vs. TempFitVar plot (Track)" };
70- ConfigurableAxis binmT{" binmT" , {225 , 0 ., 7.5 }, " binning mT" };
71- ConfigurableAxis binmultTempFit{" binmultTempFit" , {1 , 0 , 1 }, " multiplicity Binning for the TempFitVar plot" };
72- ConfigurableAxis binMulPercentile{" binMulPercentile" , {10 , 0 .0f , 100 .0f }, " multiplicity percentile Binning" };
73- ConfigurableAxis binpTTrack{" binpTTrack" , {50 , 0.5 , 10.05 }, " pT binning of the pT vs. TempFitVar plot (Track)" };
74- ConfigurableAxis binEta{" binEta" , {{200 , -1.5 , 1.5 }}, " eta binning" };
75- ConfigurableAxis binPhi{" binPhi" , {{200 , 0 , TMath::TwoPi ()}}, " phi binning" };
76- ConfigurableAxis binkT{" binkT" , {150 , 0 ., 9 .}, " binning kT" };
77- ConfigurableAxis binkstar{" binkstar" , {1500 , 0 ., 6 .}, " binning kstar" };
78- ConfigurableAxis binNSigmaTPC{" binNSigmaTPC" , {1600 , -8 , 8 }, " Binning of Nsigma TPC plot" };
79- ConfigurableAxis binNSigmaTOF{" binNSigmaTOF" , {3000 , -15 , 15 }, " Binning of the Nsigma TOF plot" };
80- ConfigurableAxis binNSigmaTPCTOF{" binNSigmaTPCTOF" , {3000 , -15 , 15 }, " Binning of the Nsigma TPC+TOF plot" };
81- ConfigurableAxis binTPCClusters{" binTPCClusters" , {163 , -0.5 , 162.5 }, " Binning of TPC found clusters plot" };
8266 Configurable<int > confTempFitVarMomentum{" confTempFitVarMomentum" , 0 , " Momentum used for binning: 0 -> pt; 1 -> preco; 2 -> ptpc" };
8367
8468 // / Particle 2 (Charm Hadrons)
@@ -134,23 +118,7 @@ struct HfTaskCharmHadronsFemtoDream {
134118 Configurable<float > etaTrack1Min{" etaTrack1Min" , -10 ., " Minimum eta of partricle 1 (Track)" };
135119 Configurable<float > ptTrack1Min{" ptTrack1Min" , 0 ., " Minimum pT of partricle 1 (Track)" };
136120
137- ColumnBinningPolicy<aod::collision::PosZ, aod::femtodreamcollision::MultNtr> colBinningMult{{mixingBinVztx, mixingBinMult}, true };
138- ColumnBinningPolicy<aod::collision::PosZ, aod::femtodreamcollision::MultV0M> colBinningMultPercentile{{mixingBinVztx, mixingBinMultPercentile}, true };
139- ColumnBinningPolicy<aod::collision::PosZ, aod::femtodreamcollision::MultNtr, aod::femtodreamcollision::MultV0M> colBinningMultMultPercentile{{mixingBinVztx, mixingBinMult, mixingBinMultPercentile}, true };
140-
141- FemtoDreamContainer<femtoDreamContainer::EventType::same, femtoDreamContainer::Observable::kstar> sameEventCont;
142- FemtoDreamContainer<femtoDreamContainer::EventType::mixed, femtoDreamContainer::Observable::kstar> mixedEventCont;
143- FemtoDreamPairCleaner<aod::femtodreamparticle::ParticleType::kTrack , aod::femtodreamparticle::ParticleType::kCharmHadron > pairCleaner;
144- FemtoDreamDetaDphiStar<aod::femtodreamparticle::ParticleType::kTrack , aod::femtodreamparticle::ParticleType::kCharmHadron > pairCloseRejectionSE;
145- FemtoDreamDetaDphiStar<aod::femtodreamparticle::ParticleType::kTrack , aod::femtodreamparticle::ParticleType::kCharmHadron > pairCloseRejectionME;
146- Filter eventMultiplicity = aod::femtodreamcollision::multNtr >= eventSel.multMin && aod::femtodreamcollision::multNtr <= eventSel.multMax;
147- Filter eventMultiplicityPercentile = aod::femtodreamcollision::multV0M >= eventSel.multPercentileMin && aod::femtodreamcollision::multV0M <= eventSel.multPercentileMax;
148- Filter hfCandSelFilter = aod::fdhf::candidateSelFlag >= static_cast <int8_t >(charmHadCandSel.value);
149- Filter hfMcSelFilter = nabs(aod::fdhf::flagMc) == static_cast <int8_t >(charmHadMcSel.value);
150- Filter trackEtaFilterLow = ifnode(aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack ), aod::femtodreamparticle::eta < etaTrack1Max, true );
151- Filter trackEtaFilterUp = ifnode(aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack ), aod::femtodreamparticle::eta > etaTrack1Min, true );
152- Filter trackPtFilterLow = ifnode(aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack ), aod::femtodreamparticle::pt < ptTrack1Max, true );
153- Filter trackPtFilterUp = ifnode(aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack ), aod::femtodreamparticle::pt > ptTrack1Min, true );
121+ SliceCache cache;
154122
155123 using FilteredCharmCands = soa::Filtered<aod::FDHfCand>;
156124 using FilteredCharmCand = FilteredCharmCands::iterator;
@@ -170,6 +138,59 @@ struct HfTaskCharmHadronsFemtoDream {
170138 using FilteredFDParticles = soa::Filtered<soa::Join<aod::FDParticles, aod::FDExtParticles, aod::FDParticlesIndex>>;
171139 using FilteredFDParticle = FilteredFDParticles::iterator;
172140
141+ Filter eventMultiplicity = aod::femtodreamcollision::multNtr >= eventSel.multMin && aod::femtodreamcollision::multNtr <= eventSel.multMax;
142+ Filter eventMultiplicityPercentile = aod::femtodreamcollision::multV0M >= eventSel.multPercentileMin && aod::femtodreamcollision::multV0M <= eventSel.multPercentileMax;
143+ Filter hfCandSelFilter = aod::fdhf::candidateSelFlag >= static_cast <int8_t >(charmHadCandSel.value);
144+ Filter hfMcSelFilter = nabs(aod::fdhf::flagMc) == static_cast <int8_t >(charmHadMcSel.value);
145+ Filter trackEtaFilterLow = ifnode(aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack ), aod::femtodreamparticle::eta < etaTrack1Max, true );
146+ Filter trackEtaFilterUp = ifnode(aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack ), aod::femtodreamparticle::eta > etaTrack1Min, true );
147+ Filter trackPtFilterLow = ifnode(aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack ), aod::femtodreamparticle::pt < ptTrack1Max, true );
148+ Filter trackPtFilterUp = ifnode(aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack ), aod::femtodreamparticle::pt > ptTrack1Min, true );
149+
150+ Preslice<aod::FDParticles> perCol = aod::femtodreamparticle::fdCollisionId;
151+
152+ // / Partition for particle 1
153+ Partition<FilteredFDParticles> partitionTrk1 = (aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack )) && (ncheckbit(aod::femtodreamparticle::cut, cutBitTrack1)) && ifnode(aod::femtodreamparticle::pt * (nexp(aod::femtodreamparticle::eta) + nexp(-1 .f * aod::femtodreamparticle::eta)) / 2 .f <= pidThresTrack1, ncheckbit(aod::femtodreamparticle::pidcut, tpcBitTrack1), ncheckbit(aod::femtodreamparticle::pidcut, tpcTofBitTrack1));
154+
155+ Partition<FilteredFDMcParts> partitionMcTrk1 = (aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack )) &&
156+ (ncheckbit(aod::femtodreamparticle::cut, cutBitTrack1)) &&
157+ ifnode (aod::femtodreamparticle::pt * (nexp(aod::femtodreamparticle::eta) + nexp(-1 .f * aod::femtodreamparticle::eta)) / 2.f <= pidThresTrack1, ncheckbit(aod::femtodreamparticle::pidcut, tpcBitTrack1), ncheckbit(aod::femtodreamparticle::pidcut, tpcTofBitTrack1));
158+
159+ // / Partition for particle 2
160+ Partition<FilteredCharmCands> partitionCharmHadron = aod::fdhf::bdtBkg < charmHadBkgBDTmax && aod::fdhf::bdtFD < charmHadFdBDTmax && aod::fdhf::bdtFD > charmHadFdBDTmin&& aod::fdhf::bdtPrompt<charmHadPromptBDTmax && aod::fdhf::bdtPrompt> charmHadPromptBDTmin;
161+ Partition<FilteredCharmMcCands> partitionMcCharmHadron = aod::fdhf::originMcRec == 1 || aod::fdhf::originMcRec == 2 ;
162+
163+ // / Binning configurables
164+ ConfigurableAxis bin4Dkstar{" bin4Dkstar" , {1500 , 0 ., 6 .}, " binning kstar for the 4Dimensional plot: k* vs multiplicity vs multiplicity percentile vs mT (set <<Confuse4D>> to true in order to use)" };
165+ ConfigurableAxis bin4DMult{" bin4DMult" , {VARIABLE_WIDTH , 0 .0f , 4 .0f , 8 .0f , 12 .0f , 16 .0f , 20 .0f , 24 .0f , 28 .0f , 32 .0f , 36 .0f , 40 .0f , 44 .0f , 48 .0f , 52 .0f , 56 .0f , 60 .0f , 64 .0f , 68 .0f , 72 .0f , 76 .0f , 80 .0f , 84 .0f , 88 .0f , 92 .0f , 96 .0f , 100 .0f , 200 .0f }, " multiplicity Binning for the 4Dimensional plot: k* vs multiplicity vs multiplicity percentile vs mT (set <<Confuse4D>> to true in order to use)" };
166+ ConfigurableAxis bin4DmT{" bin4DmT" , {VARIABLE_WIDTH , 1 .02f , 1 .14f , 1 .20f , 1 .26f , 1 .38f , 1 .56f , 1 .86f , 4 .50f }, " mT Binning for the 4Dimensional plot: k* vs multiplicity vs multiplicity percentile vs mT (set <<Confuse4D>> to true in order to use)" };
167+ ConfigurableAxis bin4DmultPercentile{" bin4DmultPercentile" , {10 , 0 .0f , 100 .0f }, " multiplicity percentile Binning for the 4Dimensional plot: k* vs multiplicity vs multiplicity percentile vs mT (set <<Confuse4D>> to true in order to use)" };
168+ ConfigurableAxis binInvMass{" binInvMass" , {400 , 2.10 , 2.50 }, " InvMass binning" };
169+ ConfigurableAxis binpTCharm{" binpTCharm" , {360 , 0 , 36 }, " pT binning of charm hadron" };
170+ ConfigurableAxis binTempFitVarTrack{" binTempFitVarTrack" , {300 , -0.15 , 0.15 }, " binning of the TempFitVar in the pT vs. TempFitVar plot (Track)" };
171+ ConfigurableAxis binmT{" binmT" , {225 , 0 ., 7.5 }, " binning mT" };
172+ ConfigurableAxis binmultTempFit{" binmultTempFit" , {1 , 0 , 1 }, " multiplicity Binning for the TempFitVar plot" };
173+ ConfigurableAxis binMulPercentile{" binMulPercentile" , {10 , 0 .0f , 100 .0f }, " multiplicity percentile Binning" };
174+ ConfigurableAxis binpTTrack{" binpTTrack" , {50 , 0.5 , 10.05 }, " pT binning of the pT vs. TempFitVar plot (Track)" };
175+ ConfigurableAxis binEta{" binEta" , {{200 , -1.5 , 1.5 }}, " eta binning" };
176+ ConfigurableAxis binPhi{" binPhi" , {{200 , 0 , TMath::TwoPi ()}}, " phi binning" };
177+ ConfigurableAxis binkT{" binkT" , {150 , 0 ., 9 .}, " binning kT" };
178+ ConfigurableAxis binkstar{" binkstar" , {1500 , 0 ., 6 .}, " binning kstar" };
179+ ConfigurableAxis binNSigmaTPC{" binNSigmaTPC" , {1600 , -8 , 8 }, " Binning of Nsigma TPC plot" };
180+ ConfigurableAxis binNSigmaTOF{" binNSigmaTOF" , {3000 , -15 , 15 }, " Binning of the Nsigma TOF plot" };
181+ ConfigurableAxis binNSigmaTPCTOF{" binNSigmaTPCTOF" , {3000 , -15 , 15 }, " Binning of the Nsigma TPC+TOF plot" };
182+ ConfigurableAxis binTPCClusters{" binTPCClusters" , {163 , -0.5 , 162.5 }, " Binning of TPC found clusters plot" };
183+
184+ ColumnBinningPolicy<aod::collision::PosZ, aod::femtodreamcollision::MultNtr> colBinningMult{{mixingBinVztx, mixingBinMult}, true };
185+ ColumnBinningPolicy<aod::collision::PosZ, aod::femtodreamcollision::MultV0M> colBinningMultPercentile{{mixingBinVztx, mixingBinMultPercentile}, true };
186+ ColumnBinningPolicy<aod::collision::PosZ, aod::femtodreamcollision::MultNtr, aod::femtodreamcollision::MultV0M> colBinningMultMultPercentile{{mixingBinVztx, mixingBinMult, mixingBinMultPercentile}, true };
187+
188+ FemtoDreamContainer<femtoDreamContainer::EventType::same, femtoDreamContainer::Observable::kstar> sameEventCont;
189+ FemtoDreamContainer<femtoDreamContainer::EventType::mixed, femtoDreamContainer::Observable::kstar> mixedEventCont;
190+ FemtoDreamPairCleaner<aod::femtodreamparticle::ParticleType::kTrack , aod::femtodreamparticle::ParticleType::kCharmHadron > pairCleaner;
191+ FemtoDreamDetaDphiStar<aod::femtodreamparticle::ParticleType::kTrack , aod::femtodreamparticle::ParticleType::kCharmHadron > pairCloseRejectionSE;
192+ FemtoDreamDetaDphiStar<aod::femtodreamparticle::ParticleType::kTrack , aod::femtodreamparticle::ParticleType::kCharmHadron > pairCloseRejectionME;
193+
173194 femtodreamcollision::BitMaskType bitMask = 1 << 0 ;
174195
175196 // / Histogramming for particle 1
@@ -182,29 +203,12 @@ struct HfTaskCharmHadronsFemtoDream {
182203 HistogramRegistry registry{" CorrelationsAndQA" , {}, OutputObjHandlingPolicy::AnalysisObject};
183204 HistogramRegistry registryMixQa{" registryMixQa" };
184205 HistogramRegistry registryCharmHadronQa{" registryCharmHadronQa" };
185- // / Partition for particle 1
186-
187- Partition<FilteredFDParticles> partitionTrk1 = (aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack )) && (ncheckbit(aod::femtodreamparticle::cut, cutBitTrack1)) && ifnode(aod::femtodreamparticle::pt * (nexp(aod::femtodreamparticle::eta) + nexp(-1 .f * aod::femtodreamparticle::eta)) / 2 .f <= pidThresTrack1, ncheckbit(aod::femtodreamparticle::pidcut, tpcBitTrack1), ncheckbit(aod::femtodreamparticle::pidcut, tpcTofBitTrack1));
188-
189- Partition<FilteredFDMcParts> partitionMcTrk1 = (aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack )) &&
190- (ncheckbit(aod::femtodreamparticle::cut, cutBitTrack1)) &&
191- ifnode (aod::femtodreamparticle::pt * (nexp(aod::femtodreamparticle::eta) + nexp(-1 .f * aod::femtodreamparticle::eta)) / 2.f <= pidThresTrack1, ncheckbit(aod::femtodreamparticle::pidcut, tpcBitTrack1), ncheckbit(aod::femtodreamparticle::pidcut, tpcTofBitTrack1));
192-
193- // / Partition for particle 2
194- Partition<FilteredCharmCands> partitionCharmHadron = aod::fdhf::bdtBkg < charmHadBkgBDTmax && aod::fdhf::bdtFD < charmHadFdBDTmax && aod::fdhf::bdtFD > charmHadFdBDTmin&& aod::fdhf::bdtPrompt<charmHadPromptBDTmax && aod::fdhf::bdtPrompt> charmHadPromptBDTmin;
195- Partition<FilteredCharmMcCands> partitionMcCharmHadron = aod::fdhf::originMcRec == 1 || aod::fdhf::originMcRec == 2 ;
196206
197207 float massOne = o2::analysis::femtoDream::getMass(pdgCodeTrack1);
198208 float massTwo = o2::analysis::femtoDream::getMass(charmHadPDGCode);
199209 int8_t partSign = 0 ;
200210 int64_t processType = 0 ;
201211
202- SliceCache cache;
203- Preslice<aod::FDParticles> perCol = aod::femtodreamparticle::fdCollisionId;
204- Produces<o2::aod::FDHfCharm> rowFemtoResultCharm;
205- Produces<o2::aod::FDHfTrk> rowFemtoResultTrk;
206- Produces<o2::aod::FDHfColl> rowFemtoResultColl;
207-
208212 void init (InitContext& /* context*/ )
209213 {
210214 // setup columnpolicy for binning
0 commit comments