7 #ifndef PNDMDTPARAMDIGI_H
8 #define PNDMDTPARAMDIGI_H 1
11 #include "TGraphErrors.h"
110 return (x*(p0 + p1*pow(x, 0.25)) + x1*(p2 + p3*x1));
121 Double_t dr = (fProductionPos-fWireSurfacePos).Mod();
122 return (((p3*dr+p2)*dr+p1)*dr+p0 )*1.e3;
145 Double_t mMass = fRestMass[ptlType];
148 Double_t mPath = gFreePath[ptlType]->Eval(mBeta);
149 return gRandom->Exp(mPath);
ClusInfo(TVector3 _v=TVector3())
std::pair< Double_t, Double_t > ValueErrorType
Int_t fNumofIonsofThisCluster
Int_t fNrNphi[NRAD *NPHI]
Double_t fNoiseSigmaStrip
void UseGaussianAmp(Bool_t swith)
Int_t GetAmplicationFactor(Int_t particleType, Double_t momentum) const
std::vector< std::pair< Int_t, Double_t > > GetFiredInfo()
Double_t val[nBoxes][nFEBox]
void SetNoiseWidth(Double_t anode, Double_t strip)
Bool_t Digitize(Double_t &time, Double_t &)
friend F32vec4 log(const F32vec4 &a)
Double_t GetMeanFreePath(Int_t ptlType, Double_t mom) const
void AddNoise(Double_t fNoiseLevel=1., Int_t isAnode=1)
static const Int_t fSamplingSize
void GetSignal(Bool_t useConvolution=kTRUE)
Double_t fNoiseSigmaAnode
void ApplyTransferFunction(Double_t *fSignalData, Int_t nSize=fSamplingSize)
void GetMPVofPrimaryIonization(Int_t particleType, const TVector3 &momentum, ValueErrorType &val) const
void UsePlot(Bool_t swith=kTRUE)
ClassDef(PndMdtParamDigi, 1)
TVector3 fParticleMomentum
Double_t GetShiftTime(TVector2 fWireSurfacePos, TVector2 fProductionPos)
AvaBinType(Int_t _i=0, Double_t _v=0.)
void UseDetailedSim(Bool_t swith=kTRUE)
PndMdtParamDigi & SetParams(Int_t ptlType, TVector3 iniP, TVector3 iniPos, TVector3 finalPos, Double_t stripLen=100.)
Int_t fNumofPrimaryIonization
Double_t GetElectronDriftTime(TVector2 iniPos)
void Compute(Bool_t useConvolution=kTRUE)
std::map< Int_t, std::vector< Double_t > > fSignalDataStripM
void GetRawSignalbyWeightingAvalanche(Double_t fNoiseLevel=1.)
std::vector< AvaBinType > fProbFunc2D
void SamplingPosition(TVector2 fDirection, TVector2 &fIonProductionPos)
void UseNoise(Bool_t swith)
std::vector< Double_t > fSignalDataAnode
const std::vector< Double_t > & GetWireSignal() const
TGraphErrors * gFreePath[5]
const std::map< Int_t, std::vector< Double_t > > & GetStripSignals() const
TH1F * hCathodeI2d[NRAD][NPHI]
CLHEP::RandGeneral * fRandAva
void SetOptimization(Int_t val)
std::vector< AvaBinType > fProbFunc1D
void GetRawSignalbySimAvalanche(Double_t fNoiseLevel=1.)