Skip to content

Commit f285bbe

Browse files
committed
Separate the CEF Tables from the internal bitmap in the filterPP task
1 parent 9903fe6 commit f285bbe

1 file changed

Lines changed: 30 additions & 34 deletions

File tree

PWGDQ/Tasks/filterPP.cxx

Lines changed: 30 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ struct DQBarrelTrackSelectionTask {
159159

160160
float* fValues; // array to be used by the VarManager
161161

162-
Configurable<std::string> fConfigCuts{"cfgBarrelTrackCuts", "jpsiPID1", "Comma separated list of barrel track cuts"};
162+
Configurable<std::string> fConfigCuts{"cfgBarrelTrackCuts", "jpsiPID2", "Comma separated list of ADDITIONAL barrel track cuts"};
163163

164164
void init(o2::framework::InitContext&)
165165
{
@@ -184,7 +184,7 @@ struct DQBarrelTrackSelectionTask {
184184
void DefineCuts()
185185
{
186186
// available cuts: jpsiKineAndQuality, jpsiPID1, jpsiPID2
187-
TString cutNamesStr = fConfigCuts.value;
187+
TString cutNamesStr = "jpsiPID1," + fConfigCuts.value; // "jpsiPID1" is the fixed standard cut provided to the Central Event Filtering task
188188
if (!cutNamesStr.IsNull()) {
189189
std::unique_ptr<TObjArray> objArray(cutNamesStr.Tokenize(","));
190190
for (int icut = 0; icut < objArray->GetEntries(); ++icut) {
@@ -231,7 +231,7 @@ struct DQMuonsSelection {
231231

232232
float* fValues;
233233

234-
Configurable<std::string> fConfigCuts{"cfgMuonsCuts", "muonLowPt,muonHighPt", "Comma separated list of muon track cuts"};
234+
Configurable<std::string> fConfigCuts{"cfgMuonsCuts", "muonQualityCuts", "Comma separated list of ADDITIONAL muon track cuts"};
235235

236236
void init(o2::framework::InitContext&)
237237
{
@@ -256,7 +256,7 @@ struct DQMuonsSelection {
256256
void DefineCuts()
257257
{
258258
// available cuts: muonQualityCuts
259-
TString cutNamesStr = fConfigCuts.value;
259+
TString cutNamesStr = "muonLowPt,muonHighPt," + fConfigCuts.value; // "muonLowPt" & "muonHighPt" are the fixed standard cut provided to the Central Event Filtering task
260260
if (!cutNamesStr.IsNull()) {
261261
std::unique_ptr<TObjArray> objArray(cutNamesStr.Tokenize(","));
262262
for (int icut = 0; icut < objArray->GetEntries(); ++icut) {
@@ -311,9 +311,9 @@ struct DQFilterPPTask {
311311
Partition<MyBarrelTracksSelected> posTracks = aod::track::signed1Pt > 0.0f && aod::dqppfilter::isBarrelSelected > uint8_t(0);
312312
Partition<MyBarrelTracksSelected> negTracks = aod::track::signed1Pt < 0.0f && aod::dqppfilter::isBarrelSelected > uint8_t(0);
313313

314-
Configurable<std::string> fConfigTrackCuts{"cfgBarrelTrackCuts", "jpsiPID1", "Comma separated list of barrel track cuts"};
315-
Configurable<std::string> fConfigMuonCuts{"cfgMuonCuts", "muonLowPt,muonHighPt", "Comma separated list of muon track cuts"};
316-
Configurable<std::string> fConfigPairCuts{"cfgPairCuts", "pairNoCut,pairMassLow", "Comma separated list of pair cuts"};
314+
Configurable<std::string> fConfigTrackCuts{"cfgBarrelTrackCuts", "jpsiPID2", "Comma separated list of ADDITIONAL barrel track cuts"};
315+
Configurable<std::string> fConfigMuonCuts{"cfgMuonCuts", "muonQualityCuts", "Comma separated list of ADDITIONAL muon track cuts"};
316+
Configurable<std::string> fConfigPairCuts{"cfgPairCuts", "pairMassLow,pairJpsi", "Comma separated list of ADDITIONAL pair cuts"};
317317

318318
int fNTrackCuts;
319319
int fNMuonCuts;
@@ -324,7 +324,7 @@ struct DQFilterPPTask {
324324
void DefineCuts()
325325
{
326326
// available pair cuts in CutsLibrary: pairNoCut,pairMassLow,pairJpsi,pairPsi2S,pairUpsilon,pairJpsiPtLow1, pairJpsiPtLow2
327-
TString pairCutNamesStr = fConfigPairCuts.value;
327+
TString pairCutNamesStr = "pairNoCut," + fConfigPairCuts.value; // "pairNoCut" is the fixed standard cut provided to the Central Event Filtering task
328328
std::unique_ptr<TObjArray> objArray(pairCutNamesStr.Tokenize(","));
329329
fNPairCuts = objArray->GetEntries();
330330
if (fNPairCuts) {
@@ -351,10 +351,10 @@ struct DQFilterPPTask {
351351
fHistMan->SetDefaultVarNames(VarManager::fgVariableNames, VarManager::fgVariableUnits);
352352

353353
// configure histograms
354-
TString trackCutNamesStr = fConfigTrackCuts.value;
354+
TString trackCutNamesStr = "jpsiPID1," + fConfigTrackCuts.value;
355355
fTrkCutsNameArray = trackCutNamesStr.Tokenize(",");
356356
fNTrackCuts = fTrkCutsNameArray->GetEntries();
357-
TString muonCutNamesStr = fConfigMuonCuts.value;
357+
TString muonCutNamesStr = "muonLowPt,muonHighPt," + fConfigMuonCuts.value;
358358
fMuonCutsNameArray = muonCutNamesStr.Tokenize(",");
359359
fNMuonCuts = fMuonCutsNameArray->GetEntries();
360360
TString histNames = "";
@@ -399,7 +399,7 @@ struct DQFilterPPTask {
399399
void
400400
process(MyEventsSelected::iterator const& event, MyBarrelTracksSelected const& tracks, MyMuonsSelected const& muons, aod::BCs const& bcs)
401401
{
402-
uint64_t filter = 0; // first 32 bits for dielectrin, last 32 for dimuons
402+
uint64_t filter = 0; // first 32 bits for dielectron, last 32 for dimuons
403403

404404
//[0] = SingleE, [1] = SingleMulow, [2] = SingleMuHigh, [3] = DiElectron, [4] = DiMuon
405405
bool keepEvent[kNTriggersDQ]{false};
@@ -519,49 +519,47 @@ struct DQFilterPPTask {
519519
}
520520
}
521521

522+
// Fill event selections tag for central event filtering
523+
if (singleBarrelCount[0] > 0) { // Single Barrel count : bit 0 corresponds to "jpsiPID1" cut
524+
keepEvent[0] = true;
525+
}
526+
if (singleMuonsCount[0] > 0) { // Single Muon count : bit 0 corresponds to "muonLowPt" cut
527+
keepEvent[1] = true;
528+
}
529+
if (singleMuonsCount[1] > 0) { // Single Muon count : bit 1 corresponds to "muonHighPt" cut
530+
keepEvent[2] = true;
531+
}
532+
if (pairsBarrelCount[0] > 0) { // Pair Barrel count : bit 0 corresponds "jpsiPID1" & "pairNoCut" [jPaircut + iTrackCut * fNPairCuts]
533+
keepEvent[3] = true;
534+
}
535+
if (pairsUnlikeMuonsCount[0] > 0) { // Pair Muon count : bit 0 corresponds "muonLowPt" & "pairNoCut" [jPaircut + iMuonCut * fNPairCuts]
536+
keepEvent[4] = true;
537+
}
538+
//Filling the table
539+
dqtable(keepEvent[kSingleE], keepEvent[kSingleMuLow], keepEvent[kSingleMuHigh], keepEvent[kDiElectron], keepEvent[kDiMuon]);
540+
522541
// Fill DQ bit map
523542
for (int i = 0; i < fNTrackCuts; i++) {
524543
if (singleBarrelCount[i] > 0) {
525544
filter |= (uint64_t(1) << i);
526545
fStatsSingleBarrel->Fill(i);
527-
std::string nameTrkStr = fTrkCutsNameArray->At(i)->GetName();
528-
if (!nameTrkStr.compare("jpsiKineAndQuality")) {
529-
keepEvent[kSingleE] = true; // Single Electron trigger
530-
}
531546
}
532547
for (int j = 0; j < fNPairCuts; j++) {
533548
if (pairsBarrelCount[j + i * fNPairCuts] > 0) {
534549
filter |= (uint64_t(1) << (8 + j + i * fNPairCuts));
535550
fStatsBarrel->Fill(j, i);
536-
std::string nameTrkStr = fTrkCutsNameArray->At(i)->GetName();
537-
std::string namePairStr = fPairCuts[j].GetName();
538-
if (!namePairStr.compare("pairNoCut") && !nameTrkStr.compare("jpsiKineAndQuality")) {
539-
keepEvent[kDiElectron] = true; // Di-Electron trigger
540-
}
541551
}
542552
}
543553
}
544554
for (int i = 0; i < fNMuonCuts; i++) {
545555
if (singleMuonsCount[i] > 0) {
546556
filter |= (uint64_t(1) << (32 + i));
547557
fStatsSingleMuon->Fill(i);
548-
std::string nameMuStr = fMuonCutsNameArray->At(i)->GetName();
549-
if (!nameMuStr.compare("muonLowPt")) {
550-
keepEvent[kSingleMuLow] = true; // Single Low pT Muon trigger
551-
}
552-
if (!nameMuStr.compare("muonHighPt")) {
553-
keepEvent[kSingleMuHigh] = true; // Single High pT Muon trigger
554-
}
555558
}
556559
for (int j = 0; j < fNPairCuts; j++) {
557560
if (pairsUnlikeMuonsCount[j + i * fNPairCuts] > 0) {
558561
filter |= (uint64_t(1) << (40 + j + i * fNPairCuts));
559562
fStatsMuon->Fill(j, i);
560-
std::string nameMuStr = fMuonCutsNameArray->At(i)->GetName();
561-
std::string namePairStr = fPairCuts[j].GetName();
562-
if (!namePairStr.compare("pairNoCut") && !nameMuStr.compare("muonLowPt")) {
563-
keepEvent[kDiMuon] = true; // Di-Muon low pT trigger
564-
}
565563
}
566564
if (pairsLikeMuonsCount[j + i * fNPairCuts] > 0) {
567565
filter |= (uint64_t(1) << (52 + j + i * fNPairCuts));
@@ -577,8 +575,6 @@ struct DQFilterPPTask {
577575
delete[] singleBarrelCount;
578576
}
579577
eventFilter(filter);
580-
//Filling the table
581-
dqtable(keepEvent[kSingleE], keepEvent[kSingleMuLow], keepEvent[kSingleMuHigh], keepEvent[kDiElectron], keepEvent[kDiMuon]);
582578
}
583579
};
584580

0 commit comments

Comments
 (0)