Line data Source code
1 : #ifndef ALIZDCRECO_H
2 : #define ALIZDCRECO_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : ////////////////////////////////////////////////
7 : // Classe for ZDC RecPoints //
8 : ////////////////////////////////////////////////
9 :
10 : #include "TObject.h"
11 :
12 : class AliZDCReco : public TObject {
13 :
14 : public:
15 : AliZDCReco();
16 : AliZDCReco(Float_t* ezn1, Float_t* ezp1, Float_t* ezn2, Float_t* ezp2, //[HR, LR] energies
17 : Float_t* ezn1tow, Float_t* ezp1tow, Float_t* ezn2tow, Float_t* ezp2tow, // 5 towers
18 : Float_t* ezem1, Float_t* ezem2, Float_t* ref1, Float_t* ref2,
19 : //
20 : Int_t detspnSideA, Int_t detsppSideA,
21 : Int_t detspnSideC, Int_t detsppSideC,
22 : Int_t trsp, Int_t trspSideA, Int_t trspSideC,
23 : Int_t npart, Int_t npartSideA, Int_t npartSideC,
24 : Float_t b, Float_t bSideA, Float_t bSideC,
25 : UInt_t recoFlag, Bool_t energyFlag, Bool_t scalerOn,
26 : UInt_t* scaler, Int_t tdcData[32][4], Int_t tdcCabling[7]);
27 :
28 : AliZDCReco(const AliZDCReco &oldreco);
29 : AliZDCReco& operator= (const AliZDCReco &reco);
30 80 : virtual ~AliZDCReco() {}
31 :
32 : // Getters
33 0 : virtual Float_t GetZNCHREnergy() const {return fZN1Energy[0];}
34 0 : virtual Float_t GetZPCHREnergy() const {return fZP1Energy[0];}
35 0 : virtual Float_t GetZNAHREnergy() const {return fZN2Energy[0];}
36 0 : virtual Float_t GetZPAHREnergy() const {return fZP2Energy[0];}
37 : //
38 16 : virtual Float_t GetZN1HREnergy() const {return fZN1Energy[0];}
39 16 : virtual Float_t GetZP1HREnergy() const {return fZP1Energy[0];}
40 16 : virtual Float_t GetZN2HREnergy() const {return fZN2Energy[0];}
41 16 : virtual Float_t GetZP2HREnergy() const {return fZP2Energy[0];}
42 : //
43 0 : virtual Float_t GetZNCLREnergy() const {return fZN1Energy[1];}
44 0 : virtual Float_t GetZPCLREnergy() const {return fZP1Energy[1];}
45 0 : virtual Float_t GetZNALREnergy() const {return fZN2Energy[1];}
46 0 : virtual Float_t GetZPALREnergy() const {return fZP2Energy[1];}
47 : //
48 0 : virtual Float_t GetZN1LREnergy() const {return fZN1Energy[1];}
49 0 : virtual Float_t GetZP1LREnergy() const {return fZP1Energy[1];}
50 0 : virtual Float_t GetZN2LREnergy() const {return fZN2Energy[1];}
51 0 : virtual Float_t GetZP2LREnergy() const {return fZP2Energy[1];}
52 : //
53 80 : virtual Float_t GetZN1HREnTow(Int_t tow) const {return fZN1EnTow[tow];}
54 80 : virtual Float_t GetZP1HREnTow(Int_t tow) const {return fZP1EnTow[tow];}
55 80 : virtual Float_t GetZN2HREnTow(Int_t tow) const {return fZN2EnTow[tow];}
56 80 : virtual Float_t GetZP2HREnTow(Int_t tow) const {return fZP2EnTow[tow];}
57 : //
58 0 : virtual Float_t GetZNCHREnTow(Int_t tow) const {return fZN1EnTow[tow];}
59 0 : virtual Float_t GetZPCHREnTow(Int_t tow) const {return fZP1EnTow[tow];}
60 0 : virtual Float_t GetZNAHREnTow(Int_t tow) const {return fZN2EnTow[tow];}
61 0 : virtual Float_t GetZPAHREnTow(Int_t tow) const {return fZP2EnTow[tow];}
62 : //
63 80 : virtual Float_t GetZN1LREnTow(Int_t tow) const {return fZN1EnTow[tow+5];}
64 80 : virtual Float_t GetZP1LREnTow(Int_t tow) const {return fZP1EnTow[tow+5];}
65 80 : virtual Float_t GetZN2LREnTow(Int_t tow) const {return fZN2EnTow[tow+5];}
66 80 : virtual Float_t GetZP2LREnTow(Int_t tow) const {return fZP2EnTow[tow+5];}
67 : //
68 16 : virtual Float_t GetZEM1HRsignal() const {return fZEM1signal[0];}
69 0 : virtual Float_t GetZEM1LRsignal() const {return fZEM1signal[1];}
70 16 : virtual Float_t GetZEM2HRsignal() const {return fZEM2signal[0];}
71 0 : virtual Float_t GetZEM2LRsignal() const {return fZEM2signal[1];}
72 : //
73 0 : virtual Float_t GetPMRef1HRsignal() const {return fZEM1signal[0];}
74 0 : virtual Float_t GetPMRef1LRsignal() const {return fZEM1signal[1];}
75 0 : virtual Float_t GetPMRef2HRsignal() const {return fZEM2signal[0];}
76 0 : virtual Float_t GetPMRef2LRsignal() const {return fZEM2signal[1];}
77 : //
78 0 : virtual Int_t GetNDetSpecNSideA() const {return fNDetSpecNSideA;}
79 0 : virtual Int_t GetNDetSpecPSideA() const {return fNDetSpecPSideA;}
80 0 : virtual Int_t GetNDetSpecNSideC() const {return fNDetSpecNSideC;}
81 0 : virtual Int_t GetNDetSpecPSideC() const {return fNDetSpecPSideC;}
82 0 : virtual Int_t GetNTrueSpectators() const {return fNTrueSpectators;}
83 0 : virtual Int_t GetNTrueSpecSideA() const {return fNTrueSpecSideA;}
84 0 : virtual Int_t GetNTrueSpecSideC() const {return fNTrueSpecSideC;}
85 16 : virtual Int_t GetNParticipants() const {return fNParticipants;}
86 16 : virtual Int_t GetNPartSideA() const {return fNPartSideA;}
87 16 : virtual Int_t GetNPartSideC() const {return fNPartSideC;}
88 16 : virtual Float_t GetImpParameter() const {return fImpParameter;}
89 16 : virtual Float_t GetImpParSideA() const {return fImpParSideA;}
90 16 : virtual Float_t GetImpParSideC() const {return fImpParSideC;}
91 : //
92 16 : virtual UInt_t GetRecoFlag() const {return fRecoFlag;}
93 0 : virtual UInt_t GetZDCPattern() const {return (fRecoFlag & 0x0000003f);}
94 0 : virtual UInt_t GetChOnFlag() const {return (fRecoFlag & 0x00000100);}
95 0 : virtual UInt_t GetChOvflwFlag() const {return (fRecoFlag & 0x00000200);}
96 0 : virtual UInt_t GetChUndflwFlag() const {return (fRecoFlag & 0x00000400);}
97 : //
98 16 : virtual Bool_t GetEnergyFlag() const {return fEnergyFlag;}
99 16 : virtual Bool_t IsScalerOn() const {return fIsScalerOn;}
100 0 : virtual UInt_t GetZDCScaler(Int_t k) const {return fZDCScaler[k];}
101 : //
102 2048 : virtual Int_t GetZDCTDCData(Int_t j, Int_t k) const {return fZDCTDCData[j][k];}
103 : //
104 16 : virtual Int_t* GetTDCchCabling() const {return (int*)fTDCchCabling;}
105 0 : virtual Int_t GetTDCchCabling(int i) const {return fTDCchCabling[i];}
106 :
107 : // Print method
108 : virtual void Print(Option_t *) const;
109 :
110 : private:
111 : // Data members
112 : Float_t fZN1Energy[2]; // Energy detected in ZNC (sum of 5 tower signals)
113 : Float_t fZP1Energy[2]; // Energy detected in ZPC (sum of 5 tower signals)
114 : Float_t fZN2Energy[2]; // Energy detected in ZNA (sum of 5 tower signals)
115 : Float_t fZP2Energy[2]; // Energy detected in ZPA (sum of 5 tower signals)
116 : //
117 : Float_t fZN1EnTow[10]; // Energy in ZNC towers
118 : Float_t fZP1EnTow[10]; // Energy in ZPC towers
119 : Float_t fZN2EnTow[10]; // Energy in ZNA towers
120 : Float_t fZP2EnTow[10]; // Energy in ZPA towers
121 : //
122 : Float_t fZEM1signal[2];// Signal in EM1 ZDC
123 : Float_t fZEM2signal[2];// Signal in EM2 ZDC
124 : //
125 : Float_t fPMRef1[2]; // Reference PM side C
126 : Float_t fPMRef2[2]; // Reference PM side A
127 : //
128 : Int_t fNDetSpecNSideA; // Number of spectator neutrons detected
129 : Int_t fNDetSpecPSideA; // Number of spectator protons detected
130 : Int_t fNDetSpecNSideC; // Number of spectator neutrons detected
131 : Int_t fNDetSpecPSideC; // Number of spectator protons detected
132 : Int_t fNTrueSpectators;// Estimate of the total number of spectators
133 : Int_t fNTrueSpecSideA; // Estimate of the number of spectators side A
134 : Int_t fNTrueSpecSideC; // Estimate of the number of spectators side C
135 : Int_t fNParticipants; // Estimate of the total number of participants
136 : Int_t fNPartSideA; // Estimate of the number of participants side A
137 : Int_t fNPartSideC; // Estimate of the number of participants side C
138 : Float_t fImpParameter; // Estimate of the impact parameter
139 : Float_t fImpParSideA; // Estimate of the impact parameter side A
140 : Float_t fImpParSideC; // Estimate of the impact parameter side B
141 : //
142 : UInt_t fRecoFlag; // Reconstruction flag
143 : Bool_t fEnergyFlag; // Is the reco value in energy?
144 : Bool_t fIsScalerOn; // True if scaler has been read in the event
145 : UInt_t fZDCScaler[32]; // Counts from ZDC VME scaler
146 : //
147 : Int_t fZDCTDCData[32][4];// TDC data raw
148 : //
149 : Int_t fTDCchCabling[7]; // Caling of 6 ZDC TDC ch. (order: ZNA,ZPA,ZEM1,ZEM2,ZNC,ZPC) + L0 TDC ch.
150 :
151 32 : ClassDef(AliZDCReco,15) // RecPoints for the Zero Degree Calorimeters
152 : };
153 :
154 : #endif
|