]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliMCTrackingTestTask.h
Adding test for AliExternalTrackParam::Update
[u/mrichter/AliRoot.git] / PWG1 / 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
27 class AliMCTrackingTestTask : public AliAnalysisTask {
28  public:
29  AliMCTrackingTestTask();
30  AliMCTrackingTestTask(const char *name);
31   virtual ~AliMCTrackingTestTask();
32   
33   virtual void   ConnectInputData(Option_t *);
34   virtual void   CreateOutputObjects();
35   virtual void   Exec(Option_t *option);
36   virtual void   Terminate(Option_t *);
37   virtual void FinishTaskOutput();
38   void         SetDebugOuputhPath(const char * name){fDebugOutputPath=name;}
39
40   //
41   void           ProcessMCInfo();
42   void           ProcessRefTracker(AliTrackReference* refIn, AliTrackReference* refOut, TParticle*part, Int_t type);
43   
44   void           FitTrackRefs(TParticle * part, TClonesArray * trefs);
45
46   //
47   // debug streamer part
48   //
49   TTreeSRedirector *GetDebugStreamer();
50   void       SetStreamLevel(Int_t streamLevel){fStreamLevel=streamLevel;}
51   void       SetDebugLevel(Int_t level) {fDebugLevel = level;}
52   Int_t      GetStreamLevel() const {return fStreamLevel;}
53   Int_t      GetDebugLevel() const {return fDebugLevel;}
54   //
55   static AliExternalTrackParam * MakeTrack(const AliTrackReference* ref, TParticle*part);
56   static Bool_t  PropagateToPoint(AliExternalTrackParam *param, Double_t *xyz, Double_t mass,  Float_t step);
57  protected:
58   void RegisterDebugOutput();
59   AliMCTrackingTestTask(const AliMCTrackingTestTask& /*info*/);
60   AliMCTrackingTestTask& operator=(const AliMCTrackingTestTask& /*info*/) { return *this;}
61   AliMCEvent  * fMCinfo;          //! MC event handler
62   AliESDEvent * fESD;             //! current esd event
63   //
64   //
65   //
66   TTreeSRedirector *fDebugStreamer;     //! debug streamer
67   Int_t  fStreamLevel;                  //  debug stream level 
68   Int_t  fDebugLevel;                   //  debug level
69   TString      fDebugOutputPath; // debug output path
70   ClassDef(AliMCTrackingTestTask, 1); // Analysis task base class for tracks
71 };
72
73 #endif