Adding possibility to use custom Gain map for dEdx calculation (Marian)
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Jun 2008 17:02:40 +0000 (17:02 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Jun 2008 17:02:40 +0000 (17:02 +0000)
TPC/AliTPCseed.cxx
TPC/AliTPCseed.h

index 5832619..68a33f9 100644 (file)
 #include "AliTPCseed.h"
 #include "AliTPCReconstructor.h"
 #include "AliTPCClusterParam.h"
+#include "AliTPCCalPad.h"
+#include "AliTPCCalROC.h"
+
+
 
 ClassImp(AliTPCseed)
 
@@ -1029,7 +1033,7 @@ Bool_t AliTPCseed::GetSharedMapBit(int ibit)
 
 
 
-Float_t  AliTPCseed::CookdEdxNorm(Double_t low, Double_t up, Int_t type, Int_t i1, Int_t i2){
+Float_t  AliTPCseed::CookdEdxNorm(Double_t low, Double_t up, Int_t type, Int_t i1, Int_t i2, AliTPCCalPad * gainMap){
  
   //
   // calculates dedx using the cluster
@@ -1050,11 +1054,19 @@ Float_t  AliTPCseed::CookdEdxNorm(Double_t low, Double_t up, Int_t type, Int_t i
   const Float_t ktany = TMath::Tan(TMath::DegToRad()*10);
   const Float_t kedgey =4.;
   //
+  Float_t globalMeanGain = 0;
+  if (gainMap) globalMeanGain = gainMap->GetMean(0);
+  //
   for (Int_t irow=i1; irow<i2; irow++){
     AliTPCclusterMI* cluster = GetClusterPointer(irow);
     if (!cluster) continue;
     if (TMath::Abs(cluster->GetY())>cluster->GetX()*ktany-kedgey) continue; // edge cluster
     Float_t charge= (type%2)? cluster->GetMax():cluster->GetQ();
+    if (gainMap) {
+     AliTPCCalROC * roc = gainMap->GetCalROC(cluster->GetDetector());
+     Float_t factor = roc->GetValue(irow, TMath::Nint(cluster->GetPad()));
+     if (globalMeanGain != 0) charge *= factor/globalMeanGain;
+    }
     //do normalization
     Float_t corr=1;
     Int_t  ipad= 0;
index 5135a09..8762ba7 100644 (file)
@@ -25,7 +25,8 @@ class AliTPCParam;
 class AliTPCseed;
 class AliTPCclusterMI;
 class AliTPCTrackerPoint;
-class AliESD;   
+class AliESD;
+class AliTPCCalPad;
 class TClonesArray;
 
 class AliTPCseed : public AliTPCtrack {
@@ -136,7 +137,7 @@ class AliTPCseed : public AliTPCtrack {
      const TBits& GetClusterMap() const { return fClusterMap; };
      const TBits& GetSharedMap() const { return fSharedMap; };
 
-     Float_t  CookdEdxNorm(Double_t low=0.05, Double_t up=0.70, Int_t type=0, Int_t i1=0, Int_t i2=159);
+     Float_t  CookdEdxNorm(Double_t low=0.05, Double_t up=0.70, Int_t type=0, Int_t i1=0, Int_t i2=159, AliTPCCalPad * gainMap = 0);
 
  private:
      //     AliTPCseed & operator = (const AliTPCseed &)