Go to the documentation of this file.00001 #ifndef _TRACKER_SIGAUSSIANTAILNOISEADDER_H
00002 #define _TRACKER_SIGAUSSIANTAILNOISEADDER_H
00003
00004 #include <memory>
00005
00006 #include "SiNoiseAdder.h"
00007 #include "SimGeneral/NoiseGenerators/interface/GaussianTailNoiseGenerator.h"
00008
00013 namespace CLHEP {
00014 class HepRandomEngine;
00015 class RandGaussQ;
00016 }
00017
00018 class SiGaussianTailNoiseAdder : public SiNoiseAdder{
00019 public:
00020 SiGaussianTailNoiseAdder(float,CLHEP::HepRandomEngine&);
00021 ~SiGaussianTailNoiseAdder();
00022 void addNoise(std::vector<double>&, size_t&, size_t&, int, float) const;
00023
00024 void addNoiseVR(std::vector<double> &, std::vector<float> &) const;
00025 void addPedestals(std::vector<double> &, std::vector<float> &) const;
00026 void addCMNoise(std::vector<double> &, float, std::vector<bool> &) const;
00027 void addBaselineShift(std::vector<double> &, std::vector<bool> &) const;
00028
00029 private:
00030 const float threshold;
00031 CLHEP::HepRandomEngine& rndEngine;
00032 std::unique_ptr<CLHEP::RandGaussQ> gaussDistribution;
00033 std::unique_ptr<GaussianTailNoiseGenerator> genNoise;
00034 };
00035 #endif
00036