// Create the beam line elements
//
- Double_t zd1, zd2, zCorrDip, zInnTrip, zD1, zD2;
+ Double_t zd1, zd2, zCorrDip, zInnTrip, zD1;
Double_t conpar[9], tubpar[3], tubspar[5], boxpar[3];
//-- rotation matrices for the legs
// 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[13], x[3], xdet[3]={999.,999.,999.}, um[3], ud[3];
+ Float_t hits[14], x[3], xdet[3]={999.,999.,999.}, um[3], ud[3];
Float_t destep=0., be=0., out=0.;
Double_t s[3], p[4];
const char *knamed;
//
- for(j=0;j<13;j++) hits[j]=-999.;
+ for(j=0;j<14;j++) hits[j]=-999.;
//
// --- This part is for no shower developement in beam pipe, TDI, VColl
// If particle interacts with beam pipe, TDI, VColl -> return
Int_t curTrackN = gAlice->GetMCApp()->GetCurrentTrackNumber();
TParticle *part = gAlice->GetMCApp()->Particle(curTrackN);
hits[10] = part->GetPdgCode();
- //printf("\t PDGCode = %d\n", part->GetPdgCode());
+ //if(part->GetPdgCode()>10000) printf("\t PDGCode = %d\n", part->GetPdgCode());
//
Int_t imo = part->GetFirstMother();
if(imo>0){
- TParticle * pmot = gAlice->GetMCApp()->Particle(imo);
+ TParticle *pmot = gAlice->GetMCApp()->Particle(imo);
hits[11] = pmot->GetPdgCode();
+ hits[13] = pmot->Eta();
+ }
+ else{
+ hits[11] = 0;
+ hits[13] = part->Eta();
}
- else hits[11]=0;
//
hits[12] = 1.0e09*gMC->TrackTime(); // in ns!
- //printf("\t TrackTime = %f\n", hits[12]);
AddHit(curTrackN, vol, hits);
ibe = Int_t(be*1000.+1);
//Looking into the light tables
- Float_t charge = gMC->TrackCharge();
+ Float_t charge = 0.;
+ Int_t curTrackN = gAlice->GetMCApp()->GetCurrentTrackNumber();
+ TParticle *part = gAlice->GetMCApp()->Particle(curTrackN);
+ Int_t pdgCode = part->GetPdgCode();
+ if(pdgCode<10000) charge = gMC->TrackCharge();
+ else{
+ float z = (pdgCode/10000-100000);
+ charge = TMath::Abs(z);
+ //printf(" PDG %d charge %f\n",pdgCode,charge);
+ }
if(vol[0]==1 || vol[0]==4) { // (1) ZN fibres
if(ibe>fNben) ibe=fNben;