e THnSparse structure to store MC residuals
[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      kNbunchCross = 3  // no of classes for bunch crossing
29     ,kNpt         = 24 // no of log bins in pt spectrum
30     ,kNcharge     = 2
31   };
32   enum ETRDcheckTRKclasses {
33      kEntry = 0
34     ,kPropagation
35     ,kNclasses
36   };
37   AliTRDcheckTRK();
38   AliTRDcheckTRK(char* name);
39   virtual ~AliTRDcheckTRK();
40   static Float_t  GetKalmanStep()                      { return fgKalmanStep;}
41   static Float_t* GetCalib(Int_t det)                  { return fgCalib[det];}
42   Int_t           GetSpeciesByMass(Float_t m);
43   Int_t           GetPtBin(Float_t pt);
44   static Bool_t   HasClRecalibrate()                   { return fgClRecalibrate;}
45   static Bool_t   HasKalmanUpdate()                    { return fgKalmanUpdate;}
46   static void     LoadCalib(Float_t *calib)            { memcpy(fgCalib, calib, 540*2*sizeof(Float_t));}
47   TH1*            PlotTrack(const AliTRDtrackV1 *t=NULL);
48   static Bool_t   PropagateKalman(AliTRDtrackV1 &t);
49   static void     SetKalmanStep(Float_t step)          { fgKalmanStep=step;}
50   static void     SetClRecalibrate(Bool_t set=kTRUE)   { fgClRecalibrate=set;}
51   static void     SetKalmanUpdate(Bool_t set=kTRUE)    { fgKalmanUpdate=set;}
52
53 private:
54   AliTRDcheckTRK(const AliTRDcheckTRK&);
55   AliTRDcheckTRK& operator=(const AliTRDcheckTRK&);
56
57   // kalman related settings
58   static Bool_t  fgKalmanUpdate;  // update Kalman with TRD point
59   static Bool_t  fgClRecalibrate; // recalibrate clusters and recalculate tracklet fit
60   static Float_t fgKalmanStep;    // Kalman stepping
61   static Float_t fgCalib[540][2]; //! test new calibration params [method][detector][vd/exb]
62
63   ClassDef(AliTRDcheckTRK, 1) // TRD tracker systematic
64 };
65
66 #endif