//
// Add a ZDC hit to the hit list.
- static Float_t primKinEn=0., xImpact=0., yImpact=0., sFlag=0.;
+ static Float_t trackTime=0., primKinEn=0., xImpact=0., yImpact=0., sFlag=0.;
static Int_t pcPDGcode;
AliZDCHit *newquad, *curprimquad;
xImpact = newquad->GetXImpact();
yImpact = newquad->GetYImpact();
pcPDGcode = newquad->GetPDGCode();
+ trackTime = newquad->GetTrackTOF();
}
else{
newquad->SetPrimKinEn(primKinEn);
newquad->SetYImpact(yImpact);
newquad->SetSFlag(sFlag);
newquad->SetPDGCode(pcPDGcode);
+ newquad->SetTrackTOF(trackTime);
}
Int_t j;
fLightPMQ(0.),
fLightPMC(0.),
fEnergy(0.),
- fPDGCode(0)
+ fPDGCode(0),
+ fTrackTOF(0.)
{
//
fLightPMQ(hits[7]),
fLightPMC(hits[8]),
fEnergy(hits[9]),
- fPDGCode((Int_t) hits[10])
+ fPDGCode((Int_t) hits[10]),
+ fTrackTOF(hits[11])
{
//
fLightPMQ(oldhit.GetLightPMQ()),
fLightPMC(oldhit.GetLightPMC()),
fEnergy(oldhit.GetEnergy()),
- fPDGCode(oldhit.GetPDGCode())
+ fPDGCode(oldhit.GetPDGCode()),
+ fTrackTOF(oldhit.GetTrackTOF())
{
// Copy constructor
fX = oldhit.X();
void AliZDCHit::Print(Option_t *) const
{
// Print method
- printf("\t ZDC HIT: det = %d tow = %d track %d pcPDGcode %d\n"
- "\t Primary E = %f, Ximpact = %f, Yimpact = %f, SFlag = %f\n"
- "\t PMQLight = %f, PMCLight = %f, Deposited E = %f\n ",
- fVolume[0],fVolume[1],fTrack,fPDGCode,fPrimKinEn,fXImpact,fYImpact,
- fSFlag,fLightPMQ,fLightPMC,fEnergy);
+ printf("\t AliZDCHit: track %d PDGcode %d TOF %f ns E_prim = %f GeV SFlag = %1.0f\n"
+ "\t det = %d tow = %d (X, Y)impact (%f, %f) cm\n"
+ "\t PMQLight %1.0f, PMCLight %1.0f, E_dep %f\n ",
+ fTrack,fPDGCode,fTrackTOF,fPrimKinEn,fSFlag,
+ fVolume[0],fVolume[1],fXImpact,fYImpact,
+ fLightPMQ,fLightPMC,fEnergy);
}
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;}
// Setters
virtual void SetVolume(Int_t i, Int_t val) {fVolume[i]=val;}
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;}
// Operators
Int_t operator == (AliZDCHit &quad){
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 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
+ Float_t fTrackTOF; //Track time
- ClassDef(AliZDCHit,2) // Hits for the Zero Degree Calorimeters
+ ClassDef(AliZDCHit,3) // Hits for the Zero Degree Calorimeters
};
#endif
// Routine called at every step in the Zero Degree Calorimeters
//
Int_t j, vol[2]={0,0}, ibeta=0, ialfa=0, ibe=0, nphe=0;
- Float_t hits[11], x[3], xdet[3], um[3], ud[3];
+ Float_t hits[12], x[3], xdet[3], um[3], ud[3];
Float_t m=0., ekin=0., destep=0., be=0., out=0.;
// Parametrization for light guide uniformity
// NEW!!! Light guide tilted @ 51 degrees
Double_t s[3], p[3];
const char *knamed;
//
- for(j=0;j<11;j++) hits[j]=-999.;
+ for(j=0;j<12;j++) hits[j]=-999.;
//
// --- This part is for no shower developement in beam pipe and TDI
// If particle interacts with beam pipe or TDI -> return
TParticle *part = (gAlice->GetMCApp())->Particle(curTrackN);
hits[10] = part->GetPdgCode();
//printf("\t PDGCode = %d\n", part->GetPdgCode());
-
+ //
+ hits[11] = 1.0e09*gMC->TrackTime();
+ //printf("\t TrackTime = %f\n", hits[11]);
+
AddHit(curTrackN, vol, hits);
if(fNoShower==1){