don't lie in the log!
[u/mrichter/AliRoot.git] / PWGPP / TPC / AliMaterialBudget.h
CommitLineData
7cc34f08 1#ifndef ALIMATERIALBUDGET_H
2#define ALIMATERIALBUDGET_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#include <TString.h>
17class AliGenInfoMaker;
18class TTreeSRedirector;
19class AliMCEventHadnler;
20class TParticle;
21class AliMCInfo;
22class AliMCParticle;
23class AliESDRecInfo;
24class AliESDEvent;
25class AliMCEvent;
26class AliComparisonObject;
27
28class AliMaterialBudget : public AliAnalysisTask {
29 public:
30 AliMaterialBudget();
31 AliMaterialBudget(const char *name);
32 virtual ~AliMaterialBudget();
33
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;}
40
41 //
42 void FindPairs(AliESDEvent * event);
43 Bool_t IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1);
44 //
45 void ProcessMCInfo();
46 void ProcessRefTracker(AliTrackReference* refIn, AliTrackReference* refOut, TParticle*part, Int_t type);
47
48 void FitTrackRefs(TParticle * part, TClonesArray * trefs);
49
50 //
51 // debug streamer part
52 //
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;}
58 //
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);
62 //
63 AliTrackReference * GetFirstTPCTrackRef(AliMCParticle *mcParticle);
64 AliTrackReference * GetAllTOFinfo(AliMCParticle *mcParticle, Int_t & nTrackRef, Int_t &nTrackRefITS, Int_t retValue =0);
65 protected:
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
71 //
72 //
73 //
74 TTreeSRedirector *fDebugStreamer; //! debug streamer
75 Int_t fStreamLevel; // debug stream level
76 Int_t fDebugLevel; // debug level
77 TString fDebugOutputPath; // debug output path
78 //
79 // histogran
80 //
81 TList * fListHist; // list for histograms
82 TH1F * fHistMult; // track multiplicity histograms
83 //
84 // cuts
85 //
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
90 //
91 ClassDef(AliMaterialBudget, 1); // Analysis task base class for tracks
92};
93
94#endif