5#ifndef MDT_RESPONSE_MDT_RESPONSE_H
6#define MDT_RESPONSE_MDT_RESPONSE_H
11#include "CLHEP/Vector/ThreeVector.h"
12#include "CLHEP/Random/RandPoisson.h"
13#include "CLHEP/Random/RandGaussZiggurat.h"
14#include "CLHEP/Random/RandFlat.h"
17#include "CLHEP/Random/RandomEngine.h"
43 bool GetSignal(CLHEP::HepRandomEngine *rndmEngine);
44 bool GetSignal(
double ParticleCharge,
double ParticleGamma,CLHEP::HepRandomEngine *rndmEngine);
54 double DoStep(CLHEP::HepRandomEngine *rndmEngine)
const;
57 double RtoT(
double r);
58 double Diffusion(
double r, CLHEP::HepRandomEngine *rndmEngine)
const;
60 int GenerateQ(CLHEP::HepRandomEngine *rndmEngine)
const;
68 void DoStepping(CLHEP::HepRandomEngine *rndmEngine);
69 void DoStepping(
double ParticleCharge,
double ParticleGamma, CLHEP::HepRandomEngine *rndmEngine);
122 double v = CLHEP::RandFlat::shoot(rndmEngine);
125 p = CLHEP::RandPoisson::shoot(rndmEngine,13.);
127 double v1 = CLHEP::RandFlat::shoot(rndmEngine);
130 p = 1+CLHEP::RandPoisson::shoot(rndmEngine,0.05);
165 double t = CLHEP::RandGaussZiggurat::shoot(rndmEngine,0.,sigma);
166 if(fabs(t) > 3*sigma) {
224 for(
unsigned int i=0;i<
m_rtNpar;++i)
void SetDifRMS(double rms)
double DoStep(CLHEP::HepRandomEngine *rndmEngine) const
void InitTubeParameters()
void SetRtMode(unsigned int mode)
double DampingFactor(double x)
void SetSegment(double r, double x)
double TThreshold() const
double Diffusion(double r, CLHEP::HepRandomEngine *rndmEngine) const
double PropagationDelay(double x)
int GenerateQ(CLHEP::HepRandomEngine *rndmEngine) const
void SetAttLength(double len)
const double * RtParameters() const
double SigmaDiffusion(double r) const
double AdcResponse() const
double m_integrationWindow
void SetClusterDensity(double dens)
void InitClusters(double timewindow, double binsize)
bool GetSignal(CLHEP::HepRandomEngine *rndmEngine)
std::vector< double > m_gammaFactorVec
void SetTubeRadius(double radius)
std::vector< double > clusterVec
void SetTriggerElectron(double el)
void SetRtParameters(int npar, double *par)
void DoStepping(CLHEP::HepRandomEngine *rndmEngine)
void SetIntegrationWindow(double win)
std::vector< double > m_numberOfClustersPerMmVec