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
0057 const uint32_t adcNbits_, tdcNbits_;
0058
0059
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