@@ -162,10 +162,13 @@ enum TpcExclusionMethod {
162162// / \enum ItsDeadMapsCheckType
163163// / \brief Check for the right level of ITS dead chips
164164enum ItsDeadMapsCheckType {
165- kNOCHECK = 0 , // /< no check
166- kGOODITSLAYER3 , // /< check the 3 ITS layer
167- kGOODITSLAYER0123 , // /< check the 0,1,2,and 3 ITS layers
168- kGOODITSLAYERALL // /< check the all ITS layers
165+ kNOCHECK = 0 , // /< no check
166+ kGOODITSLAYER3 , // /< check good the 3 ITS layer
167+ kGOODITSLAYER0123 , // /< check good the 0,1,2,and 3 ITS layers
168+ kGOODITSLAYERALL , // /< check good all ITS layers
169+ kNOGOODITSLAYER3 , // /< check no good the 3 ITS layer
170+ kNOGOODITSLAYER0123 , // /< check no good the 0,1,2,and 3 ITS layers
171+ kNOGOODITSLAYERALL // /< check no good all ITS layers
169172};
170173
171174// ============================================================================================
@@ -548,6 +551,12 @@ inline ItsDeadMapsCheckType getItsDeadMapCheck(const std::string& check)
548551 return kGOODITSLAYER0123 ;
549552 } else if (check == " goodItsAll" ) {
550553 return kGOODITSLAYERALL ;
554+ } else if (check == " noGoodIts3" ) {
555+ return kNOGOODITSLAYER3 ;
556+ } else if (check == " noGoodIts0123" ) {
557+ return kNOGOODITSLAYER0123 ;
558+ } else if (check == " noGoodItsAll" ) {
559+ return kNOGOODITSLAYERALL ;
551560 } else {
552561 LOGF (fatal, " ITS dead map check %s not implemented" , check.c_str ());
553562 return kNOCHECK ;
@@ -1007,27 +1016,24 @@ inline bool occupancySelection<aod::McCollision>(aod::McCollision const&)
10071016template <typename CollisionObject>
10081017inline bool selectOnItsDeadMaps (CollisionObject coll)
10091018{
1019+ auto checkFlag = [](auto flag, bool invert = false ) {
1020+ return flag && !invert;
1021+ };
10101022 switch (fItsDeadMapCheck ) {
10111023 case kNOCHECK :
10121024 return true ;
10131025 case kGOODITSLAYER3 :
1014- if (coll.selection_bit (aod::evsel::kIsGoodITSLayer3 )) {
1015- return true ;
1016- } else {
1017- return false ;
1018- }
1026+ return checkFlag (coll.selection_bit (aod::evsel::kIsGoodITSLayer3 ));
10191027 case kGOODITSLAYER0123 :
1020- if (coll.selection_bit (aod::evsel::kIsGoodITSLayer0123 )) {
1021- return true ;
1022- } else {
1023- return false ;
1024- }
1028+ return checkFlag (coll.selection_bit (aod::evsel::kIsGoodITSLayer0123 ));
10251029 case kGOODITSLAYERALL :
1026- if (coll.selection_bit (aod::evsel::kIsGoodITSLayersAll )) {
1027- return true ;
1028- } else {
1029- return false ;
1030- }
1030+ return checkFlag (coll.selection_bit (aod::evsel::kIsGoodITSLayersAll ));
1031+ case kNOGOODITSLAYER3 :
1032+ return checkFlag (coll.selection_bit (aod::evsel::kIsGoodITSLayer3 ), true );
1033+ case kNOGOODITSLAYER0123 :
1034+ return checkFlag (coll.selection_bit (aod::evsel::kIsGoodITSLayer0123 ), true );
1035+ case kNOGOODITSLAYERALL :
1036+ return checkFlag (coll.selection_bit (aod::evsel::kIsGoodITSLayersAll ), true );
10311037 default :
10321038 return false ;
10331039 }
0 commit comments