-Float_t AliFastMuonTrackingAcc::Evaluate(Float_t pt, Float_t theta, Float_t phi)
+Float_t AliFastMuonTrackingAcc::Evaluate(Float_t /*charge*/, Float_t pt, Float_t theta, Float_t phi)
{
// Evaluate the tracking acceptance for 3-vector pt, theta, phi
Float_t p = pt / TMath::Sin(theta*TMath::Pi()/180.);
virtual ~AliFastMuonTrackingAcc(){;}
void SetBackground(Float_t bg = 1.) {fBackground = bg;}
void SetCharge(Float_t charge = 1.) {fCharge = charge;}
- virtual void Init();
- virtual Float_t Evaluate(Float_t pt, Float_t theta, Float_t phi);
+ virtual void Init();
+ virtual Float_t Evaluate(Float_t charge, Float_t pt, Float_t theta, Float_t phi);
+ virtual void Evaluate(Float_t charge, Float_t p, Float_t theta , Float_t phi,
+ Float_t& pS, Float_t& thetaS, Float_t& phiS)
+ {AliFastResponse::Evaluate(charge, p, theta, phi, pS, thetaS, phiS);}
virtual void Evaluate(Float_t p, Float_t theta , Float_t phi,
- Float_t& pS, Float_t& thetaS, Float_t& phiS) {
- AliFastResponse::Evaluate(p, theta, phi, pS, thetaS, phiS);
- }
- virtual Float_t Evaluate(AliFastParticle* part) {
- return AliFastResponse::Evaluate(part);
- }
- // Copy
+ Float_t& pS, Float_t& thetaS, Float_t& phiS)
+ {AliFastResponse::Evaluate(p, theta, phi, pS, thetaS, phiS);}
+
+ // Copy
AliFastMuonTrackingAcc& operator=(const AliFastMuonTrackingAcc& rhs);
protected:
Float_t fBackground; // Background level
-Float_t AliFastMuonTrackingEff::Evaluate(Float_t pt, Float_t theta, Float_t phi)
+Float_t AliFastMuonTrackingEff::Evaluate(Float_t /*charge*/, Float_t pt, Float_t theta, Float_t phi)
{
//
// Evaluate the efficience for muon with 3-vector (pt, theta, phi)
return eff;
}
+
AliFastMuonTrackingEff& AliFastMuonTrackingEff::operator=(const AliFastMuonTrackingEff& rhs)
{
// Assignment operator
//
// Class for fast simulation of the ALICE Muon Spectrometer
// Tracking Efficiency.
-// The efficiency depends on trasverse momentum pt, polar angle theta and azimuthal angle phi.
+// The efficiency depends on transverse momentum pt, polar angle theta and azimuthal angle phi.
//
// Author: Alessandro de Falco
// alessandro.de.falco@ca.infn.it
void SetBackground(Float_t bg = 1.) {fBackground = bg;}
void SetCharge(Float_t charge = 1.) {fCharge = charge;}
virtual void Init();
- virtual Float_t Evaluate(Float_t pt, Float_t theta, Float_t phi);
+ virtual Float_t Evaluate(Float_t charge, Float_t pt, Float_t theta, Float_t phi);
+ virtual void Evaluate(Float_t charge, Float_t p, Float_t theta , Float_t phi,
+ Float_t& pS, Float_t& thetaS, Float_t& phiS)
+ {AliFastResponse::Evaluate(charge, p, theta, phi, pS, thetaS, phiS);}
virtual void Evaluate(Float_t p, Float_t theta , Float_t phi,
- Float_t& pS, Float_t& thetaS, Float_t& phiS) {
- AliFastResponse::Evaluate(p, theta, phi, pS, thetaS, phiS);
- }
- virtual Float_t Evaluate(AliFastParticle* part) {
- return AliFastResponse::Evaluate(part);
- }
- // Copy
+ Float_t& pS, Float_t& thetaS, Float_t& phiS)
+ {AliFastResponse::Evaluate(p, theta, phi, pS, thetaS, phiS);}
+
+ // Copy
AliFastMuonTrackingEff& operator=(const AliFastMuonTrackingEff& rhs);
protected:
Float_t fBackground; // Background level
void SetBackground(Float_t bg = 1.) {fBackground = bg;}
void SetCharge(Float_t charge = 1.) {fCharge = charge;}
virtual void Init();
- virtual void Evaluate(Float_t p, Float_t theta , Float_t phi,
- Float_t& pS, Float_t& thetaS, Float_t& phiS);
- virtual Float_t Evaluate(AliFastParticle* part) {
- return AliFastResponse::Evaluate(part);
- }
- virtual Float_t Evaluate(Float_t pt, Float_t theta , Float_t phi) {
- return AliFastResponse::Evaluate(pt,theta,phi);
- }
- // Copy
+ void Evaluate(Float_t p, Float_t theta , Float_t phi,
+ Float_t& pS, Float_t& thetaS, Float_t& phiS);
+
+ void Evaluate(Float_t /*charge*/, Float_t p, Float_t theta , Float_t phi,
+ Float_t& pS, Float_t& thetaS, Float_t& phiS)
+ {Evaluate(p, theta, phi, pS, thetaS, phiS);}
+ virtual Float_t Evaluate(Float_t charge, Float_t pt, Float_t theta, Float_t phi)
+ {return AliFastResponse::Evaluate(charge, pt, theta, phi);}
+
+ // Copy
AliFastMuonTrackingRes& operator=(const AliFastMuonTrackingRes & rhs);
protected:
virtual void Init();
virtual void Evaluate(Float_t charge, Float_t pt, Float_t theta, Float_t phi,
Float_t& effLow, Float_t& effHigh, Float_t& effAny);
+ virtual void Evaluate(Float_t pt, Float_t theta, Float_t phi,
+ Float_t& effLow, Float_t& effHigh, Float_t& effAny)
+ {Evaluate(1., pt, theta, phi, effLow, effHigh, effAny);}
virtual Float_t Evaluate(Float_t charge, Float_t pt, Float_t theta, Float_t phi);
+
virtual void SetCut(Int_t cut = kLow);
virtual Float_t Cut() const {return fCut;}
virtual Int_t SetBkgLevel(Float_t Bkg=0.);
ClassImp(AliFastResponse)
-Float_t AliFastResponse::Evaluate(AliFastParticle* part)
+Float_t AliFastResponse::Evaluate(Float_t /*charge*/, Float_t /*pt*/, Float_t /*theta*/, Float_t /*phi*/)
{
//
+// Dummy implementation of this method
+//
+ return 0.;
+}
+
+
+void AliFastResponse::Evaluate(Float_t /*charge*/, Float_t p, Float_t theta , Float_t phi,
+ Float_t& pS, Float_t& thetaS, Float_t& phiS)
+{
+//
// Basic implementation of this method
//
- Float_t theta = part->Theta();
- Float_t phi = part->Phi();
- Float_t pt = part->Pt();
- Float_t eff = Evaluate(pt, theta, phi);
- return eff;
+ pS = p;
+ thetaS = theta;
+ phiS = phi;
}
void AliFastResponse::Evaluate(Float_t p, Float_t theta , Float_t phi,
AliFastResponse(const char* Name, const char* Title): TNamed(Name, Title){}
virtual ~AliFastResponse(){}
virtual void Init() = 0;
- virtual Float_t Evaluate(Float_t /*pt*/, Float_t /*theta*/ , Float_t /*phi*/)
- {Fatal("Evaluate","Not implemented in base class !\n"); return (-1);}
-
+
+ virtual void Evaluate(Float_t charge, Float_t p, Float_t theta , Float_t phi,
+ Float_t& pS, Float_t& thetaS, Float_t& phiS);
virtual void Evaluate(Float_t p, Float_t theta , Float_t phi,
Float_t& pS, Float_t& thetaS, Float_t& phiS);
- virtual Float_t Evaluate(AliFastParticle* part);
+
+ virtual Float_t Evaluate(Float_t charge, Float_t pt, Float_t theta, Float_t phi);
+
void Copy(TObject&) const;
protected:
ClassDef(AliFastResponse,1) // Base class for fast response