Line data Source code
1 : #ifndef ALIAODCALOTRIGGER_H
2 : #define ALIAODCALOTRIGGER_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 :
10 :
11 : Author: R. GUERNANE LPSC Grenoble CNRS/IN2P3
12 : */
13 :
14 : #include "AliVCaloTrigger.h"
15 :
16 : class TArrayI;
17 :
18 : class AliAODCaloTrigger : public AliVCaloTrigger
19 : {
20 : public:
21 : AliAODCaloTrigger();
22 : AliAODCaloTrigger(const char* name, const char* title);
23 : AliAODCaloTrigger(const AliAODCaloTrigger& ctrig);
24 : virtual ~AliAODCaloTrigger();
25 :
26 : AliAODCaloTrigger& operator=(const AliAODCaloTrigger& ctrig);
27 :
28 0 : Bool_t IsEmpty() {return (fNEntries == 0);}
29 :
30 0 : virtual void Reset() {fCurrent = -1;}
31 :
32 : void Allocate(Int_t size);
33 : void DeAllocate( );
34 :
35 : Bool_t Add(Int_t col, Int_t row, Float_t amp, Float_t time, Int_t trgtimes[], Int_t ntrgtimes, Int_t trgts, Int_t trgbits);
36 : Bool_t Add(Int_t col, Int_t row, Float_t amp, Float_t time, Int_t trgtimes[], Int_t ntrgtimes, Int_t trgts, Int_t subra, Int_t trgbits);
37 :
38 64 : void SetL1Threshold(Int_t i, Int_t thr) {fL1Threshold[i] = thr;}
39 0 : void SetL1Threshold(Int_t i, Int_t j, Int_t thr) {if (i) fL1DCALThreshold[j] = thr; else fL1Threshold[j] = thr;}
40 :
41 64 : void SetL1V0(const Int_t* v) {for (int i = 0; i < 2; i++) fL1V0[i] = v[i];}
42 : void SetL1V0(Int_t i, const Int_t* v) {
43 0 : if (i) {for (int j = 0; j < 2; i++) fL1DCALV0[j] = v[j];} else {for (int j = 0; j < 2; j++) fL1V0[j] = v[j];}
44 0 : }
45 :
46 16 : void SetL1FrameMask(Int_t m) {fL1FrameMask = m;}
47 0 : void SetL1FrameMask(Int_t i, Int_t m) {if (i) fL1DCALFrameMask = m; else fL1FrameMask = m;}
48 :
49 0 : void SetTriggerBitWord(Int_t w) {fTriggerBitWord = w;}
50 0 : void SetMedian(Int_t i, Int_t m) {fMedian[i] = m;}
51 :
52 : void GetPosition( Int_t& col, Int_t& row ) const;
53 : void GetAmplitude( Float_t& amp ) const;
54 : void GetTime( Float_t& time ) const;
55 :
56 : void GetTriggerBits( Int_t& bits ) const;
57 : void GetNL0Times( Int_t& ntimes ) const;
58 : void GetL0Times( Int_t times[] ) const;
59 0 : Int_t GetEntries( ) const {return fNEntries;}
60 :
61 : void GetL1TimeSum( Int_t& timesum ) const;
62 : Int_t GetL1TimeSum( ) const;
63 :
64 : void GetL1SubRegion( Int_t& subreg ) const;
65 : Int_t GetL1SubRegion( ) const;
66 :
67 0 : Int_t GetL1Threshold( Int_t i ) const {return fL1Threshold[i];}
68 0 : Int_t GetL1Threshold( Int_t i, Int_t j ) const {return ((i)?fL1DCALThreshold[j]:fL1Threshold[j]);}
69 :
70 0 : Int_t GetL1V0( Int_t i ) const {return fL1V0[i];}
71 0 : Int_t GetL1V0( Int_t i, Int_t j ) const {return ((i)?fL1DCALV0[j]:fL1V0[j]);}
72 :
73 0 : Int_t GetL1FrameMask( ) const {return fL1FrameMask;}
74 0 : Int_t GetL1FrameMask( Int_t i ) const {return ((i)?fL1DCALFrameMask:fL1FrameMask);}
75 :
76 0 : Int_t GetMedian( Int_t i ) const {return fMedian[i];}
77 :
78 0 : Int_t GetTriggerBitWord( ) const {return fTriggerBitWord;}
79 0 : void GetTriggerBitWord( Int_t& bw ) const {bw = fTriggerBitWord;}
80 :
81 : virtual Bool_t Next();
82 :
83 : virtual void Copy(TObject& obj) const;
84 :
85 : virtual void Print(const Option_t* opt = "") const;
86 :
87 : private:
88 :
89 : Int_t fNEntries;
90 : Int_t fCurrent;
91 :
92 : Int_t* fColumn; // [fNEntries]
93 : Int_t* fRow; // [fNEntries]
94 : Float_t* fAmplitude; // [fNEntries]
95 : Float_t* fTime; // [fNEntries]
96 : Int_t* fNL0Times; // [fNEntries]
97 : TArrayI* fL0Times; //
98 : Int_t* fL1TimeSum; // [fNEntries]
99 : Int_t* fTriggerBits; // [fNEntries]
100 :
101 : Int_t fL1Threshold[4]; // L1 thresholds from raw data
102 : Int_t fL1V0[2]; // L1 threshold components
103 : Int_t fL1FrameMask; // Validation flag for L1 data
104 :
105 : Int_t fL1DCALThreshold[4]; // L1 thresholds from raw data
106 : Int_t* fL1SubRegion; // [fNEntries]
107 : Int_t fL1DCALFrameMask; // Validation flag for L1 data
108 : Int_t fMedian[2]; // Background median
109 : Int_t fTriggerBitWord; // Trigger bit word
110 : Int_t fL1DCALV0[2]; // L1 threshold components
111 :
112 258 : ClassDef(AliAODCaloTrigger, 5)
113 : };
114 : #endif
115 :
|