23 getAllProvenances(
false),
24 printProvenanceInfo(
false),
25 trackerHitAssociatorConfig_(iPSet, consumesCollector()),
47 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_GlobalRecHitsAnalyzer";
109 edm::LogInfo(MsgLoggerCat) <<
"\n===============================\n" 110 <<
"Initialized as EDProducer with parameter values:\n" 111 <<
" Name = " <<
fName <<
"\n" 135 <<
"===============================\n";
143 string SiStripString[19] = {
"TECW1",
162 for (
int i = 0;
i < 19; ++
i) {
167 string hcharname, hchartitle;
169 for (
int amend = 0; amend < 19; ++amend) {
170 hcharname =
"hSiStripn_" + SiStripString[amend];
171 hchartitle = SiStripString[amend] +
" rechits";
175 hcharname =
"hSiStripResX_" + SiStripString[amend];
176 hchartitle = SiStripString[amend] +
" rechit x resolution";
180 hcharname =
"hSiStripResY_" + SiStripString[amend];
181 hchartitle = SiStripString[amend] +
" rechit y resolution";
189 string HCalString[4] = {
"HB",
"HE",
"HF",
"HO"};
190 float HCalnUpper[4] = {3000., 3000., 3000., 3000.};
191 float HCalnLower[4] = {0., 0., 0., 0.};
192 for (
int j = 0;
j < 4; ++
j) {
198 for (
int amend = 0; amend < 4; ++amend) {
199 hcharname =
"hHcaln_" + HCalString[amend];
200 hchartitle = HCalString[amend] +
" rechits";
201 mehHcaln[amend] = iBooker.
book1D(hcharname, hchartitle, 1000, HCalnLower[amend], HCalnUpper[amend]);
204 hcharname =
"hHcalRes_" + HCalString[amend];
205 hchartitle = HCalString[amend] +
" rechit resolution";
212 string ECalString[3] = {
"EB",
"EE",
"ES"};
213 int ECalnBins[3] = {1000, 3000, 150};
214 float ECalnUpper[3] = {20000., 62000., 3000.};
215 float ECalnLower[3] = {0., 0., 0.};
216 int ECalResBins[3] = {200, 200, 200};
217 float ECalResUpper[3] = {1., 0.3, .0002};
218 float ECalResLower[3] = {-1., -0.3, -.0002};
219 for (
int i = 0;
i < 3; ++
i) {
225 for (
int amend = 0; amend < 3; ++amend) {
226 hcharname =
"hEcaln_" + ECalString[amend];
227 hchartitle = ECalString[amend] +
" rechits";
228 mehEcaln[amend] = iBooker.
book1D(hcharname, hchartitle, ECalnBins[amend], ECalnLower[amend], ECalnUpper[amend]);
231 hcharname =
"hEcalRes_" + ECalString[amend];
232 hchartitle = ECalString[amend] +
" rechit resolution";
234 iBooker.
book1D(hcharname, hchartitle, ECalResBins[amend], ECalResLower[amend], ECalResUpper[amend]);
240 string SiPixelString[7] = {
"BRL1",
"BRL2",
"BRL3",
"FWD1n",
"FWD1p",
"FWD2n",
"FWD2p"};
241 for (
int j = 0;
j < 7; ++
j) {
248 for (
int amend = 0; amend < 7; ++amend) {
249 hcharname =
"hSiPixeln_" + SiPixelString[amend];
250 hchartitle = SiPixelString[amend] +
" rechits";
254 hcharname =
"hSiPixelResX_" + SiPixelString[amend];
255 hchartitle = SiPixelString[amend] +
" rechit x resolution";
259 hcharname =
"hSiPixelResY_" + SiPixelString[amend];
260 hchartitle = SiPixelString[amend] +
" rechit y resolution";
274 string n_List[3] = {
"hDtMuonn",
"hCSCn",
"hRPCn"};
275 string hist_string[3] = {
"Dt",
"CSC",
"RPC"};
277 for (
int amend = 0; amend < 3; ++amend) {
278 hchartitle = hist_string[amend] +
" rechits";
285 mehCSCn = iBooker.
book1D(n_List[amend], hchartitle, 50, 0., 500.);
290 mehRPCn = iBooker.
book1D(n_List[amend], hchartitle, 50, 0., 500.);
300 hcharname =
"hDtMuonRes";
301 hchartitle =
"DT wire distance resolution";
303 hcharname =
"CSCResRDPhi";
304 hchartitle =
"CSC perp*dphi resolution";
306 hcharname =
"hRPCResX";
307 hchartitle =
"RPC rechits x resolution";
312 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_analyze";
322 edm::LogInfo(MsgLoggerCat) <<
"Processing run " << nrun <<
", event " <<
nevt <<
" (" <<
count <<
" events total)";
332 std::vector<const edm::StableProvenance*> AllProv;
333 iEvent.getAllStableProvenance(AllProv);
336 edm::LogInfo(MsgLoggerCat) <<
"Number of Provenances = " << AllProv.size();
339 TString eventout(
"\nProvenance info:\n");
341 for (
unsigned int i = 0;
i < AllProv.size(); ++
i) {
342 eventout +=
"\n ******************************";
343 eventout +=
"\n Module : ";
344 eventout += AllProv[
i]->moduleLabel();
345 eventout +=
"\n ProductID : ";
346 eventout += AllProv[
i]->productID().id();
347 eventout +=
"\n ClassName : ";
348 eventout += AllProv[
i]->className();
349 eventout +=
"\n InstanceName : ";
350 eventout += AllProv[
i]->productInstanceName();
351 eventout +=
"\n BranchName : ";
352 eventout += AllProv[
i]->branchName();
354 eventout +=
"\n ******************************\n";
372 edm::LogInfo(MsgLoggerCat) <<
"Done gathering data from event.";
378 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_fillECal";
382 eventout =
"\nGathering info:";
392 bool validUncalibRecHitEB = EcalUncalibRecHitEB.
isValid();
393 if (!validUncalibRecHitEB) {
394 LogDebug(MsgLoggerCat) <<
"Unable to find EcalUncalRecHitEB in event!";
399 bool validRecHitEB = EcalRecHitEB.
isValid();
400 if (!validRecHitEB) {
401 LogDebug(MsgLoggerCat) <<
"Unable to find EcalRecHitEB in event!";
406 bool validXFrame = crossingFrame.
isValid();
408 LogDebug(MsgLoggerCat) <<
"Unable to find cal barrel crossingFrame in event!";
418 uint32_t crystid = ebid.
rawId();
419 ebSimMap[crystid] += iHit.energy();
425 if (validUncalibRecHitEB && validRecHitEB) {
443 eventout +=
"\n Number of EBRecHits collected:............ ";
444 eventout += nEBRecHits;
454 bool validuncalibRecHitEE = EcalUncalibRecHitEE.
isValid();
455 if (!validuncalibRecHitEE) {
456 LogDebug(MsgLoggerCat) <<
"Unable to find EcalUncalRecHitEE in event!";
461 bool validRecHitEE = EcalRecHitEE.
isValid();
462 if (!validRecHitEE) {
463 LogDebug(MsgLoggerCat) <<
"Unable to find EcalRecHitEE in event!";
468 validXFrame = crossingFrame.
isValid();
470 LogDebug(MsgLoggerCat) <<
"Unable to find cal endcap crossingFrame in event!";
480 uint32_t crystid = eeid.
rawId();
481 eeSimMap[crystid] += iHit.energy();
486 if (validuncalibRecHitEE && validRecHitEE) {
505 eventout +=
"\n Number of EERecHits collected:............ ";
506 eventout += nEERecHits;
516 bool validRecHitES = EcalRecHitES.
isValid();
517 if (!validRecHitES) {
518 LogDebug(MsgLoggerCat) <<
"Unable to find EcalRecHitES in event!";
523 validXFrame = crossingFrame.
isValid();
525 LogDebug(MsgLoggerCat) <<
"Unable to find cal preshower crossingFrame in event!";
535 uint32_t crystid = esid.
rawId();
536 esSimMap[crystid] += iHit.energy();
552 eventout +=
"\n Number of ESRecHits collected:............ ";
553 eventout += nESRecHits;
565 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_fillHCal";
569 eventout =
"\nGathering info:";
574 edm::LogWarning(MsgLoggerCat) <<
"Unable to find CaloGeometry in event!";
583 bool validhcalHits = hcalHits.
isValid();
584 if (!validhcalHits) {
585 LogDebug(MsgLoggerCat) <<
"Unable to find hcalHits in event!";
588 std::map<HcalDetId, float> fHBEnergySimHits;
589 std::map<HcalDetId, float> fHEEnergySimHits;
590 std::map<HcalDetId, float> fHOEnergySimHits;
591 std::map<HcalDetId, float> fHFEnergySimHits;
595 for (std::vector<PCaloHit>::const_iterator
simhits = simhitResult->begin();
simhits != simhitResult->end();
617 std::vector<edm::Handle<HBHERecHitCollection>>
hbhe;
619 bool validHBHE =
hbhe[0].isValid();
622 LogDebug(MsgLoggerCat) <<
"Unable to find any HBHERecHitCollections in event!";
626 std::vector<edm::Handle<HBHERecHitCollection>>::iterator ihbhe;
629 for (ihbhe =
hbhe.begin(); ihbhe !=
hbhe.end(); ++ihbhe) {
638 else if (cell.subdet() ==
sdHcalEC) {
646 eventout +=
"\n Number of HBRecHits collected:............ ";
651 eventout +=
"\n Number of HERecHits collected:............ ";
661 std::vector<edm::Handle<HFRecHitCollection>>
hf;
663 bool validHF =
hf[0].isValid();
665 LogDebug(MsgLoggerCat) <<
"Unable to find any HFRecHitCollections in event!";
667 std::vector<edm::Handle<HFRecHitCollection>>::iterator ihf;
670 for (ihf =
hf.begin(); ihf !=
hf.end(); ++ihf) {
682 eventout +=
"\n Number of HFDigis collected:.............. ";
691 std::vector<edm::Handle<HORecHitCollection>>
ho;
693 bool validHO =
ho[0].isValid();
695 LogDebug(MsgLoggerCat) <<
"Unable to find any HORecHitCollections in event!";
697 std::vector<edm::Handle<HORecHitCollection>>::iterator iho;
700 for (iho =
ho.begin(); iho !=
ho.end(); ++iho) {
712 eventout +=
"\n Number of HODigis collected:.............. ";
727 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_fillTrk";
730 eventout =
"\nGathering info:";
735 bool validstrip = rechitsmatched.
isValid();
737 LogDebug(MsgLoggerCat) <<
"Unable to find stripmatchedrechits in event!";
743 if (!tGeomHandle.isValid()) {
744 edm::LogWarning(MsgLoggerCat) <<
"Unable to find TrackerDigiGeometry in event!";
750 int nStripBrl = 0, nStripFwd = 0;
753 for (TrackerGeometry::DetContainer::const_iterator
it = tGeomHandle->dets().begin();
754 it != tGeomHandle->dets().end();
756 uint32_t myid = ((*it)->geographicalId()).
rawId();
757 DetId detid = ((*it)->geographicalId());
762 if (rechitmatchedMatch != rechitsmatched->
end()) {
765 rechitmatchedRange.
begin();
767 rechitmatchedRange.
end();
770 for (itermatched = rechitmatchedRangeIteratorBegin; itermatched != rechitmatchedRangeIteratorEnd;
775 float mindist = 999999.;
776 float distx = 999999.;
777 float disty = 999999.;
778 float dist = 999999.;
779 std::pair<LocalPoint, LocalVector> closestPair;
782 float rechitmatchedx =
position.x();
783 float rechitmatchedy =
position.y();
791 std::pair<LocalPoint, LocalVector> hitPair;
793 for (std::vector<PSimHit>::const_iterator
m =
matched.begin();
m !=
matched.end();
m++) {
796 distx = fabs(rechitmatchedx - hitPair.first.x());
797 disty = fabs(rechitmatchedy - hitPair.first.y());
798 dist =
sqrt(distx * distx + disty * disty);
800 if (dist < mindist) {
802 closestPair = hitPair;
912 eventout +=
"\n Number of BrlStripRecHits collected:...... ";
913 eventout += nStripBrl;
916 for (
int i = 8;
i < 12; ++
i) {
919 for (
int i = 16;
i < 19; ++
i) {
924 eventout +=
"\n Number of FrwdStripRecHits collected:..... ";
925 eventout += nStripFwd;
927 for (
int i = 0;
i < 8; ++
i) {
930 for (
int i = 12;
i < 16; ++
i) {
939 bool validpixel = recHitColl.
isValid();
941 LogDebug(MsgLoggerCat) <<
"Unable to find SiPixelRecHitCollection in event!";
943 int nPxlBrl = 0, nPxlFwd = 0;
945 for (TrackerGeometry::DetContainer::const_iterator
it = tGeomHandle->dets().begin();
946 it != tGeomHandle->dets().end();
948 uint32_t myid = ((*it)->geographicalId()).
rawId();
950 int subid =
detId.subdetId();
956 if (pixeldet == recHitColl->
end())
966 for (; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter) {
973 float rechit_x = lp.
x();
974 float rechit_y = lp.
y();
980 for (std::vector<PSimHit>::const_iterator
m =
matched.begin();
m !=
matched.end(); ++
m) {
981 float sim_x1 = (*m).entryPoint().x();
982 float sim_x2 = (*m).exitPoint().x();
983 float sim_xpos = 0.5 * (sim_x1 + sim_x2);
985 float sim_y1 = (*m).entryPoint().y();
986 float sim_y2 = (*m).exitPoint().y();
987 float sim_ypos = 0.5 * (sim_y1 + sim_y2);
989 float x_res = fabs(sim_xpos - rechit_x);
990 float y_res = fabs(sim_ypos - rechit_y);
992 float dist =
sqrt(x_res * x_res + y_res * y_res);
1023 if (tTopo->
pxfDisk(myid) == 1) {
1024 if (tTopo->
pxfSide(myid) == 1) {
1028 if (tTopo->
pxfSide(myid) == 2) {
1033 if (tTopo->
pxfDisk(myid) == 2) {
1034 if (tTopo->
pxfSide(myid) == 1) {
1038 if (tTopo->
pxfSide(myid) == 2) {
1049 eventout +=
"\n Number of BrlPixelRecHits collected:...... ";
1050 eventout += nPxlBrl;
1052 for (
int i = 0;
i < 3; ++
i) {
1057 eventout +=
"\n Number of FrwdPixelRecHits collected:..... ";
1058 eventout += nPxlFwd;
1061 for (
int i = 3;
i < 7; ++
i) {
1073 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_fillMuon";
1077 eventout =
"\nGathering info:";
1081 if (!dtGeom.isValid()) {
1082 edm::LogWarning(MsgLoggerCat) <<
"Unable to find DTMuonGeometryRecord in event!";
1088 bool validdtsim = dtsimHits.
isValid();
1090 LogDebug(MsgLoggerCat) <<
"Unable to find dtsimHits in event!";
1095 bool validdtrec = dtRecHits.
isValid();
1097 LogDebug(MsgLoggerCat) <<
"Unable to find dtRecHits in event!";
1100 if (validdtsim && validdtrec) {
1101 std::map<DTWireId, edm::PSimHitContainer> simHitsPerWire =
1106 int nDt =
compute(dtGeom.product(), simHitsPerWire, recHitsPerWire, 1);
1109 eventout +=
"\n Number of DtMuonRecHits collected:........ ";
1121 bool validXFrame = cf.
isValid();
1123 LogDebug(MsgLoggerCat) <<
"Unable to find muo CSC crossingFrame in event!";
1128 for (
auto const& iHit :
simHits) {
1129 theMap[iHit.detUnitId()].push_back(iHit);
1135 if (!hGeom.isValid()) {
1136 edm::LogWarning(MsgLoggerCat) <<
"Unable to find CSCMuonGeometryRecord in event!";
1144 bool validCSC = hRecHits.
isValid();
1146 LogDebug(MsgLoggerCat) <<
"Unable to find CSC RecHits in event!";
1153 int detId = (*recHitItr).cscDetId().rawId();
1156 std::map<int, edm::PSimHitContainer>::const_iterator mapItr =
theMap.find(
detId);
1157 if (mapItr !=
theMap.end()) {
1173 eventout +=
"\n Number of CSCRecHits collected:........... ";
1180 std::map<double, int> mapsim, maprec;
1181 std::map<int, double> nmapsim, nmaprec;
1183 if (!rpcGeom.isValid()) {
1184 edm::LogWarning(MsgLoggerCat) <<
"Unable to find RPCMuonGeometryRecord in event!";
1190 bool validrpcsim =
simHit.isValid();
1192 LogDebug(MsgLoggerCat) <<
"Unable to find RPCSimHit in event!";
1197 bool validrpc =
recHit.isValid();
1199 LogDebug(MsgLoggerCat) <<
"Unable to find RPCRecHit in event!";
1206 for (recIt =
recHit->begin(); recIt !=
recHit->end(); ++recIt) {
1209 if (
roll->isForward()) {
1211 eventout +=
"\n Number of RPCRecHits collected:........... ";
1220 LocalPoint rhitlocal = (*recIt).localPosition();
1221 double rhitlocalx = rhitlocal.
x();
1222 maprec[rhitlocalx] = nrec;
1226 for (std::map<double, int>::iterator iter = maprec.begin(); iter != maprec.end(); ++iter) {
1228 nmaprec[
i] = (*iter).first;
1233 edm::PSimHitContainer::const_iterator simIt;
1234 for (simIt =
simHit->begin(); simIt !=
simHit->end(); simIt++) {
1235 int ptype = (*simIt).particleType();
1238 LocalPoint shitlocal = (*simIt).localPosition();
1239 double shitlocalx = shitlocal.
x();
1240 mapsim[shitlocalx] = nsim;
1245 for (std::map<double, int>::iterator iter = mapsim.begin(); iter != mapsim.end(); ++iter) {
1247 nmapsim[
i] = (*iter).first;
1252 for (
int r = 0;
r < nsim;
r++) {
1259 eventout +=
"\n Number of RPCRecHits collected:........... ";
1277 LocalPoint localHit = plane.toLocal(globalpos);
1295 return std::pair<LocalPoint, LocalVector>(projectedPos, localStripDir);
1301 std::map<DTWireId, std::vector<DTRecHit1DPair>>
ret;
1305 ret[(*rechit).wireId()].push_back(*rechit);
1313 float xwire =
layer->specificTopology().wirePosition(wireId.
wire());
1316 float xEntry = entryP.
x() - xwire;
1317 float xExit = exitP.
x() - xwire;
1320 return fabs(xEntry - (entryP.
z() * (xExit - xEntry)) / (exitP.
z() - entryP.
z()));
1324 template <
typename type>
1327 const std::vector<type>&
recHits,
1328 const float simHitDist) {
1330 const type* theBestRecHit =
nullptr;
1334 if (fabs(distTmp - simHitDist) <
res) {
1335 res = fabs(distTmp - simHitDist);
1336 theBestRecHit = &(*recHit);
1340 return theBestRecHit;
1351 return fabs(
recHit.localPosition().x() -
layer->specificTopology().wirePosition(
recHit.wireId().wire()));
1354 template <
typename type>
1359 std::map<DTWireId, std::vector<PSimHit>> simHitsPerWire = _simHitsPerWire;
1360 std::map<DTWireId, std::vector<type>> recHitsPerWire = _recHitsPerWire;
1363 for (
std::map<
DTWireId, std::vector<PSimHit>>::const_iterator wireAndSHits = simHitsPerWire.begin();
1364 wireAndSHits != simHitsPerWire.end();
1366 DTWireId wireId = (*wireAndSHits).first;
1367 std::vector<PSimHit> simHitsInCell = (*wireAndSHits).second;
1374 if (muSimHit ==
nullptr) {
1381 if (simHitWireDist > 2.1) {
1386 if (recHitsPerWire.find(wireId) == recHitsPerWire.end()) {
1389 std::vector<type>
recHits = recHitsPerWire[wireId];
edm::EDGetTokenT< SiPixelRecHitCollection > SiPxlSrc_Token_
GlobalRecHitsAnalyzer(const edm::ParameterSet &)
MonitorElement * mehCSCResRDPhi
T getParameter(std::string const &) const
unsigned int tobLayer(const DetId &id) const
std::map< DTWireId, edm::PSimHitContainer > mapSimHitsPerWire(const edm::PSimHitContainer &simhits)
unsigned int pxbLayer(const DetId &id) const
std::vector< PCaloHit > PCaloHitContainer
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
virtual float stripAngle(float strip) const =0
edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomToken_
~GlobalRecHitsAnalyzer() override
edm::EDGetTokenT< EBRecHitCollection > ECalEBSrc_Token_
static const int sdHcalOut
int wire() const
Return the wire number.
std::vector< PSimHit > matched
edm::GetterOfProducts< edm::SortedCollection< HORecHit, edm::StrictWeakOrdering< HORecHit > > > HORecHitgetter_
virtual void setCurrentFolder(std::string const &fullpath)
edm::EDGetTokenT< ESRecHitCollection > ECalESSrc_Token_
MonitorElement * mehDtMuonn
edm::EDGetTokenT< CrossingFrame< PCaloHit > > ESHits_Token_
MonitorElement * mehHcalRes[4]
ret
prodAgent to be discontinued
Geom::Phi< T > phi() const
int closest(std::vector< int > const &vec, int value)
unsigned int tidWheel(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
Sin< T >::type sin(const T &t)
edm::EDGetTokenT< CrossingFrame< PSimHit > > MuCSCHits_Token_
T const * product() const
void fillMuon(const edm::Event &, const edm::EventSetup &)
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)
LocalPoint localPosition() const override
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomToken_
float simHitDistFromWire(const DTLayer *layer, DTWireId wireId, const PSimHit &hit)
edm::InputTag ECalUncalEESrc_
MonitorElement * mehEcalRes[3]
edm::EDGetTokenT< edm::PSimHitContainer > MuDTSimSrc_Token_
MonitorElement * mehSiStripn[19]
const_iterator end(bool update=false) const
edm::InputTag SiStripSrc_
virtual float strip(const LocalPoint &) const =0
void plotResolution(const PSimHit &simHit, const CSCRecHit2D &recHit, const CSCLayer *layer, int chamberType)
T getUntrackedParameter(std::string const &, T const &) const
void analyze(const edm::Event &, const edm::EventSetup &) override
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
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
edm::EDGetTokenT< EBUncalibratedRecHitCollection > ECalUncalEBSrc_Token_
static const int sdPxlBrl
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
edm::EDGetTokenT< CSCRecHit2DCollection > MuCSCSrc_Token_
MonitorElement * mehSiPixelResX[7]
Cos< T >::type cos(const T &t)
unsigned int pxfDisk(const DetId &id) const
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
MonitorElement * mehRPCResX
MonitorElement * mehEcaln[3]
const type * findBestRecHit(const DTLayer *layer, DTWireId wireId, const std::vector< type > &recHits, const float simHitDist)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
const_iterator begin() const
const PSimHit * findMuSimHit(const edm::PSimHitContainer &hits)
Select the SimHit from a muon in a vector of SimHits.
MonitorElement * mehSiPixelResY[7]
MonitorElement * mehSiStripResY[19]
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
edm::EDGetTokenT< RPCRecHitCollection > MuRPCSrc_Token_
void fillHandles(ProductContainer const &productContainer, std::vector< edm::Handle< T >> &handles) const
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const StripGeomDetUnit *stripDet, const BoundPlane &plane)
const_iterator end() const
edm::GetterOfProducts< edm::SortedCollection< HFRecHit, edm::StrictWeakOrdering< HFRecHit > > > HFRecHitgetter_
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
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
unsigned int pxfSide(const DetId &id) const
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EBHits_Token_
const Plane & surface() const
The nominal surface of the GeomDet.
DetId geographicalId() const
constexpr uint32_t rawId() const
get the raw id
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
MonitorElement * mehSiPixeln[7]
static const int sdHcalFwd
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeomToken_
const GeomDetUnit * stereoDet() const
edm::GetterOfProducts< edm::SortedCollection< HBHERecHit, edm::StrictWeakOrdering< HBHERecHit > > > HBHERecHitgetter_
static const int sdHcalBrl
void fillTrk(const edm::Event &, const edm::EventSetup &)
edm::EDGetTokenT< DTRecHitCollection > MuDTSrc_Token_
MonitorElement * mehHcaln[4]
const_iterator find(id_type i, bool update=false) const
edm::EDGetTokenT< EEUncalibratedRecHitCollection > ECalUncalEESrc_Token_
LocalPoint localPosition() const override
static int position[264][3]
void fillECal(const edm::Event &, const edm::EventSetup &)
std::vector< PSimHit > PSimHitContainer
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
unsigned int tibLayer(const DetId &id) const
static const int sdPxlFwd
edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeomToken_
TrackerHitAssociator::Config trackerHitAssociatorConfig_
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())
edm::EDGetTokenT< edm::PSimHitContainer > MuRPCSimSrc_Token_
MonitorElement * mehDtMuonRes
MonitorElement * mehSiStripResX[19]
static const int sdHcalEC
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.
const DTLayer * layer(const DTLayerId &id) const
Return a layer given its id.
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_