1 #ifndef ALIANALYSISTASKMUMU_H
2 #define ALIANALYSISTASKMUMU_H
5 * \defgroup pwg-muon-mumu pwg-muon-mumu
7 * \brief Small sub-framework to analyse muon pairs and more...
9 * Started as a simple invariant mass analysis and grew into a bit more general thing...
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.
16 * \ingroup pwg-muon-mumu
18 * \class AliAnalysisTaskMuMu
20 * \brief Steering class for mu pairs analysis (and more...)
22 * This class acts as a small sub-framework to steer various sub-analysis which
23 * share the same MergeableCollection and the same CounterCollection.
25 * \author: L. Aphecetche (Subatech)
28 #ifndef ALIANALYSISTASKSE_H
29 # include "AliAnalysisTaskSE.h"
36 class AliAnalysisMuMuBinning;
37 class AliCounterCollection;
38 class AliMergeableCollection;
42 class AliAnalysisMuMuBase;
43 class AliAnalysisMuMuCutRegistry;
45 class AliAnalysisTaskMuMu : public AliAnalysisTaskSE
48 AliAnalysisTaskMuMu();
49 virtual ~AliAnalysisTaskMuMu();
51 AliAnalysisMuMuCutRegistry* CutRegistry() const;
53 AliAnalysisMuMuBinning* Binning() const;
55 void AdoptSubAnalysis(AliAnalysisMuMuBase* analysis);
57 virtual void DisableHistograms(const char* pattern="*");
59 void SetCountInBins( Bool_t disableHistoLoop=kTRUE ) { fCountInBins = kTRUE; fDisableHistoLoop = disableHistoLoop; }
61 void DisableHistoLoop( Bool_t disableHistoLoop=kTRUE ) { fDisableHistoLoop = disableHistoLoop; }
63 void SetBeamYear(const char* beamYear) { fBeamYear = beamYear; }
65 virtual void FinishTaskOutput();
67 virtual void NotifyRun();
69 virtual void Print(Option_t* opt="") const;
71 virtual void Terminate(Option_t *);
73 void UserCreateOutputObjects();
75 virtual void UserExec(Option_t* opt);
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;
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;
92 const char* DefaultCentralityName() const;
94 AliVEvent* Event() const;
96 void FillHistos(const char* eventSelection, const char* triggerClassName, const char* centrality);
98 void FillCounters(const char* eventSelection, const char* triggerClassName, const char* centrality, Int_t currentRun, const char* binningName="ntrcorr"/*"dnchdeta"*/);
100 void Fill(const char* eventSelection, const char* triggerClassName);
104 void GetSelectedTrigClassesInEvent(const AliVEvent* event, TObjArray& array);
106 Bool_t IsHistogrammingDisabled() const;
108 virtual Bool_t IsHistogramDisabled(const char* hname) const;
114 AliAnalysisTaskMuMu(const AliAnalysisTaskMuMu&); // not implemented (on purpose)
115 AliAnalysisTaskMuMu& operator=(const AliAnalysisTaskMuMu&); // not implemented (on purpose)
119 AliMergeableCollection* fHistogramCollection; //! collection of histograms
120 AliCounterCollection* fEventCounters; //! event counters
121 mutable AliAnalysisMuMuBinning* fBinning; // binning for particles
123 mutable AliAnalysisMuMuCutRegistry* fCutRegistry; // cuts (owner)
125 TString fBeamYear; // beam and year
127 TList* fHistogramToDisable; // list of regexp of histo name(s) to disable
129 TObjArray* fSubAnalysisVector; // list of companion analysis
131 Bool_t fCountInBins; //Flag to count events in bins
133 Bool_t fDisableHistoLoop; //Flag to not enter in the Filling histos Loop without disabling the histogramming (neccesary to have dNhcdEta event info avaliable)
135 ClassDef(AliAnalysisTaskMuMu,26) // a class to analyse muon pairs (and single also ;-) )