ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

///////////////////////////////////////////////////////////////////////////////
//
// This class which defines defines the Trigger Configuration 
//
// Trigger Configuration defines the trigger setup for a particular run
// We have default configurations for each running mode (Pb-Pb, p-p, p-A, Calibration, etc).
// It keep:
//   All the information conained in the CTP configuration file used
//   online during the data taking
//
// Configurations could be created and stored in local file.
// By default the configuration is loaded from the corresponding GRP entry
// inside the OCDB. There one can have one and only one configuration per run.
//
//   Example how to create a Trigger Configuration:
//
//   AliTriggerConfiguration config( "TEST", "Test Configuration" );
//
//   // Define a Cluster Detector
//   config.AddDetectorCluster( "VZERO ZDC MUON" );
//
//   // Define the trigger conditions (see AliTriggerCondition.cxx)
//   config.AddCondition( "VZERO_TEST1_L0 & MUON_SPlus_LPt_L0 & ZDC_TEST2_L0", // condition
//                         "VO1_M1_ZDC2",      // short name
//                         "Dummy",            // short description
//                          0x0100 );          // class mask (set one bit)
//
//   config.AddCondition( "VZERO_TEST2_L0 & MUON_SMinus_HPt_L0 & ZDC_TEST1_L0",
//                         "VO2_M3_ZDC1",
//                         "Dummy",
//                          0x0200 );
//
//   config.AddCondition( "VZERO_TEST3_L0 | MUON_Unlike_LPt_L0 | ZDC_TEST3_L0",
//                         "VO3_M1_ZDC3",
//                         "Dummy",
//                          0x0400 );
//   config.CheckInputsConditions("Config.C");
//   config.Print();
//
//   // save the configuration to file 
//   // (default file name $ALICE_ROOT/data/triggerConfigurations.root)
//   config.WriteConfiguration(); or config.WriteConfiguration( filename );
//
///////////////////////////////////////////////////////////////////////////////
#include <Riostream.h>

#include <TFile.h>
#include <TKey.h>
#include <TObjArray.h>
#include <TObjString.h>
#include <TObject.h>
#include <TROOT.h>
#include <TString.h>
#include <TSystem.h>
#include <TMath.h>

#include "AliLog.h"
#include "AliTriggerBCMask.h"
#include "AliTriggerClass.h"
#include "AliTriggerCluster.h"
#include "AliTriggerConfiguration.h"
#include "AliTriggerDescriptor.h"
#include "AliTriggerInput.h"
#include "AliTriggerInteraction.h"
#include "AliTriggerPFProtection.h"

using std::endl;
using std::cout;
using std::ifstream;
ClassImp(AliTriggerConfiguration)

const TString AliTriggerConfiguration::fgkConfigurationFileName("/data/triggerConfigurations.root");

//_____________________________________________________________________________
AliTriggerConfiguration::AliTriggerConfiguration():
  TNamed(),
  fInputs(),
  fInteractions(),
  fFunctions(),
  fPFProtections(),
  fMasks(),
  fDescriptors(),
  fClusters(),
  fClasses(),
  fVersion(0)
{
  // Default constructor
}

//_____________________________________________________________________________
AliTriggerConfiguration::AliTriggerConfiguration( TString & name, TString & description ):
  TNamed( name, description ),
  fInputs(),
  fInteractions(),
  fFunctions(),
  fPFProtections(),
  fMasks(),
  fDescriptors(),
  fClusters(),
  fClasses(),
  fVersion(0)
{
  // Constructor
}

//_____________________________________________________________________________
AliTriggerConfiguration::~AliTriggerConfiguration() 
{ 
  // Destructor
  fInputs.SetOwner();
  fInputs.Delete();
  fInteractions.SetOwner();
  fInteractions.Delete();
  fFunctions.SetOwner();
  fFunctions.Delete();
  fPFProtections.SetOwner();
  fPFProtections.Delete();
  fMasks.SetOwner();
  fMasks.Delete();
  fDescriptors.SetOwner();
  fDescriptors.Delete();
  fClusters.SetOwner(); 
  fClusters.Delete(); 
  fClasses.SetOwner(); 
  fClasses.Delete(); 
}

//_____________________________________________________________________________
Bool_t AliTriggerConfiguration::AddInput( AliTriggerInput* input )
{
  // Add a trigger input to
  // the list of the trigger inputs
  if (fInputs.GetEntries() < kNMaxInputs) {
    fInputs.AddLast( input );
    return kTRUE;
  }
  else {
    AliError("CTP can handle up to 60 inputs ! Impossible to add the required input !");
    return kFALSE;
  }
}

//_____________________________________________________________________________
AliTriggerInput* AliTriggerConfiguration::AddInput( TString &name, TString &det,
						    UChar_t level, UInt_t signature,
						    UChar_t number )
{
  // Add a trigger input to
  // the list of the trigger inputs
  AliTriggerInput *input = new AliTriggerInput(name,det,level,signature,number);
  if (!AddInput(input)) {
    delete input;
    return NULL;
  }
  else
    return input;
}

//_____________________________________________________________________________
AliTriggerInteraction* AliTriggerConfiguration::AddInteraction(TString &name, TString &logic)
{
  // Add a trigger interaction object to
  // the list of the trigger interactions
  AliTriggerInteraction *interact = new AliTriggerInteraction(name,logic);
  if (!AddInteraction(interact)) {
    delete interact;
    return NULL;
  }
  else
    return interact;
}

//_____________________________________________________________________________
Bool_t  AliTriggerConfiguration::AddInteraction(AliTriggerInteraction *interact)
{
  // Add a trigger interaction object to
  // the list of the trigger interactions
  if (fInteractions.GetEntries() < kNMaxInteractions) {
    if (interact->CheckInputs(fInputs)) {
      fInteractions.AddLast( interact );
      return kTRUE;
    }
    else
      AliError("Invalid interaction ! Impossible to add it !");
  }
  else
    AliError("CTP can handle up to 2 interactions ! Impossible to add the required interaction !");

  return kFALSE;
}

//_____________________________________________________________________________
AliTriggerInteraction* AliTriggerConfiguration::AddFunction(TString &name, TString &logic)
{
  // Add a trigger function object to
  // the list of the trigger functions
  AliTriggerInteraction *func = new AliTriggerInteraction(name,logic);
  if (!AddFunction(func)) {
    delete func;
    return NULL;
  }
  else
    return func;
}

//_____________________________________________________________________________
Bool_t  AliTriggerConfiguration::AddFunction(AliTriggerInteraction *func)
{
  // Add a trigger function object to
  // the list of the trigger functions
  if (fFunctions.GetEntries() < kNMaxFunctions) {
    if (func->CheckInputs(fInputs)) {
      fFunctions.AddLast( func );
      return kTRUE;
    }
    else
      AliError("Invalid logical function ! Impossible to add it !");
  }
  else
    AliError("CTP can handle up to 4 logical functions ! Impossible to add the required interaction !");

  return kFALSE;
}

//_____________________________________________________________________________
Bool_t AliTriggerConfiguration::AddPFProtection( AliTriggerPFProtection* pfp )
{
  // Add a trigger past-future protection object to
  // the list of the trigger past-future protections
  if (fPFProtections.GetEntries() < kNMaxPFProtections) {
    //if (pfp->CheckInteractions(fInteractions)) {
    if (1) {
      fPFProtections.AddLast( pfp );
      return kTRUE;
    }
    else
      AliError("Invalid past-future protection ! Impossible to add it !");
  }
  else
    AliError("CTP can handle up to 4 past-future protections ! Impossible to add the required protection !");

  return kFALSE;
}

//_____________________________________________________________________________
AliTriggerBCMask* AliTriggerConfiguration::AddMask( TString &name, TString &mask )
{
  // Add a trigger bunch-crossing mask object to
  // the list of the trigger bunch-crossing masks
  AliTriggerBCMask *bcmask = new AliTriggerBCMask(name,mask);
  if (!AddMask(bcmask)) {
    delete bcmask;
    return NULL;
  }
  else
    return bcmask;
}

//_____________________________________________________________________________
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)) {  
      fMasks.AddLast( mask );
      return kTRUE;
  }
  else
    AliError("CTP can handle up to 12 bunch-crossing masks ! Impossible to add the required mask !");

  return kFALSE;
}

//_____________________________________________________________________________
AliTriggerCluster* AliTriggerConfiguration::AddCluster( TString &name, UChar_t index, TString &detectors)
{
  // Add a trigger detector readout cluster to
  // the list of the trigger clusters
  AliTriggerCluster *clust = new AliTriggerCluster(name,index,detectors);
  if (!AddCluster(clust)) {
    delete clust;
    return NULL;
  }
  else
    return clust;

}

//_____________________________________________________________________________
Bool_t AliTriggerConfiguration::AddCluster( AliTriggerCluster* cluster )
{
  // Add a trigger detector readout cluster to
  // the list of the trigger clusters
  if (fClusters.GetEntries() < kNMaxClusters) {
    TString dets(cluster->GetDetectorsInCluster());
    if (!(dets.IsNull())) {
      fClusters.AddLast( cluster );
      return kTRUE;
    }
    else
      AliError("Empty trigger cluster ! Impossible to add it !");
  }
  else
    AliError("CTP can handle up to 6 different detector clusters ! Impossible to add the required cluster !");

  return kFALSE;
}

//_____________________________________________________________________________
TString AliTriggerConfiguration::GetActiveDetectors() const
{
  // Return an string with all active detector
  // from each cluster

   TString activeDet = "";

   Int_t nclus = fClusters.GetEntriesFast();
   if( !nclus ) return activeDet;
   
   for( Int_t j=0; j<nclus; ++j ) {
      TString detStr = ((AliTriggerCluster*)fClusters.At(j))->GetDetectorsInCluster();
      TObjArray* det = detStr.Tokenize(" ");
      Int_t ndet = det->GetEntriesFast();
      for( Int_t k=0; k<ndet; ++k ) {
         if( activeDet.Contains( ((TObjString*)det->At(k))->String() ) )continue;
         activeDet.Append( " " );
         activeDet.Append( ((TObjString*)det->At(k))->String() );
      }
      delete det;
   }
   return activeDet;
}

