00001 #include "EventFilter/EcalRawToDigi/plugins/EcalRawToRecHitByproductProducer.h"
00002 #include "EventFilter/EcalRawToDigi/interface/EcalUnpackerWorkerRecord.h"
00003 #include "EventFilter/EcalRawToDigi/interface/EcalUnpackerWorker.h"
00004
00005
00006 EcalRawToRecHitByproductProducer::EcalRawToRecHitByproductProducer(const edm::ParameterSet& iConfig)
00007 {
00008 workerName_ = iConfig.getParameter<std::string>("workerName");
00009
00010 produces<EBDigiCollection>("ebDigis");
00011 produces<EEDigiCollection>("eeDigis");
00012
00013 produces<EBSrFlagCollection>();
00014 produces<EESrFlagCollection>();
00015 produces<EcalRawDataCollection>();
00016 produces<EcalPnDiodeDigiCollection>();
00017 produces<EcalTrigPrimDigiCollection>("EcalTriggerPrimitives");
00018
00019
00020 produces<EBDetIdCollection>("EcalIntegrityGainErrors");
00021 produces<EBDetIdCollection>("EcalIntegrityGainSwitchErrors");
00022 produces<EBDetIdCollection>("EcalIntegrityChIdErrors");
00023
00024
00025 produces<EEDetIdCollection>("EcalIntegrityGainErrors");
00026 produces<EEDetIdCollection>("EcalIntegrityGainSwitchErrors");
00027 produces<EEDetIdCollection>("EcalIntegrityChIdErrors");
00028
00029
00030 produces<EcalElectronicsIdCollection>("EcalIntegrityTTIdErrors");
00031 produces<EcalElectronicsIdCollection>("EcalIntegrityBlockSizeErrors");
00032
00033
00034 produces<EcalElectronicsIdCollection>("EcalIntegrityMemTtIdErrors");
00035 produces<EcalElectronicsIdCollection>("EcalIntegrityMemBlockSizeErrors");
00036 produces<EcalElectronicsIdCollection>("EcalIntegrityMemChIdErrors");
00037 produces<EcalElectronicsIdCollection>("EcalIntegrityMemGainErrors");
00038 }
00039
00040
00041
00042 void
00043 EcalRawToRecHitByproductProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup)
00044 {
00045
00046 edm::ESHandle<EcalUnpackerWorker> worker;
00047 iSetup.get<EcalUnpackerWorkerRecord>().get(workerName_, worker);
00048 LogDebug("EcalRawToRecHit|Byproducts")<<"worker retrieved.";
00049
00050
00051 std::auto_ptr<EBDigiCollection> productDigisEB(worker->productDigisEB);
00052
00053
00054 std::auto_ptr<EEDigiCollection> productDigisEE(worker->productDigisEE);
00055
00056
00057 std::auto_ptr<EcalRawDataCollection> productDccHeaders(worker->productDccHeaders);
00058
00059
00060 std::auto_ptr< EBDetIdCollection> productInvalidGains(worker->productInvalidGains);
00061
00062
00063 std::auto_ptr< EBDetIdCollection> productInvalidGainsSwitch(worker->productInvalidGainsSwitch);
00064
00065
00066 std::auto_ptr< EBDetIdCollection> productInvalidChIds(worker->productInvalidChIds);
00067
00069
00070
00071 std::auto_ptr<EEDetIdCollection> productInvalidEEGains(worker->productInvalidEEGains);
00072
00073
00074 std::auto_ptr<EEDetIdCollection> productInvalidEEGainsSwitch(worker->productInvalidEEGainsSwitch);
00075
00076
00077 std::auto_ptr<EEDetIdCollection> productInvalidEEChIds(worker->productInvalidEEChIds);
00078
00080
00081
00082 std::auto_ptr<EBSrFlagCollection> productEBSrFlags(worker->productEBSrFlags);
00083
00084
00085 std::auto_ptr<EESrFlagCollection> productEESrFlags(worker->productEESrFlags);
00086
00087
00088 std::auto_ptr<EcalTrigPrimDigiCollection> productEcalTps(worker->productTps);
00090
00091
00092 std::auto_ptr<EcalElectronicsIdCollection> productInvalidTTIds(worker->productInvalidTTIds);
00093
00094
00095 std::auto_ptr<EcalElectronicsIdCollection> productInvalidBlockLengths(worker->productInvalidBlockLengths);
00096
00097
00098
00099 std::auto_ptr<EcalPnDiodeDigiCollection> productPnDiodeDigis(worker->productPnDiodeDigis);
00100
00101
00102 std::auto_ptr<EcalElectronicsIdCollection> productInvalidMemTtIds(worker->productInvalidMemTtIds);
00103
00104
00105 std::auto_ptr<EcalElectronicsIdCollection> productInvalidMemBlockSizes(worker->productInvalidMemBlockSizes);
00106
00107
00108 std::auto_ptr<EcalElectronicsIdCollection> productInvalidMemChIds(worker->productInvalidMemChIds);
00109
00110
00111 std::auto_ptr<EcalElectronicsIdCollection> productInvalidMemGains(worker->productInvalidMemGains);
00112
00113
00114
00115
00116
00117 iEvent.put(productDccHeaders);
00118 iEvent.put(productInvalidGains,"EcalIntegrityGainErrors");
00119 iEvent.put(productInvalidGainsSwitch, "EcalIntegrityGainSwitchErrors");
00120 iEvent.put(productInvalidChIds, "EcalIntegrityChIdErrors");
00121
00122 iEvent.put(productInvalidEEGains,"EcalIntegrityGainErrors");
00123 iEvent.put(productInvalidEEGainsSwitch, "EcalIntegrityGainSwitchErrors");
00124 iEvent.put(productInvalidEEChIds, "EcalIntegrityChIdErrors");
00125
00126 iEvent.put(productInvalidTTIds,"EcalIntegrityTTIdErrors");
00127 iEvent.put(productInvalidBlockLengths,"EcalIntegrityBlockSizeErrors");
00128 iEvent.put(productPnDiodeDigis);
00129
00130 iEvent.put(productInvalidMemTtIds,"EcalIntegrityMemTtIdErrors");
00131 iEvent.put(productInvalidMemBlockSizes,"EcalIntegrityMemBlockSizeErrors");
00132 iEvent.put(productInvalidMemChIds,"EcalIntegrityMemChIdErrors");
00133 iEvent.put(productInvalidMemGains,"EcalIntegrityMemGainErrors");
00134
00135
00136 iEvent.put(productEBSrFlags);
00137 iEvent.put(productEESrFlags);
00138
00139
00140 iEvent.put(productEcalTps,"EcalTriggerPrimitives");
00141
00142
00143 worker->update(iEvent);
00144 }