]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliReconstruction.cxx
Possibility to use syntax like following: ALL -<detector>. The order of the keywords...
[u/mrichter/AliRoot.git] / STEER / AliReconstruction.cxx
index e38f2214cda598ad64e7c122f6d470e2176bb824..e64527ba507786bedfe1ec95babc752b0d3d7d58 100644 (file)
@@ -3147,12 +3147,15 @@ const char *AliReconstruction::MatchDetectorList(const char *detectorList, UInt_
     if ((detectorMask >> iDet) & 0x1) {
       TString det = AliDAQ::OfflineModuleName(iDet);
       if ((detList.CompareTo("ALL") == 0) ||
-         detList.BeginsWith("ALL ") ||
-         detList.EndsWith(" ALL") ||
-         detList.Contains(" ALL ") ||
+         ((detList.BeginsWith("ALL ") ||
+           detList.EndsWith(" ALL") ||
+           detList.Contains(" ALL ")) &&
+          !(detList.BeginsWith("-"+det+" ") ||
+            detList.EndsWith(" -"+det) ||
+            detList.Contains(" -"+det+" "))) ||
          (detList.CompareTo(det) == 0) ||
-         detList.BeginsWith(det) ||
-         detList.EndsWith(det) ||
+         detList.BeginsWith(det+" ") ||
+         detList.EndsWith(" "+det) ||
          detList.Contains( " "+det+" " )) {
        if (!resultList.EndsWith(det + " ")) {
          resultList += det;
@@ -3166,12 +3169,15 @@ const char *AliReconstruction::MatchDetectorList(const char *detectorList, UInt_
   if ((detectorMask >> AliDAQ::kHLTId) & 0x1) {
     TString hltDet = AliDAQ::OfflineModuleName(AliDAQ::kNDetectors-1);
     if ((detList.CompareTo("ALL") == 0) ||
-       detList.BeginsWith("ALL ") ||
-       detList.EndsWith(" ALL") ||
-       detList.Contains(" ALL ") ||
+       ((detList.BeginsWith("ALL ") ||
+         detList.EndsWith(" ALL") ||
+         detList.Contains(" ALL ")) &&
+        !(detList.BeginsWith("-"+hltDet+" ") ||
+          detList.EndsWith(" -"+hltDet) ||
+          detList.Contains(" -"+hltDet+" "))) ||
        (detList.CompareTo(hltDet) == 0) ||
-       detList.BeginsWith(hltDet) ||
-       detList.EndsWith(hltDet) ||
+       detList.BeginsWith(hltDet+" ") ||
+       detList.EndsWith(" "+hltDet) ||
        detList.Contains( " "+hltDet+" " )) {
       resultList += hltDet;
     }