1 #ifndef ALIVVVZEROFRIEND_H
2 #define ALIVVVZEROFRIEND_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 ///////////////////////////////////////////////////////////////////////////////
8 /// This is a class with access methods for VZERO DDL raw data
9 /// It is written to the ESD-friend file
11 ///////////////////////////////////////////////////////////////////////////////
15 class AliVVVZEROfriend {
18 virtual ~AliVVVZEROfriend();
20 AliVVVZEROfriend(const AliVVVZEROfriend& vzerofriend);
21 AliVVVZEROfriend& operator = (const AliVVVZEROfriend& vzerofriend);
25 // Getters of various scalers and Minimum Bias flags :
27 virtual ULong64_t GetBBScalers(Int_t channel) const
28 { return fBBScalers[channel]; }
29 virtual ULong64_t GetBGScalers(Int_t channel) const
30 { return fBGScalers[channel]; }
31 virtual UInt_t GetTriggerScalers(Int_t num_scaler) const
32 { return fScalers[num_scaler]; }
33 virtual UInt_t GetBunchNumbersMB(Int_t num_bunch) const
34 { return fBunchNumbers[num_bunch]; }
35 virtual UShort_t GetChargeMB(Int_t channel, Int_t num_bunch) const
36 { return fChargeMB[channel][num_bunch]; }
37 virtual Bool_t GetIntMBFlag(Int_t channel, Int_t num_bunch) const
38 { return fIsIntMB[channel][num_bunch]; }
39 virtual Bool_t GetBBMBFlag(Int_t channel, Int_t num_bunch) const
40 { return fIsBBMB[channel][num_bunch]; }
41 virtual Bool_t GetBGMBFlag(Int_t channel, Int_t num_bunch) const
42 { return fIsBGMB[channel][num_bunch]; }
44 // Getters of ADC signals, ADC pedestals, time information and corresponding flags :
46 virtual Float_t GetADC(Int_t channel) const
47 { return fADC[channel][kNEvOfInt/2]; }
48 virtual Float_t GetPedestal(Int_t channel, Int_t event) const
49 { return fADC[channel][event]; }
50 virtual Bool_t GetIntegratorFlag(Int_t channel, Int_t event) const
51 { return fIsInt[channel][event]; }
52 virtual Bool_t GetBBFlag(Int_t channel, Int_t event) const
53 { return fIsBB[channel][event]; }
54 virtual Bool_t GetBGFlag(Int_t channel, Int_t event) const
55 { return fIsBG[channel][event]; }
56 virtual Float_t GetTime(Int_t channel) const
57 { return fTime[channel]; }
58 virtual Float_t GetWidth(Int_t channel) const
59 { return fWidth[channel]; }
62 virtual void SetBBScalers(Int_t channel, ULong64_t scalers)
63 { fBBScalers[channel] = scalers; }
64 virtual void SetBGScalers(Int_t channel, ULong64_t scalers)
65 { fBGScalers[channel] = scalers; }
66 virtual void SetTriggerScalers(Int_t num_scaler, UInt_t scaler)
67 { fScalers[num_scaler] = scaler; }
68 virtual void SetBunchNumbersMB(Int_t num_bunch, UInt_t bunch)
69 { fBunchNumbers[num_bunch] = bunch; }
70 virtual void SetChargeMB(Int_t channel,Int_t num_bunch, UShort_t charge)
71 { fChargeMB[channel][num_bunch] = charge; }
72 virtual void SetIntMBFlag(Int_t channel,Int_t num_bunch, Bool_t flag)
73 { fIsIntMB[channel][num_bunch] = flag; }
74 virtual void SetBBMBFlag(Int_t channel,Int_t num_bunch, Bool_t flag)
75 { fIsBBMB[channel][num_bunch] = flag; }
76 virtual void SetBGMBFlag(Int_t channel,Int_t num_bunch, Bool_t flag)
77 { fIsBGMB[channel][num_bunch] = flag; }
79 virtual void SetPedestal(Int_t channel, Int_t event, Float_t adc)
80 { fADC[channel][event] = adc; }
81 virtual void SetIntegratorFlag(Int_t channel, Int_t event, Bool_t flag)
82 { fIsInt[channel][event] = flag; }
83 virtual void SetBBFlag(Int_t channel, Int_t event, Bool_t flag)
84 { fIsBB[channel][event] = flag; }
85 virtual void SetBGFlag(Int_t channel, Int_t event, Bool_t flag)
86 { fIsBG[channel][event] = flag; }
87 virtual void SetTime(Int_t channel, Float_t time)
88 { fTime[channel] = time; }
89 virtual void SetWidth(Int_t channel, Float_t width)
90 { fWidth[channel] = width; }
92 virtual UShort_t GetTriggerInputs() const
94 virtual UShort_t GetTriggerInputsMask() const
95 { return fTriggerMask; }
96 virtual void SetTriggerInputs(UShort_t inputs)
97 { fTrigger = inputs; }
98 virtual void SetTriggerInputsMask(UShort_t mask)
99 { fTriggerMask = mask; }
101 enum EESDVZEROfriendParams {
102 kNChannels = 64, // number of electronic channels in V0 (FEE numbering)
103 kNEvOfInt = 21, // number of events of interest
104 kNScalers = 16, // number of scalers
105 kNBunches = 10 // number of bunches used in Minimum Bias information