]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAnalysisTaskMuMu.h
Fix Coverity 24835
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisTaskMuMu.h
1 #ifndef ALIANALYSISTASKMUMU_H
2 #define ALIANALYSISTASKMUMU_H
3
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  */
27
28 #ifndef ALIANALYSISTASKSE_H
29 #  include "AliAnalysisTaskSE.h"
30 #endif
31
32 #ifndef ROOT_TMath
33 #  include "TMath.h"
34 #endif
35
36 class AliAnalysisMuMuBinning;
37 class AliCounterCollection;
38 class AliMergeableCollection;
39 class AliVParticle;
40 class TList;
41 class TObjArray;
42 class AliAnalysisMuMuBase;
43 class AliAnalysisMuMuCutRegistry;
44
45 class AliAnalysisTaskMuMu : public AliAnalysisTaskSE
46 {
47 public:
48   AliAnalysisTaskMuMu();
49   virtual ~AliAnalysisTaskMuMu();
50
51   AliAnalysisMuMuCutRegistry* CutRegistry() const;
52   
53   AliAnalysisMuMuBinning* Binning() const;
54
55   void AdoptSubAnalysis(AliAnalysisMuMuBase* analysis);
56   
57   virtual void DisableHistograms(const char* pattern="*");
58   
59   void SetCountInBins( Bool_t disableHistoLoop=kTRUE ) { fCountInBins = kTRUE; fDisableHistoLoop = disableHistoLoop; }
60   
61   void DisableHistoLoop( Bool_t disableHistoLoop=kTRUE ) { fDisableHistoLoop = disableHistoLoop; }
62
63   void SetBeamYear(const char* beamYear) { fBeamYear = beamYear; }
64   
65   virtual void FinishTaskOutput();
66   
67   virtual void NotifyRun();
68   
69   virtual void Print(Option_t* opt="") const;
70   
71   virtual void Terminate(Option_t *);
72   
73   void UserCreateOutputObjects();
74
75   virtual void UserExec(Option_t* opt);
76   
77 private:
78   
79   void CreateTrackHisto(const char* eventSelection,
80                         const char* triggerClassName,
81                         const char* hname, const char* htitle,
82                         Int_t nbinsx, Double_t xmin, Double_t xmax,
83                         Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0,
84                         Bool_t separatePlusAndMinus=kFALSE) const;
85   
86   void CreatePairHisto(const char* eventSelection,
87                        const char* triggerClassName,
88                        const char* hname, const char* htitle,
89                        Int_t nbinsx, Double_t xmin, Double_t xmax,
90                        Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0) const;
91   
92   const char* DefaultCentralityName() const;
93
94   AliVEvent* Event() const;
95   
96   void FillHistos(const char* eventSelection, const char* triggerClassName, const char* centrality);
97   
98   void FillCounters(const char* eventSelection, const char* triggerClassName, const char* centrality, Int_t currentRun, const char* binningName="ntrcorr"/*"dnchdeta"*/);
99   
100   void Fill(const char* eventSelection, const char* triggerClassName);
101   
102   void FillMC();
103   
104   void GetSelectedTrigClassesInEvent(const AliVEvent* event, TObjArray& array);
105
106   Bool_t IsHistogrammingDisabled() const;
107   
108   virtual Bool_t IsHistogramDisabled(const char* hname) const;
109   
110   Bool_t IsPP() const;
111   
112 private:
113   
114   AliAnalysisTaskMuMu(const AliAnalysisTaskMuMu&); // not implemented (on purpose)
115   AliAnalysisTaskMuMu& operator=(const AliAnalysisTaskMuMu&); // not implemented (on purpose)
116
117 private:
118   
119   AliMergeableCollection* fHistogramCollection; //! collection of histograms
120   AliCounterCollection* fEventCounters; //! event counters
121   mutable AliAnalysisMuMuBinning* fBinning; // binning for particles
122
123   mutable AliAnalysisMuMuCutRegistry* fCutRegistry; // cuts (owner)
124   
125   TString fBeamYear; // beam and year
126   
127   TList* fHistogramToDisable; // list of regexp of histo name(s) to disable
128   
129   TObjArray* fSubAnalysisVector; // list of companion analysis
130   
131   Bool_t fCountInBins; //Flag to count events in bins
132   
133   Bool_t fDisableHistoLoop; //Flag to not enter in the Filling histos Loop without disabling the histogramming (neccesary to have dNhcdEta event info avaliable)
134   
135   ClassDef(AliAnalysisTaskMuMu,26) // a class to analyse muon pairs (and single also ;-) )
136 };
137
138 #endif
139