Important bugfix. Missing reset of the equipment header data. It was causing a wrong...
[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(AliZDCHit* oldhit) {*this=*oldhit;}
18   virtual ~AliZDCHit() {}
19
20   // Getters 
21   virtual Int_t   GetVolume(Int_t i) const {return fVolume[i];}
22   virtual Float_t GetPrimKinEn() const     {return fPrimKinEn;}
23   virtual Float_t GetXImpact() const       {return fXImpact;}
24   virtual Float_t GetYImpact() const       {return fYImpact;}
25   virtual Float_t GetSFlag() const         {return fSFlag;}
26   virtual Float_t GetLightPMQ() const      {return fLightPMQ;}
27   virtual Float_t GetLightPMC() const      {return fLightPMC;}
28   virtual Float_t GetEnergy() const        {return fEnergy;}
29
30   // Setters 
31   virtual void SetLightPMQ(Float_t value) {fLightPMQ=value;}
32   virtual void SetLightPMC(Float_t value) {fLightPMC=value;}
33   virtual void SetSFlag(Float_t value)    {fSFlag=value;}
34   virtual void SetPrimKinEn(Float_t value){fPrimKinEn=value;}
35   virtual void SetXImpact(Float_t value)  {fXImpact=value;}
36   virtual void SetYImpact(Float_t value)  {fYImpact=value;}
37
38   // Operators
39   Int_t operator == (AliZDCHit &quad) {
40      Int_t i;
41      if(fTrack!=quad.GetTrack()) return 0;
42      for(i=0; i<2; i++) if(fVolume[i]!=quad.GetVolume(i)) return 0;
43      return 1;
44   }
45   
46   virtual AliZDCHit& operator + (AliZDCHit &quad) {
47      fLightPMQ+=quad.GetLightPMQ();
48      fLightPMC+=quad.GetLightPMC();
49      fEnergy+=quad.GetEnergy();
50      return *this;
51   }
52
53   // Print method
54   void Print(Option_t *) const;
55
56 protected:
57   // Data members
58   Int_t      fVolume[2];    //Array of volumes
59   Float_t    fPrimKinEn;    //Primary particle energy
60   Float_t    fXImpact;      //x-coord. of the impact point over the ZDC
61   Float_t    fYImpact;      //y-coord. of the impact point over the ZDC
62   Float_t    fSFlag;        //Secondary flag
63   Float_t    fLightPMQ;     //Cerenkov light produced in each quadrant
64   Float_t    fLightPMC;     //Cerenkov light seen by the common PM
65   Float_t    fEnergy;       //Total energy deposited in eV
66  
67
68   ClassDef(AliZDCHit,1)  // Hits for the Zero Degree Calorimeters
69 };
70  
71 #endif