]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAnalysisTaskDimuonCFContainerBuilder.h
fixing the error message
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisTaskDimuonCFContainerBuilder.h
1 #ifndef ALIANALYSISTASKDIMUONCFCONTAINERBUILDER_H
2 #define ALIANALYSISTASKDIMUONCFCONTAINERBUILDER_H
3
4 /* $Id$ */ 
5
6 #include "AliAnalysisTaskSE.h"
7 #include "TString.h"
8
9 //      Analysis task for the building of a dimuon CF container
10 //      Also some single-muon variables are stored
11 //      L. Bianchi - Universita' & INFN Torino
12
13 class AliCFContainer;
14 class AliCFManager;
15
16 class AliAnalysisTaskDimuonCFContainerBuilder : public AliAnalysisTaskSE {
17   public:
18
19   AliAnalysisTaskDimuonCFContainerBuilder();
20   AliAnalysisTaskDimuonCFContainerBuilder(const Char_t* name, Bool_t readaod, Bool_t readMC, Bool_t isaccept, Double_t beamEn);
21   AliAnalysisTaskDimuonCFContainerBuilder& operator= (const AliAnalysisTaskDimuonCFContainerBuilder& c);
22   AliAnalysisTaskDimuonCFContainerBuilder(const AliAnalysisTaskDimuonCFContainerBuilder& c);
23   virtual ~AliAnalysisTaskDimuonCFContainerBuilder();
24
25   // ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects
26   void     UserExec(Option_t *option);
27   void     Terminate(Option_t *);
28   void     UserCreateOutputObjects();
29   
30   // CORRECTION FRAMEWORK RELATED FUNCTIONS
31   void           SetCFManager(AliCFManager* const io) {fCFManager = io;}   // global correction manager
32   AliCFManager * GetCFManager() const {return fCFManager;}           // get corr manager
33   void           SetQAList(TList* const list) {fQAHistList = list;}
34
35   // Setters and Getters
36   Bool_t IsReadAODData   ()                     const {return fReadAODData;}
37   void   SetReadAODData         (Bool_t flag=kTRUE)       {fReadAODData=flag;}
38   void   SetReadMCinfo          (Bool_t flag=kTRUE)       {fReadMCInfo=flag;}
39   void   SetIsAccProd           (Bool_t flag=kTRUE)       {fIsAccProduction=flag;}
40   void   SetBeamEnergy          (Double_t en)             {fBeamEnergy=en;}
41   void   SetChi2Limits          (Double_t chi2track[])    {fChi2Track[0]=chi2track[0];fChi2Track[1]=chi2track[1];}
42   void   SetChi2MatchLimits     (Double_t chi2match[])    {fChi2MatchTrig[0]=chi2match[0];fChi2MatchTrig[1]=chi2match[1];}
43   void   SetPtSingMuLimits      (Double_t PtSingle[])     {fPtSingMuCut[0]=PtSingle[0];fPtSingMuCut[1]=PtSingle[1];}
44   void   SetThetaSingMuLimits   (Double_t ThetaSingle[])  {fThetaSingMuCut[0]=ThetaSingle[0];fThetaSingMuCut[1]=ThetaSingle[1];}
45   void   SetZprimVertLimits     (Double_t Zprimvtx[])     {fzPrimVertexSPD[0]=Zprimvtx[0];fzPrimVertexSPD[1]=Zprimvtx[1];}
46   void   SetCutonZvtxSPD        (Bool_t   cut=kFALSE)     {fCutOnzVtxSPD=cut;}
47   void   SetNContributorsLimits (Int_t NContr[])       {fNContributors[0]=NContr[0];fNContributors[1]=NContr[1];}
48   void   SetCutonNContributors  (Bool_t   cut=kFALSE)     {fCutOnNContributors=cut;}
49   void   SetDistinguishTrigClass(Bool_t   dist=kFALSE)    {fDistinguishTrigClass=dist;}
50   void   SetTrigClassMuonName   (TString name = "CMU")    {fTrigClassMuon=name;}
51   void   SetTrigClassInteracName(TString name = "CINT")   {fTrigClassInteraction=name;}
52   void   SetTrigClassMuonSideName(TString name[4])        {for(Int_t i=0;i<4;i++) fTrigClassMuonSide[i]=name[i];}
53   void   SetTrigClassInteracSideName(TString name[4])     {for(Int_t i=0;i<4;i++) fTrigClassInteractionSide[i]=name[i];}
54  
55  protected:
56   
57   Bool_t                fReadAODData            ;    // flag for AOD/ESD input files
58   Bool_t                fReadMCInfo             ;    // flag for reading MC info (ESD->Kinematics, AOD->MCbranch)
59   Bool_t                fIsAccProduction        ;    // flag to activate in case of acceptance MC production (in this case fReadMCInfo==kTRUE)
60   AliCFManager          *fCFManager             ;    // pointer to the CF manager
61   TList                 *fQAHistList            ;    // list of QA histograms
62   Double_t              fNevt                   ;    // event counter
63   Double_t              fBeamEnergy             ;    // Energy of the beam (required for the CS angle)
64   TList                 *fOutput                ;    // list of TH in output
65   
66                                                      // CUTS ON TRACKS
67   Double_t              fChi2Track[2]           ;    // Cut on chi2 of the tracks ([0]==chi2min, [1]==chi2max)
68   Double_t              fChi2MatchTrig[2]       ;    // Cut on chi2matchtrigger of the tracks ([0]==chi2Matchmin, [1]==chi2Matchmax)
69   Double_t              fPtSingMuCut[2]         ;    // Cut on pt of single-mu tracks ([0]==ptmin, [1]==ptmax)
70   Double_t              fThetaSingMuCut[2]      ;    // Cut on polar angle (wrt beam axis) of single-mu tracks ([0]==thetamin, [1]==thetamax)
71
72                                                      // CUTS ON EVENT
73   Double_t              fzPrimVertexSPD[2]      ;    // Cut on the z coordinate of the primary vertex in SPD (full ITS for AODs)
74   Bool_t                fCutOnzVtxSPD           ;    // flag to activate the cut on the z of the primary vertex
75   Int_t                 fNContributors[2]       ;    // Cut on NContributors in SPD
76   Bool_t                fCutOnNContributors     ;    // flag to activate the cut on NContributors in SPD
77
78                                                      // CUTS ON THE FIRED TRIGGER CLASS
79   TString               fTrigClassMuon          ;    // name of the muon trigger class (CMU by default)
80   TString               fTrigClassInteraction   ;    // name of the interaction trigger class (CINT by default)
81   TString               fTrigClassMuonSide[4]   ;    // name of the muon trigger classes containing the side
82   TString               fTrigClassInteractionSide[4];// name of the interaction trigger classes containing the side
83   Bool_t                fDistinguishTrigClass   ;    // flag to activate the cut on the fired trigger class
84   
85   
86   
87   Double_t Imass  (Double_t e1, Double_t px1, Double_t py1, Double_t pz1, Double_t e2, Double_t px2, Double_t py2, Double_t pz2) const;
88   Double_t Rap    (Double_t e, Double_t pz) const;
89   
90   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);
91   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);
92   Double_t PhiCS  (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);
93   Double_t PhiHE  (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);
94   
95   ClassDef(AliAnalysisTaskDimuonCFContainerBuilder,1);
96 };
97
98 #endif