Line data Source code
1 :
2 : // -*- mode: C++ -*-
3 : #ifndef ALIESDTZERO_H
4 : #define ALIESDTZERO_H
5 :
6 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 : * See cxx source for full Copyright notice */
8 :
9 :
10 : //-------------------------------------------------------------------------
11 : // Class AliESDTZERO
12 : // This is a class that summarizes the TZERO data for the ESD
13 : // Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch
14 : //-------------------------------------------------------------------------
15 :
16 :
17 :
18 : #include <TObject.h>
19 : #include <TBits.h>
20 :
21 60 : class AliESDTZERO: public TObject {
22 : public:
23 : AliESDTZERO();
24 : AliESDTZERO(const AliESDTZERO& tzero);
25 : AliESDTZERO& operator=(const AliESDTZERO& tzero);
26 : virtual void Copy(TObject &obj) const;
27 :
28 32 : Double32_t GetT0zVertex() const {return fT0zVertex;}
29 32 : void SetT0zVertex(Double32_t z) {fT0zVertex=z;}
30 0 : Double32_t GetT0() const {return fT0timeStart;}
31 0 : void SetT0(Double_t timeStart) {fT0timeStart = timeStart;}
32 0 : Float_t GetT0clock() const {return fT0clock;}
33 0 : void SetT0clock(Float_t timeStart) {fT0clock = timeStart;}
34 : //1st
35 48 : Double32_t GetT0TOF(Int_t i) const {return fT0TOF[i];}
36 16 : const Double32_t * GetT0TOF() const {return fT0TOF;}
37 96 : void SetT0TOF(Int_t icase, Float_t time) { fT0TOF[icase] = time;}
38 : //best
39 48 : Double32_t GetT0TOFbest(Int_t i) const {return fT0TOFbest[i];}
40 0 : const Double32_t * GetT0TOFbest() const {return fT0TOFbest;}
41 96 : void SetT0TOFbest(Int_t icase, Float_t time) { fT0TOFbest[icase] = time;}
42 :
43 0 : Int_t GetT0Trig() const {return fT0trig;}
44 32 : void SetT0Trig(Int_t tvdc) {fT0trig = tvdc;}
45 0 : Bool_t GetT0Trig(Int_t i) {return (fT0trig&(1<<i)) != 0;}
46 0 : const Double32_t * GetT0time() const {return fT0time;}
47 : void SetT0time(Double32_t time[24]) {
48 816 : for (Int_t i=0; i<24; i++) fT0time[i] = time[i];
49 16 : }
50 16 : const Double32_t * GetT0amplitude() const {return fT0amplitude;}
51 : void SetT0amplitude(Double32_t amp[24]) {
52 816 : for (Int_t i=0; i<24; i++) fT0amplitude[i] = amp[i];
53 16 : }
54 1152 : Float_t GetTimeFull(Int_t ch, Int_t hit) const {return fTimeFull[ch][hit];}
55 0 : Float_t GetOrA(Int_t hit) const {return fOrA[hit];}
56 0 : Float_t GetOrC(Int_t hit) const {return fOrC[hit];}
57 1600 : Float_t GetTVDC(Int_t hit) const {return fTVDC[hit];}
58 :
59 3840 : void SetTimeFull(Int_t ch, Int_t hit, Float_t time) {fTimeFull[ch][hit] = time;}
60 160 : void SetOrA (Int_t hit, Float_t time) { fOrA[hit] = time ;}
61 160 : void SetOrC (Int_t hit, Float_t time) { fOrC[hit] = time;}
62 160 : void SetTVDC(Int_t hit, Float_t time) { fTVDC[hit] = time;}
63 :
64 32 : void SetMultC(Float_t mult) {fMultC = mult;}
65 32 : void SetMultA(Float_t mult) {fMultA = mult;}
66 16 : Float_t GetMultC() const {return fMultC;}
67 16 : Float_t GetMultA() const {return fMultA;}
68 :
69 80 : void SetBackgroundFlag(Bool_t back = false) {fBackground = back;}
70 80 : void SetPileupFlag(Bool_t back = false) {fPileup = back;}
71 16 : void SetSatelliteFlag(Bool_t sat = false) { fSattelite = sat;}
72 :
73 16 : Bool_t GetBackgroundFlag() const {return fBackground;}
74 16 : Bool_t GetPileupFlag() const {return fPileup;}
75 16 : Bool_t GetSatellite() const {return fSattelite;}
76 :
77 640 : void SetPileupTime (Int_t hit, Float_t time) { fPileupTime[hit] = time;}
78 0 : Float_t GetPileupTime(Int_t hit) const {return fPileupTime[hit];}
79 :
80 160 : void SetPileupBits(TBits pileup) {fPileupBits=pileup;}
81 176 : TBits GetT0PileupBits() const {return fPileupBits;}
82 : //new QTC
83 0 : const Double32_t* GetT0NewAmplitude() const {return fT0NewAmplitude;}
84 : void SetT0NewAmplitude( Double32_t newamp[24]) {
85 816 : for (Int_t i=0; i<24; i++) fT0NewAmplitude[i] = newamp[i];
86 16 : }
87 :
88 : void Reset();
89 : void Print(const Option_t *opt=0) const;
90 :
91 :
92 : private:
93 :
94 : Float_t fT0clock; // backward compatibility
95 : Double32_t fT0TOF[3]; // interaction time in ps with 1st time( A&C, A, C)
96 : Double32_t fT0zVertex; // vertex z position estimated by the T0, cm
97 : Double32_t fT0timeStart; // interaction time estimated by the T0
98 : Int_t fT0trig; // T0 trigger signals
99 : Double32_t fT0time[24]; // best TOF on each T0 PMT
100 : Double32_t fT0amplitude[24]; // number of particles(MIPs) on each T0 PMT
101 : Float_t fTimeFull[24][5]; // array's TDC no-correction ;centred around 0, ns
102 : Float_t fOrA[5]; //hardware OrA centred around 0, ns
103 : Float_t fOrC[5]; //hardware OrC centred around 0, ns
104 : Float_t fTVDC[5]; //hardware TVDC centred around 0, ns
105 : Bool_t fPileup; // pile-up flag
106 : Bool_t fSattelite; //sattelite flag
107 : Float_t fMultC; // multiplicity on the C side
108 : Float_t fMultA; // multiplicity on the A side
109 : Bool_t fBackground; //sattelite flag
110 : Float_t fPileupTime[6];
111 : Double32_t fT0TOFbest[3]; // interaction time in ps ( A&C, A, C) with best time
112 : Double32_t fT0NewAmplitude[24]; //new QTC
113 : TBits fPileupBits; //BC number
114 :
115 1168 : ClassDef(AliESDTZERO,9)
116 : };
117 :
118 :
119 : #endif
|