Do not include from subdirectories
[u/mrichter/AliRoot.git] / FASTSIM / AliFastMuonTriggerEff.h
CommitLineData
6255180c 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$ */
a42548b0 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().
e0003ae3 17// Author: Pietro Cortese (Universita' del Piemonte Orientale - Alessandria
18// and INFN of Torino)
6255180c 19
20#include <AliFastResponse.h>
490243f3 21#include <TString.h>
2724a683 22
23class TH3F;
24class TAxis;
490243f3 25
26// Debugging flag
27//#define MYTRIGDEBUG
28
29enum CutTupe {kLow, kHigh, kAny};
6255180c 30
31class AliFastMuonTriggerEff : public AliFastResponse {
32
33 public:
34 AliFastMuonTriggerEff();
e6e76983 35 AliFastMuonTriggerEff(const char* /*Name*/, const char* /*Title*/);
a42548b0 36 AliFastMuonTriggerEff(const AliFastMuonTriggerEff& eff);
6255180c 37 virtual ~AliFastMuonTriggerEff(){;}
38 virtual void Init();
39 virtual void Evaluate(Float_t charge, Float_t pt, Float_t theta, Float_t phi,
490243f3 40 Float_t& effLow, Float_t& effHigh, Float_t& effAny);
20432218 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);}
6255180c 44 virtual Float_t Evaluate(Float_t charge, Float_t pt, Float_t theta, Float_t phi);
20432218 45
490243f3 46 virtual void SetCut(Int_t cut = kLow);
a42548b0 47 virtual Float_t Cut() const {return fCut;}
490243f3 48 virtual Int_t SetBkgLevel(Float_t Bkg=0.);
49 virtual Int_t ForceBkgLevel(Float_t Bkg=0.);
a42548b0 50 virtual Float_t GetBkgLevel() const {return fBkg;}
c4c8e047 51 Int_t LoadTables(const Char_t *namet); // Load trigger response tables
490243f3 52 void SetInt() {fInt=1;}
53 void UnsetInt() {fInt=0;}
a42548b0 54 Int_t GetInt() const {return fInt;}
55 // Copy
56 AliFastMuonTriggerEff& operator=(const AliFastMuonTriggerEff& rhs);
6255180c 57 protected:
2724a683 58 Double_t fPtMin; // Minimun pt
59 Double_t fPtMax; // Maximum pt
490243f3 60 Double_t fDpt; // Delta_pt
2724a683 61 Int_t fnptb; // Number of bins
62 Double_t fPhiMin; // Lower limit for phi
63 Double_t fPhiMax; // Upper limit for phi
490243f3 64 Double_t fDphi; // Delta_phi
2724a683 65 Int_t fnphib; // Number of bins
490243f3 66 Double_t fThetaMin; // lower limit for theta
67 Double_t fThetaMax; // upper limit for theta
68 Double_t fDtheta; // Delta_theta
2724a683 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)
490243f3 82 private:
2724a683 83 Int_t fibx; // index x
84 Int_t fiby; // index y
85 Int_t fibz; // index z
6255180c 86 ClassDef(AliFastMuonTriggerEff,1) // Fast Muon Trigger response
87};
88
89#endif
90
91
92