]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliAnalysisTaskMuonDistributions.h
expand particle map when needed
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisTaskMuonDistributions.h
CommitLineData
e4dddba1 1#ifndef ALIANALYSISTASKMUONDISTRIBUTIONS_H
2#define ALIANALYSISTASKMUONDISTRIBUTIONS_H
3
c5c5bf9c 4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
27de2dfb 7/* $Id$ */
8
c5c5bf9c 9/* Analysis Task for Muon/Dimuon distributions */
10
e4dddba1 11#include "AliAnalysisTaskSE.h"
e4dddba1 12
13class TH1D;
14class TParticle ;
15class TLorentzVector ;
16class TFile ;
17class AliStack ;
18class AliESDtrack;
19class AliVParticle;
20
21class 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;}
c5c5bf9c 36 void SetAnalysisType(const char* type) {fkAnalysisType=type;}
e4dddba1 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;}
f032e1ac 39 void SetPsiPFitLimits(Double_t xmin, Double_t xmax) {fPsiPFitLimitMin=xmin; fPsiPFitLimitMax=xmax;}
e4dddba1 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)
c5c5bf9c 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
f032e1ac 50 Double_t fPsiPFitLimitMin; // psi(2S) fit lower limits
51 Double_t fPsiPFitLimitMax; // psi(2S) fit upper limits
c5c5bf9c 52 Double_t fBckFitLimitMin; // bck fit lower limits
53 Double_t fBckFitLimitMax; // bck fit upper limits
e4dddba1 54 Bool_t fInvariantMassFit; // flag to perform or not inv. mass fit
55
c5c5bf9c 56 const char* fkAnalysisType; //ESD or AOD based analysis
57 TList *fOutput; // output file
e4dddba1 58
c5c5bf9c 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);
e4dddba1 64
65 ClassDef(AliAnalysisTaskMuonDistributions,1);
66};
67
68#endif