1 #ifndef ALICENTRALTRIGGER_H
2 #define ALICENTRALTRIGGER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
9 ///////////////////////////////////////////////////////////////////////////////
11 // This class for running the Central Trigger Processor //
14 // Load Configuration //
15 // Make a list the trigger detectors involved ( from the configuration) //
16 // For the each event //
17 // Run the Trigger for the each detector //
19 // Check the trigger classes //
20 // Create the class mask //
23 ///////////////////////////////////////////////////////////////////////////////
26 #include <TObjArray.h>
30 class AliTriggerConfiguration;
32 class AliCentralTrigger : public TObject {
36 AliCentralTrigger( TString & config );
37 virtual ~AliCentralTrigger();
39 Bool_t LoadConfiguration( TString & config );
40 Bool_t RunTrigger( AliRunLoader * runloader , const char* detectors);
41 ULong64_t TriggerClasses();
44 void DeleteConfiguration();
45 void MakeBranch( TString name, TTree * tree );
47 TString GetDetectors();
48 ULong64_t GetClassMask() const { return fClassMask; }
49 ULong64_t GetClassMaskNext50() const { return fClassMaskNext50; }
50 UInt_t GetClusterMask() const { return fClusterMask; }
51 UInt_t GetL0TriggerInputs() const { return fL0TriggerInputs; }
52 UInt_t GetL1TriggerInputs() const { return fL1TriggerInputs; }
53 UShort_t GetL2TriggerInputs() const { return fL2TriggerInputs; }
54 AliTriggerConfiguration* GetConfiguration() { return fConfiguration; }
55 TObjArray* GetFiredClasses() const;
56 void Print( const Option_t* opt ="" ) const;
57 Bool_t CheckTriggeredDetectors() const;
59 // Setters to be used in case raw data when the trigger information
60 // is read from the event header
61 void SetClassMask(ULong64_t mask) { fClassMask = mask; }
62 void SetClassMaskNext50(ULong64_t mask) { fClassMaskNext50 = mask; }
63 void SetClusterMask(UInt_t mask) { fClusterMask = mask; }
64 void SetL0TriggerInputs(UInt_t mask) { fL0TriggerInputs = mask; }
65 void SetL1TriggerInputs(UInt_t mask) { fL1TriggerInputs = mask; }
66 void SetL2TriggerInputs(UShort_t mask) { fL2TriggerInputs = mask; }
68 ULong64_t fClassMask; // UID ( bitwise OR of conditions mask )
69 ULong64_t fClassMaskNext50; // UID ( bitwise OR of conditions mask ) high 50 bits for run2
70 UInt_t fClusterMask; // UID ( bitwise OR of clusters mask - detector pattern)
71 UInt_t fL0TriggerInputs; // L0 trigger inputs (24 bits)
72 UInt_t fL1TriggerInputs; // L1 trigger inputs (24 bits)
73 UShort_t fL2TriggerInputs; // L2 trigger inputs (12 bits)
75 AliTriggerConfiguration* fConfiguration; // Trigger Configuration used
78 void SetOwner(Bool_t x=kTRUE){SetBit(22,x);} // Bit 22 indicates that the object owns fConfiguration
79 Bool_t IsOwner() const {return TestBit(22);} // Test bit 22 to check that the object owns fConfiguration
80 Bool_t IsSelected( TString detName, TString& detectors ) const;
81 AliCentralTrigger( const AliCentralTrigger& ctp ); // Implemented
82 AliCentralTrigger& operator=( const AliCentralTrigger& ctp ); // Not implemented
84 ClassDef( AliCentralTrigger, 6 ) // class for running the Central Trigger Processor