1 #ifndef ALITRIGGERCLASS_H
2 #define ALITRIGGERCLASS_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 ///////////////////////////////////////////////////////////////////////////////
9 // This class represents the CTP class objects //
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 //
16 ///////////////////////////////////////////////////////////////////////////////
20 class AliTriggerConfiguration;
21 class AliTriggerDescriptor;
22 class AliTriggerCluster;
23 class AliTriggerPFProtection;
24 class AliTriggerBCMask;
26 class AliTriggerClass : public TNamed {
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,
43 UInt_t prescaler, Bool_t allrare,
44 UInt_t timegroup, UInt_t timewindow);
46 AliTriggerClass( const AliTriggerClass& trclass );
47 virtual ~AliTriggerClass();
48 AliTriggerClass& operator=(const AliTriggerClass& trclass);
50 void Reset() { fStatus = kFALSE; }
52 ULong64_t GetValue() const { return (fStatus) ? fClassMask : 0; }
53 Bool_t GetStatus() const { return fStatus; }
54 ULong64_t GetMask() const { return fClassMask; }
55 AliTriggerDescriptor* GetDescriptor() const { return fDescriptor; }
56 AliTriggerCluster* GetCluster() const { return fCluster; }
57 AliTriggerBCMask* GetBCMask() const { return fMask[0]; }
58 UInt_t GetTimeGroup() const { return fTimeGroup; }
59 UInt_t GetTimeWindow() const { return fTimeGroup; }
60 UInt_t GetPrescaler() const { return fPrescaler; }
61 Int_t GetDownscaleFactor(Double_t &ds) const;
63 Bool_t SetMasks(AliTriggerConfiguration *config,TString &mask);
64 void Trigger( const TObjArray& inputs , const TObjArray& functions);
65 void Print( const Option_t* ) const;
67 Bool_t CheckClass(AliTriggerConfiguration *config) const;
68 Bool_t IsActive( const TObjArray& inputs, const TObjArray& functions) const;
69 enum {kNMaxMasks = 13}; // CTP handles up to 12 different BC masks + NONE
72 ULong64_t fClassMask; // trigger mask (1<< (index-1))
73 UChar_t fIndex; // position of class in mask
74 AliTriggerDescriptor* fDescriptor; // pointer to the descriptor
75 AliTriggerCluster* fCluster; // pointer to the cluster
76 AliTriggerPFProtection* fPFProtection; // pointer to the past-future protection
77 AliTriggerBCMask* fMask[kNMaxMasks]; // array of pinters pointer to bunch-crossing mask
78 UInt_t fPrescaler; // Downscaling factor
79 Bool_t fAllRare; // All or Rare trigger
80 Bool_t fStatus; //! true = Condition has been satisfied after Trigger
81 UInt_t fTimeGroup; // time group
82 UInt_t fTimeWindow; // the size of time window for its group
84 ClassDef( AliTriggerClass, 5 ) // Define a trigger class object