]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibTime.h
Fix neccessary for local merge
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibTime.h
index 7b353d22138e6fcbaf438d4a69c1f8a40fd75d58..a8c1e20d77b81975dca098ab8d4558732ff8df97 100644 (file)
@@ -3,12 +3,18 @@
 
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
+/*
+Comments to be written here:
+What do we calibrate.
+  Time dependence of gain and drift velocity in order to account for changes in: temperature, pressure, gas composition.
+*/
+
 
 #include "AliTPCcalibBase.h"
-#include "THnSparse.h"           // Temporary
-#include "TH1D.h"                // Temporary make code compiling for HLT in the 
-class TObjArray;
+//#include "THnSparse.h"           // Temporary
+//#include "TH1D.h"                // Temporary make code compiling for HLT in the 
 
+class TObjArray;
 class TH1F;
 class TH3F;
 class TH2F;
@@ -25,25 +31,25 @@ class AliESDfriendTrack;
 class AliTPCcalibTime:public AliTPCcalibBase {
 public:
   AliTPCcalibTime(); 
-  AliTPCcalibTime(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeVdrift);
+  AliTPCcalibTime(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeVdrift, Int_t memoryMode=2);
   virtual ~AliTPCcalibTime();
   
   virtual void           Process(AliESDEvent *event);
   virtual Long64_t       Merge(TCollection *const li);
   virtual void           Analyze();
-  static Bool_t          IsLaser      (const AliESDEvent *const event);
-  static Bool_t          IsCosmics    (const AliESDEvent *const event);
-  static Bool_t          IsBeam       (const AliESDEvent *const event);
+  //static Bool_t          IsLaser      (const AliESDEvent *const event) const;
+  //static Bool_t          IsCosmics    (const AliESDEvent *const event) const;
+  //static Bool_t          IsBeam       (const AliESDEvent *const event) const;
   void                   ProcessLaser (AliESDEvent *event);
   void                   ProcessCosmic(const AliESDEvent *const event);
   void                   ProcessBeam  (const AliESDEvent *const event);
-  Bool_t                 IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1);
-  Bool_t                 IsCross(AliESDtrack *const tr0, AliESDtrack *const tr1);
-  Bool_t                 IsSame (AliESDtrack *const tr0, AliESDtrack *const tr1);
-  void                   ProcessSame(AliESDtrack *const track, AliESDfriendTrack *const friendTrack, const AliESDEvent *const event);
-  void                   ProcessAlignITS(AliESDtrack *const track, AliESDfriendTrack *const friendTrack, const AliESDEvent *const event, AliESDfriend *const ESDfriend);
-  void                   ProcessAlignTRD(AliESDtrack* const track, AliESDfriendTrack *const friendTrack);
-  void                   ProcessAlignTOF(AliESDtrack* const track, AliESDfriendTrack *const friendTrack);
+  Bool_t                 IsPair(const AliExternalTrackParam *tr0, const AliExternalTrackParam *tr1);
+  Bool_t                 IsCross(const AliESDtrack *const tr0, const AliESDtrack *const tr1);
+  Bool_t                 IsSame (const AliESDtrack *const tr0, const AliESDtrack *const tr1);
+  void                   ProcessSame(const AliESDtrack *const track, AliESDfriendTrack *const friendTrack, const AliESDEvent *const event);
+  void                   ProcessAlignITS(AliESDtrack *const track, const AliESDfriendTrack *const friendTrack, const AliESDEvent *const event, AliESDfriend *const ESDfriend);
+  void                   ProcessAlignTRD(AliESDtrack* const track, const AliESDfriendTrack *const friendTrack);
+  void                   ProcessAlignTOF(AliESDtrack* const track, const AliESDfriendTrack *const friendTrack);
 
   THnSparse*    GetHistVdriftLaserA(Int_t index=1) const {return fHistVdriftLaserA[index];};
   THnSparse*    GetHistVdriftLaserC(Int_t index=1) const {return fHistVdriftLaserC[index];};
@@ -54,25 +60,40 @@ public:
   AliSplineFit* GetFitDrift(const char* name);
 //  TObjArray*    GetFitDrift();
   TH1F*         GetCosmiMatchingHisto(Int_t index=0) const {return fCosmiMatchingHisto[index];};
-  
   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
   void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}
   TObjArray* GetAlignITSTPC() const {return fAlignITSTPC;}              // alignemnt array ITS TPC match
   TObjArray* GetAlignTRDTPC() const {return fAlignTRDTPC;}              // alignemnt array TRD TPC match
   TObjArray* GetAlignTOFTPC() const {return fAlignTOFTPC;}              // alignemnt array TOF TPC match
 
