31 : m_textFileName(iConfig.getParameter<
std::
string>(
"TextFileName")),
32 m_fileEventOffset(iConfig.getParameter<
int>(
"fileEventOffset")),
35 produces<L1CaloEmCollection>();
36 produces<L1CaloRegionCollection>();
43 <<
"SourceCardTextToRctDigi::SourceCardTextToRctDigi : " 44 <<
" couldn't open the file " <<
m_textFileName <<
" for reading" << std::endl;
61 for (
int j = 0;
j < 4;
j++) {
65 for (
int j = 0;
j < 14;
j++)
66 rgn->push_back(
L1CaloRegion(0,
false,
false,
false,
false,
i,
j / 2,
j % 2));
67 for (
unsigned j = 0;
j < 8;
j++)
92 <<
"SourceCardTextToRctDigi::produce() : " 102 unsigned long VHDCI[2][2];
106 unsigned short eventNumber;
107 unsigned short logicalCardID;
110 unsigned short eIsoRank[18][4];
111 unsigned short eIsoCardId[18][4];
112 unsigned short eIsoRegionId[18][4];
113 unsigned short eNonIsoRank[18][4];
114 unsigned short eNonIsoCardId[18][4];
115 unsigned short eNonIsoRegionId[18][4];
118 unsigned short RC[18][7][2];
119 unsigned short RCof[18][7][2];
120 unsigned short RCtau[18][7][2];
121 unsigned short MIPbits[18][7][2];
122 unsigned short Qbits[18][7][2];
123 unsigned short HF[18][4][2];
124 unsigned short HFQ[18][4][2];
129 <<
"SourceCardTextToRctDigi::produce : " 133 int thisEventNumber = -1;
136 if (!getline(
m_file, dataString)) {
138 <<
"SourceCardTextToRctDigi::SourceCardTextToRctDigi : " 139 <<
" couldn't read from the file " <<
m_textFileName << std::endl;
147 assert(eventNumber == thisEventNumber);
148 thisEventNumber = eventNumber;
153 if (routingMode == 0) {
159 eNonIsoCardId[crate],
160 eNonIsoRegionId[crate],
165 }
else if (routingMode == 1) {
169 }
else if (routingMode == 2) {
173 }
else if (routingMode == 3) {
176 RC[crate], RCof[crate], RCtau[crate], RC[crate + 9], RCof[crate + 9], RCtau[crate + 9], VHDCI);
180 throw cms::Exception(
"SourceCardtextToRctDigiError") <<
"SourceCardTextToRctDigi::produce : " 181 <<
" unknown routing mode=" << routingMode << std::endl;
188 for (
int i = 0;
i < 4;
i++) {
189 em->push_back(
L1CaloEmCand(eIsoRank[crate][
i], eIsoRegionId[crate][
i], eIsoCardId[crate][
i], crate,
true,
i, 0));
191 L1CaloEmCand(eNonIsoRank[crate][
i], eNonIsoRegionId[crate][
i], eNonIsoCardId[crate][
i], crate,
false,
i, 0));
195 for (
int i = 0;
i < 7;
i++) {
196 for (
int j = 0;
j < 2;
j++) {
200 MIPbits[crate][
i][
j],
209 for (
int i = 0;
i < 4;
i++) {
210 for (
int j = 0;
j < 2;
j++) {
220 for (L1CaloEmCollection::const_iterator iem = em->begin(); iem != em->end(); iem++) {
224 for (L1CaloRegionCollection::const_iterator irgn = rgn->begin(); irgn != rgn->end(); irgn++) {
std::vector< L1CaloEmCand > L1CaloEmCollection
void VHDCItoRC234(unsigned short(&RC)[7][2], unsigned short(&RCof)[7][2], unsigned short(&RCtau)[7][2], unsigned short(&sisterRC)[7][2], unsigned short(&sisterRCof)[7][2], unsigned short(&sisterRCtau)[7][2], unsigned long(&VHDCI)[2][2]) const
void putEmptyDigi(edm::Event &)
Create empty digi collection.
void LogicalCardIDtoRoutingMode(unsigned short &logicalCardID, int &RoutingMode, int &RCTCrateNumber) const
SourceCardTextToRctDigi(const edm::ParameterSet &)
std::string m_textFileName
Name out input file.
static L1CaloRegion makeHBHERegion(const unsigned et, const bool overFlow, const bool tauVeto, const bool mip, const bool quiet, const unsigned crate, const unsigned card, const unsigned rgn)
constructor HB/HE region from components
Level-1 Region Calorimeter Trigger EM candidate.
void VHDCItoRC56HF(unsigned short(&RC)[7][2], unsigned short(&RCof)[7][2], unsigned short(&RCtau)[7][2], unsigned short(&HF)[4][2], unsigned short(&HFQ)[4][2], unsigned long(&VHDCI)[2][2]) const
~SourceCardTextToRctDigi() override
std::ifstream m_file
file handle
Abs< T >::type abs(const T &t)
void VHDCItoRC012(unsigned short(&RC)[7][2], unsigned short(&RCof)[7][2], unsigned short(&RCtau)[7][2], unsigned long(&VHDCI)[2][2]) const
void STRINGtoVHDCI(unsigned short &logicalCardID, unsigned short &eventNumber, std::string &dataString, unsigned long(&VHDCI)[2][2]) const
int m_fileEventOffset
Number of events to skip at the start of the file.
static const int NUM_RCT_CRATES
SourceCardRouting m_scRouting
source card router
void VHDCItoEMU(unsigned short(&eIsoRank)[4], unsigned short(&eIsoCardId)[4], unsigned short(&eIsoRegionId)[4], unsigned short(&eNonIsoRank)[4], unsigned short(&eNonIsoCardId)[4], unsigned short(&eNonIsoRegionId)[4], unsigned short(&MIPbits)[7][2], unsigned short(&Qbits)[7][2], unsigned long(&VHDCI)[2][2]) const
static L1CaloRegion makeHFRegion(const unsigned et, const bool fineGrain, const unsigned crate, const unsigned rgn)
construct HF region from components
A calorimeter trigger region (sum of 4x4 trigger towers)
static const unsigned NUM_LINES_PER_EVENT
std::vector< L1CaloRegion > L1CaloRegionCollection
void produce(edm::Event &, const edm::EventSetup &) override