X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=ZDC%2FAliZDCv3.cxx;h=2565e0e58c625be39631d707c4de183f92f76494;hp=a986bd2b2402a90fd70478405865301845a66fc6;hb=3e42c3a747530d8225c5935d0d15dc4074a3a424;hpb=fea9b33464c97e5e4e064b4cea5e8995cb8cb7e6 diff --git a/ZDC/AliZDCv3.cxx b/ZDC/AliZDCv3.cxx index a986bd2b240..2565e0e58c6 100644 --- a/ZDC/AliZDCv3.cxx +++ b/ZDC/AliZDCv3.cxx @@ -2128,6 +2128,13 @@ void AliZDCv3::Init() gMC->Gstpar(idtmed[i], "CUTNEU", 1.); gMC->Gstpar(idtmed[i], "CUTHAD", 1.); + // Thresholds for showering in the luminometer + i = 9; //copper + gMC->Gstpar(idtmed[i], "CUTGAM", .001); + gMC->Gstpar(idtmed[i], "CUTELE", .001); + gMC->Gstpar(idtmed[i], "CUTNEU", .01); + gMC->Gstpar(idtmed[i], "CUTHAD", .01); + // Avoid too detailed showering along the beam line i = 7; //iron with energy loss (ZIRON) gMC->Gstpar(idtmed[i], "CUTGAM", .1); @@ -2231,12 +2238,17 @@ void AliZDCv3::InitTables() return; } + int read=1; for(k=0; k return @@ -2327,7 +2343,7 @@ void AliZDCv3::StepManager() //printf("\t Particle: mass = %1.3f, E = %1.3f GeV, pz = %1.2f GeV -> stopped in volume %s\n", // gMC->TrackMass(), p[3], p[2], gMC->CurrentVolName()); // - if(ipr!=0){ + /*if(ipr!=0){ printf("\n\t **********************************\n"); printf("\t ********** Side C **********\n"); printf("\t # of spectators in IT = %d\n",fpLostITC); @@ -2337,7 +2353,7 @@ void AliZDCv3::StepManager() printf("\t # of spectators in D1 = %d\n",fpLostD1A); printf("\t # of spectators in TDI = %d\n",fpLostTDI); printf("\t **********************************\n"); - } + }*/ gMC->StopTrack(); } return; @@ -2453,80 +2469,80 @@ void AliZDCv3::StepManager() //printf("\t *** det %d vol %d xdet(%f, %f)\n",vol[0], vol[1], xdet[0], xdet[1]); - // Store impact point and kinetic energy of the ENTERING particle + // Store impact point and kinetic energy of the ENTERING particle - if(gMC->IsTrackEntering()){ - //Particle energy - gMC->TrackMomentum(p[0],p[1],p[2],p[3]); - hits[3] = p[3]; - // Impact point on ZDC - // X takes into account the LHC x-axis sign - // which is opposite to positive x on detcetor front face - // for side A detectors (ZNA and ZPA) - if(vol[0]==4 || vol[0]==5) hits[4] = -xdet[0]; - else hits[4] = xdet[0]; - hits[5] = xdet[1]; - hits[6] = 0; - hits[7] = 0; - hits[8] = 0; - hits[9] = 0; - // - Int_t curTrackN = gAlice->GetMCApp()->GetCurrentTrackNumber(); - 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){ - //printf("\t VolName %s -> det %d quad %d - x = %f, y = %f, z = %f\n", - //knamed, vol[0], vol[1], x[0], x[1], x[2]); - if(vol[0]==1){ - fnDetectedC += 1; - printf(" # of particles in ZNC = %d\n\n",fnDetectedC); - } - else if(vol[0]==2){ - fpDetectedC += 1; - printf(" # of particles in ZPC = %d\n\n",fpDetectedC); - } - else if(vol[0]==4){ - fnDetectedA += 1; - printf(" # of particles in ZNA = %d\n\n",fnDetectedA); - } - else if(vol[0]==5){ - fpDetectedA += 1; - printf(" # of particles in ZPA = %d\n\n",fpDetectedA); - } - // - //printf("\t Particle: mass = %1.3f, E = %1.3f GeV, pz = %1.2f GeV -> stopped in volume %s\n", - // gMC->TrackMass(), p[3], p[2], gMC->CurrentVolName()); - // - gMC->StopTrack(); - return; - } + if(gMC->IsTrackEntering()){ + //Particle energy + gMC->TrackMomentum(p[0],p[1],p[2],p[3]); + hits[3] = p[3]; + // Impact point on ZDC + // X takes into account the LHC x-axis sign + // which is opposite to positive x on detcetor front face + // for side A detectors (ZNA and ZPA) + if(vol[0]==4 || vol[0]==5){ + hits[4] = -xdet[0]; } - - // Charged particles -> Energy loss - if((destep=gMC->Edep())){ - if(gMC->IsTrackStop()){ - gMC->TrackMomentum(p[0],p[1],p[2],p[3]); - m = gMC->TrackMass(); - ekin = p[3]-m; - hits[9] = ekin; - hits[7] = 0.; - hits[8] = 0.; - AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hits); - } - else{ - hits[9] = destep; - hits[7] = 0.; - hits[8] = 0.; - AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hits); - } + else{ + hits[4] = xdet[0]; } + hits[5] = xdet[1]; + hits[6] = 0; + hits[7] = 0; + hits[8] = 0; + hits[9] = 0; + // + Int_t curTrackN = gAlice->GetMCApp()->GetCurrentTrackNumber(); + TParticle *part = gAlice->GetMCApp()->Particle(curTrackN); + hits[10] = part->GetPdgCode(); + //printf("\t PDGCode = %d\n", part->GetPdgCode()); + // + Int_t imo = part->GetFirstMother(); + if(imo>0){ + TParticle * pmot = gAlice->GetMCApp()->Particle(imo); + hits[11] = pmot->GetPdgCode(); + } + else hits[11]=0; + // + hits[12] = 1.0e09*gMC->TrackTime(); // in ns! + //printf("\t TrackTime = %f\n", hits[12]); + + AddHit(curTrackN, vol, hits); + + if(fNoShower==1){ + //printf("\t VolName %s -> det %d quad %d - x = %f, y = %f, z = %f\n", + //knamed, vol[0], vol[1], x[0], x[1], x[2]); + if(vol[0]==1){ + fnDetectedC += 1; + printf(" # of particles in ZNC = %d\n\n",fnDetectedC); + } + else if(vol[0]==2){ + fpDetectedC += 1; + printf(" # of particles in ZPC = %d\n\n",fpDetectedC); + } + else if(vol[0]==4){ + fnDetectedA += 1; + printf(" # of particles in ZNA = %d\n\n",fnDetectedA); + } + else if(vol[0]==5){ + fpDetectedA += 1; + printf(" # of particles in ZPA = %d\n\n",fpDetectedA); + } + // + //printf("\t Particle: mass = %1.3f, E = %1.3f GeV, pz = %1.2f GeV -> stopped in volume %s\n", + // gMC->TrackMass(), p[3], p[2], gMC->CurrentVolName()); + // + gMC->StopTrack(); + return; + } + } + + // Particle energy loss + if(gMC->Edep() != 0){ + hits[9] = gMC->Edep(); + hits[7] = 0.; + hits[8] = 0.; + AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hits); + } }