+  THnSparse * GetTPCVertexHisto(Int_t index) const { return fTPCVertex[index%12];}
+  THnSparse * GetTPCVertexHistoCorrelation(Int_t index) const { return fTPCVertexCorrelation[index%5];}
+
+  THnSparse*  GetResHistoTPCCE(Int_t index) const { return (index<5) ? fResHistoTPCCE[index]:0;}        //TPC-CE    matching map
   THnSparse*  GetResHistoTPCITS(Int_t index) const { return (index<5) ? fResHistoTPCITS[index]:0;}        //TPC-ITS    matching map
   THnSparse*  GetResHistoTPCvertex(Int_t index)      const { return (index<5) ? fResHistoTPCvertex[index]   :0;}        //TPC vertex matching map
   THnSparse*  GetResHistoTPCTRD(Int_t index)   const { return (index<5) ? fResHistoTPCTRD[index]:0;}        //TPC-TRD    matching map
+  THnSparse*  GetResHistoTPCTOF(Int_t index)   const { return (index<5) ? fResHistoTPCTOF[index]:0;}        //TPC-TOF    matching map
 
   void        BookDistortionMaps();      // book histograms
+  void        FillResHistoTPCCE(const AliExternalTrackParam * pTPCIn, const AliExternalTrackParam * pTPCOut );       // fill residual histo
   void        FillResHistoTPCITS(const AliExternalTrackParam * pTPCIn, const AliExternalTrackParam * pITSOut );       // fill residual histo
   void        FillResHistoTPC(const AliESDtrack * pTrack);
   void        FillResHistoTPCTRD(const AliExternalTrackParam * pTPCOut, const AliExternalTrackParam * pTRDIn );
+  void        FillResHistoTPCTOF(const AliExternalTrackParam * pTPCOut, const AliExternalTrackParam * pTOFIn );
+
+  TObjArray * GetLaserArrayA() const { return fArrayLaserA;}
+  TObjArray * GetLaserArrayC() const { return fArrayLaserC;}
+
+
+  void   SetCutTracks(Int_t maxTracks)  { fCutTracks = maxTracks; }  // set maximal number of tracks
+  Int_t  GetCutTracks() const { return fCutTracks; }    // retun maximal number of tracks
+
 
-private:
-  void ResetCurrent();                  // reset current values
 
+protected:
+  void ResetCurrent();                  // reset current values
+  Int_t              fMemoryMode;       // 0 -do not fill THnSparse with residuals  1- fill only important QA THn 2 - Fill all THnsparse for calibration
   AliTPCcalibLaser * fLaser;            //! laser calibration
   //
   // current information
@@ -87,24 +108,32 @@ private:
   Float_t fCutMinDir;   // direction vector products
   Int_t   fCutTracks;   // maximal number of tracks
  
-  AliTPCcalibTime(const AliTPCcalibTime&); 
-  AliTPCcalibTime& operator=(const AliTPCcalibTime&); 
 
-  TH1F* fCosmiMatchingHisto[10];
+  TH1F* fCosmiMatchingHisto[10];        // cosmic matching histogram
   //
   // distortion maps
   //
+  THnSparse*  fResHistoTPCCE[5];        //TPC-TPCE matching map
   THnSparse*  fResHistoTPCITS[5];        //TPC-ITS    matching map
   THnSparse*  fResHistoTPCvertex[5];           //TPC-ITS    vertex matching map
   THnSparse*  fResHistoTPCTRD[5];        //TPC-TRD    matching map
+  THnSparse*  fResHistoTPCTOF[5];        //TPC-TRD    matching map
   // laser histo
   THnSparse * fHistVdriftLaserA[3];    //Histograms for V drift from laser
   THnSparse * fHistVdriftLaserC[3];    //Histograms for V drift from laser
+  TObjArray *fArrayLaserA;              //Object array of driftvelocity laserA
+  TObjArray *fArrayLaserC;              //Object array of driftvelocity laserC
+  //
+  // TPC vertex A side C side histo
+  //
+  THnSparse * fTPCVertex[12];           // TPC vertex histograms A side c side - A+C -ESD
+  THnSparse * fTPCVertexCorrelation[5];       // TPC vertex correlation A side C side with TPC vertex and ITS vertex     
   // DELTA Z histo
   TObjArray* fArrayDz;                  // array of DZ histograms for different triggers
   TObjArray* fAlignITSTPC;              // alignemnt array ITS TPC match
   TObjArray* fAlignTRDTPC;              // alignemnt array TRD TPC match
   TObjArray* fAlignTOFTPC;              // alignemnt array TOF TPC match
+  Int_t      fTimeKalmanBin;            // width of Kalman bin - time in seconds
   Int_t    fTimeBins;                  //Bins time
   Double_t fTimeStart;                 //Start time
   Double_t fTimeEnd;                   //End time
@@ -120,7 +149,12 @@ private:
   Int_t    fBinsVdrift[4];             //Bins for vdrift
   Double_t fXminVdrift[4];             //Xmax for vdrift
   Double_t fXmaxVdrift[4];             //Xmin for vdrift
-  ClassDef(AliTPCcalibTime, 3); 
+
+private:
+  AliTPCcalibTime(const AliTPCcalibTime&); 
+  AliTPCcalibTime& operator=(const AliTPCcalibTime&); 
+
+  ClassDef(AliTPCcalibTime, 10); 
 };
 
 #endif