15 getAllProvenances(
false), printProvenanceInfo(
false), nRawGenPart(0),
24 std::string MsgLoggerCat =
"GlobalHitsProducer_GlobalHitsProducer";
35 m_Prov.getUntrackedParameter<
bool>(
"GetAllProvenances");
37 m_Prov.getUntrackedParameter<
bool>(
"PrintProvenanceInfo");
69 produces<PGlobalSimHit>(
label);
74 <<
"\n===============================\n"
75 <<
"Initialized as EDProducer with parameter values:\n"
76 <<
" Name = " <<
fName <<
"\n"
77 <<
" Verbosity = " << verbosity <<
"\n"
78 <<
" Frequency = " << frequency <<
"\n"
79 <<
" VtxUnit = " << vtxunit <<
"\n"
80 <<
" Label = " << label <<
"\n"
81 <<
" GetProv = " << getAllProvenances <<
"\n"
82 <<
" PrintProv = " << printProvenanceInfo <<
"\n"
83 <<
" PxlBrlLowSrc = " << PxlBrlLowSrc_.label()
84 <<
":" << PxlBrlLowSrc_.instance() <<
"\n"
85 <<
" PxlBrlHighSrc = " << PxlBrlHighSrc_.
label()
86 <<
":" << PxlBrlHighSrc_.
instance() <<
"\n"
87 <<
" PxlFwdLowSrc = " << PxlFwdLowSrc_.
label()
88 <<
":" << PxlBrlLowSrc_.instance() <<
"\n"
89 <<
" PxlFwdHighSrc = " << PxlFwdHighSrc_.
label()
90 <<
":" << PxlBrlHighSrc_.
instance() <<
"\n"
91 <<
" SiTIBLowSrc = " << SiTIBLowSrc_.
label()
92 <<
":" << SiTIBLowSrc_.
instance() <<
"\n"
93 <<
" SiTIBHighSrc = " << SiTIBHighSrc_.
label()
94 <<
":" << SiTIBHighSrc_.
instance() <<
"\n"
95 <<
" SiTOBLowSrc = " << SiTOBLowSrc_.
label()
96 <<
":" << SiTOBLowSrc_.
instance() <<
"\n"
97 <<
" SiTOBHighSrc = " << SiTOBHighSrc_.
label()
98 <<
":" << SiTOBHighSrc_.
instance() <<
"\n"
99 <<
" SiTIDLowSrc = " << SiTIDLowSrc_.
label()
100 <<
":" << SiTIDLowSrc_.
instance() <<
"\n"
101 <<
" SiTIDHighSrc = " << SiTIDHighSrc_.
label()
102 <<
":" << SiTIDHighSrc_.
instance() <<
"\n"
103 <<
" SiTECLowSrc = " << SiTECLowSrc_.
label()
104 <<
":" << SiTECLowSrc_.
instance() <<
"\n"
105 <<
" SiTECHighSrc = " << SiTECHighSrc_.
label()
106 <<
":" << SiTECHighSrc_.
instance() <<
"\n"
107 <<
" MuonCscSrc = " << MuonCscSrc_.
label()
108 <<
":" << MuonCscSrc_.
instance() <<
"\n"
109 <<
" MuonDtSrc = " << MuonDtSrc_.
label()
110 <<
":" << MuonDtSrc_.
instance() <<
"\n"
111 <<
" MuonRpcSrc = " << MuonRpcSrc_.
label()
112 <<
":" << MuonRpcSrc_.
instance() <<
"\n"
113 <<
" ECalEBSrc = " << ECalEBSrc_.
label()
114 <<
":" << ECalEBSrc_.
instance() <<
"\n"
115 <<
" ECalEESrc = " << ECalEESrc_.
label()
116 <<
":" << ECalEESrc_.
instance() <<
"\n"
117 <<
" ECalESSrc = " << ECalESSrc_.
label()
118 <<
":" << ECalESSrc_.
instance() <<
"\n"
119 <<
" HCalSrc = " << HCalSrc_.
label()
120 <<
":" << HCalSrc_.
instance() <<
"\n"
121 <<
"===============================\n";
140 std::string MsgLoggerCat =
"GlobalHitsProducer_endJob";
143 <<
"Terminating having processed " <<
count <<
" events.";
150 std::string MsgLoggerCat =
"GlobalHitsProducer_produce";
156 int nrun = iEvent.
id().
run();
157 int nevt = iEvent.
id().
event();
161 <<
"Processing run " << nrun <<
", event " << nevt
162 <<
" (" <<
count <<
" events total)";
166 <<
"Processing run " << nrun <<
", event " << nevt
167 <<
" (" <<
count <<
" events total)";
177 std::vector<const edm::Provenance*> AllProv;
182 <<
"Number of Provenances = " << AllProv.size();
185 TString eventout(
"\nProvenance info:\n");
187 for (
unsigned int i = 0;
i < AllProv.size(); ++
i) {
188 eventout +=
"\n ******************************";
189 eventout +=
"\n Module : ";
190 eventout += AllProv[
i]->moduleLabel();
191 eventout +=
"\n ProductID : ";
192 eventout += AllProv[
i]->productID().id();
193 eventout +=
"\n ClassName : ";
194 eventout += AllProv[
i]->className();
195 eventout +=
"\n InstanceName : ";
196 eventout += AllProv[
i]->productInstanceName();
197 eventout +=
"\n BranchName : ";
198 eventout += AllProv[
i]->branchName();
200 eventout +=
"\n ******************************\n";
221 <<
"Done gathering data from event.";
228 <<
"Saving event contents:";
252 std::string MsgLoggerCat =
"GlobalHitsProducer_fillG4MC";
256 eventout =
"\nGathering info:";
262 std::vector<edm::Handle<edm::HepMCProduct> > AllHepMCEvt;
267 for (
unsigned int i = 0;
i < AllHepMCEvt.size(); ++
i) {
268 HepMCEvt = AllHepMCEvt[
i];
275 <<
"Unable to find HepMCProduct in event!";
278 eventout +=
"\n Using HepMCProduct: ";
281 const HepMC::GenEvent* MCEvt = HepMCEvt->GetEvent();
285 eventout +=
"\n Number of Raw Particles collected:......... ";
299 if (!G4VtxContainer.
isValid()) {
301 <<
"Unable to find SimVertex in event!";
305 edm::SimVertexContainer::const_iterator itVtx;
306 for (itVtx = G4VtxContainer->begin(); itVtx != G4VtxContainer->end();
312 itVtx->position().y(),
313 itVtx->position().z(),
314 itVtx->position().e());
316 G4Vtx1.GetCoordinates(G4Vtx);
318 G4VtxX.push_back((G4Vtx[0]*unit)/micrometer);
319 G4VtxY.push_back((G4Vtx[1]*unit)/micrometer);
320 G4VtxZ.push_back((G4Vtx[2]*unit)/millimeter);
324 eventout +=
"\n Number of G4Vertices collected:............ ";
333 if (!G4TrkContainer.
isValid()) {
335 <<
"Unable to find SimTrack in event!";
339 edm::SimTrackContainer::const_iterator itTrk;
340 for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end();
346 itTrk->momentum().y(),
347 itTrk->momentum().z(),
348 itTrk->momentum().e());
350 G4Trk1.GetCoordinates(G4Trk);
352 G4TrkPt.push_back(
sqrt(G4Trk[0]*G4Trk[0]+G4Trk[1]*G4Trk[1]));
353 G4TrkE.push_back(G4Trk[3]);
357 eventout +=
"\n Number of G4Tracks collected:.............. ";
369 std::string MsgLoggerCat =
"GlobalHitsProducer_storeG4MC";
372 TString eventout(
"\n nRawGenPart = ");
374 eventout +=
"\n nG4Vtx = ";
375 eventout +=
G4VtxX.size();
376 for (
unsigned int i = 0;
i <
G4VtxX.size(); ++
i) {
377 eventout +=
"\n (x,y,z) = (";
385 eventout +=
"\n nG4Trk = ";
387 for (
unsigned int i = 0;
i <
G4TrkPt.size(); ++
i) {
388 eventout +=
"\n (pt,e) = (";
407 std::string MsgLoggerCat =
"GlobalHitsProducer_fillTrk";
411 eventout =
"\nGathering info:";
416 if (!theTrackerGeometry.
isValid()) {
418 <<
"Unable to find TrackerDigiGeometryRecord in event!";
424 edm::PSimHitContainer::const_iterator itHit;
433 if (!PxlBrlLowContainer.
isValid()) {
435 <<
"Unable to find TrackerHitsPixelBarrelLowTof in event!";
441 if (!PxlBrlHighContainer.
isValid()) {
443 <<
"Unable to find TrackerHitsPixelBarrelHighTof in event!";
447 thePxlBrlHits.insert(thePxlBrlHits.end(),PxlBrlLowContainer->begin(),
448 PxlBrlLowContainer->end());
449 thePxlBrlHits.insert(thePxlBrlHits.end(),PxlBrlHighContainer->begin(),
450 PxlBrlHighContainer->end());
454 for (itHit = thePxlBrlHits.begin(); itHit != thePxlBrlHits.end(); ++itHit) {
459 DetId theDetUnitId(itHit->detUnitId());
460 int detector = theDetUnitId.
det();
461 int subdetector = theDetUnitId.subdetId();
471 <<
"Unable to get GeomDetUnit from PxlBrlHits for Hit " <<
i;
488 <<
"PxlBrl PSimHit " << i
489 <<
" is expected to be (det,subdet) = ("
491 <<
"); value returned is: ("
492 << detector <<
"," << subdetector <<
")";
498 eventout +=
"\n Number of Pixel Barrel Hits collected:..... ";
509 if (!PxlFwdLowContainer.
isValid()) {
511 <<
"Unable to find TrackerHitsPixelEndcapLowTof in event!";
517 if (!PxlFwdHighContainer.
isValid()) {
519 <<
"Unable to find TrackerHitsPixelEndcapHighTof in event!";
523 thePxlFwdHits.insert(thePxlFwdHits.end(),PxlFwdLowContainer->begin(),
524 PxlFwdLowContainer->end());
525 thePxlFwdHits.insert(thePxlFwdHits.end(),PxlFwdHighContainer->begin(),
526 PxlFwdHighContainer->end());
530 for (itHit = thePxlFwdHits.begin(); itHit != thePxlFwdHits.end(); ++itHit) {
535 DetId theDetUnitId(itHit->detUnitId());
536 int detector = theDetUnitId.
det();
537 int subdetector = theDetUnitId.subdetId();
547 <<
"Unable to get GeomDetUnit from PxlFwdHits for Hit " <<
i;;
563 <<
"PxlFwd PSimHit " << i
564 <<
" is expected to be (det,subdet) = ("
566 <<
"); value returned is: ("
567 << detector <<
"," << subdetector <<
")";
573 eventout +=
"\n Number of Pixel Forward Hits collected:.... ";
584 if (!SiTIBLowContainer.
isValid()) {
586 <<
"Unable to find TrackerHitsTIBLowTof in event!";
592 if (!SiTIBHighContainer.
isValid()) {
594 <<
"Unable to find TrackerHitsTIBHighTof in event!";
600 if (!SiTOBLowContainer.
isValid()) {
602 <<
"Unable to find TrackerHitsTOBLowTof in event!";
608 if (!SiTOBHighContainer.
isValid()) {
610 <<
"Unable to find TrackerHitsTOBHighTof in event!";
614 theSiBrlHits.insert(theSiBrlHits.end(),SiTIBLowContainer->begin(),
615 SiTIBLowContainer->end());
616 theSiBrlHits.insert(theSiBrlHits.end(),SiTIBHighContainer->begin(),
617 SiTIBHighContainer->end());
618 theSiBrlHits.insert(theSiBrlHits.end(),SiTOBLowContainer->begin(),
619 SiTOBLowContainer->end());
620 theSiBrlHits.insert(theSiBrlHits.end(),SiTOBHighContainer->begin(),
621 SiTOBHighContainer->end());
625 for (itHit = theSiBrlHits.begin(); itHit != theSiBrlHits.end(); ++itHit) {
630 DetId theDetUnitId(itHit->detUnitId());
631 int detector = theDetUnitId.
det();
632 int subdetector = theDetUnitId.subdetId();
635 if ((detector ==
dTrk) &&
644 <<
"Unable to get GeomDetUnit from SiBrlHits for Hit " <<
i;
660 <<
"SiBrl PSimHit " << i
661 <<
" is expected to be (det,subdet) = ("
663 <<
" || " <<
sdSiTOB <<
"); value returned is: ("
664 << detector <<
"," << subdetector <<
")";
670 eventout +=
"\n Number of Silicon Barrel Hits collected:... ";
681 if (!SiTIDLowContainer.
isValid()) {
683 <<
"Unable to find TrackerHitsTIDLowTof in event!";
689 if (!SiTIDHighContainer.
isValid()) {
691 <<
"Unable to find TrackerHitsTIDHighTof in event!";
697 if (!SiTECLowContainer.
isValid()) {
699 <<
"Unable to find TrackerHitsTECLowTof in event!";
705 if (!SiTECHighContainer.
isValid()) {
707 <<
"Unable to find TrackerHitsTECHighTof in event!";
711 theSiFwdHits.insert(theSiFwdHits.end(),SiTIDLowContainer->begin(),
712 SiTIDLowContainer->end());
713 theSiFwdHits.insert(theSiFwdHits.end(),SiTIDHighContainer->begin(),
714 SiTIDHighContainer->end());
715 theSiFwdHits.insert(theSiFwdHits.end(),SiTECLowContainer->begin(),
716 SiTECLowContainer->end());
717 theSiFwdHits.insert(theSiFwdHits.end(),SiTECHighContainer->begin(),
718 SiTECHighContainer->end());
722 for (itHit = theSiFwdHits.begin(); itHit != theSiFwdHits.end(); ++itHit) {
727 DetId theDetUnitId(itHit->detUnitId());
728 int detector = theDetUnitId.
det();
729 int subdetector = theDetUnitId.subdetId();
732 if ((detector ==
dTrk) &&
741 <<
"Unable to get GeomDetUnit from SiFwdHits Hit " <<
i;
757 <<
"SiFwd PSimHit " << i
758 <<
" is expected to be (det,subdet) = ("
760 <<
" || " <<
sdSiTEC <<
"); value returned is: ("
761 << detector <<
"," << subdetector <<
")";
767 eventout +=
"\n Number of Silicon Forward Hits collected:.. ";
779 std::string MsgLoggerCat =
"GlobalHitsProducer_storeTrk";
782 TString eventout(
"\n nPxlBrlHits = ");
785 eventout +=
"\n (tof,r,phi,eta) = (";
795 eventout +=
"\n nPxlFwdHits = ";
798 eventout +=
"\n (tof,z,phi,eta) = (";
808 eventout +=
"\n nSiBrlHits = ";
810 for (
unsigned int i = 0;
i <
SiBrlToF.size(); ++
i) {
811 eventout +=
"\n (tof,r,phi,eta) = (";
821 eventout +=
"\n nSiFwdHits = ";
823 for (
unsigned int i = 0;
i <
SiFwdToF.size(); ++
i) {
824 eventout +=
"\n (tof,z,phi,eta) = (";
848 std::string MsgLoggerCat =
"GlobalHitsProducer_fillMuon";
852 eventout =
"\nGathering info:";
855 edm::PSimHitContainer::const_iterator itHit;
864 if (!theCSCGeometry.
isValid()) {
866 <<
"Unable to find MuonGeometryRecord for the CSCGeometry in event!";
874 if (!MuonCSCContainer.
isValid()) {
876 <<
"Unable to find MuonCSCHits in event!";
882 for (itHit = MuonCSCContainer->begin(); itHit != MuonCSCContainer->end();
888 DetId theDetUnitId(itHit->detUnitId());
889 int detector = theDetUnitId.
det();
890 int subdetector = theDetUnitId.subdetId();
893 if ((detector ==
dMuon) &&
901 <<
"Unable to get GeomDetUnit from theCSCMuon for hit " <<
i;
917 <<
"MuonCsc PSimHit " << i
918 <<
" is expected to be (det,subdet) = ("
920 <<
"); value returned is: ("
921 << detector <<
"," << subdetector <<
")";
927 eventout +=
"\n Number of CSC muon Hits collected:......... ";
938 if (!theDTGeometry.
isValid()) {
940 <<
"Unable to find MuonGeometryRecord for the DTGeometry in event!";
948 if (!MuonDtContainer.
isValid()) {
950 <<
"Unable to find MuonDTHits in event!";
956 for (itHit = MuonDtContainer->begin(); itHit != MuonDtContainer->end();
962 DetId theDetUnitId(itHit->detUnitId());
963 int detector = theDetUnitId.
det();
964 int subdetector = theDetUnitId.subdetId();
967 if ((detector ==
dMuon) &&
972 DTWireId wireId(itHit->detUnitId());
975 const DTLayer *theDet = theDTMuon.
layer(wireId.layerId());
979 <<
"Unable to get GeomDetUnit from theDtMuon for hit " <<
i;
986 const BoundPlane& bSurface = theDet->surface();
995 <<
"MuonDt PSimHit " << i
996 <<
" is expected to be (det,subdet) = ("
998 <<
"); value returned is: ("
999 << detector <<
"," << subdetector <<
")";
1005 eventout +=
"\n Number of DT muon Hits collected:.......... ";
1017 if (!theRPCGeometry.
isValid()) {
1019 <<
"Unable to find MuonGeometryRecord for the RPCGeometry in event!";
1027 if (!MuonRPCContainer.
isValid()) {
1029 <<
"Unable to find MuonRPCHits in event!";
1035 int RPCBrl =0, RPCFwd = 0;
1036 for (itHit = MuonRPCContainer->begin(); itHit != MuonRPCContainer->end();
1042 DetId theDetUnitId(itHit->detUnitId());
1043 int detector = theDetUnitId.
det();
1044 int subdetector = theDetUnitId.subdetId();
1047 if ((detector ==
dMuon) &&
1051 RPCDetId RPCId(itHit->detUnitId());
1054 int region = RPCId.
region();
1061 <<
"Unable to get GeomDetUnit from theRPCMuon for hit " <<
i;
1077 push_back(bSurface.
toGlobal(itHit->localPosition()).
phi());
1079 push_back(bSurface.
toGlobal(itHit->localPosition()).
eta());
1085 push_back(bSurface.
toGlobal(itHit->localPosition()).
perp());
1087 push_back(bSurface.
toGlobal(itHit->localPosition()).
phi());
1089 push_back(bSurface.
toGlobal(itHit->localPosition()).
eta());
1092 <<
"Invalid region for RPC Muon hit" <<
i;
1097 <<
"MuonRpc PSimHit " << i
1098 <<
" is expected to be (det,subdet) = ("
1100 <<
"); value returned is: ("
1101 << detector <<
"," << subdetector <<
")";
1107 eventout +=
"\n Number of RPC muon Hits collected:......... ";
1109 eventout +=
"\n RPC Barrel muon Hits:............ ";
1111 eventout +=
"\n RPC Forward muon Hits:........... ";
1123 std::string MsgLoggerCat =
"GlobalHitsProducer_storeMuon";
1126 TString eventout(
"\n nMuonCSCHits = ");
1129 eventout +=
"\n (tof,z,phi,eta) = (";
1139 eventout +=
"\n nMuonDtHits = ";
1142 eventout +=
"\n (tof,r,phi,eta) = (";
1152 eventout +=
"\n nMuonRpcBrlHits = ";
1155 eventout +=
"\n (tof,r,phi,eta) = (";
1165 eventout +=
"\n nMuonRpcFwdHits = ";
1168 eventout +=
"\n (tof,z,phi,eta) = (";
1194 std::string MsgLoggerCat =
"GlobalHitsProducer_fillECal";
1198 eventout =
"\nGathering info:";
1203 if (!theCaloGeometry.
isValid()) {
1205 <<
"Unable to find CaloGeometryRecord in event!";
1211 edm::PCaloHitContainer::const_iterator itHit;
1222 <<
"Unable to find EcalHitsEB in event!";
1230 <<
"Unable to find EcalHitsEE in event!";
1234 theECalHits.insert(theECalHits.end(),EBContainer->begin(),
1235 EBContainer->end());
1236 theECalHits.insert(theECalHits.end(),EEContainer->begin(),
1237 EEContainer->end());
1241 for (itHit = theECalHits.begin(); itHit != theECalHits.end(); ++itHit) {
1246 DetId theDetUnitId(itHit->id());
1247 int detector = theDetUnitId.
det();
1248 int subdetector = theDetUnitId.subdetId();
1251 if ((detector ==
dEcal) &&
1257 getSubdetectorGeometry(theDetUnitId)->
getGeometry(theDetUnitId);
1261 <<
"Unable to get CaloCellGeometry from ECalHits for Hit " <<
i;
1271 ECalE.push_back(itHit->energy());
1272 ECalToF.push_back(itHit->time());
1278 <<
"ECal PCaloHit " << i
1279 <<
" is expected to be (det,subdet) = ("
1281 <<
" || " <<
sdEcalFwd <<
"); value returned is: ("
1282 << detector <<
"," << subdetector <<
")";
1288 eventout +=
"\n Number of ECal Hits collected:............. ";
1298 if (!PreShContainer.
isValid()) {
1300 <<
"Unable to find EcalHitsES in event!";
1306 for (itHit = PreShContainer->begin();
1307 itHit != PreShContainer->end(); ++itHit) {
1312 DetId theDetUnitId(itHit->id());
1313 int detector = theDetUnitId.
det();
1314 int subdetector = theDetUnitId.subdetId();
1317 if ((detector ==
dEcal) &&
1322 getSubdetectorGeometry(theDetUnitId)->
getGeometry(theDetUnitId);
1326 <<
"Unable to get CaloCellGeometry from PreShContainer for Hit "
1337 PreShE.push_back(itHit->energy());
1344 <<
"PreSh PCaloHit " << i
1345 <<
" is expected to be (det,subdet) = ("
1347 <<
"); value returned is: ("
1348 << detector <<
"," << subdetector <<
")";
1354 eventout +=
"\n Number of PreSh Hits collected:............ ";
1366 std::string MsgLoggerCat =
"GlobalHitsProducer_storeECal";
1369 TString eventout(
"\n nECalHits = ");
1370 eventout +=
ECalE.size();
1371 for (
unsigned int i = 0;
i <
ECalE.size(); ++
i) {
1372 eventout +=
"\n (e,tof,phi,eta) = (";
1382 eventout +=
"\n nPreShHits = ";
1383 eventout +=
PreShE.size();
1384 for (
unsigned int i = 0;
i <
PreShE.size(); ++
i) {
1385 eventout +=
"\n (e,tof,phi,eta) = (";
1407 std::string MsgLoggerCat =
"GlobalHitsProducer_fillHCal";
1411 eventout =
"\nGathering info:";
1416 if (!theCaloGeometry.
isValid()) {
1418 <<
"Unable to find CaloGeometryRecord in event!";
1424 edm::PCaloHitContainer::const_iterator itHit;
1432 if (!HCalContainer.
isValid()) {
1434 <<
"Unable to find HCalHits in event!";
1440 for (itHit = HCalContainer->begin();
1441 itHit != HCalContainer->end(); ++itHit) {
1446 DetId theDetUnitId(itHit->id());
1447 int detector = theDetUnitId.
det();
1448 int subdetector = theDetUnitId.subdetId();
1451 if ((detector ==
dHcal) &&
1459 getSubdetectorGeometry(theDetUnitId)->
getGeometry(theDetUnitId);
1463 <<
"Unable to get CaloCellGeometry from HCalContainer for Hit " <<
i;
1473 HCalE.push_back(itHit->energy());
1474 HCalToF.push_back(itHit->time());
1480 <<
"HCal PCaloHit " << i
1481 <<
" is expected to be (det,subdet) = ("
1484 <<
"); value returned is: ("
1485 << detector <<
"," << subdetector <<
")";
1491 eventout +=
"\n Number of HCal Hits collected:............. ";
1503 std::string MsgLoggerCat =
"GlobalHitsProducer_storeHCal";
1506 TString eventout(
"\n nHCalHits = ");
1507 eventout +=
HCalE.size();
1508 for (
unsigned int i = 0;
i <
HCalE.size(); ++
i) {
1509 eventout +=
"\n (e,tof,phi,eta) = (";
1529 std::string MsgLoggerCat =
"GlobalHitsProducer_clear";
1533 <<
"Clearing event holders";
void storeECal(PGlobalSimHit &)
void getManyByType(std::vector< Handle< PROD > > &results) const
virtual ~GlobalHitsProducer()
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
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
std::vector< PCaloHit > PCaloHitContainer
void putG4Vtx(std::vector< float > x, std::vector< float > y, std::vector< float > z)
static const int sdMuonRPCRgnFwdn
static const int sdHcalOut
static const int sdMuonDT
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
edm::InputTag MuonCscSrc_
void putSiFwdHits(std::vector< float > tof, std::vector< float > z, std::vector< float > phi, std::vector< float > eta)
Geom::Phi< T > phi() const
edm::InputTag SiTOBHighSrc_
edm::InputTag PxlBrlHighSrc_
edm::InputTag PxlBrlLowSrc_
static const int sdEcalPS
bool getByType(Handle< PROD > &result) const
void storeMuon(PGlobalSimHit &)
edm::InputTag PxlFwdLowSrc_
static const int sdMuonRPC
void putECalHits(std::vector< float > e, std::vector< float > tof, std::vector< float > phi, std::vector< float > eta)
void storeG4MC(PGlobalSimHit &)
FloatVector MuonRpcFwdPhi
edm::InputTag SiTIDLowSrc_
void storeTrk(PGlobalSimHit &)
virtual void produce(edm::Event &, const edm::EventSetup &)
void putMuonDtHits(std::vector< float > tof, std::vector< float > r, std::vector< float > phi, std::vector< float > eta)
FloatVector MuonRpcFwdToF
const DTLayer * layer(DTLayerId id) const
Return a layer given its id.
edm::InputTag SiTECHighSrc_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
void fillMuon(edm::Event &, const edm::EventSetup &)
void putMuonRpcBrlHits(std::vector< float > tof, std::vector< float > r, std::vector< float > phi, std::vector< float > eta)
GlobalHitsProducer(const edm::ParameterSet &)
static const int sdPxlBrl
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
FloatVector MuonRpcBrlToF
static const int sdMuonCSC
static const int sdEcalFwd
void fillTrk(edm::Event &, const edm::EventSetup &)
void putPxlBrlHits(std::vector< float > tof, std::vector< float > r, std::vector< float > phi, std::vector< float > eta)
edm::InputTag SiTIBLowSrc_
edm::InputTag SiTECLowSrc_
static const int sdEcalBrl
BranchDescription const & product() const
static const int sdMuonRPCRgnFwdp
static const int sdMuonRPCRgnBrl
void putMuonCscHits(std::vector< float > tof, std::vector< float > z, std::vector< float > phi, std::vector< float > eta)
edm::InputTag SiTIDHighSrc_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
edm::InputTag PxlFwdHighSrc_
void putPreShHits(std::vector< float > e, std::vector< float > tof, std::vector< float > phi, std::vector< float > eta)
FloatVector MuonRpcFwdEta
virtual void beginJob(void)
void fillECal(edm::Event &, const edm::EventSetup &)
void fillHCal(edm::Event &, const edm::EventSetup &)
static const int sdHcalFwd
FloatVector MuonRpcBrlEta
void putPxlFwdHits(std::vector< float > tof, std::vector< float > z, std::vector< float > phi, std::vector< float > eta)
static const int sdHcalBrl
void storeHCal(PGlobalSimHit &)
edm::InputTag SiTOBLowSrc_
void putHCalHits(std::vector< float > e, std::vector< float > tof, std::vector< float > phi, std::vector< float > eta)
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
void putG4Trk(std::vector< float > pt, std::vector< float > e)
T perp() const
Magnitude of transverse component.
const CaloCellGeometry * getGeometry(const DetId &id) const
Get the cell geometry of a given detector id.
void putRawGenPart(int n)
void fillG4MC(edm::Event &)
std::vector< PSimHit > PSimHitContainer
FloatVector MuonRpcBrlPhi
static const int sdPxlFwd
void putMuonRpcFwdHits(std::vector< float > tof, std::vector< float > z, std::vector< float > phi, std::vector< float > eta)
Detector det() const
get the detector field from this detid
const GlobalPoint & getPosition() const
edm::InputTag SiTIBHighSrc_
void putSiBrlHits(std::vector< float > tof, std::vector< float > r, std::vector< float > phi, std::vector< float > eta)
edm::InputTag MuonRpcSrc_
static const int sdHcalEC
virtual const BoundPlane & surface() const
The nominal surface of the GeomDet.
Provenance const * provenance() const
const std::string * moduleLabel() const
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.