4 //------------------------------------------------------------------------------
5 // Abstract class for dNdPt analysis. All dNdPt components should derive from it.
7 // Author: J.Otwinowski 03/11/2008
8 // last change: 2011-04-04 by M.Knichel
9 //------------------------------------------------------------------------------
13 class AliESDtrackCuts;
14 class AlidNdPtEventCuts;
15 class AlidNdPtAcceptanceCuts;
16 class AliPhysicsSelection;
17 class AlidNdPtBackgroundCuts;
21 #include "AliTriggerAnalysis.h"
22 #include "AlidNdPtHelper.h"
24 class AlidNdPt : public TNamed {
27 AlidNdPt(Char_t* name, Char_t* title);
31 virtual void Init() = 0;
34 virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0) = 0;
36 // Merge output objects (needed by PROOF)
37 virtual Long64_t Merge(TCollection* const list=0) = 0;
39 // Analyse output histograms
40 virtual void Analyse() = 0;
42 // Export analysed output objects to folder
43 virtual TFolder *ExportToFolder(TObjArray * const array=0) = 0;
48 void SetEventCuts(AlidNdPtEventCuts* const cuts) { fdNdPtEventCuts = cuts; }
49 void SetAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts) { fdNdPtAcceptanceCuts = cuts; }
50 void SetRecAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts) { fdNdPtRecAcceptanceCuts = cuts; }
51 void SetTrackCuts(AliESDtrackCuts* const cuts) { fEsdTrackCuts = cuts; }
52 void SetUseMCInfo(const Bool_t info) { fUseMCInfo = info; }
53 void SetAnalysisMode(const AlidNdPtHelper::AnalysisMode mode) { fAnalysisMode = mode; }
54 void SetTrigger(const AliTriggerAnalysis::Trigger trigger) { fTrigger = trigger; }
55 void SetTriggerClass(const Char_t *triggerClass) { fTriggerClass = triggerClass; }
56 void SetParticleMode(const AlidNdPtHelper::ParticleMode mode) { fParticleMode = mode; }
57 void SetPhysicsTriggerSelection(AliPhysicsSelection* const selection) { fPhysicsSelection = selection; }
58 void SetBackgroundCuts(AlidNdPtBackgroundCuts* const cuts) { fdNdPtBackgroundCuts = cuts; }
60 AlidNdPtEventCuts* GetEventCuts() const { return fdNdPtEventCuts; }
61 AlidNdPtAcceptanceCuts* GetAcceptanceCuts() const { return fdNdPtAcceptanceCuts; }
62 AlidNdPtAcceptanceCuts* GetRecAcceptanceCuts() const { return fdNdPtRecAcceptanceCuts; }
63 AliESDtrackCuts* GetTrackCuts() const { return fEsdTrackCuts; }
64 Bool_t IsUseMCInfo() const { return fUseMCInfo; }
65 AlidNdPtHelper::AnalysisMode GetAnalysisMode() const { return fAnalysisMode; }
66 AliTriggerAnalysis::Trigger GetTrigger() const { return fTrigger; }
67 const Char_t* GetTriggerClass() const { return fTriggerClass; }
68 AlidNdPtHelper::ParticleMode GetParticleMode() const { return fParticleMode; }
69 AliPhysicsSelection* GetPhysicsTriggerSelection() const { return fPhysicsSelection; }
70 AlidNdPtBackgroundCuts* GetBackgroundCuts() const { return fdNdPtBackgroundCuts; }
71 Double_t* CreateLogAxis(Int_t nbins, Double_t xmin, Double_t xmax);
73 void SetAnalyseOutput(Bool_t analyseoutput) { fAnalyseOutput = analyseoutput; }
74 Bool_t GetAnalyseOutput() const { return fAnalyseOutput; }
76 void SetMergeTHnSparse(Bool_t mergethnsparse) { fMergeTHnSparse = mergethnsparse; }
77 Bool_t GetMergeTHnSparse() const { return fMergeTHnSparse; }
79 void SetTriggerMask(UInt_t triggermask) { fTriggerMask = triggermask; }
80 UInt_t GetTriggerMask() { return fTriggerMask; }
84 static Double_t* CloneArray(Int_t n, Double_t* source);
88 AlidNdPt(const AlidNdPt&); // not implemented
89 AlidNdPt& operator=(const AlidNdPt&); // not implemented
91 AlidNdPtEventCuts *fdNdPtEventCuts; // event cuts
92 AlidNdPtAcceptanceCuts *fdNdPtAcceptanceCuts; // acceptance cuts
93 AlidNdPtAcceptanceCuts *fdNdPtRecAcceptanceCuts; // additional recontruction acceptance cuts (not used for MC truth)
94 AliESDtrackCuts *fEsdTrackCuts; // esd track cuts
96 Bool_t fUseMCInfo; // use MC information
97 AlidNdPtHelper::AnalysisMode fAnalysisMode; // analysis mode TPC only, TPC + ITS
98 AliTriggerAnalysis::Trigger fTrigger; // trigger definition MB1, MB2 ...
99 const Char_t * fTriggerClass; // trigger class
100 AlidNdPtHelper::ParticleMode fParticleMode; // selected particle (pion, kaon, ...)
102 AliPhysicsSelection* fPhysicsSelection; // physics trigger selection class
103 AlidNdPtBackgroundCuts *fdNdPtBackgroundCuts; // background cuts (cosmics and splitted tracks)
105 Bool_t fAnalyseOutput; // call Analyse() function in the FinishTaskOutput
106 Bool_t fMergeTHnSparse; // merge THnSparse histograms in Merge() function
108 UInt_t fTriggerMask; // trigger mask
110 ClassDef(AlidNdPt,5);