]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fix in method BuildMaterialLUT: avoid trajectories normal to the z axis (Ruben)
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 31 Jul 2013 08:45:05 +0000 (08:45 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 31 Jul 2013 08:45:05 +0000 (08:45 +0000)
ITS/AliITStrackerMI.cxx

index 59ddfa12f2a4bfad7ae79c9dda5fddaf71fd7acd..b7d73309eae1a60234cb4962097a36d76ef496c2 100644 (file)
@@ -4269,7 +4269,7 @@ void AliITStrackerMI::BuildMaterialLUT(TString material) {
   } else {
     Error("BuildMaterialLUT","Wrong layer name\n");
   }
-
+  const double kAngEps = 1e-4; // tiny slope to avoid tracks strictly normal to Z axis
   for(Int_t imat=ifirst; imat<=ilast; imat++) {
     Double_t param[5]={0.,0.,0.,0.,0.};
     for (Int_t i=0; i<n; i++) {
@@ -4281,8 +4281,9 @@ void AliITStrackerMI::BuildMaterialLUT(TString material) {
       point1[2] = z;
       point2[0] = rmax[imat]*cosphi;
       point2[1] = rmax[imat]*sinphi;
-      point2[2] = z;
+      point2[2] = z+(rmax[imat]-rmin[imat])*kAngEps;
       AliTracker::MeanMaterialBudget(point1,point2,mparam);
+      if (mparam[1]>999) {n--; continue;}  // skip anomalous values in failed propagation
       for(Int_t j=0;j<5;j++) param[j]+=mparam[j];
     }
     for(Int_t j=0;j<5;j++) param[j]/=(Float_t)n;