]> 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 ae8748f9d73af872082ea78dd02dbae992aabbac..63b412e8d27740e713d322555608ef31327d8327 100644 (file)
 //                                                                        //
 ////////////////////////////////////////////////////////////////////////////
 
-#include "AliAnalysisTask.h"
+#ifndef ALITRDRECOTASK_H
+#include "AliTRDrecoTask.h"
+#endif
 
+class TH1;
+class TF1;
 class TObjArray;
-class TList;
-class TH2I;
-class TProfile;
-class TTreeSRedirector;
-
-class AliTRDtrackingResolution : public AliAnalysisTask{
+class AliTRDReconstructor;
+class AliTRDgeometry;
+class AliTRDrecoParam;
+class AliTRDseedV1;
+class AliTRDtrackInfo;
+class AliTRDtrackingResolution : public AliTRDrecoTask
+{
 public:
-  AliTRDtrackingResolution(const char *name = "TRD Tracking Resolution");
-  ~AliTRDtrackingResolution(){};
-  
-  void ConnectInputData(Option_t *);
-  void CreateOutputObjects();
-  void Exec(Option_t *);
-  void Terminate(Option_t *);
+  enum{
+    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 SetDebugLevel(Int_t level);
-  Int_t GetDebugLevel() const { return fDebugLevel;}
+  void    CreateOutputObjects();
+  Bool_t  GetRefFigure(Int_t ifig);
+  TObjArray*  Histos(); 
+  void    Exec(Option_t *);
+  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&);
+  void        AdjustF1(TH1 *h, TF1 *f);
 
 private:
-  enum{
-    kNLayers = 6
-  };
-  TObjArray *fTrackObjects;     // Input Track Info container
-  TList     *fOutputHistograms; // Container for the output histograms
-  TH2I      *fYRes;
-  TH2I      *fPhiRes;
-  //TGraph      *fSigmaY;             // y-Resolution
-/*             TH1F *fZres;                                                                                                            // z-Resolution
-    TProfile *fYresAngle;                                                                              // y-Resolution dependent on Angle*/
-/*             TH1F *fYresLayer[kNLayers];                                                     // y-Resolution histograms for each Layer
-    TH1F *fZresLayer[kNLayers];                                                        // z-Resolution histograms for each Layer
-    TProfile *fYresLayerAngle[kNLayers];               // y-Resolution histograms for each Layer - Angular Dependence*/
-/*             TH1F *fPhiRes;                                                                                                  // Angular resolution in Phi-Direction
-    TProfile *fPhiResAngle;                                                                    // Phi-resolution dependent on angle*/
-/*             TH1F *fPhiResLayer[kNLayers];                                           // Phi-Resolution histograms for each Layer
-    TProfile *fPhiResLayerAngle[kNLayers];     // Phi-resolution histograms for each Layer - Angular Dependence */
-    Int_t fDebugLevel;                                                                                 // Debug Level
-    TTreeSRedirector *fDebugStream;                            // Debug stream
+  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