]>
Commit | Line | Data |
---|---|---|
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 | 36 | class AliAnalysisMuMuBinning; |
2f331ac9 | 37 | class AliCounterCollection; |
d440e2c5 | 38 | class AliMergeableCollection; |
2f331ac9 | 39 | class AliVParticle; |
d440e2c5 | 40 | class TList; |
41 | class TObjArray; | |
5376e016 CP |
42 | class AliAnalysisMuMuBase; |
43 | class AliAnalysisMuMuCutRegistry; | |
2f331ac9 | 44 | |
45 | class AliAnalysisTaskMuMu : public AliAnalysisTaskSE | |
46 | { | |
47 | public: | |
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 | 73 | private: |
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 | 106 | private: |
2f331ac9 | 107 | |
5376e016 CP |
108 | AliAnalysisTaskMuMu(const AliAnalysisTaskMuMu&); // not implemented (on purpose) |
109 | AliAnalysisTaskMuMu& operator=(const AliAnalysisTaskMuMu&); // not implemented (on purpose) | |
2f331ac9 | 110 | |
111 | private: | |
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 |