]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCTempMap.cxx
Removing obsolete macros
[u/mrichter/AliRoot.git] / TPC / AliTPCTempMap.cxx
index cafcfed20cf26345d920ad7d33db09427eafd9c3..e3e32b5cbb78f0c9aa61d37fe0d6effc12d0c95d 100644 (file)
@@ -21,6 +21,8 @@
 //                                                                           //
 //  Authors: Stefan Rossegger, Haavard Helstrup                              //
 //                                                                           //
+//  Note: Obvioulsy some changes by Marian, but when ???                     //
+//                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "AliTPCSensorTempArray.h"
@@ -121,7 +123,7 @@ Double_t AliTPCTempMap::GetTempGradientY(UInt_t timeSec, Int_t side){
      x[1]=entry->GetX();
      x[2]=entry->GetY();    
      Double_t y = fTempArray->GetValue(timeSec,isensor); // get temperature value
-     fitter->AddPoint(x,y,1); // add values to LinearFitter
+     if (IsOK(y)) fitter->AddPoint(x,y,1); // add values to LinearFitter
      i++;
    }
 
@@ -165,9 +167,9 @@ TLinearFitter *AliTPCTempMap::GetLinearFitter(Int_t type, Int_t side, UInt_t tim
   // 
 
   TLinearFitter *fitter = new TLinearFitter(3);
-  Double_t *x = new Double_t[3];
+  Double_t x[3]={0};
   Double_t y = 0;
-  const Float_t kMinT=10, kMaxT =30, kMaxDelta=0.5;
+  const Float_t kMaxDelta=0.5;
   
   if (type == 1 || type == 2 || type == 4) {
     fitter->SetFormula("x0++x1++TMath::Sin(x2)"); // returns Z,Y gradient
@@ -183,7 +185,7 @@ TLinearFitter *AliTPCTempMap::GetLinearFitter(Int_t type, Int_t side, UInt_t tim
     AliTPCSensorTemp *entry = (AliTPCSensorTemp*)fTempArray->GetSensorNum(isensor);
     if (entry->GetType()==type && entry->GetSide()==side){
       Float_t temperature= fTempArray->GetValue(timeSec,isensor); // get temperature value
-      if (temperature>kMinT && temperature<kMaxT) {temps[i]=temperature; i++;}
+      if (IsOK(temperature)) {temps[i]=temperature; i++;}
     }
   }
   Float_t medianTemp = TMath::Median(i, temps);
@@ -202,7 +204,7 @@ TLinearFitter *AliTPCTempMap::GetLinearFitter(Int_t type, Int_t side, UInt_t tim
        x[2]=entry->GetY();    
        y = fTempArray->GetValue(timeSec,isensor); // get temperature value
        if (TMath::Abs(y-medianTemp)>kMaxDelta+4.*rmsTemp) continue;
-       fitter->AddPoint(x,y,1); // add values to LinearFitter
+       if (IsOK(y)) fitter->AddPoint(x,y,1); // add values to LinearFitter
        i++;
       }
     } else if (type==2) { // in case of IFC also usage of TS values
@@ -212,7 +214,7 @@ TLinearFitter *AliTPCTempMap::GetLinearFitter(Int_t type, Int_t side, UInt_t tim
        x[2]=entry->GetPhi();    
        y = fTempArray->GetValue(timeSec,isensor);
        if (TMath::Abs(y-medianTemp)>kMaxDelta+4.*rmsTemp) continue;
-       fitter->AddPoint(x,y,1); 
+       if (IsOK(y)) fitter->AddPoint(x,y,1); 
        i++;
       }
     } else if (type==1){
@@ -222,7 +224,7 @@ TLinearFitter *AliTPCTempMap::GetLinearFitter(Int_t type, Int_t side, UInt_t tim
        x[2]=entry->GetPhi();    
        y = fTempArray->GetValue(timeSec,isensor);
        if (TMath::Abs(y-medianTemp)>kMaxDelta+4.*rmsTemp) continue;
-       fitter->AddPoint(x,y,1);
+       if (IsOK(y)) fitter->AddPoint(x,y,1);
        i++;    
       }
     } else if (type==4) { // ONLY IFC
@@ -232,7 +234,7 @@ TLinearFitter *AliTPCTempMap::GetLinearFitter(Int_t type, Int_t side, UInt_t tim
        x[2]=entry->GetPhi();    
        y = fTempArray->GetValue(timeSec,isensor);
        if (TMath::Abs(y-medianTemp)>kMaxDelta+4.*rmsTemp) continue;
-       fitter->AddPoint(x,y,1); 
+       if (IsOK(y)) fitter->AddPoint(x,y,1); 
        i++;
       }
     }
@@ -240,7 +242,6 @@ TLinearFitter *AliTPCTempMap::GetLinearFitter(Int_t type, Int_t side, UInt_t tim
   fitter->Eval();
   //fitter->EvalRobust(0.9); // Evaluates fitter
   
-  delete [] x;
 
   return fitter; 
 
@@ -424,8 +425,8 @@ Double_t AliTPCTempMap::GetTemperature(Double_t x, Double_t y, Double_t z, UInt_
   //
   
   TVectorD paramA(3), paramC(3);
-  TLinearFitter *fitterA = new TLinearFitter(3);
-  TLinearFitter *fitterC = new TLinearFitter(3);
+  TLinearFitter *fitterA = 0;
+  TLinearFitter *fitterC = 0;
 
   fitterA = GetLinearFitter(3, 0, timeSec);
   fitterA->GetParameters(paramA);
@@ -438,10 +439,19 @@ Double_t AliTPCTempMap::GetTemperature(Double_t x, Double_t y, Double_t z, UInt_
   Double_t k = (fvalA-fvalC)/(2*247);
   Double_t tempValue = fvalC+(fvalA-fvalC)/2+k*z;
 
-  fitterA->~TLinearFitter();
-  fitterC->~TLinearFitter();
+  delete fitterA;
+  delete fitterC;
 
   return tempValue;
 
 }
 
+
+Bool_t  AliTPCTempMap::IsOK(Float_t value){
+  //
+  // checks if value is within a certain range
+  //
+  const Float_t kMinT=15;
+  const Float_t kMaxT=25;
+  return (value>kMinT && value<kMaxT);
+}