//_____________________________________________________________________________
TString AliTriggerConfiguration::GetTriggeringDetectors() const
{
  // Return an string with all detectors
  // used for triggering

   TString trDet = "";

   Int_t ninputs = fInputs.GetEntriesFast();
   if( !ninputs ) return trDet;
   
   for( Int_t j=0; j<ninputs; j++ ) {
      TString detStr = ((AliTriggerInput*)fInputs.At(j))->GetDetector();
      if( trDet.Contains( detStr ) ) continue;
      trDet.Append( " " );
      trDet.Append( detStr );
   }
   return trDet;
}

//_____________________________________________________________________________
TString AliTriggerConfiguration::GetTriggeringModules() const
{
   // Return an string with all detectors (modules in the AliRoot
  // simulation sense) used for triggering

   TString trDet = "";

   Int_t ninputs = fInputs.GetEntriesFast();
   if( !ninputs ) return trDet;
   
   for( Int_t j=0; j<ninputs; j++ ) {
      TString detStr = ((AliTriggerInput*)fInputs.At(j))->GetModule();
      if( trDet.Contains( detStr ) ) continue;
      trDet.Append( " " );
      trDet.Append( detStr );
   }
   return trDet;
}

//_____________________________________________________________________________
AliTriggerDescriptor* AliTriggerConfiguration::AddDescriptor( TString &name, TString &cond )
{
  // Add a trigger descriptor to
  // the list of the trigger descriptors
  AliTriggerDescriptor *desc = new AliTriggerDescriptor(name,cond);
  if (!AddDescriptor(desc)) {
    delete desc;
    return NULL;
  }
  else
    return desc;
}

//_____________________________________________________________________________
Bool_t AliTriggerConfiguration::AddDescriptor( AliTriggerDescriptor *desc )
{
  // Add a trigger descriptor to
  // the list of the trigger descriptors
  if (fDescriptors.GetEntries() < kNMaxClasses) {
    if (desc->CheckInputsAndFunctions(fInputs,fFunctions)) {
      fDescriptors.AddLast( desc );
      return kTRUE;
    }
    else
      AliError("Invalid trigger desciptor ! Impossible to add it !");
  }
  else
    AliError("CTP can handle up to 50 different descriptors ! Impossible to add the required descriptor !");

  return kFALSE;
}

//_____________________________________________________________________________
Bool_t AliTriggerConfiguration::AddClass( AliTriggerClass *trclass )
{
  // Add a trigger class to
  // the list of the trigger classes
  if (fClasses.GetEntries() < kNMaxClasses) {
    if (trclass->CheckClass(this)) {
      fClasses.AddLast( trclass );
      return kTRUE;
    }
    else
      AliError("Invalid trigger class ! Impossible to add it !");
  }
  else
    AliError("CTP can handle up to 50 different classes ! Impossible to add the required class !");

  return kFALSE;
}

//_____________________________________________________________________________
AliTriggerClass *AliTriggerConfiguration::AddClass( TString &name, UChar_t index,
						    AliTriggerDescriptor *desc, AliTriggerCluster *clus,
						    AliTriggerPFProtection *pfp, AliTriggerBCMask *mask,
						    UInt_t prescaler, Bool_t allrare)
{
  // Add a trigger class to
  // the list of the trigger classes
  if (!fDescriptors.FindObject(desc)) {
    AliError("Invalid descriptor ! Impossible to add the class !");
    return NULL;
  }
  if (!fClusters.FindObject(clus)) {
    AliError("Invalid cluster ! Impossible to add the class !");
    return NULL;
  }
  if (!fPFProtections.FindObject(pfp)) {
    AliError("Invalid past-future protection ! Impossible to add the class !");
    return NULL;
  }
  if (!fMasks.FindObject(mask)) {
    AliError("Invalid bunch-crossing mask ! Impossible to add the class !");
    return NULL;
  }
  AliTriggerClass* trclass = new AliTriggerClass( name,index,desc,clus,pfp,mask,prescaler,allrare );
  if (!AddClass(trclass)) {
    delete trclass;
    return NULL;
  }
  else
    return trclass;
}

//_____________________________________________________________________________
AliTriggerClass *AliTriggerConfiguration::AddClass( TString &name, UChar_t index,
						    TString &desc, TString &clus,
						    TString &pfp, TString &mask,
						    UInt_t prescaler, Bool_t allrare)
{
   // Add a new trigger class
  if (!fDescriptors.FindObject(desc)) {
    AliError("Invalid descriptor ! Impossible to add the class !");
    return NULL;
  }
  if (!fClusters.FindObject(clus)) {
    AliError("Invalid cluster ! Impossible to add the class !");
    return NULL;
  }
  if (!fPFProtections.FindObject(pfp)) {
    AliError("Invalid past-future protection ! Impossible to add the class !");
    return NULL;
  }
  if (!fMasks.FindObject(mask)) {
    AliError("Invalid bunch-crossing mask ! Impossible to add the class !");
    return NULL;
  }
  AliTriggerClass* trclass = new AliTriggerClass( this, name,index,desc,clus,pfp,mask,prescaler,allrare );
  if (!AddClass(trclass)) {
    delete trclass;
    return NULL;
  }
  else
    return trclass;
}

//_____________________________________________________________________________
Bool_t AliTriggerConfiguration::ProcessConfigurationLine(const char* line, Int_t& level)
{
    // processes one line of configuration

     TString strLine(line);

     if (strLine.BeginsWith("#")) return kTRUE;
     if (strLine.BeginsWith("PARTITION:")) {
       strLine.ReplaceAll("PARTITION:","");
       SetName(strLine.Data());
       return kTRUE;
     }
     if (strLine.BeginsWith("VERSION:")) {
       strLine.ReplaceAll("VERSION:","");
       fVersion = strLine.Atoi();
       return kTRUE;
     }
     if (strLine.BeginsWith("INPUTS:")) {
       level = 1;
       return kTRUE;
     }
     if (strLine.BeginsWith("INTERACTIONS:")) {
       level = 2;
       return kTRUE;
     }
     if (strLine.BeginsWith("DESCRIPTORS:")) {
       level = 3;
       return kTRUE;
     }
     if (strLine.BeginsWith("CLUSTERS:")) {
       level = 4;
       return kTRUE;
     }
     if (strLine.BeginsWith("PFS:")) {
       level = 5;
       return kTRUE;
     }
     if (strLine.BeginsWith("BCMASKS:")) {
       level = 6;
       return kTRUE;
     }
     if (strLine.BeginsWith("CLASSES:")) {
       level = 7;
       return kTRUE;
     }

     strLine.ReplaceAll("*",'!');
     strLine.ReplaceAll("~",'!');
     TObjArray *tokens = strLine.Tokenize(" \t");
     Int_t ntokens = tokens->GetEntriesFast();
     if (ntokens == 0)
     {
       delete tokens;
       return kTRUE;
     }
     switch (level) {
     case 1:
       // Read inputs
       if ((ntokens != 5) && (ntokens !=6)) {
	 AliError(Form("Invalid trigger input syntax (%s)!",strLine.Data()));
	 delete tokens;
	 return kFALSE;
       }
       AddInput(((TObjString*)tokens->At(0))->String(),
		     ((TObjString*)tokens->At(1))->String(),
		     ((TObjString*)tokens->At(2))->String().Atoi(),
		     ((TObjString*)tokens->At(3))->String().Atoi(),
		     ((TObjString*)tokens->At(4))->String().Atoi());
       break;
     case 2:
       // Read interaction
       if (ntokens != 2) {
	 AliError(Form("Invalid trigger interaction syntax (%s)!",strLine.Data()));
	 delete tokens;
	 return kFALSE;
       }
       AddInteraction(((TObjString*)tokens->At(0))->String(),
			   ((TObjString*)tokens->At(1))->String());
       break;
     case 3:
       // Read logical functions and descriptors
       if (ntokens < 2) {
	 if ((((TObjString*)tokens->At(0))->String().CompareTo("EMPTY") == 0) ||
	     (((TObjString*)tokens->At(0))->String().CompareTo("DTRUE") == 0) ||
	     (((TObjString*)tokens->At(0))->String().CompareTo("DEMPTY") == 0)) {
	   AddDescriptor(((TObjString*)tokens->At(0))->String(),
			 strLine.ReplaceAll(((TObjString*)tokens->At(0))->String(),""));
	   break;
	 }
	 else {
	   AliError(Form("Invalid trigger descriptor syntax (%s)!",strLine.Data()));
	   delete tokens;
	   return kFALSE;
	 }
       }
       if (((TObjString*)tokens->At(0))->String().BeginsWith("l0f")) {
	 // function
	 if(!AddFunction(((TObjString*)tokens->At(0))->String(),
			 strLine.ReplaceAll(((TObjString*)tokens->At(0))->String(),""))) {
	   delete tokens;
	   return kFALSE;
	 }
       }
       else {
	 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()));
	   delete tokens;
	   return kFALSE;
         }
	 if (((TObjString*)tokens->At(1))->String().Atoi() <= 0) {
           AliError(Form("Invalid trigger cluster syntax (%s)!",strLine.Data()));
           return kFALSE;
         }
	 TString strTemp;
	 for(Int_t i = 2; i < ntokens; i++) {
	   strTemp += ((TObjString*)tokens->At(i))->String();
	   strTemp += " ";
	 }
	 AddCluster(((TObjString*)tokens->At(0))->String(),
			 ((TObjString*)tokens->At(1))->String().Atoi(),
			 strTemp);
       }
       break;
     case 5:
       {
	 AliTriggerPFProtection *pfp = NULL;
	 if ((((TObjString*)tokens->At(0))->String().CompareTo("NONE") == 0) ||
	     (((TObjString*)tokens->At(0))->String().CompareTo("NOPF") == 0)) {
	   pfp = new AliTriggerPFProtection(((TObjString*)tokens->At(0))->String());
	 }
	 else {
           if (ntokens == 10){ 
	    pfp = new AliTriggerPFProtection(((TObjString*)tokens->At(0))->String(),
					    ((TObjString*)tokens->At(1))->String(),
					    ((TObjString*)tokens->At(2))->String(),
					    ((TObjString*)tokens->At(3))->String());
	    pfp->SetNa1(((TObjString*)tokens->At(4))->String().Atoi());
	    pfp->SetNa2(((TObjString*)tokens->At(5))->String().Atoi());
	    pfp->SetNb1(((TObjString*)tokens->At(6))->String().Atoi());
	    pfp->SetNb2(((TObjString*)tokens->At(7))->String().Atoi());
	    pfp->SetTa(((TObjString*)tokens->At(8))->String().Atoi());
	    pfp->SetTb(((TObjString*)tokens->At(9))->String().Atoi());
	  }else if(ntokens == 13){
	    UInt_t pfdef[12];
	    for(Int_t i=0;i<12;i++){
	       TString ss(((TObjString*)tokens->At(i+1))->String());
	       ss.Remove(0,2);
	       UInt_t num=0;
	       for(Int_t j=ss.Length()-1;j>=0;j--){
	        UInt_t nn=ss[j];
		if(nn >= (UInt_t)'0' && nn <= (UInt_t)'9')nn=nn-(UInt_t)'0'; else 
		if(nn >= (UInt_t)'A' && nn <= (UInt_t)'F')nn=10+nn-(UInt_t)'A'; else
		if(nn >= (UInt_t)'a' && nn <= (UInt_t)'f')nn=10+nn-(UInt_t)'a'; else{
  	     		AliError(Form("Invalid trigger pfs syntax (%s)!",strLine.Data()));
	     		//return kFALSE;
		}
		num=num+(1<<(ss.Length()-1-j)*4)*nn;
	        //cout << ss[j] << " 2 " << nn << " "  << num << endl;
	       }
	       pfdef[i]=num;
	    }   
	    pfp = new AliTriggerPFProtection(((TObjString*)tokens->At(0))->String(),pfdef);
	  }else{
  	     AliError(Form("Invalid trigger pfs syntax (%s)!",strLine.Data()));
	     //return kFALSE;
          }
	 }
	 AddPFProtection(pfp);
       }
       break;
     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)
       {	 
         if(!AddMask(new AliTriggerBCMask(((TObjString*)tokens->At(0))->String()))) {
	   delete tokens;
	   return kFALSE;
	 }
       }
       else {
	 if(!AddMask(((TObjString*)tokens->At(0))->String(),((TObjString*)tokens->At(1))->String())) {
	   delete tokens;
	   return kFALSE;
	 }
       }
       break;
     case 7:
       {
         if ((ntokens !=8) && (ntokens != 10) && (ntokens != 11)) {
  	   AliError(Form("Invalid trigger class syntax (%s)!",strLine.Data()));
	   delete tokens;
	   return kFALSE;
         }
	 AliTriggerClass *trclass=0;
	 if(ntokens == 8)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(6))->String().Atoi(),(Bool_t)(((TObjString*)tokens->At(7))->String().Atoi()));
	 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(6))->String().Atoi(),(Bool_t)(((TObjString*)tokens->At(7))->String().Atoi()),
			(((TObjString*)tokens->At(8))->String().Atoi()),(((TObjString*)tokens->At(9))->String().Atoi()));
	   if(!trclass->SetMasks(this,((TObjString*)tokens->At(5))->String())) {
	     delete tokens;
	     return kFALSE;
	   }
	 }
         AddClass(trclass);
       }
     default:
       break;
     }
     delete tokens;

     return kTRUE;
}

