Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef SimPPS_PPSPixelDigiProducer_RPix_DET_DIGITIZER_H
0002 #define SimPPS_PPSPixelDigiProducer_RPix_DET_DIGITIZER_H
0003 
0004 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
0005 #include "SimTracker/Common/interface/SiG4UniversalFluctuation.h"
0006 #include "SimGeneral/NoiseGenerators/interface/GaussianTailNoiseGenerator.h"
0007 
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 
0010 #include "FWCore/Framework/interface/EventSetup.h"
0011 
0012 #include "SimPPS/PPSPixelDigiProducer/interface/RPixHitChargeConverter.h"
0013 #include "SimPPS/PPSPixelDigiProducer/interface/RPixDummyROCSimulator.h"
0014 
0015 #include "DataFormats/CTPPSDigi/interface/CTPPSPixelDigi.h"
0016 #include "DataFormats/CTPPSDigi/interface/CTPPSPixelDigiCollection.h"
0017 #include "CondFormats/PPSObjects/interface/PPSPixelTopology.h"
0018 
0019 #include "SimPPS/PPSPixelDigiProducer/interface/RPixPileUpSignals.h"
0020 
0021 #include "CondFormats/PPSObjects/interface/CTPPSPixelGainCalibrations.h"
0022 #include "CondFormats/PPSObjects/interface/CTPPSPixelAnalysisMask.h"
0023 
0024 namespace CLHEP {
0025   class HepRandomEngine;
0026 }
0027 
0028 class RPixDetDigitizer {
0029 public:
0030   RPixDetDigitizer(const edm::ParameterSet &params,
0031                    CLHEP::HepRandomEngine &eng,
0032                    uint32_t det_id,
0033                    const PPSPixelTopology &ppt);
0034 
0035   void run(const std::vector<PSimHit> &input,
0036            const std::vector<int> &input_links,
0037            std::vector<CTPPSPixelDigi> &output_digi,
0038            std::vector<std::vector<std::pair<int, double> > > &output_digi_links,
0039            const CTPPSPixelGainCalibrations *pcalibration,
0040            const PPSPixelTopology *ppt);
0041 
0042   ~RPixDetDigitizer();
0043 
0044 private:
0045   std::unique_ptr<RPixPileUpSignals> theRPixPileUpSignals;
0046   std::unique_ptr<RPixHitChargeConverter> theRPixHitChargeConverter;
0047   std::unique_ptr<RPixDummyROCSimulator> theRPixDummyROCSimulator;
0048 
0049   double theNoiseInElectrons;   // Noise (RMS) in units of electrons.
0050   double thePixelThresholdInE;  // Pixel noise treshold in electorns.
0051   bool noNoise;                 //if the nos is included
0052   uint32_t det_id_;
0053   bool misalignment_simulation_on_;
0054   int verbosity_;
0055   bool links_persistence_;
0056 };
0057 #endif