]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TRD/AliTRDcheckTRK.h
updates in the PWGPP/TRD
[u/mrichter/AliRoot.git] / PWGPP / 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 class TObjArray;
21 class AliTRDtrackV1;
22 class AliTRDcheckTRK : public AliTRDresolution
23 {
24 public:
25   enum ETRDcheckTRKsteer {
26      kKalmanUpdate  = 0
27     ,kTrkltRefit
28     ,kClRecalibrate
29     ,kUseITS
30   };
31   enum ETRDcheckTRKconst {
32      kNptBins    = 25 // no of log bins in pt spectrum
33     ,kNSigmaBins = 25 // no of sigma bins
34     ,kNclusters  = 19 // no of no of clusters
35     ,kNdim       = 7  // no of dimensions in THnSparse
36   };
37   AliTRDcheckTRK();
38   AliTRDcheckTRK(char* name);
39   virtual ~AliTRDcheckTRK();
40   static Float_t  GetKalmanStep()                      { return fgKalmanStep;}
41   static Bool_t   HasClRecalibrate()                   { return TESTBIT(fgSteer, kClRecalibrate);}
42   static Bool_t   HasKalmanUpdate()                    { return TESTBIT(fgSteer, kKalmanUpdate);}
43   static Bool_t   HasTrkltRefit()                      { return TESTBIT(fgSteer, kTrkltRefit);}
44   virtual TObjArray*  Histos();
45   TH1*            PlotTrack(const AliTRDtrackV1 *t=NULL);
46   TH1*            DoRoads(const AliTRDtrackV1 *t=NULL);
47   static Bool_t   PropagateKalman(AliTRDtrackV1 &t, AliExternalTrackParam *ref);
48   static void     SetKalmanStep(Float_t step)          { fgKalmanStep=step;}
49   static void     SetClRecalibrate(Bool_t s=kTRUE)     { if(s){SETBIT(fgSteer, kClRecalibrate); SetTrkltRefit();} else CLRBIT(fgSteer, kClRecalibrate);}
50   static void     SetKalmanUpdate(Bool_t s=kTRUE)      { if(s) SETBIT(fgSteer, kKalmanUpdate); else CLRBIT(fgSteer, kKalmanUpdate);}
51   static void     SetTrkltRefit(Bool_t s=kTRUE)        { if(s) SETBIT(fgSteer, kTrkltRefit); else CLRBIT(fgSteer, kTrkltRefit);}
52   static void     SetUseITS(Bool_t s=kTRUE)            { if(s) SETBIT(fgSteer, kUseITS); else CLRBIT(fgSteer, kUseITS);}
53   static Bool_t   UseITS()                             { return TESTBIT(fgSteer, kUseITS);}
54 private:
55   AliTRDcheckTRK(const AliTRDcheckTRK&);
56   AliTRDcheckTRK& operator=(const AliTRDcheckTRK&);
57   void     MakePtCalib(Float_t pt0=0.3, Float_t dpt=0.002);
58   Int_t    GetPtBinCalib(Float_t pt);
59
60   // kalman related settings
61   static UChar_t fgSteer;         // steering bit map
62   static Float_t fgKalmanStep;    // Kalman stepping
63   Float_t        fPtBinCalib[kNptBins+1];  //! pt segmentation
64
65   ClassDef(AliTRDcheckTRK, 1) // TRD tracker systematic
66 };
67
68 #endif