File indexing completed on 2024-04-06 12:29:23
0001 #ifndef ECALFETODIGI_H
0002 #define ECALFETODIGI_H
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "FWCore/Framework/interface/Event.h"
0012 #include "FWCore/Framework/interface/EventSetup.h"
0013 #include "FWCore/Framework/interface/Frameworkfwd.h"
0014 #include "FWCore/Framework/interface/MakerMacros.h"
0015 #include "FWCore/Framework/interface/one/EDProducer.h"
0016 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0017 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0018 #include "FWCore/Utilities/interface/Exception.h"
0019
0020 #include "CondFormats/DataRecord/interface/EcalTPGLutGroupRcd.h"
0021 #include "CondFormats/DataRecord/interface/EcalTPGLutIdMapRcd.h"
0022 #include "CondFormats/EcalObjects/interface/EcalTPGLutGroup.h"
0023 #include "CondFormats/EcalObjects/interface/EcalTPGLutIdMap.h"
0024 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
0025
0026 #include <fstream>
0027 #include <iomanip>
0028 #include <iostream>
0029 #include <memory>
0030 #include <vector>
0031
0032 #include "SimCalorimetry/EcalElectronicsEmulation/interface/TCCinput.h"
0033
0034 struct TCCinput;
0035 typedef std::vector<TCCinput> TCCInputData;
0036 static const int N_SM = 36;
0037
0038 class EcalFEtoDigi : public edm::one::EDProducer<> {
0039 public:
0040 explicit EcalFEtoDigi(const edm::ParameterSet &);
0041 ~EcalFEtoDigi() override {}
0042
0043 private:
0044 void beginJob() override;
0045 void produce(edm::Event &, const edm::EventSetup &) override;
0046 void endJob() override;
0047
0048 void readInput();
0049 EcalTrigTowerDetId create_TTDetId(TCCinput);
0050 EcalTriggerPrimitiveSample create_TPSample(TCCinput, const edm::EventSetup &);
0051 EcalTriggerPrimitiveSample create_TPSampleTcp(TCCinput, const edm::EventSetup &);
0052 int SMidToTCCid(const int) const;
0053 void getLUT(unsigned int *lut, const int towerId, const edm::EventSetup &) const;
0054
0055 const edm::ESGetToken<EcalTPGLutGroup, EcalTPGLutGroupRcd> tpgLutGroupToken_;
0056 const edm::ESGetToken<EcalTPGLutIdMap, EcalTPGLutIdMapRcd> tpgLutIdMapToken_;
0057
0058 TCCInputData inputdata_[N_SM];
0059
0060 const std::string basename_;
0061 const bool useIdentityLUT_;
0062 int sm_;
0063 bool singlefile;
0064
0065 const int fileEventOffset_;
0066 const bool debug_;
0067 std::ofstream outfile;
0068 };
0069
0070 #endif