]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIANALYSISTASKMUONDISTRIBUTIONS_H | |
2 | #define ALIANALYSISTASKMUONDISTRIBUTIONS_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | /* Analysis Task for Muon/Dimuon distributions */ | |
8 | ||
9 | #include "AliAnalysisTaskSE.h" | |
10 | ||
11 | class TH1D; | |
12 | class TParticle ; | |
13 | class TLorentzVector ; | |
14 | class TFile ; | |
15 | class AliStack ; | |
16 | class AliESDtrack; | |
17 | class AliVParticle; | |
18 | ||
19 | class AliAnalysisTaskMuonDistributions : public AliAnalysisTaskSE { | |
20 | public: | |
21 | ||
22 | AliAnalysisTaskMuonDistributions(); | |
23 | AliAnalysisTaskMuonDistributions(const Char_t* name); | |
24 | AliAnalysisTaskMuonDistributions& operator= (const AliAnalysisTaskMuonDistributions& c); | |
25 | AliAnalysisTaskMuonDistributions(const AliAnalysisTaskMuonDistributions& c); | |
26 | virtual ~AliAnalysisTaskMuonDistributions(); | |
27 | ||
28 | // ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects | |
29 | void UserExec(Option_t *option); | |
30 | void Terminate(Option_t *); | |
31 | void UserCreateOutputObjects(); | |
32 | ||
33 | void SetBeamEnergy(Double_t en) {fBeamEnergy=en;} | |
34 | void SetAnalysisType(const char* type) {fkAnalysisType=type;} | |
35 | void SetInvMassFitLimits(Double_t xmin, Double_t xmax) {fInvMassFitLimitMin=xmin; fInvMassFitLimitMax=xmax;} | |
36 | void SetPsiFitLimits(Double_t xmin, Double_t xmax) {fPsiFitLimitMin=xmin; fPsiFitLimitMax=xmax;} | |
37 | void SetPsiPFitLimits(Double_t xmin, Double_t xmax) {fPsiPFitLimitMin=xmin; fPsiPFitLimitMax=xmax;} | |
38 | void SetBckFitLimits(Double_t xmin, Double_t xmax) {fBckFitLimitMin=xmin; fBckFitLimitMax=xmax;} | |
39 | void FitInvariantMassSpectrum(Bool_t massfit=kFALSE) {fInvariantMassFit=massfit;} | |
40 | ||
41 | protected: | |
42 | ||
43 | Double_t fBeamEnergy; // Energy of the beam (required for the CS angle) | |
44 | Double_t fInvMassFitLimitMin; // invariant mass spectrum fit lower limit | |
45 | Double_t fInvMassFitLimitMax; // invariant mass spectrum fit upper limit | |
46 | Double_t fPsiFitLimitMin; // psi fit lower limits | |
47 | Double_t fPsiFitLimitMax; // psi fit upper limits | |
48 | Double_t fPsiPFitLimitMin; // psi(2S) fit lower limits | |
49 | Double_t fPsiPFitLimitMax; // psi(2S) fit upper limits | |
50 | Double_t fBckFitLimitMin; // bck fit lower limits | |
51 | Double_t fBckFitLimitMax; // bck fit upper limits | |
52 | Bool_t fInvariantMassFit; // flag to perform or not inv. mass fit | |
53 | ||
54 | const char* fkAnalysisType; //ESD or AOD based analysis | |
55 | TList *fOutput; // output file | |
56 | ||
57 | Float_t InvMass (Float_t e1, Float_t px1, Float_t py1, Float_t pz1, Float_t e2, Float_t px2, Float_t py2, Float_t pz2) const; | |
58 | Float_t Rapidity (Float_t e, Float_t pz) const; | |
59 | Double_t CostCS (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2); | |
60 | Double_t CostHE (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2); | |
61 | void FitInvMass(TH1D* histo); | |
62 | ||
63 | ClassDef(AliAnalysisTaskMuonDistributions,1); | |
64 | }; | |
65 | ||
66 | #endif |