]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCClusterParam.h
fixing warnings (Federico C.)
[u/mrichter/AliRoot.git] / TPC / AliTPCClusterParam.h
index 6608f82846faad3ed9e8a438b0360605964e22bd..07a66a711012a4635b1560e53049b14d80feb38a 100644 (file)
 
 #include <TObject.h>
 #include <TVectorD.h>
+#include <TMatrixD.h>
 
 class TTree;
 class TObjArray;
+class TH1;
 //_____________________________________________________________________________
 class AliTPCClusterParam : public TObject {
  public:
@@ -34,13 +36,21 @@ class AliTPCClusterParam : public TObject {
   void FitResol(TTree * tree);
   void FitRMS(TTree * tree);
   void SetQnorm(Int_t ipad, Int_t itype,  TVectorD * norm); 
+  void SetQnormCorr(Int_t ipad, Int_t itype, Int_t corrType, Float_t val); 
+  Double_t  GetQnormCorr(Int_t ipad, Int_t itype, Int_t corrType) const; 
+  void ResetQnormCorr(); 
   //
   // Charge parameterization
   //
   Float_t Qnorm(Int_t ipad, Int_t itype, Float_t dr, Float_t ty, Float_t tz);   
+  Float_t QnormHis(Int_t ipad, Int_t itype, Float_t dr, Float_t ty, Float_t tz);
 
-  Float_t QnormPos(Int_t ipad, Bool_t isMax,  Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm, Float_t qt);
 
+  Float_t QnormPos(Int_t ipad, Bool_t isMax,  Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm, Float_t qt);
+  static Float_t SQnormPos(Int_t ipad, Bool_t isMax,  Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm, Float_t qt){ return fgInstance->QnormPos(ipad,isMax,pad,time,z,sy2,sz2,qm,qt);;}
+  Float_t PosCorrection(Int_t type, Int_t ipad,  Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm);
+  static Float_t  SPosCorrection(Int_t type, Int_t ipad,  Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm){ return fgInstance->PosCorrection(type,ipad,pad,time,z,sy2,sz2,qm);}
   //
   // Error parameterization
   //
@@ -101,6 +111,17 @@ class AliTPCClusterParam : public TObject {
   //
   //
   static Float_t SQnorm(Int_t ipad, Int_t itype,Float_t dr, Float_t ty, Float_t tz) {return fgInstance->Qnorm(ipad, itype, dr,ty,tz);}
+  static Float_t SQnormHis(Int_t ipad, Int_t itype,Float_t dr, Float_t ty, Float_t tz) {return fgInstance->QnormHis(ipad, itype, dr,ty,tz);}
+
+  //
+  // Analytical position angular correction
+  //
+  static Double_t  GaussConvolution(Double_t x0, Double_t x1, Double_t k0, Double_t k1, Double_t s0, Double_t s1);
+  static Double_t  GaussConvolutionTail(Double_t x0, Double_t x1, Double_t k0, Double_t k1, Double_t s0, Double_t s1, Double_t tau);
+  static Double_t  GaussConvolutionGamma4(Double_t x0, Double_t x1, Double_t k0, Double_t k1, Double_t s0, Double_t s1, Double_t tau);
+  static Double_t QmaxCorrection(Int_t sector, Int_t row, Float_t cpad, Float_t ctime, Float_t ky, Float_t kz, Float_t rmsy0, Float_t rmsz0,  Float_t effLength=0, Float_t effDiff=1);
+  static Double_t QtotCorrection(Int_t sector, Int_t row, Float_t cpad, Float_t ctime, Float_t ky, Float_t kz, Float_t rmsy0, Float_t rmsz0, Float_t qtot, Float_t thr,  Float_t effLength=0, Float_t effDiff=1);
+
 
 
  public: 
@@ -143,14 +164,22 @@ class AliTPCClusterParam : public TObject {
   // charge normalization parametrization
   //
   TObjArray *fQNorm;              // q norm paramters
-  TVectorD  *fPosQTnorm[3];        // q position normalization
-  TVectorD  *fPosQMnorm[3];        // q position normalization
-  TVectorD  *fQpadTnorm;           // q pad normalization - Total charge
-  TVectorD  *fQpadMnorm;           // q pad normalization - Max charge
+  TMatrixD  *fQNormCorr;          // q norm correction for analytica  correction
+  TObjArray *fQNormHis;           // q norm correction for analytical correction 
+  //
+  TVectorD  *fPosQTnorm[3];       // q position normalization
+  TVectorD  *fPosQMnorm[3];       // q position normalization
+  TVectorD  *fQpadTnorm;          // q pad normalization - Total charge
+  TVectorD  *fQpadMnorm;          // q pad normalization - Max charge
+  //
+  // Position corrections
+  // 
+  TVectorD  *fPosYcor[3];       //  position correction parameterization 
+  TVectorD  *fPosZcor[3];       //  position correction parameterization
   //
  protected:
   static AliTPCClusterParam*   fgInstance; //! Instance of this class (singleton implementation)
-  ClassDef(AliTPCClusterParam,2)    //  TPC Cluster parameter class
+  ClassDef(AliTPCClusterParam,6)    //  TPC Cluster parameter class
 };
 
 #endif