]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliZDCHit.h
ALIROOT-5420 Changes for CDH v3
[u/mrichter/AliRoot.git] / ZDC / AliZDCHit.h
index 3203dc5801caff73e93babfe95ae328b16c57ed7..74eeca3575180139a8482a4c360aea546f5d0cc5 100644 (file)
 class AliZDCHit : public AliHit {
 
 public:
-  AliZDCHit() {}
+  AliZDCHit();
   AliZDCHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits);
-  AliZDCHit(AliZDCHit* oldhit) {*this=*oldhit;}
+  AliZDCHit(const AliZDCHit &oldhit);
+  AliZDCHit& operator= (const AliZDCHit &hit);
   virtual ~AliZDCHit() {}
 
   // Getters 
-  virtual Int_t   GetVolume(Int_t i) {return fVolume[i];}
-  virtual Float_t GetLightPMQ() {return fLightPMQ;}
-  virtual Float_t GetLightPMC() {return fLightPMC;}
-  virtual Float_t GetEnergy() {return fEnergy;}
+  virtual Int_t   GetVolume(Int_t i) const {return fVolume[i];}
+  virtual Int_t   GetPDGCode() const      {return fPDGCode;}
+  virtual Int_t   GetMotherPDGCode() const {return fMotherPDGCode;}
+  virtual Float_t GetPrimKinEn() const     {return fPrimKinEn;}
+  virtual Float_t GetXImpact() const       {return fXImpact;}
+  virtual Float_t GetYImpact() const       {return fYImpact;}
+  virtual Float_t GetSFlag() const         {return fSFlag;}
+  virtual Float_t GetLightPMQ() const      {return fLightPMQ;}
+  virtual Float_t GetLightPMC() const      {return fLightPMC;}
+  virtual Float_t GetEnergy() const        {return fEnergy;}
+  virtual Float_t GetTrackTOF() const      {return fTrackTOF;}
+  virtual Float_t GetTrackEta() const      {return fTrackEta;}
 
-
-  // Data members
-  Int_t      fVolume[2];    //Array of volumes
-  Float_t    fX;           //X-coord. in the hall RS
-  Float_t    fY;           //Y-coord. in the hall RS
-  Float_t    fZ;           //Z-coord. in the hall RS
-  Float_t    fPrimKinEn;    //Primary particle energy
-  Float_t    fXImpact;      //x-coord. of the impact point over the ZDC
-  Float_t    fYImpact;      //y-coord. of the impact point over the ZDC
-  Float_t    fSFlag;        //Secondary flag
-  Float_t    fLightPMQ;     //Cerenkov light produced in each quadrant
-  Float_t    fLightPMC;     //Cerenkov light seen by the common PM
-  Float_t    fEnergy;       //Total energy deposited in eV
+  // Setters 
+  virtual void SetVolume(Int_t i, Int_t val) {fVolume[i]=val;} 
+  virtual void SetPDGCode(Int_t code)        {fPDGCode=code;}
+  virtual void SetMotherPDGCode(Int_t code)  {fPDGCode=code;}
+  virtual void SetLightPMQ(Float_t value)    {fLightPMQ=value;}
+  virtual void SetLightPMC(Float_t value)    {fLightPMC=value;}
+  virtual void SetSFlag(Float_t value)       {fSFlag=value;}
+  virtual void SetPrimKinEn(Float_t value)   {fPrimKinEn=value;}
+  virtual void SetXImpact(Float_t value)     {fXImpact=value;}
+  virtual void SetYImpact(Float_t value)     {fYImpact=value;}
+  virtual void SetTrackTOF(Float_t value)    {fTrackTOF=value;}
+  virtual void SetTrackEta(Float_t value)    {fTrackEta=value;}
 
   // Operators
-  Int_t operator == (AliZDCHit &quad) {
+  Int_t operator == (AliZDCHit &quad){
      Int_t i;
-//      Superfluo finche' c'e' shunt = 1 !?!?
-//     if(fTrack!=quad.GetTrack()) return 0;
+     if(fTrack!=quad.GetTrack()) return 0;
      for(i=0; i<2; i++) if(fVolume[i]!=quad.GetVolume(i)) return 0;
      return 1;
   }
   
-  virtual AliZDCHit& operator + (AliZDCHit &quad) {
-     fLightPMQ+=quad.GetLightPMQ();
-     fLightPMC+=quad.GetLightPMC();
-     fEnergy+=quad.GetEnergy();
+  virtual AliZDCHit operator + (AliZDCHit &quad){
+     fLightPMQ += quad.GetLightPMQ();
+     fLightPMC += quad.GetLightPMC();
+     fEnergy += quad.GetEnergy();
      return *this;
   }
 
   // Print method
-  virtual void Print(Option_t *) {
-     printf(" -> HIT: vol[0] =  %d vol[1] =  %d Track: %d \n" 
-            "  Primary E = %f, Ximpact = %f, Yimpact = %f, SFlag = %f\n"
-           "  PMQLight = %f, PMCLight = %f,  Deposited E = %f\n ", 
-           fVolume[0],fVolume[1],fTrack,fPrimKinEn,fXImpact,fYImpact,
-           fSFlag,fLightPMQ,fLightPMC,fEnergy);
-  }
+  void Print(Option_t *) const;
+
+protected:
+  // Data members
+  Int_t   fVolume[2];    //Array of volumes
+  Float_t fPrimKinEn;    //Primary particle energy
+  Float_t fXImpact;      //x-coord. of the impact point over the ZDC
+  Float_t fYImpact;      //y-coord. of the impact point over the ZDC
+  Float_t fSFlag;        //Secondary flag
+  Float_t fLightPMQ;     //Cerenkov light produced in each quadrant
+  Float_t fLightPMC;     //Cerenkov light seen by the common PM
+  Float_t fEnergy;       //Total energy deposited in eV
+  Int_t   fPDGCode;      //PDG code of particle in the ZDC
+  Int_t   fMotherPDGCode; //PDG code of particle in the ZDC
+  Float_t fTrackTOF;     //Track time in ns
+  Float_t fTrackEta;     //Track eta
 
-  ClassDef(AliZDCHit,1)  // Hits for the Zero Degree Calorimeters
+  ClassDef(AliZDCHit,5)  // Hits for the Zero Degree Calorimeters
 };
  
 #endif