Improving event printout
[u/mrichter/AliRoot.git] / STEER / AliTriggerClass.h
1 #ifndef ALITRIGGERCLASS_H
2 #define ALITRIGGERCLASS_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ///////////////////////////////////////////////////////////////////////////////
8 //                                                                           //
9 // This class represents the CTP class objects                               //
10 //                                                                           //
11 // The Class consists of Name, descriptor, mask, protection, index in the    //
12 // trigger mask                                                              //
13 //                                                                           //
14 //                                                                           //
15 ///////////////////////////////////////////////////////////////////////////////
16
17 #include <TNamed.h>
18
19 class AliTriggerConfiguration;
20 class AliTriggerDescriptor;
21 class AliTriggerCluster;
22 class AliTriggerPFProtection;
23 class AliTriggerBCMask;
24
25 class AliTriggerClass : public TNamed {
26
27 public:
28                           AliTriggerClass();
29                           AliTriggerClass( TString & name, UChar_t index,
30                                            AliTriggerDescriptor *desc, AliTriggerCluster *clus,
31                                            AliTriggerPFProtection *pfp, AliTriggerBCMask *mask,
32                                            UInt_t prescaler, Bool_t allrare);
33                           AliTriggerClass( AliTriggerConfiguration *config,
34                                            TString & name, UChar_t index,
35                                            TString &desc, TString &clus,
36                                            TString &pfp, TString &mask,
37                                            UInt_t prescaler, Bool_t allrare);
38
39                           AliTriggerClass( const AliTriggerClass& trclass );
40                virtual   ~AliTriggerClass();
41   AliTriggerClass&   operator=(const AliTriggerClass& trclass);
42
43                   void    Reset() { fStatus = kFALSE; }
44
45              ULong64_t    GetValue() const { return (fStatus) ? fClassMask : 0; }
46                 Bool_t    GetStatus() const { return fStatus; }
47                ULong64_t  GetMask() const { return fClassMask; }
48     AliTriggerDescriptor* GetDescriptor() const { return fDescriptor; }
49        AliTriggerCluster* GetCluster() const { return fCluster; }
50
51                     void  Trigger( const TObjArray& inputs , const TObjArray& functions);
52                     void  Print( const Option_t* ) const;
53
54                   Bool_t  CheckClass(AliTriggerConfiguration *config) const;
55                   Bool_t  IsActive( const TObjArray& inputs, const TObjArray& functions) const;
56 private:
57                ULong64_t  fClassMask;    // trigger mask (1<< (index-1))
58                  UChar_t  fIndex;        // position of class in mask
59     AliTriggerDescriptor* fDescriptor;   // pointer to the descriptor
60        AliTriggerCluster* fCluster;      // pointer to the cluster
61   AliTriggerPFProtection* fPFProtection; // pointer to the past-future protection
62         AliTriggerBCMask* fMask;         // pointer to bunch-crossing mask
63                   UInt_t  fPrescaler;    // Downscaling factor
64                   Bool_t  fAllRare;      // All or Rare trigger
65                   Bool_t  fStatus;       //! true = Condition has been satisfied after Trigger
66
67   ClassDef( AliTriggerClass, 2 )  // Define a trigger class object
68 };
69
70 #endif