]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/AliMaterialBudget.h
PreReading of MC information on demand.
[u/mrichter/AliRoot.git] / PWG1 / AliMaterialBudget.h
CommitLineData
54709d62 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 AliESDRecInfo;
23class AliESDEvent;
24class AliMCEvent;
25class AliComparisonObject;
26
27class AliMaterialBudget : public AliAnalysisTask {
28 public:
29 AliMaterialBudget();
30 AliMaterialBudget(const char *name);
31 virtual ~AliMaterialBudget();
32
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;}
39
40 //
41 void FindPairs(AliESDEvent * event);
42 Bool_t IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1);
43 //
44 void ProcessMCInfo();
45 void ProcessRefTracker(AliTrackReference* refIn, AliTrackReference* refOut, TParticle*part, Int_t type);
46
47 void FitTrackRefs(TParticle * part, TClonesArray * trefs);
48
49 //
50 // debug streamer part
51 //
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;}
57 //
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);
61 //
62 AliTrackReference * GetFirstTPCTrackRef(AliMCParticle *mcParticle);
63 AliTrackReference * GetAllTOFinfo(AliMCParticle *mcParticle, Int_t & nTrackRef, Int_t &nTrackRefITS, Int_t retValue =0);
64 protected:
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
70 //
71 //
72 //
73 TTreeSRedirector *fDebugStreamer; //! debug streamer
74 Int_t fStreamLevel; // debug stream level
75 Int_t fDebugLevel; // debug level
76 TString fDebugOutputPath; // debug output path
77 //
78 // histogran
79 //
80 TList * fListHist; // list for histograms
81 TH1F * fHistMult; // track multiplicity histograms
82 //
83 // cuts
84 //
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
89 //
90 ClassDef(AliMaterialBudget, 1); // Analysis task base class for tracks
91};
92
93#endif