]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliAnalysisTaskMuMu.h
Split the TaskMuMu into more manageable sub-analysis (Laurent)
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisTaskMuMu.h
CommitLineData
2f331ac9 1#ifndef ALIANALYSISTASKMUMU_H
2#define ALIANALYSISTASKMUMU_H
3
5376e016
CP
4/**
5 * \defgroup pwg-muon-mumu pwg-muon-mumu
6 *
7 * \brief Small sub-framework to analyse muon pairs and more...
8 *
9 * Started as a simple invariant mass analysis and grew into a bit more general thing...
10 *
11 * Can now compute the charged particle multiplicy (from SPD tracklets only) in order
12 * to be able to correlate it with e.g. J/psi or single mu.
13 */
14
15/**
16 * \ingroup pwg-muon-mumu
17 *
18 * \class AliAnalysisTaskMuMu
19 *
20 * \brief Steering class for mu pairs analysis (and more...)
21 *
22 * This class acts as a small sub-framework to steer various sub-analysis which
23 * share the same MergeableCollection and the same CounterCollection.
24 *
25 * \author: L. Aphecetche (Subatech)
26 */
2f331ac9 27
28#ifndef ALIANALYSISTASKSE_H
29# include "AliAnalysisTaskSE.h"
30#endif
31
1afce1ce 32#ifndef ROOT_TMath
33# include "TMath.h"
34#endif
35
d440e2c5 36class AliAnalysisMuMuBinning;
2f331ac9 37class AliCounterCollection;
d440e2c5 38class AliMergeableCollection;
2f331ac9 39class AliVParticle;
d440e2c5 40class TList;
41class TObjArray;
5376e016
CP
42class AliAnalysisMuMuBase;
43class AliAnalysisMuMuCutRegistry;
2f331ac9 44
45class AliAnalysisTaskMuMu : public AliAnalysisTaskSE
46{
47public:
2f331ac9 48 AliAnalysisTaskMuMu();
2f331ac9 49 virtual ~AliAnalysisTaskMuMu();
1afce1ce 50
5376e016 51 AliAnalysisMuMuCutRegistry* CutRegistry() const;
2f331ac9 52
5376e016
CP
53 AliAnalysisMuMuBinning* Binning() const;
54
55 void AdoptSubAnalysis(AliAnalysisMuMuBase* analysis);
2f331ac9 56
d440e2c5 57 virtual void DisableHistograms(const char* pattern="*");
5376e016
CP
58
59 void SetBeamYear(const char* beamYear) { fBeamYear = beamYear; }
2f331ac9 60
91dbbc20 61 virtual void FinishTaskOutput();
2f331ac9 62
91dbbc20 63 virtual void NotifyRun();
2f331ac9 64
91dbbc20 65 virtual void Print(Option_t* opt="") const;
2f331ac9 66
91dbbc20 67 virtual void Terminate(Option_t *);
68
91dbbc20 69 void UserCreateOutputObjects();
70
71 virtual void UserExec(Option_t* opt);
2f331ac9 72
2f331ac9 73private:
d440e2c5 74
5376e016 75 void CreateTrackHisto(const char* eventSelection,
2f331ac9 76 const char* triggerClassName,
5376e016 77 const char* hname, const char* htitle,
2f331ac9 78 Int_t nbinsx, Double_t xmin, Double_t xmax,
5376e016
CP
79 Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0,
80 Bool_t separatePlusAndMinus=kFALSE) const;
2f331ac9 81
5376e016 82 void CreatePairHisto(const char* eventSelection,
2f331ac9 83 const char* triggerClassName,
5376e016 84 const char* hname, const char* htitle,
2f331ac9 85 Int_t nbinsx, Double_t xmin, Double_t xmax,
5376e016 86 Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0) const;
2f331ac9 87
5376e016 88 const char* DefaultCentralityName() const;
2f331ac9 89
5376e016 90 AliVEvent* Event() const;
2f331ac9 91
5376e016 92 void FillHistos(const char* eventSelection, const char* triggerClassName, const char* centrality);
2f331ac9 93
5376e016 94 void Fill(const char* eventSelection, const char* triggerClassName);
2f331ac9 95
5376e016 96 void FillMC();
2f331ac9 97
5376e016 98 void GetSelectedTrigClassesInEvent(const AliVEvent* event, TObjArray& array);
2f331ac9 99
5376e016 100 Bool_t IsHistogrammingDisabled() const;
2f331ac9 101
5376e016 102 virtual Bool_t IsHistogramDisabled(const char* hname) const;
2f331ac9 103
5376e016 104 Bool_t IsPP() const;
2f331ac9 105
5376e016 106private:
2f331ac9 107
5376e016
CP
108 AliAnalysisTaskMuMu(const AliAnalysisTaskMuMu&); // not implemented (on purpose)
109 AliAnalysisTaskMuMu& operator=(const AliAnalysisTaskMuMu&); // not implemented (on purpose)
2f331ac9 110
111private:
112
d440e2c5 113 AliMergeableCollection* fHistogramCollection; //! collection of histograms
2f331ac9 114 AliCounterCollection* fEventCounters; //! event counters
5376e016 115 mutable AliAnalysisMuMuBinning* fBinning; // binning for particles
2f331ac9 116
5376e016 117 mutable AliAnalysisMuMuCutRegistry* fCutRegistry; // cuts (owner)
d440e2c5 118
5376e016 119 TString fBeamYear; // beam and year
d440e2c5 120
5376e016 121 TList* fHistogramToDisable; // list of regexp of histo name(s) to disable
d440e2c5 122
5376e016 123 TObjArray* fSubAnalysisVector; // list of companion analysis
2f331ac9 124
5376e016 125 ClassDef(AliAnalysisTaskMuMu,26) // a class to analyse muon pairs (and single also ;-) )
2f331ac9 126};
127
128#endif
129