Line data Source code
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 180 : void Reset() { fStatus = kFALSE; }
51 :
52 250 : ULong64_t GetValue() const { return (fStatus) ? fClassMask : 0; }
53 250 : ULong64_t GetValueNext50() const { return (fStatus) ? fClassMaskNext50 : 0; }
54 144 : Bool_t GetStatus() const { return fStatus; }
55 324 : ULong64_t GetMask() const { return fClassMask; }
56 324 : ULong64_t GetMaskNext50() const { return fClassMaskNext50; }
57 432 : Int_t GetIndex() const {return (Int_t)fIndex;}
58 0 : AliTriggerDescriptor* GetDescriptor() const { return fDescriptor; }
59 358 : AliTriggerCluster* GetCluster() const { return fCluster; }
60 0 : AliTriggerBCMask* GetBCMask() const { return fMask[0]; }
61 0 : UInt_t GetTimeGroup() const { return fTimeGroup; }
62 0 : UInt_t GetTimeWindow() const { return fTimeGroup; }
63 0 : UInt_t GetPrescaler() const { return fPrescaler; }
64 : Int_t GetDownscaleFactor(Double_t &ds) const;
65 :
66 : Bool_t SetMasks(AliTriggerConfiguration *config,TString &mask);
67 : void Trigger( const TObjArray& inputs , const TObjArray& functions);
68 : void Print( const Option_t* ) const;
69 :
70 : Bool_t CheckClass(AliTriggerConfiguration *config) const;
71 : Bool_t IsActive( const TObjArray& inputs, const TObjArray& functions) const;
72 : enum {kNMaxMasks = 13}; // CTP handles up to 12 different BC masks + NONE
73 :
74 : private:
75 : ULong64_t fClassMask; // trigger mask (1<< (index-1))
76 : ULong64_t fClassMaskNext50; // trigger mask (1<< (index-1))
77 : UChar_t fIndex; // position of class in mask
78 : AliTriggerDescriptor* fDescriptor; // pointer to the descriptor
79 : AliTriggerCluster* fCluster; // pointer to the cluster
80 : AliTriggerPFProtection* fPFProtection; // pointer to the past-future protection
81 : AliTriggerBCMask* fMask[kNMaxMasks]; // array of pinters pointer to bunch-crossing mask
82 : UInt_t fPrescaler; // Downscaling factor
83 : Bool_t fAllRare; // All or Rare trigger
84 : Bool_t fStatus; //! true = Condition has been satisfied after Trigger
85 : UInt_t fTimeGroup; // time group
86 : UInt_t fTimeWindow; // the size of time window for its group
87 :
88 430 : ClassDef( AliTriggerClass, 6 ) // Define a trigger class object
89 : };
90 :
91 : #endif
|