]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliZDCHit.cxx
do not keep digits with null energy, speed up in case of 2 maxima clusters with...
[u/mrichter/AliRoot.git] / ZDC / AliZDCHit.cxx
index fc16462be23bb046e480bc60604be9775c47dfb1..197842498672792d138de5cdf3def7cb058720cf 100644 (file)
 
 /* $Id$ */
 
+// **************************************************************
 //
-////////////////////////////////////////////////
-//  Hits classes for set ZDC                  //
-////////////////////////////////////////////////
+//             Hits classes for ZDC                  
 //
+// **************************************************************
 
 #include "AliZDCHit.h"
 
 ClassImp(AliZDCHit)
   
 //_____________________________________________________________________________
-AliZDCHit::AliZDCHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits):
-  AliHit(shunt, track)
+AliZDCHit::AliZDCHit() :
+//  AliHit(shunt, track),
+  fPrimKinEn(0.),
+  fXImpact(0.),
+  fYImpact(0.),
+  fSFlag(0),
+  fLightPMQ(0.),
+  fLightPMC(0.),
+  fEnergy(0.), 
+  fPDGCode(0),
+  fMotherPDGCode(0),
+  fTrackTOF(0.)
+
+{
+  //
+  // Default constructor
+  //
+  for(Int_t i=0; i<2; i++) fVolume[i] = 0;
+}
+
+//_____________________________________________________________________________
+AliZDCHit::AliZDCHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits) :
+  AliHit(shunt, track),
+  fPrimKinEn(hits[3]),
+  fXImpact(hits[4]),
+  fYImpact(hits[5]),
+  fSFlag(hits[6]),
+  fLightPMQ(hits[7]),
+  fLightPMC(hits[8]),
+  fEnergy(hits[9]), 
+  fPDGCode((Int_t) hits[10]),
+  fMotherPDGCode((Int_t) hits[11]),
+  fTrackTOF(hits[12])
+
 {
   //
-  // Add a ZDC hit
+  // Standard constructor
   //
   Int_t i;
-  for(i=0; i<2; i++) {
-     fVolume[i] = vol[i];
-  }
+  for(i=0; i<2; i++) fVolume[i] = vol[i];
   fX           = hits[0];
   fY           = hits[1];
   fZ           = hits[2];
-  fPrimKinEn   = hits[3];
-  fXImpact     = hits[4];
-  fYImpact     = hits[5];
-  fSFlag       = hits[6];
-  fLightPMQ    = hits[7];
-  fLightPMC    = hits[8];
-  fEnergy      = hits[9]; 
+}
   
+//_____________________________________________________________________________
+AliZDCHit::AliZDCHit(const AliZDCHit &oldhit) :
+  AliHit(0,oldhit.GetTrack()),
+  fPrimKinEn(oldhit.GetPrimKinEn()),
+  fXImpact(oldhit.GetXImpact()),  
+  fYImpact(oldhit.GetYImpact()),  
+  fSFlag(oldhit.GetSFlag()),
+  fLightPMQ(oldhit.GetLightPMQ()), 
+  fLightPMC(oldhit.GetLightPMC()),
+  fEnergy(oldhit.GetEnergy()),
+  fPDGCode(oldhit.GetPDGCode()),
+  fMotherPDGCode(oldhit.GetMotherPDGCode()),
+  fTrackTOF(oldhit.GetTrackTOF())
+{
+  // Copy constructor
+  fX = oldhit.X();
+  fY = oldhit.Y();
+  fZ = oldhit.Z();
+  for(Int_t i=0; i<2; i++) fVolume[i] = oldhit.GetVolume(i);
+}
+
+//_____________________________________________________________________________
+AliZDCHit &AliZDCHit::operator= (const AliZDCHit &hit) 
+{
+  //assignemnt operator
+  if(&hit == this) return *this;
+  
+  fPrimKinEn = hit.GetPrimKinEn();
+  fXImpact = hit.GetXImpact();
+  fYImpact = hit.GetYImpact();  
+  fSFlag = hit.GetSFlag();
+  fLightPMQ = hit.GetLightPMQ(); 
+  fLightPMC = hit.GetLightPMC();
+  fEnergy = hit.GetEnergy();
+  fPDGCode = hit.GetPDGCode();
+  fMotherPDGCode = hit.GetMotherPDGCode();
+  fTrackTOF = hit.GetTrackTOF();
+
+  fX = hit.X();
+  fY = hit.Y();
+  fZ = hit.Z();
+  for(Int_t i=0; i<2; i++) fVolume[i] = hit.GetVolume(i);
+  
+  return *this;
+}
+  
+  
+//_____________________________________________________________________________
+void AliZDCHit::Print(Option_t *) const 
+{
+   // Print method
+   printf("\t AliZDCHit: track %d PDGcode %d TOF %1.1f ns E_prim = %1.2f GeV SFlag = %1.0f\n" 
+         "\t DETECTOR (%d, %d)  (X, Y)_impact (%f, %f) cm\n"
+          "\t PMQLight %1.0f, PMCLight %1.0f,  E_dep %1.2f\n ", 
+          fTrack,fPDGCode,fTrackTOF,fPrimKinEn,fSFlag,
+         fVolume[0],fVolume[1],fXImpact,fYImpact,
+          fLightPMQ,fLightPMC,fEnergy);
 }