/* $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);
}