CMS 3D CMS Logo

/afs/cern.ch/work/c/cnuttens/private/SiStripDev/DocumentationProduction/CMSSW_6_1_0/src/SimTracker/SiStripDigitizer/plugins/SiGaussianTailNoiseAdder.h

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