monitoring and calibration for PbPb 2011
[u/mrichter/AliRoot.git] / PWG1 / TRD / AliTRDcheckTRK.h
1 #ifndef ALITRDCHECKTRK_H
2 #define ALITRDCHECKTRK_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 ////////////////////////////////////////////////////////////////////////////
8 //                                                                        //
9 //  TRD tracker systematic                                                //
10 //                                                                        //
11 //  Authors:                                                              //
12 //    Alexandru Bercuci <A.Bercuci@gsi.de>                                //
13 //                                                                        //
14 ////////////////////////////////////////////////////////////////////////////
15
16 #ifndef ALITRDRESOLUTION_H
17 #include "AliTRDresolution.h"
18 #endif
19
20 /*template <typename Value> class TVectorT;
21 typedef struct TVectorT<Double_t> TVectorD;*/
22 class TObjArray;
23 class AliTRDtrackV1;
24 class AliTRDcheckTRK : public AliTRDresolution
25 {
26 public:
27   enum ETRDcheckTRKconst {
28      kNptBins    = 25 // no of log bins in pt spectrum
29     ,kNSigmaBins = 25 // no of sigma bins
30     ,kNclusters  = 19 // no of no of clusters
31     ,kNdim       = 7  // no of dimensions in THnSparse
32   };
33   AliTRDcheckTRK();
34   AliTRDcheckTRK(char* name);
35   virtual ~AliTRDcheckTRK();
36   static Float_t  GetKalmanStep()                      { return fgKalmanStep;}
37   static Bool_t   HasClRecalibrate()                   { return fgClRecalibrate;}
38   static Bool_t   HasKalmanUpdate()                    { return fgKalmanUpdate;}
39   virtual TObjArray*  Histos();
40   TH1*            PlotTrack(const AliTRDtrackV1 *t=NULL);
41   TH1*            DoRoads(const AliTRDtrackV1 *t=NULL);
42   static Bool_t   PropagateKalman(AliTRDtrackV1 &t, AliExternalTrackParam *ref);
43   static void     SetKalmanStep(Float_t step)          { fgKalmanStep=step;}
44   static void     SetClRecalibrate(Bool_t set=kTRUE)   { fgClRecalibrate=set;}
45   static void     SetKalmanUpdate(Bool_t set=kTRUE)    { fgKalmanUpdate=set;}
46
47 private:
48   AliTRDcheckTRK(const AliTRDcheckTRK&);
49   AliTRDcheckTRK& operator=(const AliTRDcheckTRK&);
50   void     MakePtCalib(Float_t pt0=0.3, Float_t dpt=0.002);
51   Int_t    GetPtBinCalib(Float_t pt);
52
53   // kalman related settings
54   static Bool_t  fgKalmanUpdate;  // update Kalman with TRD point
55   static Bool_t  fgClRecalibrate; // recalibrate clusters and recalculate tracklet fit
56   static Float_t fgKalmanStep;    // Kalman stepping
57   Float_t        fPtBinCalib[kNptBins+1];  //! pt segmentation
58
59   ClassDef(AliTRDcheckTRK, 1) // TRD tracker systematic
60 };
61
62 #endif