Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:24:06

0001 #ifndef __SimFastTiming_FastTimingCommon_ETLElectronicsSim_h__
0002 #define __SimFastTiming_FastTimingCommon_ETLElectronicsSim_h__
0003 
0004 #include "CommonTools/Utils/interface/FormulaEvaluator.h"
0005 
0006 #include "FWCore/Framework/interface/Event.h"
0007 #include "FWCore/Framework/interface/EventSetup.h"
0008 
0009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0010 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
0011 
0012 #include "DataFormats/FTLDigi/interface/FTLDigiCollections.h"
0013 #include "SimFastTiming/FastTimingCommon/interface/MTDDigitizerTypes.h"
0014 
0015 #include "Geometry/Records/interface/MTDDigiGeometryRecord.h"
0016 #include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h"
0017 #include "Geometry/CommonTopologies/interface/PixelTopology.h"
0018 
0019 namespace mtd = mtd_digitizer;
0020 
0021 namespace CLHEP {
0022   class HepRandomEngine;
0023 }
0024 
0025 class ETLElectronicsSim {
0026 public:
0027   ETLElectronicsSim(const edm::ParameterSet& pset, edm::ConsumesCollector iC);
0028 
0029   void getEvent(const edm::Event& evt) {}
0030 
0031   void getEventSetup(const edm::EventSetup& evt);
0032 
0033   void run(const mtd::MTDSimHitDataAccumulator& input, ETLDigiCollection& output, CLHEP::HepRandomEngine* hre) const;
0034 
0035   void runTrivialShaper(ETLDataFrame& dataFrame,
0036                         const mtd::MTDSimHitData& chargeColl,
0037                         const mtd::MTDSimHitData& toa,
0038                         const uint8_t row,
0039                         const uint8_t column) const;
0040 
0041   void updateOutput(ETLDigiCollection& coll, const ETLDataFrame& rawDataFrame) const;
0042 
0043   static constexpr int dfSIZE = 5;
0044 
0045 private:
0046   const edm::ESGetToken<MTDGeometry, MTDDigiGeometryRecord> geomToken_;
0047   const MTDGeometry* geom_;
0048 
0049   const bool debug_;
0050   const float bxTime_;
0051   const float integratedLum_;
0052   const reco::FormulaEvaluator fluence_;
0053   const reco::FormulaEvaluator lgadGain_;
0054   const reco::FormulaEvaluator timeRes2_;
0055 
0056   // adc/tdc bitwidths
0057   const uint32_t adcNbits_, tdcNbits_;
0058 
0059   // synthesized adc/tdc information
0060   const float adcSaturation_MIP_;
0061   const float adcLSB_MIP_;
0062   const uint32_t adcBitSaturation_;
0063   const float adcThreshold_MIP_;
0064   const float toaLSB_ns_;
0065   const uint32_t tdcBitSaturation_;
0066 };
0067 
0068 #endif