]>
Commit | Line | Data |
---|---|---|
0aaa8b91 | 1 | #ifndef ALIDNDPT_H |
2 | #define ALIDNDPT_H | |
3 | ||
4 | //------------------------------------------------------------------------------ | |
5 | // Abstract class for dNdPt analysis. All dNdPt components should derive from it. | |
6 | // | |
7 | // Author: J.Otwinowski 03/11/2008 | |
df1c0513 | 8 | // last change: 2011-06-13 by M.Knichel |
0aaa8b91 | 9 | //------------------------------------------------------------------------------ |
10 | ||
11 | class AliESDEvent; | |
12 | class AliMCEvent; | |
13 | class AliESDtrackCuts; | |
14 | class AlidNdPtEventCuts; | |
15 | class AlidNdPtAcceptanceCuts; | |
d269b0e6 | 16 | class AliPhysicsSelection; |
7f7dd416 | 17 | class AlidNdPtBackgroundCuts; |
0aaa8b91 | 18 | |
19 | #include "TNamed.h" | |
20 | #include "TFolder.h" | |
70fdd197 | 21 | #include "AliTriggerAnalysis.h" |
0aaa8b91 | 22 | #include "AlidNdPtHelper.h" |
23 | ||
24 | class AlidNdPt : public TNamed { | |
25 | public: | |
26 | AlidNdPt(); | |
27 | AlidNdPt(Char_t* name, Char_t* title); | |
28 | ~AlidNdPt(); | |
29 | ||
30 | // Init data members | |
31 | virtual void Init() = 0; | |
32 | ||
33 | // Process events | |
34 | virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0) = 0; | |
35 | ||
36 | // Merge output objects (needed by PROOF) | |
c931948b | 37 | virtual Long64_t Merge(TCollection* const list=0) = 0; |
0aaa8b91 | 38 | |
39 | // Analyse output histograms | |
40 | virtual void Analyse() = 0; | |
41 | ||
42 | // Export analysed output objects to folder | |
c931948b | 43 | virtual TFolder *ExportToFolder(TObjArray * const array=0) = 0; |
0aaa8b91 | 44 | |
45 | // | |
0aaa8b91 | 46 | |
47 | // | |
bad4ba69 | 48 | void SetEventCuts(AlidNdPtEventCuts* const cuts) { fdNdPtEventCuts = cuts; } |
df1c0513 | 49 | void SetAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts) { fdNdPtAcceptanceCuts = cuts; } |
68f10917 | 50 | void SetRecAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts) { fdNdPtRecAcceptanceCuts = cuts; } |
df1c0513 | 51 | void SetMultAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts){ fMultAcceptanceCuts = cuts; } |
bad4ba69 | 52 | void SetTrackCuts(AliESDtrackCuts* const cuts) { fEsdTrackCuts = cuts; } |
df1c0513 | 53 | void SetMultTrackCuts(AliESDtrackCuts* const cuts) { fMultTrackCuts = cuts; } |
bad4ba69 | 54 | void SetUseMCInfo(const Bool_t info) { fUseMCInfo = info; } |
55 | void SetAnalysisMode(const AlidNdPtHelper::AnalysisMode mode) { fAnalysisMode = mode; } | |
70fdd197 | 56 | void SetTrigger(const AliTriggerAnalysis::Trigger trigger) { fTrigger = trigger; } |
985bdfd5 | 57 | void SetTriggerClass(const Char_t *triggerClass) { fTriggerClass = triggerClass; } |
847e74b2 | 58 | void SetParticleMode(const AlidNdPtHelper::ParticleMode mode) { fParticleMode = mode; } |
d269b0e6 | 59 | void SetPhysicsTriggerSelection(AliPhysicsSelection* const selection) { fPhysicsSelection = selection; } |
7f7dd416 | 60 | void SetBackgroundCuts(AlidNdPtBackgroundCuts* const cuts) { fdNdPtBackgroundCuts = cuts; } |
bad4ba69 | 61 | |
62 | AlidNdPtEventCuts* GetEventCuts() const { return fdNdPtEventCuts; } | |
63 | AlidNdPtAcceptanceCuts* GetAcceptanceCuts() const { return fdNdPtAcceptanceCuts; } | |
df1c0513 | 64 | AlidNdPtAcceptanceCuts* GetMultAcceptanceCuts() const { return (fMultAcceptanceCuts) ? fMultAcceptanceCuts : fdNdPtAcceptanceCuts; } |
65 | AlidNdPtAcceptanceCuts* GetRecAcceptanceCuts() const { return fdNdPtRecAcceptanceCuts; } | |
bad4ba69 | 66 | AliESDtrackCuts* GetTrackCuts() const { return fEsdTrackCuts; } |
df1c0513 | 67 | AliESDtrackCuts* GetMultTrackCuts() const { return (fMultTrackCuts) ? fMultTrackCuts: fEsdTrackCuts; } |
bad4ba69 | 68 | Bool_t IsUseMCInfo() const { return fUseMCInfo; } |
69 | AlidNdPtHelper::AnalysisMode GetAnalysisMode() const { return fAnalysisMode; } | |
70fdd197 | 70 | AliTriggerAnalysis::Trigger GetTrigger() const { return fTrigger; } |
985bdfd5 | 71 | const Char_t* GetTriggerClass() const { return fTriggerClass; } |
847e74b2 | 72 | AlidNdPtHelper::ParticleMode GetParticleMode() const { return fParticleMode; } |
d269b0e6 | 73 | AliPhysicsSelection* GetPhysicsTriggerSelection() const { return fPhysicsSelection; } |
7f7dd416 | 74 | AlidNdPtBackgroundCuts* GetBackgroundCuts() const { return fdNdPtBackgroundCuts; } |
10360c58 | 75 | Double_t* CreateLogAxis(Int_t nbins, Double_t xmin, Double_t xmax); |
0aaa8b91 | 76 | |
a26e43aa | 77 | void SetAnalyseOutput(Bool_t analyseoutput) { fAnalyseOutput = analyseoutput; } |
78 | Bool_t GetAnalyseOutput() const { return fAnalyseOutput; } | |
79 | ||
80 | void SetMergeTHnSparse(Bool_t mergethnsparse) { fMergeTHnSparse = mergethnsparse; } | |
81 | Bool_t GetMergeTHnSparse() const { return fMergeTHnSparse; } | |
82 | ||
b2c68775 | 83 | void SetTriggerMask(UInt_t triggermask) { fTriggerMask = triggermask; } |
84 | UInt_t GetTriggerMask() { return fTriggerMask; } | |
85 | ||
86 | ||
fc98fbb5 | 87 | protected: |
88 | static Double_t* CloneArray(Int_t n, Double_t* source); | |
89 | ||
0aaa8b91 | 90 | private: |
91 | ||
154caed0 | 92 | AlidNdPt(const AlidNdPt&); // not implemented |
93 | AlidNdPt& operator=(const AlidNdPt&); // not implemented | |
94 | ||
0aaa8b91 | 95 | AlidNdPtEventCuts *fdNdPtEventCuts; // event cuts |
68f10917 | 96 | AlidNdPtAcceptanceCuts *fdNdPtAcceptanceCuts; // acceptance cuts |
97 | AlidNdPtAcceptanceCuts *fdNdPtRecAcceptanceCuts; // additional recontruction acceptance cuts (not used for MC truth) | |
df1c0513 | 98 | AlidNdPtAcceptanceCuts *fMultAcceptanceCuts; // acceptance cuts for multiplicity estimator |
0aaa8b91 | 99 | AliESDtrackCuts *fEsdTrackCuts; // esd track cuts |
df1c0513 | 100 | AliESDtrackCuts *fMultTrackCuts; // esd track cuts for multiplicity estimator |
0aaa8b91 | 101 | |
102 | Bool_t fUseMCInfo; // use MC information | |
103 | AlidNdPtHelper::AnalysisMode fAnalysisMode; // analysis mode TPC only, TPC + ITS | |
70fdd197 | 104 | AliTriggerAnalysis::Trigger fTrigger; // trigger definition MB1, MB2 ... |
985bdfd5 | 105 | const Char_t * fTriggerClass; // trigger class |
847e74b2 | 106 | AlidNdPtHelper::ParticleMode fParticleMode; // selected particle (pion, kaon, ...) |
0aaa8b91 | 107 | |
d269b0e6 | 108 | AliPhysicsSelection* fPhysicsSelection; // physics trigger selection class |
7f7dd416 | 109 | AlidNdPtBackgroundCuts *fdNdPtBackgroundCuts; // background cuts (cosmics and splitted tracks) |
a26e43aa | 110 | |
b2c68775 | 111 | Bool_t fAnalyseOutput; // call Analyse() function in the FinishTaskOutput |
a26e43aa | 112 | Bool_t fMergeTHnSparse; // merge THnSparse histograms in Merge() function |
d269b0e6 | 113 | |
b2c68775 | 114 | UInt_t fTriggerMask; // trigger mask |
115 | ||
df1c0513 | 116 | ClassDef(AlidNdPt,6); |
0aaa8b91 | 117 | }; |
118 | ||
119 | #endif |