LCOV - code coverage report
Current view: top level - TPC/TPCcalib - AliTPCcalibLaser.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 8 12.5 %
Date: 2016-06-14 17:26:59 Functions: 1 11 9.1 %

          Line data    Source code
       1             : #ifndef ALITPCCALIBLASER_H
       2             : #define ALITPCCALIBLASER_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : ////
       8             : ////
       9             : ////
      10             : 
      11             : #include "TObject.h"
      12             : #include "TObjArray.h"
      13             : #include "TLinearFitter.h"
      14             : #include "AliTPCcalibBase.h"
      15             : #include "TH1.h"
      16             : #include "TH2F.h"
      17             : #include "THnSparse.h"
      18             : 
      19             : 
      20             : class AliExternalTrackParam;
      21             : class AliESDtrack;
      22             : class AliESDEvent;
      23             : class AliESDfriend;
      24             : class TGraphErrors;
      25             : class TTree;
      26             : class TH2F;
      27             : class AliTPCLaserTrack;
      28             : class TCut;
      29             : 
      30             : class AliTPCcalibLaser:public AliTPCcalibBase {
      31             : public:
      32             :   AliTPCcalibLaser();
      33             :   AliTPCcalibLaser(const Text_t *name, const Text_t *title, Bool_t full=kTRUE);
      34             :   AliTPCcalibLaser(const AliTPCcalibLaser& laser);
      35             :   AliTPCcalibLaser & operator=(const AliTPCcalibLaser& calibLaser);
      36             :   virtual ~AliTPCcalibLaser();
      37             :   virtual void     Process(AliESDEvent *event);
      38           0 :   Int_t   GetNtracks(){return fNtracks;}
      39             :   virtual void Analyze();
      40             :   static void        DumpLaser(const char *finput, Int_t run);
      41             :   static void        FitLaserClusters(Int_t run);
      42             :   virtual Long64_t Merge(TCollection *li);
      43             :   virtual void DumpMeanInfo(Int_t run=-1);
      44             :   static  void DumpScanInfo(TTree * tree, const char * cutUser="entries>300&&(gz2<0.15&&gphi2<0.1&&gp42<0.02&&abs(gp41)<0.03)");
      45             :   static  void DumpFitInfo(TTree * chainFit, Int_t id);
      46           0 :   static  TH1* GetLaserProjection(TH2F* his, Int_t laser){return his->ProjectionY("aaa",laser+1,laser+1);}
      47             :   //
      48             :   //
      49             :   virtual void DumpLaser(Int_t id);
      50             :   virtual void RefitLaserJW(Int_t id);
      51             :   void         FitDriftV();
      52             :   Bool_t       FitDriftV(Float_t minFraction);
      53             :   //
      54             :   void         MakeDistHisto(Int_t id);
      55           0 :   void         AddCut(Double_t xcut, Double_t ycut, Double_t ncl){fEdgeXcuts[fNcuts]=xcut; fEdgeYcuts[fNcuts]=ycut; fNClCuts[fNcuts]=ncl; fNcuts++;}
      56             : 
      57             :   Int_t  FindMirror(AliESDtrack *track, AliTPCseed *seed);
      58             :   Bool_t AcceptLaser(Int_t id);
      59             :   Float_t GetDistance(AliExternalTrackParam *track, AliTPCLaserTrack *ltrp);
      60             :   void   MakeFitHistos();
      61             :   void   UpdateFitHistos();
      62             :   void   MergeFitHistos(AliTPCcalibLaser * add);
      63           0 :   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
      64           0 :   void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}
      65             :   //
      66             :   void SetBeamParameters(TVectorD& meanOffset, TVectorD& meanSlope,
      67             :                          TVectorD& sectorArray, Int_t option);
      68             :   void SetFixedDriftVConstant(Double_t aside0, Double_t aside1,
      69             :                               Double_t cside0, Double_t cside1)
      70           0 :     {fUseFixedDriftV = 1; fFixedFitAside0=aside0; fFixedFitAside1=aside1;
      71           0 :     fFixedFitCside0=cside0; fFixedFitCside1=cside1;}
      72             : 
      73             :   AliESDEvent  * fESD;             //! ESD event  - not OWNER
      74             :   AliESDfriend * fESDfriend;       //! ESD event  - not OWNER
      75             :   Int_t          fNtracks;         //! counter of associated laser tracks
      76             :   //
      77             :   TObjArray      fTracksMirror;    //! tracks with mirror information
      78             :   TObjArray      fTracksEsd;       //! tracks with reconstructed information - 
      79             :   //                               not owner ESD
      80             :   TObjArray      fTracksEsdParam;  //! tracks with reconstructed information - 
      81             :   //                               is owner ESD at mirror
      82             :   TObjArray      fTracksTPC;       //! tracks with reconstructed information - TPC
      83             :   Int_t          fCounter[336];    //! counter of usage
      84             :   Float_t        fClusterCounter[336]; //!couter of clusters in "sensitive are"
      85             :   Float_t        fClusterSatur[336];   //!couter of saturated clusters in "sensitive are"
      86             :   Bool_t         fFullCalib;            // do full calibrration
      87             :   Float_t        fFitZ[336];           //fitted z position
      88             :   //
      89             :   TObjArray      fDeltaZ;          //-> array of histograms of delta z for each track
      90             :   TObjArray      fDeltaP3;         //-> array of histograms of P3      for each track
      91             :   TObjArray      fDeltaP4;         //-> array of histograms of P4      for each track
      92             :   TObjArray      fDeltaPhi;        //-> array of histograms of delta Phi for each track
      93             :   TObjArray      fDeltaPhiP;       //-> array of histograms of delta Phi direction for each track
      94             :   TObjArray      fSignals;         //->Array of dedx signals
      95             : 
      96             :   //
      97             :   // Refit residuals histogram
      98             :   //
      99             :   THnSparseS     *fHisLaser;      //  N dim histogram of laser 
     100             :   THnSparseS     *fHisLaserPad;   //  N dim histogram of laser 
     101             :   THnSparseS     *fHisLaserTime;   //  N dim histogram of laser 
     102             :   //
     103             :   TH2F           *fHisNclIn;      //->Number of clusters inner
     104             :   TH2F           *fHisNclOut;     //->Number of clusters outer
     105             :   TH2F           *fHisNclIO;      //->Number of cluster inner outer
     106             :   TH2F           *fHisLclIn;      //->Level arm inner
     107             :   TH2F           *fHisLclOut;     //->Level arm outer
     108             :   TH2F           *fHisLclIO;      //->Level aram inner outer
     109             : 
     110             :   TH2F           *fHisdEdx;       //->dEdx histo
     111             :   TH2F           *fHisdZfit;      //->distance to the mirror after linear fit
     112             :   //
     113             :   //
     114             :   TH2F           *fHisChi2YIn1;      //->chi2 y inner - line
     115             :   TH2F           *fHisChi2YOut1;     //->chi2 y inner - line
     116             :   TH2F           *fHisChi2YIn2;      //->chi2 y inner - parabola
     117             :   TH2F           *fHisChi2YOut2;     //->chi2 y inner - parabola
     118             :   TH2F           *fHisChi2YIO1;      //->chi2 y IO    - common
     119             :   TH2F           *fHisChi2ZIn1;      //->chi2 z inner - line
     120             :   TH2F           *fHisChi2ZOut1;     //->chi2 z inner - line
     121             :   TH2F           *fHisChi2ZIn2;      //->chi2 z inner - parabola
     122             :   TH2F           *fHisChi2ZOut2;     //->chi2 z inner - parabola
     123             :   TH2F           *fHisChi2ZIO1;      //->chi2 z IO    - common
     124             :   //
     125             :   //
     126             :   TH2F           *fHisPy1vP0;     //-> delta y   P0outer-P0inner - line
     127             :   TH2F           *fHisPy2vP0;     //-> delta y   P0outer-P0inner - parabola
     128             :   TH2F           *fHisPy3vP0;     //-> delta y   P0outer-P0inner - common parabola
     129             :   TH2F           *fHisPy1vP1;     //-> delta ky  P1outer-P1inner - line
     130             :   TH2F           *fHisPy2vP1;     //-> delta ky  P1outer-P1inner - parabola
     131             :   TH2F           *fHisPy3vP1;     //-> delta ky  P1outer-P1inner - common parabola
     132             :   TH2F           *fHisPy2vP2In;   //-> Curv  P2inner - parabola
     133             :   TH2F           *fHisPy2vP2Out;  //-> Curv  P2outer - parabola
     134             :   TH2F           *fHisPy3vP2IO;   //-> Curv  P2outerinner - common parabola
     135             :   //
     136             :   //
     137             :   TH2F           *fHisPz1vP0;     //-> delta z   P0outer-P0inner - line
     138             :   TH2F           *fHisPz2vP0;     //-> delta z   P0outer-P0inner - parabola
     139             :   TH2F           *fHisPz3vP0;     //-> delta z   P0outer-P0inner - common parabola
     140             :   TH2F           *fHisPz1vP1;     //-> delta kz  P1outer-P1inner - line
     141             :   TH2F           *fHisPz2vP1;     //-> delta kz  P1outer-P1inner - parabola
     142             :   TH2F           *fHisPz3vP1;     //-> delta kz  P1outer-P1inner - common parabola
     143             :   TH2F           *fHisPz2vP2In;   //-> Curv  P2inner - parabola
     144             :   TH2F           *fHisPz2vP2Out;  //-> Curv  P2outer - parabola
     145             :   TH2F           *fHisPz3vP2IO;   //-> Curv  P2outerinner - common parabola
     146             :   //
     147             :   // Residual histograms
     148             :   //
     149             :   TObjArray      fDeltaYres;       //-> array of histograms of delta y residuals for each track
     150             :   TObjArray      fDeltaZres;       //-> array of histograms of delta z residuals for each track
     151             :   TObjArray      fDeltaYres2;       //-> array of histograms of delta y residuals for each track
     152             :   TObjArray      fDeltaZres2;       //-> array of histograms of delta z residuals for each track
     153             :   TObjArray      fDeltaYresAbs; //-> array of histograms of absolute delta y residuals for each track
     154             :   TH1F           *fHisYAbsErrors; //-> Number of errors (wrongly assigned tracks) per beam
     155             :   TObjArray      fDeltaZresAbs; //-> array of histograms of absolute delta z residuals for each track
     156             :   TH1F           *fHisZAbsErrors; //-> Number of errors (wrongly assigned tracks or missing drift velocity) per beam
     157             :   //  TObjArray      fDeltaYres3;       //-> array of histograms of delta y residuals for each track
     158             :   //TObjArray      fDeltaZres3;       //-> array of histograms of delta z residuals for each track
     159             : 
     160             :   //
     161             :   TVectorD*      fFitAside;        //! drift fit - A side
     162             :   TVectorD*      fFitCside;        //! drift fit - C- side
     163             :   TVectorD*      fFitACside;        //! drift fit - A+C- side
     164             :   //
     165             :   TVectorD       fEdgeXcuts;       //! cuts in local x direction; used in the refit of the laser tracks
     166             :   TVectorD       fEdgeYcuts;       //! cuts in local y direction; used in the refit of the laser tracks
     167             :   TVectorD       fNClCuts;         //! cuts on the number of clusters per tracklet; used in the refit of the laser tracks
     168             :   Int_t          fNcuts;           //! number of cuts
     169             :   TVectorD       fBeamSectorOuter;  //! sector map for beams in outer sector
     170             :   TVectorD       fBeamSectorInner;  //! sector map for beams in inner sector
     171             :   TVectorD       fBeamOffsetYOuter; //! absolute y beam offset in outer sector
     172             :   TVectorD       fBeamSlopeYOuter;  //! absolute y beam slope  in outer sector
     173             :   TVectorD       fBeamOffsetYInner; //! absolute y beam offset in inner sector
     174             :   TVectorD       fBeamSlopeYInner;  //! absolute y beam slope  in inner sector
     175             :   TVectorD       fBeamOffsetZOuter; //! absolute z beam offset in outer sectror 
     176             :   TVectorD       fBeamSlopeZOuter;  //! absolute z beam slope  in outer sector 
     177             :   TVectorD       fBeamOffsetZInner; //! absolute z beam offset in inner sectror 
     178             :   TVectorD       fBeamSlopeZInner;  //! absolute z beam slope  in inner sector
     179             :   Bool_t         fInverseSlopeZ;    //! invert slope in z - mismatch between database and lasers
     180             :   Int_t          fUseFixedDriftV;   // flag for fixed drift velocity for abs res
     181             :   Double_t       fFixedFitAside0;   // Fixed drift v constant 0 - A side
     182             :   Double_t       fFixedFitAside1;   // Fixed drift v constant 1 - A side
     183             :   Double_t       fFixedFitCside0;   // Fixed drift v constant 0 - C side
     184             :   Double_t       fFixedFitCside1;   // Fixed drift v constant 1 - C side
     185             :   //
     186             : private:
     187           6 :   ClassDef(AliTPCcalibLaser,6)
     188             : };
     189             : 
     190             : 
     191             : 
     192             : 
     193             : 
     194             : #endif

Generated by: LCOV version 1.11