]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliCFMuonResUpsilon.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliCFMuonResUpsilon.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 //-----------------------------------------------------------------------
17 // Author : R. Vernet, Consorzio Cometa - Catania (it)
18 //-----------------------------------------------------------------------
19 // Modification done by X. Lopez - LPC Clermont (fr)
20 //-----------------------------------------------------------------------
21 // Modification done by S. Ahn - LPC Clermont (fr), Konkuk University (kr)
22 //-----------------------------------------------------------------------
23
24 #ifndef ALICFMUONRESUPSILON_H
25 #define ALICFMUONRESUPSILON_H
26
27 #include "AliAnalysisTaskSE.h"
28
29 class AliCFContainer;
30 class AliCFManager;
31
32 class AliCFMuonResUpsilon : public AliAnalysisTaskSE {
33   public:
34
35   AliCFMuonResUpsilon();
36   AliCFMuonResUpsilon(const Char_t* name);
37   AliCFMuonResUpsilon& operator= (const AliCFMuonResUpsilon& c);
38   AliCFMuonResUpsilon(const AliCFMuonResUpsilon& c);
39   virtual ~AliCFMuonResUpsilon();
40
41   // ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects
42   void     UserExec(Option_t *option);
43   void     Terminate(Option_t *);
44         void             UserCreateOutputObjects();
45    
46   // CORRECTION FRAMEWORK RELATED FUNCTIONS
47   void           SetCFManager(AliCFManager* const io)     {fCFManager = io;}   // global correction manager
48   AliCFManager * GetCFManager() const                                                                   {return fCFManager;}           // get corr manager
49   void           SetQAList(TList* const list)                                   {fQAHistList = list;}
50
51   // Setters
52   Bool_t IsReadAODData() const                                                                                                  {return fReadAODData;}
53   void   SetReadAODData(Bool_t flag=kTRUE)                                                      {fReadAODData=flag;}
54   void   SetReadMCInfo(Bool_t flag=kTRUE)                                                       {fReadMCInfo=flag;}
55         void     SetRequirePdgCode(const Int_t PDG)                                                     {fPDG=PDG;}
56         void     SetPtRange(const Double_t ptmin, const Double_t ptmax) {fPtMin=ptmin; fPtMax=ptmax; }
57         void     SetRapidityRange(const Double_t ymin, const Double_t ymax) {fYMin=ymin; fYMax=ymax; }
58   void   SetTrigClassMuonName(TString name = "CMUS")              {fTrigClassMuon=name;}
59   void   SetTrigClassInteracName(TString name = "CINT") {fTrigClassInteraction=name;}
60   void   SetTrigClassSideName(TString name[3])          {for(Int_t i=0;i<3;i++) fTrigClassSide[i]=name[i];}
61
62  protected:
63   
64   Bool_t          fReadAODData;   // flag for AOD/ESD input files
65   Bool_t          fReadMCInfo;          // flag for reading MC info (ESD->Kinematics, AOD->MCbranch)
66   AliCFManager   *fCFManager;           // pointer to the CF manager
67         TH1D                                     *fnevts;                                       // TH1 for event statistics
68         Bool_t                                  fIsPhysSelMB;           // flag for the physics selection : MB
69         Bool_t                                  fIsPhysSelMUON; // flag for the physics selection : MUON
70   TList          *fQAHistList;          // list of QA histograms
71         Int_t                                           fPDG;                                           // PDG code of resonance
72         Double_t                                fPtMin;                                 // min Pt of resonance
73         Double_t                                fPtMax;                                 // max Pt of resonance
74         Double_t                                fYMin;                                  // min rapidity of resonance
75         Double_t                                fYMax;                                  // max rapidity of resonance
76
77   // CUTS ON THE FIRED TRIGGER CLASS
78   TString                                       fTrigClassMuon          ;    // name of the muon trigger class (CMU by default)
79   TString                                       fTrigClassInteraction   ;    // name of the interaction trigger class (CINT by default)
80   TString                                       fTrigClassSide[4]       ;    // name of the muon trigger classes containing the side
81   Bool_t                                        fDistinguishTrigClass   ;    // flag to activate the cut on the fired trigger class
82
83
84   Double_t Imass(Float_t e1, Float_t px1, Float_t py1, Float_t pz1,     Float_t e2, Float_t px2, Float_t py2, Float_t p2) const;
85         Double_t Rap(Float_t e, Float_t pz) const;
86   
87   Double_t CostCS(Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1,
88                         Double_t px2, Double_t py2, Double_t pz2, Double_t e2, Double_t energy);
89   Double_t CostHE(Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1,
90                         Double_t px2, Double_t py2, Double_t pz2, Double_t e2);
91   Double_t PhiCS(Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1,
92                        Double_t px2, Double_t py2, Double_t pz2, Double_t e2, Double_t energy);
93   Double_t PhiHE(Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1,
94                        Double_t px2, Double_t py2, Double_t pz2, Double_t e2, Double_t energy);
95   
96   ClassDef(AliCFMuonResUpsilon,1);
97 };
98
99 #endif