]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliZDCv4.cxx
fix energy cut in cell histograms
[u/mrichter/AliRoot.git] / ZDC / AliZDCv4.cxx
index 2623e6c88d35df08237247ec334830da5f58c9a7..7ffa1b23a428f6b97333b0455e6e569d707d903d 100644 (file)
@@ -230,7 +230,7 @@ void AliZDCv4::CreateBeamLine()
   // 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
@@ -2254,12 +2254,12 @@ void AliZDCv4::StepManager()
   // 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
@@ -2455,17 +2455,20 @@ void AliZDCv4::StepManager()
       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);
 
@@ -2553,7 +2556,16 @@ void AliZDCv4::StepManager()
        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;