CMS 3D CMS Logo

SiGaussianTailNoiseAdder Class Reference

#include <SimTracker/SiStripDigitizer/interface/SiGaussianTailNoiseAdder.h>

Inheritance diagram for SiGaussianTailNoiseAdder:

SiNoiseAdder

List of all members.

Public Member Functions

void addNoise (std::vector< double > &, unsigned int &, unsigned int &, int, float)
void createRaw (std::vector< double > &, unsigned int &, unsigned int &, int, float, float)
 SiGaussianTailNoiseAdder (float, CLHEP::HepRandomEngine &)
 ~SiGaussianTailNoiseAdder ()

Private Attributes

CLHEP::RandGaussQ * gaussDistribution
GaussianTailNoiseGeneratorgenNoise
float noiseRMS
int numStrips
float pedValue
CLHEP::HepRandomEngine & rndEngine
float threshold


Detailed Description

Definition at line 16 of file SiGaussianTailNoiseAdder.h.


Constructor & Destructor Documentation

SiGaussianTailNoiseAdder::SiGaussianTailNoiseAdder ( float  th,
CLHEP::HepRandomEngine &  eng 
)

Definition at line 8 of file SiGaussianTailNoiseAdder.cc.

References gaussDistribution, genNoise, and rndEngine.

00008                                                                                     :
00009   threshold(th),
00010   rndEngine(eng),
00011   gaussDistribution(0)
00012 {
00013   genNoise = new GaussianTailNoiseGenerator(rndEngine);
00014   gaussDistribution = new CLHEP::RandGaussQ(rndEngine);
00015 }

SiGaussianTailNoiseAdder::~SiGaussianTailNoiseAdder (  ) 

Definition at line 17 of file SiGaussianTailNoiseAdder.cc.

References gaussDistribution, and genNoise.

00017                                                    {
00018   delete genNoise;
00019   delete gaussDistribution;
00020 }


Member Function Documentation

void SiGaussianTailNoiseAdder::addNoise ( std::vector< double > &  in,
unsigned int minChannel,
unsigned int maxChannel,
int  ns,
float  nrms 
) [virtual]

Implements SiNoiseAdder.

Definition at line 22 of file SiGaussianTailNoiseAdder.cc.

References gaussDistribution, GaussianTailNoiseGenerator::generate(), genNoise, noiseRMS, numStrips, p, and threshold.

Referenced by SiStripDigitizerAlgorithm::run().

00024                                                            {
00025   
00026   numStrips = ns; 
00027   noiseRMS = nrms; 
00028 
00029   std::vector<std::pair<int,float> > generatedNoise;
00030 
00031   genNoise->generate(numStrips,threshold,noiseRMS,generatedNoise);
00032   
00033   // noise on strips with signal:
00034   // ----------------------------
00035   
00036   for (unsigned int iChannel=minChannel; iChannel<=maxChannel; iChannel++) {
00037     if(in[iChannel] != 0) {
00038       float noise = gaussDistribution->fire(0.,noiseRMS);           
00039       in[iChannel] += noise;
00040     }
00041   }
00042 
00043   //
00044   // Noise on the other strips
00045   
00046   typedef std::vector<std::pair<int,float> >::const_iterator VI;  
00047   
00048   for(VI p = generatedNoise.begin(); p != generatedNoise.end(); p++){
00049     if(in[(*p).first] == 0) {
00050       in[(*p).first] += (*p).second;
00051     }
00052   }
00053   
00054 }

void SiGaussianTailNoiseAdder::createRaw ( std::vector< double > &  in,
unsigned int minChannel,
unsigned int maxChannel,
int  ns,
float  nrms,
float  ped 
) [virtual]

Implements SiNoiseAdder.

Definition at line 56 of file SiGaussianTailNoiseAdder.cc.

References gaussDistribution, GaussianTailNoiseGenerator::generateRaw(), genNoise, noiseRMS, numStrips, p, and pedValue.

Referenced by SiStripDigitizerAlgorithm::run().

00058                                                                        {
00059   
00060   numStrips = ns; 
00061   noiseRMS = nrms; 
00062   pedValue = ped;
00063   
00064   std::vector<std::pair<int,float> > generatedNoise;
00065   
00066   genNoise->generateRaw(numStrips,noiseRMS,generatedNoise);
00067   
00068   // noise on strips with signal:
00069   // ----------------------------
00070   
00071   for (unsigned int iChannel=minChannel; iChannel<=maxChannel; iChannel++) {
00072     if(in[iChannel] != 0) {
00073       float noise = gaussDistribution->fire(0.,noiseRMS);           
00074       in[iChannel] += noise;
00075     }
00076   }
00077   
00078   //
00079   // Noise on the other strips
00080   
00081   typedef std::vector<std::pair<int,float> >::const_iterator VI;  
00082   
00083   for(VI p = generatedNoise.begin(); p != generatedNoise.end(); p++){
00084     if(in[(*p).first] == 0) {
00085       in[(*p).first] += (*p).second;
00086     }
00087   }
00088   
00089   // Add pedestals
00090   for (unsigned int iChannel=0; iChannel!=in.size(); iChannel++) {
00091     //    std::cout << "Adding pedestal value " << pedValue << " from " << in[iChannel] << " to ";
00092     in[iChannel] += pedValue;
00093     //    std::cout << in[iChannel] << std::endl;
00094   }
00095   
00096 }


Member Data Documentation

CLHEP::RandGaussQ* SiGaussianTailNoiseAdder::gaussDistribution [private]

Definition at line 28 of file SiGaussianTailNoiseAdder.h.

Referenced by addNoise(), createRaw(), SiGaussianTailNoiseAdder(), and ~SiGaussianTailNoiseAdder().

GaussianTailNoiseGenerator* SiGaussianTailNoiseAdder::genNoise [private]

Definition at line 29 of file SiGaussianTailNoiseAdder.h.

Referenced by addNoise(), createRaw(), SiGaussianTailNoiseAdder(), and ~SiGaussianTailNoiseAdder().

float SiGaussianTailNoiseAdder::noiseRMS [private]

Definition at line 24 of file SiGaussianTailNoiseAdder.h.

Referenced by addNoise(), and createRaw().

int SiGaussianTailNoiseAdder::numStrips [private]

Definition at line 23 of file SiGaussianTailNoiseAdder.h.

Referenced by addNoise(), and createRaw().

float SiGaussianTailNoiseAdder::pedValue [private]

Definition at line 25 of file SiGaussianTailNoiseAdder.h.

Referenced by createRaw().

CLHEP::HepRandomEngine& SiGaussianTailNoiseAdder::rndEngine [private]

Definition at line 27 of file SiGaussianTailNoiseAdder.h.

Referenced by SiGaussianTailNoiseAdder().

float SiGaussianTailNoiseAdder::threshold [private]

Definition at line 26 of file SiGaussianTailNoiseAdder.h.

Referenced by addNoise().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:31:32 2009 for CMSSW by  doxygen 1.5.4