]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDltuParam.cxx
Fixing coverity 17819
[u/mrichter/AliRoot.git] / TRD / AliTRDltuParam.cxx
index bfa14cbdc7a48f9b6fbfadf83b5b97ff0074d793..8945b8f10c72c7643e5eb4cde70bde4ee1e93e3a 100644 (file)
@@ -28,7 +28,7 @@ Float_t AliTRDltuParam::fgLengthOuterPadC1[6] =
 Float_t AliTRDltuParam::fgLengthInnerPadC0 = 9.0;
 Float_t AliTRDltuParam::fgLengthOuterPadC0 = 8.0;
 Float_t AliTRDltuParam::fgScalePad = 256. * 32.;
-Float_t AliTRDltuParam::fgDriftLength = 3.e-2;
+Float_t AliTRDltuParam::fgDriftLength = 3.;
 
 AliTRDltuParam::AliTRDltuParam() :
   TObject(),
@@ -39,7 +39,8 @@ AliTRDltuParam::AliTRDltuParam() :
   fScaleQ0(0),
   fScaleQ1(0),
   fPidTracklengthCorr(kFALSE),
-  fTiltCorr(kFALSE)
+  fTiltCorr(kFALSE),
+  fPidGainCorr(kFALSE)
 {
 
 }
@@ -56,7 +57,7 @@ Int_t AliTRDltuParam::GetDyCorrection(Int_t det, Int_t rob, Int_t mcm) const
 
   Int_t layer = det % 6;
 
-  Float_t dyTilt = ( fgDriftLength * TMath::Tan(fgTiltingAngle[layer]) *
+  Float_t dyTilt = ( fgDriftLength * TMath::Tan(fgTiltingAngle[layer] * TMath::Pi()/180.) *
                     GetLocalZ(det, rob, mcm) / fgX[layer] );
 
   // calculate Lorentz correction
@@ -76,7 +77,7 @@ void AliTRDltuParam::GetDyRange(Int_t det, Int_t rob, Int_t mcm, Int_t ch,
   dyMinInt = fgDyMin;
   dyMaxInt = fgDyMax;
 
-  if (fMagField < 0.1)
+  if (TMath::Abs(fMagField) < 0.1)
     return;
 
   Float_t e = 0.30;
@@ -122,15 +123,18 @@ Float_t AliTRDltuParam::GetElongation(Int_t det, Int_t rob, Int_t mcm, Int_t ch)
 }
 
 void AliTRDltuParam::GetCorrectionFactors(Int_t det, Int_t rob, Int_t mcm, Int_t ch,
-                                         UInt_t &cor0, UInt_t &cor1) const
+                                         UInt_t &cor0, UInt_t &cor1, Float_t gain) const
 {
+  if (fPidGainCorr==kFALSE)
+    gain=1;
+
   if (fPidTracklengthCorr == kTRUE ) {
-    cor0 = Int_t ((1.0*fScaleQ0* (1./GetElongation(det, rob, mcm, ch)) ));
-    cor1 = Int_t ((1.0*fScaleQ1* (1./GetElongation(det, rob, mcm, ch)) ));
+    cor0 = UInt_t ((1.0*fScaleQ0* (1./GetElongation(det, rob, mcm, ch))) / gain );
+    cor1 = UInt_t ((1.0*fScaleQ1* (1./GetElongation(det, rob, mcm, ch))) / gain );
   }
   else {
-    cor0 = fScaleQ0;
-    cor1 = fScaleQ1;
+    cor0 = UInt_t (fScaleQ0 / gain);
+    cor1 = UInt_t ( fScaleQ1 / gain);
   }
 }
 
@@ -149,7 +153,7 @@ Float_t AliTRDltuParam::GetLocalY(Int_t det, Int_t rob, Int_t mcm, Int_t ch) con
 {
   Int_t layer = det%6;
   // calculate the pad position as in the TRAP
-  Float_t ypos = (-4 + (rob&0x1) * 4 + (mcm&0x3)) * 18 - ch - 0.5; // y position in bins of pad widths
+  Float_t ypos = (-4 + 1 + (rob&0x1) * 4 + (mcm&0x3)) * 18 - ch - 0.5; // y position in bins of pad widths
   return ypos*fgWidthPad[layer];
 }