]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TPC/AliMCTrackingTestTask.h
initial version if the central QA producing script
[u/mrichter/AliRoot.git] / PWGPP / TPC / AliMCTrackingTestTask.h
1 #ifndef ALIMCTRACKINGTESTTASK_H
2 #define ALIMCTRACKINGTESTTASK_H
3
4 // ROOT includes
5 #include <TList.h>
6 #include <TH1.h>
7 #include <TH2.h>
8
9 // AliRoot includes
10 #include <AliAnalysisTask.h>
11 #include <AliESDEvent.h>
12 #include <AliESDfriend.h>
13 #include <AliESDtrack.h>
14 #include <AliESDfriendTrack.h>
15 #include <AliTPCseed.h>
16 #include <TString.h>
17 class AliGenInfoMaker;
18 class TTreeSRedirector;
19 class AliMCEventHadnler;
20 class TParticle;
21 class AliMCInfo;
22 class AliESDRecInfo;
23 class AliESDEvent;
24 class AliMCEvent;
25 class AliComparisonObject;
26 class AliTrackComparison;
27
28 class AliMCTrackingTestTask : public AliAnalysisTask {
29  public:
30  AliMCTrackingTestTask();
31  AliMCTrackingTestTask(const char *name);
32   virtual ~AliMCTrackingTestTask();
33   
34   virtual void   ConnectInputData(Option_t *);
35   virtual void   CreateOutputObjects();
36   virtual void   Exec(Option_t *option);
37   virtual void   Terminate(Option_t *);
38   virtual void FinishTaskOutput();
39   void         SetDebugOuputhPath(const char * name){fDebugOutputPath=name;}
40
41   //
42   void           ProcessMCInfo();
43   void           ProcessRefTracker(AliTrackReference* refIn, AliTrackReference* refOut, TParticle*part, Int_t type);
44   
45   void           FitTrackRefs(TParticle * part, TClonesArray * trefs);
46
47   Bool_t         IsFindable(Int_t label, Float_t minTrackLength);
48   Bool_t         AddComparisonObject(AliTrackComparison* comp);
49   //
50   // debug streamer part
51   //
52   TTreeSRedirector *GetDebugStreamer();
53   void       SetStreamLevel(Int_t streamLevel){fStreamLevel=streamLevel;}
54   void       SetDebugLevel(Int_t level) {fDebugLevel = level;}
55   Int_t      GetStreamLevel() const {return fStreamLevel;}
56   Int_t      GetDebugLevel() const {return fDebugLevel;}
57   //
58   static AliExternalTrackParam * MakeTrack(const AliTrackReference* ref, TParticle*part);
59   static Bool_t  PropagateToPoint(AliExternalTrackParam *param, Double_t *xyz, Double_t mass,  Float_t step);
60  protected:
61   void RegisterDebugOutput();
62   AliMCTrackingTestTask(const AliMCTrackingTestTask& /*info*/);
63   AliMCTrackingTestTask& operator=(const AliMCTrackingTestTask& /*info*/) { return *this;}
64   AliMCEvent  * fMCinfo;          //! MC event handler
65   AliESDEvent * fESD;             //! current esd event
66   
67   Int_t         fCurrentRun;      //  current run number
68
69   //
70   //
71   //
72   TTreeSRedirector *fDebugStreamer;     //! debug streamer
73   Int_t  fStreamLevel;                  //  debug stream level 
74   Int_t  fDebugLevel;                   //  debug level
75   TString      fDebugOutputPath; // debug output path
76
77   TList* fOutList;
78   TIterator *fPitList;        //! iterator over the output objetcs  
79   TList *fCompList; 
80
81   ClassDef(AliMCTrackingTestTask, 1); // Analysis task base class for tracks
82 };
83
84 #endif