@@ -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