]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/ESD/AliTriggerConfiguration.cxx
Updates in event mixing code for low-pt code
[u/mrichter/AliRoot.git] / STEER / ESD / AliTriggerConfiguration.cxx
index 0c4025f8e682334d7308ea838f67dd692fcb2237..3db9ea61c931006e833a8db235d5744b86e10faf 100755 (executable)
@@ -59,7 +59,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 #include <Riostream.h>
 
-#include <TCint.h>
 #include <TFile.h>
 #include <TKey.h>
 #include <TObjArray.h>
@@ -80,6 +79,9 @@
 #include "AliTriggerInteraction.h"
 #include "AliTriggerPFProtection.h"
 
+using std::endl;
+using std::cout;
+using std::ifstream;
 ClassImp(AliTriggerConfiguration)
 
 const TString AliTriggerConfiguration::fgkConfigurationFileName("/data/triggerConfigurations.root");
@@ -230,7 +232,7 @@ Bool_t  AliTriggerConfiguration::AddFunction(AliTriggerInteraction *func)
       AliError("Invalid logical function ! Impossible to add it !");
   }
   else
-    AliError("CTP can handle up to 2 logical functions ! Impossible to add the required interaction !");
+    AliError("CTP can handle up to 4 logical functions ! Impossible to add the required interaction !");
 
   return kFALSE;
 }
@@ -274,12 +276,12 @@ Bool_t AliTriggerConfiguration::AddMask( AliTriggerBCMask* mask )
 {
   // Add a trigger bunch-crossing mask object to
   // the list of the trigger bunch-crossing masks
-  if (fMasks.GetEntries() < (kNMaxMasks+1)) {  //+1 to account for NONE
+  if (fMasks.GetEntries() < (kNMaxMasks)) {  
       fMasks.AddLast( mask );
       return kTRUE;
   }
   else
-    AliError("CTP can handle up to 4 bunch-crossing masks ! Impossible to add the required mask !");
+    AliError("CTP can handle up to 12 bunch-crossing masks ! Impossible to add the required mask !");
 
   return kFALSE;
 }
@@ -339,6 +341,7 @@ TString AliTriggerConfiguration::GetActiveDetectors() const
          activeDet.Append( " " );
          activeDet.Append( ((TObjString*)det->At(k))->String() );
       }
+      delete det;
    }
    return activeDet;
 }
