]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ESD/AliTriggerClass.h
remove the setting of the maximum number of super modules from the class, recover...
[u/mrichter/AliRoot.git] / STEER / ESD / 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, index in the trigger mask counted from 1,     //
12 // descriptor, cluster,past-future, mask, downscale, allrare,                //
13 // time group, time window                                                   //
14 //                                                                           //
15 //                                                                           //
16 ///////////////////////////////////////////////////////////////////////////////
17
18 #include <TNamed.h>
19
20 class AliTriggerConfiguration;
21 class AliTriggerDescriptor;
22 class AliTriggerCluster;
23 class AliTriggerPFProtection;
24 class AliTriggerBCMask;
25
26 class AliTriggerClass : public TNamed {
27
28 public:
29                           AliTriggerClass();
30                           AliTriggerClass( TString & name, UChar_t index,
31                                            AliTriggerDescriptor *desc, AliTriggerCluster *clus,
32                                            AliTriggerPFProtection *pfp, AliTriggerBCMask *mask,
33                                            UInt_t prescaler, Bool_t allrare);
34                           AliTriggerClass( AliTriggerConfiguration *config,
35                                            TString & name, UChar_t index,
36                                            TString &desc, TString &clus,
37                                            TString &pfp, TString &mask,
38                                            UInt_t prescaler, Bool_t allrare);
39                           AliTriggerClass( AliTriggerConfiguration *config,
40                                            TString & name, UChar_t index,
41                                            TString &desc, TString &clus,
42                                            TString &pfp,
43                                            UInt_t prescaler, Bool_t allrare,
44                                            UInt_t timegroup, UInt_t timewindow);
45
46                           AliTriggerClass( const AliTriggerClass& trclass );
47                virtual   ~AliTriggerClass();
48   AliTriggerClass&   operator=(const AliTriggerClass& trclass);
49
50                   void    Reset() { fStatus = kFALSE; }
51
52              ULong64_t    GetValue() const { return (fStatus) ? fClassMask : 0; }
53              ULong64_t    GetValueNext50() const { return (fStatus) ? fClassMaskNext50 : 0; }
54                 Bool_t    GetStatus() const { return fStatus; }
55                ULong64_t  GetMask() const { return fClassMask; }
56                ULong64_t  GetMaskNext50() const { return fClassMaskNext50; }
57     AliTriggerDescriptor* GetDescriptor() const { return fDescriptor; }
58        AliTriggerCluster* GetCluster() const { return fCluster; }
59         AliTriggerBCMask* GetBCMask() const { return fMask[0]; }
60                    UInt_t GetTimeGroup() const { return fTimeGroup; }
61                    UInt_t GetTimeWindow() const { return fTimeGroup; }
62                    UInt_t GetPrescaler() const { return fPrescaler; }
63                    Int_t GetDownscaleFactor(Double_t &ds) const;
64
65                    Bool_t SetMasks(AliTriggerConfiguration *config,TString &mask);
66                     void  Trigger( const TObjArray& inputs , const TObjArray& functions);
67                     void  Print( const Option_t* ) const;
68
69                   Bool_t  CheckClass(AliTriggerConfiguration *config) const;
70                   Bool_t  IsActive( const TObjArray& inputs, const TObjArray& functions) const;
71                   enum {kNMaxMasks = 13};  // CTP handles up to 12 different BC masks + NONE
72
73 private:
74                ULong64_t  fClassMask;    // trigger mask (1<< (index-1))
75                ULong64_t  fClassMaskNext50; // trigger mask (1<< (index-1))
76                  UChar_t  fIndex;        // position of class in mask
77     AliTriggerDescriptor* fDescriptor;   // pointer to the descriptor
78        AliTriggerCluster* fCluster;      // pointer to the cluster
79   AliTriggerPFProtection* fPFProtection; // pointer to the past-future protection
80         AliTriggerBCMask* fMask[kNMaxMasks];         // array of pinters pointer to bunch-crossing mask
81                   UInt_t  fPrescaler;    // Downscaling factor
82                   Bool_t  fAllRare;      // All or Rare trigger
83                   Bool_t  fStatus;       //! true = Condition has been satisfied after Trigger
84                   UInt_t  fTimeGroup;    // time group
85                   UInt_t  fTimeWindow;   // the size of time window for its group
86
87   ClassDef( AliTriggerClass, 6 )  // Define a trigger class object
88 };
89
90 #endif