24 getAllProvenances(
false),
25 printProvenanceInfo(
false),
36 consumesMany<edm::HepMCProduct>();
37 std::string MsgLoggerCat =
"GlobalHitsAnalyzer_GlobalHitsAnalyzer";
127 if (verbosity >= 0) {
129 <<
"\n===============================\n"
130 <<
"Initialized as EDAnalyzer with parameter values:\n"
131 <<
" Name = " <<
fName <<
"\n"
132 <<
" Verbosity = " << verbosity <<
"\n"
133 <<
" Frequency = " << frequency <<
"\n"
134 <<
" VtxUnit = " << vtxunit <<
"\n"
135 <<
" GetProv = " << getAllProvenances <<
"\n"
136 <<
" PrintProv = " << printProvenanceInfo <<
"\n"
137 <<
" PxlBrlLowSrc = " << PxlBrlLowSrc_.label() <<
":" << PxlBrlLowSrc_.instance() <<
"\n"
138 <<
" PxlBrlHighSrc = " << PxlBrlHighSrc_.
label() <<
":" << PxlBrlHighSrc_.
instance() <<
"\n"
139 <<
" PxlFwdLowSrc = " << PxlFwdLowSrc_.
label() <<
":" << PxlBrlLowSrc_.instance() <<
"\n"
140 <<
" PxlFwdHighSrc = " << PxlFwdHighSrc_.
label() <<
":" << PxlBrlHighSrc_.
instance() <<
"\n"
141 <<
" SiTIBLowSrc = " << SiTIBLowSrc_.
label() <<
":" << SiTIBLowSrc_.
instance() <<
"\n"
142 <<
" SiTIBHighSrc = " << SiTIBHighSrc_.
label() <<
":" << SiTIBHighSrc_.
instance() <<
"\n"
143 <<
" SiTOBLowSrc = " << SiTOBLowSrc_.
label() <<
":" << SiTOBLowSrc_.
instance() <<
"\n"
144 <<
" SiTOBHighSrc = " << SiTOBHighSrc_.
label() <<
":" << SiTOBHighSrc_.
instance() <<
"\n"
145 <<
" SiTIDLowSrc = " << SiTIDLowSrc_.
label() <<
":" << SiTIDLowSrc_.
instance() <<
"\n"
146 <<
" SiTIDHighSrc = " << SiTIDHighSrc_.
label() <<
":" << SiTIDHighSrc_.
instance() <<
"\n"
147 <<
" SiTECLowSrc = " << SiTECLowSrc_.
label() <<
":" << SiTECLowSrc_.
instance() <<
"\n"
148 <<
" SiTECHighSrc = " << SiTECHighSrc_.
label() <<
":" << SiTECHighSrc_.
instance() <<
"\n"
149 <<
" MuonCscSrc = " << MuonCscSrc_.
label() <<
":" << MuonCscSrc_.
instance() <<
"\n"
150 <<
" MuonDtSrc = " << MuonDtSrc_.
label() <<
":" << MuonDtSrc_.
instance() <<
"\n"
151 <<
" MuonRpcSrc = " << MuonRpcSrc_.
label() <<
":" << MuonRpcSrc_.
instance() <<
"\n"
152 <<
" ECalEBSrc = " << ECalEBSrc_.
label() <<
":" << ECalEBSrc_.
instance() <<
"\n"
153 <<
" ECalEESrc = " << ECalEESrc_.
label() <<
":" << ECalEESrc_.
instance() <<
"\n"
154 <<
" ECalESSrc = " << ECalESSrc_.
label() <<
":" << ECalESSrc_.
instance() <<
"\n"
155 <<
" HCalSrc = " << HCalSrc_.
label() <<
":" << HCalSrc_.
instance() <<
"\n"
157 <<
" validHepMCevt = "
159 <<
" validG4VtxContainer = "
160 <<
":" << validG4VtxContainer <<
"\n"
161 <<
" validG4trkContainer = "
162 <<
":" << validG4trkContainer <<
"\n"
163 <<
" validPxlBrlLow = "
164 <<
":" << validPxlBrlLow <<
"\n"
165 <<
" validPxlBrlHigh = "
166 <<
":" << validPxlBrlHigh <<
"\n"
167 <<
" validPxlFwdLow = "
168 <<
":" << validPxlFwdLow <<
"\n"
169 <<
" validPxlFwdHigh = "
170 <<
":" << validPxlFwdHigh <<
"\n"
171 <<
" validSiTIBLow = "
172 <<
":" << validSiTIBLow <<
"\n"
173 <<
" validSiTIBHigh = "
174 <<
":" << validSiTIBHigh <<
"\n"
175 <<
" validSiTOBLow = "
176 <<
":" << validSiTOBLow <<
"\n"
177 <<
" validSiTOBHigh = "
178 <<
":" << validSiTOBHigh <<
"\n"
179 <<
" validSiTIDLow = "
180 <<
":" << validSiTIDLow <<
"\n"
181 <<
" validSiTIDHigh = "
182 <<
":" << validSiTIDHigh <<
"\n"
183 <<
" validSiTECLow = "
184 <<
":" << validSiTECLow <<
"\n"
185 <<
" validSiTECHigh = "
186 <<
":" << validSiTECHigh <<
"\n"
187 <<
" validMuonCSC = "
188 <<
":" << validMuonCSC <<
"\n"
190 <<
":" << validMuonDt <<
"\n"
191 <<
" validMuonRPC = "
192 <<
":" << validMuonRPC <<
"\n"
194 <<
":" << validEB <<
"\n"
196 <<
":" << validEE <<
"\n"
198 <<
":" << validPresh <<
"\n"
200 <<
":" << validHcal <<
"\n"
201 <<
"===============================\n";
205 for (Int_t
i = 0;
i < 2; ++
i) {
270 sprintf(hname,
"hMCRGP1");
271 sprintf(htitle,
"RawGenParticles");
273 sprintf(hname,
"hMCRGP2");
275 for (Int_t
i = 0;
i < 2; ++
i) {
280 sprintf(hname,
"hMCG4Vtx1");
281 sprintf(htitle,
"G4 Vertices");
283 sprintf(hname,
"hMCG4Vtx2");
285 for (Int_t
i = 0;
i < 2; ++
i) {
290 sprintf(hname,
"hMCG4Trk1");
291 sprintf(htitle,
"G4 Tracks");
293 sprintf(hname,
"hMCG4Trk2");
295 for (Int_t
i = 0;
i < 2; ++
i) {
300 sprintf(hname,
"hGeantVtxX1");
301 sprintf(htitle,
"Geant vertex x/micrometer");
303 sprintf(hname,
"hGeantVtxX2");
305 for (Int_t
i = 0;
i < 2; ++
i) {
310 sprintf(hname,
"hGeantVtxY1");
311 sprintf(htitle,
"Geant vertex y/micrometer");
313 sprintf(hname,
"hGeantVtxY2");
315 for (Int_t
i = 0;
i < 2; ++
i) {
320 sprintf(hname,
"hGeantVtxZ1");
321 sprintf(htitle,
"Geant vertex z/millimeter");
323 sprintf(hname,
"hGeantVtxZ2");
326 for (Int_t
i = 0;
i < 2; ++
i) {
331 sprintf(hname,
"hGeantTrkPt");
332 sprintf(htitle,
"Log10 Geant track pt/GeV");
337 sprintf(hname,
"hGeantTrkE");
338 sprintf(htitle,
"Log10 Geant track E/GeV");
343 sprintf(hname,
"hGeantVtxEta");
344 sprintf(htitle,
"Geant vertices eta");
349 sprintf(hname,
"hGeantVtxPhi");
350 sprintf(htitle,
"Geant vertices phi/rad");
355 sprintf(hname,
"hGeantVtxRad1");
356 sprintf(htitle,
"Geant vertices radius/cm");
358 sprintf(hname,
"hGeantVtxRad2");
360 for (Int_t
i = 0;
i < 2; ++
i) {
365 sprintf(hname,
"hGeantVtxMulti");
366 sprintf(htitle,
"Geant vertices outgoing multiplicity");
373 sprintf(hname,
"hCaloEcal1");
374 sprintf(htitle,
"Ecal hits");
376 sprintf(hname,
"hCaloEcal2");
379 sprintf(hname,
"hCaloEcalE1");
380 sprintf(htitle,
"Ecal hits, energy/GeV");
382 sprintf(hname,
"hCaloEcalE2");
384 sprintf(hname,
"hCaloEcalToF1");
385 sprintf(htitle,
"Ecal hits, ToF/ns");
387 sprintf(hname,
"hCaloEcalToF2");
390 for (Int_t
i = 0;
i < 2; ++
i) {
399 sprintf(hname,
"hCaloEcalPhi");
400 sprintf(htitle,
"Ecal hits, phi/rad");
405 sprintf(hname,
"hCaloEcalEta");
406 sprintf(htitle,
"Ecal hits, eta");
411 sprintf(hname,
"hCaloPreSh1");
412 sprintf(htitle,
"PreSh hits");
414 sprintf(hname,
"hCaloPreSh2");
417 sprintf(hname,
"hCaloPreShE1");
418 sprintf(htitle,
"PreSh hits, energy/GeV");
420 sprintf(hname,
"hCaloPreShE2");
423 sprintf(hname,
"hCaloPreShToF1");
424 sprintf(htitle,
"PreSh hits, ToF/ns");
426 sprintf(hname,
"hCaloPreShToF2");
429 for (Int_t
i = 0;
i < 2; ++
i) {
438 sprintf(hname,
"hCaloPreShPhi");
439 sprintf(htitle,
"PreSh hits, phi/rad");
444 sprintf(hname,
"hCaloPreShEta");
445 sprintf(htitle,
"PreSh hits, eta");
452 sprintf(hname,
"hCaloHcal1");
453 sprintf(htitle,
"Hcal hits");
455 sprintf(hname,
"hCaloHcal2");
458 sprintf(hname,
"hCaloHcalE1");
459 sprintf(htitle,
"Hcal hits, energy/GeV");
461 sprintf(hname,
"hCaloHcalE2");
464 sprintf(hname,
"hCaloHcalToF1");
465 sprintf(htitle,
"Hcal hits, ToF/ns");
467 sprintf(hname,
"hCaloHcalToF2");
470 for (Int_t
i = 0;
i < 2; ++
i) {
479 sprintf(hname,
"hCaloHcalPhi");
480 sprintf(htitle,
"Hcal hits, phi/rad");
485 sprintf(hname,
"hCaloHcalEta");
486 sprintf(htitle,
"Hcal hits, eta");
493 sprintf(hname,
"hTrackerPx1");
494 sprintf(htitle,
"Pixel hits");
496 sprintf(hname,
"hTrackerPx2");
498 for (Int_t
i = 0;
i < 2; ++
i) {
503 sprintf(hname,
"hTrackerPxPhi");
504 sprintf(htitle,
"Pixel hits phi/rad");
509 sprintf(hname,
"hTrackerPxEta");
510 sprintf(htitle,
"Pixel hits eta");
515 sprintf(hname,
"hTrackerPxBToF");
516 sprintf(htitle,
"Pixel barrel hits, ToF/ns");
521 sprintf(hname,
"hTrackerPxBR");
522 sprintf(htitle,
"Pixel barrel hits, R/cm");
527 sprintf(hname,
"hTrackerPxFToF");
528 sprintf(htitle,
"Pixel forward hits, ToF/ns");
533 sprintf(hname,
"hTrackerPxFZ");
534 sprintf(htitle,
"Pixel forward hits, Z/cm");
541 sprintf(hname,
"hTrackerSi1");
542 sprintf(htitle,
"Silicon hits");
544 sprintf(hname,
"hTrackerSi2");
546 for (Int_t
i = 0;
i < 2; ++
i) {
551 sprintf(hname,
"hTrackerSiPhi");
552 sprintf(htitle,
"Silicon hits phi/rad");
557 sprintf(hname,
"hTrackerSiEta");
558 sprintf(htitle,
"Silicon hits eta");
563 sprintf(hname,
"hTrackerSiBToF");
564 sprintf(htitle,
"Silicon barrel hits, ToF/ns");
569 sprintf(hname,
"hTrackerSiBR");
570 sprintf(htitle,
"Silicon barrel hits, R/cm");
575 sprintf(hname,
"hTrackerSiFToF");
576 sprintf(htitle,
"Silicon forward hits, ToF/ns");
581 sprintf(hname,
"hTrackerSiFZ");
582 sprintf(htitle,
"Silicon forward hits, Z/cm");
589 sprintf(hname,
"hMuon1");
590 sprintf(htitle,
"Muon hits");
591 meMuon[0] = iBooker.
book1D(hname, htitle, 100, 0., 10000.);
592 sprintf(hname,
"hMuon2");
593 meMuon[1] = iBooker.
book1D(hname, htitle, 100, -0.5, 99.5);
594 for (Int_t
i = 0;
i < 2; ++
i) {
599 sprintf(hname,
"hMuonPhi");
600 sprintf(htitle,
"Muon hits phi/rad");
605 sprintf(hname,
"hMuonEta");
606 sprintf(htitle,
"Muon hits eta");
611 sprintf(hname,
"hMuonCscToF1");
612 sprintf(htitle,
"Muon CSC hits, ToF/ns");
614 sprintf(hname,
"hMuonCscToF2");
616 for (Int_t
i = 0;
i < 2; ++
i) {
621 sprintf(hname,
"hMuonCscZ");
622 sprintf(htitle,
"Muon CSC hits, Z/cm");
627 sprintf(hname,
"hMuonDtToF1");
628 sprintf(htitle,
"Muon DT hits, ToF/ns");
630 sprintf(hname,
"hMuonDtToF2");
632 for (Int_t
i = 0;
i < 2; ++
i) {
637 sprintf(hname,
"hMuonDtR");
638 sprintf(htitle,
"Muon DT hits, R/cm");
643 sprintf(hname,
"hMuonRpcFToF1");
644 sprintf(htitle,
"Muon RPC forward hits, ToF/ns");
646 sprintf(hname,
"hMuonRpcFToF2");
648 for (Int_t
i = 0;
i < 2; ++
i) {
652 sprintf(hname,
"hMuonRpcFZ");
653 sprintf(htitle,
"Muon RPC forward hits, Z/cm");
658 sprintf(hname,
"hMuonRpcBToF1");
659 sprintf(htitle,
"Muon RPC barrel hits, ToF/ns");
661 sprintf(hname,
"hMuonRpcBToF2");
663 for (Int_t
i = 0;
i < 2; ++
i) {
668 sprintf(hname,
"hMuonRpcBR");
669 sprintf(htitle,
"Muon RPC barrel hits, R/cm");
676 std::string MsgLoggerCat =
"GlobalHitsAnalyzer_analyze";
686 edm::LogInfo(MsgLoggerCat) <<
"Processing run " << nrun <<
", event " << nevt <<
" (" <<
count <<
" events total)";
688 if (nevt %
frequency == 0 || nevt == 1) {
689 edm::LogInfo(MsgLoggerCat) <<
"Processing run " << nrun <<
", event " << nevt <<
" (" <<
count
696 std::vector<const edm::StableProvenance *> AllProv;
700 edm::LogInfo(MsgLoggerCat) <<
"Number of Provenances = " << AllProv.size();
703 TString eventout(
"\nProvenance info:\n");
705 for (
unsigned int i = 0;
i < AllProv.size(); ++
i) {
706 eventout +=
"\n ******************************";
707 eventout +=
"\n Module : ";
708 eventout += AllProv[
i]->moduleLabel();
709 eventout +=
"\n ProductID : ";
710 eventout += AllProv[
i]->productID().id();
711 eventout +=
"\n ClassName : ";
712 eventout += AllProv[
i]->className();
713 eventout +=
"\n InstanceName : ";
714 eventout += AllProv[
i]->productInstanceName();
715 eventout +=
"\n BranchName : ";
716 eventout += AllProv[
i]->branchName();
718 eventout +=
"\n ******************************\n";
738 edm::LogInfo(MsgLoggerCat) <<
"Done gathering data from event.";
745 std::string MsgLoggerCat =
"GlobalHitsAnalyzer_fillG4MC";
749 eventout =
"\nGathering info:";
755 std::vector<edm::Handle<edm::HepMCProduct>> AllHepMCEvt;
760 for (
unsigned int i = 0;
i < AllHepMCEvt.size(); ++
i) {
761 HepMCEvt = AllHepMCEvt[
i];
767 LogDebug(MsgLoggerCat) <<
"Unable to find HepMCProduct in event!";
770 eventout +=
"\n Using HepMCProduct: ";
778 eventout +=
"\n Number of Raw Particles collected:......... ";
805 if (!G4VtxContainer.
isValid()) {
806 LogDebug(MsgLoggerCat) <<
"Unable to find SimVertex in event!";
811 edm::SimVertexContainer::const_iterator itVtx;
812 for (itVtx = G4VtxContainer->begin(); itVtx != G4VtxContainer->end(); ++itVtx) {
816 itVtx->position().x(), itVtx->position().y(), itVtx->position().z(), itVtx->position().e());
819 G4Vtx1.GetCoordinates(G4Vtx);
847 if (G4TrkContainer.
isValid()) {
848 edm::SimTrackContainer::const_iterator itTrk;
849 for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); ++itTrk) {
850 if ((*itTrk).vertIndex() ==
i) {
860 eventout +=
"\n Number of G4Vertices collected:............ ";
873 if (!G4TrkContainer.
isValid()) {
874 LogDebug(MsgLoggerCat) <<
"Unable to find SimTrack in event!";
879 edm::SimTrackContainer::const_iterator itTrk;
880 for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); ++itTrk) {
884 itTrk->momentum().x(), itTrk->momentum().y(), itTrk->momentum().z(), itTrk->momentum().e());
886 G4Trk1.GetCoordinates(G4Trk);
895 eventout +=
"\n Number of G4Tracks collected:.............. ";
913 std::string MsgLoggerCat =
"GlobalHitsAnalyzer_fillTrk";
917 eventout =
"\nGathering info:";
921 if (!theTrackerGeometry.isValid()) {
922 edm::LogWarning(MsgLoggerCat) <<
"Unable to find TrackerDigiGeometryRecord in event!";
928 edm::PSimHitContainer::const_iterator itHit;
937 if (!PxlBrlLowContainer.
isValid()) {
938 LogDebug(MsgLoggerCat) <<
"Unable to find TrackerHitsPixelBarrelLowTof in event!";
944 if (!PxlBrlHighContainer.
isValid()) {
945 LogDebug(MsgLoggerCat) <<
"Unable to find TrackerHitsPixelBarrelHighTof in event!";
950 thePxlBrlHits.insert(thePxlBrlHits.end(), PxlBrlLowContainer->begin(), PxlBrlLowContainer->end());
952 thePxlBrlHits.insert(thePxlBrlHits.end(), PxlBrlHighContainer->begin(), PxlBrlHighContainer->end());
956 for (itHit = thePxlBrlHits.begin(); itHit != thePxlBrlHits.end(); ++itHit) {
960 DetId theDetUnitId(itHit->detUnitId());
961 int detector = theDetUnitId.
det();
970 edm::LogWarning(MsgLoggerCat) <<
"Unable to get GeomDetUnit from PxlBrlHits for Hit " <<
i;
989 edm::LogWarning(MsgLoggerCat) <<
"PxlBrl PSimHit " << i <<
" is expected to be (det,subdet) = (" <<
dTrk <<
","
990 <<
sdPxlBrl <<
"); value returned is: (" << detector <<
"," << subdetector <<
")";
996 eventout +=
"\n Number of Pixel Barrel Hits collected:..... ";
1009 if (!PxlFwdLowContainer.
isValid()) {
1010 LogDebug(MsgLoggerCat) <<
"Unable to find TrackerHitsPixelEndcapLowTof in event!";
1016 if (!PxlFwdHighContainer.
isValid()) {
1017 LogDebug(
"GlobalHitsAnalyzer_fillTrk") <<
"Unable to find TrackerHitsPixelEndcapHighTof in event!";
1022 thePxlFwdHits.insert(thePxlFwdHits.end(), PxlFwdLowContainer->begin(), PxlFwdLowContainer->end());
1024 thePxlFwdHits.insert(thePxlFwdHits.end(), PxlFwdHighContainer->begin(), PxlFwdHighContainer->end());
1029 for (itHit = thePxlFwdHits.begin(); itHit != thePxlFwdHits.end(); ++itHit) {
1033 DetId theDetUnitId(itHit->detUnitId());
1034 int detector = theDetUnitId.
det();
1043 edm::LogWarning(MsgLoggerCat) <<
"Unable to get GeomDetUnit from PxlFwdHits for Hit " <<
i;
1063 edm::LogWarning(MsgLoggerCat) <<
"PxlFwd PSimHit " << i <<
" is expected to be (det,subdet) = (" <<
dTrk <<
","
1064 <<
sdPxlFwd <<
"); value returned is: (" << detector <<
"," << subdetector <<
")";
1070 eventout +=
"\n Number of Pixel Forward Hits collected:.... ";
1089 if (!SiTIBLowContainer.
isValid()) {
1090 LogDebug(MsgLoggerCat) <<
"Unable to find TrackerHitsTIBLowTof in event!";
1096 if (!SiTIBHighContainer.
isValid()) {
1097 LogDebug(MsgLoggerCat) <<
"Unable to find TrackerHitsTIBHighTof in event!";
1103 if (!SiTOBLowContainer.
isValid()) {
1104 LogDebug(MsgLoggerCat) <<
"Unable to find TrackerHitsTOBLowTof in event!";
1110 if (!SiTOBHighContainer.
isValid()) {
1111 LogDebug(MsgLoggerCat) <<
"Unable to find TrackerHitsTOBHighTof in event!";
1116 theSiBrlHits.insert(theSiBrlHits.end(), SiTIBLowContainer->begin(), SiTIBLowContainer->end());
1118 theSiBrlHits.insert(theSiBrlHits.end(), SiTIBHighContainer->begin(), SiTIBHighContainer->end());
1120 theSiBrlHits.insert(theSiBrlHits.end(), SiTOBLowContainer->begin(), SiTOBLowContainer->end());
1122 theSiBrlHits.insert(theSiBrlHits.end(), SiTOBHighContainer->begin(), SiTOBHighContainer->end());
1127 for (itHit = theSiBrlHits.begin(); itHit != theSiBrlHits.end(); ++itHit) {
1131 DetId theDetUnitId(itHit->detUnitId());
1132 int detector = theDetUnitId.
det();
1141 edm::LogWarning(MsgLoggerCat) <<
"Unable to get GeomDetUnit from SiBrlHits for Hit " <<
i;
1160 edm::LogWarning(MsgLoggerCat) <<
"SiBrl PSimHit " << i <<
" is expected to be (det,subdet) = (" <<
dTrk <<
","
1161 <<
sdSiTIB <<
" || " <<
sdSiTOB <<
"); value returned is: (" << detector <<
","
1162 << subdetector <<
")";
1168 eventout +=
"\n Number of Silicon Barrel Hits collected:... ";
1181 if (!SiTIDLowContainer.
isValid()) {
1182 LogDebug(MsgLoggerCat) <<
"Unable to find TrackerHitsTIDLowTof in event!";
1188 if (!SiTIDHighContainer.
isValid()) {
1189 LogDebug(
"GlobalHitsAnalyzer_fillTrk") <<
"Unable to find TrackerHitsTIDHighTof in event!";
1195 if (!SiTECLowContainer.
isValid()) {
1196 LogDebug(MsgLoggerCat) <<
"Unable to find TrackerHitsTECLowTof in event!";
1202 if (!SiTECHighContainer.
isValid()) {
1203 LogDebug(MsgLoggerCat) <<
"Unable to find TrackerHitsTECHighTof in event!";
1208 theSiFwdHits.insert(theSiFwdHits.end(), SiTIDLowContainer->begin(), SiTIDLowContainer->end());
1210 theSiFwdHits.insert(theSiFwdHits.end(), SiTIDHighContainer->begin(), SiTIDHighContainer->end());
1212 theSiFwdHits.insert(theSiFwdHits.end(), SiTECLowContainer->begin(), SiTECLowContainer->end());
1214 theSiFwdHits.insert(theSiFwdHits.end(), SiTECHighContainer->begin(), SiTECHighContainer->end());
1219 for (itHit = theSiFwdHits.begin(); itHit != theSiFwdHits.end(); ++itHit) {
1223 DetId theDetUnitId(itHit->detUnitId());
1224 int detector = theDetUnitId.
det();
1233 edm::LogWarning(MsgLoggerCat) <<
"Unable to get GeomDetUnit from SiFwdHits Hit " <<
i;
1252 edm::LogWarning(MsgLoggerCat) <<
"SiFwd PSimHit " << i <<
" is expected to be (det,subdet) = (" <<
dTrk <<
","
1253 <<
sdSiTOB <<
" || " <<
sdSiTEC <<
"); value returned is: (" << detector <<
","
1254 << subdetector <<
")";
1260 eventout +=
"\n Number of Silicon Forward Hits collected:.. ";
1279 std::string MsgLoggerCat =
"GlobalHitsAnalyzer_fillMuon";
1283 eventout =
"\nGathering info:";
1286 edm::PSimHitContainer::const_iterator itHit;
1293 if (!theCSCGeometry.isValid()) {
1294 edm::LogWarning(MsgLoggerCat) <<
"Unable to find MuonGeometryRecord for the CSCGeometry in event!";
1302 if (!MuonCSCContainer.
isValid()) {
1303 LogDebug(MsgLoggerCat) <<
"Unable to find MuonCSCHits in event!";
1310 for (itHit = MuonCSCContainer->begin(); itHit != MuonCSCContainer->end(); ++itHit) {
1314 DetId theDetUnitId(itHit->detUnitId());
1315 int detector = theDetUnitId.
det();
1324 edm::LogWarning(MsgLoggerCat) <<
"Unable to get GeomDetUnit from theCSCMuon for hit " <<
i;
1345 edm::LogWarning(MsgLoggerCat) <<
"MuonCsc PSimHit " << i <<
" is expected to be (det,subdet) = (" <<
dMuon
1346 <<
"," <<
sdMuonCSC <<
"); value returned is: (" << detector <<
"," << subdetector
1353 eventout +=
"\n Number of CSC muon Hits collected:......... ";
1365 if (!theDTGeometry.isValid()) {
1366 edm::LogWarning(MsgLoggerCat) <<
"Unable to find MuonGeometryRecord for the DTGeometry in event!";
1374 if (!MuonDtContainer.
isValid()) {
1375 LogDebug(MsgLoggerCat) <<
"Unable to find MuonDTHits in event!";
1382 for (itHit = MuonDtContainer->begin(); itHit != MuonDtContainer->end(); ++itHit) {
1386 DetId theDetUnitId(itHit->detUnitId());
1387 int detector = theDetUnitId.
det();
1394 DTWireId wireId(itHit->detUnitId());
1397 const DTLayer *theDet = theDTMuon.
layer(wireId.layerId());
1400 edm::LogWarning(MsgLoggerCat) <<
"Unable to get GeomDetUnit from theDtMuon for hit " <<
i;
1407 const BoundPlane &bSurface = theDet->surface();
1421 edm::LogWarning(MsgLoggerCat) <<
"MuonDt PSimHit " << i <<
" is expected to be (det,subdet) = (" <<
dMuon <<
","
1422 <<
sdMuonDT <<
"); value returned is: (" << detector <<
"," << subdetector <<
")";
1428 eventout +=
"\n Number of DT muon Hits collected:.......... ";
1441 if (!theRPCGeometry.isValid()) {
1442 edm::LogWarning(MsgLoggerCat) <<
"Unable to find MuonGeometryRecord for the RPCGeometry in event!";
1450 if (!MuonRPCContainer.
isValid()) {
1451 LogDebug(MsgLoggerCat) <<
"Unable to find MuonRPCHits in event!";
1458 int RPCBrl = 0, RPCFwd = 0;
1459 for (itHit = MuonRPCContainer->begin(); itHit != MuonRPCContainer->end(); ++itHit) {
1463 DetId theDetUnitId(itHit->detUnitId());
1464 int detector = theDetUnitId.
det();
1470 RPCDetId RPCId(itHit->detUnitId());
1473 int region = RPCId.region();
1479 edm::LogWarning(MsgLoggerCat) <<
"Unable to get GeomDetUnit from theRPCMuon for hit " <<
i;
1522 edm::LogWarning(MsgLoggerCat) <<
"MuonRpc PSimHit " << i <<
" is expected to be (det,subdet) = (" <<
dMuon
1523 <<
"," <<
sdMuonRPC <<
"); value returned is: (" << detector <<
"," << subdetector
1530 eventout +=
"\n Number of RPC muon Hits collected:......... ";
1532 eventout +=
"\n RPC Barrel muon Hits:............ ";
1534 eventout +=
"\n RPC Forward muon Hits:........... ";
1553 std::string MsgLoggerCat =
"GlobalHitsAnalyzer_fillECal";
1557 eventout =
"\nGathering info:";
1561 if (!theCaloGeometry.isValid()) {
1562 edm::LogWarning(MsgLoggerCat) <<
"Unable to find CaloGeometryRecord in event!";
1568 edm::PCaloHitContainer::const_iterator itHit;
1578 LogDebug(MsgLoggerCat) <<
"Unable to find EcalHitsEB in event!";
1585 LogDebug(MsgLoggerCat) <<
"Unable to find EcalHitsEE in event!";
1590 theECalHits.insert(theECalHits.end(), EBContainer->begin(), EBContainer->end());
1592 theECalHits.insert(theECalHits.end(), EEContainer->begin(), EEContainer->end());
1596 for (itHit = theECalHits.begin(); itHit != theECalHits.end(); ++itHit) {
1600 DetId theDetUnitId(itHit->id());
1601 int detector = theDetUnitId.
det();
1610 edm::LogWarning(MsgLoggerCat) <<
"Unable to get CaloCellGeometry from ECalHits for Hit " <<
i;
1617 const GlobalPoint &globalposition = theDet->getPosition();
1633 edm::LogWarning(MsgLoggerCat) <<
"ECal PCaloHit " << i <<
" is expected to be (det,subdet) = (" <<
dEcal <<
","
1635 << subdetector <<
")";
1641 eventout +=
"\n Number of ECal Hits collected:............. ";
1656 if (!PreShContainer.
isValid()) {
1657 LogDebug(MsgLoggerCat) <<
"Unable to find EcalHitsES in event!";
1664 for (itHit = PreShContainer->begin(); itHit != PreShContainer->end(); ++itHit) {
1668 DetId theDetUnitId(itHit->id());
1669 int detector = theDetUnitId.
det();
1678 edm::LogWarning(MsgLoggerCat) <<
"Unable to get CaloCellGeometry from PreShContainer for Hit " <<
i;
1685 const GlobalPoint &globalposition = theDet->getPosition();
1701 edm::LogWarning(MsgLoggerCat) <<
"PreSh PCaloHit " << i <<
" is expected to be (det,subdet) = (" <<
dEcal <<
","
1702 <<
sdEcalPS <<
"); value returned is: (" << detector <<
"," << subdetector <<
")";
1708 eventout +=
"\n Number of PreSh Hits collected:............ ";
1725 std::string MsgLoggerCat =
"GlobalHitsAnalyzer_fillHCal";
1729 eventout =
"\nGathering info:";
1733 if (!theCaloGeometry.isValid()) {
1734 edm::LogWarning(MsgLoggerCat) <<
"Unable to find CaloGeometryRecord in event!";
1742 edm::PCaloHitContainer::const_iterator itHit;
1750 if (!HCalContainer.
isValid()) {
1751 LogDebug(MsgLoggerCat) <<
"Unable to find HCalHits in event!";
1758 for (itHit = HCalContainer->begin(); itHit != HCalContainer->end(); ++itHit) {
1763 unsigned int id_ = itHit->id();
1769 int detector = theDetUnitId.
det();
1779 edm::LogWarning(MsgLoggerCat) <<
"Unable to get HcalGeometry from HCalContainer for Hit " <<
i;
1802 edm::LogWarning(MsgLoggerCat) <<
"HCal PCaloHit " << i <<
" is expected to be (det,subdet) = (" <<
dHcal <<
","
1804 <<
"); value returned is: (" << detector <<
"," << subdetector <<
")";
1810 eventout +=
"\n Number of HCal Hits collected:............. ";
MonitorElement * meTrackerSiPhi
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
EventNumber_t event() const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDLowSrc_Token_
void fillG4MC(const edm::Event &)
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
std::vector< PCaloHit > PCaloHitContainer
edm::InputTag SiTECLowSrc_
edm::EDGetTokenT< edm::PSimHitContainer > SiTECHighSrc_Token_
~GlobalHitsAnalyzer() override
edm::InputTag PxlBrlLowSrc_
static const int sdMuonRPCRgnFwdn
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomToken_
static const int sdHcalOut
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * meMuonDtToF[2]
static const int sdMuonDT
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * meGeantVtxRad[2]
MonitorElement * meCaloHcal[2]
MonitorElement * meMCG4Trk[2]
edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > hcaldddRecToken_
MonitorElement * meTrackerPxPhi
Geom::Phi< T > phi() const
MonitorElement * meCaloHcalToF[2]
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDHighSrc_Token_
unsigned long long EventNumber_t
MonitorElement * meCaloPreSh[2]
static const int sdEcalPS
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEESrc_Token_
MonitorElement * meTrackerSiEta
void getManyByType(std::vector< Handle< PROD >> &results) const
const GeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
void fillHCal(const edm::Event &, const edm::EventSetup &)
MonitorElement * meTrackerSiBToF
static const int sdMuonRPC
MonitorElement * meTrackerSi[2]
edm::EDGetTokenT< edm::SimTrackContainer > G4TrkSrc_Token_
const Plane & surface() const
The nominal surface of the GeomDet.
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBHighSrc_Token_
MonitorElement * meMCG4Vtx[2]
edm::InputTag SiTIBHighSrc_
MonitorElement * meGeantVtxY[2]
MonitorElement * meGeantVtxMulti
MonitorElement * meTrackerPxFZ
bool getData(T &iHolder) const
edm::InputTag MuonCscSrc_
edm::InputTag PxlBrlHighSrc_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
MonitorElement * meMuonCscToF[2]
MonitorElement * meCaloPreShPhi
MonitorElement * meGeantTrkE
MonitorElement * meCaloEcalEta
static const int sdPxlBrl
MonitorElement * meTrackerPxBR
MonitorElement * meCaloPreShE[2]
edm::InputTag PxlFwdLowSrc_
static const int sdMuonCSC
MonitorElement * meTrackerPxBToF
static const int sdEcalFwd
MonitorElement * meGeantVtxPhi
edm::InputTag SiTIDLowSrc_
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
MonitorElement * meCaloEcalPhi
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBLowSrc_Token_
MonitorElement * meTrackerPx[2]
MonitorElement * meGeantTrkPt
MonitorElement * meGeantVtxEta
edm::InputTag PxlFwdHighSrc_
MonitorElement * meMuonRpcFZ
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlHighSrc_Token_
static const int sdEcalBrl
edm::InputTag SiTECHighSrc_
static const int sdMuonRPCRgnFwdp
static const int sdMuonRPCRgnBrl
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEBSrc_Token_
void fillTrk(const edm::Event &, const edm::EventSetup &)
MonitorElement * meMCRGP[2]
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlLowSrc_Token_
GlobalPoint getPosition(const DetId &id) const
MonitorElement * meMuonRpcBToF[2]
MonitorElement * meCaloHcalE[2]
Log< level::Info, false > LogInfo
MonitorElement * meMuonCscZ
MonitorElement * meGeantVtxX[2]
void fillMuon(const edm::Event &, const edm::EventSetup &)
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBLowSrc_Token_
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeomToken_
BranchDescription const & branchDescription() const
edm::EDGetTokenT< edm::PSimHitContainer > MuonRpcSrc_Token_
MonitorElement * meCaloEcal[2]
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdLowSrc_Token_
MonitorElement * meTrackerSiFZ
MonitorElement * meGeantVtxZ[2]
MonitorElement * meCaloEcalToF[2]
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBHighSrc_Token_
std::vector< SimVertex > SimVertexContainer
T getParameter(std::string const &) const
static const int sdHcalFwd
edm::EDGetTokenT< edm::PSimHitContainer > MuonCscSrc_Token_
void fillECal(const edm::Event &, const edm::EventSetup &)
edm::InputTag SiTIDHighSrc_
MonitorElement * meMuon[2]
static const int sdHcalBrl
MonitorElement * meMuonRpcFToF[2]
MonitorElement * meCaloPreShToF[2]
MonitorElement * meCaloPreShEta
MonitorElement * meTrackerSiFToF
MonitorElement * meTrackerPxFToF
edm::InputTag MuonRpcSrc_
edm::EDGetTokenT< edm::SimVertexContainer > G4VtxSrc_Token_
T perp() const
Magnitude of transverse component.
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * meMuonEta
edm::InputTag SiTOBLowSrc_
edm::InputTag SiTOBHighSrc_
MonitorElement * meMuonDtR
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
std::vector< PSimHit > PSimHitContainer
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdHighSrc_Token_
static const int sdPxlFwd
const DTLayer * layer(const DTLayerId &id) const
Return a layer given its id.
DetId relabel(const uint32_t testId) const
edm::InputTag SiTIBLowSrc_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Log< level::Warning, false > LogWarning
MonitorElement * meCaloHcalPhi
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeomToken_
MonitorElement * meMuonRpcBR
MonitorElement * meTrackerPxEta
edm::EDGetTokenT< edm::PCaloHitContainer > ECalESSrc_Token_
std::vector< SimTrack > SimTrackContainer
MonitorElement * meCaloHcalEta
static const int sdHcalEC
MonitorElement * meMuonPhi
GlobalHitsAnalyzer(const edm::ParameterSet &)
edm::EDGetTokenT< edm::PSimHitContainer > MuonDtSrc_Token_
Provenance const * provenance() const
Basic3DVector unit() const
edm::EDGetTokenT< edm::PSimHitContainer > SiTECLowSrc_Token_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomToken_
const GeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
MonitorElement * meTrackerSiBR
constexpr Detector det() const
get the detector field from this detid
void analyze(const edm::Event &, const edm::EventSetup &) override
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * meCaloEcalE[2]