#ifndef ALITRIGGERCONFIGURATION_H
#define ALITRIGGERCONFIGURATION_H
#include <TNamed.h>
#include <TObjArray.h>
class TString;
class AliTriggerCluster;
class AliTriggerDescriptor;
class AliTriggerInput;
class AliTriggerInteraction;
class AliTriggerPFProtection;
class AliTriggerBCMask;
class AliTriggerClass;
class AliTriggerConfiguration : public TNamed {
public:
AliTriggerConfiguration();
AliTriggerConfiguration( TString & name, TString & description );
virtual ~AliTriggerConfiguration();
AliTriggerInput* AddInput(TString &name, TString &det, UChar_t level, UInt_t signature, UChar_t number);
Bool_t AddInput(AliTriggerInput *input);
AliTriggerInteraction* AddInteraction(TString &name, TString &logic);
Bool_t AddInteraction(AliTriggerInteraction *interact);
AliTriggerInteraction* AddFunction(TString &name, TString &logic);
Bool_t AddFunction(AliTriggerInteraction *func);
Bool_t AddPFProtection( AliTriggerPFProtection* pf );
AliTriggerBCMask* AddMask( TString &name, TString &mask );
Bool_t AddMask( AliTriggerBCMask* mask );
AliTriggerCluster* AddCluster( TString &name, UChar_t index, TString &detectors );
Bool_t AddCluster( AliTriggerCluster* cluster );
AliTriggerDescriptor* AddDescriptor( TString & name, TString & cond);
Bool_t AddDescriptor( AliTriggerDescriptor* desc );
AliTriggerClass* AddClass( TString &name, UChar_t index,
AliTriggerDescriptor *desc, AliTriggerCluster *clus,
AliTriggerPFProtection *pfp, AliTriggerBCMask *mask,
UInt_t prescaler, Bool_t allrare);
AliTriggerClass* AddClass( TString &name, UChar_t index,
TString &desc, TString &clus,
TString &pfp, TString &mask,
UInt_t prescaler, Bool_t allrare);
Bool_t AddClass( AliTriggerClass *trclass);
void Reset();
TString GetActiveDetectors() const;
TString GetTriggeringDetectors() const;
TString GetTriggeringModules() const;
const TObjArray& GetInputs() const { return fInputs; }
const TObjArray& GetInteractions() const { return fInteractions; }
const TObjArray& GetFunctions() const { return fFunctions; }
const TObjArray& GetPFProtections() const { return fPFProtections; }
const TObjArray& GetMasks() const { return fMasks; }
const TObjArray& GetClusters() const { return fClusters; }
const TObjArray& GetDescriptors() const { return fDescriptors; }
const TObjArray& GetClasses() const { return fClasses; }
Int_t GetVersion() const { return fVersion; }
Int_t GetClassIndexFromName(const char* className) const;
const char* GetClassNameFromIndex(Int_t classIndex) const;
AliTriggerClass* GetTriggerClass(Int_t classIndex) const;
void Print( const Option_t* opt ="" ) const;
void WriteConfiguration( const char* filename="" );
static TObjArray* GetAvailableConfigurations( const char* filename="" );
static AliTriggerConfiguration* LoadConfiguration(TString & des);
static AliTriggerConfiguration* LoadConfigurationFromString(const char* configuration);
Bool_t IsSelected( TString detName, TString & detectors ) const;
enum {kNMaxInputs = 60};
enum {kNMaxInteractions = 2};
enum {kNMaxFunctions = 4};
enum {kNMaxClasses = 100};
enum {kNMaxClusters = 8};
enum {kNMaxPFProtections = 4};
enum {kNMaxMasks = 13};
private:
Bool_t ProcessConfigurationLine(const char* line, Int_t& level);
TObjArray fInputs;
TObjArray fInteractions;
TObjArray fFunctions;
TObjArray fPFProtections;
TObjArray fMasks;
TObjArray fDescriptors;
TObjArray fClusters;
TObjArray fClasses;
Int_t fVersion;
static const TString fgkConfigurationFileName;
AliTriggerConfiguration& operator=(const AliTriggerConfiguration& des);
AliTriggerConfiguration( const AliTriggerConfiguration& des );
ClassDef( AliTriggerConfiguration, 3 )
};
#endif
AliTriggerConfiguration.h:1 AliTriggerConfiguration.h:2 AliTriggerConfiguration.h:3 AliTriggerConfiguration.h:4 AliTriggerConfiguration.h:5 AliTriggerConfiguration.h:6 AliTriggerConfiguration.h:7 AliTriggerConfiguration.h:8 AliTriggerConfiguration.h:9 AliTriggerConfiguration.h:10 AliTriggerConfiguration.h:11 AliTriggerConfiguration.h:12 AliTriggerConfiguration.h:13 AliTriggerConfiguration.h:14 AliTriggerConfiguration.h:15 AliTriggerConfiguration.h:16 AliTriggerConfiguration.h:17 AliTriggerConfiguration.h:18 AliTriggerConfiguration.h:19 AliTriggerConfiguration.h:20 AliTriggerConfiguration.h:21 AliTriggerConfiguration.h:22 AliTriggerConfiguration.h:23 AliTriggerConfiguration.h:24 AliTriggerConfiguration.h:25 AliTriggerConfiguration.h:26 AliTriggerConfiguration.h:27 AliTriggerConfiguration.h:28 AliTriggerConfiguration.h:29 AliTriggerConfiguration.h:30 AliTriggerConfiguration.h:31 AliTriggerConfiguration.h:32 AliTriggerConfiguration.h:33 AliTriggerConfiguration.h:34 AliTriggerConfiguration.h:35 AliTriggerConfiguration.h:36 AliTriggerConfiguration.h:37 AliTriggerConfiguration.h:38 AliTriggerConfiguration.h:39 AliTriggerConfiguration.h:40 AliTriggerConfiguration.h:41 AliTriggerConfiguration.h:42 AliTriggerConfiguration.h:43 AliTriggerConfiguration.h:44 AliTriggerConfiguration.h:45 AliTriggerConfiguration.h:46 AliTriggerConfiguration.h:47 AliTriggerConfiguration.h:48 AliTriggerConfiguration.h:49 AliTriggerConfiguration.h:50 AliTriggerConfiguration.h:51 AliTriggerConfiguration.h:52 AliTriggerConfiguration.h:53 AliTriggerConfiguration.h:54 AliTriggerConfiguration.h:55 AliTriggerConfiguration.h:56 AliTriggerConfiguration.h:57 AliTriggerConfiguration.h:58 AliTriggerConfiguration.h:59 AliTriggerConfiguration.h:60 AliTriggerConfiguration.h:61 AliTriggerConfiguration.h:62 AliTriggerConfiguration.h:63 AliTriggerConfiguration.h:64 AliTriggerConfiguration.h:65 AliTriggerConfiguration.h:66 AliTriggerConfiguration.h:67 AliTriggerConfiguration.h:68 AliTriggerConfiguration.h:69 AliTriggerConfiguration.h:70 AliTriggerConfiguration.h:71 AliTriggerConfiguration.h:72 AliTriggerConfiguration.h:73 AliTriggerConfiguration.h:74 AliTriggerConfiguration.h:75 AliTriggerConfiguration.h:76 AliTriggerConfiguration.h:77 AliTriggerConfiguration.h:78 AliTriggerConfiguration.h:79 AliTriggerConfiguration.h:80 AliTriggerConfiguration.h:81 AliTriggerConfiguration.h:82 AliTriggerConfiguration.h:83 AliTriggerConfiguration.h:84 AliTriggerConfiguration.h:85 AliTriggerConfiguration.h:86 AliTriggerConfiguration.h:87 AliTriggerConfiguration.h:88 AliTriggerConfiguration.h:89 AliTriggerConfiguration.h:90 AliTriggerConfiguration.h:91 AliTriggerConfiguration.h:92 AliTriggerConfiguration.h:93 AliTriggerConfiguration.h:94 AliTriggerConfiguration.h:95 AliTriggerConfiguration.h:96 AliTriggerConfiguration.h:97 AliTriggerConfiguration.h:98 AliTriggerConfiguration.h:99 AliTriggerConfiguration.h:100 AliTriggerConfiguration.h:101 AliTriggerConfiguration.h:102 AliTriggerConfiguration.h:103 AliTriggerConfiguration.h:104 AliTriggerConfiguration.h:105 AliTriggerConfiguration.h:106 AliTriggerConfiguration.h:107 AliTriggerConfiguration.h:108 AliTriggerConfiguration.h:109 AliTriggerConfiguration.h:110 AliTriggerConfiguration.h:111 AliTriggerConfiguration.h:112 AliTriggerConfiguration.h:113 AliTriggerConfiguration.h:114 AliTriggerConfiguration.h:115 AliTriggerConfiguration.h:116 AliTriggerConfiguration.h:117 AliTriggerConfiguration.h:118 AliTriggerConfiguration.h:119 AliTriggerConfiguration.h:120 AliTriggerConfiguration.h:121 AliTriggerConfiguration.h:122 AliTriggerConfiguration.h:123 AliTriggerConfiguration.h:124 AliTriggerConfiguration.h:125 AliTriggerConfiguration.h:126 AliTriggerConfiguration.h:127 AliTriggerConfiguration.h:128 AliTriggerConfiguration.h:129 AliTriggerConfiguration.h:130 AliTriggerConfiguration.h:131 AliTriggerConfiguration.h:132 AliTriggerConfiguration.h:133 AliTriggerConfiguration.h:134 AliTriggerConfiguration.h:135 AliTriggerConfiguration.h:136