Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:58

0001 #ifndef _TRACKER_SIGAUSSIANTAILNOISEADDER_H
0002 #define _TRACKER_SIGAUSSIANTAILNOISEADDER_H
0003 
0004 #include <memory>
0005 
0006 #include "SiNoiseAdder.h"
0007 #include "SimGeneral/NoiseGenerators/interface/GaussianTailNoiseGenerator.h"
0008 
0009 /**
0010  * Adds the noise only on a subset of strips where it is expected to be greater than a given threshold.
0011  */
0012 
0013 namespace CLHEP {
0014   class HepRandomEngine;
0015 }
0016 
0017 class SiGaussianTailNoiseAdder : public SiNoiseAdder {
0018 public:
0019   SiGaussianTailNoiseAdder(float);
0020   ~SiGaussianTailNoiseAdder() override;
0021   void addNoise(std::vector<float> &, size_t &, size_t &, int, float, CLHEP::HepRandomEngine *) const override;
0022 
0023   void addNoiseVR(std::vector<float> &, std::vector<float> &, CLHEP::HepRandomEngine *) const override;
0024   void addPedestals(std::vector<float> &, std::vector<float> &) const override;
0025   void addCMNoise(std::vector<float> &, float, std::vector<bool> &, CLHEP::HepRandomEngine *) const override;
0026   void addBaselineShift(std::vector<float> &, std::vector<bool> &) const override;
0027 
0028 private:
0029   const float threshold;
0030   std::unique_ptr<GaussianTailNoiseGenerator> genNoise;
0031 };
0032 #endif