Do not include from subdirectories
[u/mrichter/AliRoot.git] / FASTSIM / AliFastMuonTrackingEff.cxx
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 /* $Id$ */
17 //
18 // Class for fast simulation of the ALICE Muon Spectrometer
19 // Tracking Efficiency.
20 // The efficiency depends on trasverse momentum pt, polar angle theta and azimuthal angle phi.
21 //
22 // Author: Alessandro de Falco 
23 // alessandro.de.falco@ca.infn.it
24 // 
25
26 #include <TMath.h>
27
28 #include "AliFastMuonTrackingEff.h"
29 #include "AliMUONFastTracking.h"
30
31 ClassImp(AliFastMuonTrackingEff)
32
33
34 AliFastMuonTrackingEff::AliFastMuonTrackingEff() :
35     AliFastResponse("Efficiency", "Muon Tracking Efficiency"),
36     fBackground(1.),
37     fCharge(1.),
38     fFastTracking(0)
39 {
40 //
41 // Constructor
42 }
43
44 AliFastMuonTrackingEff::AliFastMuonTrackingEff(const AliFastMuonTrackingEff& eff)
45     :AliFastResponse(eff),
46     fBackground(1.),
47     fCharge(1.),
48     fFastTracking(0)
49 {
50 // Copy constructor
51     eff.Copy(*this);
52 }
53
54 void AliFastMuonTrackingEff::Init()
55 {
56 //
57 // Initialization
58     fFastTracking = AliMUONFastTracking::Instance();
59     fFastTracking->Init(fBackground);
60 }
61
62
63
64 Float_t AliFastMuonTrackingEff::Evaluate(Float_t /*charge*/, Float_t pt, Float_t theta, Float_t phi)
65 {
66 //
67 // Evaluate the efficience for muon with 3-vector (pt, theta, phi)
68     Float_t p = pt / TMath::Sin(theta*TMath::Pi()/180.);
69     Float_t eff =  fFastTracking->Efficiency(p, theta, phi, Int_t(fCharge));
70     return eff;
71 }
72
73
74 AliFastMuonTrackingEff& AliFastMuonTrackingEff::operator=(const  AliFastMuonTrackingEff& rhs)
75 {
76 // Assignment operator
77     rhs.Copy(*this);
78     return *this;
79 }
80