ALIROOT-5420 Changes for CDH v3
[u/mrichter/AliRoot.git] / ZDC / AliZDCHit.h
1 #ifndef ALIZDCHIT_H
2 #define ALIZDCHIT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ////////////////////////////////////////////////
7 //  Hits classes for set ZDC                  //
8 ////////////////////////////////////////////////
9
10 #include "AliHit.h"
11
12 class AliZDCHit : public AliHit {
13
14 public:
15   AliZDCHit();
16   AliZDCHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits);
17   AliZDCHit(const AliZDCHit &oldhit);
18   AliZDCHit& operator= (const AliZDCHit &hit);
19   virtual ~AliZDCHit() {}
20
21   // Getters 
22   virtual Int_t   GetVolume(Int_t i) const {return fVolume[i];}
23   virtual Int_t   GetPDGCode() const       {return fPDGCode;}
24   virtual Int_t   GetMotherPDGCode() const {return fMotherPDGCode;}
25   virtual Float_t GetPrimKinEn() const     {return fPrimKinEn;}
26   virtual Float_t GetXImpact() const       {return fXImpact;}
27   virtual Float_t GetYImpact() const       {return fYImpact;}
28   virtual Float_t GetSFlag() const         {return fSFlag;}
29   virtual Float_t GetLightPMQ() const      {return fLightPMQ;}
30   virtual Float_t GetLightPMC() const      {return fLightPMC;}
31   virtual Float_t GetEnergy() const        {return fEnergy;}
32   virtual Float_t GetTrackTOF() const      {return fTrackTOF;}
33   virtual Float_t GetTrackEta() const      {return fTrackEta;}
34
35   // Setters 
36   virtual void SetVolume(Int_t i, Int_t val) {fVolume[i]=val;} 
37   virtual void SetPDGCode(Int_t code)        {fPDGCode=code;}
38   virtual void SetMotherPDGCode(Int_t code)  {fPDGCode=code;}
39   virtual void SetLightPMQ(Float_t value)    {fLightPMQ=value;}
40   virtual void SetLightPMC(Float_t value)    {fLightPMC=value;}
41   virtual void SetSFlag(Float_t value)       {fSFlag=value;}
42   virtual void SetPrimKinEn(Float_t value)   {fPrimKinEn=value;}
43   virtual void SetXImpact(Float_t value)     {fXImpact=value;}
44   virtual void SetYImpact(Float_t value)     {fYImpact=value;}
45   virtual void SetTrackTOF(Float_t value)    {fTrackTOF=value;}
46   virtual void SetTrackEta(Float_t value)    {fTrackEta=value;}
47
48   // Operators
49   Int_t operator == (AliZDCHit &quad){
50      Int_t i;
51      if(fTrack!=quad.GetTrack()) return 0;
52      for(i=0; i<2; i++) if(fVolume[i]!=quad.GetVolume(i)) return 0;
53      return 1;
54   }
55   
56   virtual AliZDCHit operator + (AliZDCHit &quad){
57      fLightPMQ += quad.GetLightPMQ();
58      fLightPMC += quad.GetLightPMC();
59      fEnergy += quad.GetEnergy();
60      return *this;
61   }
62
63   // Print method
64   void Print(Option_t *) const;
65
66 protected:
67   // Data members
68   Int_t   fVolume[2];     //Array of volumes
69   Float_t fPrimKinEn;     //Primary particle energy
70   Float_t fXImpact;       //x-coord. of the impact point over the ZDC
71   Float_t fYImpact;       //y-coord. of the impact point over the ZDC
72   Float_t fSFlag;         //Secondary flag
73   Float_t fLightPMQ;      //Cerenkov light produced in each quadrant
74   Float_t fLightPMC;      //Cerenkov light seen by the common PM
75   Float_t fEnergy;        //Total energy deposited in eV
76   Int_t   fPDGCode;       //PDG code of particle in the ZDC
77   Int_t   fMotherPDGCode; //PDG code of particle in the ZDC
78   Float_t fTrackTOF;      //Track time in ns
79   Float_t fTrackEta;      //Track eta
80
81   ClassDef(AliZDCHit,5)  // Hits for the Zero Degree Calorimeters
82 };
83  
84 #endif