First update for AOD compatibility (distributions and efficiency), still missing...
[u/mrichter/AliRoot.git] / PWGCF / EBYE / NetParticle / AliAnalysisNetParticleDistribution.h
CommitLineData
cb68eb1d 1//-*- Mode: C++ -*-
2
3#ifndef ALIANALYSISNETPARTICLEDISTRIBUTION_H
4#define ALIANALYSISNETPARTICLEDISTRIBUTION_H
5
6/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * See cxx source for full Copyright notice */
8
9// Helper Class for for NetParticle Distributions
10// Authors: Jochen Thaeder <jochen@thaeder.de>
11
12#include "THnSparse.h"
13#include "TH1F.h"
14#include "TF1.h"
15
16#include "AliAnalysisNetParticleHelper.h"
17
18class AliESDtrack;
19class AliMCEvent;
20class AliStack;
21class AliPIDResponse;
22class AliESDInputHandler;
23class AliESDtrackCuts;
9be43c8e 24class AliAODInputHandler;
cb68eb1d 25
26class AliAnalysisNetParticleDistribution : public TNamed {
27
28 public:
29
30 /*
31 * ---------------------------------------------------------------------------------
32 * Constructor / Destructor
33 * ---------------------------------------------------------------------------------
34 */
35
36 AliAnalysisNetParticleDistribution();
37 virtual ~AliAnalysisNetParticleDistribution();
38
39 /*
40 * ---------------------------------------------------------------------------------
41 * Public Methods
42 * ---------------------------------------------------------------------------------
43 */
44
45 /** Initialize */
9be43c8e 46 Int_t Initialize(AliAnalysisNetParticleHelper* helper, AliESDtrackCuts* cuts, Bool_t isMC, Float_t *ptRange, Float_t etaMax, Int_t trackCutBit);
cb68eb1d 47
48 /** Add histograms to outlist */
49 void CreateHistograms(TList *outList);
50
51 /** Setup Event */
9be43c8e 52 Int_t SetupEvent(AliESDInputHandler *esdHandler, AliAODInputHandler *aodHandler, AliMCEvent *mcEvent);
cb68eb1d 53
54 /** Resre Event */
55 void ResetEvent();
56
57 /** Process NetParticle Distributions */
58 Int_t Process();
59
60 ///////////////////////////////////////////////////////////////////////////////////
61
62 private:
63
64 AliAnalysisNetParticleDistribution(const AliAnalysisNetParticleDistribution&); // not implemented
65 AliAnalysisNetParticleDistribution& operator=(const AliAnalysisNetParticleDistribution&); // not implemented
66
67 /*
68 * ---------------------------------------------------------------------------------
69 * Process - Private
70 * ---------------------------------------------------------------------------------
71 */
72 /** Process ESD tracks and fill histograms */
73 Int_t ProcessESDTracks();
74
9be43c8e 75 /** Process AOD tracks and fill histograms */
76 Int_t ProcessAODTracks();
77
cb68eb1d 78 /** Process primary particles from the stack and fill histograms */
79 Int_t ProcessStackParticles();
80
81 /** Process control particles from the stack and fill histograms */
82 Int_t ProcessStackControlParticles();
83
84 /*
85 * ---------------------------------------------------------------------------------
86 * Helper Methods - private
87 * ---------------------------------------------------------------------------------
88 */
89
90 /** Add set of histograms */
91 void AddHistSet(const Char_t *name, const Char_t *title);
92
93 /** Fill set of histograms */
94 void FillHistSet(const Char_t *name, Float_t *np, Int_t controlIdx = -1);
95
96 /*
97 * ---------------------------------------------------------------------------------
98 * Members - private
99 * ---------------------------------------------------------------------------------
100 */
101
102 AliAnalysisNetParticleHelper *fHelper; //! Ptr to helper class
103
104 TList *fOutList; //! Output data container
105 // -----------------------------------------------------------------------
106 AliESDInputHandler *fESDHandler; //! Ptr to ESD handler
107 AliPIDResponse *fPIDResponse; //! Ptr to PID response Object
108 AliESDEvent *fESD; //! Ptr to ESD event
109
9be43c8e 110 AliAODInputHandler *fAODHandler; //! Ptr to AOD handler
111 AliAODEvent *fAOD; //! Ptr to AOD event
112
cb68eb1d 113 Bool_t fIsMC; // Is MC event
114
115 AliMCEvent *fMCEvent; //! Ptr to MC event
116 AliStack *fStack; //! Ptr to stack
117
118 AliESDtrackCuts *fESDTrackCuts; //! ESD cuts
119 // -----------------------------------------------------------------------
120 Float_t fEtaMax; // Max, absolut eta
121 Float_t *fPtRange; // Array of pt [min,max]
9be43c8e 122
123 Int_t fAODtrackCutBit; // Track filter bit for AOD tracks
cb68eb1d 124 // -----------------------------------------------------------------------
125 Float_t *fNp; // Array of particle/anti-particle counts
126
127 Int_t fNCorrNp; // N sets of arrays of corrected particle/anti-particle counts
128 Float_t **fCorrNp; // Array of corrected particle/anti-particle counts
129
130 Int_t fNMCNp; // N sets of arrays of MC particle/anti-particle counts
131 Float_t **fMCNp; // Array of MC particle/anti-particle counts
132
133 Int_t fNControlMCNp; // N sets of arrays of control MC particle/anti-particle counts
134 Float_t **fControlMCNp; // Array of control MC particle/anti-particle counts
135 // -----------------------------------------------------------------------
136 THnSparseF *fHnTrackUnCorr; // THnSparseF : uncorrected probe particles
137 // -----------------------------------------------------------------------
138
139 ClassDef(AliAnalysisNetParticleDistribution, 1);
140};
141
142#endif