5#ifndef MUONDIGITIZATION_CSC_DIGITIZER_H
6#define MUONDIGITIZATION_CSC_DIGITIZER_H
15#include "CLHEP/Random/RandomEngine.h"
17#include "GaudiKernel/ServiceHandle.h"
18#include "GaudiKernel/StatusCode.h"
50 void setWindow(
const double t1,
const double t2);
52 void set(
const double bunchTime);
64 std::map<
IdentifierHash, std::pair<double, double> >& data_map, CLHEP::HepRandomEngine* rndmEngine);
67 std::map<
IdentifierHash, std::vector<float> >& data_SampleMapOddPhase, CLHEP::HepRandomEngine* rndmEngine);
69 std::map<
IdentifierHash, std::vector<float> >& data_SampleMap, CLHEP::HepRandomEngine* rndmEngine);
76 double qWire(
const int& nElectrons,
const double& gammaDist)
const;
77 static double qStripR(
const double x) ;
80 static double fparamPhi(
const double x,
const std::array<double, 9>& p) ;
84 void fillMaps(
const IdentifierHash hash,
const double driftTime,
const double stripCharge, std::vector<IdentifierHash>& hashVec,
103 std::array<double, s_maxElectron>
m_sprob{0.};
const CscHitIdHelper * m_cscHitHelper
static double fparamPhi(const double x, const std::array< double, 9 > &p)
void fillMaps(const IdentifierHash hash, const double driftTime, const double stripCharge, std::vector< IdentifierHash > &hashVec, std::map< IdentifierHash, std::pair< double, double > > &data_map)
static constexpr int s_maxElectron
double qStripPhi(const double x, const Identifier &id) const
std::map< char, int > m_stationDict
Cache the csc id dictionary.
double getDriftTime(const MuonGM::CscReadoutElement *descriptor, const Amg::Vector3D &pos) const
void setElectronEnergy(double e)
void fillSampleMaps(const IdentifierHash hash, const double driftTime, const double stripCharge, std::vector< IdentifierHash > &hashVec, std::map< IdentifierHash, std::vector< float > > &data_map, bool phase=0)
void setAmplification(const double amplification)
void setDriftVelocity(double v0)
static double qStripR(const double x)
void setWindow(const double t1, const double t2)
const CscIdHelper * m_cscIdHelper
const MuonGM::MuonDetectorManager * m_muonMgr
std::array< double, s_maxElectron > m_sprob
IdentifierHash getHashId(const Identifier &input_id, const int stripId, const int measuresPhi) const
double qWire(const int &nElectrons, const double &gammaDist) const
bool m_NInterFromEnergyLoss
StatusCode digitize_hit(const CSCSimHit *cscHit, std::vector< IdentifierHash > &hashVec, std::map< IdentifierHash, std::pair< double, double > > &data_map, CLHEP::HepRandomEngine *rndmEngine)
Old way before 10/2010.
CSC_Digitizer(const CscHitIdHelper *cscHitHelper, const MuonGM::MuonDetectorManager *muonMgr, ICscCalibTool *pcalib)
double m_timeWindowUpperOffset
double m_timeWindowLowerOffset
bool outsideWindow(double time) const
void set(const double bunchTime)
Identifier to_identifier(const CSCSimHit *cscHit) const
This is a "hash" representation of an Identifier.
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Eigen::Matrix< double, 3, 1 > Vector3D