1313//
1414#include < iostream>
1515#include < vector>
16+ #include < map>
17+ #include < string>
1618#include < memory>
1719#include < cstring>
1820#include < TH1.h>
@@ -59,6 +61,7 @@ enum DQTriggers {
5961 kSingleMuLow ,
6062 kSingleMuHigh ,
6163 kDiMuon ,
64+ kElectronMuon ,
6265 kNTriggersDQ
6366};
6467} // namespace
@@ -247,14 +250,14 @@ struct DQBarrelTrackSelection {
247250 fCurrentRun = bc.runNumber ();
248251 }
249252
250- uint32_t filterMap = uint32_t (0 );
253+ uint32_t filterMap = static_cast < uint32_t > (0 );
251254 trackSel.reserve (tracksBarrel.size ());
252255
253256 VarManager::ResetValues (0 , VarManager::kNBarrelTrackVariables );
254257 for (auto & track : tracksBarrel) {
255- filterMap = uint32_t (0 );
258+ filterMap = static_cast < uint32_t > (0 );
256259 if (!track.has_collision ()) {
257- trackSel (uint32_t (0 ));
260+ trackSel (static_cast < uint32_t > (0 ));
258261 } else {
259262 VarManager::FillTrack<TTrackFillMap>(track);
260263 if (fConfigQA ) {
@@ -263,7 +266,7 @@ struct DQBarrelTrackSelection {
263266 int i = 0 ;
264267 for (auto cut = fTrackCuts .begin (); cut != fTrackCuts .end (); ++cut, ++i) {
265268 if ((*cut).IsSelected (VarManager::fgValues)) {
266- filterMap |= (uint32_t (1 ) << i);
269+ filterMap |= (static_cast < uint32_t > (1 ) << i);
267270 if (fConfigQA ) {
268271 fHistMan ->FillHistClass (fCutHistNames [i].Data (), VarManager::fgValues);
269272 }
@@ -331,16 +334,16 @@ struct DQMuonsSelection {
331334 template <uint32_t TMuonFillMap, typename TMuons>
332335 void runMuonSelection (TMuons const & muons)
333336 {
334- uint32_t filterMap = uint32_t (0 );
337+ uint32_t filterMap = static_cast < uint32_t > (0 );
335338 trackSel.reserve (muons.size ());
336339
337340 VarManager::ResetValues (0 , VarManager::kNMuonTrackVariables );
338341 // fill event information which might be needed in histograms or cuts that combine track and event properties
339342
340343 for (auto & muon : muons) {
341- filterMap = uint32_t (0 );
344+ filterMap = static_cast < uint32_t > (0 );
342345 if (!muon.has_collision ()) {
343- trackSel (uint32_t (0 ));
346+ trackSel (static_cast < uint32_t > (0 ));
344347 } else {
345348 VarManager::FillTrack<TMuonFillMap>(muon);
346349 if (fConfigQA ) {
@@ -349,7 +352,7 @@ struct DQMuonsSelection {
349352 int i = 0 ;
350353 for (auto cut = fTrackCuts .begin (); cut != fTrackCuts .end (); ++cut, ++i) {
351354 if ((*cut).IsSelected (VarManager::fgValues)) {
352- filterMap |= (uint32_t (1 ) << i);
355+ filterMap |= (static_cast < uint32_t > (1 ) << i);
353356 if (fConfigQA ) {
354357 fHistMan ->FillHistClass (fCutHistNames [i].Data (), VarManager::fgValues);
355358 }
@@ -386,8 +389,8 @@ struct DQFilterPPTask {
386389 Configurable<std::string> fConfigFilterLsBarrelTracksPairs {" cfgWithBarrelLS" , " false" , " Comma separated list of booleans for each trigger, If true, also select like sign (--/++) barrel track pairs" };
387390 Configurable<std::string> fConfigFilterLsMuonsPairs {" cfgWithMuonLS" , " false" , " Comma separated list of booleans for each trigger, If true, also select like sign (--/++) muon pairs" };
388391
389- Filter filterBarrelTrackSelected = aod::dqppfilter::isDQBarrelSelected > uint32_t (0 );
390- Filter filterMuonTrackSelected = aod::dqppfilter::isDQMuonSelected > uint32_t (0 );
392+ Filter filterBarrelTrackSelected = aod::dqppfilter::isDQBarrelSelected > static_cast < uint32_t > (0 );
393+ Filter filterMuonTrackSelected = aod::dqppfilter::isDQMuonSelected > static_cast < uint32_t > (0 );
391394
392395 int fNBarrelCuts ; // number of barrel selections
393396 int fNMuonCuts ; // number of muon selections
@@ -496,14 +499,14 @@ struct DQFilterPPTask {
496499 // if the event is not selected produce tables and return
497500 if (!collision.isDQEventSelected ()) {
498501 eventFilter (0 );
499- dqtable (false , false , false , false , false , false , false );
502+ dqtable (false , false , false , false , false , false , false , false );
500503 return ;
501504 }
502505 fStats ->Fill (-1.0 );
503506
504507 if (tracksBarrel.size () == 0 && muons.size () == 0 ) {
505508 eventFilter (0 );
506- dqtable (false , false , false , false , false , false , false );
509+ dqtable (false , false , false , false , false , false , false , false );
507510 return ;
508511 }
509512
@@ -515,7 +518,7 @@ struct DQFilterPPTask {
515518 // count the number of barrel tracks fulfilling each cut
516519 for (auto track : tracksBarrel) {
517520 for (int i = 0 ; i < fNBarrelCuts ; ++i) {
518- if (track.isDQBarrelSelected () & (uint32_t (1 ) << i)) {
521+ if (track.isDQBarrelSelected () & (static_cast < uint32_t > (1 ) << i)) {
519522 objCountersBarrel[i] += 1 ;
520523 }
521524 }
@@ -526,7 +529,7 @@ struct DQFilterPPTask {
526529 for (int i = 0 ; i < fNBarrelCuts ; i++) {
527530 if (fBarrelRunPairing [i]) {
528531 if (objCountersBarrel[i] > 1 ) { // pairing has to be enabled and at least two tracks are needed
529- pairingMask |= (uint32_t (1 ) << i);
532+ pairingMask |= (static_cast < uint32_t > (1 ) << i);
530533 }
531534 objCountersBarrel[i] = 0 ; // reset counters for selections where pairing is needed (count pairs instead)
532535 }
@@ -539,7 +542,7 @@ struct DQFilterPPTask {
539542 for (int icut = 0 ; icut < fNBarrelCuts ; icut++) {
540543 TString objStr = objArrayLS->At (icut)->GetName ();
541544 if (!objStr.CompareTo (" true" )) {
542- pairingLS |= (uint32_t (1 ) << icut);
545+ pairingLS |= (static_cast < uint32_t > (1 ) << icut);
543546 }
544547 }
545548
@@ -556,12 +559,12 @@ struct DQFilterPPTask {
556559 VarManager::FillPair<VarManager::kDecayToEE , TTrackFillMap>(t1, t2); // compute pair quantities
557560 for (int icut = 0 ; icut < fNBarrelCuts ; icut++) {
558561 // select like-sign pairs if trigger has set boolean true within fConfigFilterLsBarrelTracksPairs
559- if (!(pairingLS & (uint32_t (1 ) << icut))) {
562+ if (!(pairingLS & (static_cast < uint32_t > (1 ) << icut))) {
560563 if (t1.sign () * t2.sign () > 0 ) {
561564 continue ;
562565 }
563566 }
564- if (!(pairFilter & (uint32_t (1 ) << icut))) {
567+ if (!(pairFilter & (static_cast < uint32_t > (1 ) << icut))) {
565568 continue ;
566569 }
567570 if (!fBarrelPairCuts [icut].IsSelected (VarManager::fgValues)) {
@@ -579,7 +582,7 @@ struct DQFilterPPTask {
579582 // count the number of muon tracks fulfilling each selection
580583 for (auto muon : muons) {
581584 for (int i = 0 ; i < fNMuonCuts ; ++i) {
582- if (muon.isDQMuonSelected () & (uint32_t (1 ) << i)) {
585+ if (muon.isDQMuonSelected () & (static_cast < uint32_t > (1 ) << i)) {
583586 objCountersMuon[i] += 1 ;
584587 }
585588 }
@@ -590,7 +593,7 @@ struct DQFilterPPTask {
590593 for (int i = 0 ; i < fNMuonCuts ; i++) {
591594 if (fMuonRunPairing [i]) { // pairing has to be enabled and at least two tracks are needed
592595 if (objCountersMuon[i] > 1 ) {
593- pairingMask |= (uint32_t (1 ) << i);
596+ pairingMask |= (static_cast < uint32_t > (1 ) << i);
594597 }
595598 objCountersMuon[i] = 0 ; // reset counters for selections where pairing is needed (count pairs instead)
596599 }
@@ -603,7 +606,7 @@ struct DQFilterPPTask {
603606 for (int icut = 0 ; icut < fNMuonCuts ; icut++) {
604607 TString objStr = objArrayMuonLS->At (icut)->GetName ();
605608 if (!objStr.CompareTo (" true" )) {
606- pairingLS |= (uint32_t (1 ) << icut);
609+ pairingLS |= (static_cast < uint32_t > (1 ) << icut);
607610 }
608611 }
609612
@@ -620,12 +623,12 @@ struct DQFilterPPTask {
620623 VarManager::FillPair<VarManager::kDecayToMuMu , TTrackFillMap>(t1, t2); // compute pair quantities
621624 for (int icut = 0 ; icut < fNMuonCuts ; icut++) {
622625 // select like-sign pairs if trigger has set boolean true within fConfigFilterLsMuonsPairs
623- if (!(pairingLS & (uint32_t (1 ) << icut))) {
626+ if (!(pairingLS & (static_cast < uint32_t > (1 ) << icut))) {
624627 if (t1.sign () * t2.sign () > 0 ) {
625628 continue ;
626629 }
627630 }
628- if (!(pairFilter & (uint32_t (1 ) << icut))) {
631+ if (!(pairFilter & (static_cast < uint32_t > (1 ) << icut))) {
629632 continue ;
630633 }
631634 if (!fMuonPairCuts [icut].IsSelected (VarManager::fgValues)) {
@@ -648,7 +651,7 @@ struct DQFilterPPTask {
648651 uint64_t filter = 0 ;
649652 for (int i = 0 ; i < fNBarrelCuts ; i++) {
650653 if (objCountersBarrel[i] >= fBarrelNreqObjs [i]) {
651- filter |= (uint64_t (1 ) << i);
654+ filter |= (static_cast < uint64_t > (1 ) << i);
652655 fStats ->Fill (static_cast <float >(i));
653656 if (i < kNTriggersDQ ) {
654657 decisions[i] = true ;
@@ -657,15 +660,15 @@ struct DQFilterPPTask {
657660 }
658661 for (int i = 0 ; i < fNMuonCuts ; i++) {
659662 if (objCountersMuon[i] >= fMuonNreqObjs [i]) {
660- filter |= (uint64_t (1 ) << (i + fNBarrelCuts ));
663+ filter |= (static_cast < uint64_t > (1 ) << (i + fNBarrelCuts ));
661664 fStats ->Fill (static_cast <float >(i + fNBarrelCuts ));
662665 if (i + fNBarrelCuts < kNTriggersDQ ) {
663666 decisions[i + fNBarrelCuts ] = true ;
664667 }
665668 }
666669 }
667670 eventFilter (filter);
668- dqtable (decisions[0 ], decisions[1 ], decisions[2 ], decisions[3 ], decisions[4 ], decisions[5 ], decisions[6 ]);
671+ dqtable (decisions[0 ], decisions[1 ], decisions[2 ], decisions[3 ], decisions[4 ], decisions[5 ], decisions[6 ], decisions[ 7 ] );
669672 }
670673
671674 void processFilterPP (MyEventsSelected::iterator const & collision, aod::BCs const & bcs,
0 commit comments