21 getAllProvenances(
false),
22 printProvenanceInfo(
false),
23 trackerHitAssociatorConfig_(iPSet, consumesCollector()),
31 consumesMany<edm::SortedCollection<HBHERecHit, edm::StrictWeakOrdering<HBHERecHit>>>();
32 consumesMany<edm::SortedCollection<HFRecHit, edm::StrictWeakOrdering<HFRecHit>>>();
33 consumesMany<edm::SortedCollection<HORecHit, edm::StrictWeakOrdering<HORecHit>>>();
34 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_GlobalRecHitsAnalyzer";
96 edm::LogInfo(MsgLoggerCat) <<
"\n===============================\n"
97 <<
"Initialized as EDProducer with parameter values:\n"
98 <<
" Name = " <<
fName <<
"\n"
99 <<
" Verbosity = " << verbosity <<
"\n"
100 <<
" Frequency = " << frequency <<
"\n"
101 <<
" GetProv = " << getAllProvenances <<
"\n"
102 <<
" PrintProv = " << printProvenanceInfo <<
"\n"
103 <<
" ECalEBSrc = " << ECalEBSrc_.label() <<
":" << ECalEBSrc_.instance() <<
"\n"
104 <<
" ECalUncalEBSrc = " << ECalUncalEBSrc_.
label() <<
":"
105 << ECalUncalEBSrc_.
instance() <<
"\n"
106 <<
" ECalEESrc = " << ECalEESrc_.
label() <<
":" << ECalUncalEESrc_.
instance()
108 <<
" ECalUncalEESrc = " << ECalUncalEESrc_.
label() <<
":" << ECalEESrc_.
instance()
110 <<
" ECalESSrc = " << ECalESSrc_.
label() <<
":" << ECalESSrc_.
instance() <<
"\n"
111 <<
" HCalSrc = " << HCalSrc_.
label() <<
":" << HCalSrc_.
instance() <<
"\n"
112 <<
" SiStripSrc = " << SiStripSrc_.
label() <<
":" << SiStripSrc_.
instance()
114 <<
" SiPixelSrc = " << SiPxlSrc_.
label() <<
":" << SiPxlSrc_.
instance() <<
"\n"
115 <<
" MuDTSrc = " << MuDTSrc_.
label() <<
":" << MuDTSrc_.
instance() <<
"\n"
116 <<
" MuDTSimSrc = " << MuDTSimSrc_.
label() <<
":" << MuDTSimSrc_.
instance()
118 <<
" MuCSCSrc = " << MuCSCSrc_.
label() <<
":" << MuCSCSrc_.
instance() <<
"\n"
119 <<
" MuRPCSrc = " << MuRPCSrc_.
label() <<
":" << MuRPCSrc_.
instance() <<
"\n"
120 <<
" MuRPCSimSrc = " << MuRPCSimSrc_.
label() <<
":" << MuRPCSimSrc_.
instance()
122 <<
"===============================\n";
130 string SiStripString[19] = {
"TECW1",
149 for (
int i = 0;
i < 19; ++
i) {
154 string hcharname, hchartitle;
156 for (
int amend = 0; amend < 19; ++amend) {
157 hcharname =
"hSiStripn_" + SiStripString[amend];
158 hchartitle = SiStripString[amend] +
" rechits";
162 hcharname =
"hSiStripResX_" + SiStripString[amend];
163 hchartitle = SiStripString[amend] +
" rechit x resolution";
167 hcharname =
"hSiStripResY_" + SiStripString[amend];
168 hchartitle = SiStripString[amend] +
" rechit y resolution";
176 string HCalString[4] = {
"HB",
"HE",
"HF",
"HO"};
177 float HCalnUpper[4] = {3000., 3000., 3000., 3000.};
178 float HCalnLower[4] = {0., 0., 0., 0.};
179 for (
int j = 0;
j < 4; ++
j) {
185 for (
int amend = 0; amend < 4; ++amend) {
186 hcharname =
"hHcaln_" + HCalString[amend];
187 hchartitle = HCalString[amend] +
" rechits";
188 mehHcaln[amend] = iBooker.
book1D(hcharname, hchartitle, 1000, HCalnLower[amend], HCalnUpper[amend]);
191 hcharname =
"hHcalRes_" + HCalString[amend];
192 hchartitle = HCalString[amend] +
" rechit resolution";
199 string ECalString[3] = {
"EB",
"EE",
"ES"};
200 int ECalnBins[3] = {1000, 3000, 150};
201 float ECalnUpper[3] = {20000., 62000., 3000.};
202 float ECalnLower[3] = {0., 0., 0.};
203 int ECalResBins[3] = {200, 200, 200};
204 float ECalResUpper[3] = {1., 0.3, .0002};
205 float ECalResLower[3] = {-1., -0.3, -.0002};
206 for (
int i = 0;
i < 3; ++
i) {
212 for (
int amend = 0; amend < 3; ++amend) {
213 hcharname =
"hEcaln_" + ECalString[amend];
214 hchartitle = ECalString[amend] +
" rechits";
215 mehEcaln[amend] = iBooker.
book1D(hcharname, hchartitle, ECalnBins[amend], ECalnLower[amend], ECalnUpper[amend]);
218 hcharname =
"hEcalRes_" + ECalString[amend];
219 hchartitle = ECalString[amend] +
" rechit resolution";
221 iBooker.
book1D(hcharname, hchartitle, ECalResBins[amend], ECalResLower[amend], ECalResUpper[amend]);
227 string SiPixelString[7] = {
"BRL1",
"BRL2",
"BRL3",
"FWD1n",
"FWD1p",
"FWD2n",
"FWD2p"};
228 for (
int j = 0;
j < 7; ++
j) {
235 for (
int amend = 0; amend < 7; ++amend) {
236 hcharname =
"hSiPixeln_" + SiPixelString[amend];
237 hchartitle = SiPixelString[amend] +
" rechits";
241 hcharname =
"hSiPixelResX_" + SiPixelString[amend];
242 hchartitle = SiPixelString[amend] +
" rechit x resolution";
246 hcharname =
"hSiPixelResY_" + SiPixelString[amend];
247 hchartitle = SiPixelString[amend] +
" rechit y resolution";
261 string n_List[3] = {
"hDtMuonn",
"hCSCn",
"hRPCn"};
262 string hist_string[3] = {
"Dt",
"CSC",
"RPC"};
264 for (
int amend = 0; amend < 3; ++amend) {
265 hchartitle = hist_string[amend] +
" rechits";
272 mehCSCn = iBooker.
book1D(n_List[amend], hchartitle, 50, 0., 500.);
277 mehRPCn = iBooker.
book1D(n_List[amend], hchartitle, 50, 0., 500.);
287 hcharname =
"hDtMuonRes";
288 hchartitle =
"DT wire distance resolution";
290 hcharname =
"CSCResRDPhi";
291 hchartitle =
"CSC perp*dphi resolution";
293 hcharname =
"hRPCResX";
294 hchartitle =
"RPC rechits x resolution";
299 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_analyze";
309 edm::LogInfo(MsgLoggerCat) <<
"Processing run " << nrun <<
", event " << nevt <<
" (" <<
count <<
" events total)";
311 if (nevt %
frequency == 0 || nevt == 1) {
312 edm::LogInfo(MsgLoggerCat) <<
"Processing run " << nrun <<
", event " << nevt <<
" (" <<
count
319 std::vector<const edm::StableProvenance*> AllProv;
323 edm::LogInfo(MsgLoggerCat) <<
"Number of Provenances = " << AllProv.size();
326 TString eventout(
"\nProvenance info:\n");
328 for (
unsigned int i = 0;
i < AllProv.size(); ++
i) {
329 eventout +=
"\n ******************************";
330 eventout +=
"\n Module : ";
331 eventout += AllProv[
i]->moduleLabel();
332 eventout +=
"\n ProductID : ";
333 eventout += AllProv[
i]->productID().id();
334 eventout +=
"\n ClassName : ";
335 eventout += AllProv[
i]->className();
336 eventout +=
"\n InstanceName : ";
337 eventout += AllProv[
i]->productInstanceName();
338 eventout +=
"\n BranchName : ";
339 eventout += AllProv[
i]->branchName();
341 eventout +=
"\n ******************************\n";
359 edm::LogInfo(MsgLoggerCat) <<
"Done gathering data from event.";
365 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_fillECal";
369 eventout =
"\nGathering info:";
379 bool validUncalibRecHitEB = EcalUncalibRecHitEB.
isValid();
380 if (!validUncalibRecHitEB) {
381 LogDebug(MsgLoggerCat) <<
"Unable to find EcalUncalRecHitEB in event!";
386 bool validRecHitEB = EcalRecHitEB.
isValid();
387 if (!validRecHitEB) {
388 LogDebug(MsgLoggerCat) <<
"Unable to find EcalRecHitEB in event!";
393 bool validXFrame = crossingFrame.
isValid();
395 LogDebug(MsgLoggerCat) <<
"Unable to find cal barrel crossingFrame in event!";
405 uint32_t crystid = ebid.
rawId();
406 ebSimMap[crystid] += iHit.energy();
412 if (validUncalibRecHitEB && validRecHitEB) {
417 uncalibRecHit != EBUncalibRecHit->
end();
423 if (myRecHit != EBRecHit->
end()) {
430 eventout +=
"\n Number of EBRecHits collected:............ ";
431 eventout += nEBRecHits;
441 bool validuncalibRecHitEE = EcalUncalibRecHitEE.
isValid();
442 if (!validuncalibRecHitEE) {
443 LogDebug(MsgLoggerCat) <<
"Unable to find EcalUncalRecHitEE in event!";
448 bool validRecHitEE = EcalRecHitEE.
isValid();
449 if (!validRecHitEE) {
450 LogDebug(MsgLoggerCat) <<
"Unable to find EcalRecHitEE in event!";
455 validXFrame = crossingFrame.
isValid();
457 LogDebug(MsgLoggerCat) <<
"Unable to find cal endcap crossingFrame in event!";
467 uint32_t crystid = eeid.
rawId();
468 eeSimMap[crystid] += iHit.energy();
473 if (validuncalibRecHitEE && validRecHitEE) {
479 uncalibRecHit != EEUncalibRecHit->
end();
485 if (myRecHit != EERecHit->
end()) {
492 eventout +=
"\n Number of EERecHits collected:............ ";
493 eventout += nEERecHits;
503 bool validRecHitES = EcalRecHitES.
isValid();
504 if (!validRecHitES) {
505 LogDebug(MsgLoggerCat) <<
"Unable to find EcalRecHitES in event!";
510 validXFrame = crossingFrame.
isValid();
512 LogDebug(MsgLoggerCat) <<
"Unable to find cal preshower crossingFrame in event!";
522 uint32_t crystid = esid.
rawId();
523 esSimMap[crystid] += iHit.energy();
539 eventout +=
"\n Number of ESRecHits collected:............ ";
540 eventout += nESRecHits;
552 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_fillHCal";
556 eventout =
"\nGathering info:";
561 edm::LogWarning(MsgLoggerCat) <<
"Unable to find CaloGeometry in event!";
570 bool validhcalHits = hcalHits.
isValid();
571 if (!validhcalHits) {
572 LogDebug(MsgLoggerCat) <<
"Unable to find hcalHits in event!";
575 std::map<HcalDetId, float> fHBEnergySimHits;
576 std::map<HcalDetId, float> fHEEnergySimHits;
577 std::map<HcalDetId, float> fHOEnergySimHits;
578 std::map<HcalDetId, float> fHFEnergySimHits;
582 for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin(); simhits != simhitResult->end();
587 fHBEnergySimHits[detId] += simhits->energy();
590 fHEEnergySimHits[detId] += simhits->energy();
593 fHOEnergySimHits[detId] += simhits->energy();
596 fHFEnergySimHits[detId] += simhits->energy();
604 std::vector<edm::Handle<HBHERecHitCollection>> hbhe;
607 bool validHBHE = hbhe[0].isValid();
610 LogDebug(MsgLoggerCat) <<
"Unable to find any HBHERecHitCollections in event!";
614 std::vector<edm::Handle<HBHERecHitCollection>>::iterator ihbhe;
617 for (ihbhe = hbhe.begin(); ihbhe != hbhe.end(); ++ihbhe) {
626 else if (cell.subdet() ==
sdHcalEC) {
634 eventout +=
"\n Number of HBRecHits collected:............ ";
639 eventout +=
"\n Number of HERecHits collected:............ ";
649 std::vector<edm::Handle<HFRecHitCollection>> hf;
651 bool validHF = hf[0].isValid();
653 LogDebug(MsgLoggerCat) <<
"Unable to find any HFRecHitCollections in event!";
655 std::vector<edm::Handle<HFRecHitCollection>>::iterator
ihf;
658 for (ihf = hf.begin(); ihf != hf.end(); ++
ihf) {
670 eventout +=
"\n Number of HFDigis collected:.............. ";
679 std::vector<edm::Handle<HORecHitCollection>>
ho;
681 bool validHO = ho[0].isValid();
683 LogDebug(MsgLoggerCat) <<
"Unable to find any HORecHitCollections in event!";
685 std::vector<edm::Handle<HORecHitCollection>>::iterator iho;
688 for (iho = ho.begin(); iho != ho.end(); ++iho) {
700 eventout +=
"\n Number of HODigis collected:.............. ";
715 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_fillTrk";
718 eventout =
"\nGathering info:";
723 bool validstrip = rechitsmatched.
isValid();
725 LogDebug(MsgLoggerCat) <<
"Unable to find stripmatchedrechits in event!";
731 if (!tGeomHandle.isValid()) {
732 edm::LogWarning(MsgLoggerCat) <<
"Unable to find TrackerDigiGeometry in event!";
738 int nStripBrl = 0, nStripFwd = 0;
741 for (TrackerGeometry::DetContainer::const_iterator it = tGeomHandle->dets().begin();
742 it != tGeomHandle->dets().end();
744 uint32_t myid = ((*it)->geographicalId()).rawId();
745 DetId detid = ((*it)->geographicalId());
750 if (rechitmatchedMatch != rechitsmatched->end()) {
753 rechitmatchedRange.
begin();
755 rechitmatchedRange.
end();
758 for (itermatched = rechitmatchedRangeIteratorBegin; itermatched != rechitmatchedRangeIteratorEnd;
763 float mindist = 999999.;
764 float distx = 999999.;
765 float disty = 999999.;
766 float dist = 999999.;
767 std::pair<LocalPoint, LocalVector> closestPair;
770 float rechitmatchedx = position.
x();
771 float rechitmatchedy = position.
y();
779 std::pair<LocalPoint, LocalVector> hitPair;
781 for (std::vector<PSimHit>::const_iterator
m =
matched.begin();
m !=
matched.end();
m++) {
784 distx = fabs(rechitmatchedx - hitPair.first.x());
785 disty = fabs(rechitmatchedy - hitPair.first.y());
786 dist =
sqrt(distx * distx + disty * disty);
788 if (dist < mindist) {
790 closestPair = hitPair;
900 eventout +=
"\n Number of BrlStripRecHits collected:...... ";
901 eventout += nStripBrl;
904 for (
int i = 8;
i < 12; ++
i) {
907 for (
int i = 16;
i < 19; ++
i) {
912 eventout +=
"\n Number of FrwdStripRecHits collected:..... ";
913 eventout += nStripFwd;
915 for (
int i = 0;
i < 8; ++
i) {
918 for (
int i = 12;
i < 16; ++
i) {
927 bool validpixel = recHitColl.
isValid();
929 LogDebug(MsgLoggerCat) <<
"Unable to find SiPixelRecHitCollection in event!";
931 int nPxlBrl = 0, nPxlFwd = 0;
933 for (TrackerGeometry::DetContainer::const_iterator it = tGeomHandle->dets().begin();
934 it != tGeomHandle->dets().end();
936 uint32_t myid = ((*it)->geographicalId()).rawId();
937 DetId detId = ((*it)->geographicalId());
944 if (pixeldet == recHitColl->end())
954 for (; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter) {
958 if (!matched.empty()) {
959 float closest = 9999.9;
961 float rechit_x = lp.
x();
962 float rechit_y = lp.
y();
968 for (std::vector<PSimHit>::const_iterator
m = matched.begin();
m != matched.end(); ++
m) {
969 float sim_x1 = (*m).entryPoint().x();
970 float sim_x2 = (*m).exitPoint().x();
971 float sim_xpos = 0.5 * (sim_x1 + sim_x2);
973 float sim_y1 = (*m).entryPoint().y();
974 float sim_y2 = (*m).exitPoint().y();
975 float sim_ypos = 0.5 * (sim_y1 + sim_y2);
977 float x_res = fabs(sim_xpos - rechit_x);
978 float y_res = fabs(sim_ypos - rechit_y);
980 float dist =
sqrt(x_res * x_res + y_res * y_res);
982 if (dist < closest) {
1011 if (tTopo->
pxfDisk(myid) == 1) {
1012 if (tTopo->
pxfSide(myid) == 1) {
1016 if (tTopo->
pxfSide(myid) == 2) {
1021 if (tTopo->
pxfDisk(myid) == 2) {
1022 if (tTopo->
pxfSide(myid) == 1) {
1026 if (tTopo->
pxfSide(myid) == 2) {
1037 eventout +=
"\n Number of BrlPixelRecHits collected:...... ";
1038 eventout += nPxlBrl;
1040 for (
int i = 0;
i < 3; ++
i) {
1045 eventout +=
"\n Number of FrwdPixelRecHits collected:..... ";
1046 eventout += nPxlFwd;
1049 for (
int i = 3;
i < 7; ++
i) {
1061 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_fillMuon";
1065 eventout =
"\nGathering info:";
1069 if (!dtGeom.isValid()) {
1070 edm::LogWarning(MsgLoggerCat) <<
"Unable to find DTMuonGeometryRecord in event!";
1076 bool validdtsim = dtsimHits.
isValid();
1078 LogDebug(MsgLoggerCat) <<
"Unable to find dtsimHits in event!";
1083 bool validdtrec = dtRecHits.
isValid();
1085 LogDebug(MsgLoggerCat) <<
"Unable to find dtRecHits in event!";
1088 if (validdtsim && validdtrec) {
1089 std::map<DTWireId, edm::PSimHitContainer> simHitsPerWire =
1094 int nDt =
compute(dtGeom.product(), simHitsPerWire, recHitsPerWire, 1);
1097 eventout +=
"\n Number of DtMuonRecHits collected:........ ";
1109 bool validXFrame = cf.
isValid();
1111 LogDebug(MsgLoggerCat) <<
"Unable to find muo CSC crossingFrame in event!";
1116 for (
auto const& iHit :
simHits) {
1117 theMap[iHit.detUnitId()].push_back(iHit);
1123 if (!hGeom.isValid()) {
1124 edm::LogWarning(MsgLoggerCat) <<
"Unable to find CSCMuonGeometryRecord in event!";
1132 bool validCSC = hRecHits.
isValid();
1134 LogDebug(MsgLoggerCat) <<
"Unable to find CSC RecHits in event!";
1141 int detId = (*recHitItr).cscDetId().rawId();
1144 std::map<int, edm::PSimHitContainer>::const_iterator mapItr =
theMap.find(detId);
1145 if (mapItr !=
theMap.end()) {
1146 simHits = mapItr->second;
1149 if (simHits.size() == 1) {
1161 eventout +=
"\n Number of CSCRecHits collected:........... ";
1168 std::map<double, int> mapsim, maprec;
1169 std::map<int, double> nmapsim, nmaprec;
1171 if (!rpcGeom.isValid()) {
1172 edm::LogWarning(MsgLoggerCat) <<
"Unable to find RPCMuonGeometryRecord in event!";
1178 bool validrpcsim = simHit.
isValid();
1180 LogDebug(MsgLoggerCat) <<
"Unable to find RPCSimHit in event!";
1185 bool validrpc = recHit.
isValid();
1187 LogDebug(MsgLoggerCat) <<
"Unable to find RPCRecHit in event!";
1194 for (recIt = recHit->begin(); recIt != recHit->end(); ++recIt) {
1196 const RPCRoll* roll =
dynamic_cast<const RPCRoll*
>(rpcGeom->roll(Rid));
1199 eventout +=
"\n Number of RPCRecHits collected:........... ";
1208 LocalPoint rhitlocal = (*recIt).localPosition();
1209 double rhitlocalx = rhitlocal.
x();
1210 maprec[rhitlocalx] = nrec;
1214 for (std::map<double, int>::iterator iter = maprec.begin(); iter != maprec.end(); ++iter) {
1216 nmaprec[
i] = (*iter).first;
1221 edm::PSimHitContainer::const_iterator simIt;
1222 for (simIt = simHit->begin(); simIt != simHit->end(); simIt++) {
1223 int ptype = (*simIt).particleType();
1224 if (ptype == 13 || ptype == -13) {
1226 LocalPoint shitlocal = (*simIt).localPosition();
1227 double shitlocalx = shitlocal.
x();
1228 mapsim[shitlocalx] = nsim;
1233 for (std::map<double, int>::iterator iter = mapsim.begin(); iter != mapsim.end(); ++iter) {
1235 nmapsim[
i] = (*iter).first;
1240 for (
int r = 0;
r < nsim;
r++) {
1247 eventout +=
"\n Number of RPCRecHits collected:........... ";
1265 LocalPoint localHit = plane.toLocal(globalpos);
1272 float scale = -localHit.
z() / dir.
z();
1283 return std::pair<LocalPoint, LocalVector>(projectedPos, localStripDir);
1289 std::map<DTWireId, std::vector<DTRecHit1DPair>>
ret;
1293 ret[(*rechit).wireId()].push_back(*rechit);
1304 float xEntry = entryP.
x() - xwire;
1305 float xExit = exitP.
x() - xwire;
1308 return fabs(xEntry - (entryP.
z() * (xExit - xEntry)) / (exitP.
z() - entryP.
z()));
1312 template <
typename type>
1315 const std::vector<type>&
recHits,
1316 const float simHitDist) {
1318 const type* theBestRecHit =
nullptr;
1320 for (
typename std::vector<type>::const_iterator recHit = recHits.begin(); recHit != recHits.end(); recHit++) {
1322 if (fabs(distTmp - simHitDist) < res) {
1323 res = fabs(distTmp - simHitDist);
1324 theBestRecHit = &(*recHit);
1328 return theBestRecHit;
1342 template <
typename type>
1344 const std::map<
DTWireId, std::vector<PSimHit>>& _simHitsPerWire,
1345 const std::map<
DTWireId, std::vector<type>>& _recHitsPerWire,
1347 std::map<DTWireId, std::vector<PSimHit>> simHitsPerWire = _simHitsPerWire;
1348 std::map<DTWireId, std::vector<type>> recHitsPerWire = _recHitsPerWire;
1351 for (std::map<
DTWireId, std::vector<PSimHit>>::const_iterator wireAndSHits = simHitsPerWire.begin();
1352 wireAndSHits != simHitsPerWire.end();
1354 DTWireId wireId = (*wireAndSHits).first;
1355 std::vector<PSimHit> simHitsInCell = (*wireAndSHits).second;
1362 if (muSimHit ==
nullptr) {
1369 if (simHitWireDist > 2.1) {
1374 if (recHitsPerWire.find(wireId) == recHitsPerWire.end()) {
1377 std::vector<type>
recHits = recHitsPerWire[wireId];
edm::EDGetTokenT< SiPixelRecHitCollection > SiPxlSrc_Token_
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
EventNumber_t event() const
GlobalRecHitsAnalyzer(const edm::ParameterSet &)
T getUntrackedParameter(std::string const &, T const &) const
float wirePosition(int wireNumber) const
Returns the x position in the layer of a given wire number.
MonitorElement * mehCSCResRDPhi
tuple ret
prodAgent to be discontinued
std::map< DTWireId, edm::PSimHitContainer > mapSimHitsPerWire(const edm::PSimHitContainer &simhits)
std::vector< PCaloHit > PCaloHitContainer
unsigned int tibLayer(const DetId &id) const
virtual float stripAngle(float strip) const =0
edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomToken_
~GlobalRecHitsAnalyzer() override
edm::EDGetTokenT< EBRecHitCollection > ECalEBSrc_Token_
static const int sdHcalOut
std::vector< PSimHit > matched
virtual void setCurrentFolder(std::string const &fullpath)
edm::EDGetTokenT< ESRecHitCollection > ECalESSrc_Token_
MonitorElement * mehDtMuonn
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< CrossingFrame< PCaloHit > > ESHits_Token_
MonitorElement * mehHcalRes[4]
unsigned int pxfDisk(const DetId &id) const
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Sin< T >::type sin(const T &t)
edm::EDGetTokenT< CrossingFrame< PSimHit > > MuCSCHits_Token_
void fillMuon(const edm::Event &, const edm::EventSetup &)
Geom::Phi< T > phi() const
constexpr uint32_t rawId() const
get the raw id
std::vector< T >::const_iterator const_iterator
edm::InputTag ECalUncalEBSrc_
unsigned long long EventNumber_t
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EEHits_Token_
float recHitDistFromWire(const DTRecHit1DPair &hitPair, const DTLayer *layer)
unsigned int tidWheel(const DetId &id) const
LocalPoint localPosition() const override
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomToken_
void getManyByType(std::vector< Handle< PROD >> &results) const
float simHitDistFromWire(const DTLayer *layer, DTWireId wireId, const PSimHit &hit)
edm::InputTag ECalUncalEESrc_
MonitorElement * mehEcalRes[3]
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
const Plane & surface() const
The nominal surface of the GeomDet.
edm::EDGetTokenT< edm::PSimHitContainer > MuDTSimSrc_Token_
MonitorElement * mehSiStripn[19]
constexpr std::array< uint8_t, layerIndexSize > layer
edm::InputTag SiStripSrc_
virtual float strip(const LocalPoint &) const =0
void plotResolution(const PSimHit &simHit, const CSCRecHit2D &recHit, const CSCLayer *layer, int chamberType)
void analyze(const edm::Event &, const edm::EventSetup &) override
bool getData(T &iHolder) const
std::map< int, edm::PSimHitContainer > theMap
int compute(const DTGeometry *dtGeom, const std::map< DTWireId, std::vector< PSimHit >> &simHitsPerWire, const std::map< DTWireId, std::vector< type >> &recHitsPerWire, int step)
std::map< DTWireId, std::vector< DTRecHit1DPair > > map1DRecHitsPerWire(const DTRecHitCollection *dt1DRecHitPairs)
C::const_iterator const_iterator
constant access iterator type
const DTTopology & specificTopology() const
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
Local3DPoint exitPoint() const
Exit point in the local Det frame.
edm::EDGetTokenT< EBUncalibratedRecHitCollection > ECalUncalEBSrc_Token_
const CSCChamberSpecs * specs() const
static const int sdPxlBrl
Local3DPoint localPosition() const
edm::EDGetTokenT< CSCRecHit2DCollection > MuCSCSrc_Token_
MonitorElement * mehSiPixelResX[7]
Cos< T >::type cos(const T &t)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
MonitorElement * mehRPCResX
MonitorElement * mehEcaln[3]
const type * findBestRecHit(const DTLayer *layer, DTWireId wireId, const std::vector< type > &recHits, const float simHitDist)
const PSimHit * findMuSimHit(const edm::PSimHitContainer &hits)
Select the SimHit from a muon in a vector of SimHits.
MonitorElement * mehSiPixelResY[7]
MonitorElement * mehSiStripResY[19]
edm::EDGetTokenT< RPCRecHitCollection > MuRPCSrc_Token_
const TrackerGeomDet * idToDet(DetId) const override
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const StripGeomDetUnit *stripDet, const BoundPlane &plane)
unsigned int pxbLayer(const DetId &id) const
const_iterator end() const
LocalPoint localPosition() const override
LocalVector localDirection() const
Obsolete. Same as momentumAtEntry().unit(), for backward compatibility.
int wire() const
Return the wire number.
Log< level::Info, false > LogInfo
edm::InputTag MuRPCSimSrc_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
std::map< uint32_t, float, std::less< uint32_t > > MapType
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EBHits_Token_
T const * product() const
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
T getParameter(std::string const &) const
MonitorElement * mehSiPixeln[7]
static const int sdHcalFwd
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeomToken_
static const int sdHcalBrl
void fillTrk(const edm::Event &, const edm::EventSetup &)
edm::EDGetTokenT< DTRecHitCollection > MuDTSrc_Token_
iterator find(key_type k)
MonitorElement * mehHcaln[4]
edm::EDGetTokenT< EEUncalibratedRecHitCollection > ECalUncalEESrc_Token_
LocalPoint localPosition() const override
static int position[264][3]
void fillECal(const edm::Event &, const edm::EventSetup &)
unsigned int pxfSide(const DetId &id) const
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
std::vector< PSimHit > PSimHitContainer
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
static const int sdPxlFwd
const DTLayer * layer(const DTLayerId &id) const
Return a layer given its id.
edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeomToken_
TrackerHitAssociator::Config trackerHitAssociatorConfig_
DetId geographicalId() const
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Log< level::Warning, false > LogWarning
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
unsigned int tecWheel(const DetId &id) const
edm::EDGetTokenT< edm::PSimHitContainer > MuRPCSimSrc_Token_
LocalPoint localPosition() const override
Return the 3-dimensional local position.
MonitorElement * mehDtMuonRes
MonitorElement * mehSiStripResX[19]
Local3DPoint entryPoint() const
Entry point in the local Det frame.
static const int sdHcalEC
const CSCChamber * chamber() const
const GeomDetUnit * stereoDet() const
const_iterator begin() const
unsigned int tobLayer(const DetId &id) const
edm::InputTag MuDTSimSrc_
void fillHCal(const edm::Event &, const edm::EventSetup &)
edm::EDGetTokenT< EERecHitCollection > ECalEESrc_Token_
const GeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
DTWireId wireId() const
Return the wireId.
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > SiStripSrc_Token_