1 #ifndef ALIMATERIALBUDGET_H
2 #define ALIMATERIALBUDGET_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>
17 class AliGenInfoMaker;
18 class TTreeSRedirector;
19 class AliMCEventHadnler;
26 class AliComparisonObject;
28 class AliMaterialBudget : public AliAnalysisTask {
31 AliMaterialBudget(const char *name);
32 virtual ~AliMaterialBudget();
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;}
42 void FindPairs(AliESDEvent * event);
43 Bool_t IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1);
46 void ProcessRefTracker(AliTrackReference* refIn, AliTrackReference* refOut, TParticle*part, Int_t type);
48 void FitTrackRefs(TParticle * part, TClonesArray * trefs);
51 // debug streamer part
53 TTreeSRedirector *GetDebugStreamer();
54 void SetStreamLevel(Int_t streamLevel){fStreamLevel=streamLevel;}
55 void SetDebugLevel(Int_t level) {fDebugLevel = level;}
56 Int_t GetStreamLevel() const {return fStreamLevel;}
57 Int_t GetDebugLevel() const {return fDebugLevel;}
59 static Bool_t PropagateCosmicToDCA(AliExternalTrackParam *param0, AliExternalTrackParam *param1, Double_t mass);
60 static AliExternalTrackParam * MakeTrack(const AliTrackReference* ref, TParticle*part);
61 static Bool_t PropagateToPoint(AliExternalTrackParam *param, Double_t *xyz, Double_t mass, Float_t step);
63 AliTrackReference * GetFirstTPCTrackRef(AliMCParticle *mcParticle);
64 AliTrackReference * GetAllTOFinfo(AliMCParticle *mcParticle, Int_t & nTrackRef, Int_t &nTrackRefITS, Int_t retValue =0);
66 void RegisterDebugOutput();
67 AliMaterialBudget(const AliMaterialBudget& /*info*/);
68 AliMaterialBudget& operator=(const AliMaterialBudget& /*info*/) { return *this;}
69 AliMCEvent * fMCinfo; //! MC event handler
70 AliESDEvent * fESD; //! current esd event
74 TTreeSRedirector *fDebugStreamer; //! debug streamer
75 Int_t fStreamLevel; // debug stream level
76 Int_t fDebugLevel; // debug level
77 TString fDebugOutputPath; // debug output path
81 TList * fListHist; // list for histograms
82 TH1F * fHistMult; // track multiplicity histograms
86 Float_t fCutMaxD; // maximal distance in rfi ditection
87 Float_t fCutMaxDz; // maximal distance in z ditection
88 Float_t fCutTheta; // maximal distance in theta ditection
89 Float_t fCutMinDir; // direction vector products
91 ClassDef(AliMaterialBudget, 1); // Analysis task base class for tracks