Skip to content

Commit 9bc4905

Browse files
committed
additional trackselection cuts
1 parent aeec919 commit 9bc4905

1 file changed

Lines changed: 70 additions & 19 deletions

File tree

PWGJE/Tasks/jetSpectraEseTask.cxx

Lines changed: 70 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@ struct JetSpectraEseTask {
9191
Configurable<float> trackEtaMax{"trackEtaMax", 0.9, "maximum eta acceptance for tracks"};
9292
Configurable<float> trackPtMin{"trackPtMin", 0.15, "minimum pT acceptance for tracks"};
9393
Configurable<float> trackPtMax{"trackPtMax", 200.0, "maximum pT acceptance for tracks"};
94+
Configurable<float> trackDCAzMax{"trackDCAzMax", 2.0, "maximum DCAz for tracks"};
95+
Configurable<float> cfgNTPCXrows{"cfgNTPCXrows", 70, "minimum number of crossed rows in the TPC for tracks"};
96+
Configurable<float> cfgNTPCCls{"cfgNTPCCls", 50, "minimum number of clusters in the TPC for tracks"};
97+
Configurable<float> cfgChi2PrTPCcls{"cfgChi2PrTPCcls", 2.5, "cut for chi2 per TPC cluster for tracks"};
98+
Configurable<float> cfgChi2PrITScls{"cfgChi2PrITScls", 36, "cut for chi2 per ITS cluster for tracks"};
99+
94100
Configurable<float> trackPtMinRhoPhi{"trackPtMinRhoPhi", 0.2, "minimum pT acceptance for tracks used in rho(phi) calculation"};
95101
Configurable<float> trackPtMaxRhoPhi{"trackPtMaxRhoPhi", 5.0, "maximum pT acceptance for tracks used in rho(phi) calculation"};
96102

@@ -137,13 +143,16 @@ struct JetSpectraEseTask {
137143
ConfigurableAxis binsCentrality{"binsCentrality", {VARIABLE_WIDTH, 0.0, 10., 30., 50, 70., 100.}, "Mixing bins - centrality"};
138144
ConfigurableAxis binsZVtx{"binsZVtx", {VARIABLE_WIDTH, -10.0f, -2.5f, 2.5f, 10.0f}, "Mixing bins - z-vertex"};
139145

146+
Configurable<bool> applyRCTSelections{"applyRCTSelections", true, "apply RCT selections"};
147+
Configurable<bool> skipMBGapEvents{"skipMBGapEvents", false, "flag to choose to reject min. bias gap events"};
148+
140149
HistogramRegistry registry{"registry", {}, OutputObjHandlingPolicy::AnalysisObject, false, false};
141150

142151
std::vector<int> eventSelectionBits;
143152
int trackSelection{-1};
144153

145-
static constexpr float Scaler = 100.0f;
146-
static constexpr float Acceptance = 0.9f;
154+
static constexpr float RScale = 100.0f;
155+
static constexpr float EtaAcceptance = 0.9f;
147156
static constexpr float LowFT0Cut = 1e-8;
148157

149158
Service<ccdb::BasicCCDBManager> ccdb;
@@ -155,13 +164,15 @@ struct JetSpectraEseTask {
155164
} cfg;
156165

157166
Filter trackCuts = (aod::jtrack::pt >= trackPtMin && aod::jtrack::pt < trackPtMax && aod::jtrack::eta > trackEtaMin && aod::jtrack::eta < trackEtaMax);
158-
Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * Scaler) && nabs(aod::jet::eta) < Acceptance - jetR;
167+
Filter jetCuts = aod::jet::pt > jetPtMin&& aod::jet::r == nround(jetR.node() * RScale) && nabs(aod::jet::eta) < EtaAcceptance - jetR;
159168
Filter colFilter = nabs(aod::jcollision::posZ) < vertexZCut;
160169
Filter mcCollisionFilter = nabs(aod::jmccollision::posZ) < vertexZCut;
161170
using ChargedMCDJets = soa::Filtered<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetsMatchedToChargedMCParticleLevelJets, aod::ChargedMCDetectorLevelJetEventWeights>>;
162171
Preslice<ChargedMCDJets> mcdjetsPerJCollision = o2::aod::jet::collisionId;
163172
Preslice<aod::JetTracks> tracksPerJCollision = o2::aod::jtrack::collisionId;
164173
Preslice<aod::JetTracksMCD> mcdTracksPerJCollision = o2::aod::jtrack::collisionId;
174+
175+
using ETracks = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection>;
165176

166177
SliceCache cache;
167178
using BinningType = ColumnBinningPolicy<aod::jcollision::PosZ, aod::jcollision::CentFT0C>;
@@ -551,6 +562,8 @@ struct JetSpectraEseTask {
551562
for (const auto& track : tracks) {
552563
if (!jetderiveddatautilities::selectTrack(track, trackSelection))
553564
continue;
565+
if (!isTrackSelected(track.template track_as<ETracks>()))
566+
continue;
554567
double weff = getEfficiency(track, collision.posZ());
555568
if (weff < 0)
556569
continue;
@@ -569,6 +582,8 @@ struct JetSpectraEseTask {
569582
registry.fill(HIST("trackQA/before/hTrackPhi"), centrality, track.phi());
570583
if (!jetderiveddatautilities::selectTrack(track, trackSelection))
571584
continue;
585+
if (!isTrackSelected(track.template track_as<ETracks>()))
586+
continue;
572587
registry.fill(HIST("trackQA/after/hTrackPt"), centrality, track.pt(), weff);
573588
registry.fill(HIST("trackQA/after/hTrackEta"), centrality, track.eta());
574589
registry.fill(HIST("trackQA/after/hTrackPhi"), centrality, track.phi());
@@ -591,9 +606,9 @@ struct JetSpectraEseTask {
591606
registry.fill(HIST("eventQA/before/hVtxZMixed"), c1.posZ());
592607
registry.fill(HIST("eventQA/before/hVtxZMixed2"), c2.posZ());
593608
registry.fill(HIST("eventQA/hEventCounterMixed"), kFilteredInputEv);
594-
if (!jetderiveddatautilities::selectCollision(c1, eventSelectionBits))
609+
if (!jetderiveddatautilities::selectCollision(c1, eventSelectionBits, skipMBGapEvents, applyRCTSelections))
595610
continue;
596-
if (!jetderiveddatautilities::selectCollision(c2, eventSelectionBits))
611+
if (!jetderiveddatautilities::selectCollision(c2, eventSelectionBits, skipMBGapEvents, applyRCTSelections))
597612
continue;
598613
registry.fill(HIST("eventQA/hEventCounterMixed"), kEventSel);
599614
if (cfgEvSelOccupancy && !isOccupancyAccepted(c1))
@@ -649,6 +664,8 @@ struct JetSpectraEseTask {
649664
for (const auto& track : tracks2) {
650665
if (!jetderiveddatautilities::selectTrack(track, trackSelection))
651666
continue;
667+
if (!isTrackSelected(track.template track_as<ETracks>()))
668+
continue;
652669
double weff = getEfficiency(track, c2.posZ());
653670
if (weff < 0)
654671
continue;
@@ -667,6 +684,8 @@ struct JetSpectraEseTask {
667684
registry.fill(HIST("trackQA/before/hTrackPhiMixed"), centrality, track.phi());
668685
if (!jetderiveddatautilities::selectTrack(track, trackSelection))
669686
continue;
687+
if (!isTrackSelected(track.template track_as<ETracks>()))
688+
continue;
670689
registry.fill(HIST("trackQA/after/hTrackPtMixed"), centrality, track.pt(), weff);
671690
registry.fill(HIST("trackQA/after/hTrackEtaMixed"), centrality, track.eta());
672691
registry.fill(HIST("trackQA/after/hTrackPhiMixed"), centrality, track.phi());
@@ -676,11 +695,11 @@ struct JetSpectraEseTask {
676695

677696
void processESEDataCharged(soa::Join<aod::JetCollisions, aod::BkgChargedRhos, aod::Qvectors, aod::QPercentileFT0Cs>::iterator const& collision,
678697
soa::Filtered<soa::Join<aod::ChargedJets, aod::ChargedJetConstituents>> const& jets,
679-
aod::JetTracks const& tracks, aod::JBCs const&)
698+
soa::Join<aod::JetTracks, aod::JTrackPIs> const& tracks, aod::JBCs const&, ETracks const&)
680699
{
681700
registry.fill(HIST("eventQA/hEventCounter"), kFilteredInputEv);
682701
registry.fill(HIST("eventQA/before/hVtxZ"), collision.posZ());
683-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits))
702+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections))
684703
return;
685704
registry.fill(HIST("eventQA/hEventCounter"), kEventSel);
686705

@@ -696,7 +715,7 @@ struct JetSpectraEseTask {
696715

697716
void processESEDataChargedMixed(soa::Join<aod::JetCollisions, aod::BkgChargedRhos, aod::Qvectors, aod::QPercentileFT0Cs> const& collisions,
698717
soa::Filtered<soa::Join<aod::ChargedJets, aod::ChargedJetConstituents>> const& jets,
699-
aod::JetTracks const& tracks, aod::JBCs const&)
718+
soa::Join<aod::JetTracks, aod::JTrackPIs> const& tracks, aod::JBCs const&, ETracks const&)
700719
{
701720
jetMixed(collisions, jets, tracks);
702721
}
@@ -707,7 +726,7 @@ struct JetSpectraEseTask {
707726
aod::JetTracks const&)
708727
{
709728

710-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits))
729+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections))
711730
return;
712731

713732
if (cfgEvSelOccupancy && !isOccupancyAccepted(collision))
@@ -737,7 +756,7 @@ struct JetSpectraEseTask {
737756
registry.fill(HIST("hPsiOccupancy"), collision.centFT0M(), psi.psi2, occupancy);
738757
registry.fill(HIST("hOccupancy"), collision.centFT0M(), occupancy);
739758

740-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits))
759+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections))
741760
return;
742761
registry.fill(HIST("hEventCounterOcc"), count++);
743762
registry.fill(HIST("hOccupancyEv"), collision.centFT0M(), occupancy);
@@ -788,7 +807,7 @@ struct JetSpectraEseTask {
788807
centrality = col.centFT0M();
789808
if (cfgEvSelOccupancy && !isOccupancyAccepted(col))
790809
fOccupancy = false;
791-
if (!jetderiveddatautilities::selectCollision(col, eventSelectionBits))
810+
if (!jetderiveddatautilities::selectCollision(col, eventSelectionBits, skipMBGapEvents, applyRCTSelections))
792811
eventSel = false;
793812
}
794813
if (cfgEvSelOccupancy && !fOccupancy)
@@ -814,7 +833,7 @@ struct JetSpectraEseTask {
814833
{
815834
float counter{0.5f};
816835
registry.fill(HIST("mcd/hEventCounter"), counter++);
817-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits))
836+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections))
818837
return;
819838
registry.fill(HIST("mcd/hEventCounter"), counter++);
820839
if (cfgEvSelOccupancy && !isOccupancyAccepted(collision))
@@ -863,7 +882,7 @@ struct JetSpectraEseTask {
863882
}
864883
registry.fill(HIST("mcm/hMCDMatchedEventCounter"), secCount++);
865884