@@ -561,6 +564,7 @@ Bool_t AliTriggerConfiguration::ProcessConfigurationLine(const char* line, Int_t
        // Read inputs
        if (ntokens != 5) {
         AliError(Form("Invalid trigger input syntax (%s)!",strLine.Data()));
+        delete tokens;
         return kFALSE;
        }
        AddInput(((TObjString*)tokens->At(0))->String(),
@@ -573,6 +577,7 @@ Bool_t AliTriggerConfiguration::ProcessConfigurationLine(const char* line, Int_t
        // Read interaction
        if (ntokens != 2) {
         AliError(Form("Invalid trigger interaction syntax (%s)!",strLine.Data()));
+        delete tokens;
         return kFALSE;
        }
        AddInteraction(((TObjString*)tokens->At(0))->String(),
@@ -590,24 +595,32 @@ Bool_t AliTriggerConfiguration::ProcessConfigurationLine(const char* line, Int_t
         }
         else {
           AliError(Form("Invalid trigger descriptor syntax (%s)!",strLine.Data()));
+          delete tokens;
           return kFALSE;
         }
        }
        if (((TObjString*)tokens->At(0))->String().BeginsWith("l0f")) {
         // function
-        AddFunction(((TObjString*)tokens->At(0))->String(),
-                         strLine.ReplaceAll(((TObjString*)tokens->At(0))->String(),""));
+        if(!AddFunction(((TObjString*)tokens->At(0))->String(),
+                        strLine.ReplaceAll(((TObjString*)tokens->At(0))->String(),""))) {
+          delete tokens;
+          return kFALSE;
+        }
        }
        else {
-        AddDescriptor(((TObjString*)tokens->At(0))->String(),
-                           strLine.ReplaceAll(((TObjString*)tokens->At(0))->String(),""));
+        if(!AddDescriptor(((TObjString*)tokens->At(0))->String(),
+                          strLine.ReplaceAll(((TObjString*)tokens->At(0))->String(),""))) {
+          delete tokens;
+          return kFALSE;
+        }
        }
        break;
      case 4:
        {
          if (ntokens < 2) {
            AliError(Form("Invalid trigger cluster syntax (%s)!",strLine.Data()));
-           return kFALSE;
+          delete tokens;
+          return kFALSE;
          }
         if (((TObjString*)tokens->At(1))->String().Atoi() <= 0) {
            AliError(Form("Invalid trigger cluster syntax (%s)!",strLine.Data()));
@@ -673,21 +686,28 @@ Bool_t AliTriggerConfiguration::ProcessConfigurationLine(const char* line, Int_t
      case 6:
          if (ntokens > 2) {
           AliError(Form("Invalid trigger bcmasks syntax (%s)!",strLine.Data()));
+          delete tokens;
           return kFALSE;
          }
        if (((TObjString*)tokens->At(0))->String().CompareTo("NONE") == 0)
        {        
-         AddMask(new AliTriggerBCMask(((TObjString*)tokens->At(0))->String()));
+         if(!AddMask(new AliTriggerBCMask(((TObjString*)tokens->At(0))->String()))) {
+          delete tokens;
+          return kFALSE;
+        }
        }
        else {
-        AddMask(((TObjString*)tokens->At(0))->String(),
-                     ((TObjString*)tokens->At(1))->String());
+        if(!AddMask(((TObjString*)tokens->At(0))->String(),((TObjString*)tokens->At(1))->String())) {
+          delete tokens;
+          return kFALSE;
+        }
        }
        break;
      case 7:
        {
-         if ((ntokens !=8) && (ntokens != 10)) {
+         if ((ntokens !=8) && (ntokens != 10) && (ntokens != 11)) {
           AliError(Form("Invalid trigger class syntax (%s)!",strLine.Data()));
+          delete tokens;
           return kFALSE;
          }
         AliTriggerClass *trclass=0;
@@ -696,13 +716,18 @@ Bool_t AliTriggerConfiguration::ProcessConfigurationLine(const char* line, Int_t
                        ((TObjString*)tokens->At(2))->String(),((TObjString*)tokens->At(3))->String(),
                        ((TObjString*)tokens->At(4))->String(),((TObjString*)tokens->At(5))->String(),
                        ((TObjString*)tokens->At(6))->String().Atoi(),(Bool_t)(((TObjString*)tokens->At(7))->String().Atoi()));
-        else trclass = new AliTriggerClass(this,
+        else{ trclass = new AliTriggerClass(this,
                        ((TObjString*)tokens->At(0))->String(),((TObjString*)tokens->At(1))->String().Atoi(),
                        ((TObjString*)tokens->At(2))->String(),((TObjString*)tokens->At(3))->String(),
-                       ((TObjString*)tokens->At(4))->String(),((TObjString*)tokens->At(5))->String(),
+                       ((TObjString*)tokens->At(4))->String(),
                        ((TObjString*)tokens->At(6))->String().Atoi(),(Bool_t)(((TObjString*)tokens->At(7))->String().Atoi()),
                        (((TObjString*)tokens->At(8))->String().Atoi()),(((TObjString*)tokens->At(9))->String().Atoi()));
-        AddClass(trclass);
+          if(!trclass->SetMasks(this,((TObjString*)tokens->At(5))->String())) {
+            delete tokens;
+            return kFALSE;
+          }
+        }
+         AddClass(trclass);
        }
      default:
        break;