]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/ESD/AliTriggerClass.h
Compatibility with ROOT trunk
[u/mrichter/AliRoot.git] / STEER / ESD / AliTriggerClass.h
CommitLineData
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
20class AliTriggerConfiguration;
21class AliTriggerDescriptor;
22class AliTriggerCluster;
23class AliTriggerPFProtection;
24class AliTriggerBCMask;
25
26class AliTriggerClass : public TNamed {
27
28public:
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; }
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; }
e9bf49e8 57 AliTriggerBCMask* GetBCMask() const { return fMask[0]; }
342b8153 58 UInt_t GetTimeGroup() const { return fTimeGroup; }
59 UInt_t GetTimeWindow() const { return fTimeGroup; }
51f6d619 60
e9bf49e8 61 Bool_t SetMasks(AliTriggerConfiguration *config,TString &mask);
51f6d619 62 void Trigger( const TObjArray& inputs , const TObjArray& functions);
63 void Print( const Option_t* ) const;
64
65 Bool_t CheckClass(AliTriggerConfiguration *config) const;
66 Bool_t IsActive( const TObjArray& inputs, const TObjArray& functions) const;
e9bf49e8 67 enum {kNMaxMasks = 13}; // CTP handles up to 12 different BC masks + NONE
68
51f6d619 69private:
38482a3b 70 ULong64_t fClassMask; // trigger mask (1<< (index-1))
71 UChar_t fIndex; // position of class in mask
51f6d619 72 AliTriggerDescriptor* fDescriptor; // pointer to the descriptor
73 AliTriggerCluster* fCluster; // pointer to the cluster
74 AliTriggerPFProtection* fPFProtection; // pointer to the past-future protection
e9bf49e8 75 AliTriggerBCMask* fMask[kNMaxMasks]; // array of pinters pointer to bunch-crossing mask
51f6d619 76 UInt_t fPrescaler; // Downscaling factor
77 Bool_t fAllRare; // All or Rare trigger
78 Bool_t fStatus; //! true = Condition has been satisfied after Trigger
342b8153 79 UInt_t fTimeGroup; // time group
80 UInt_t fTimeWindow; // the size of time window for its group
51f6d619 81
e9bf49e8 82 ClassDef( AliTriggerClass, 5 ) // Define a trigger class object
51f6d619 83};
84
85#endif