28 #include <gsl/gsl_sf_erf.h>
29 #include "CLHEP/Random/RandGauss.h"
30 #include "CLHEP/Random/RandFlat.h"
43 std::cout <<
"Creating a FP420DigiMain" << std::endl;
60 std::cout <<
"theApplyTofCut=" << theApplyTofCut <<
" tofCut=" << tofCut << std::endl;
61 std::cout <<
"FP420DigiMain theElectronPerADC=" << theElectronPerADC <<
" theThreshold=" << theThreshold <<
" noNoise=" << noNoise << std::endl;
142 std::cout <<
"Destroying a FP420DigiMain" << std::endl;
158 const G4ThreeVector& bfield,
unsigned int iu ) {
169 std::vector<PSimHit>::const_iterator simHitIter = input.begin();
170 std::vector<PSimHit>::const_iterator simHitIterEnd = input.end();
171 for (;simHitIter != simHitIterEnd; ++simHitIter) {
173 const PSimHit ihit = *simHitIter;
182 float tof = ihit.
tof();
186 std::cout <<
" *******FP420DigiMain: intindex= " << iu << std::endl;
187 std::cout <<
" tof= " << tof <<
" EnergyLoss= " << losenergy <<
" pabs= " << ihit.
pabs() << std::endl;
193 std::cout <<
" bfield= " << bfield << std::endl;
197 std::cout <<
" tof= " << tof <<
" EnergyLoss= " << losenergy <<
" pabs= " << ihit.
pabs() << std::endl;
233 afterNoise = theSignal;
267 std::cout <<
" ****FP420DigiMain: push_digis start: do for loop dm.size()=" << dm.size() << std::endl;
274 for ( DigitalMapType::const_iterator
i=dm.begin();
i!=dm.end();
i++) {
282 std::cout <<
" ****FP420DigiMain:push_digis: ndigis = " <<
ndigis << std::endl;
283 std::cout <<
"push_digis: strip = " << (*i).first <<
" adc = " << (*i).second << std::endl;
319 for ( HitToDigisMapType::const_iterator mi=htd.begin(); mi!=htd.end(); mi++) {
321 if ((*((const_cast<DigitalMapType * >(&dm)))).find((*mi).first) != (*((
const_cast<DigitalMapType *
>(&dm)))).end() ){
324 map<const PSimHit *, Amplitude> totalAmplitudePerSimHit;
325 for (std::vector < std::pair < const PSimHit*, Amplitude > >::const_iterator simul =
326 (*mi).second.begin() ; simul != (*mi).second.end(); simul ++){
327 totalAmplitudePerSimHit[(*simul).first] += (*simul).second;
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
DConverterFP420::DigitalMapType DigitalMapType
float tof() const
deprecated name for timeOfFlight()
GaussNoiseFP420 * theGNoiseFP420
std::map< int, float, std::less< int > > hit_map_type
std::vector< HDigiFP420 > digis
PileUpFP420::HitToDigisMapType HitToDigisMapType
PileUpFP420::signal_map_type addNoise(const PileUpFP420::signal_map_type &)
DigitalMapType convert(const signal_map_type &)
static std::string const input
std::vector< HDigiFP420 > run(const std::vector< PSimHit > &input, const G4ThreeVector &, unsigned int)
Local3DPoint exitPoint() const
Exit point in the local Det frame.
virtual void add(const HitDigitizerFP420::hit_map_type &, const PSimHit &hit, int)
DigiConverterFP420 * theDConverterFP420
ZSuppressFP420::DigitalMapType zeroSuppress(const DigitalMapType &, int)
FP420DigiMain(const edm::ParameterSet &conf)
Abs< T >::type abs(const T &t)
float pabs() const
fast and more accurate access to momentumAtEntry().mag()
ZeroSuppressFP420 * theZSuppressFP420
signal_map_type dumpSignal()
float energyLoss() const
The energy deposit in the PSimHit, in ???.
void push_digis(const DigitalMapType &, const HitToDigisMapType &, const PileUpFP420::signal_map_type &)
std::map< int, Amplitude, std::less< int > > signal_map_type
PileUpFP420 * thePileUpFP420
unsigned int trackId() const
Local3DPoint entryPoint() const
Entry point in the local Det frame.
HitToDigisMapType dumpLink()
std::map< int, std::vector< std::pair< const PSimHit *, Amplitude > >, std::less< int > > HitToDigisMapType
HitDigitizerFP420 * theHitDigitizerFP420
unsigned int detUnitId() const
hit_map_type processHit(const PSimHit &, const G4ThreeVector &, int, int, double, int, double, double, int)