make AliVVevent abstract (=0)
[u/mrichter/AliRoot.git] / HLT / global / AliVVVZEROfriend.h
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                               */
5
6 ///////////////////////////////////////////////////////////////////////////////
7 ///
8 /// This is a class with access methods for VZERO DDL raw data
9 /// It is written to the ESD-friend file
10 ///
11 ///////////////////////////////////////////////////////////////////////////////
12
13 #include <TObject.h>
14
15 class AliVVVZEROfriend {
16   public :
17     AliVVVZEROfriend();
18     virtual ~AliVVVZEROfriend();
19
20     AliVVVZEROfriend(const AliVVVZEROfriend& vzerofriend);
21     AliVVVZEROfriend& operator = (const AliVVVZEROfriend& vzerofriend);
22
23     virtual void Reset();
24
25 // Getters of various scalers and Minimum Bias flags :
26
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]; }      
43        
44 // Getters of ADC signals, ADC pedestals, time information and corresponding flags :
45
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]; }
60
61     // Setters
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; }
78
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; }
91
92     virtual UShort_t          GetTriggerInputs() const
93       { return fTrigger; }
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; }
100
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 
106     };
107 };
108
109 #endif