]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/qaRec/AliTRDtrackingResolution.h
fix PID reference figures style (AlexW)
[u/mrichter/AliRoot.git] / TRD / qaRec / AliTRDtrackingResolution.h
index 123902f33a072693aa2c704c30d859b68bf2c8a3..63b412e8d27740e713d322555608ef31327d8327 100644 (file)
 #include "AliTRDrecoTask.h"
 #endif
 
+class TH1;
+class TF1;
+class TObjArray;
 class AliTRDReconstructor;
+class AliTRDgeometry;
 class AliTRDrecoParam;
 class AliTRDseedV1;
 class AliTRDtrackInfo;
@@ -23,45 +27,62 @@ class AliTRDtrackingResolution : public AliTRDrecoTask
 {
 public:
   enum{
-    kClusterYResidual         = 0
-    ,kTrackletRiemanYResidual = 1 // Riemann track model
-    ,kTrackletRiemanAngleResidual = 2
-    ,kTrackletKalmanYResidual = 3 // Kalman track model
-    ,kTrackletKalmanAngleResidual = 4
-    ,kTrackletYResolution     = 5
-    ,kTrackletAngleResolution = 6
-    ,kTrackRYResolution       = 7 // Riemann track model
-    ,kTrackRZResolution       = 8
-    ,kTrackRAngleResolution   = 9
-    ,kTrackKYResolution       = 10 // Kalman track model
-    ,kTrackKZResolution       = 11
-    ,kTrackKAngleResolution   = 12
-    ,kGraphStart              = 13 // First graph
+    kCluster        = 0 // cluster - track
+    ,kTrackletY     = 1 // tracklet - track y pools
+    ,kTrackletPhi   = 2 // tracklet - track angular pools residuals
+    ,kMCcluster     = 3 // cluster - mc residuals/systematics
+    ,kMCtrackletY   = 4 // tracklet - mc y resolution/systematics
+    ,kMCtrackletZ   = 5 // tracklet - mc z resolution/systematics (pad row cross)
+    ,kMCtrackletPhi = 6 // tracklet - mc phi resolution/systematics
+    ,kMCtrackY      = 7 // Kalman Y resolution
+    ,kMCtrackZ      = 8 // Kalman Z resolution
+    ,kMCtrackPt     = 9 // Kalman Pt resolution
+  };
+  enum{
+    kVerbose  = 0
+    ,kVisual  = 1
   };
 
   AliTRDtrackingResolution();
   virtual ~AliTRDtrackingResolution();
   
   void    CreateOutputObjects();
+  Bool_t  GetRefFigure(Int_t ifig);
+  TObjArray*  Histos(); 
   void    Exec(Option_t *);
-  void    GetRefFigure(Int_t ifig, Int_t &first, Int_t &last, Option_t *opt);  
-  void    SetRecoParam(AliTRDrecoParam *r);
+  Bool_t  IsVerbose() const {return TESTBIT(fStatus, kVerbose);}
+  Bool_t  IsVisual() const {return TESTBIT(fStatus, kVisual);}
   Bool_t  PostProcess();
+
+  TH1*    PlotCluster(const AliTRDtrackV1 *t=0x0);
+  TH1*    PlotTracklet(const AliTRDtrackV1 *t=0x0);
+  TH1*    PlotTrackletPhi(const AliTRDtrackV1 *t=0x0);
+  TH1*    PlotResolution(const AliTRDtrackV1 *t=0x0);
+
+  void    SetRecoParam(AliTRDrecoParam *r);
+  void    SetVerbose(Bool_t v = kTRUE) {v ? SETBIT(fStatus ,kVerbose): CLRBIT(fStatus ,kVerbose);}
+  void    SetVisual(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kVisual) : CLRBIT(fStatus, kVisual);}
+
   void    Terminate(Option_t *);
   
 private:
   AliTRDtrackingResolution(const AliTRDtrackingResolution&);
   AliTRDtrackingResolution& operator=(const AliTRDtrackingResolution&);
-  TObjArray*  Histos(); 
-  Bool_t      Resolution(AliTRDseedV1 *tracklet, AliTRDtrackInfo *info, Double_t &p, Double_t &y, Double_t &z, Double_t &phi, Double_t &theta);
+  void        AdjustF1(TH1 *h, TF1 *f);
 
 private:
-  enum{
-    kNLayers = 6
-  };
-  
-  AliTRDReconstructor   *fReconstructor;  //! local reconstructor
+  UChar_t             fStatus;          // steer parameter of the task
+  AliTRDReconstructor *fReconstructor;  //! local reconstructor
+  AliTRDgeometry      *fGeo;            //! TRD geometry
+  TObjArray           *fGraphS;         //! result holder - sigma values
+  TObjArray           *fGraphM;         //! result holder - mean values
+
+  // calibration containers
+  TObjArray           *fCl;     //! cluster2track calib
+  TObjArray           *fTrklt;  //! tracklet2track calib
+  TObjArray           *fMCcl;   //! cluster2mc calib
+  TObjArray           *fMCtrklt;//! tracklet2mc calib
   
-  ClassDef(AliTRDtrackingResolution, 1) // tracking resolution task
+  ClassDef(AliTRDtrackingResolution, 1) // TRD tracking resolution task
 };
 #endif