]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibLaser.h
Update by A. Matyja
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibLaser.h
index 728fbf3f65eea520b02337401ba6caa8f8424a1a..d9911e5589ad32225fad6e5974dc154008465158 100644 (file)
@@ -14,6 +14,7 @@
 #include "AliTPCcalibBase.h"
 #include "TH1.h"
 #include "TH2F.h"
+#include "THnSparse.h"
 
 
 class AliExternalTrackParam;
@@ -36,8 +37,10 @@ public:
   virtual void     Process(AliESDEvent *event);
   Int_t   GetNtracks(){return fNtracks;}
   virtual void Analyze();
+  static void        DumpLaser(const char *finput, Int_t run);
+  static void        FitLaserClusters(Int_t run);
   virtual Long64_t Merge(TCollection *li);
-  virtual void DumpMeanInfo(Float_t bfield, Int_t run=-1);
+  virtual void DumpMeanInfo(Int_t run=-1);
   static  void DumpScanInfo(TTree * tree, const char * cutUser="entries>300&&(gz2<0.15&&gphi2<0.1&&gp42<0.02&&abs(gp41)<0.03)");
   static  void DumpFitInfo(TTree * chainFit, Int_t id);
   static  TH1* GetLaserProjection(TH2F* his, Int_t laser){return his->ProjectionY("aaa",laser+1,laser+1);}
@@ -46,6 +49,8 @@ public:
   virtual void DumpLaser(Int_t id);
   virtual void RefitLaserJW(Int_t id);
   void         FitDriftV();
+  Bool_t       FitDriftV(Float_t minFraction);
+  //
   void         MakeDistHisto(Int_t id);
   void         AddCut(Double_t xcut, Double_t ycut, Double_t ncl){fEdgeXcuts[fNcuts]=xcut; fEdgeYcuts[fNcuts]=ycut; fNClCuts[fNcuts]=ncl; fNcuts++;}
 
@@ -59,6 +64,10 @@ public:
   //
   void SetBeamParameters(TVectorD& meanOffset, TVectorD& meanSlope,
                         TVectorD& sectorArray, Int_t option);
+  void SetFixedDriftVConstant(Double_t aside0, Double_t aside1,
+                             Double_t cside0, Double_t cside1)
+    {fUseFixedDriftV = 1; fFixedFitAside0=aside0; fFixedFitAside1=aside1;
+    fFixedFitCside0=cside0; fFixedFitCside1=cside1;}
 
   AliESDEvent  * fESD;             //! ESD event  - not OWNER
   AliESDfriend * fESDfriend;       //! ESD event  - not OWNER
@@ -86,6 +95,10 @@ public:
   //
   // Refit residuals histogram
   //
+  THnSparseS     *fHisLaser;      //  N dim histogram of laser 
+  THnSparseS     *fHisLaserPad;   //  N dim histogram of laser 
+  THnSparseS     *fHisLaserTime;   //  N dim histogram of laser 
+  //
   TH2F           *fHisNclIn;      //->Number of clusters inner
   TH2F           *fHisNclOut;     //->Number of clusters outer
   TH2F           *fHisNclIO;      //->Number of cluster inner outer
@@ -137,7 +150,9 @@ public:
   TObjArray      fDeltaYres2;       //-> array of histograms of delta y residuals for each track
   TObjArray      fDeltaZres2;       //-> array of histograms of delta z residuals for each track
   TObjArray      fDeltaYresAbs; //-> array of histograms of absolute delta y residuals for each track
+  TH1F           *fHisYAbsErrors; //-> Number of errors (wrongly assigned tracks) per beam
   TObjArray      fDeltaZresAbs; //-> array of histograms of absolute delta z residuals for each track
+  TH1F           *fHisZAbsErrors; //-> Number of errors (wrongly assigned tracks or missing drift velocity) per beam
   //  TObjArray      fDeltaYres3;       //-> array of histograms of delta y residuals for each track
   //TObjArray      fDeltaZres3;       //-> array of histograms of delta z residuals for each track
 
@@ -161,9 +176,14 @@ public:
   TVectorD       fBeamOffsetZInner; //! absolute z beam offset in inner sectror 
   TVectorD       fBeamSlopeZInner;  //! absolute z beam slope  in inner sector
   Bool_t         fInverseSlopeZ;    //! invert slope in z - mismatch between database and lasers
+  Int_t          fUseFixedDriftV;   // flag for fixed drift velocity for abs res
+  Double_t       fFixedFitAside0;   // Fixed drift v constant 0 - A side
+  Double_t       fFixedFitAside1;   // Fixed drift v constant 1 - A side
+  Double_t       fFixedFitCside0;   // Fixed drift v constant 0 - C side
+  Double_t       fFixedFitCside1;   // Fixed drift v constant 1 - C side
   //
 private:
-  ClassDef(AliTPCcalibLaser,3)
+  ClassDef(AliTPCcalibLaser,6)
 };