Line data Source code
1 : #ifndef ALIESDVZEROFRIEND_H
2 : #define ALIESDVZEROFRIEND_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : ///////////////////////////////////////////////////////////////////////////////
7 : ///
8 : /// This is a class for containing all the VZERO DDL raw data
9 : /// It is written to the ESD-friend file
10 : ///
11 : ///////////////////////////////////////////////////////////////////////////////
12 :
13 : #include "AliVVZEROfriend.h"
14 :
15 : class AliESDVZEROfriend: public AliVVZEROfriend {
16 : public :
17 : AliESDVZEROfriend();
18 : virtual ~AliESDVZEROfriend();
19 :
20 : AliESDVZEROfriend(const AliESDVZEROfriend& vzerofriend);
21 : AliESDVZEROfriend& operator = (const AliESDVZEROfriend& vzerofriend);
22 :
23 : void Reset();
24 :
25 : // Getters of various scalers and Minimum Bias flags :
26 :
27 : ULong64_t GetBBScalers(Int_t channel) const
28 0 : { return fBBScalers[channel]; }
29 : ULong64_t GetBGScalers(Int_t channel) const
30 0 : { return fBGScalers[channel]; }
31 : UInt_t GetTriggerScalers(Int_t num_scaler) const
32 0 : { return fScalers[num_scaler]; }
33 : UInt_t GetBunchNumbersMB(Int_t num_bunch) const
34 0 : { return fBunchNumbers[num_bunch]; }
35 : UShort_t GetChargeMB(Int_t channel, Int_t num_bunch) const
36 0 : { return fChargeMB[channel][num_bunch]; }
37 : Bool_t GetIntMBFlag(Int_t channel, Int_t num_bunch) const
38 0 : { return fIsIntMB[channel][num_bunch]; }
39 : Bool_t GetBBMBFlag(Int_t channel, Int_t num_bunch) const
40 0 : { return fIsBBMB[channel][num_bunch]; }
41 : Bool_t GetBGMBFlag(Int_t channel, Int_t num_bunch) const
42 0 : { return fIsBGMB[channel][num_bunch]; }
43 :
44 : // Getters of ADC signals, ADC pedestals, time information and corresponding flags :
45 :
46 : Float_t GetADC(Int_t channel) const
47 0 : { return fADC[channel][kNEvOfInt/2]; }
48 : Float_t GetPedestal(Int_t channel, Int_t event) const
49 0 : { return fADC[channel][event]; }
50 : Bool_t GetIntegratorFlag(Int_t channel, Int_t event) const
51 0 : { return fIsInt[channel][event]; }
52 : Bool_t GetBBFlag(Int_t channel, Int_t event) const
53 21504 : { return fIsBB[channel][event]; }
54 : Bool_t GetBGFlag(Int_t channel, Int_t event) const
55 21504 : { return fIsBG[channel][event]; }
56 : Float_t GetTime(Int_t channel) const
57 0 : { return fTime[channel]; }
58 : Float_t GetWidth(Int_t channel) const
59 0 : { return fWidth[channel]; }
60 :
61 : // Setters
62 : void SetBBScalers(Int_t channel, ULong64_t scalers)
63 512 : { fBBScalers[channel] = scalers; }
64 : void SetBGScalers(Int_t channel, ULong64_t scalers)
65 512 : { fBGScalers[channel] = scalers; }
66 : void SetTriggerScalers(Int_t num_scaler, UInt_t scaler)
67 128 : { fScalers[num_scaler] = scaler; }
68 : void SetBunchNumbersMB(Int_t num_bunch, UInt_t bunch)
69 80 : { fBunchNumbers[num_bunch] = bunch; }
70 : void SetChargeMB(Int_t channel,Int_t num_bunch, UShort_t charge)
71 5120 : { fChargeMB[channel][num_bunch] = charge; }
72 : void SetIntMBFlag(Int_t channel,Int_t num_bunch, Bool_t flag)
73 2560 : { fIsIntMB[channel][num_bunch] = flag; }
74 : void SetBBMBFlag(Int_t channel,Int_t num_bunch, Bool_t flag)
75 2560 : { fIsBBMB[channel][num_bunch] = flag; }
76 : void SetBGMBFlag(Int_t channel,Int_t num_bunch, Bool_t flag)
77 2560 : { fIsBGMB[channel][num_bunch] = flag; }
78 :
79 : void SetPedestal(Int_t channel, Int_t event, Float_t adc)
80 21504 : { fADC[channel][event] = adc; }
81 : void SetIntegratorFlag(Int_t channel, Int_t event, Bool_t flag)
82 10752 : { fIsInt[channel][event] = flag; }
83 : void SetBBFlag(Int_t channel, Int_t event, Bool_t flag)
84 5888 : { fIsBB[channel][event] = flag; }
85 : void SetBGFlag(Int_t channel, Int_t event, Bool_t flag)
86 5888 : { fIsBG[channel][event] = flag; }
87 : void SetTime(Int_t channel, Float_t time)
88 1024 : { fTime[channel] = time; }
89 : void SetWidth(Int_t channel, Float_t width)
90 1024 : { fWidth[channel] = width; }
91 :
92 : UShort_t GetTriggerInputs() const
93 0 : { return fTrigger; }
94 : UShort_t GetTriggerInputsMask() const
95 0 : { return fTriggerMask; }
96 : void SetTriggerInputs(UShort_t inputs)
97 8 : { fTrigger = inputs; }
98 : void SetTriggerInputsMask(UShort_t mask)
99 8 : { fTriggerMask = mask; }
100 :
101 : private:
102 :
103 : ULong64_t fBBScalers[kNChannels]; // 'Beam-Beam' scalers for all channels
104 : ULong64_t fBGScalers[kNChannels]; // 'Beam-Gas' scalers for all channels
105 : UInt_t fScalers[kNScalers]; // Trigger scalers
106 : UInt_t fBunchNumbers[kNBunches]; // Bunch numbers for the previous 10 MB events
107 : UShort_t fChargeMB[kNChannels][kNBunches]; // ADC counts for all channels for the previous 10 MB events
108 : Bool_t fIsIntMB[kNChannels][kNBunches]; // 'Integrator' flag for all channels for the previous 10 MB events
109 : Bool_t fIsBBMB[kNChannels][kNBunches]; // 'Beam-Beam' flag for all channels for the previous 10 MB events
110 : Bool_t fIsBGMB[kNChannels][kNBunches]; // 'Beam-Gas' for all channels for the previous 10 MB events
111 :
112 : Float_t fADC[kNChannels][kNEvOfInt]; // ADC counts for all channels and all events of interest
113 : Bool_t fIsInt[kNChannels][kNEvOfInt]; // 'Integrator' flag for all channels
114 : Bool_t fIsBB[kNChannels][kNEvOfInt]; // 'Beam-Beam' flag for all channels
115 : Bool_t fIsBG[kNChannels][kNEvOfInt]; // 'Beam-Gas' flag for all channels
116 : Float_t fTime[kNChannels]; // leading time for all channels - from HPTDC - in nanoseconds
117 : Float_t fWidth[kNChannels]; // pulse width for all channels - from HPTDC - in nanoseconds
118 :
119 : UShort_t fTrigger; // VZERO trigger inputs
120 : UShort_t fTriggerMask; // VZERO trigger inputs mask
121 :
122 204 : ClassDef(AliESDVZEROfriend, 3) // container class for VZERO DDL raw data
123 : };
124 :
125 : #endif
|