866-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits))
885+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections))
867886
return;
868887
registry.fill(HIST("mcm/hMCDMatchedEventCounter"), secCount++);
869888

@@ -911,7 +930,7 @@ struct JetSpectraEseTask {
911930
if (!(std::abs(collision.posZ()) < vertexZCut)) {
912931
return;
913932
}
914-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
933+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections)) {
915934
return;
916935
}
917936
if (cfgEvSelOccupancy && !isOccupancyAccepted(collision)) {
@@ -949,8 +968,8 @@ struct JetSpectraEseTask {
949968
PROCESS_SWITCH(JetSpectraEseTask, processMCGenTrack, "jet MC process: Generated track", false);
950969
void processMCRecoTrack(soa::Filtered<soa::Join<aod::JetMcCollisions, aod::BkgChargedMcRhos>>::iterator const& mcCollision,
951970
soa::SmallGroups<aod::JetCollisionsMCD> const& collisions,
952-
aod::JetTracksMCD const& tracks,
953-
aod::JetParticles const&)
971+
soa::Join<aod::JetTracksMCD, aod::JTrackPIs> const& tracks,
972+
aod::JetParticles const&, ETracks const&)
954973
{
955974
if (mcCollision.size() < 1) {
956975
return;
@@ -967,7 +986,7 @@ struct JetSpectraEseTask {
967986
if (!(std::abs(collision.posZ()) < vertexZCut)) {
968987
continue;
969988
}
970-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
989+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections)) {
971990
continue;
972991
}
973992
if (cfgEvSelOccupancy && !isOccupancyAccepted(collision)) {
@@ -984,6 +1003,9 @@ struct JetSpectraEseTask {
9841003
if (!jetderiveddatautilities::selectTrack(track, trackSelection)) {
9851004
continue;
9861005
}
1006+
if (!isTrackSelected(track.template track_as<ETracks>())) {
1007+
continue;
1008+
}
9871009
if (!track.has_mcParticle()) {
9881010
continue;
9891011
}
@@ -1237,7 +1259,7 @@ struct JetSpectraEseTask {
12371259
template <typename TCollisions, typename TJets, typename TTracks>
12381260
void bkgFluctuationsRandomCone(TCollisions const& collision, TJets const& jets, TTracks const& tracks)
12391261
{
1240-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
1262+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections)) {
12411263
return;
12421264
}
12431265
if (cfgEvSelOccupancy && !isOccupancyAccepted(collision))
@@ -1484,6 +1506,35 @@ struct JetSpectraEseTask {
14841506
}
14851507
return true;
14861508
}
1509+
template <bool fill=false, typename TTrack>
1510+
bool isTrackSelected(TTrack const& track)
1511+
{
1512+
//if (!jetderiveddatautilities::selectTrack(track, trackSelection)) {
1513+
// return false;
1514+
//}
1515+
if (track.pt() < trackPtMin || track.pt() >= trackPtMax) {
1516+
return false;
1517+
}
1518+
if (track.eta() <= trackEtaMin || track.eta() >= trackEtaMax) {
1519+
return false;
1520+
}
1521+
if (track.tpcNClsCrossedRows() <= cfgNTPCXrows) {
1522+
return false;
1523+
}
1524+
if (track.tpcNClsFound() <= cfgNTPCCls) {
1525+
return false;
1526+
}
1527+
if (std::fabs(track.dcaZ()) >= trackDCAzMax) {
1528+
return false;
1529+
}
1530+
if (track.tpcChi2NCl() > cfgChi2PrTPCcls) {
1531+
return false;
1532+
}
1533+
if (track.itsChi2NCl() > cfgChi2PrITScls) {
1534+
return false;
1535+
}
1536+
return true;
1537+
}
14871538

14881539
template <typename TTracks, typename TJets>
14891540
bool isAcceptedJet(TJets const& jet, bool mcLevelIsParticleLevel = false)
@@ -1520,5 +1571,5 @@ struct JetSpectraEseTask {
15201571
}
15211572
return true;
15221573
}
1523-
};
1574+
};
15241575
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { return WorkflowSpec{adaptAnalysisTask<JetSpectraEseTask>(cfgc)}; }

0 commit comments

Comments
 (0)