30 m_textFileName(iConfig.getParameter<std::string>(
"TextFileName")),
31 m_fileEventOffset(iConfig.getParameter<int>(
"fileEventOffset")),
35 produces<L1CaloEmCollection>();
36 produces<L1CaloRegionCollection>();
44 <<
"SourceCardTextToRctDigi::SourceCardTextToRctDigi : "
45 <<
" couldn't open the file " <<
m_textFileName <<
" for reading" << std::endl;
64 for (
int j=0;
j<4;
j++) {
68 for (
int j=0;
j<14;
j++)
70 for (
unsigned j=0;
j<8;
j++)
97 <<
"SourceCardTextToRctDigi::produce() : "
108 unsigned long VHDCI[2][2];
111 std::string dataString;
112 unsigned short eventNumber;
113 unsigned short logicalCardID;
116 unsigned short eIsoRank[18][4];
117 unsigned short eIsoCardId[18][4];
118 unsigned short eIsoRegionId[18][4];
119 unsigned short eNonIsoRank[18][4];
120 unsigned short eNonIsoCardId[18][4];
121 unsigned short eNonIsoRegionId[18][4];
124 unsigned short RC[18][7][2];
125 unsigned short RCof[18][7][2];
126 unsigned short RCtau[18][7][2];
127 unsigned short MIPbits[18][7][2];
128 unsigned short Qbits[18][7][2];
129 unsigned short HF[18][4][2];
130 unsigned short HFQ[18][4][2];
136 <<
"SourceCardTextToRctDigi::produce : "
140 int thisEventNumber=-1;
144 if(!getline(
m_file,dataString))
147 <<
"SourceCardTextToRctDigi::SourceCardTextToRctDigi : "
148 <<
" couldn't read from the file " <<
m_textFileName << std::endl;
155 if(
line!=0) assert(eventNumber==thisEventNumber);
156 thisEventNumber = eventNumber;
165 eNonIsoRank[crate],eNonIsoCardId[crate],eNonIsoRegionId[crate],
166 MIPbits[crate],Qbits[crate],VHDCI);
168 }
else if (routingMode==1) {
173 }
else if (routingMode==2) {
178 }
else if (routingMode==3) {
186 <<
"SourceCardTextToRctDigi::produce : "
187 <<
" unknown routing mode=" << routingMode << std::endl;
195 for (
int i=0;
i<4;
i++){
196 em->push_back(
L1CaloEmCand(eIsoRank[crate][
i],eIsoRegionId[crate][i],eIsoCardId[crate][i],crate,
true,i,0));
197 em->push_back(
L1CaloEmCand(eNonIsoRank[crate][i],eNonIsoRegionId[crate][i],eNonIsoCardId[crate][i],crate,
false,i,0));
201 for (
int i=0;
i<7;
i++){
202 for (
int j=0;
j<2;
j++){
208 for (
int i=0;
i<4;
i++){
209 for (
int j=0;
j<2;
j++){
216 for (L1CaloEmCollection::const_iterator iem=em->begin(); iem!=em->end(); iem++){
220 for (L1CaloRegionCollection::const_iterator irgn=rgn->begin(); irgn!=rgn->end(); irgn++){
std::vector< L1CaloEmCand > L1CaloEmCollection
void putEmptyDigi(edm::Event &)
Create empty digi collection.
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
void VHDCItoRC012(unsigned short(&RC)[7][2], unsigned short(&RCof)[7][2], unsigned short(&RCtau)[7][2], unsigned long(&VHDCI)[2][2]) 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.
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
std::ifstream m_file
file handle
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()
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
int m_fileEventOffset
Number of events to skip at the start of the file.
std::vector< std::vector< double > > tmp
static const int NUM_RCT_CRATES
virtual void produce(edm::Event &, const edm::EventSetup &)
SourceCardRouting m_scRouting
source card router
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
void STRINGtoVHDCI(unsigned short &logicalCardID, unsigned short &eventNumber, std::string &dataString, unsigned long(&VHDCI)[2][2]) const
std::vector< L1CaloRegion > L1CaloRegionCollection
void LogicalCardIDtoRoutingMode(unsigned short &logicalCardID, int &RoutingMode, int &RCTCrateNumber) const