Skip to content

Commit 0712125

Browse files
rolavickalibuild
andauthored
[PWGUD] Personal task modification (#10083)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 5c0dcec commit 0712125

File tree

1 file changed

+47
-24
lines changed

1 file changed

+47
-24
lines changed

PWGUD/Tasks/upcTauCentralBarrelRL.cxx

Lines changed: 47 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ struct UpcTauRl {
7878
Configurable<float> cutTrueGapSideFT0C{"cutTrueGapSideFT0C", 50., "FT0C threshold for SG selector"};
7979
Configurable<float> cutTrueGapSideZDC{"cutTrueGapSideZDC", 0., "ZDC threshold for SG selector. 0 is <1n, 4.2 is <2n, 6.7 is <3n, 9.5 is <4n, 12.5 is <5n"};
8080
Configurable<float> cutFITtime{"cutFITtime", 40., "Maximum FIT time allowed. Default is 40ns"};
81+
Configurable<float> cutEvOccupancy{"cutEvOccupancy", 100000., "Maximum allowed occupancy"};
82+
Configurable<bool> cutEvTrs{"cutEvTrs", true, {"Event selection bit kNoCollInTimeRangeStandard"}};
83+
Configurable<bool> cutEvTrofs{"cutEvTrofs", true, {"Event selection bit kNoCollInRofStandard"}};
84+
Configurable<bool> cutEvHmpr{"cutEvHmpr", true, {"Event selection bit kNoHighMultCollInPrevRof"}};
8185
Configurable<bool> applyAcceptanceSelection{"applyAcceptanceSelection", false, {"Select events in ALICE CB acceptance set with cutTrackEta"}};
8286
Configurable<float> cutTrackEta{"cutTrackEta", 0.9, "Cut on central barrel track eta in absolute values."};
8387
} cutSample;
@@ -108,8 +112,9 @@ struct UpcTauRl {
108112
Configurable<bool> useThresholdsPID{"useThresholdsPID", false, {"Switch off smaller-sigma-wins pidZ."}};
109113
Configurable<bool> applyTauEventSelection{"applyTauEventSelection", true, {"Select tau event."}};
110114
Configurable<bool> cutOppositeCharge{"cutOppositeCharge", true, {"Tracks have opposite charge."}};
115+
Configurable<bool> cutSameCharge{"cutSameCharge", false, {"Tracks have same charge."}};
111116
Configurable<float> cutMaxAcoplanarity{"cutMaxAcoplanarity", 4 * o2::constants::math::PI / 5, {"Opening angle of the tracks. What is more goes away."}};
112-
Configurable<float> cutMinAcoplanarity{"cutMinAcoplanarity", 2 * o2::constants::math::PI / 5, {"Opening angle of the tracks. What is less goes away."}};
117+
Configurable<float> cutMinAcoplanarity{"cutMinAcoplanarity", 0 * o2::constants::math::PI / 5, {"Opening angle of the tracks. What is less goes away."}};
113118
Configurable<bool> cutElectronHasTOF{"cutElectronHasTOF", true, {"Electron is required to hit TOF."}};
114119
Configurable<bool> cutGoodElectron{"cutGoodElectron", true, {"Select good electron."}};
115120
Configurable<bool> cutOutRho{"cutOutRho", false, {"Cut out rho mass under two tracks are pions hypothesis"}};
@@ -181,11 +186,11 @@ struct UpcTauRl {
181186
} confAxis;
182187

183188
using FullUDTracks = soa::Join<aod::UDTracks, aod::UDTracksExtra, aod::UDTracksDCA, aod::UDTracksPID, aod::UDTracksFlags>;
184-
using FullUDCollision = soa::Join<aod::UDCollisions, aod::UDCollisionsSels>::iterator;
185-
using FullSGUDCollision = soa::Join<aod::UDCollisions, aod::UDCollisionsSels, aod::SGCollisions, aod::UDZdcsReduced>::iterator;
189+
using FullUDCollision = soa::Join<aod::UDCollisions, aod::UDCollisionsSels, aod::UDCollisionSelExtras>::iterator;
190+
using FullSGUDCollision = soa::Join<aod::UDCollisions, aod::UDCollisionsSels, aod::UDCollisionSelExtras, aod::SGCollisions, aod::UDZdcsReduced>::iterator;
186191
using FullMCUDTracks = soa::Join<aod::UDTracks, aod::UDTracksExtra, aod::UDTracksDCA, aod::UDTracksPID, aod::UDTracksFlags, aod::UDMcTrackLabels>;
187-
using FullMCUDCollision = soa::Join<aod::UDCollisions, aod::UDCollisionsSels, aod::UDMcCollsLabels>::iterator;
188-
using FullMCSGUDCollision = soa::Join<aod::UDCollisions, aod::UDCollisionsSels, aod::SGCollisions, aod::UDMcCollsLabels>::iterator;
192+
using FullMCUDCollision = soa::Join<aod::UDCollisions, aod::UDCollisionsSels, aod::UDCollisionSelExtras, aod::UDMcCollsLabels>::iterator;
193+
using FullMCSGUDCollision = soa::Join<aod::UDCollisions, aod::UDCollisionsSels, aod::UDCollisionSelExtras, aod::SGCollisions, aod::UDMcCollsLabels>::iterator;
189194

190195
// init
191196
void init(InitContext&)
@@ -938,6 +943,29 @@ struct UpcTauRl {
938943
return true;
939944
}
940945

946+
template <typename C>
947+
bool isGoodROFtime(C const& coll)
948+
{
949+
950+
// Occupancy
951+
if (coll.occupancyInTime() > cutSample.cutEvOccupancy)
952+
return false;
953+
954+
// kNoCollInTimeRangeStandard
955+
if (cutSample.cutEvTrs && !coll.trs())
956+
return false;
957+
958+
// kNoCollInRofStandard
959+
if (cutSample.cutEvTrofs && !coll.trofs())
960+
return false;
961+
962+
// kNoHighMultCollInPrevRof
963+
if (cutSample.cutEvHmpr && !coll.hmpr())
964+
return false;
965+
966+
return true;
967+
}
968+
941969
template <typename T>
942970
bool isElectronCandidate(T const& electronCandidate)
943971
// Loose criterium to find electron-like particle
@@ -1030,6 +1058,8 @@ struct UpcTauRl {
10301058
int enumTrk1 = (cutTauEvent.useThresholdsPID ? (isElectronCandidate(trkDaug1) ? P_ELECTRON : P_PION) : enumMyParticle(trackPDG(trkDaug1, cutPID.cutSiTPC, cutPID.cutSiTOF, cutPID.usePIDwTOF, cutPID.useScutTOFinTPC)));
10311059
if (cutTauEvent.cutOppositeCharge && (trkDaug1.sign() * trkDaug2.sign() > 0))
10321060
return false;
1061+
if (cutTauEvent.cutSameCharge && (trkDaug1.sign() * trkDaug2.sign() < 0))
1062+
return false;
10331063
if (calculateAcoplanarity(daug[0].Phi(), daug[1].Phi()) > cutTauEvent.cutMaxAcoplanarity)
10341064
return false;
10351065
if (calculateAcoplanarity(daug[0].Phi(), daug[1].Phi()) < cutTauEvent.cutMinAcoplanarity)
@@ -2487,6 +2517,9 @@ struct UpcTauRl {
24872517
FullUDTracks const& reconstructedBarrelTracks)
24882518
{
24892519

2520+
if (!isGoodROFtime(reconstructedCollision))
2521+
return;
2522+
24902523
if (!isGoodFITtime(reconstructedCollision, cutSample.cutFITtime))
24912524
return;
24922525

@@ -2510,6 +2543,9 @@ struct UpcTauRl {
25102543
if (cutSample.useTrueGap)
25112544
gapSide = trueGapSide;
25122545

2546+
if (!isGoodROFtime(reconstructedCollision))
2547+
return;
2548+
25132549
if (gapSide != cutSample.whichGapSide)
25142550
return;
25152551

@@ -2531,6 +2567,9 @@ struct UpcTauRl {
25312567
{
25322568
isMC = true;
25332569

2570+
if (!isGoodROFtime(reconstructedCollision))
2571+
return;
2572+
25342573
if (!isGoodFITtime(reconstructedCollision, cutSample.cutFITtime))
25352574
return;
25362575

@@ -2567,6 +2606,9 @@ struct UpcTauRl {
25672606
if (gapSide != cutSample.whichGapSide)
25682607
return;
25692608

2609+
if (!isGoodROFtime(reconstructedCollision))
2610+
return;
2611+
25702612
if (!isGoodFITtime(reconstructedCollision, cutSample.cutFITtime))
25712613
return;
25722614

@@ -2612,30 +2654,11 @@ struct UpcTauRl {
26122654

26132655
} // end processMCgenDG
26142656

2615-
void processTestMC(FullMCUDCollision const& /*reconstructedCollision*/,
2616-
FullMCUDTracks const& /*reconstructedBarrelTracks*/,
2617-
aod::UDMcCollisions const&,
2618-
aod::UDMcParticles const&)
2619-
{
2620-
// if (reconstructedCollision.has_udMcCollision()) {
2621-
// const auto& generatedCollision = reconstructedCollision.udMcCollision();
2622-
// printDebugMessage(Form("%lli udMcCollision found", generatedCollision.size())); // FIXME: Type of size() is not invariant.
2623-
// }
2624-
2625-
// const auto& track = reconstructedBarrelTracks.iteratorAt(0);
2626-
// if (track.size() && track.has_udMcParticle()) {
2627-
// const auto& particle = track.udMcParticle();
2628-
// printDebugMessage(Form("%lli udMcParticle found", particle.size())); // FIXME: Type of size() is not invariant.
2629-
// }
2630-
2631-
} // end processTestMC
2632-
26332657
PROCESS_SWITCH(UpcTauRl, processDataDG, "Iterate UD tables with measured data created by DG-Candidate-Producer.", false);
26342658
PROCESS_SWITCH(UpcTauRl, processDataSG, "Iterate UD tables with measured data created by SG-Candidate-Producer.", false);
26352659
PROCESS_SWITCH(UpcTauRl, processMCrecDG, "Iterate Monte Carlo UD tables with reconstructed data created by DG-Candidate-Producer. Similar to processDataDG but uses association to truth level.", false);
26362660
PROCESS_SWITCH(UpcTauRl, processMCrecSG, "Iterate Monte Carlo UD tables with reconstructed data created by SG-Candidate-Producer. Similar to processDataSG but uses association to truth level and trueGap is not available.", false);
26372661
PROCESS_SWITCH(UpcTauRl, processMCgen, "Iterate Monte Carlo UD tables with truth data.", false);
2638-
PROCESS_SWITCH(UpcTauRl, processTestMC, "Simple test of indices in MC sample.", false);
26392662
};
26402663

26412664
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)