]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added protections to avoid crashes with bad modules
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 14 Feb 2008 14:27:29 +0000 (14:27 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 14 Feb 2008 14:27:29 +0000 (14:27 +0000)
ITS/AliITSOnlineSDDInjectors.cxx

index 2871cc6bae8ffc406ca2ac4e6ba7a64a652a6d18..5c082dceae1ef8e8d6085733e88c5a911a19cc07 100644 (file)
@@ -248,7 +248,7 @@ void AliITSOnlineSDDInjectors::CalcDriftVelocity(Int_t jlin){
     ey[i]=fRMSCentroid[jlin][i];
   }
   for(Int_t i=0;i<3;i++){
-    if(fGoodInj[jlin][i]){
+    if(fGoodInj[jlin][i] && ey[i]!=0){
       sumY+=y[i]/ey[i]/ey[i];
       sumX+=fPosition[i]/ey[i]/ey[i];
       sumXX+=fPosition[i]*fPosition[i]/ey[i]/ey[i];
@@ -264,14 +264,18 @@ void AliITSOnlineSDDInjectors::CalcDriftVelocity(Int_t jlin){
   if(npt>1){ 
     Float_t slope=(sumWEI*sumXY-sumY*sumX)/(sumWEI*sumXX-sumX*sumX);
     Float_t eslope=TMath::Sqrt(sumWEI/(sumWEI*sumXX-sumX*sumX));
-    vel=1./slope*10000./25.;// micron/ns
-    evel=eslope/slope/slope*10000./25.;// micron/ns
+    if(slope!=0){
+      vel=1./slope*10000./25.;// micron/ns
+      evel=eslope/slope/slope*10000./25.;// micron/ns
+    }
   }
   if(npt==1){
     Float_t slope=(sumY-tzero)/sumX;
     Float_t eslope=erry/sumX;
-    vel=1./slope*10000./25.;// micron/ns    
-    evel=eslope/slope/slope*10000./25.;// micron/ns
+    if(slope!=0){
+      vel=1./slope*10000./25.;// micron/ns    
+      evel=eslope/slope/slope*10000./25.;// micron/ns
+    }
   }
   if(vel>fMaxDriftVel||vel<fMinDriftVel){ 
     vel=0.;