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;
24 class AliComparisonObject;
26 class AliGenInfoTask : public AliAnalysisTask {
29 AliGenInfoTask(const char *name);
30 virtual ~AliGenInfoTask();
32 virtual void ConnectInputData(Option_t *);
33 virtual void CreateOutputObjects();
34 virtual void Exec(Option_t *option);
35 virtual void Terminate(Option_t *);
39 void ProcessESDInfo();
40 void ProcessComparison();
44 // debug streamer part
46 TTreeSRedirector *GetDebugStreamer();
47 void SetStreamLevel(Int_t streamLevel){fStreamLevel=streamLevel;}
48 void SetDebugLevel(Int_t level) {fDebugLevel = level;}
49 Int_t GetStreamLevel() const {return fStreamLevel;}
50 Int_t GetDebugLevel() const {return fDebugLevel;}
52 Bool_t AcceptParticle(TParticle *part);
53 AliMCInfo *GetTrack(Int_t index, Bool_t force=kFALSE);
54 AliESDRecInfo *GetRecTrack(Int_t index, Bool_t force=kFALSE);
55 Bool_t AddComparisonObject(AliComparisonObject *pObj);
57 AliGenInfoTask(const AliGenInfoTask& /*info*/);
58 AliGenInfoTask& operator=(const AliGenInfoTask& /*info*/) { return *this;}
59 AliMCEvent * fMCinfo; //! MC event handler
60 AliESDEvent * fESD; //! current esd event
62 TObjArray *fCompList; // comparison object list
64 TClonesArray *fGenTracksArray; //clones array with filtered particles
65 TClonesArray *fGenKinkArray; //clones array with filtered Kinks
66 TClonesArray *fGenV0Array; //clones array with filtered V0s
68 TClonesArray *fRecTracksArray; //clones array with filtered tracks
71 TTreeSRedirector *fDebugStreamer; //! debug streamer
72 Int_t fStreamLevel; // debug stream level
73 Int_t fDebugLevel; // debug level
74 ClassDef(AliGenInfoTask, 1); // Analysis task base class for tracks