]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliTriggerDescriptor.cxx
Standard connection to ESD in chain.
[u/mrichter/AliRoot.git] / STEER / AliTriggerDescriptor.cxx
index 17b2ac4691ab9ff9c4e04b6699759e20bcddc8b1..cde6e9bdb235824e380a05819524ceac33b12610 100644 (file)
@@ -79,25 +79,31 @@ ClassImp(AliTriggerDescriptor)
 
 //_____________________________________________________________________________
 const char* AliTriggerDescriptor::fgkDetectorName[AliTriggerDescriptor::fgkNDetectors] =
-             { "ITS", "TRD", "PHOS", "EMCAL", "MUON", "ZDC", "START", "VZERO", "CRT" };
+             { "ITS", "TRD", "PHOS", "EMCAL", "MUON", "ZDC", "T0", "VZERO", "ACORDE", "TOF" };
 
 const TString AliTriggerDescriptor::fgkDescriptorFileName("/data/triggerDescriptors.root");
 
 //_____________________________________________________________________________
 AliTriggerDescriptor::AliTriggerDescriptor():
-TNamed(), fDetectorCluster("")
+  TNamed(),
+  fDetectorCluster(""),
+  fConditions()
 {
 }
 
 //_____________________________________________________________________________
 AliTriggerDescriptor::AliTriggerDescriptor( TString & name, TString & description ):
-TNamed( name, description ), fDetectorCluster("")
+  TNamed( name, description ),
+  fDetectorCluster(""),
+  fConditions()
 {
 }
 
 //_____________________________________________________________________________
 AliTriggerDescriptor::AliTriggerDescriptor( const AliTriggerDescriptor& des ):
-TNamed( des ), fDetectorCluster( des.fDetectorCluster )
+  TNamed( des ),
+  fDetectorCluster( des.fDetectorCluster ),
+  fConditions()
 {
    // Copy constructor
    Int_t ncond = des.fConditions.GetEntriesFast();
@@ -150,7 +156,7 @@ Bool_t AliTriggerDescriptor::AddDetectorCluster( TString & cluster )
 }
 
 //_____________________________________________________________________________
-void AliTriggerDescriptor::AddCondition( TString & cond, TString & name, TString & description, Long_t mask   )
+void AliTriggerDescriptor::AddCondition( TString & cond, TString & name, TString & description, ULong64_t mask   )
 {
    // Add a new condition
    AliTriggerCondition* acond = new AliTriggerCondition( cond, name, description, mask );
@@ -316,12 +322,23 @@ Bool_t AliTriggerDescriptor::CheckInputsConditions( TString& configfile )
 
    // check if the condition is compatible with the triggers inputs
    Int_t ncond = fConditions.GetEntriesFast();
+   Bool_t check = kTRUE;
+   ULong64_t mask = 0L;
    for( Int_t j=0; j<ncond; j++ ) {
       AliTriggerCondition* cond = (AliTriggerCondition*)(fConditions.At( j ));
-      if( !(cond->CheckInputs( inputs )) ) return kFALSE;
+      if( !(cond->CheckInputs( inputs )) ) check = kFALSE;
+      else AliInfo( Form( "Condition (%s) inputs names OK, class mask (0x%Lx)",
+                    cond->GetName(), cond->GetMask( ) ) );
+      // check if condition mask is duplicated
+      if( mask & cond->GetMask() ) {
+         AliError( Form("Condition (%s). The class mask (0x%Lx) is ambiguous. It was previous defined",
+                   cond->GetName(), cond->GetMask()  ) );
+         check = kFALSE;
+      }
+      mask |= cond->GetMask();
    }
 
-   return kTRUE;
+   return check;
 }