Bug #92237 fixed as Barth suggested
[u/mrichter/AliRoot.git] / ZDC / AliZDCReco.h
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,  
17              Float_t* ezn1tow, Float_t* ezp1tow, Float_t* ezn2tow, Float_t* ezp2tow, 
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]);
27
28   AliZDCReco(const AliZDCReco &oldreco);
29   AliZDCReco& operator= (const AliZDCReco &reco);
30   virtual ~AliZDCReco() {}
31
32   // Getters 
33   virtual Float_t GetZN1HREnergy()   const  {return fZN1Energy[0];}
34   virtual Float_t GetZP1HREnergy()   const  {return fZP1Energy[0];}
35   virtual Float_t GetZN2HREnergy()   const  {return fZN2Energy[0];}
36   virtual Float_t GetZP2HREnergy()   const  {return fZP2Energy[0];}
37   //
38   virtual Float_t GetZN1LREnergy()   const  {return fZN1Energy[1];}
39   virtual Float_t GetZP1LREnergy()   const  {return fZP1Energy[1];}
40   virtual Float_t GetZN2LREnergy()   const  {return fZN2Energy[1];}
41   virtual Float_t GetZP2LREnergy()   const  {return fZP2Energy[1];}
42   //
43   virtual Float_t GetZN1HREnTow(Int_t tow)  const {return fZN1EnTow[tow];}
44   virtual Float_t GetZP1HREnTow(Int_t tow)  const {return fZP1EnTow[tow];}
45   virtual Float_t GetZN2HREnTow(Int_t tow)  const {return fZN2EnTow[tow];}
46   virtual Float_t GetZP2HREnTow(Int_t tow)  const {return fZP2EnTow[tow];}
47   //
48   virtual Float_t GetZN1LREnTow(Int_t tow)  const {return fZN1EnTow[tow+5];}
49   virtual Float_t GetZP1LREnTow(Int_t tow)  const {return fZP1EnTow[tow+5];}
50   virtual Float_t GetZN2LREnTow(Int_t tow)  const {return fZN2EnTow[tow+5];}
51   virtual Float_t GetZP2LREnTow(Int_t tow)  const {return fZP2EnTow[tow+5];}
52   //
53   virtual Float_t GetZEM1HRsignal()   const  {return fZEM1signal[0];}
54   virtual Float_t GetZEM1LRsignal()   const  {return fZEM1signal[1];}
55   virtual Float_t GetZEM2HRsignal()   const  {return fZEM2signal[0];}
56   virtual Float_t GetZEM2LRsignal()   const  {return fZEM2signal[1];}
57   //
58   virtual Float_t GetPMRef1HRsignal()   const  {return fZEM1signal[0];}
59   virtual Float_t GetPMRef1LRsignal()   const  {return fZEM1signal[1];}
60   virtual Float_t GetPMRef2HRsignal()   const  {return fZEM2signal[0];}
61   virtual Float_t GetPMRef2LRsignal()   const  {return fZEM2signal[1];}
62   //
63   virtual Int_t   GetNDetSpecNSideA()  const {return fNDetSpecNSideA;}
64   virtual Int_t   GetNDetSpecPSideA()  const {return fNDetSpecPSideA;}
65   virtual Int_t   GetNDetSpecNSideC()  const {return fNDetSpecNSideC;}
66   virtual Int_t   GetNDetSpecPSideC()  const {return fNDetSpecPSideC;}
67   virtual Int_t   GetNTrueSpectators() const {return fNTrueSpectators;}
68   virtual Int_t   GetNTrueSpecSideA()  const {return fNTrueSpecSideA;}
69   virtual Int_t   GetNTrueSpecSideC()  const {return fNTrueSpecSideC;}
70   virtual Int_t   GetNParticipants()   const {return fNParticipants;}
71   virtual Int_t   GetNPartSideA()      const {return fNPartSideA;}
72   virtual Int_t   GetNPartSideC()      const {return fNPartSideC;}
73   virtual Float_t GetImpParameter()    const {return fImpParameter;}
74   virtual Float_t GetImpParSideA()     const {return fImpParSideA;}
75   virtual Float_t GetImpParSideC()     const {return fImpParSideC;}
76   //
77   virtual UInt_t  GetRecoFlag()      const {return fRecoFlag;}
78   virtual UInt_t  GetZDCPattern()    const {return (fRecoFlag & 0x0000003f);}
79   virtual UInt_t  GetChOnFlag()      const {return (fRecoFlag & 0x00000100);}
80   virtual UInt_t  GetChOvflwFlag()   const {return (fRecoFlag & 0x00000200);}
81   virtual UInt_t  GetChUndflwFlag()  const {return (fRecoFlag & 0x00000400);}
82   //
83   virtual Bool_t  GetEnergyFlag()    const {return fEnergyFlag;}
84   virtual Bool_t  IsScalerOn()          const {return fIsScalerOn;}
85   virtual UInt_t  GetZDCScaler(Int_t k) const {return fZDCScaler[k];}
86   //
87   virtual Int_t   GetZDCTDCData(Int_t j, Int_t k) const {return fZDCTDCData[j][k];}
88
89   // Print method
90   virtual void Print(Option_t *) const;
91
92 private:
93   // Data members
94   Float_t fZN1Energy[2]; // Energy detected in ZN1 (sum of 5 tower signals)
95   Float_t fZP1Energy[2]; // Energy detected in ZP1 (sum of 5 tower signals)
96   Float_t fZN2Energy[2]; // Energy detected in ZN2 (sum of 5 tower signals)
97   Float_t fZP2Energy[2]; // Energy detected in ZP2 (sum of 5 tower signals)
98   //
99   Float_t fZN1EnTow[10]; // Energy in ZN1 towers
100   Float_t fZP1EnTow[10]; // Energy in ZP1 towers
101   Float_t fZN2EnTow[10]; // Energy in ZN2 towers
102   Float_t fZP2EnTow[10]; // Energy in ZP2 towers
103   //
104   Float_t fZEM1signal[2];// Signal in EM1 ZDC
105   Float_t fZEM2signal[2];// Signal in EM2 ZDC
106   //
107   Float_t fPMRef1[2];    // Reference PM side C
108   Float_t fPMRef2[2];    // Reference PM side A
109   //
110   Int_t   fNDetSpecNSideA; // Number of spectator neutrons detected
111   Int_t   fNDetSpecPSideA; // Number of spectator protons detected
112   Int_t   fNDetSpecNSideC; // Number of spectator neutrons detected
113   Int_t   fNDetSpecPSideC; // Number of spectator protons detected
114   Int_t   fNTrueSpectators;// Estimate of the total number of spectators
115   Int_t   fNTrueSpecSideA; // Estimate of the number of spectators side A
116   Int_t   fNTrueSpecSideC; // Estimate of the number of spectators side C
117   Int_t   fNParticipants;  // Estimate of the total number of participants
118   Int_t   fNPartSideA;     // Estimate of the number of participants side A
119   Int_t   fNPartSideC;     // Estimate of the number of participants side C
120   Float_t fImpParameter;   // Estimate of the impact parameter
121   Float_t fImpParSideA;    // Estimate of the impact parameter side A
122   Float_t fImpParSideC;    // Estimate of the impact parameter side B
123   //
124   UInt_t  fRecoFlag;       // Reconstruction flag
125   Bool_t  fEnergyFlag;     // Is the reco value in energy?
126   Bool_t  fIsScalerOn;     // True if scaler has been read in the event
127   UInt_t  fZDCScaler[32];  // Counts from ZDC VME scaler
128   //
129   Int_t fZDCTDCData[32][4];      // TDC data raw
130
131   ClassDef(AliZDCReco,14)  // RecPoints for the Zero Degree Calorimeters
132 };
133  
134 #endif