]>
Commit | Line | Data |
---|---|---|
f15155ed | 1 | #ifndef ALIANACALOTRACKCORRMAKER_H |
2 | #define ALIANACALOTRACKCORRMAKER_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | //_____________________________________________________________________________ | |
7 | // Steering class for particle (gamma, hadron) identification and correlation | |
8 | // analysis. It is called by the task class AliAnalysisTaskCaloTrackCorrelation | |
9 | // and it connects the input (ESD/AOD/MonteCarlo) got with AliCaloTrackReader | |
10 | // (produces TClonesArrays of AODs (TParticles in MC case if requested)), with | |
11 | // the analysis classes that derive from AliAnaCaloTrackCorrBaseClass | |
12 | // | |
13 | // -- Author: Gustavo Conesa (INFN-LNF, LPSC-Grenoble) | |
14 | ||
15 | // --- ROOT system --- | |
16 | class TList; | |
17 | class TClonesArray; | |
18 | #include<TObject.h> | |
4b7f6e01 | 19 | class TH1F; |
f15155ed | 20 | |
21 | // --- Analysis system --- | |
22 | #include "AliCaloTrackReader.h" | |
23 | #include "AliCalorimeterUtils.h" | |
24 | ||
25 | class AliAnaCaloTrackCorrMaker : public TObject { | |
26 | ||
27 | public: | |
4c795f31 | 28 | |
f15155ed | 29 | AliAnaCaloTrackCorrMaker() ; // default ctor |
30 | virtual ~AliAnaCaloTrackCorrMaker() ; // virtual dtor | |
31 | AliAnaCaloTrackCorrMaker(const AliAnaCaloTrackCorrMaker & maker) ; // cpy ctor | |
f15155ed | 32 | |
accd903d | 33 | // Setters and Getters |
34 | ||
f15155ed | 35 | void AddAnalysis(TObject* ana, Int_t n) ; |
36 | ||
b8d661af | 37 | void FillControlHistograms(); |
38 | ||
b0b90200 | 39 | TList * GetListOfAnalysisContainers() { return fAnalysisContainer ; } |
f15155ed | 40 | TList * GetListOfAnalysisCuts(); |
41 | TList * GetOutputContainer() ; | |
b0b90200 | 42 | |
f15155ed | 43 | TList * FillAndGetAODBranchList(); |
44 | ||
b0b90200 | 45 | Int_t GetAnaDebug() const { return fAnaDebug ; } |
46 | void SetAnaDebug(Int_t d) { fAnaDebug = d ; } | |
f15155ed | 47 | |
b0b90200 | 48 | Bool_t AreHistogramsMade() const { return fMakeHisto ; } |
49 | void SwitchOnHistogramsMaker() { fMakeHisto = kTRUE ; } | |
50 | void SwitchOffHistogramsMaker() { fMakeHisto = kFALSE ; } | |
f15155ed | 51 | |
b0b90200 | 52 | Bool_t AreAODsMade() const { return fMakeAOD ; } |
53 | void SwitchOnAODsMaker() { fMakeAOD = kTRUE ; } | |
54 | void SwitchOffAODsMaker() { fMakeAOD = kFALSE ; } | |
f15155ed | 55 | |
56 | ||
57 | AliCaloTrackReader * GetReader() { if(!fReader) fReader = new AliCaloTrackReader (); | |
58 | return fReader ; } | |
59 | void SetReader(AliCaloTrackReader * reader) { fReader = reader ; } | |
60 | ||
61 | AliCalorimeterUtils * GetCaloUtils() { if(!fCaloUtils) fCaloUtils = new AliCalorimeterUtils(); | |
62 | return fCaloUtils ; } | |
63 | void SetCaloUtils(AliCalorimeterUtils * caloutils) { fCaloUtils = caloutils ; } | |
64 | ||
accd903d | 65 | void SetScaleFactor(Double_t scale) { fScaleFactor = scale ; } |
66 | ||
67 | ||
68 | // Main general methods | |
69 | ||
f15155ed | 70 | void Init(); |
71 | ||
72 | void InitParameters(); | |
73 | ||
74 | void Print(const Option_t * opt) const; | |
75 | ||
76 | void ProcessEvent(const Int_t iEntry, const char * currentFileName) ; | |
77 | ||
78 | void Terminate(TList * outputList); | |
79 | ||
accd903d | 80 | |
f15155ed | 81 | private: |
82 | ||
83 | //General Data members | |
84 | ||
accd903d | 85 | AliCaloTrackReader * fReader ; // Pointer to reader |
86 | AliCalorimeterUtils * fCaloUtils ; // Pointer to CalorimeterUtils | |
4c795f31 | 87 | |
accd903d | 88 | TList * fOutputContainer ; //! Output histograms container |
89 | TList * fAnalysisContainer ; // List with analysis pointers | |
90 | Bool_t fMakeHisto ; // If true makes final analysis with histograms as output | |
91 | Bool_t fMakeAOD ; // If true makes analysis generating AODs | |
92 | Int_t fAnaDebug; // Debugging info. | |
93 | TList * fCuts ; //! List with analysis cuts | |
94 | Double_t fScaleFactor ; // Scaling factor needed for normalization | |
95 | ||
4c795f31 | 96 | // Control histograms |
4b7f6e01 | 97 | TH1F * fhNEvents; //! Number of events counter histogram |
98 | TH1F * fhNPileUpEvents; //! N events pasing pile up cut | |
accd903d | 99 | TH1F * fhZVertex; //! Vertex of accepted event |
4b7f6e01 | 100 | TH1F * fhPileUpClusterMult; //! N clusters with high time |
101 | TH1F * fhPileUpClusterMultAndSPDPileUp; //! N clusters with high time in events tagged as pile-up by SPD | |
4b7f6e01 | 102 | TH1F * fhTrackMult; //! Number of tracks per event histogram |
accd903d | 103 | TH1F * fhCentrality; //! Histogram with centrality bins |
f7eac3ca | 104 | TH1F * fhEventPlaneAngle; //! Histogram with Event plane angle |
4b7f6e01 | 105 | TH1F * fhNMergedFiles; //! Number of files merged |
accd903d | 106 | TH1F * fhScaleFactor; //! Factor to scale histograms |
4b7f6e01 | 107 | TH1F * fhEMCalBCEvent; //! N events depending on the existance of a cluster in a given bunch crossing |
108 | TH1F * fhEMCalBCEventCut; //! N events depending on the existance of a cluster above acceptance and E cut in a given bunch crossing | |
109 | TH1F * fhTrackBCEvent; //! N events depending on the existance of a track in a given bunch crossing | |
110 | TH1F * fhTrackBCEventCut; //! N events depending on the existance of a track above acceptance and pt cut in a given bunch crossing | |
111 | TH1F * fhPrimaryVertexBC; //! Primary vertex BC | |
b8d661af | 112 | TH1F * fhTimeStampFraction; //! event fraction depending on Time Stamp, only if activated on reader |
113 | ||
f15155ed | 114 | AliAnaCaloTrackCorrMaker & operator = (const AliAnaCaloTrackCorrMaker & ) ; // cpy assignment |
115 | ||
b8d661af | 116 | ClassDef(AliAnaCaloTrackCorrMaker,15) |
f15155ed | 117 | } ; |
118 | ||
119 | ||
120 | #endif //ALIANACALOTRACKCORRMAKER_H | |
121 | ||
122 | ||
123 |