]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/EBYE/NetParticle/AliAnalysisNetParticleDistribution.h
Added directory PWGLF/STRANGENESS/Correlations to CMakelibPWGLFSTRANGENESS.pkg
[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;
24
25class AliAnalysisNetParticleDistribution : public TNamed {
26
27 public:
28
29 /*
30 * ---------------------------------------------------------------------------------
31 * Constructor / Destructor
32 * ---------------------------------------------------------------------------------
33 */
34
35 AliAnalysisNetParticleDistribution();
36 virtual ~AliAnalysisNetParticleDistribution();
37
38 /*
39 * ---------------------------------------------------------------------------------
40 * Public Methods
41 * ---------------------------------------------------------------------------------
42 */
43
44 /** Initialize */
45 Int_t Initialize(AliAnalysisNetParticleHelper* helper, AliESDtrackCuts* cuts, Bool_t isMC, Float_t *ptRange, Float_t etaMax);
46
47 /** Add histograms to outlist */
48 void CreateHistograms(TList *outList);
49
50 /** Setup Event */
51 Int_t SetupEvent(AliESDInputHandler *esdHandler, AliMCEvent *mcEvent);
52
53 /** Resre Event */
54 void ResetEvent();
55
56 /** Process NetParticle Distributions */
57 Int_t Process();
58
59 ///////////////////////////////////////////////////////////////////////////////////
60
61 private:
62
63 AliAnalysisNetParticleDistribution(const AliAnalysisNetParticleDistribution&); // not implemented
64 AliAnalysisNetParticleDistribution& operator=(const AliAnalysisNetParticleDistribution&); // not implemented
65
66 /*
67 * ---------------------------------------------------------------------------------
68 * Process - Private
69 * ---------------------------------------------------------------------------------
70 */
71 /** Process ESD tracks and fill histograms */
72 Int_t ProcessESDTracks();
73
74 /** Process primary particles from the stack and fill histograms */
75 Int_t ProcessStackParticles();
76
77 /** Process control particles from the stack and fill histograms */
78 Int_t ProcessStackControlParticles();
79
80 /*
81 * ---------------------------------------------------------------------------------
82 * Helper Methods - private
83 * ---------------------------------------------------------------------------------
84 */
85
86 /** Add set of histograms */
87 void AddHistSet(const Char_t *name, const Char_t *title);
88
89 /** Fill set of histograms */
90 void FillHistSet(const Char_t *name, Float_t *np, Int_t controlIdx = -1);
91
92 /*
93 * ---------------------------------------------------------------------------------
94 * Members - private
95 * ---------------------------------------------------------------------------------
96 */
97
98 AliAnalysisNetParticleHelper *fHelper; //! Ptr to helper class
99
100 TList *fOutList; //! Output data container
101 // -----------------------------------------------------------------------
102 AliESDInputHandler *fESDHandler; //! Ptr to ESD handler
103 AliPIDResponse *fPIDResponse; //! Ptr to PID response Object
104 AliESDEvent *fESD; //! Ptr to ESD event
105
106 Bool_t fIsMC; // Is MC event
107
108 AliMCEvent *fMCEvent; //! Ptr to MC event
109 AliStack *fStack; //! Ptr to stack
110
111 AliESDtrackCuts *fESDTrackCuts; //! ESD cuts
112 // -----------------------------------------------------------------------
113 Float_t fEtaMax; // Max, absolut eta
114 Float_t *fPtRange; // Array of pt [min,max]
115 // -----------------------------------------------------------------------
116 Float_t *fNp; // Array of particle/anti-particle counts
117
118 Int_t fNCorrNp; // N sets of arrays of corrected particle/anti-particle counts
119 Float_t **fCorrNp; // Array of corrected particle/anti-particle counts
120
121 Int_t fNMCNp; // N sets of arrays of MC particle/anti-particle counts
122 Float_t **fMCNp; // Array of MC particle/anti-particle counts
123
124 Int_t fNControlMCNp; // N sets of arrays of control MC particle/anti-particle counts
125 Float_t **fControlMCNp; // Array of control MC particle/anti-particle counts
126 // -----------------------------------------------------------------------
127 THnSparseF *fHnTrackUnCorr; // THnSparseF : uncorrected probe particles
128 // -----------------------------------------------------------------------
129
130 ClassDef(AliAnalysisNetParticleDistribution, 1);
131};
132
133#endif