00001 #include "L1Trigger/HardwareValidation/plugins/L1DummyProducer.h" 00002 00003 using namespace dedefs; 00004 00005 L1DummyProducer::L1DummyProducer(const edm::ParameterSet& iConfig) { 00006 00007 verbose_ = iConfig.getUntrackedParameter<int>("VerboseFlag",0); 00008 00009 if(verbose()) 00010 std::cout << "L1DummyProducer::L1DummyProducer...\n" << std::flush; 00011 00012 std::vector<unsigned int> compColls 00013 = iConfig.getUntrackedParameter<std::vector<unsigned int> >("DO_SYSTEM"); 00014 00015 for(int i=0; i<DEnsys; i++) 00016 m_doSys[i] = compColls[i]; 00017 00018 if(verbose()) { 00019 std::cout << "[L1DummyProducer] do sys? "; 00020 for(int i=0; i<DEnsys; i++) 00021 std::cout << m_doSys[i]; 00022 std::cout << std::endl; 00023 for(int i=0; i<DEnsys; i++) 00024 if(m_doSys[i]) 00025 std::cout << SystLabel[i] << " "; 00026 std::cout << std::endl; 00027 } 00028 00029 std::string CollInstName[DEnsys][5]; 00030 for(int i=0; i<DEnsys; i++) 00031 for(int j=0; j<5; j++) 00032 CollInstName[i][j]=std::string(""); 00033 00034 CollInstName[GCT][0]+="isoEm" ; 00035 CollInstName[GCT][1]+="nonIsoEm"; 00036 CollInstName[GCT][2]+="cenJets" ; 00037 CollInstName[GCT][3]+="forJets" ; 00038 CollInstName[GCT][4]+="tauJets" ; 00039 CollInstName[DTF][0]+="DT" ; 00040 CollInstName[DTF][1]+="DTTF" ; 00041 CollInstName[CTF][0]+="CSC" ; 00042 CollInstName[CTF][1]+="" ; 00043 CollInstName[RPC][0]+="RPCb" ; 00044 CollInstName[RPC][1]+="RPCf" ; 00045 00046 for(int i=0; i<DEnsys; i++) 00047 for(int j=0; j<5; j++) 00048 instName[i][j] = CollInstName[i][j]; 00049 00050 if(verbose()) { 00051 std::cout << "[L1DummyProducer] instName:\n"; 00052 for(int i=0; i<DEnsys; i++) 00053 for(int j=0; j<5; j++) 00054 if(instName[i][j] != "") 00055 std::cout << i << " " << SystLabel[i] << " " << j << " " 00056 << instName[i][j] << std::endl; 00057 std::cout << std::flush; 00058 } 00059 00061 assert(ETP==0); assert(HTP==1); assert(RCT== 2); assert(GCT== 3); 00062 assert(DTP==4); assert(DTF==5); assert(CTP== 6); assert(CTF== 7); 00063 assert(RPC==8); assert(LTC==9); assert(GMT==10); assert(GLT==11); 00064 00066 if(m_doSys[ETP]) produces<EcalTrigPrimDigiCollection> (instName[ETP][0]); 00067 if(m_doSys[HTP]) produces<HcalTrigPrimDigiCollection> (instName[HTP][0]); 00068 if(m_doSys[RCT]) produces<L1CaloEmCollection> (instName[RCT][0]); 00069 if(m_doSys[RCT]) produces<L1CaloRegionCollection> (instName[RCT][0]); 00070 if(m_doSys[GCT]) produces<L1GctEmCandCollection> (instName[GCT][0]); 00071 if(m_doSys[GCT]) produces<L1GctEmCandCollection> (instName[GCT][1]); 00072 if(m_doSys[GCT]) produces<L1GctJetCandCollection> (instName[GCT][2]); 00073 if(m_doSys[GCT]) produces<L1GctJetCandCollection> (instName[GCT][3]); 00074 if(m_doSys[GCT]) produces<L1GctJetCandCollection> (instName[GCT][4]); 00075 if(m_doSys[DTP]) produces<L1MuDTChambPhContainer> (instName[DTP][0]); 00076 if(m_doSys[DTP]) produces<L1MuDTChambThContainer> (instName[DTP][0]); 00077 if(m_doSys[DTF]) produces<L1MuRegionalCandCollection> (instName[DTF][0]); 00078 if(m_doSys[DTF]) produces<L1MuDTTrackContainer> (instName[DTF][1]); 00079 if(m_doSys[CTP]) produces<CSCCorrelatedLCTDigiCollection> (instName[CTP][0]); 00080 if(m_doSys[CTF]) produces<L1MuRegionalCandCollection> (instName[CTF][0]); 00081 if(m_doSys[CTF]) produces<L1CSCTrackCollection> (instName[CTF][1]); 00082 if(m_doSys[RPC]) produces<L1MuRegionalCandCollection> (instName[RPC][0]); 00083 if(m_doSys[RPC]) produces<L1MuRegionalCandCollection> (instName[RPC][1]); 00084 if(m_doSys[LTC]) produces<LTCDigiCollection> (instName[LTC][0]); 00085 if(m_doSys[GMT]) produces<L1MuGMTCandCollection> (instName[GMT][0]); 00086 if(m_doSys[GMT]) produces<L1MuGMTReadoutCollection> (instName[GMT][0]); 00087 if(m_doSys[GLT]) produces<L1GlobalTriggerReadoutRecord> (instName[GLT][0]); 00088 if(m_doSys[GLT]) produces<L1GlobalTriggerEvmReadoutRecord>(instName[GLT][0]); 00089 if(m_doSys[GLT]) produces<L1GlobalTriggerObjectMapRecord> (instName[GLT][0]); 00090 00092 edm::Service<edm::RandomNumberGenerator> rng; 00093 CLHEP::HepRandomEngine& engine = rng->getEngine(); 00094 rndFlat_ = new CLHEP::RandFlat (engine, 0., 1.); 00095 rndGaus_ = new CLHEP::RandGaussQ(engine, 0., 1.); 00096 EBase_ = iConfig.getUntrackedParameter<double>("EnergyBase",100.); 00097 ESigm_ = iConfig.getUntrackedParameter<double>("EnergySigm",10.); 00098 00099 nevt_=0; 00100 00101 } 00102 00103 L1DummyProducer::~L1DummyProducer() { 00104 delete rndFlat_; 00105 delete rndGaus_; 00106 } 00107 00108 void 00109 L1DummyProducer::beginJob(const edm::EventSetup&) {} 00110 00111 void 00112 L1DummyProducer::endJob() {} 00113 00114 void 00115 L1DummyProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { 00116 00117 if(verbose()) 00118 std::cout << "L1DummyProducer::produce...\n" << std::flush; 00119 00121 std::auto_ptr<EcalTrigPrimDigiCollection> ecal_tp_data(new EcalTrigPrimDigiCollection ); 00122 std::auto_ptr<HcalTrigPrimDigiCollection> hcal_tp_data(new HcalTrigPrimDigiCollection ); 00123 std::auto_ptr<L1CaloEmCollection> rct_em_data(new L1CaloEmCollection ); 00124 std::auto_ptr<L1CaloRegionCollection> rct_rgn_data(new L1CaloRegionCollection ); 00125 std::auto_ptr<L1GctEmCandCollection> gct_isolaem_data(new L1GctEmCandCollection ); 00126 std::auto_ptr<L1GctEmCandCollection> gct_noisoem_data(new L1GctEmCandCollection ); 00127 std::auto_ptr<L1GctJetCandCollection> gct_cenjets_data(new L1GctJetCandCollection ); 00128 std::auto_ptr<L1GctJetCandCollection> gct_forjets_data(new L1GctJetCandCollection ); 00129 std::auto_ptr<L1GctJetCandCollection> gct_taujets_data(new L1GctJetCandCollection ); 00130 std::auto_ptr<L1MuDTChambPhContainer> dtp_ph_data(new L1MuDTChambPhContainer ); 00131 std::auto_ptr<L1MuDTChambThContainer> dtp_th_data(new L1MuDTChambThContainer ); 00132 std::auto_ptr<L1MuRegionalCandCollection> dtf_data(new L1MuRegionalCandCollection ); 00133 std::auto_ptr<L1MuDTTrackContainer> dtf_trk_data(new L1MuDTTrackContainer ); 00134 std::auto_ptr<CSCCorrelatedLCTDigiCollection> ctp_data(new CSCCorrelatedLCTDigiCollection ); 00135 std::auto_ptr<L1MuRegionalCandCollection> ctf_data(new L1MuRegionalCandCollection ); 00136 std::auto_ptr<L1CSCTrackCollection> ctf_trk_data(new L1CSCTrackCollection ); 00137 std::auto_ptr<L1MuRegionalCandCollection> rpc_cen_data(new L1MuRegionalCandCollection ); 00138 std::auto_ptr<L1MuRegionalCandCollection> rpc_for_data(new L1MuRegionalCandCollection ); 00139 std::auto_ptr<LTCDigiCollection> ltc_data(new LTCDigiCollection ); 00140 std::auto_ptr<L1MuGMTCandCollection> gmt_data(new L1MuGMTCandCollection ); 00141 std::auto_ptr<L1MuGMTReadoutCollection> gmt_rdt_data(new L1MuGMTReadoutCollection ); 00142 std::auto_ptr<L1GlobalTriggerReadoutRecord> glt_rdt_data(new L1GlobalTriggerReadoutRecord ); 00143 std::auto_ptr<L1GlobalTriggerEvmReadoutRecord> glt_evm_data(new L1GlobalTriggerEvmReadoutRecord); 00144 std::auto_ptr<L1GlobalTriggerObjectMapRecord> glt_obj_data(new L1GlobalTriggerObjectMapRecord ); 00145 00147 if(m_doSys[ETP]) SimpleDigi( ecal_tp_data ); 00148 if(m_doSys[HTP]) SimpleDigi( hcal_tp_data ); 00149 if(m_doSys[RCT]) SimpleDigi( rct_em_data ); 00150 if(m_doSys[RCT]) SimpleDigi( rct_rgn_data ); 00151 if(m_doSys[GCT]) SimpleDigi(gct_isolaem_data,0); 00152 if(m_doSys[GCT]) SimpleDigi(gct_noisoem_data,1); 00153 if(m_doSys[GCT]) SimpleDigi(gct_cenjets_data,0); 00154 if(m_doSys[GCT]) SimpleDigi(gct_forjets_data,1); 00155 if(m_doSys[GCT]) SimpleDigi(gct_taujets_data,2); 00156 if(m_doSys[DTP]) SimpleDigi( dtp_ph_data ); 00157 if(m_doSys[DTP]) SimpleDigi( dtp_th_data ); 00158 if(m_doSys[DTF]) SimpleDigi( dtf_data,0); 00159 if(m_doSys[DTF]) SimpleDigi( dtf_trk_data ); 00160 if(m_doSys[CTP]) SimpleDigi( ctp_data ); 00161 if(m_doSys[CTF]) SimpleDigi( ctf_data,2); 00162 if(m_doSys[CTF]) SimpleDigi( ctf_trk_data ); 00163 if(m_doSys[RPC]) SimpleDigi( rpc_cen_data,1); 00164 if(m_doSys[RPC]) SimpleDigi( rpc_for_data,3); 00165 if(m_doSys[LTC]) SimpleDigi( ltc_data ); 00166 if(m_doSys[GMT]) SimpleDigi( gmt_data ); 00167 if(m_doSys[GMT]) SimpleDigi( gmt_rdt_data ); 00168 if(m_doSys[GLT]) SimpleDigi( glt_rdt_data ); 00169 if(m_doSys[GLT]) SimpleDigi( glt_evm_data ); 00170 if(m_doSys[GLT]) SimpleDigi( glt_obj_data ); 00171 00173 if(m_doSys[ETP]) iEvent.put( ecal_tp_data,instName[ETP][0]); 00174 if(m_doSys[HTP]) iEvent.put( hcal_tp_data,instName[HTP][0]); 00175 if(m_doSys[RCT]) iEvent.put( rct_em_data,instName[RCT][0]); 00176 if(m_doSys[RCT]) iEvent.put( rct_rgn_data,instName[RCT][0]); 00177 if(m_doSys[GCT]) iEvent.put(gct_isolaem_data,instName[GCT][0]); 00178 if(m_doSys[GCT]) iEvent.put(gct_noisoem_data,instName[GCT][1]); 00179 if(m_doSys[GCT]) iEvent.put(gct_cenjets_data,instName[GCT][2]); 00180 if(m_doSys[GCT]) iEvent.put(gct_forjets_data,instName[GCT][3]); 00181 if(m_doSys[GCT]) iEvent.put(gct_taujets_data,instName[GCT][4]); 00182 if(m_doSys[DTP]) iEvent.put( dtp_ph_data,instName[DTP][0]); 00183 if(m_doSys[DTP]) iEvent.put( dtp_th_data,instName[DTP][0]); 00184 if(m_doSys[DTF]) iEvent.put( dtf_data,instName[DTF][0]); 00185 if(m_doSys[DTF]) iEvent.put( dtf_trk_data,instName[DTF][1]); 00186 if(m_doSys[CTP]) iEvent.put( ctp_data,instName[CTP][0]); 00187 if(m_doSys[CTF]) iEvent.put( ctf_data,instName[CTF][0]); 00188 if(m_doSys[CTF]) iEvent.put( ctf_trk_data,instName[CTF][1]); 00189 if(m_doSys[RPC]) iEvent.put( rpc_cen_data,instName[RPC][0]); 00190 if(m_doSys[RPC]) iEvent.put( rpc_for_data,instName[RPC][1]); 00191 if(m_doSys[LTC]) iEvent.put( ltc_data,instName[LTC][0]); 00192 if(m_doSys[GMT]) iEvent.put( gmt_data,instName[GMT][0]); 00193 if(m_doSys[GMT]) iEvent.put( gmt_rdt_data,instName[GMT][0]); 00194 if(m_doSys[GLT]) iEvent.put( glt_rdt_data,instName[GLT][0]); 00195 if(m_doSys[GLT]) iEvent.put( glt_evm_data,instName[GLT][0]); 00196 if(m_doSys[GLT]) iEvent.put( glt_obj_data,instName[GLT][0]); 00197 00198 nevt_++; 00199 00200 if(verbose()) 00201 std::cout << "L1DummyProducer::produce end.\n" << std::flush; 00202 00203 }