]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muon/AliAnalysisTaskMuonDistributions.h
Coverity fixes (Laurent, Ivana)
[u/mrichter/AliRoot.git] / PWG3 / 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 /* 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