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;
25 class AliComparisonObject;
27 class AliMaterialBudget : public AliAnalysisTask {
30 AliMaterialBudget(const char *name);
31 virtual ~AliMaterialBudget();
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;}
41 void FindPairs(AliESDEvent * event);
42 Bool_t IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1);
45 void ProcessRefTracker(AliTrackReference* refIn, AliTrackReference* refOut, TParticle*part, Int_t type);
47 void FitTrackRefs(TParticle * part, TClonesArray * trefs);
50 // debug streamer part
52 TTreeSRedirector *GetDebugStreamer();
53 void SetStreamLevel(Int_t streamLevel){fStreamLevel=streamLevel;}
54 void SetDebugLevel(Int_t level) {fDebugLevel = level;}
55 Int_t GetStreamLevel() const {return fStreamLevel;}
56 Int_t GetDebugLevel() const {return fDebugLevel;}
58 static Bool_t PropagateCosmicToDCA(AliExternalTrackParam *param0, AliExternalTrackParam *param1, Double_t mass);
59 static AliExternalTrackParam * MakeTrack(const AliTrackReference* ref, TParticle*part);
60 static Bool_t PropagateToPoint(AliExternalTrackParam *param, Double_t *xyz, Double_t mass, Float_t step);
62 AliTrackReference * GetFirstTPCTrackRef(AliMCParticle *mcParticle);
63 AliTrackReference * GetAllTOFinfo(AliMCParticle *mcParticle, Int_t & nTrackRef, Int_t &nTrackRefITS, Int_t retValue =0);
65 void RegisterDebugOutput();
66 AliMaterialBudget(const AliMaterialBudget& /*info*/);
67 AliMaterialBudget& operator=(const AliMaterialBudget& /*info*/) { return *this;}
68 AliMCEvent * fMCinfo; //! MC event handler
69 AliESDEvent * fESD; //! current esd event
73 TTreeSRedirector *fDebugStreamer; //! debug streamer
74 Int_t fStreamLevel; // debug stream level
75 Int_t fDebugLevel; // debug level
76 TString fDebugOutputPath; // debug output path
80 TList * fListHist; // list for histograms
81 TH1F * fHistMult; // track multiplicity histograms
85 Float_t fCutMaxD; // maximal distance in rfi ditection
86 Float_t fCutMaxDz; // maximal distance in z ditection
87 Float_t fCutTheta; // maximal distance in theta ditection
88 Float_t fCutMinDir; // direction vector products
90 ClassDef(AliMaterialBudget, 1); // Analysis task base class for tracks