]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/ESD/AliTriggerClass.h
doxy: do not show whitespace diffs on bulk edit
[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; }
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 73private:
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