62 instanceNameEB_ = iConfig.
getParameter<
string>(
"InstanceEB");
63 instanceNameEE_ = iConfig.
getParameter<
string>(
"InstanceEE");
79 produces<FEDRawDataCollection>();
91 delete Towerblockformatter_;
92 delete TCCblockformatter_;
93 delete SRblockformatter_;
94 delete Headerblockformatter_;
108 if (debug_)
cout <<
"Enter in EcalDigiToRaw::produce ... " << endl;
114 Towerblockformatter_ -> StartEvent();
115 SRblockformatter_ -> StartEvent();
117 runnumber_ = iEvent.
id().
run();
123 counter_ = iEvent.
id().
event();
127 lv1_ = counter_ % (0x1<<24);
132 Headerblockformatter_ ->
DigiToRaw(productRawData.get());
145 if (debug_)
cout <<
"Creation of the TCC block " << endl;
151 it != ecalTrigPrim ->
end(); it++) {
159 int iDCC = TheMapping -> DCCid(detid);
165 TCCblockformatter_ ->
DigiToRaw(trigprim, rawdata, TheMapping);
173 if (debug_)
cout <<
" Process the SR flags " << endl;
181 it != ebSrFlags ->
end(); it++) {
186 int Dccid = TheMapping -> DCCid(
id);
187 int DCC_Channel = TheMapping -> iTT(
id);
190 if (debug_)
cout <<
"will process SRblockformatter_ for FEDid " << dec << FEDid << endl;
192 if (debug_) Headerblockformatter_ ->
print(rawdata);
193 SRblockformatter_ ->
DigiToRaw(Dccid,DCC_Channel,flag, rawdata);
204 it != eeSrFlags ->
end(); it++) {
208 pair<int, int> ind = TheMapping -> getDCCandSC(
id);
209 int Dccid = ind.first;
210 int DCC_Channel = ind.second;
214 SRblockformatter_ ->
DigiToRaw(Dccid,DCC_Channel,flag, rawdata);
229 if (debug_)
cout <<
"Creation of the TowerBlock ... Barrel case " << endl;
230 iEvent.
getByLabel(label_,instanceNameEB_,ebDigis);
232 it != ebDigis->end(); it++) {
234 const EBDetId& ebdetid = it -> id();
235 int DCCid = TheMapping -> DCCid(ebdetid);
238 Towerblockformatter_ ->
DigiToRaw(dataframe, rawdata, TheMapping);
244 if (debug_)
cout <<
"Creation of the TowerBlock ... EndCap case " << endl;
245 iEvent.
getByLabel(label_,instanceNameEE_,eeDigis);
247 it != eeDigis->end(); it++) {
249 const EEDetId& eedetid = it -> id();
251 int DCCid = elid.
dccId() ;
254 Towerblockformatter_ ->
DigiToRaw(dataframe, rawdata, TheMapping);
264 map<int, map<int,int> >* FEDorder = Towerblockformatter_ -> GetFEDorder();
266 Headerblockformatter_ -> CleanUp(productRawData.get(), FEDorder);
279 Towerblockformatter_ -> EndEvent(productRawData.get());
281 iEvent.
put(productRawData);
293 Headerblockformatter_ -> SetParam(
this);
294 Towerblockformatter_ -> SetParam(
this);
295 TCCblockformatter_ -> SetParam(
this);
296 SRblockformatter_ -> SetParam(
this);
T getParameter(std::string const &) const
EventNumber_t event() const
T getUntrackedParameter(std::string const &, T const &) const
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
Ecal readout channel identification [32:20] Unused (so far) [19:13] DCC id [12:6] tower [5:3] strip [...
std::vector< T >::const_iterator const_iterator
int bunchCrossing() const
virtual const DetId & id() const =0
S & print(S &os, JobReport::InputFile const &f)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
int dccId() const
get the DCC (Ecal Local DCC value not global one) id
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void produce(edm::Event &e, const edm::EventSetup &c)
T const * product() const
EcalSubdetector subDet() const
get the subDetector associated to the Trigger Tower
EcalDigiToRaw(const edm::ParameterSet &pset)