13 getAllProvenances(
false), printProvenanceInfo(
false), nRawGenPart(0),
14 G4VtxSrc_Token_( consumes<edm::
SimVertexContainer>((iPSet.getParameter<edm::InputTag>(
"G4VtxSrc"))) ),
15 G4TrkSrc_Token_( consumes<edm::
SimTrackContainer>(iPSet.getParameter<edm::InputTag>(
"G4TrkSrc")) ),
24 std::string MsgLoggerCat =
"GlobalHitsProducer_GlobalHitsProducer";
35 m_Prov.getUntrackedParameter<
bool>(
"GetAllProvenances");
37 m_Prov.getUntrackedParameter<
bool>(
"PrintProvenanceInfo");
93 produces<PGlobalSimHit>(
label);
98 <<
"\n===============================\n"
99 <<
"Initialized as EDProducer with parameter values:\n"
100 <<
" Name = " <<
fName <<
"\n"
101 <<
" Verbosity = " << verbosity <<
"\n"
102 <<
" Frequency = " << frequency <<
"\n"
103 <<
" VtxUnit = " << vtxunit <<
"\n"
104 <<
" Label = " << label <<
"\n"
105 <<
" GetProv = " << getAllProvenances <<
"\n"
106 <<
" PrintProv = " << printProvenanceInfo <<
"\n"
107 <<
" PxlBrlLowSrc = " << PxlBrlLowSrc_.label()
108 <<
":" << PxlBrlLowSrc_.instance() <<
"\n"
109 <<
" PxlBrlHighSrc = " << PxlBrlHighSrc_.
label()
110 <<
":" << PxlBrlHighSrc_.
instance() <<
"\n"
111 <<
" PxlFwdLowSrc = " << PxlFwdLowSrc_.
label()
112 <<
":" << PxlBrlLowSrc_.instance() <<
"\n"
113 <<
" PxlFwdHighSrc = " << PxlFwdHighSrc_.
label()
114 <<
":" << PxlBrlHighSrc_.
instance() <<
"\n"
115 <<
" SiTIBLowSrc = " << SiTIBLowSrc_.
label()
116 <<
":" << SiTIBLowSrc_.
instance() <<
"\n"
117 <<
" SiTIBHighSrc = " << SiTIBHighSrc_.
label()
118 <<
":" << SiTIBHighSrc_.
instance() <<
"\n"
119 <<
" SiTOBLowSrc = " << SiTOBLowSrc_.
label()
120 <<
":" << SiTOBLowSrc_.
instance() <<
"\n"
121 <<
" SiTOBHighSrc = " << SiTOBHighSrc_.
label()
122 <<
":" << SiTOBHighSrc_.
instance() <<
"\n"
123 <<
" SiTIDLowSrc = " << SiTIDLowSrc_.
label()
124 <<
":" << SiTIDLowSrc_.
instance() <<
"\n"
125 <<
" SiTIDHighSrc = " << SiTIDHighSrc_.
label()
126 <<
":" << SiTIDHighSrc_.
instance() <<
"\n"
127 <<
" SiTECLowSrc = " << SiTECLowSrc_.
label()
128 <<
":" << SiTECLowSrc_.
instance() <<
"\n"
129 <<
" SiTECHighSrc = " << SiTECHighSrc_.
label()
130 <<
":" << SiTECHighSrc_.
instance() <<
"\n"
131 <<
" MuonCscSrc = " << MuonCscSrc_.
label()
132 <<
":" << MuonCscSrc_.
instance() <<
"\n"
133 <<
" MuonDtSrc = " << MuonDtSrc_.
label()
134 <<
":" << MuonDtSrc_.
instance() <<
"\n"
135 <<
" MuonRpcSrc = " << MuonRpcSrc_.
label()
136 <<
":" << MuonRpcSrc_.
instance() <<
"\n"
137 <<
" ECalEBSrc = " << ECalEBSrc_.
label()
138 <<
":" << ECalEBSrc_.
instance() <<
"\n"
139 <<
" ECalEESrc = " << ECalEESrc_.
label()
140 <<
":" << ECalEESrc_.
instance() <<
"\n"
141 <<
" ECalESSrc = " << ECalESSrc_.
label()
142 <<
":" << ECalESSrc_.
instance() <<
"\n"
143 <<
" HCalSrc = " << HCalSrc_.
label()
144 <<
":" << HCalSrc_.
instance() <<
"\n"
145 <<
"===============================\n";
164 std::string MsgLoggerCat =
"GlobalHitsProducer_endJob";
167 <<
"Terminating having processed " <<
count <<
" events.";
174 std::string MsgLoggerCat =
"GlobalHitsProducer_produce";
180 int nrun = iEvent.
id().
run();
185 <<
"Processing run " << nrun <<
", event " << nevt
186 <<
" (" <<
count <<
" events total)";
190 <<
"Processing run " << nrun <<
", event " << nevt
191 <<
" (" <<
count <<
" events total)";
201 std::vector<const edm::Provenance*> AllProv;
206 <<
"Number of Provenances = " << AllProv.size();
209 TString eventout(
"\nProvenance info:\n");
211 for (
unsigned int i = 0;
i < AllProv.size(); ++
i) {
212 eventout +=
"\n ******************************";
213 eventout +=
"\n Module : ";
214 eventout += AllProv[
i]->moduleLabel();
215 eventout +=
"\n ProductID : ";
216 eventout += AllProv[
i]->productID().id();
217 eventout +=
"\n ClassName : ";
218 eventout += AllProv[
i]->className();
219 eventout +=
"\n InstanceName : ";
220 eventout += AllProv[
i]->productInstanceName();
221 eventout +=
"\n BranchName : ";
222 eventout += AllProv[
i]->branchName();
224 eventout +=
"\n ******************************\n";
245 <<
"Done gathering data from event.";
252 <<
"Saving event contents:";
276 std::string MsgLoggerCat =
"GlobalHitsProducer_fillG4MC";
280 eventout =
"\nGathering info:";
286 std::vector<edm::Handle<edm::HepMCProduct> > AllHepMCEvt;
291 for (
unsigned int i = 0;
i < AllHepMCEvt.size(); ++
i) {
292 HepMCEvt = AllHepMCEvt[
i];
299 <<
"Unable to find HepMCProduct in event!";
302 eventout +=
"\n Using HepMCProduct: ";
305 const HepMC::GenEvent* MCEvt = HepMCEvt->GetEvent();
309 eventout +=
"\n Number of Raw Particles collected:......... ";
323 if (!G4VtxContainer.
isValid()) {
325 <<
"Unable to find SimVertex in event!";
329 edm::SimVertexContainer::const_iterator itVtx;
330 for (itVtx = G4VtxContainer->begin(); itVtx != G4VtxContainer->end();
336 itVtx->position().y(),
337 itVtx->position().z(),
338 itVtx->position().e());
340 G4Vtx1.GetCoordinates(G4Vtx);
342 G4VtxX.push_back((G4Vtx[0]*unit)/micrometer);
343 G4VtxY.push_back((G4Vtx[1]*unit)/micrometer);
344 G4VtxZ.push_back((G4Vtx[2]*unit)/millimeter);
348 eventout +=
"\n Number of G4Vertices collected:............ ";
358 if (!G4TrkContainer.
isValid()) {
360 <<
"Unable to find SimTrack in event!";
364 edm::SimTrackContainer::const_iterator itTrk;
365 for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end();
371 itTrk->momentum().y(),
372 itTrk->momentum().z(),
373 itTrk->momentum().e());
375 G4Trk1.GetCoordinates(G4Trk);
377 G4TrkPt.push_back(
sqrt(G4Trk[0]*G4Trk[0]+G4Trk[1]*G4Trk[1]));
378 G4TrkE.push_back(G4Trk[3]);
382 eventout +=
"\n Number of G4Tracks collected:.............. ";
394 std::string MsgLoggerCat =
"GlobalHitsProducer_storeG4MC";
397 TString eventout(
"\n nRawGenPart = ");
399 eventout +=
"\n nG4Vtx = ";
400 eventout +=
G4VtxX.size();
401 for (
unsigned int i = 0;
i <
G4VtxX.size(); ++
i) {
402 eventout +=
"\n (x,y,z) = (";
410 eventout +=
"\n nG4Trk = ";
412 for (
unsigned int i = 0;
i <
G4TrkPt.size(); ++
i) {
413 eventout +=
"\n (pt,e) = (";
432 std::string MsgLoggerCat =
"GlobalHitsProducer_fillTrk";
436 eventout =
"\nGathering info:";
441 if (!theTrackerGeometry.
isValid()) {
443 <<
"Unable to find TrackerDigiGeometryRecord in event!";
449 edm::PSimHitContainer::const_iterator itHit;
458 if (!PxlBrlLowContainer.
isValid()) {
460 <<
"Unable to find TrackerHitsPixelBarrelLowTof in event!";
466 if (!PxlBrlHighContainer.
isValid()) {
468 <<
"Unable to find TrackerHitsPixelBarrelHighTof in event!";
472 thePxlBrlHits.insert(thePxlBrlHits.end(),PxlBrlLowContainer->begin(),
473 PxlBrlLowContainer->end());
474 thePxlBrlHits.insert(thePxlBrlHits.end(),PxlBrlHighContainer->begin(),
475 PxlBrlHighContainer->end());
479 for (itHit = thePxlBrlHits.begin(); itHit != thePxlBrlHits.end(); ++itHit) {
484 DetId theDetUnitId(itHit->detUnitId());
485 int detector = theDetUnitId.
det();
486 int subdetector = theDetUnitId.subdetId();
496 <<
"Unable to get GeomDetUnit from PxlBrlHits for Hit " <<
i;
507 PxlBrlR.push_back(bSurface.toGlobal(itHit->localPosition()).
perp());
508 PxlBrlPhi.push_back(bSurface.toGlobal(itHit->localPosition()).
phi());
509 PxlBrlEta.push_back(bSurface.toGlobal(itHit->localPosition()).
eta());
513 <<
"PxlBrl PSimHit " << i
514 <<
" is expected to be (det,subdet) = ("
516 <<
"); value returned is: ("
517 << detector <<
"," << subdetector <<
")";
523 eventout +=
"\n Number of Pixel Barrel Hits collected:..... ";
534 if (!PxlFwdLowContainer.
isValid()) {
536 <<
"Unable to find TrackerHitsPixelEndcapLowTof in event!";
542 if (!PxlFwdHighContainer.
isValid()) {
544 <<
"Unable to find TrackerHitsPixelEndcapHighTof in event!";
548 thePxlFwdHits.insert(thePxlFwdHits.end(),PxlFwdLowContainer->begin(),
549 PxlFwdLowContainer->end());
550 thePxlFwdHits.insert(thePxlFwdHits.end(),PxlFwdHighContainer->begin(),
551 PxlFwdHighContainer->end());
555 for (itHit = thePxlFwdHits.begin(); itHit != thePxlFwdHits.end(); ++itHit) {
560 DetId theDetUnitId(itHit->detUnitId());
561 int detector = theDetUnitId.
det();
562 int subdetector = theDetUnitId.subdetId();
572 <<
"Unable to get GeomDetUnit from PxlFwdHits for Hit " <<
i;;
583 PxlFwdZ.push_back(bSurface.toGlobal(itHit->localPosition()).
z());
584 PxlFwdPhi.push_back(bSurface.toGlobal(itHit->localPosition()).
phi());
585 PxlFwdEta.push_back(bSurface.toGlobal(itHit->localPosition()).
eta());
588 <<
"PxlFwd PSimHit " << i
589 <<
" is expected to be (det,subdet) = ("
591 <<
"); value returned is: ("
592 << detector <<
"," << subdetector <<
")";
598 eventout +=
"\n Number of Pixel Forward Hits collected:.... ";
609 if (!SiTIBLowContainer.
isValid()) {
611 <<
"Unable to find TrackerHitsTIBLowTof in event!";
617 if (!SiTIBHighContainer.
isValid()) {
619 <<
"Unable to find TrackerHitsTIBHighTof in event!";
625 if (!SiTOBLowContainer.
isValid()) {
627 <<
"Unable to find TrackerHitsTOBLowTof in event!";
633 if (!SiTOBHighContainer.
isValid()) {
635 <<
"Unable to find TrackerHitsTOBHighTof in event!";
639 theSiBrlHits.insert(theSiBrlHits.end(),SiTIBLowContainer->begin(),
640 SiTIBLowContainer->end());
641 theSiBrlHits.insert(theSiBrlHits.end(),SiTIBHighContainer->begin(),
642 SiTIBHighContainer->end());
643 theSiBrlHits.insert(theSiBrlHits.end(),SiTOBLowContainer->begin(),
644 SiTOBLowContainer->end());
645 theSiBrlHits.insert(theSiBrlHits.end(),SiTOBHighContainer->begin(),
646 SiTOBHighContainer->end());
650 for (itHit = theSiBrlHits.begin(); itHit != theSiBrlHits.end(); ++itHit) {
655 DetId theDetUnitId(itHit->detUnitId());
656 int detector = theDetUnitId.
det();
657 int subdetector = theDetUnitId.subdetId();
660 if ((detector ==
dTrk) &&
669 <<
"Unable to get GeomDetUnit from SiBrlHits for Hit " <<
i;
680 SiBrlR.push_back(bSurface.toGlobal(itHit->localPosition()).
perp());
681 SiBrlPhi.push_back(bSurface.toGlobal(itHit->localPosition()).
phi());
682 SiBrlEta.push_back(bSurface.toGlobal(itHit->localPosition()).
eta());
685 <<
"SiBrl PSimHit " << i
686 <<
" is expected to be (det,subdet) = ("
688 <<
" || " <<
sdSiTOB <<
"); value returned is: ("
689 << detector <<
"," << subdetector <<
")";
695 eventout +=
"\n Number of Silicon Barrel Hits collected:... ";
706 if (!SiTIDLowContainer.
isValid()) {
708 <<
"Unable to find TrackerHitsTIDLowTof in event!";
714 if (!SiTIDHighContainer.
isValid()) {
716 <<
"Unable to find TrackerHitsTIDHighTof in event!";
722 if (!SiTECLowContainer.
isValid()) {
724 <<
"Unable to find TrackerHitsTECLowTof in event!";
730 if (!SiTECHighContainer.
isValid()) {
732 <<
"Unable to find TrackerHitsTECHighTof in event!";
736 theSiFwdHits.insert(theSiFwdHits.end(),SiTIDLowContainer->begin(),
737 SiTIDLowContainer->end());
738 theSiFwdHits.insert(theSiFwdHits.end(),SiTIDHighContainer->begin(),
739 SiTIDHighContainer->end());
740 theSiFwdHits.insert(theSiFwdHits.end(),SiTECLowContainer->begin(),
741 SiTECLowContainer->end());
742 theSiFwdHits.insert(theSiFwdHits.end(),SiTECHighContainer->begin(),
743 SiTECHighContainer->end());
747 for (itHit = theSiFwdHits.begin(); itHit != theSiFwdHits.end(); ++itHit) {
752 DetId theDetUnitId(itHit->detUnitId());
753 int detector = theDetUnitId.
det();
754 int subdetector = theDetUnitId.subdetId();
757 if ((detector ==
dTrk) &&
766 <<
"Unable to get GeomDetUnit from SiFwdHits Hit " <<
i;
777 SiFwdZ.push_back(bSurface.toGlobal(itHit->localPosition()).
z());
778 SiFwdPhi.push_back(bSurface.toGlobal(itHit->localPosition()).
phi());
779 SiFwdEta.push_back(bSurface.toGlobal(itHit->localPosition()).
eta());
782 <<
"SiFwd PSimHit " << i
783 <<
" is expected to be (det,subdet) = ("
785 <<
" || " <<
sdSiTEC <<
"); value returned is: ("
786 << detector <<
"," << subdetector <<
")";
792 eventout +=
"\n Number of Silicon Forward Hits collected:.. ";
804 std::string MsgLoggerCat =
"GlobalHitsProducer_storeTrk";
807 TString eventout(
"\n nPxlBrlHits = ");
810 eventout +=
"\n (tof,r,phi,eta) = (";
820 eventout +=
"\n nPxlFwdHits = ";
823 eventout +=
"\n (tof,z,phi,eta) = (";
833 eventout +=
"\n nSiBrlHits = ";
835 for (
unsigned int i = 0;
i <
SiBrlToF.size(); ++
i) {
836 eventout +=
"\n (tof,r,phi,eta) = (";
846 eventout +=
"\n nSiFwdHits = ";
848 for (
unsigned int i = 0;
i <
SiFwdToF.size(); ++
i) {
849 eventout +=
"\n (tof,z,phi,eta) = (";
873 std::string MsgLoggerCat =
"GlobalHitsProducer_fillMuon";
877 eventout =
"\nGathering info:";
880 edm::PSimHitContainer::const_iterator itHit;
889 if (!theCSCGeometry.
isValid()) {
891 <<
"Unable to find MuonGeometryRecord for the CSCGeometry in event!";
899 if (!MuonCSCContainer.
isValid()) {
901 <<
"Unable to find MuonCSCHits in event!";
907 for (itHit = MuonCSCContainer->begin(); itHit != MuonCSCContainer->end();
913 DetId theDetUnitId(itHit->detUnitId());
914 int detector = theDetUnitId.
det();
915 int subdetector = theDetUnitId.subdetId();
918 if ((detector ==
dMuon) &&
926 <<
"Unable to get GeomDetUnit from theCSCMuon for hit " <<
i;
937 MuonCscZ.push_back(bSurface.toGlobal(itHit->localPosition()).
z());
938 MuonCscPhi.push_back(bSurface.toGlobal(itHit->localPosition()).
phi());
939 MuonCscEta.push_back(bSurface.toGlobal(itHit->localPosition()).
eta());
942 <<
"MuonCsc PSimHit " << i
943 <<
" is expected to be (det,subdet) = ("
945 <<
"); value returned is: ("
946 << detector <<
"," << subdetector <<
")";
952 eventout +=
"\n Number of CSC muon Hits collected:......... ";
963 if (!theDTGeometry.
isValid()) {
965 <<
"Unable to find MuonGeometryRecord for the DTGeometry in event!";
973 if (!MuonDtContainer.
isValid()) {
975 <<
"Unable to find MuonDTHits in event!";
981 for (itHit = MuonDtContainer->begin(); itHit != MuonDtContainer->end();
987 DetId theDetUnitId(itHit->detUnitId());
988 int detector = theDetUnitId.
det();
989 int subdetector = theDetUnitId.subdetId();
992 if ((detector ==
dMuon) &&
997 DTWireId wireId(itHit->detUnitId());
1000 const DTLayer *theDet = theDTMuon.
layer(wireId.layerId());
1004 <<
"Unable to get GeomDetUnit from theDtMuon for hit " <<
i;
1011 const BoundPlane& bSurface = theDet->surface();
1015 MuonDtR.push_back(bSurface.toGlobal(itHit->localPosition()).
perp());
1016 MuonDtPhi.push_back(bSurface.toGlobal(itHit->localPosition()).
phi());
1017 MuonDtEta.push_back(bSurface.toGlobal(itHit->localPosition()).
eta());
1020 <<
"MuonDt PSimHit " << i
1021 <<
" is expected to be (det,subdet) = ("
1023 <<
"); value returned is: ("
1024 << detector <<
"," << subdetector <<
")";
1030 eventout +=
"\n Number of DT muon Hits collected:.......... ";
1042 if (!theRPCGeometry.
isValid()) {
1044 <<
"Unable to find MuonGeometryRecord for the RPCGeometry in event!";
1052 if (!MuonRPCContainer.
isValid()) {
1054 <<
"Unable to find MuonRPCHits in event!";
1060 int RPCBrl =0, RPCFwd = 0;
1061 for (itHit = MuonRPCContainer->begin(); itHit != MuonRPCContainer->end();
1067 DetId theDetUnitId(itHit->detUnitId());
1068 int detector = theDetUnitId.
det();
1069 int subdetector = theDetUnitId.subdetId();
1072 if ((detector ==
dMuon) &&
1076 RPCDetId RPCId(itHit->detUnitId());
1079 int region = RPCId.
region();
1086 <<
"Unable to get GeomDetUnit from theRPCMuon for hit " <<
i;
1100 MuonRpcFwdZ.push_back(bSurface.toGlobal(itHit->localPosition()).
z());
1102 push_back(bSurface.toGlobal(itHit->localPosition()).
phi());
1104 push_back(bSurface.toGlobal(itHit->localPosition()).
eta());
1110 push_back(bSurface.toGlobal(itHit->localPosition()).
perp());
1112 push_back(bSurface.toGlobal(itHit->localPosition()).
phi());
1114 push_back(bSurface.toGlobal(itHit->localPosition()).
eta());
1117 <<
"Invalid region for RPC Muon hit" <<
i;
1122 <<
"MuonRpc PSimHit " << i
1123 <<
" is expected to be (det,subdet) = ("
1125 <<
"); value returned is: ("
1126 << detector <<
"," << subdetector <<
")";
1132 eventout +=
"\n Number of RPC muon Hits collected:......... ";
1134 eventout +=
"\n RPC Barrel muon Hits:............ ";
1136 eventout +=
"\n RPC Forward muon Hits:........... ";
1148 std::string MsgLoggerCat =
"GlobalHitsProducer_storeMuon";
1151 TString eventout(
"\n nMuonCSCHits = ");
1154 eventout +=
"\n (tof,z,phi,eta) = (";
1164 eventout +=
"\n nMuonDtHits = ";
1167 eventout +=
"\n (tof,r,phi,eta) = (";
1177 eventout +=
"\n nMuonRpcBrlHits = ";
1180 eventout +=
"\n (tof,r,phi,eta) = (";
1190 eventout +=
"\n nMuonRpcFwdHits = ";
1193 eventout +=
"\n (tof,z,phi,eta) = (";
1219 std::string MsgLoggerCat =
"GlobalHitsProducer_fillECal";
1223 eventout =
"\nGathering info:";
1228 if (!theCaloGeometry.
isValid()) {
1230 <<
"Unable to find CaloGeometryRecord in event!";
1236 edm::PCaloHitContainer::const_iterator itHit;
1247 <<
"Unable to find EcalHitsEB in event!";
1255 <<
"Unable to find EcalHitsEE in event!";
1259 theECalHits.insert(theECalHits.end(),EBContainer->begin(),
1260 EBContainer->end());
1261 theECalHits.insert(theECalHits.end(),EEContainer->begin(),
1262 EEContainer->end());
1266 for (itHit = theECalHits.begin(); itHit != theECalHits.end(); ++itHit) {
1271 DetId theDetUnitId(itHit->id());
1272 int detector = theDetUnitId.
det();
1273 int subdetector = theDetUnitId.subdetId();
1276 if ((detector ==
dEcal) &&
1282 getSubdetectorGeometry(theDetUnitId)->
getGeometry(theDetUnitId);
1286 <<
"Unable to get CaloCellGeometry from ECalHits for Hit " <<
i;
1296 ECalE.push_back(itHit->energy());
1297 ECalToF.push_back(itHit->time());
1303 <<
"ECal PCaloHit " << i
1304 <<
" is expected to be (det,subdet) = ("
1306 <<
" || " <<
sdEcalFwd <<
"); value returned is: ("
1307 << detector <<
"," << subdetector <<
")";
1313 eventout +=
"\n Number of ECal Hits collected:............. ";
1323 if (!PreShContainer.
isValid()) {
1325 <<
"Unable to find EcalHitsES in event!";
1331 for (itHit = PreShContainer->begin();
1332 itHit != PreShContainer->end(); ++itHit) {
1337 DetId theDetUnitId(itHit->id());
1338 int detector = theDetUnitId.
det();
1339 int subdetector = theDetUnitId.subdetId();
1342 if ((detector ==
dEcal) &&
1347 getSubdetectorGeometry(theDetUnitId)->
getGeometry(theDetUnitId);
1351 <<
"Unable to get CaloCellGeometry from PreShContainer for Hit "
1362 PreShE.push_back(itHit->energy());
1369 <<
"PreSh PCaloHit " << i
1370 <<
" is expected to be (det,subdet) = ("
1372 <<
"); value returned is: ("
1373 << detector <<
"," << subdetector <<
")";
1379 eventout +=
"\n Number of PreSh Hits collected:............ ";
1391 std::string MsgLoggerCat =
"GlobalHitsProducer_storeECal";
1394 TString eventout(
"\n nECalHits = ");
1395 eventout +=
ECalE.size();
1396 for (
unsigned int i = 0;
i <
ECalE.size(); ++
i) {
1397 eventout +=
"\n (e,tof,phi,eta) = (";
1407 eventout +=
"\n nPreShHits = ";
1408 eventout +=
PreShE.size();
1409 for (
unsigned int i = 0;
i <
PreShE.size(); ++
i) {
1410 eventout +=
"\n (e,tof,phi,eta) = (";
1432 std::string MsgLoggerCat =
"GlobalHitsProducer_fillHCal";
1436 eventout =
"\nGathering info:";
1441 if (!theCaloGeometry.
isValid()) {
1443 <<
"Unable to find CaloGeometryRecord in event!";
1449 edm::PCaloHitContainer::const_iterator itHit;
1457 if (!HCalContainer.
isValid()) {
1459 <<
"Unable to find HCalHits in event!";
1465 for (itHit = HCalContainer->begin();
1466 itHit != HCalContainer->end(); ++itHit) {
1471 DetId theDetUnitId(itHit->id());
1472 int detector = theDetUnitId.
det();
1473 int subdetector = theDetUnitId.subdetId();
1476 if ((detector ==
dHcal) &&
1484 getSubdetectorGeometry(theDetUnitId)->
getGeometry(theDetUnitId);
1488 <<
"Unable to get CaloCellGeometry from HCalContainer for Hit " <<
i;
1498 HCalE.push_back(itHit->energy());
1499 HCalToF.push_back(itHit->time());
1505 <<
"HCal PCaloHit " << i
1506 <<
" is expected to be (det,subdet) = ("
1509 <<
"); value returned is: ("
1510 << detector <<
"," << subdetector <<
")";
1516 eventout +=
"\n Number of HCal Hits collected:............. ";
1528 std::string MsgLoggerCat =
"GlobalHitsProducer_storeHCal";
1531 TString eventout(
"\n nHCalHits = ");
1532 eventout +=
HCalE.size();
1533 for (
unsigned int i = 0;
i <
HCalE.size(); ++
i) {
1534 eventout +=
"\n (e,tof,phi,eta) = (";
1554 std::string MsgLoggerCat =
"GlobalHitsProducer_clear";
1558 <<
"Clearing event holders";
void storeECal(PGlobalSimHit &)
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBHighSrc_Token_
void getManyByType(std::vector< Handle< PROD > > &results) const
virtual ~GlobalHitsProducer()
T getParameter(std::string const &) const
EventNumber_t event() const
T getUntrackedParameter(std::string const &, T const &) const
void getAllProvenance(std::vector< Provenance const * > &provenances) const
edm::EDGetTokenT< edm::PSimHitContainer > SiTECHighSrc_Token_
std::vector< PCaloHit > PCaloHitContainer
static const int sdMuonRPCRgnFwdn
virtual void produce(edm::Event &, const edm::EventSetup &) override
static const int sdHcalOut
void putHCalHits(const std::vector< float > &e, const std::vector< float > &tof, const std::vector< float > &phi, const std::vector< float > &eta)
static const int sdMuonDT
edm::EDGetTokenT< edm::PSimHitContainer > MuonRpcSrc_Token_
edm::InputTag MuonCscSrc_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void putMuonRpcFwdHits(const std::vector< float > &tof, const std::vector< float > &z, const std::vector< float > &phi, const std::vector< float > &eta)
void putMuonRpcBrlHits(const std::vector< float > &tof, const std::vector< float > &r, const std::vector< float > &phi, const std::vector< float > &eta)
Geom::Phi< T > phi() const
edm::InputTag SiTOBHighSrc_
edm::InputTag PxlBrlHighSrc_
edm::InputTag PxlBrlLowSrc_
static const int sdEcalPS
void putMuonCscHits(const std::vector< float > &tof, const std::vector< float > &z, const std::vector< float > &phi, const std::vector< float > &eta)
void putECalHits(const std::vector< float > &e, const std::vector< float > &tof, const std::vector< float > &phi, const std::vector< float > &eta)
void storeMuon(PGlobalSimHit &)
edm::InputTag PxlFwdLowSrc_
static const int sdMuonRPC
void storeG4MC(PGlobalSimHit &)
FloatVector MuonRpcFwdPhi
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlHighSrc_Token_
edm::InputTag SiTIDLowSrc_
void storeTrk(PGlobalSimHit &)
const Plane & surface() const
The nominal surface of the GeomDet.
FloatVector MuonRpcFwdToF
const DTLayer * layer(DTLayerId id) const
Return a layer given its id.
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdHighSrc_Token_
edm::InputTag SiTECHighSrc_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBLowSrc_Token_
void fillMuon(edm::Event &, const edm::EventSetup &)
void putG4Trk(const std::vector< float > &pt, const std::vector< float > &e)
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > MuonCscSrc_Token_
GlobalHitsProducer(const edm::ParameterSet &)
static const int sdPxlBrl
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
FloatVector MuonRpcBrlToF
void putSiBrlHits(const std::vector< float > &tof, const std::vector< float > &r, const std::vector< float > &phi, const std::vector< float > &eta)
static const int sdMuonCSC
void putPxlFwdHits(const std::vector< float > &tof, const std::vector< float > &z, const std::vector< float > &phi, const std::vector< float > &eta)
static const int sdEcalFwd
void fillTrk(edm::Event &, const edm::EventSetup &)
edm::InputTag SiTIBLowSrc_
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDLowSrc_Token_
edm::InputTag SiTECLowSrc_
static const int sdEcalBrl
BranchDescription const & product() const
static const int sdMuonRPCRgnFwdp
static const int sdMuonRPCRgnBrl
edm::InputTag SiTIDHighSrc_
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBLowSrc_Token_
void putSiFwdHits(const std::vector< float > &tof, const std::vector< float > &z, const std::vector< float > &phi, const std::vector< float > &eta)
edm::EDGetTokenT< edm::SimTrackContainer > G4TrkSrc_Token_
edm::InputTag PxlFwdHighSrc_
edm::EDGetTokenT< edm::PCaloHitContainer > ECalESSrc_Token_
FloatVector MuonRpcFwdEta
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBHighSrc_Token_
virtual void beginJob(void)
void putPreShHits(const std::vector< float > &e, const std::vector< float > &tof, const std::vector< float > &phi, const std::vector< float > &eta)
void fillECal(edm::Event &, const edm::EventSetup &)
void fillHCal(edm::Event &, const edm::EventSetup &)
std::vector< SimVertex > SimVertexContainer
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDHighSrc_Token_
static const int sdHcalFwd
FloatVector MuonRpcBrlEta
static const int sdHcalBrl
void storeHCal(PGlobalSimHit &)
edm::InputTag SiTOBLowSrc_
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdLowSrc_Token_
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
edm::EDGetTokenT< edm::PSimHitContainer > MuonDtSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlLowSrc_Token_
edm::EDGetTokenT< edm::SimVertexContainer > G4VtxSrc_Token_
T perp() const
Magnitude of transverse component.
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEBSrc_Token_
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEESrc_Token_
void putPxlBrlHits(const std::vector< float > &tof, const std::vector< float > &r, const std::vector< float > &phi, const std::vector< float > &eta)
const CaloCellGeometry * getGeometry(const DetId &id) const
Get the cell geometry of a given detector id.
void putRawGenPart(int n)
void putG4Vtx(const std::vector< float > &x, const std::vector< float > &y, const std::vector< float > &z)
void fillG4MC(edm::Event &)
void putMuonDtHits(const std::vector< float > &tof, const std::vector< float > &r, const std::vector< float > &phi, const std::vector< float > &eta)
virtual const GeomDetUnit * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
std::vector< PSimHit > PSimHitContainer
edm::EDGetTokenT< edm::PSimHitContainer > SiTECLowSrc_Token_
FloatVector MuonRpcBrlPhi
static const int sdPxlFwd
volatile std::atomic< bool > shutdown_flag false
Detector det() const
get the detector field from this detid
const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
edm::InputTag SiTIBHighSrc_
std::vector< SimTrack > SimTrackContainer
edm::InputTag MuonRpcSrc_
static const int sdHcalEC
Provenance const * provenance() const
virtual const GeomDetUnit * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.