15
15
// / \author Biao Zhang, Heidelberg University, [email protected]
16
16
17
17
#include < vector>
18
+ #include < string>
18
19
19
20
#include " Framework/Expressions.h"
20
21
#include " Framework/AnalysisTask.h"
@@ -61,10 +62,18 @@ struct HfTaskCharmHadronsFemtoDream {
61
62
ConfigurableAxis binTempFitVarTrack{" binTempFitVarTrack" , {300 , -0.15 , 0.15 }, " binning of the TempFitVar in the pT vs. TempFitVar plot (Track)" };
62
63
ConfigurableAxis binmT{" binmT" , {225 , 0 ., 7.5 }, " binning mT" };
63
64
ConfigurableAxis binmultTempFit{" binmultTempFit" , {1 , 0 , 1 }, " multiplicity Binning for the TempFitVar plot" };
65
+ ConfigurableAxis binMulPercentile{" binMulPercentile" , {10 , 0 .0f , 100 .0f }, " multiplicity percentile Binning" };
64
66
ConfigurableAxis binpT{" binpT" , {20 , 0.5 , 4.05 }, " pT binning" };
65
67
ConfigurableAxis binpTTrack{" binpTTrack" , {50 , 0.5 , 10.05 }, " pT binning of the pT vs. TempFitVar plot (Track)" };
68
+ ConfigurableAxis binEta{" binEta" , {{200 , -1.5 , 1.5 }}, " eta binning" };
69
+ ConfigurableAxis binPhi{" binPhi" , {{200 , 0 , TMath::TwoPi ()}}, " phi binning" };
66
70
ConfigurableAxis binkT{" binkT" , {150 , 0 ., 9 .}, " binning kT" };
67
71
ConfigurableAxis binkstar{" binkstar" , {1500 , 0 ., 6 .}, " binning kstar" };
72
+ ConfigurableAxis binNSigmaTPC{" binNSigmaTPC" , {1600 , -8 , 8 }, " Binning of Nsigma TPC plot" };
73
+ ConfigurableAxis binNSigmaTOF{" binNSigmaTOF" , {3000 , -15 , 15 }, " Binning of the Nsigma TOF plot" };
74
+ ConfigurableAxis binNSigmaTPCTOF{" binNSigmaTPCTOF" , {3000 , -15 , 15 }, " Binning of the Nsigma TPC+TOF plot" };
75
+ ConfigurableAxis binTPCClusters{" binTPCClusters" , {163 , -0.5 , 162.5 }, " Binning of TPC found clusters plot" };
76
+ Configurable<int > ConfTempFitVarMomentum{" ConfTempFitVarMomentum" , 0 , " Momentum used for binning: 0 -> pt; 1 -> preco; 2 -> ptpc" };
68
77
69
78
// / Particle 2 (Charm Hadrons)
70
79
Configurable<float > charmHadBkgBDTmax{" charmHadBkgBDTmax" , 1 ., " Maximum background bdt score for Charm Hadron (particle 2)" };
@@ -149,10 +158,10 @@ struct HfTaskCharmHadronsFemtoDream {
149
158
using FilteredMcColisions = soa::Filtered<soa::Join<aod::FDCollisions, FDColMasks, aod::FDMCCollLabels>>;
150
159
using FilteredMcColision = FilteredMcColisions::iterator;
151
160
152
- using FilteredFDMcParts = soa::Filtered<soa::Join<aod::FDParticles, aod::FDParticlesIndex, aod::FDMCLabels>>;
161
+ using FilteredFDMcParts = soa::Filtered<soa::Join<aod::FDParticles, aod::FDParticlesIndex, aod::FDExtParticles, aod:: FDMCLabels, aod::FDExtMCLabels >>;
153
162
using FilteredFDMcPart = FilteredFDMcParts::iterator;
154
163
155
- using FilteredFDParticles = soa::Filtered<soa::Join<aod::FDParticles, aod::FDParticlesIndex>>;
164
+ using FilteredFDParticles = soa::Filtered<soa::Join<aod::FDParticles, aod::FDExtParticles, aod:: FDParticlesIndex>>;
156
165
using FilteredFDParticle = FilteredFDParticles::iterator;
157
166
158
167
femtodreamcollision::BitMaskType BitMask = 1 << 0 ;
@@ -166,7 +175,7 @@ struct HfTaskCharmHadronsFemtoDream {
166
175
HistogramRegistry registryMixQa{" registryMixQa" };
167
176
// / Partition for particle 1
168
177
169
- Partition<FilteredFDParticles> partitionTrk1 = (aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack ));
178
+ 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)) ;
170
179
171
180
Partition<FilteredFDMcParts> partitionMcTrk1 = (aod::femtodreamparticle::partType == uint8_t (aod::femtodreamparticle::ParticleType::kTrack )) &&
172
181
(ncheckbit(aod::femtodreamparticle::cut, cutBitTrack1)) &&
@@ -188,7 +197,7 @@ struct HfTaskCharmHadronsFemtoDream {
188
197
void init (InitContext& /* context*/ )
189
198
{
190
199
eventHisto.init (®istry);
191
- trackHistoPartOne.init (®istry, binmultTempFit, dummy , binpTTrack, dummy, dummy , binTempFitVarTrack, dummy, dummy, dummy, dummy , dummy, isMc, pdgCodeTrack1);
200
+ trackHistoPartOne.init (®istry, binmultTempFit, binMulPercentile , binpTTrack, binEta, binPhi , binTempFitVarTrack, binNSigmaTPC, binNSigmaTOF, binNSigmaTPCTOF, binTPCClusters , dummy, isMc, pdgCodeTrack1, true );
192
201
193
202
sameEventCont.init <true >(®istry,
194
203
binkstar, binpT, binkT, binmT, mixingBinMult, mixingBinMultPercentile,
@@ -233,7 +242,7 @@ struct HfTaskCharmHadronsFemtoDream {
233
242
// / Histogramming same event
234
243
for (auto const & part : sliceTrk1) {
235
244
236
- trackHistoPartOne.fillQA <isMc, false >(part, aod::femtodreamparticle::kPt , col.multNtr (), col.multV0M ());
245
+ trackHistoPartOne.fillQA <isMc, true >(part, aod::femtodreamparticle::kPt , col.multNtr (), col.multV0M ());
237
246
}
238
247
239
248
for (auto const & [p1, p2] : combinations (CombinationsFullIndexPolicy (sliceTrk1, sliceCharmHad))) {
@@ -452,6 +461,7 @@ struct HfTaskCharmHadronsFemtoDream {
452
461
void processSameEventMc (FilteredMcColision const & col,
453
462
FilteredFDMcParts const & parts,
454
463
o2::aod::FDMCParticles const &,
464
+ o2::aod::FDExtMCParticles const &,
455
465
FilteredCharmMcCands const &)
456
466
{
457
467
if ((col.bitmaskTrackOne () & BitMask) != BitMask || (col.bitmaskTrackTwo () & BitMask) != BitMask) {
@@ -474,6 +484,7 @@ struct HfTaskCharmHadronsFemtoDream {
474
484
void processMixedEventMc (FilteredMcColisions const & cols,
475
485
FilteredFDMcParts const & parts,
476
486
o2::aod::FDMCParticles const &,
487
+ o2::aod::FDExtMCParticles const &,
477
488
FilteredCharmMcCands const &)
478
489
{
479
490
switch (mixingBinPolicy.value ) {
0 commit comments