Reading muon trigger scalers with the DA of the muon trigger and transfer
[u/mrichter/AliRoot.git] / FASTSIM / AliFastMuonTriggerEff.h
1 #ifndef ALIFASTMUONTRIGGEREFF_H
2 #define ALIFASTMUONTRIGGEREFF_H
3 /*  Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7 // Class for the fast simulation of the muon trigger efficiency
8 // The trigger parametrization is computed for background levels 0., 0.5 and 1.
9 // In order to set a background level different from 0 it is necessary to 
10 // explicitly force it with:
11 // ForceBkgLevel(BkgLevel).
12 // For intermediate background levels, the trigger response is linearly 
13 // interpolated between these values.
14 // There is increased granularity in the pT region below 3 GeV. Although
15 // it does not seem to be necessary it is also possible to interpolate
16 // between pT bins using SetInt().
17 // Author: Pietro Cortese (Universita' del Piemonte Orientale - Alessandria 
18 // and INFN of Torino)
19
20 #include <AliFastResponse.h>
21 #include <TString.h>
22
23 class TH3F;
24 class TAxis;
25
26 // Debugging flag
27 //#define MYTRIGDEBUG
28
29 enum CutTupe {kLow, kHigh, kAny};
30
31 class AliFastMuonTriggerEff : public AliFastResponse {
32     
33  public:
34     AliFastMuonTriggerEff();
35     AliFastMuonTriggerEff(const char* /*Name*/, const char* /*Title*/);
36     AliFastMuonTriggerEff(const AliFastMuonTriggerEff& eff);
37     virtual ~AliFastMuonTriggerEff(){;}
38     virtual void    Init();
39     virtual void    Evaluate(Float_t charge, Float_t pt, Float_t theta, Float_t phi,
40                              Float_t& effLow, Float_t& effHigh, Float_t& effAny);
41     virtual void    Evaluate(Float_t pt, Float_t theta, Float_t phi,
42                              Float_t& effLow, Float_t& effHigh, Float_t& effAny)
43         {Evaluate(1., pt, theta, phi, effLow, effHigh, effAny);}
44     virtual Float_t Evaluate(Float_t charge, Float_t pt, Float_t theta, Float_t phi);
45     
46     virtual void    SetCut(Int_t cut = kLow);
47     virtual Float_t Cut() const {return fCut;}
48     virtual Int_t   SetBkgLevel(Float_t Bkg=0.);
49     virtual Int_t   ForceBkgLevel(Float_t Bkg=0.);
50     virtual Float_t GetBkgLevel() const {return fBkg;}
51     Int_t LoadTables(const Char_t *namet);  // Load trigger response tables
52     void SetInt() {fInt=1;}
53     void UnsetInt() {fInt=0;}
54     Int_t GetInt() const {return fInt;}
55     // Copy
56     AliFastMuonTriggerEff& operator=(const AliFastMuonTriggerEff& rhs);
57   protected:
58     Double_t fPtMin;               // Minimun pt
59     Double_t fPtMax;               // Maximum pt
60     Double_t fDpt;                 // Delta_pt
61     Int_t    fnptb;                // Number of bins
62     Double_t fPhiMin;              // Lower limit for phi 
63     Double_t fPhiMax;              // Upper limit for phi
64     Double_t fDphi;                // Delta_phi
65     Int_t    fnphib;               // Number of bins   
66     Double_t fThetaMin;            // lower limit for theta
67     Double_t fThetaMax;            // upper limit for theta
68     Double_t fDtheta;              // Delta_theta
69     Int_t    fnthetab;             // Number of bins 
70     Int_t   fCut;                  // Cut type (low/high)
71     Int_t   fZones;                // Total number of zones
72     TH3F*   fhEffAPt;              // Trig. prob. for Any Pt
73     TH3F*   fhEffLPt;              // Trig. prob. for Low Pt
74     TH3F*   fhEffHPt;              // Trig. prob. for High Pt
75     TAxis*  fhLX;                  // x-axis 
76     TAxis*  fhLY;                  // y-axis
77     TAxis*  fhLZ;                  // z-axis
78     Float_t fBkg;                  // Background level
79     TString fTableTitle;           // Title of the LUT
80     TString fDescription;          // Description of the table content
81     Int_t fInt;                    // Interpolation flag (1 to interpolate)
82   private:
83     Int_t fibx;                    // index x 
84     Int_t fiby;                    // index y
85     Int_t fibz;                    // index z
86     ClassDef(AliFastMuonTriggerEff,1)    // Fast Muon Trigger response
87 };
88
89 #endif 
90
91
92