LCOV - code coverage report
Current view: top level - STEER/ESD - AliESDZDC.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 52 88 59.1 %
Date: 2016-06-14 17:26:59 Functions: 47 83 56.6 %

          Line data    Source code
       1             : // -*- mode: C++ -*- 
       2             : #ifndef ALIESDZDC_H
       3             : #define ALIESDZDC_H
       4             : 
       5             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       6             :  * See cxx source for full Copyright notice                               */
       7             : 
       8             : //-------------------------------------------------------------------------
       9             : //                      Implementation of   Class AliESDZDC
      10             : //   This is a class that summarizes the ZDC data for the ESD   
      11             : //   Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch 
      12             : //   *** 15/10/2009 Scaler added to AliESDZDC class ***
      13             : //   *** Scaler format:  32 floats from VME scaler  ***
      14             : //-------------------------------------------------------------------------
      15             : 
      16             : #include <AliVZDC.h>
      17             : 
      18          72 : class AliESDZDC: public AliVZDC {
      19             : public: 
      20             :  
      21             :   AliESDZDC();
      22             :   AliESDZDC(const AliESDZDC& zdc);
      23             :   AliESDZDC& operator=(const AliESDZDC& zdc);
      24             : 
      25             : 
      26             :   // Getters 
      27             :   
      28          32 :   virtual Short_t  GetZDCParticipants() const {return fZDCParticipants;}
      29          16 :   virtual Short_t  GetZDCPartSideA() const {return fZDCPartSideA;}
      30          16 :   virtual Short_t  GetZDCPartSideC() const {return fZDCPartSideC;}
      31          16 :   virtual Double_t GetImpactParameter() const {return fImpactParameter;}
      32          16 :   virtual Double_t GetImpactParamSideA() const {return fImpactParamSideA;}
      33          16 :   virtual Double_t GetImpactParamSideC() const {return fImpactParamSideC;}
      34             : 
      35           0 :   virtual Double_t GetZNCEnergy() const {return (Double_t) fZDCN1Energy;}
      36           0 :   virtual Double_t GetZPCEnergy() const {return (Double_t) fZDCP1Energy;}
      37           0 :   virtual Double_t GetZNAEnergy() const {return (Double_t) fZDCN2Energy;}
      38           0 :   virtual Double_t GetZPAEnergy() const {return (Double_t) fZDCP2Energy;}
      39          16 :   virtual Double_t GetZEM1Energy() const {return (Double_t) fZDCEMEnergy;}
      40          16 :   virtual Double_t GetZEM2Energy() const {return (Double_t) fZDCEMEnergy1;}
      41             :   
      42          16 :   virtual const Double_t *GetZNCTowerEnergy() const {return fZN1TowerEnergy;}
      43          16 :   virtual const Double_t *GetZNATowerEnergy() const {return fZN2TowerEnergy;}
      44          16 :   virtual const Double_t *GetZPCTowerEnergy() const {return fZP1TowerEnergy;}
      45          16 :   virtual const Double_t *GetZPATowerEnergy() const {return fZP2TowerEnergy;}
      46          16 :   virtual const Double_t *GetZNCTowerEnergyLR() const {return fZN1TowerEnergyLR;}
      47          16 :   virtual const Double_t *GetZNATowerEnergyLR() const {return fZN2TowerEnergyLR;}
      48          16 :   const Double_t *GetZPCTowerEnergyLR() const {return fZP1TowerEnergyLR;}
      49          16 :   const Double_t *GetZPATowerEnergyLR() const {return fZP2TowerEnergyLR;}
      50             : 
      51           0 :   UInt_t   GetESDQuality()  const {return fESDQuality;}
      52          32 :   Double_t GetZDCN1Energy() const {return fZDCN1Energy;}
      53          32 :   Double_t GetZDCP1Energy() const {return fZDCP1Energy;}
      54          32 :   Double_t GetZDCN2Energy() const {return fZDCN2Energy;}
      55          32 :   Double_t GetZDCP2Energy() const {return fZDCP2Energy;}
      56             :   Double_t GetZDCEMEnergy(Int_t i) const 
      57         112 :            {if(i==0){return fZDCEMEnergy;} else if(i==1){return fZDCEMEnergy1;}
      58          32 :            return 0;}
      59             : 
      60           0 :   const Double_t * GetZN1TowerEnergy() const {return fZN1TowerEnergy;}
      61           0 :   const Double_t * GetZN2TowerEnergy() const {return fZN2TowerEnergy;}
      62           0 :   const Double_t * GetZP1TowerEnergy() const {return fZP1TowerEnergy;}
      63           0 :   const Double_t * GetZP2TowerEnergy() const {return fZP2TowerEnergy;}
      64           0 :   const Double_t * GetZN1TowerEnergyLR() const {return fZN1TowerEnergyLR;}
      65           0 :   const Double_t * GetZN2TowerEnergyLR() const {return fZN2TowerEnergyLR;}
      66           0 :   const Double_t * GetZP1TowerEnergyLR() const {return fZP1TowerEnergyLR;}
      67           0 :   const Double_t * GetZP2TowerEnergyLR() const {return fZP2TowerEnergyLR;}
      68             :   //
      69             :   virtual Bool_t GetZNCentroidInPbPb(Float_t beamEne, Double_t centrZNC[2], Double_t centrZNA[2]);
      70             :   virtual Bool_t GetZNCentroidInpp(Double_t centrZNC[2], Double_t centrZNA[2]);
      71             :   //
      72             : 
      73           0 :   UInt_t GetZDCScaler(Int_t i)  const {return fVMEScaler[i];}
      74           0 :   const UInt_t* GetZDCScaler()  const {return fVMEScaler;}
      75             : 
      76           0 :   Int_t GetZDCTDCData(Int_t i, Int_t j) const {return fZDCTDCData[i][j];}
      77             :   Float_t GetZDCTDCCorrected(Int_t i, Int_t j) const 
      78             :   {
      79           0 :     if(AliESDZDC::kCorrectedTDCFilled && (fZDCTDCData[i][j]!=0)) return fZDCTDCCorrected[i][j];
      80           0 :     else return 999.;
      81           0 :   }
      82             :   
      83           0 :   Int_t GetZNATDCChannel() {if(TestBit(AliESDZDC::kTDCcablingSet)) return fZDCTDCChannels[4]; else return 12;}
      84           0 :   Int_t GetZPATDCChannel() {if(TestBit(AliESDZDC::kTDCcablingSet)) return fZDCTDCChannels[5]; else return 13;}
      85           0 :   Int_t GetZEM1TDCChannel() {if(TestBit(AliESDZDC::kTDCcablingSet)) return fZDCTDCChannels[0]; else return 8;}
      86           0 :   Int_t GetZEM2TDCChannel() {if(TestBit(AliESDZDC::kTDCcablingSet)) return fZDCTDCChannels[1]; else return 9;}
      87           0 :   Int_t GetZNCTDCChannel() {if(TestBit(AliESDZDC::kTDCcablingSet)) return fZDCTDCChannels[2]; else return 10;}
      88           0 :   Int_t GetZPCTDCChannel() {if(TestBit(AliESDZDC::kTDCcablingSet)) return fZDCTDCChannels[3]; else return 11;}
      89           0 :   Int_t GetL0TDCChannel()  {if(TestBit(AliESDZDC::kTDCcablingSet)) return fZDCTDCChannels[6]; else return 15;}
      90             : 
      91             :   Float_t GetZNTDCSum(Int_t ihit) const;
      92             :   Float_t GetZNTDCDiff(Int_t ihit) const;
      93             :   
      94           0 :   virtual Float_t GetZDCTimeSum()  const {return GetZNTDCSum(0);}
      95           0 :   virtual Float_t GetZDCTimeDiff() const {return GetZNTDCDiff(0);}
      96             :   
      97           0 :   Bool_t  IsZDCTDCcablingSet() const {if(TestBit(AliESDZDC::kTDCcablingSet)) return kTRUE; 
      98           0 :                                       else return kFALSE;}
      99             :   
     100             :   void  SetZDC(Double_t n1Energy, Double_t p1Energy, 
     101             :                Double_t emEnergy0, Double_t emEnergy1,
     102             :                Double_t n2Energy, Double_t p2Energy, 
     103             :                Short_t participants, Short_t nPartA, Short_t nPartC,
     104             :                Double_t b, Double_t bA, Double_t bC, UInt_t recoFlag) 
     105          16 :         {fZDCN1Energy=n1Energy; fZDCP1Energy=p1Energy; 
     106           8 :          fZDCEMEnergy=emEnergy0; fZDCEMEnergy1=emEnergy1;
     107           8 :          fZDCN2Energy=n2Energy; fZDCP2Energy=p2Energy; 
     108           8 :          fZDCParticipants=participants; fZDCPartSideA=nPartA; fZDCPartSideC=nPartC;
     109           8 :          fImpactParameter=b; fImpactParamSideA=bA, fImpactParamSideC=bC,
     110           8 :          fESDQuality=recoFlag;}
     111             :   //
     112             :   void  SetZN1TowerEnergy(const Float_t tow1[5])
     113         112 :           {for(Int_t i=0; i<5; i++) fZN1TowerEnergy[i] = tow1[i];}
     114             :   void  SetZN2TowerEnergy(const Float_t tow2[5])
     115         112 :           {for(Int_t i=0; i<5; i++) fZN2TowerEnergy[i] = tow2[i];}
     116             :   void  SetZP1TowerEnergy(const Float_t tow1[5])
     117         112 :           {for(Int_t i=0; i<5; i++) fZP1TowerEnergy[i] = tow1[i];}
     118             :   void  SetZP2TowerEnergy(const Float_t tow2[5])
     119         112 :           {for(Int_t i=0; i<5; i++) fZP2TowerEnergy[i] = tow2[i];}
     120             :   void  SetZN1TowerEnergyLR(const Float_t tow1[5])
     121         112 :           {for(Int_t i=0; i<5; i++) fZN1TowerEnergyLR[i] = tow1[i];}
     122             :   void  SetZN2TowerEnergyLR(const Float_t tow2[5])
     123         112 :           {for(Int_t i=0; i<5; i++) fZN2TowerEnergyLR[i] = tow2[i];}
     124             :   void  SetZP1TowerEnergyLR(const Float_t tow1[5])
     125         112 :           {for(Int_t i=0; i<5; i++) fZP1TowerEnergyLR[i] = tow1[i];}
     126             :   void  SetZP2TowerEnergyLR(const Float_t tow2[5])
     127         112 :           {for(Int_t i=0; i<5; i++) fZP2TowerEnergyLR[i] = tow2[i];}
     128             :   void  SetZNACentroid(const Float_t centrCoord[2])
     129           0 :            {for(Int_t i=0; i<2; i++) fZNACentrCoord[i] = centrCoord[i];}
     130             :   void  SetZNCCentroid(const Float_t centrCoord[2])
     131           0 :            {for(Int_t i=0; i<2; i++) fZNCCentrCoord[i] = centrCoord[i];}
     132             :   
     133             :   void SetZDCScaler(const UInt_t count[32]) 
     134           0 :        {for(Int_t k=0; k<32; k++) fVMEScaler[k] = count[k];}
     135             :   
     136             :   void SetZDCTDCData(const Int_t values[32][4]) 
     137         536 :        {for(Int_t k=0; k<32; k++)
     138        2568 :            for(Int_t j=0; j<4; j++) fZDCTDCData[k][j] = values[k][j];}
     139             :   
     140             :   void SetZDCTDCCorrected(const Float_t values[32][4]) 
     141         536 :        {for(Int_t k=0; k<32; k++)
     142        2568 :            for(Int_t j=0; j<4; j++) fZDCTDCCorrected[k][j] = values[k][j];}
     143             :   
     144          16 :   Bool_t IsZNChit() {return fZNCTDChit;}
     145          16 :   Bool_t IsZNAhit() {return fZNATDChit;}
     146          16 :   Bool_t IsZPChit() {return fZPCTDChit;}
     147          16 :   Bool_t IsZPAhit() {return fZPATDChit;}
     148           0 :   Bool_t IsZEM1hit() {return fZEM1TDChit;}
     149           0 :   Bool_t IsZEM2hit() {return fZEM2TDChit;}
     150             :   //
     151           8 :   void SetZNCTDChit(Bool_t isf)  {fZNCTDChit = isf;} 
     152           8 :   void SetZPCTDChit(Bool_t isf)  {fZPCTDChit = isf;} 
     153           8 :   void SetZNATDChit(Bool_t isf)  {fZNATDChit = isf;} 
     154           8 :   void SetZPATDChit(Bool_t isf)  {fZPATDChit = isf;} 
     155           8 :   void SetZEM1TDChit(Bool_t isf) {fZEM1TDChit = isf;} 
     156           8 :   void SetZEM2TDChit(Bool_t isf) {fZEM2TDChit = isf;} 
     157             :   
     158           0 :   void SetZDCTDCChannel(int ich, int ival) {if(ich<7) fZDCTDCChannels[ich] = ival;}
     159             : 
     160             :   void    Reset();
     161             :   void    Print(const Option_t *opt=0) const;
     162             : private:
     163             :   virtual void Copy(TObject &obj) const;
     164             : private:
     165             : 
     166             :   Double32_t   fZDCN1Energy;  // reconstructed energy in the neutron ZDC
     167             :   Double32_t   fZDCP1Energy;  // reconstructed energy in the proton ZDC
     168             :   Double32_t   fZDCN2Energy;  // reconstructed energy in the neutron ZDC
     169             :   Double32_t   fZDCP2Energy;  // reconstructed energy in the proton ZDC
     170             :   Double32_t   fZDCEMEnergy;  // signal in the electromagnetic ZDCs
     171             :   Double32_t   fZDCEMEnergy1; // second EM signal,cannot change fZDCEMEnergy to array (not backward compatible)
     172             :   Double32_t   fZN1TowerEnergy[5];// reco E in 5 ZN1 sectors - high gain chain
     173             :   Double32_t   fZN2TowerEnergy[5];// reco E in 5 ZN2 sectors - high gain chain
     174             :   Double32_t   fZP1TowerEnergy[5];// reco E in 5 ZP1 sectors - high gain chain
     175             :   Double32_t   fZP2TowerEnergy[5];// reco E in 5 ZP2 sectors - high gain chain
     176             :   Double32_t   fZN1TowerEnergyLR[5];// reco E in 5 ZN1 sectors - low gain chain
     177             :   Double32_t   fZN2TowerEnergyLR[5];// reco E in 5 ZN2 sectors - low gain chain
     178             :   Double32_t   fZP1TowerEnergyLR[5];// reco E in 5 ZP1 sectors - low gain chain
     179             :   Double32_t   fZP2TowerEnergyLR[5];// reco E in 5 ZP2 sectors - low gain chain
     180             :   Short_t      fZDCParticipants;    // number of participants estimated by the ZDC (ONLY in A-A)
     181             :   Short_t      fZDCPartSideA;     // number of participants estimated by the ZDC (ONLY in A-A)
     182             :   Short_t      fZDCPartSideC;     // number of participants estimated by the ZDC (ONLY in A-A)
     183             :   Double32_t   fImpactParameter;  // impact parameter estimated by the ZDC (ONLY in A-A)
     184             :   Double32_t   fImpactParamSideA; // impact parameter estimated by the ZDC (ONLY in A-A)
     185             :   Double32_t   fImpactParamSideC; // impact parameter estimated by the ZDC (ONLY in A-A)
     186             :   Double32_t   fZNACentrCoord[2]; // Coordinates of the centroid over ZNC
     187             :   Double32_t   fZNCCentrCoord[2]; // Coordinates of the centroid over ZNA
     188             :   UInt_t       fESDQuality;       // flags from reconstruction
     189             :   UInt_t       fVMEScaler[32];    // counts from VME scaler
     190             :   Int_t        fZDCTDCData[32][4];     // ZDC TDC data
     191             :   Float_t      fZDCTDCCorrected[32][4];// ZDC TDC data in ns corrected 4 phase shift
     192             :   Bool_t       fZNCTDChit;    // true if ZNC TDC has at least 1 hit
     193             :   Bool_t       fZNATDChit;    // true if ZNA TDC has at least 1 hit
     194             :   Bool_t       fZPCTDChit;    // true if ZPC TDC has at least 1 hit
     195             :   Bool_t       fZPATDChit;    // true if ZPA TDC has at least 1 hit
     196             :   Bool_t       fZEM1TDChit;   // true if ZEM1 TDC has at least 1 hit
     197             :   Bool_t       fZEM2TDChit;   // true if ZEM2 TDC has at least 1 hit
     198             :   //
     199             :   Int_t        fZDCTDCChannels[7];
     200             :   
     201        1244 :   ClassDef(AliESDZDC,20)
     202             : };
     203             : 
     204             : #endif
     205             : 

Generated by: LCOV version 1.11