1 #ifndef ALIGENINFOTASK_H
2 #define ALIGENINFOTASK_H
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;
25 class AliComparisonObject;
27 class AliGenInfoTask : public AliAnalysisTask {
30 AliGenInfoTask(const char *name);
31 virtual ~AliGenInfoTask();
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();
41 void ProcessESDInfo();
42 void ProcessComparison();
44 static Float_t GetTPCTrackLength(const TClonesArray& trackRefs, TParticle*part, Float_t bz, Int_t &counter, Float_t deadWidth);
47 // debug streamer part
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;}
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;}
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
68 TObjArray *fCompList; // comparison object list
70 TClonesArray *fGenTracksArray; //clones array with filtered particles
71 TClonesArray *fGenKinkArray; //clones array with filtered Kinks
72 TClonesArray *fGenV0Array; //clones array with filtered V0s
74 TClonesArray *fRecTracksArray; //clones array with filtered tracks
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