]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliGenInfoTask.h
SVN keyword Id is set
[u/mrichter/AliRoot.git] / PWG1 / AliGenInfoTask.h
1 #ifndef ALIGENINFOTASK_H
2 #define ALIGENINFOTASK_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 class AliGenInfoMaker;
17 class TTreeSRedirector;
18 class AliMCEventHadnler;
19 class TParticle;
20 class AliMCInfo;
21 class AliESDRecInfo;
22 class AliESDEvent;
23 class AliESDfriend;
24 class AliMCEvent;
25 class AliComparisonObject;
26
27 class AliGenInfoTask : public AliAnalysisTask {
28  public:
29  AliGenInfoTask();
30  AliGenInfoTask(const char *name);
31   virtual ~AliGenInfoTask();
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   //
39   //
40   void ProcessMCInfo();
41   void ProcessESDInfo();
42   void ProcessComparison();
43   void DumpInfo();  
44   static  Float_t GetTPCTrackLength(const TClonesArray& trackRefs, TParticle*part, Float_t bz,  Int_t &counter, Float_t deadWidth);
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   Bool_t     AcceptParticle(TParticle *part);  
56   AliMCInfo *GetTrack(Int_t index, Bool_t force=kFALSE);
57   AliESDRecInfo *GetRecTrack(Int_t index, Bool_t force=kFALSE);
58   Bool_t     AddComparisonObject(AliComparisonObject *pObj);
59   void             RegisterDebugOutput(const char *path);
60   void         SetDebugOuputhPath(const char * name){fDebugOutputPath=name;}
61  protected:
62   AliGenInfoTask(const AliGenInfoTask& /*info*/);
63   AliGenInfoTask& operator=(const AliGenInfoTask& /*info*/) { return *this;}
64   AliMCEvent  * fMCinfo;     //! MC event handler
65   AliESDEvent * fESD;             //! current esd event
66   AliESDfriend * fESDfriend;             //! current esd event
67   //
68   TObjArray   *fCompList;        // comparison object list
69   //
70   TClonesArray *fGenTracksArray;  //clones array with filtered particles
71   TClonesArray *fGenKinkArray;    //clones array with filtered Kinks
72   TClonesArray *fGenV0Array;      //clones array with filtered V0s
73   //
74   TClonesArray *fRecTracksArray;  //clones array with filtered tracks 
75   //
76   //
77   TTreeSRedirector *fDebugStreamer;     //! debug streamer
78   Int_t  fStreamLevel;                  //  debug stream level 
79   Int_t  fDebugLevel;                   //  debug level
80   TString      fDebugOutputPath; // debug output path
81   ClassDef(AliGenInfoTask, 1); // Analysis task base class for tracks
82 };
83
84 #endif