]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAnalysisTaskMuonDistributions.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisTaskMuonDistributions.h
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 /* $Id$ */ 
8
9 /* Analysis Task for Muon/Dimuon distributions */
10
11 #include "AliAnalysisTaskSE.h"
12
13 class TH1D;
14 class TParticle ;
15 class TLorentzVector ;
16 class TFile ;
17 class AliStack ;
18 class AliESDtrack;
19 class AliVParticle;
20
21 class AliAnalysisTaskMuonDistributions : public AliAnalysisTaskSE {
22   public:
23
24   AliAnalysisTaskMuonDistributions();
25   AliAnalysisTaskMuonDistributions(const Char_t* name);
26   AliAnalysisTaskMuonDistributions& operator= (const AliAnalysisTaskMuonDistributions& c);
27   AliAnalysisTaskMuonDistributions(const AliAnalysisTaskMuonDistributions& c);
28   virtual ~AliAnalysisTaskMuonDistributions();
29
30   // ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects
31   void UserExec(Option_t *option);
32   void Terminate(Option_t *);
33   void UserCreateOutputObjects();
34   
35   void SetBeamEnergy(Double_t en) {fBeamEnergy=en;}
36   void SetAnalysisType(const char* type) {fkAnalysisType=type;}
37   void SetInvMassFitLimits(Double_t xmin, Double_t xmax) {fInvMassFitLimitMin=xmin; fInvMassFitLimitMax=xmax;}
38   void SetPsiFitLimits(Double_t xmin, Double_t xmax) {fPsiFitLimitMin=xmin; fPsiFitLimitMax=xmax;}
39   void SetPsiPFitLimits(Double_t xmin, Double_t xmax) {fPsiPFitLimitMin=xmin; fPsiPFitLimitMax=xmax;}
40   void SetBckFitLimits(Double_t xmin, Double_t xmax) {fBckFitLimitMin=xmin; fBckFitLimitMax=xmax;}
41   void FitInvariantMassSpectrum(Bool_t massfit=kFALSE) {fInvariantMassFit=massfit;}
42  
43  protected:
44   
45   Double_t fBeamEnergy;   // Energy of the beam (required for the CS angle)
46   Double_t fInvMassFitLimitMin;  // invariant mass spectrum fit lower limit 
47   Double_t fInvMassFitLimitMax;  // invariant mass spectrum fit upper limit 
48   Double_t fPsiFitLimitMin;  // psi fit lower limits 
49   Double_t fPsiFitLimitMax;  // psi fit upper limits 
50   Double_t fPsiPFitLimitMin;  // psi(2S) fit lower limits 
51   Double_t fPsiPFitLimitMax;  // psi(2S) fit upper limits 
52   Double_t fBckFitLimitMin;  // bck fit lower limits 
53   Double_t fBckFitLimitMax;  // bck fit upper limits
54   Bool_t fInvariantMassFit; // flag to perform or not inv. mass fit
55     
56   const char* fkAnalysisType; //ESD or AOD based analysis
57   TList *fOutput;  // output file
58       
59   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;
60   Float_t Rapidity (Float_t e, Float_t pz) const;
61   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);
62   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);
63   void FitInvMass(TH1D* histo);
64   
65   ClassDef(AliAnalysisTaskMuonDistributions,1);
66 };
67
68 #endif