]>
Commit | Line | Data |
---|---|---|
51f6d619 | 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 | // // | |
342b8153 | 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 // | |
51f6d619 | 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); | |
342b8153 | 39 | AliTriggerClass( AliTriggerConfiguration *config, |
40 | TString & name, UChar_t index, | |
41 | TString &desc, TString &clus, | |
e9bf49e8 | 42 | TString &pfp, |
342b8153 | 43 | UInt_t prescaler, Bool_t allrare, |
44 | UInt_t timegroup, UInt_t timewindow); | |
51f6d619 | 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; } | |
56e94851 | 53 | ULong64_t GetValueNext50() const { return (fStatus) ? fClassMaskNext50 : 0; } |
51f6d619 | 54 | Bool_t GetStatus() const { return fStatus; } |
55 | ULong64_t GetMask() const { return fClassMask; } | |
56e94851 | 56 | ULong64_t GetMaskNext50() const { return fClassMaskNext50; } |
51f6d619 | 57 | AliTriggerDescriptor* GetDescriptor() const { return fDescriptor; } |
58 | AliTriggerCluster* GetCluster() const { return fCluster; } | |
e9bf49e8 | 59 | AliTriggerBCMask* GetBCMask() const { return fMask[0]; } |
342b8153 | 60 | UInt_t GetTimeGroup() const { return fTimeGroup; } |
61 | UInt_t GetTimeWindow() const { return fTimeGroup; } | |
9889eb25 | 62 | UInt_t GetPrescaler() const { return fPrescaler; } |
fd55e71c | 63 | Int_t GetDownscaleFactor(Double_t &ds) const; |
51f6d619 | 64 | |
e9bf49e8 | 65 | Bool_t SetMasks(AliTriggerConfiguration *config,TString &mask); |
51f6d619 | 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; | |
e9bf49e8 | 71 | enum {kNMaxMasks = 13}; // CTP handles up to 12 different BC masks + NONE |
72 | ||
51f6d619 | 73 | private: |
38482a3b | 74 | ULong64_t fClassMask; // trigger mask (1<< (index-1)) |
56e94851 | 75 | ULong64_t fClassMaskNext50; // trigger mask (1<< (index-1)) |
38482a3b | 76 | UChar_t fIndex; // position of class in mask |
51f6d619 | 77 | AliTriggerDescriptor* fDescriptor; // pointer to the descriptor |
78 | AliTriggerCluster* fCluster; // pointer to the cluster | |
79 | AliTriggerPFProtection* fPFProtection; // pointer to the past-future protection | |
e9bf49e8 | 80 | AliTriggerBCMask* fMask[kNMaxMasks]; // array of pinters pointer to bunch-crossing mask |
51f6d619 | 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 | |
342b8153 | 84 | UInt_t fTimeGroup; // time group |
85 | UInt_t fTimeWindow; // the size of time window for its group | |
51f6d619 | 86 | |
56e94851 | 87 | ClassDef( AliTriggerClass, 6 ) // Define a trigger class object |
51f6d619 | 88 | }; |
89 | ||
90 | #endif |