Skip to content

Commit 3045665

Browse files
committed
Update of ALICE 3 charm simulation framework
1 parent 5b21f91 commit 3045665

4 files changed

Lines changed: 386 additions & 75 deletions

File tree

ALICE3/Tasks/alice3-dq-efficiency.cxx

Lines changed: 43 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,11 +1009,26 @@ struct AnalysisSameEventPairing {
10091009
uint32_t mcDecision = static_cast<uint32_t>(0);
10101010
bool isCorrectAssoc_leg1 = false;
10111011
bool isCorrectAssoc_leg2 = false;
1012-
dielectronList.reserve(1);
1013-
dielectronsExtraList.reserve(1);
1012+
1013+
int64_t reserveSize = 0;
1014+
for (auto const& event : events) {
1015+
if (event.isEventSelected_bit(0)) {
1016+
auto groupedAssocs = assocs.sliceBy(preslice, event.globalIndex());
1017+
size_t nGood = 0;
1018+
for (auto const& t : groupedAssocs) {
1019+
if (t.isBarrelSelected_raw()) {
1020+
nGood++;
1021+
}
1022+
}
1023+
reserveSize += nGood * (nGood - 1) / 2;
1024+
}
1025+
}
1026+
1027+
dielectronList.reserve(reserveSize);
1028+
dielectronsExtraList.reserve(reserveSize);
10141029

10151030
if (fConfigOptions.flatTables.value) {
1016-
dielectronAllList.reserve(1);
1031+
dielectronAllList.reserve(reserveSize);
10171032
}
10181033

10191034
for (const auto& event : events) {
@@ -1075,10 +1090,8 @@ struct AnalysisSameEventPairing {
10751090
if (fPropTrack) {
10761091
VarManager::FillPairCollision<VarManager::kDecayToEE, gkTrackFillMap>(event, t1, t2);
10771092
}
1078-
/* TODO: Reimplement Pair vertexing when secondary vertexing is available
1079-
if constexpr (TTwoProngFitter) {
1080-
// VarManager::FillPairVertexing<VarManager::kDecayToEE, gkEventFillMap, gkTrackFillMap>(event, t1, t2, fConfigOptions.propToPCA);
1081-
}*/
1093+
1094+
VarManager::FillPairVertexingAlice3<VarManager::kDecayToEE, gkEventFillMap, gkTrackFillMap>(event, t1, t2, true);
10821095
if (!fConfigMC.skimSignalOnly || (fConfigMC.skimSignalOnly && mcDecision > 0)) {
10831096
dielectronList(event.globalIndex(), VarManager::fgValues[VarManager::kMass],
10841097
VarManager::fgValues[VarManager::kPt], VarManager::fgValues[VarManager::kEta], VarManager::fgValues[VarManager::kPhi],
@@ -1188,7 +1201,6 @@ struct AnalysisSameEventPairing {
11881201

11891202
void runMCGenWithGrouping(MyEventsVtxCovSelected const& events, ReducedA3MCEvents const& /*mcEvents*/, ReducedA3MCTracks const& mcTracks)
11901203
{
1191-
[[maybe_unused]] uint32_t mcDecision = 0;
11921204
int isig = 0;
11931205

11941206
for (const auto& mctrack : mcTracks) {
@@ -1229,11 +1241,9 @@ struct AnalysisSameEventPairing {
12291241
}
12301242
}
12311243
auto track_raw = mcTracks.rawIteratorAt(track.globalIndex());
1232-
mcDecision = 0;
12331244
isig = 0;
12341245
for (const auto& sig : fGenMCSignals) {
12351246
if (sig->CheckSignal(true, track_raw)) {
1236-
mcDecision |= (static_cast<uint32_t>(1) << isig);
12371247
fHistMan->FillHistClass(Form("MCTruthGenSel_%s", sig->GetName()), VarManager::fgValues);
12381248
MCTruthTableEffi(VarManager::fgValues[VarManager::kMCPt], VarManager::fgValues[VarManager::kMCEta], VarManager::fgValues[VarManager::kMCY], VarManager::fgValues[VarManager::kMCPhi], VarManager::fgValues[VarManager::kMCVz], VarManager::fgValues[VarManager::kMCVtxZ], VarManager::fgValues[VarManager::kMultFT0A], VarManager::fgValues[VarManager::kMultFT0C], VarManager::fgValues[VarManager::kCentFT0M], VarManager::fgValues[VarManager::kVtxNcontribReal]);
12391249
}
@@ -1279,14 +1289,12 @@ struct AnalysisSameEventPairing {
12791289
auto t1_raw = mcTracks.rawIteratorAt(t1.globalIndex());
12801290
auto t2_raw = mcTracks.rawIteratorAt(t2.globalIndex());
12811291
if (t1_raw.reducedA3MCEventId() == t2_raw.reducedA3MCEventId()) {
1282-
mcDecision = 0;
12831292
isig = 0;
12841293
for (const auto& sig : fGenMCSignals) {
12851294
if (sig->GetNProngs() != TWO_PRONG) { // NOTE: 2-prong signals required here
12861295
continue;
12871296
}
12881297
if (sig->CheckSignal(true, t1_raw, t2_raw)) {
1289-
mcDecision |= (static_cast<uint32_t>(1) << isig);
12901298
VarManager::FillPairMC<VarManager::kDecayToEE>(t1, t2);
12911299
if (fUseMCGenAccCut) {
12921300
if (!fMCGenAccCut.IsSelected(VarManager::fgValues)) {
@@ -1315,10 +1323,6 @@ struct AnalysisSameEventPairing {
13151323

13161324
void processMCGen(soa::Filtered<MyEventsVtxCovSelected> const& events, ReducedA3MCEvents const& /*mcEvents*/, ReducedA3MCTracks const& mcTracks)
13171325
{
1318-
// Fill Generated histograms taking into account all generated tracks
1319-
[[maybe_unused]] uint32_t mcDecision = 0;
1320-
int isig = 0;
1321-
13221326
for (const auto& mctrack : mcTracks) {
13231327
VarManager::FillTrackMC(mcTracks, mctrack);
13241328
// NOTE: Signals are checked here mostly based on the skimmed MC stack, so depending on the requested signal, the stack could be incomplete.
@@ -1341,25 +1345,18 @@ struct AnalysisSameEventPairing {
13411345
}
13421346
VarManager::FillEventAlice3<gkEventFillMap>(event, VarManager::fgValues);
13431347
VarManager::FillEventAlice3<VarManager::ObjTypes::ReducedEventMC>(event.reducedA3MCEvent(), VarManager::fgValues);
1344-
// auto groupedMCTracks = mcTracks.sliceBy(perReducedMcGenEvent, event.reducedA3MCEventId());
1345-
// groupedMCTracks.bindInternalIndicesTo(&mcTracks);
1346-
// for (const auto& track : groupedMCTracks) {
1348+
13471349
for (const auto& track : mcTracks) {
13481350
if (track.reducedA3MCEventId() != event.reducedA3MCEventId()) {
13491351
continue;
13501352
}
13511353
VarManager::FillTrackMC(mcTracks, track);
13521354
auto track_raw = mcTracks.rawIteratorAt(track.globalIndex());
1353-
// auto track_raw = groupedMCTracks.rawIteratorAt(track.globalIndex());
1354-
mcDecision = 0;
1355-
isig = 0;
13561355
for (const auto& sig : fGenMCSignals) {
13571356
if (sig->CheckSignal(true, track_raw)) {
1358-
mcDecision |= (static_cast<uint32_t>(1) << isig);
13591357
fHistMan->FillHistClass(Form("MCTruthGenSel_%s", sig->GetName()), VarManager::fgValues);
13601358
MCTruthTableEffi(VarManager::fgValues[VarManager::kMCPt], VarManager::fgValues[VarManager::kMCEta], VarManager::fgValues[VarManager::kMCY], VarManager::fgValues[VarManager::kMCPhi], VarManager::fgValues[VarManager::kMCVz], VarManager::fgValues[VarManager::kMCVtxZ], VarManager::fgValues[VarManager::kMultFT0A], VarManager::fgValues[VarManager::kMultFT0C], VarManager::fgValues[VarManager::kCentFT0M], VarManager::fgValues[VarManager::kVtxNcontribReal]);
13611359
}
1362-
isig++;
13631360
}
13641361
}
13651362
} // end loop over reconstructed events
@@ -1399,17 +1396,13 @@ struct AnalysisSameEventPairing {
13991396
auto t1_raw = mcTracks.rawIteratorAt(t1.globalIndex());
14001397
auto t2_raw = mcTracks.rawIteratorAt(t2.globalIndex());
14011398
if (t1_raw.reducedA3MCEventId() == t2_raw.reducedA3MCEventId()) {
1402-
mcDecision = 0;
1403-
isig = 0;
14041399
for (const auto& sig : fGenMCSignals) {
14051400
if (sig->GetNProngs() != TWO_PRONG) { // NOTE: 2-prong signals required here
14061401
continue;
14071402
}
14081403
if (sig->CheckSignal(true, t1_raw, t2_raw)) {
1409-
mcDecision |= (static_cast<uint32_t>(1) << isig);
14101404
fHistMan->FillHistClass(Form("MCTruthGenPairSel_%s", sig->GetName()), VarManager::fgValues);
14111405
}
1412-
isig++;
14131406
}
14141407
}
14151408
}
@@ -1419,9 +1412,6 @@ struct AnalysisSameEventPairing {
14191412

14201413
void processMCGenWithGrouping(soa::Filtered<MyEventsVtxCovSelected> const& events, ReducedA3MCEvents const& /*mcEvents*/, ReducedA3MCTracks const& mcTracks)
14211414
{
1422-
[[maybe_unused]] uint32_t mcDecision = 0;
1423-
int isig = 0;
1424-
14251415
for (const auto& mctrack : mcTracks) {
14261416
VarManager::FillTrackMC(mcTracks, mctrack);
14271417
// NOTE: Signals are checked here mostly based on the skimmed MC stack, so depending on the requested signal, the stack could be incomplete.
@@ -1448,15 +1438,11 @@ struct AnalysisSameEventPairing {
14481438
}
14491439
VarManager::FillTrackMC(mcTracks, track);
14501440
auto track_raw = mcTracks.rawIteratorAt(track.globalIndex());
1451-
mcDecision = 0;
1452-
isig = 0;
14531441
for (const auto& sig : fGenMCSignals) {
14541442
if (sig->CheckSignal(true, track_raw)) {
1455-
mcDecision |= (static_cast<uint32_t>(1) << isig);
14561443
fHistMan->FillHistClass(Form("MCTruthGenSel_%s", sig->GetName()), VarManager::fgValues);
14571444
MCTruthTableEffi(VarManager::fgValues[VarManager::kMCPt], VarManager::fgValues[VarManager::kMCEta], VarManager::fgValues[VarManager::kMCY], VarManager::fgValues[VarManager::kMCPhi], VarManager::fgValues[VarManager::kMCVz], VarManager::fgValues[VarManager::kMCVtxZ], VarManager::fgValues[VarManager::kMultFT0A], VarManager::fgValues[VarManager::kMultFT0C], VarManager::fgValues[VarManager::kCentFT0M], VarManager::fgValues[VarManager::kVtxNcontribReal]);
14581445
}
1459-
isig++;
14601446
}
14611447
}
14621448
} // end loop over reconstructed events
@@ -1491,17 +1477,13 @@ struct AnalysisSameEventPairing {
14911477
auto t1_raw = groupedMCTracks.rawIteratorAt(t1.globalIndex());
14921478
auto t2_raw = groupedMCTracks.rawIteratorAt(t2.globalIndex());
14931479
if (t1_raw.reducedA3MCEventId() == t2_raw.reducedA3MCEventId()) {
1494-
mcDecision = 0;
1495-
isig = 0;
14961480
for (const auto& sig : fGenMCSignals) {
14971481
if (sig->GetNProngs() != TWO_PRONG) { // NOTE: 2-prong signals required here
14981482
continue;
14991483
}
15001484
if (sig->CheckSignal(true, t1_raw, t2_raw)) {
1501-
mcDecision |= (static_cast<uint32_t>(1) << isig);
15021485
fHistMan->FillHistClass(Form("MCTruthGenPairSel_%s", sig->GetName()), VarManager::fgValues);
15031486
}
1504-
isig++;
15051487
}
15061488
}
15071489
}
@@ -2029,10 +2011,7 @@ struct AnalysisAsymmetricPairing {
20292011
} // end loop over MC signals
20302012

20312013
VarManager::FillPairAlice3<VarManager::kDecayToKPi, gkTrackFillMapWithCov>(t1, t2);
2032-
/*TODO: Reimplement when secondary vertexing is available
2033-
if constexpr (TTwoProngFitter) {
2034-
VarManager::FillPairVertexing<VarManager::kDecayToKPi, gkEventFillMapWithCov, gkTrackFillMapWithCov>(event, t1, t2, fConfigPropToPCA);
2035-
}*/
2014+
VarManager::FillPairVertexingAlice3<VarManager::kDecayToKPi, gkEventFillMapWithCov, gkTrackFillMapWithCov>(event, t1, t2, true);
20362015

20372016
// Fill histograms
20382017
bool isAmbi = false;
@@ -2180,7 +2159,8 @@ struct AnalysisAsymmetricPairing {
21802159
}
21812160

21822161
// Function to run same event triplets (e.g. D+->K-pi+pi+)
2183-
void runThreeProng(MyEventsVtxCovSelected const& events, PresliceUnsorted<MyBarrelAssocs>& preslice, MyBarrelAssocs const& /*assocs*/, MyBarrelTracksWithCovWithAmbiguities const& tracks, ReducedA3MCEvents const& /*mcEvents*/, ReducedA3MCTracks const& /*mcTracks*/, VarManager::PairCandidateType tripletType)
2162+
template <bool TThreeProngFitter, typename TEvents, typename TTrackAssocs, typename TTracks>
2163+
void runThreeProng(TEvents const& events, PresliceUnsorted<TTrackAssocs>& preslice, TTrackAssocs const& /*assocs*/, TTracks const& tracks, ReducedA3MCEvents const& /*mcEvents*/, ReducedA3MCTracks const& /*mcTracks*/, VarManager::PairCandidateType tripletType)
21842164
{
21852165
for (const auto& event : events) {
21862166
if (!event.isEventSelected_bit(0)) {
@@ -2206,12 +2186,12 @@ struct AnalysisAsymmetricPairing {
22062186
// Based on triplet type, make suitable combinations of the partitions
22072187
if (tripletType == VarManager::kTripleCandidateToPKPi) {
22082188
for (const auto& [a1, a2, a3] : combinations(soa::CombinationsFullIndexPolicy(groupedLegAAssocs, groupedLegBAssocs, groupedLegCAssocs))) {
2209-
readTriplet(a1, a2, a3, tracks, event, tripletType);
2189+
readTriplet<TThreeProngFitter>(a1, a2, a3, tracks, event, tripletType);
22102190
}
22112191
} else if (tripletType == VarManager::kTripleCandidateToKPiPi) {
22122192
for (const auto& a1 : groupedLegAAssocs) {
22132193
for (const auto& [a2, a3] : combinations(groupedLegBAssocs, groupedLegCAssocs)) {
2214-
readTriplet(a1, a2, a3, tracks, event, tripletType);
2194+
readTriplet<TThreeProngFitter>(a1, a2, a3, tracks, event, tripletType);
22152195
}
22162196
}
22172197
} else {
@@ -2220,8 +2200,8 @@ struct AnalysisAsymmetricPairing {
22202200
} // end event loop
22212201
}
22222202

2223-
// Helper function to process triplet
2224-
void readTriplet(MyBarrelAssocs::iterator const& a1, MyBarrelAssocs::iterator const& a2, MyBarrelAssocs::iterator const& a3, MyBarrelTracksWithCovWithAmbiguities const& /*tracks*/, MyEventsVtxCovSelected::iterator const& /*event*/, VarManager::PairCandidateType tripletType)
2203+
template <bool TThreeProngFitter, typename TTrackAssoc, typename TTracks, typename TEvent>
2204+
void readTriplet(TTrackAssoc const& a1, TTrackAssoc const& a2, TTrackAssoc const& a3, TTracks const& /*tracks*/, TEvent const& event, VarManager::PairCandidateType tripletType)
22252205
{
22262206
uint32_t mcDecision = 0;
22272207

@@ -2256,9 +2236,9 @@ struct AnalysisAsymmetricPairing {
22562236
// Find common track cuts all candidates pass
22572237
threeTrackCommonFilter |= a1.isBarrelSelected_raw() & a2.isBarrelSelected_raw() & a3.isBarrelSelected_raw() & fCommonTrackCutMask;
22582238

2259-
auto t1 = a1.template reducedA3track_as<MyBarrelTracksWithCovWithAmbiguities>();
2260-
auto t2 = a2.template reducedA3track_as<MyBarrelTracksWithCovWithAmbiguities>();
2261-
auto t3 = a3.template reducedA3track_as<MyBarrelTracksWithCovWithAmbiguities>();
2239+
auto t1 = a1.template reducedA3track_as<TTracks>();
2240+
auto t2 = a2.template reducedA3track_as<TTracks>();
2241+
auto t3 = a3.template reducedA3track_as<TTracks>();
22622242

22632243
// Avoid self-pairs
22642244
if (t1 == t2 || t1 == t3 || t2 == t3) {
@@ -2299,10 +2279,9 @@ struct AnalysisAsymmetricPairing {
22992279
} // end loop over MC signals
23002280

23012281
VarManager::FillTriple(t1, t2, t3, VarManager::fgValues, tripletType);
2302-
/* TODO: Reimplement when secondary vertexing is available
23032282
if constexpr (TThreeProngFitter) {
2304-
VarManager::FillTripletVertexing<gkEventFillMapWithCov, gkTrackFillMapWithCov>(event, t1, t2, t3, tripletType);
2305-
}*/
2283+
VarManager::FillTripletVertexingALICE3<gkEventFillMapWithCov, gkTrackFillMapWithCov>(event, t1, t2, t3, tripletType);
2284+
}
23062285

23072286
// Fill histograms
23082287
bool isAmbi = false;
@@ -2368,7 +2347,15 @@ struct AnalysisAsymmetricPairing {
23682347
MyBarrelTracksWithCovWithAmbiguities const& barrelTracks,
23692348
ReducedA3MCEvents const& mcEvents, ReducedA3MCTracks const& mcTracks)
23702349
{
2371-
runThreeProng(events, trackAssocsPerCollision, barrelAssocs, barrelTracks, mcEvents, mcTracks, VarManager::kTripleCandidateToKPiPi);
2350+
runThreeProng<true>(events, trackAssocsPerCollision, barrelAssocs, barrelTracks, mcEvents, mcTracks, VarManager::kTripleCandidateToKPiPi);
2351+
}
2352+
2353+
void processProtonKaonPionSkimmed(MyEventsVtxCovSelected const& events,
2354+
MyBarrelAssocs const& barrelAssocs,
2355+
MyBarrelTracksWithCovWithAmbiguities const& barrelTracks,
2356+
ReducedA3MCEvents const& mcEvents, ReducedA3MCTracks const& mcTracks)
2357+
{
2358+
runThreeProng<true>(events, trackAssocsPerCollision, barrelAssocs, barrelTracks, mcEvents, mcTracks, VarManager::kTripleCandidateToPKPi);
23722359
}
23732360

23742361
void processMCGen(ReducedA3MCTracks const& mcTracks)
@@ -2426,6 +2413,7 @@ struct AnalysisAsymmetricPairing {
24262413

24272414
PROCESS_SWITCH(AnalysisAsymmetricPairing, processKaonPionSkimmed, "Run kaon pion pairing, with skimmed tracks", false);
24282415
PROCESS_SWITCH(AnalysisAsymmetricPairing, processKaonPionPionSkimmed, "Run kaon pion pion triplets, with skimmed tracks", false);
2416+
PROCESS_SWITCH(AnalysisAsymmetricPairing, processProtonKaonPionSkimmed, "Run proton kaon pion triplets, with skimmed tracks", false);
24292417
PROCESS_SWITCH(AnalysisAsymmetricPairing, processMCGen, "Loop over MC particle stack and fill generator level histograms", false);
24302418
PROCESS_SWITCH(AnalysisAsymmetricPairing, processMCGenWithEventSelection, "Loop over MC particle stack and fill generator level histograms", false);
24312419
PROCESS_SWITCH(AnalysisAsymmetricPairing, processDummy, "Dummy function, enabled only if none of the others are enabled", true);

PWGDQ/Core/CutsLibrary.cxx

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4012,9 +4012,7 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
40124012
if (nameStr == "alice3DielectronPID") {
40134013
cut->AddCut(GetAnalysisCut("alice3JpsiKine"));
40144014
cut->AddCut(GetAnalysisCut("alice3TrackQuality"));
4015-
cut->AddCut(GetAnalysisCut("alice3iTOFPIDEl"));
4016-
cut->AddCut(GetAnalysisCut("alice3oTOFPIDEl"));
4017-
cut->AddCut(GetAnalysisCut("alice3RICHPIDEl"));
4015+
cut->AddCut(GetAnalysisCut("alice3CharmoniumPID"));
40184016
return cut;
40194017
}
40204018

@@ -4060,6 +4058,12 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
40604058
return cut;
40614059
}
40624060

4061+
if (nameStr == "alice3LambdaCQualityCuts") {
4062+
cut->AddCut(GetAnalysisCut("alice3LambdaCKine"));
4063+
cut->AddCut(GetAnalysisCut("alice3TrackQuality"));
4064+
return cut;
4065+
}
4066+
40634067
delete cut;
40644068
LOGF(fatal, Form("Did not find cut %s. Returning nullptr", cutName));
40654069
return nullptr;
@@ -7264,29 +7268,33 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
72647268
return cut;
72657269
}
72667270

7271+
if (nameStr == "alice3LambdaCKine") {
7272+
cut->AddCut(VarManager::kPt, 0.2, 1000.0);
7273+
cut->AddCut(VarManager::kEta, -2.0, 2.0);
7274+
return cut;
7275+
}
7276+
72677277
if (nameStr == "alice3JpsiKine") {
72687278
cut->AddCut(VarManager::kPt, 1.0, 1000.0);
7269-
cut->AddCut(VarManager::kEta, -2.5, 2.5); // Total tracker acceptance in v3b geomety
7279+
cut->AddCut(VarManager::kEta, -2.5, 2.5);
72707280
return cut;
72717281
}
72727282

72737283
if (nameStr == "alice3JpsiKineTOFAcceptance") {
72747284
cut->AddCut(VarManager::kPt, 1.0, 1000.0);
7275-
cut->AddCut(VarManager::kEta, -2.0, 2.0); // TOF acceptance in v3b geomety
7285+
cut->AddCut(VarManager::kEta, -2.0, 2.0);
72767286
return cut;
72777287
}
72787288

72797289
if (nameStr == "alice3JpsiKineRICHAcceptance") {
72807290
cut->AddCut(VarManager::kPt, 1.0, 1000.0);
7281-
cut->AddCut(VarManager::kEta, -0.8, 0.8); // RICH acceptance in v3b geomety
7291+
cut->AddCut(VarManager::kEta, -0.8, 0.8);
72827292
return cut;
72837293
}
72847294

72857295
if (nameStr == "alice3TrackQuality") {
72867296
cut->AddCut(VarManager::kIsReconstructed, 0.5, 1.5);
7287-
cut->AddCut(VarManager::kNSiliconHits, 6.0, 12.0);
7288-
cut->AddCut(VarManager::kTrackDCAxy, -3.0, 3.0);
7289-
cut->AddCut(VarManager::kTrackDCAz, -3.0, 3.0);
7297+
cut->AddCut(VarManager::kNSiliconHits, 5.0, 12.0);
72907298
return cut;
72917299
}
72927300

@@ -7363,27 +7371,29 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
73637371
return cut;
73647372
}
73657373

7374+
if (nameStr == "alice3CharmoniumPID") {
7375+
cut->AddCut(VarManager::kOuterTOFnSigmaEl, -2.0, 3.0, false, VarManager::kP, 0.0, 1.2);
7376+
cut->AddCut(VarManager::kRICHnSigmaEl, -2.0, 3.0, false, VarManager::kHasRICHSigEl, 0.5, 1.5, false, VarManager::kP, 0.7, 1000.0);
7377+
return cut;
7378+
}
7379+
73667380
if (nameStr == "alice3RICHPIDEl") {
7367-
cut->AddCut(VarManager::kRICHnSigmaEl, -3.0, 3.0);
7368-
cut->AddCut(VarManager::kHasRICHSigEl, 0.5, 1.5);
7381+
cut->AddCut(VarManager::kRICHnSigmaEl, -3.0, 3.0, false, VarManager::kP, 0.7, 1000.0, false, VarManager::kHasRICHSigEl, 0.5, 1.5);
73697382
return cut;
73707383
}
73717384

73727385
if (nameStr == "alice3RICHPIDPi") {
7373-
cut->AddCut(VarManager::kRICHnSigmaPi, -3.0, 3.0);
7374-
cut->AddCut(VarManager::kHasRICHSigPi, 0.5, 1.5);
7386+
cut->AddCut(VarManager::kRICHnSigmaPi, -3.0, 3.0, false, VarManager::kP, 0.57, 1000.0, false, VarManager::kHasRICHSigPi, 0.5, 1.5);
73757387
return cut;
73767388
}
73777389

73787390
if (nameStr == "alice3RICHPIDKa") {
7379-
cut->AddCut(VarManager::kRICHnSigmaKa, -3.0, 3.0);
7380-
cut->AddCut(VarManager::kHasRICHSigKa, 0.5, 1.5);
7391+
cut->AddCut(VarManager::kRICHnSigmaKa, -3.0, 3.0, false, VarManager::kP, 2.0, 1000.0, false, VarManager::kHasRICHSigKa, 0.5, 1.5);
73817392
return cut;
73827393
}
73837394

73847395
if (nameStr == "alice3RICHPIDPr") {
7385-
cut->AddCut(VarManager::kRICHnSigmaPr, -3.0, 3.0);
7386-
cut->AddCut(VarManager::kHasRICHSigPr, 0.5, 1.5);
7396+
cut->AddCut(VarManager::kRICHnSigmaPr, -3.0, 3.0, false, VarManager::kP, 3.8, 1000.0, false, VarManager::kHasRICHSigPr, 0.5, 1.5);
73877397
return cut;
73887398
}
73897399

0 commit comments

Comments
 (0)