//_____________________________________________________________________________
AliTriggerConfiguration* AliTriggerConfiguration::LoadConfiguration(TString & configuration)
{
   // Load one pre-created Configurations from database/file that match
   // with the input string 'configuration'
   // Ej: "Pb-Pb" or "p-p-DIMUON CALIBRATION-CENTRAL-BARREL"
  // By default the files are stored in GRP/CTP folder.
  // The filename is constructed as: GRP/CTP/<configuration>.cfg

   // Load the selected configuration
  TString filename;
  if (configuration.EndsWith(".cfg") ||
      configuration.EndsWith(".shuttle")) {
    filename = configuration;
  }
  else {
    filename = gSystem->Getenv("ALICE_ROOT");
    filename += "/GRP/CTP/";
    filename += configuration;
    filename += ".cfg";
  }

   if( gSystem->AccessPathName( filename.Data() ) ) {
      AliErrorClass( Form( "file (%s) not found", filename.Data() ) );
      return NULL;
   }


   ifstream *file = new ifstream ( filename.Data() );
   if (!*file) {
     AliErrorClass(Form("Error opening file (%s) !",filename.Data()));
     file->close();
     delete file;
     return NULL;
   }

   AliTriggerConfiguration *cfg = new AliTriggerConfiguration();

   Int_t level = 0;

   TString strLine;
   while (strLine.ReadLine(*file)) {
     if (cfg->ProcessConfigurationLine(strLine, level) == kFALSE)
     {
        delete cfg;
        cfg = 0;
        break;
     }
   }

   file->close();
   delete file;

   return cfg;
}

//_____________________________________________________________________________
AliTriggerConfiguration* AliTriggerConfiguration::LoadConfigurationFromString(const char* configuration)
{
   // Loads configuration given as parameter <configuration>

   if (!configuration)
     return 0;

   AliTriggerConfiguration *cfg = new AliTriggerConfiguration();

   Int_t level = 0;

   TObjArray* tokens = TString(configuration).Tokenize("\n");
   for (Int_t i=0; i<tokens->GetEntries(); i++)
   {
     TObjString* str = dynamic_cast<TObjString*>(tokens->At(i));
     if (!str)
       continue;

     if (cfg->ProcessConfigurationLine(str->String(), level) == kFALSE)
     {
        delete cfg;
        cfg = 0;
        break;
     }
   }

   delete tokens;

   return cfg;
}

//_____________________________________________________________________________
TObjArray* AliTriggerConfiguration::GetAvailableConfigurations( const char* filename )
{
   // Return an array of configuration in the file

   TString path;
   if( !filename[0] ) {
      path += gSystem->Getenv( "ALICE_ROOT" );
      path += fgkConfigurationFileName;
   }
   else
      path += filename;

   if( gSystem->AccessPathName( path.Data() ) ) {
      AliErrorGeneral( "AliTriggerConfiguration", Form( "file (%s) not found", path.Data() ) );
      return NULL;
   }

   TObjArray* desArray = new TObjArray();

   TFile file( path.Data(), "READ" );
   if( file.IsZombie() ) {
      AliErrorGeneral( "AliTriggerConfiguration", Form( "Error opening file (%s)", path.Data() ) );
      return NULL;
   }

   file.ReadAll();

   TKey* key;
   TIter next( file.GetListOfKeys() );
   while( (key = (TKey*)next()) ) {
      TObject* obj = key->ReadObj();
      if( obj->InheritsFrom( "AliTriggerConfiguration" ) ) {
         desArray->AddLast( obj );
      }
   }
   file.Close();

   return desArray;
}

//_____________________________________________________________________________
void AliTriggerConfiguration::WriteConfiguration( const char* filename )
{
   // Write the configuration
   TString path;
   if( !filename[0] ) {
      path += gSystem->Getenv("ALICE_ROOT");
      path += fgkConfigurationFileName;
   }
   else
      path += filename;

   TFile file( path.Data(), "UPDATE" );
   if( file.IsZombie() ) {
      AliErrorGeneral( "AliTriggerConfiguration", 
                        Form( "Can't open file (%s)", path.Data() ) );
      return;
   }

   Bool_t result = (Write( GetName(), TObject::kOverwrite ) != 0);
   if( !result )
      AliErrorGeneral( "AliTriggerConfiguration",
                        Form( "Can't write entry to file <%s>!", path.Data() ) );
   file.Close();
}

//_____________________________________________________________________________
Int_t AliTriggerConfiguration::GetClassIndexFromName(const char* className) const
{
   //const TObjArray& classes = cfg->GetClasses();
   Int_t nclasses = (Int_t)fClasses.GetEntriesFast();
   for (Int_t i=0;i<nclasses;i++) {
       AliTriggerClass* trgclass = (AliTriggerClass*)fClasses.At(i);
       if (TString(trgclass->GetName()).CompareTo(className) == 0) { 
          ULong64_t classmask = (ULong64_t)trgclass->GetMask();
          return TMath::Nint(TMath::Log2(classmask))+1;
       }
   }
   return -1;
}
//_____________________________________________________________________________
const char* AliTriggerConfiguration::GetClassNameFromIndex(Int_t classIndex) const
{
   Int_t nclasses = (Int_t)fClasses.GetEntriesFast();
   for (Int_t i=0;i<nclasses;i++) {
       AliTriggerClass* trgclass = (AliTriggerClass*)fClasses.At(i);
       ULong64_t classmask = (ULong64_t)trgclass->GetMask();
       if (TMath::Nint(TMath::Log2(classmask))+1 == classIndex) return trgclass->GetName();
   }
   return 0;
}
//_____________________________________________________________________________
AliTriggerClass* AliTriggerConfiguration::GetTriggerClass(Int_t classIndex) const
{
   Int_t nclasses = (Int_t)fClasses.GetEntriesFast();
   for (Int_t i=0;i<nclasses;i++) {
       AliTriggerClass* trgclass = (AliTriggerClass*)fClasses.At(i);
       ULong64_t classmask = (ULong64_t)trgclass->GetMask();
       if (TMath::Nint(TMath::Log2(classmask))+1 == classIndex) return trgclass;
   }
   return 0;
}
//_____________________________________________________________________________
void AliTriggerConfiguration::Reset()
{
   for( Int_t j=0; j<fInputs.GetEntriesFast(); j++ )
     ((AliTriggerInput*)fInputs.At(j))->Reset();

   for( Int_t j=0; j<fClasses.GetEntriesFast(); j++ )
     ((AliTriggerClass*)fClasses.At(j))->Reset();
}

