]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGUD/selectors/multiplicity/AliMultiplicityTask.h
Transition PWG0 -> PWGUD
[u/mrichter/AliRoot.git] / PWGUD / selectors / multiplicity / AliMultiplicityTask.h
CommitLineData
a9017e49 1/* $Id$ */
2
3#ifndef AliMultiplicityTask_H
4#define AliMultiplicityTask_H
5
6#include "AliAnalysisTask.h"
745d6088 7
a9017e49 8#include <TString.h>
745d6088 9#include "AliPWG0Helper.h"
a9017e49 10
11class AliESDtrackCuts;
12class AliMultiplicityCorrection;
13class TNtuple;
14class AliCorrection;
15class TH1;
69b09e3b 16class TH1D;
f55b30d2 17class TH2F;
18class TH3F;
a9017e49 19class AliESDEvent;
20
21class AliMultiplicityTask : public AliAnalysisTask {
22 public:
23 AliMultiplicityTask(const char* opt = "");
24 virtual ~AliMultiplicityTask();
25
26 virtual void ConnectInputData(Option_t *);
27 virtual void CreateOutputObjects();
28 virtual void Exec(Option_t*);
29 virtual void Terminate(Option_t *);
30
31 void SetTrackCuts(AliESDtrackCuts* cuts) { fEsdTrackCuts = cuts; }
69b09e3b 32 void SetPtSpectrum(TH1D* hist) { fPtSpectrum = hist; }
a9017e49 33
745d6088 34 void SetAnalysisMode(AliPWG0Helper::AnalysisMode mode) { fAnalysisMode = mode; }
70fdd197 35 void SetTrigger(AliTriggerAnalysis::Trigger trigger) { fTrigger = trigger; }
69b09e3b 36 void SetDeltaPhiCut(Float_t cut) { fDeltaPhiCut = cut; }
a2cdb42c 37
2fa65f52 38 void SetReadMC(Bool_t flag = kTRUE) { fReadMC = flag; }
f3eb27f6 39 void SetUseMCVertex(Bool_t flag = kTRUE) { fUseMCVertex = flag; }
eb9356d5 40 void SetSkipParticles(Bool_t flag = kTRUE) { fSystSkipParticles = flag; }
41 void SetDiffTreatment(AliPWG0Helper::DiffTreatment diffTreatment) { fDiffTreatment = diffTreatment; }
42
a9017e49 43 protected:
44 AliESDEvent *fESD; //! ESD object
45
46 TString fOption; // option string
745d6088 47 AliPWG0Helper::AnalysisMode fAnalysisMode; // detector that is used for analysis
70fdd197 48 AliTriggerAnalysis::Trigger fTrigger; // trigger that is used
69b09e3b 49 Float_t fDeltaPhiCut; // cut in delta phi (only SPD)
eb9356d5 50 AliPWG0Helper::DiffTreatment fDiffTreatment; // how to identify SD events (see AliPWG0Helper::GetEventProcessType)
51
2fa65f52 52 Bool_t fReadMC; // if true reads MC data (to build correlation maps)
f3eb27f6 53 Bool_t fUseMCVertex; // the MC vtx is used instead of the ESD vertex (for syst. check)
a9017e49 54
55 AliMultiplicityCorrection* fMultiplicity; //! object containing the extracted data
56 AliESDtrackCuts* fEsdTrackCuts; // Object containing the parameters of the esd track cuts
57
eb9356d5 58 Bool_t fSystSkipParticles; // if true skips particles (systematic study)
69b09e3b 59 AliCorrection* fParticleCorrection[8]; //! correction from measured to generated particles for different particles for trigger, vertex sample in |eta| < 2; switch on with "particle-efficiency"
60 // for each of the species (0..3): pi, k, p, other; for systematic study of pt cut off
61 // 4..7 counts for the same species the decayed particles (in generated) and stopped (in measured)
eb9356d5 62 Int_t fSelectProcessType; // 0 = all (default), 1 = ND, 2 = SD, 3 = DD (for systematic study)
69b09e3b 63 TNtuple *fParticleSpecies; //! per event: vtx_mc, (pi, k, p, rest (in |eta| < 1)) X (true, recon) + (nolabel,
a9017e49 64 // doubleTracks, doublePrimaries) [doubleTracks + doublePrimaries are already part of
69b09e3b 65 // rec. particles!); enable with: particle-species
66 TH1* fdNdpT; //! true pT spectrum (MC)
a9017e49 67
69b09e3b 68 TH1D* fPtSpectrum; // function that modifies the pt spectrum (syst. study)
eb9356d5 69
70 TH1* fTemp1; //! temp histogram for quick study of variables
71 TH1* fTemp2; //! temp histogram for quick study of variables
72
73 TH1* fEta[3]; //! eta histogram of events in the acceptance region for each of the eta-bins (control histogram)
a9017e49 74
f55b30d2 75 // control histograms (ESD)
76 TH3F* fVertex; //! 3d vertex distribution
77 TH2F* fEtaPhi; //! raw eta - phi distribution
78
a9017e49 79 TList* fOutput; //! list send on output slot 0
69b09e3b 80
a9017e49 81 private:
82 AliMultiplicityTask(const AliMultiplicityTask&);
83 AliMultiplicityTask& operator=(const AliMultiplicityTask&);
84
85 ClassDef(AliMultiplicityTask, 1);
86};
87
88#endif