//_____________________________________________________________________________
void AliTriggerConfiguration::Print( const Option_t*  ) const
{
   // Print
  cout << "#################################################" << endl;
   cout << "Trigger Configuration:"  << endl;
   cout << "  Name:              " << GetName() << endl; 
   cout << "  Description:       " << GetTitle() << endl;
   cout << "  Version:           " << GetVersion() << endl;
   cout << "  Active Detectors:  " << GetActiveDetectors() << endl;
   cout << "  Trigger Detectors: " << GetTriggeringDetectors() << endl;

   cout << "#################################################" << endl;
   fInputs.Print();
   cout << "#################################################" << endl;
   fInteractions.Print();
   cout << "#################################################" << endl;
   fFunctions.Print();
   cout << "#################################################" << endl;
   fDescriptors.Print();
   cout << "#################################################" << endl;
   fClusters.Print();
   cout << "#################################################" << endl;
   fPFProtections.Print();
   cout << "#################################################" << endl;
   fMasks.Print();
   cout << "#################################################" << endl;
   fClasses.Print();
   cout << "#################################################" << endl;

   cout << endl;
}


//////////////////////////////////////////////////////////////////////////////
// Helper method

//_____________________________________________________________________________
Bool_t AliTriggerConfiguration::IsSelected( TString detName, TString& detectors ) const
{
   // check whether detName is contained in detectors
   // if yes, it is removed from detectors

   // check if all detectors are selected
   if( (detectors.CompareTo("ALL") == 0 ) ||
        detectors.BeginsWith("ALL ") ||
        detectors.EndsWith(" ALL") ||
        detectors.Contains(" ALL ") ) {
      detectors = "ALL";
      return kTRUE;
   }

   // search for the given detector
   Bool_t result = kFALSE;
   if( (detectors.CompareTo( detName ) == 0) ||
        detectors.BeginsWith( detName+" " ) ||
        detectors.EndsWith( " "+detName ) ||
        detectors.Contains( " "+detName+" " ) ) {
      detectors.ReplaceAll( detName, "" );
      result = kTRUE;
   }

   // clean up the detectors string
   while( detectors.Contains("  ") )  detectors.ReplaceAll( "  ", " " );
   while( detectors.BeginsWith(" ") ) detectors.Remove( 0, 1 );
   while( detectors.EndsWith(" ") )   detectors.Remove( detectors.Length()-1, 1 );

   return result;
}
 AliTriggerConfiguration.cxx:1
 AliTriggerConfiguration.cxx:2
 AliTriggerConfiguration.cxx:3
 AliTriggerConfiguration.cxx:4
 AliTriggerConfiguration.cxx:5
 AliTriggerConfiguration.cxx:6
 AliTriggerConfiguration.cxx:7
 AliTriggerConfiguration.cxx:8
 AliTriggerConfiguration.cxx:9
 AliTriggerConfiguration.cxx:10
 AliTriggerConfiguration.cxx:11
 AliTriggerConfiguration.cxx:12
 AliTriggerConfiguration.cxx:13
 AliTriggerConfiguration.cxx:14
 AliTriggerConfiguration.cxx:15
 AliTriggerConfiguration.cxx:16
 AliTriggerConfiguration.cxx:17
 AliTriggerConfiguration.cxx:18
 AliTriggerConfiguration.cxx:19
 AliTriggerConfiguration.cxx:20
 AliTriggerConfiguration.cxx:21
 AliTriggerConfiguration.cxx:22
 AliTriggerConfiguration.cxx:23
 AliTriggerConfiguration.cxx:24
 AliTriggerConfiguration.cxx:25
 AliTriggerConfiguration.cxx:26
 AliTriggerConfiguration.cxx:27
 AliTriggerConfiguration.cxx:28
 AliTriggerConfiguration.cxx:29
 AliTriggerConfiguration.cxx:30
 AliTriggerConfiguration.cxx:31
 AliTriggerConfiguration.cxx:32
 AliTriggerConfiguration.cxx:33
 AliTriggerConfiguration.cxx:34
 AliTriggerConfiguration.cxx:35
 AliTriggerConfiguration.cxx:36
 AliTriggerConfiguration.cxx:37
 AliTriggerConfiguration.cxx:38
 AliTriggerConfiguration.cxx:39
 AliTriggerConfiguration.cxx:40
 AliTriggerConfiguration.cxx:41
 AliTriggerConfiguration.cxx:42
 AliTriggerConfiguration.cxx:43
 AliTriggerConfiguration.cxx:44
 AliTriggerConfiguration.cxx:45
 AliTriggerConfiguration.cxx:46
 AliTriggerConfiguration.cxx:47
 AliTriggerConfiguration.cxx:48
 AliTriggerConfiguration.cxx:49
 AliTriggerConfiguration.cxx:50
 AliTriggerConfiguration.cxx:51
 AliTriggerConfiguration.cxx:52
 AliTriggerConfiguration.cxx:53
 AliTriggerConfiguration.cxx:54
 AliTriggerConfiguration.cxx:55
 AliTriggerConfiguration.cxx:56
 AliTriggerConfiguration.cxx:57
 AliTriggerConfiguration.cxx:58
 AliTriggerConfiguration.cxx:59
 AliTriggerConfiguration.cxx:60
 AliTriggerConfiguration.cxx:61
 AliTriggerConfiguration.cxx:62
 AliTriggerConfiguration.cxx:63
 AliTriggerConfiguration.cxx:64
 AliTriggerConfiguration.cxx:65
 AliTriggerConfiguration.cxx:66
 AliTriggerConfiguration.cxx:67
 AliTriggerConfiguration.cxx:68
 AliTriggerConfiguration.cxx:69
 AliTriggerConfiguration.cxx:70
 AliTriggerConfiguration.cxx:71
 AliTriggerConfiguration.cxx:72
 AliTriggerConfiguration.cxx:73
 AliTriggerConfiguration.cxx:74
 AliTriggerConfiguration.cxx:75
 AliTriggerConfiguration.cxx:76
 AliTriggerConfiguration.cxx:77
 AliTriggerConfiguration.cxx:78
 AliTriggerConfiguration.cxx:79
 AliTriggerConfiguration.cxx:80
 AliTriggerConfiguration.cxx:81
 AliTriggerConfiguration.cxx:82
 AliTriggerConfiguration.cxx:83
 AliTriggerConfiguration.cxx:84
 AliTriggerConfiguration.cxx:85
 AliTriggerConfiguration.cxx:86
 AliTriggerConfiguration.cxx:87
 AliTriggerConfiguration.cxx:88
 AliTriggerConfiguration.cxx:89
 AliTriggerConfiguration.cxx:90
 AliTriggerConfiguration.cxx:91
 AliTriggerConfiguration.cxx:92
 AliTriggerConfiguration.cxx:93
 AliTriggerConfiguration.cxx:94
 AliTriggerConfiguration.cxx:95
 AliTriggerConfiguration.cxx:96
 AliTriggerConfiguration.cxx:97
 AliTriggerConfiguration.cxx:98
 AliTriggerConfiguration.cxx:99
 AliTriggerConfiguration.cxx:100
 AliTriggerConfiguration.cxx:101
 AliTriggerConfiguration.cxx:102
 AliTriggerConfiguration.cxx:103
 AliTriggerConfiguration.cxx:104
 AliTriggerConfiguration.cxx:105
 AliTriggerConfiguration.cxx:106
 AliTriggerConfiguration.cxx:107
 AliTriggerConfiguration.cxx:108
 AliTriggerConfiguration.cxx:109
 AliTriggerConfiguration.cxx:110
 AliTriggerConfiguration.cxx:111
 AliTriggerConfiguration.cxx:112
 AliTriggerConfiguration.cxx:113
 AliTriggerConfiguration.cxx:114
 AliTriggerConfiguration.cxx:115
 AliTriggerConfiguration.cxx:116
 AliTriggerConfiguration.cxx:117
 AliTriggerConfiguration.cxx:118
 AliTriggerConfiguration.cxx:119
 AliTriggerConfiguration.cxx:120
 AliTriggerConfiguration.cxx:121
 AliTriggerConfiguration.cxx:122
 AliTriggerConfiguration.cxx:123
 AliTriggerConfiguration.cxx:124
 AliTriggerConfiguration.cxx:125
 AliTriggerConfiguration.cxx:126
 AliTriggerConfiguration.cxx:127
 AliTriggerConfiguration.cxx:128
 AliTriggerConfiguration.cxx:129
 AliTriggerConfiguration.cxx:130
 AliTriggerConfiguration.cxx:131
 AliTriggerConfiguration.cxx:132
 AliTriggerConfiguration.cxx:133
 AliTriggerConfiguration.cxx:134
 AliTriggerConfiguration.cxx:135
 AliTriggerConfiguration.cxx:136
 AliTriggerConfiguration.cxx:137
 AliTriggerConfiguration.cxx:138
 AliTriggerConfiguration.cxx:139
 AliTriggerConfiguration.cxx:140
 AliTriggerConfiguration.cxx:141
 AliTriggerConfiguration.cxx:142
 AliTriggerConfiguration.cxx:143
 AliTriggerConfiguration.cxx:144
 AliTriggerConfiguration.cxx:145
 AliTriggerConfiguration.cxx:146
 AliTriggerConfiguration.cxx:147
 AliTriggerConfiguration.cxx:148
 AliTriggerConfiguration.cxx:149
 AliTriggerConfiguration.cxx:150
 AliTriggerConfiguration.cxx:151
 AliTriggerConfiguration.cxx:152
 AliTriggerConfiguration.cxx:153
 AliTriggerConfiguration.cxx:154
 AliTriggerConfiguration.cxx:155
 AliTriggerConfiguration.cxx:156
 AliTriggerConfiguration.cxx:157
 AliTriggerConfiguration.cxx:158
 AliTriggerConfiguration.cxx:159
 AliTriggerConfiguration.cxx:160
 AliTriggerConfiguration.cxx:161
 AliTriggerConfiguration.cxx:162
 AliTriggerConfiguration.cxx:163
 AliTriggerConfiguration.cxx:164
 AliTriggerConfiguration.cxx:165
 AliTriggerConfiguration.cxx:166
 AliTriggerConfiguration.cxx:167
 AliTriggerConfiguration.cxx:168
 AliTriggerConfiguration.cxx:169
 AliTriggerConfiguration.cxx:170
 AliTriggerConfiguration.cxx:171
 AliTriggerConfiguration.cxx:172
 AliTriggerConfiguration.cxx:173
 AliTriggerConfiguration.cxx:174
 AliTriggerConfiguration.cxx:175
 AliTriggerConfiguration.cxx:176
 AliTriggerConfiguration.cxx:177
 AliTriggerConfiguration.cxx:178
 AliTriggerConfiguration.cxx:179
 AliTriggerConfiguration.cxx:180
 AliTriggerConfiguration.cxx:181
 AliTriggerConfiguration.cxx:182
 AliTriggerConfiguration.cxx:183
 AliTriggerConfiguration.cxx:184
 AliTriggerConfiguration.cxx:185
 AliTriggerConfiguration.cxx:186
 AliTriggerConfiguration.cxx:187
 AliTriggerConfiguration.cxx:188
 AliTriggerConfiguration.cxx:189
 AliTriggerConfiguration.cxx:190
 AliTriggerConfiguration.cxx:191
 AliTriggerConfiguration.cxx:192
 AliTriggerConfiguration.cxx:193
 AliTriggerConfiguration.cxx:194
 AliTriggerConfiguration.cxx:195
 AliTriggerConfiguration.cxx:196
 AliTriggerConfiguration.cxx:197
 AliTriggerConfiguration.cxx:198
 AliTriggerConfiguration.cxx:199
 AliTriggerConfiguration.cxx:200
 AliTriggerConfiguration.cxx:201
 AliTriggerConfiguration.cxx:202
 AliTriggerConfiguration.cxx:203
 AliTriggerConfiguration.cxx:204
 AliTriggerConfiguration.cxx:205
 AliTriggerConfiguration.cxx:206
 AliTriggerConfiguration.cxx:207
 AliTriggerConfiguration.cxx:208
 AliTriggerConfiguration.cxx:209
 AliTriggerConfiguration.cxx:210
 AliTriggerConfiguration.cxx:211
 AliTriggerConfiguration.cxx:212
 AliTriggerConfiguration.cxx:213
 AliTriggerConfiguration.cxx:214
 AliTriggerConfiguration.cxx:215
 AliTriggerConfiguration.cxx:216
 AliTriggerConfiguration.cxx:217
 AliTriggerConfiguration.cxx:218
 AliTriggerConfiguration.cxx:219
 AliTriggerConfiguration.cxx:220
 AliTriggerConfiguration.cxx:221
 AliTriggerConfiguration.cxx:222
 AliTriggerConfiguration.cxx:223
 AliTriggerConfiguration.cxx:224
 AliTriggerConfiguration.cxx:225
 AliTriggerConfiguration.cxx:226
 AliTriggerConfiguration.cxx:227
 AliTriggerConfiguration.cxx:228
 AliTriggerConfiguration.cxx:229
 AliTriggerConfiguration.cxx:230
 AliTriggerConfiguration.cxx:231
 AliTriggerConfiguration.cxx:232
 AliTriggerConfiguration.cxx:233
 AliTriggerConfiguration.cxx:234
 AliTriggerConfiguration.cxx:235
 AliTriggerConfiguration.cxx:236
 AliTriggerConfiguration.cxx:237
 AliTriggerConfiguration.cxx:238
 AliTriggerConfiguration.cxx:239
 AliTriggerConfiguration.cxx:240
 AliTriggerConfiguration.cxx:241
 AliTriggerConfiguration.cxx:242
 AliTriggerConfiguration.cxx:243
 AliTriggerConfiguration.cxx:244
 AliTriggerConfiguration.cxx:245
 AliTriggerConfiguration.cxx:246
 AliTriggerConfiguration.cxx:247
 AliTriggerConfiguration.cxx:248
 AliTriggerConfiguration.cxx:249
 AliTriggerConfiguration.cxx:250
 AliTriggerConfiguration.cxx:251
 AliTriggerConfiguration.cxx:252
 AliTriggerConfiguration.cxx:253
 AliTriggerConfiguration.cxx:254
 AliTriggerConfiguration.cxx:255
 AliTriggerConfiguration.cxx:256
 AliTriggerConfiguration.cxx:257
 AliTriggerConfiguration.cxx:258
 AliTriggerConfiguration.cxx:259
 AliTriggerConfiguration.cxx:260
 AliTriggerConfiguration.cxx:261
 AliTriggerConfiguration.cxx:262
 AliTriggerConfiguration.cxx:263
 AliTriggerConfiguration.cxx:264
 AliTriggerConfiguration.cxx:265
 AliTriggerConfiguration.cxx:266
 AliTriggerConfiguration.cxx:267
 AliTriggerConfiguration.cxx:268
 AliTriggerConfiguration.cxx:269
 AliTriggerConfiguration.cxx:270
 AliTriggerConfiguration.cxx:271
 AliTriggerConfiguration.cxx:272
 AliTriggerConfiguration.cxx:273
 AliTriggerConfiguration.cxx:274
 AliTriggerConfiguration.cxx:275
 AliTriggerConfiguration.cxx:276
 AliTriggerConfiguration.cxx:277
 AliTriggerConfiguration.cxx:278
 AliTriggerConfiguration.cxx:279
 AliTriggerConfiguration.cxx:280
 AliTriggerConfiguration.cxx:281
 AliTriggerConfiguration.cxx:282
 AliTriggerConfiguration.cxx:283
 AliTriggerConfiguration.cxx:284
 AliTriggerConfiguration.cxx:285
 AliTriggerConfiguration.cxx:286
 AliTriggerConfiguration.cxx:287
 AliTriggerConfiguration.cxx:288
 AliTriggerConfiguration.cxx:289
 AliTriggerConfiguration.cxx:290
 AliTriggerConfiguration.cxx:291
 AliTriggerConfiguration.cxx:292
 AliTriggerConfiguration.cxx:293
 AliTriggerConfiguration.cxx:294
 AliTriggerConfiguration.cxx:295
 AliTriggerConfiguration.cxx:296
 AliTriggerConfiguration.cxx:297
 AliTriggerConfiguration.cxx:298
 AliTriggerConfiguration.cxx:299
 AliTriggerConfiguration.cxx:300
 AliTriggerConfiguration.cxx:301
 AliTriggerConfiguration.cxx:302
 AliTriggerConfiguration.cxx:303
 AliTriggerConfiguration.cxx:304
 AliTriggerConfiguration.cxx:305
 AliTriggerConfiguration.cxx:306
 AliTriggerConfiguration.cxx:307
 AliTriggerConfiguration.cxx:308
 AliTriggerConfiguration.cxx:309
 AliTriggerConfiguration.cxx:310
 AliTriggerConfiguration.cxx:311
 AliTriggerConfiguration.cxx:312
 AliTriggerConfiguration.cxx:313
 AliTriggerConfiguration.cxx:314
 AliTriggerConfiguration.cxx:315
 AliTriggerConfiguration.cxx:316
 AliTriggerConfiguration.cxx:317
 AliTriggerConfiguration.cxx:318
 AliTriggerConfiguration.cxx:319
 AliTriggerConfiguration.cxx:320
 AliTriggerConfiguration.cxx:321
 AliTriggerConfiguration.cxx:322
 AliTriggerConfiguration.cxx:323
 AliTriggerConfiguration.cxx:324
 AliTriggerConfiguration.cxx:325
 AliTriggerConfiguration.cxx:326
 AliTriggerConfiguration.cxx:327
 AliTriggerConfiguration.cxx:328
 AliTriggerConfiguration.cxx:329
 AliTriggerConfiguration.cxx:330
 AliTriggerConfiguration.cxx:331
 AliTriggerConfiguration.cxx:332
 AliTriggerConfiguration.cxx:333
 AliTriggerConfiguration.cxx:334
 AliTriggerConfiguration.cxx:335
 AliTriggerConfiguration.cxx:336
 AliTriggerConfiguration.cxx:337
 AliTriggerConfiguration.cxx:338
 AliTriggerConfiguration.cxx:339
 AliTriggerConfiguration.cxx:340
 AliTriggerConfiguration.cxx:341
 AliTriggerConfiguration.cxx:342
 AliTriggerConfiguration.cxx:343
 AliTriggerConfiguration.cxx:344
 AliTriggerConfiguration.cxx:345
 AliTriggerConfiguration.cxx:346
 AliTriggerConfiguration.cxx:347
 AliTriggerConfiguration.cxx:348
 AliTriggerConfiguration.cxx:349
 AliTriggerConfiguration.cxx:350
 AliTriggerConfiguration.cxx:351
 AliTriggerConfiguration.cxx:352
 AliTriggerConfiguration.cxx:353
 AliTriggerConfiguration.cxx:354
 AliTriggerConfiguration.cxx:355
 AliTriggerConfiguration.cxx:356
 AliTriggerConfiguration.cxx:357
 AliTriggerConfiguration.cxx:358
 AliTriggerConfiguration.cxx:359
 AliTriggerConfiguration.cxx:360
 AliTriggerConfiguration.cxx:361
 AliTriggerConfiguration.cxx:362
 AliTriggerConfiguration.cxx:363
 AliTriggerConfiguration.cxx:364
 AliTriggerConfiguration.cxx:365
 AliTriggerConfiguration.cxx:366
 AliTriggerConfiguration.cxx:367
 AliTriggerConfiguration.cxx:368
 AliTriggerConfiguration.cxx:369
 AliTriggerConfiguration.cxx:370
 AliTriggerConfiguration.cxx:371
 AliTriggerConfiguration.cxx:372
 AliTriggerConfiguration.cxx:373
 AliTriggerConfiguration.cxx:374
 AliTriggerConfiguration.cxx:375
 AliTriggerConfiguration.cxx:376
 AliTriggerConfiguration.cxx:377
 AliTriggerConfiguration.cxx:378
 AliTriggerConfiguration.cxx:379
 AliTriggerConfiguration.cxx:380
 AliTriggerConfiguration.cxx:381
 AliTriggerConfiguration.cxx:382
 AliTriggerConfiguration.cxx:383
 AliTriggerConfiguration.cxx:384
 AliTriggerConfiguration.cxx:385
 AliTriggerConfiguration.cxx:386
 AliTriggerConfiguration.cxx:387
 AliTriggerConfiguration.cxx:388
 AliTriggerConfiguration.cxx:389
 AliTriggerConfiguration.cxx:390
 AliTriggerConfiguration.cxx:391
 AliTriggerConfiguration.cxx:392
 AliTriggerConfiguration.cxx:393
 AliTriggerConfiguration.cxx:394
 AliTriggerConfiguration.cxx:395
 AliTriggerConfiguration.cxx:396
 AliTriggerConfiguration.cxx:397
 AliTriggerConfiguration.cxx:398
 AliTriggerConfiguration.cxx:399
 AliTriggerConfiguration.cxx:400
 AliTriggerConfiguration.cxx:401
 AliTriggerConfiguration.cxx:402
 AliTriggerConfiguration.cxx:403
 AliTriggerConfiguration.cxx:404
 AliTriggerConfiguration.cxx:405
 AliTriggerConfiguration.cxx:406
 AliTriggerConfiguration.cxx:407
 AliTriggerConfiguration.cxx:408
 AliTriggerConfiguration.cxx:409
 AliTriggerConfiguration.cxx:410
 AliTriggerConfiguration.cxx:411
 AliTriggerConfiguration.cxx:412
 AliTriggerConfiguration.cxx:413
 AliTriggerConfiguration.cxx:414
 AliTriggerConfiguration.cxx:415
 AliTriggerConfiguration.cxx:416
 AliTriggerConfiguration.cxx:417
 AliTriggerConfiguration.cxx:418
 AliTriggerConfiguration.cxx:419
 AliTriggerConfiguration.cxx:420
 AliTriggerConfiguration.cxx:421
 AliTriggerConfiguration.cxx:422
 AliTriggerConfiguration.cxx:423
 AliTriggerConfiguration.cxx:424
 AliTriggerConfiguration.cxx:425
 AliTriggerConfiguration.cxx:426
 AliTriggerConfiguration.cxx:427
 AliTriggerConfiguration.cxx:428
 AliTriggerConfiguration.cxx:429
 AliTriggerConfiguration.cxx:430
 AliTriggerConfiguration.cxx:431
 AliTriggerConfiguration.cxx:432
 AliTriggerConfiguration.cxx:433
 AliTriggerConfiguration.cxx:434
 AliTriggerConfiguration.cxx:435
 AliTriggerConfiguration.cxx:436
 AliTriggerConfiguration.cxx:437
 AliTriggerConfiguration.cxx:438
 AliTriggerConfiguration.cxx:439
 AliTriggerConfiguration.cxx:440
 AliTriggerConfiguration.cxx:441
 AliTriggerConfiguration.cxx:442
 AliTriggerConfiguration.cxx:443
 AliTriggerConfiguration.cxx:444
 AliTriggerConfiguration.cxx:445
 AliTriggerConfiguration.cxx:446
 AliTriggerConfiguration.cxx:447
 AliTriggerConfiguration.cxx:448
 AliTriggerConfiguration.cxx:449
 AliTriggerConfiguration.cxx:450
 AliTriggerConfiguration.cxx:451
 AliTriggerConfiguration.cxx:452
 AliTriggerConfiguration.cxx:453
 AliTriggerConfiguration.cxx:454
 AliTriggerConfiguration.cxx:455
 AliTriggerConfiguration.cxx:456
 AliTriggerConfiguration.cxx:457
 AliTriggerConfiguration.cxx:458
 AliTriggerConfiguration.cxx:459
 AliTriggerConfiguration.cxx:460
 AliTriggerConfiguration.cxx:461
 AliTriggerConfiguration.cxx:462
 AliTriggerConfiguration.cxx:463
 AliTriggerConfiguration.cxx:464
 AliTriggerConfiguration.cxx:465
 AliTriggerConfiguration.cxx:466
 AliTriggerConfiguration.cxx:467
 AliTriggerConfiguration.cxx:468
 AliTriggerConfiguration.cxx:469
 AliTriggerConfiguration.cxx:470
 AliTriggerConfiguration.cxx:471
 AliTriggerConfiguration.cxx:472
 AliTriggerConfiguration.cxx:473
 AliTriggerConfiguration.cxx:474
 AliTriggerConfiguration.cxx:475
 AliTriggerConfiguration.cxx:476
 AliTriggerConfiguration.cxx:477
 AliTriggerConfiguration.cxx:478
 AliTriggerConfiguration.cxx:479
 AliTriggerConfiguration.cxx:480
 AliTriggerConfiguration.cxx:481
 AliTriggerConfiguration.cxx:482
 AliTriggerConfiguration.cxx:483
 AliTriggerConfiguration.cxx:484
 AliTriggerConfiguration.cxx:485
 AliTriggerConfiguration.cxx:486
 AliTriggerConfiguration.cxx:487
 AliTriggerConfiguration.cxx:488
 AliTriggerConfiguration.cxx:489
 AliTriggerConfiguration.cxx:490
 AliTriggerConfiguration.cxx:491
 AliTriggerConfiguration.cxx:492
 AliTriggerConfiguration.cxx:493
 AliTriggerConfiguration.cxx:494
 AliTriggerConfiguration.cxx:495
 AliTriggerConfiguration.cxx:496
 AliTriggerConfiguration.cxx:497
 AliTriggerConfiguration.cxx:498
 AliTriggerConfiguration.cxx:499
 AliTriggerConfiguration.cxx:500
 AliTriggerConfiguration.cxx:501
 AliTriggerConfiguration.cxx:502
 AliTriggerConfiguration.cxx:503
 AliTriggerConfiguration.cxx:504
 AliTriggerConfiguration.cxx:505
 AliTriggerConfiguration.cxx:506
 AliTriggerConfiguration.cxx:507
 AliTriggerConfiguration.cxx:508
 AliTriggerConfiguration.cxx:509
 AliTriggerConfiguration.cxx:510
 AliTriggerConfiguration.cxx:511
 AliTriggerConfiguration.cxx:512
 AliTriggerConfiguration.cxx:513
 AliTriggerConfiguration.cxx:514
 AliTriggerConfiguration.cxx:515
 AliTriggerConfiguration.cxx:516
 AliTriggerConfiguration.cxx:517
 AliTriggerConfiguration.cxx:518
 AliTriggerConfiguration.cxx:519
 AliTriggerConfiguration.cxx:520
 AliTriggerConfiguration.cxx:521
 AliTriggerConfiguration.cxx:522
 AliTriggerConfiguration.cxx:523
 AliTriggerConfiguration.cxx:524
 AliTriggerConfiguration.cxx:525
 AliTriggerConfiguration.cxx:526
 AliTriggerConfiguration.cxx:527
 AliTriggerConfiguration.cxx:528
 AliTriggerConfiguration.cxx:529
 AliTriggerConfiguration.cxx:530
 AliTriggerConfiguration.cxx:531
 AliTriggerConfiguration.cxx:532
 AliTriggerConfiguration.cxx:533
 AliTriggerConfiguration.cxx:534
 AliTriggerConfiguration.cxx:535
 AliTriggerConfiguration.cxx:536
 AliTriggerConfiguration.cxx:537
 AliTriggerConfiguration.cxx:538
 AliTriggerConfiguration.cxx:539
 AliTriggerConfiguration.cxx:540
 AliTriggerConfiguration.cxx:541
 AliTriggerConfiguration.cxx:542
 AliTriggerConfiguration.cxx:543
 AliTriggerConfiguration.cxx:544
 AliTriggerConfiguration.cxx:545
 AliTriggerConfiguration.cxx:546
 AliTriggerConfiguration.cxx:547
 AliTriggerConfiguration.cxx:548
 AliTriggerConfiguration.cxx:549
 AliTriggerConfiguration.cxx:550
 AliTriggerConfiguration.cxx:551
 AliTriggerConfiguration.cxx:552
 AliTriggerConfiguration.cxx:553
 AliTriggerConfiguration.cxx:554
 AliTriggerConfiguration.cxx:555
 AliTriggerConfiguration.cxx:556
 AliTriggerConfiguration.cxx:557
 AliTriggerConfiguration.cxx:558
 AliTriggerConfiguration.cxx:559
 AliTriggerConfiguration.cxx:560
 AliTriggerConfiguration.cxx:561
 AliTriggerConfiguration.cxx:562
 AliTriggerConfiguration.cxx:563
 AliTriggerConfiguration.cxx:564
 AliTriggerConfiguration.cxx:565
 AliTriggerConfiguration.cxx:566
 AliTriggerConfiguration.cxx:567
 AliTriggerConfiguration.cxx:568
 AliTriggerConfiguration.cxx:569
 AliTriggerConfiguration.cxx:570
 AliTriggerConfiguration.cxx:571
 AliTriggerConfiguration.cxx:572
 AliTriggerConfiguration.cxx:573
 AliTriggerConfiguration.cxx:574
 AliTriggerConfiguration.cxx:575
 AliTriggerConfiguration.cxx:576
 AliTriggerConfiguration.cxx:577
 AliTriggerConfiguration.cxx:578
 AliTriggerConfiguration.cxx:579
 AliTriggerConfiguration.cxx:580
 AliTriggerConfiguration.cxx:581
 AliTriggerConfiguration.cxx:582
 AliTriggerConfiguration.cxx:583
 AliTriggerConfiguration.cxx:584
 AliTriggerConfiguration.cxx:585
 AliTriggerConfiguration.cxx:586
 AliTriggerConfiguration.cxx:587
 AliTriggerConfiguration.cxx:588
 AliTriggerConfiguration.cxx:589
 AliTriggerConfiguration.cxx:590
 AliTriggerConfiguration.cxx:591
 AliTriggerConfiguration.cxx:592
 AliTriggerConfiguration.cxx:593
 AliTriggerConfiguration.cxx:594
 AliTriggerConfiguration.cxx:595
 AliTriggerConfiguration.cxx:596
 AliTriggerConfiguration.cxx:597
 AliTriggerConfiguration.cxx:598
 AliTriggerConfiguration.cxx:599
 AliTriggerConfiguration.cxx:600
 AliTriggerConfiguration.cxx:601
 AliTriggerConfiguration.cxx:602
 AliTriggerConfiguration.cxx:603
 AliTriggerConfiguration.cxx:604
 AliTriggerConfiguration.cxx:605
 AliTriggerConfiguration.cxx:606
 AliTriggerConfiguration.cxx:607
 AliTriggerConfiguration.cxx:608
 AliTriggerConfiguration.cxx:609
 AliTriggerConfiguration.cxx:610
 AliTriggerConfiguration.cxx:611
 AliTriggerConfiguration.cxx:612
 AliTriggerConfiguration.cxx:613
 AliTriggerConfiguration.cxx:614
 AliTriggerConfiguration.cxx:615
 AliTriggerConfiguration.cxx:616
 AliTriggerConfiguration.cxx:617
 AliTriggerConfiguration.cxx:618
 AliTriggerConfiguration.cxx:619
 AliTriggerConfiguration.cxx:620
 AliTriggerConfiguration.cxx:621
 AliTriggerConfiguration.cxx:622
 AliTriggerConfiguration.cxx:623
 AliTriggerConfiguration.cxx:624
 AliTriggerConfiguration.cxx:625
 AliTriggerConfiguration.cxx:626
 AliTriggerConfiguration.cxx:627
 AliTriggerConfiguration.cxx:628
 AliTriggerConfiguration.cxx:629
 AliTriggerConfiguration.cxx:630
 AliTriggerConfiguration.cxx:631
 AliTriggerConfiguration.cxx:632
 AliTriggerConfiguration.cxx:633
 AliTriggerConfiguration.cxx:634
 AliTriggerConfiguration.cxx:635
 AliTriggerConfiguration.cxx:636
 AliTriggerConfiguration.cxx:637
 AliTriggerConfiguration.cxx:638
 AliTriggerConfiguration.cxx:639
 AliTriggerConfiguration.cxx:640
 AliTriggerConfiguration.cxx:641
 AliTriggerConfiguration.cxx:642
 AliTriggerConfiguration.cxx:643
 AliTriggerConfiguration.cxx:644
 AliTriggerConfiguration.cxx:645
 AliTriggerConfiguration.cxx:646
 AliTriggerConfiguration.cxx:647
 AliTriggerConfiguration.cxx:648
 AliTriggerConfiguration.cxx:649
 AliTriggerConfiguration.cxx:650
 AliTriggerConfiguration.cxx:651
 AliTriggerConfiguration.cxx:652
 AliTriggerConfiguration.cxx:653
 AliTriggerConfiguration.cxx:654
 AliTriggerConfiguration.cxx:655
 AliTriggerConfiguration.cxx:656
 AliTriggerConfiguration.cxx:657
 AliTriggerConfiguration.cxx:658
 AliTriggerConfiguration.cxx:659
 AliTriggerConfiguration.cxx:660
 AliTriggerConfiguration.cxx:661
 AliTriggerConfiguration.cxx:662
 AliTriggerConfiguration.cxx:663
 AliTriggerConfiguration.cxx:664
 AliTriggerConfiguration.cxx:665
 AliTriggerConfiguration.cxx:666
 AliTriggerConfiguration.cxx:667
 AliTriggerConfiguration.cxx:668
 AliTriggerConfiguration.cxx:669
 AliTriggerConfiguration.cxx:670
 AliTriggerConfiguration.cxx:671
 AliTriggerConfiguration.cxx:672
 AliTriggerConfiguration.cxx:673
 AliTriggerConfiguration.cxx:674
 AliTriggerConfiguration.cxx:675
 AliTriggerConfiguration.cxx:676
 AliTriggerConfiguration.cxx:677
 AliTriggerConfiguration.cxx:678
 AliTriggerConfiguration.cxx:679
 AliTriggerConfiguration.cxx:680
 AliTriggerConfiguration.cxx:681
 AliTriggerConfiguration.cxx:682
 AliTriggerConfiguration.cxx:683
 AliTriggerConfiguration.cxx:684
 AliTriggerConfiguration.cxx:685
 AliTriggerConfiguration.cxx:686
 AliTriggerConfiguration.cxx:687
 AliTriggerConfiguration.cxx:688
 AliTriggerConfiguration.cxx:689
 AliTriggerConfiguration.cxx:690
 AliTriggerConfiguration.cxx:691
 AliTriggerConfiguration.cxx:692
 AliTriggerConfiguration.cxx:693
 AliTriggerConfiguration.cxx:694
 AliTriggerConfiguration.cxx:695
 AliTriggerConfiguration.cxx:696
 AliTriggerConfiguration.cxx:697
 AliTriggerConfiguration.cxx:698
 AliTriggerConfiguration.cxx:699
 AliTriggerConfiguration.cxx:700
 AliTriggerConfiguration.cxx:701
 AliTriggerConfiguration.cxx:702
 AliTriggerConfiguration.cxx:703
 AliTriggerConfiguration.cxx:704
 AliTriggerConfiguration.cxx:705
 AliTriggerConfiguration.cxx:706
 AliTriggerConfiguration.cxx:707
 AliTriggerConfiguration.cxx:708
 AliTriggerConfiguration.cxx:709
 AliTriggerConfiguration.cxx:710
 AliTriggerConfiguration.cxx:711
 AliTriggerConfiguration.cxx:712
 AliTriggerConfiguration.cxx:713
 AliTriggerConfiguration.cxx:714
 AliTriggerConfiguration.cxx:715
 AliTriggerConfiguration.cxx:716
 AliTriggerConfiguration.cxx:717
 AliTriggerConfiguration.cxx:718
 AliTriggerConfiguration.cxx:719
 AliTriggerConfiguration.cxx:720
 AliTriggerConfiguration.cxx:721
 AliTriggerConfiguration.cxx:722
 AliTriggerConfiguration.cxx:723
 AliTriggerConfiguration.cxx:724
 AliTriggerConfiguration.cxx:725
 AliTriggerConfiguration.cxx:726
 AliTriggerConfiguration.cxx:727
 AliTriggerConfiguration.cxx:728
 AliTriggerConfiguration.cxx:729
 AliTriggerConfiguration.cxx:730
 AliTriggerConfiguration.cxx:731
 AliTriggerConfiguration.cxx:732
 AliTriggerConfiguration.cxx:733
 AliTriggerConfiguration.cxx:734
 AliTriggerConfiguration.cxx:735
 AliTriggerConfiguration.cxx:736
 AliTriggerConfiguration.cxx:737
 AliTriggerConfiguration.cxx:738
 AliTriggerConfiguration.cxx:739
 AliTriggerConfiguration.cxx:740
 AliTriggerConfiguration.cxx:741
 AliTriggerConfiguration.cxx:742
 AliTriggerConfiguration.cxx:743
 AliTriggerConfiguration.cxx:744
 AliTriggerConfiguration.cxx:745
 AliTriggerConfiguration.cxx:746
 AliTriggerConfiguration.cxx:747
 AliTriggerConfiguration.cxx:748
 AliTriggerConfiguration.cxx:749
 AliTriggerConfiguration.cxx:750
 AliTriggerConfiguration.cxx:751
 AliTriggerConfiguration.cxx:752
 AliTriggerConfiguration.cxx:753
 AliTriggerConfiguration.cxx:754
 AliTriggerConfiguration.cxx:755
 AliTriggerConfiguration.cxx:756
 AliTriggerConfiguration.cxx:757
 AliTriggerConfiguration.cxx:758
 AliTriggerConfiguration.cxx:759
 AliTriggerConfiguration.cxx:760
 AliTriggerConfiguration.cxx:761
 AliTriggerConfiguration.cxx:762
 AliTriggerConfiguration.cxx:763
 AliTriggerConfiguration.cxx:764
 AliTriggerConfiguration.cxx:765
 AliTriggerConfiguration.cxx:766
 AliTriggerConfiguration.cxx:767
 AliTriggerConfiguration.cxx:768
 AliTriggerConfiguration.cxx:769
 AliTriggerConfiguration.cxx:770
 AliTriggerConfiguration.cxx:771
 AliTriggerConfiguration.cxx:772
 AliTriggerConfiguration.cxx:773
 AliTriggerConfiguration.cxx:774
 AliTriggerConfiguration.cxx:775
 AliTriggerConfiguration.cxx:776
 AliTriggerConfiguration.cxx:777
 AliTriggerConfiguration.cxx:778
 AliTriggerConfiguration.cxx:779
 AliTriggerConfiguration.cxx:780
 AliTriggerConfiguration.cxx:781
 AliTriggerConfiguration.cxx:782
 AliTriggerConfiguration.cxx:783
 AliTriggerConfiguration.cxx:784
 AliTriggerConfiguration.cxx:785
 AliTriggerConfiguration.cxx:786
 AliTriggerConfiguration.cxx:787
 AliTriggerConfiguration.cxx:788
 AliTriggerConfiguration.cxx:789
 AliTriggerConfiguration.cxx:790
 AliTriggerConfiguration.cxx:791
 AliTriggerConfiguration.cxx:792
 AliTriggerConfiguration.cxx:793
 AliTriggerConfiguration.cxx:794
 AliTriggerConfiguration.cxx:795
 AliTriggerConfiguration.cxx:796
 AliTriggerConfiguration.cxx:797
 AliTriggerConfiguration.cxx:798
 AliTriggerConfiguration.cxx:799
 AliTriggerConfiguration.cxx:800
 AliTriggerConfiguration.cxx:801
 AliTriggerConfiguration.cxx:802
 AliTriggerConfiguration.cxx:803
 AliTriggerConfiguration.cxx:804
 AliTriggerConfiguration.cxx:805
 AliTriggerConfiguration.cxx:806
 AliTriggerConfiguration.cxx:807
 AliTriggerConfiguration.cxx:808
 AliTriggerConfiguration.cxx:809
 AliTriggerConfiguration.cxx:810
 AliTriggerConfiguration.cxx:811
 AliTriggerConfiguration.cxx:812
 AliTriggerConfiguration.cxx:813
 AliTriggerConfiguration.cxx:814
 AliTriggerConfiguration.cxx:815
 AliTriggerConfiguration.cxx:816
 AliTriggerConfiguration.cxx:817
 AliTriggerConfiguration.cxx:818
 AliTriggerConfiguration.cxx:819
 AliTriggerConfiguration.cxx:820
 AliTriggerConfiguration.cxx:821
 AliTriggerConfiguration.cxx:822
 AliTriggerConfiguration.cxx:823
 AliTriggerConfiguration.cxx:824
 AliTriggerConfiguration.cxx:825
 AliTriggerConfiguration.cxx:826
 AliTriggerConfiguration.cxx:827
 AliTriggerConfiguration.cxx:828
 AliTriggerConfiguration.cxx:829
 AliTriggerConfiguration.cxx:830
 AliTriggerConfiguration.cxx:831
 AliTriggerConfiguration.cxx:832
 AliTriggerConfiguration.cxx:833
 AliTriggerConfiguration.cxx:834
 AliTriggerConfiguration.cxx:835
 AliTriggerConfiguration.cxx:836
 AliTriggerConfiguration.cxx:837
 AliTriggerConfiguration.cxx:838
 AliTriggerConfiguration.cxx:839
 AliTriggerConfiguration.cxx:840
 AliTriggerConfiguration.cxx:841
 AliTriggerConfiguration.cxx:842
 AliTriggerConfiguration.cxx:843
 AliTriggerConfiguration.cxx:844
 AliTriggerConfiguration.cxx:845
 AliTriggerConfiguration.cxx:846
 AliTriggerConfiguration.cxx:847
 AliTriggerConfiguration.cxx:848
 AliTriggerConfiguration.cxx:849
 AliTriggerConfiguration.cxx:850
 AliTriggerConfiguration.cxx:851
 AliTriggerConfiguration.cxx:852
 AliTriggerConfiguration.cxx:853
 AliTriggerConfiguration.cxx:854
 AliTriggerConfiguration.cxx:855
 AliTriggerConfiguration.cxx:856
 AliTriggerConfiguration.cxx:857
 AliTriggerConfiguration.cxx:858
 AliTriggerConfiguration.cxx:859
 AliTriggerConfiguration.cxx:860
 AliTriggerConfiguration.cxx:861
 AliTriggerConfiguration.cxx:862
 AliTriggerConfiguration.cxx:863
 AliTriggerConfiguration.cxx:864
 AliTriggerConfiguration.cxx:865
 AliTriggerConfiguration.cxx:866
 AliTriggerConfiguration.cxx:867
 AliTriggerConfiguration.cxx:868
 AliTriggerConfiguration.cxx:869
 AliTriggerConfiguration.cxx:870
 AliTriggerConfiguration.cxx:871
 AliTriggerConfiguration.cxx:872
 AliTriggerConfiguration.cxx:873
 AliTriggerConfiguration.cxx:874
 AliTriggerConfiguration.cxx:875
 AliTriggerConfiguration.cxx:876
 AliTriggerConfiguration.cxx:877
 AliTriggerConfiguration.cxx:878
 AliTriggerConfiguration.cxx:879
 AliTriggerConfiguration.cxx:880
 AliTriggerConfiguration.cxx:881
 AliTriggerConfiguration.cxx:882
 AliTriggerConfiguration.cxx:883
 AliTriggerConfiguration.cxx:884
 AliTriggerConfiguration.cxx:885
 AliTriggerConfiguration.cxx:886
 AliTriggerConfiguration.cxx:887
 AliTriggerConfiguration.cxx:888
 AliTriggerConfiguration.cxx:889
 AliTriggerConfiguration.cxx:890
 AliTriggerConfiguration.cxx:891
 AliTriggerConfiguration.cxx:892
 AliTriggerConfiguration.cxx:893
 AliTriggerConfiguration.cxx:894
 AliTriggerConfiguration.cxx:895
 AliTriggerConfiguration.cxx:896
 AliTriggerConfiguration.cxx:897
 AliTriggerConfiguration.cxx:898
 AliTriggerConfiguration.cxx:899
 AliTriggerConfiguration.cxx:900
 AliTriggerConfiguration.cxx:901
 AliTriggerConfiguration.cxx:902
 AliTriggerConfiguration.cxx:903
 AliTriggerConfiguration.cxx:904
 AliTriggerConfiguration.cxx:905
 AliTriggerConfiguration.cxx:906
 AliTriggerConfiguration.cxx:907
 AliTriggerConfiguration.cxx:908
 AliTriggerConfiguration.cxx:909
 AliTriggerConfiguration.cxx:910
 AliTriggerConfiguration.cxx:911
 AliTriggerConfiguration.cxx:912
 AliTriggerConfiguration.cxx:913
 AliTriggerConfiguration.cxx:914
 AliTriggerConfiguration.cxx:915
 AliTriggerConfiguration.cxx:916
 AliTriggerConfiguration.cxx:917
 AliTriggerConfiguration.cxx:918
 AliTriggerConfiguration.cxx:919
 AliTriggerConfiguration.cxx:920
 AliTriggerConfiguration.cxx:921
 AliTriggerConfiguration.cxx:922
 AliTriggerConfiguration.cxx:923
 AliTriggerConfiguration.cxx:924
 AliTriggerConfiguration.cxx:925
 AliTriggerConfiguration.cxx:926
 AliTriggerConfiguration.cxx:927
 AliTriggerConfiguration.cxx:928
 AliTriggerConfiguration.cxx:929
 AliTriggerConfiguration.cxx:930
 AliTriggerConfiguration.cxx:931
 AliTriggerConfiguration.cxx:932
 AliTriggerConfiguration.cxx:933
 AliTriggerConfiguration.cxx:934
 AliTriggerConfiguration.cxx:935
 AliTriggerConfiguration.cxx:936
 AliTriggerConfiguration.cxx:937
 AliTriggerConfiguration.cxx:938
 AliTriggerConfiguration.cxx:939
 AliTriggerConfiguration.cxx:940
 AliTriggerConfiguration.cxx:941
 AliTriggerConfiguration.cxx:942
 AliTriggerConfiguration.cxx:943
 AliTriggerConfiguration.cxx:944
 AliTriggerConfiguration.cxx:945
 AliTriggerConfiguration.cxx:946
 AliTriggerConfiguration.cxx:947
 AliTriggerConfiguration.cxx:948
 AliTriggerConfiguration.cxx:949
 AliTriggerConfiguration.cxx:950
 AliTriggerConfiguration.cxx:951
 AliTriggerConfiguration.cxx:952
 AliTriggerConfiguration.cxx:953
 AliTriggerConfiguration.cxx:954
 AliTriggerConfiguration.cxx:955
 AliTriggerConfiguration.cxx:956
 AliTriggerConfiguration.cxx:957
 AliTriggerConfiguration.cxx:958
 AliTriggerConfiguration.cxx:959
 AliTriggerConfiguration.cxx:960
 AliTriggerConfiguration.cxx:961
 AliTriggerConfiguration.cxx:962
 AliTriggerConfiguration.cxx:963
 AliTriggerConfiguration.cxx:964
 AliTriggerConfiguration.cxx:965
 AliTriggerConfiguration.cxx:966
 AliTriggerConfiguration.cxx:967
 AliTriggerConfiguration.cxx:968
 AliTriggerConfiguration.cxx:969
 AliTriggerConfiguration.cxx:970
 AliTriggerConfiguration.cxx:971
 AliTriggerConfiguration.cxx:972
 AliTriggerConfiguration.cxx:973
 AliTriggerConfiguration.cxx:974
 AliTriggerConfiguration.cxx:975
 AliTriggerConfiguration.cxx:976
 AliTriggerConfiguration.cxx:977
 AliTriggerConfiguration.cxx:978
 AliTriggerConfiguration.cxx:979
 AliTriggerConfiguration.cxx:980
 AliTriggerConfiguration.cxx:981
 AliTriggerConfiguration.cxx:982
 AliTriggerConfiguration.cxx:983
 AliTriggerConfiguration.cxx:984
 AliTriggerConfiguration.cxx:985
 AliTriggerConfiguration.cxx:986
 AliTriggerConfiguration.cxx:987
 AliTriggerConfiguration.cxx:988
 AliTriggerConfiguration.cxx:989
 AliTriggerConfiguration.cxx:990
 AliTriggerConfiguration.cxx:991
 AliTriggerConfiguration.cxx:992
 AliTriggerConfiguration.cxx:993
 AliTriggerConfiguration.cxx:994
 AliTriggerConfiguration.cxx:995
 AliTriggerConfiguration.cxx:996
 AliTriggerConfiguration.cxx:997
 AliTriggerConfiguration.cxx:998
 AliTriggerConfiguration.cxx:999
 AliTriggerConfiguration.cxx:1000
 AliTriggerConfiguration.cxx:1001
 AliTriggerConfiguration.cxx:1002
 AliTriggerConfiguration.cxx:1003
 AliTriggerConfiguration.cxx:1004
 AliTriggerConfiguration.cxx:1005
 AliTriggerConfiguration.cxx:1006
 AliTriggerConfiguration.cxx:1007
 AliTriggerConfiguration.cxx:1008
 AliTriggerConfiguration.cxx:1009