|
|
Go to the documentation of this file.
49 : trackerHitAssociatorConfig_(ps, consumesCollector()),
66 for (
int i = 0;
i < 8;
i++) {
67 sprintf(
histo,
"Clust_y_size_Module%d",
i + 1);
72 for (
int i = 0;
i < 3;
i++) {
73 sprintf(
histo,
"Clust_x_size_Layer%d",
i + 1);
78 for (
int i = 0;
i < 8;
i++) {
80 sprintf(
histo,
"Clust_charge_Layer1_Module%d",
i + 1);
84 sprintf(
histo,
"Clust_charge_Layer2_Module%d",
i + 1);
88 sprintf(
histo,
"Clust_charge_Layer3_Module%d",
i + 1);
94 for (
int i = 0;
i < 7;
i++) {
96 sprintf(
histo,
"Clust_x_size_Disk1_Plaquette%d",
i + 1);
100 sprintf(
histo,
"Clust_x_size_Disk2_Plaquette%d",
i + 1);
104 sprintf(
histo,
"Clust_y_size_Disk1_Plaquette%d",
i + 1);
108 sprintf(
histo,
"Clust_y_size_Disk2_Plaquette%d",
i + 1);
112 sprintf(
histo,
"Clust_charge_Disk1_Plaquette%d",
i + 1);
116 sprintf(
histo,
"Clust_charge_Disk2_Plaquette%d",
i + 1);
120 ibooker.
setCurrentFolder(
"TrackerRecHitsV/TrackerRecHits/Pixel/recHitBPIX");
122 recHitBunchB = ibooker.
book1D(
"RecHit_Bunch_Barrel",
"RecHit Bunch Crossing, Barrel", 20, -10., 10.);
125 recHitEventB = ibooker.
book1D(
"RecHit_Event_Barrel",
"RecHit Event (in-time bunch), Barrel", 100, 0., 100.);
128 recHitXResAllB = ibooker.
book1D(
"RecHit_xres_b_All",
"RecHit X Res All Modules in Barrel", 100, -200., 200.);
131 recHitYResAllB = ibooker.
book1D(
"RecHit_yres_b_All",
"RecHit Y Res All Modules in Barrel", 100, -200., 200.);
134 recHitXFullModules = ibooker.
book1D(
"RecHit_x_FullModules",
"RecHit X distribution for full modules", 100, -2., 2.);
137 recHitXHalfModules = ibooker.
book1D(
"RecHit_x_HalfModules",
"RecHit X distribution for half modules", 100, -1., 1.);
140 recHitYAllModules = ibooker.
book1D(
"RecHit_y_AllModules",
"RecHit Y distribution for all modules", 100, -4., 4.);
143 for (
int i = 0;
i < 3;
i++) {
145 sprintf(
histo,
"RecHit_NsimHit_Layer%d",
i + 1);
149 sprintf(
histo,
"RecHit_XRes_FlippedLadder_Layer%d",
i + 1);
153 sprintf(
histo,
"RecHit_XRes_UnFlippedLadder_Layer%d",
i + 1);
155 ibooker.
book1D(
histo,
"RecHit XRes NonFlipped Ladders by Layer", 100, -200., 200.);
159 for (
int i = 0;
i < 8;
i++) {
161 sprintf(
histo,
"RecHit_YRes_Layer1_Module%d",
i + 1);
165 sprintf(
histo,
"RecHit_YRes_Layer2_Module%d",
i + 1);
169 sprintf(
histo,
"RecHit_YRes_Layer3_Module%d",
i + 1);
173 ibooker.
setCurrentFolder(
"TrackerRecHitsV/TrackerRecHits/Pixel/recHitFPIX");
175 recHitBunchF = ibooker.
book1D(
"RecHit_Bunch_Forward",
"RecHit Bunch Crossing, Forward", 20, -10., 10.);
178 recHitEventF = ibooker.
book1D(
"RecHit_Event_Forward",
"RecHit Event (in-time bunch), Forward", 100, 0., 100.);
185 recHitXResAllF = ibooker.
book1D(
"RecHit_xres_f_All",
"RecHit X Res All in Forward", 100, -200., 200.);
188 recHitYResAllF = ibooker.
book1D(
"RecHit_yres_f_All",
"RecHit Y Res All in Forward", 100, -200., 200.);
192 ibooker.
book1D(
"RecHit_x_Plaquette_xsize1",
"RecHit X Distribution for plaquette x-size1", 100, -2., 2.);
196 ibooker.
book1D(
"RecHit_x_Plaquette_xsize2",
"RecHit X Distribution for plaquette x-size2", 100, -2., 2.);
200 ibooker.
book1D(
"RecHit_y_Plaquette_ysize2",
"RecHit Y Distribution for plaquette y-size2", 100, -4., 4.);
204 ibooker.
book1D(
"RecHit_y_Plaquette_ysize3",
"RecHit Y Distribution for plaquette y-size3", 100, -4., 4.);
208 ibooker.
book1D(
"RecHit_y_Plaquette_ysize4",
"RecHit Y Distribution for plaquette y-size4", 100, -4., 4.);
212 ibooker.
book1D(
"RecHit_y_Plaquette_ysize5",
"RecHit Y Distribution for plaquette y-size5", 100, -4., 4.);
215 for (
int i = 0;
i < 7;
i++) {
217 sprintf(
histo,
"RecHit_XRes_Disk1_Plaquette%d",
i + 1);
220 sprintf(
histo,
"RecHit_XRes_Disk2_Plaquette%d",
i + 1);
224 sprintf(
histo,
"RecHit_YRes_Disk1_Plaquette%d",
i + 1);
227 sprintf(
histo,
"RecHit_YRes_Disk2_Plaquette%d",
i + 1);
231 ibooker.
setCurrentFolder(
"TrackerRecHitsV/TrackerRecHits/Pixel/recHitPullsBPIX");
232 recHitXPullAllB = ibooker.
book1D(
"RecHit_xres_b_All",
"RecHit X Pull All Modules in Barrel", 100, -10.0, 10.0);
233 recHitYPullAllB = ibooker.
book1D(
"RecHit_yres_b_All",
"RecHit Y Pull All Modules in Barrel", 100, -10.0, 10.0);
235 for (
int i = 0;
i < 3;
i++) {
236 sprintf(
histo,
"RecHit_XPull_FlippedLadder_Layer%d",
i + 1);
238 ibooker.
book1D(
histo,
"RecHit XPull Flipped Ladders by Layer", 100, -10.0, 10.0);
240 sprintf(
histo,
"RecHit_XPull_UnFlippedLadder_Layer%d",
i + 1);
242 ibooker.
book1D(
histo,
"RecHit XPull NonFlipped Ladders by Layer", 100, -10.0, 10.0);
245 for (
int i = 0;
i < 8;
i++) {
246 sprintf(
histo,
"RecHit_YPull_Layer1_Module%d",
i + 1);
249 sprintf(
histo,
"RecHit_YPull_Layer2_Module%d",
i + 1);
252 sprintf(
histo,
"RecHit_YPull_Layer3_Module%d",
i + 1);
256 ibooker.
setCurrentFolder(
"TrackerRecHitsV/TrackerRecHits/Pixel/recHitPullsFPIX");
257 recHitXPullAllF = ibooker.
book1D(
"RecHit_XPull_f_All",
"RecHit X Pull All in Forward", 100, -10.0, 10.0);
259 recHitYPullAllF = ibooker.
book1D(
"RecHit_YPull_f_All",
"RecHit Y Pull All in Forward", 100, -10.0, 10.0);
261 for (
int i = 0;
i < 7;
i++) {
262 sprintf(
histo,
"RecHit_XPull_Disk1_Plaquette%d",
i + 1);
264 sprintf(
histo,
"RecHit_XPull_Disk2_Plaquette%d",
i + 1);
267 sprintf(
histo,
"RecHit_YPull_Disk1_Plaquette%d",
i + 1);
270 sprintf(
histo,
"RecHit_YPull_Disk2_Plaquette%d",
i + 1);
281 edm::LogInfo(
"EventInfo") <<
" Run = " <<
e.id().run() <<
" Event = " <<
e.id().event();
282 if (
e.id().event() % 1000 == 0)
283 std::cout <<
" Run = " <<
e.id().run() <<
" Event = " <<
e.id().event() << std::endl;
297 for (TrackerGeometry::DetContainer::const_iterator it =
geom->dets().begin(); it !=
geom->dets().end(); it++) {
298 DetId detId = ((*it)->geographicalId());
299 unsigned int subid = detId.
subdetId();
301 if (!((subid == 1) || (subid == 2)))
307 if (pixeldet == recHitColl->
end())
316 for (; pixeliter != pixelrechitRangeIteratorEnd; pixeliter++) {
321 float closest = 9999.9;
322 std::vector<PSimHit>::const_iterator closestit =
matched.begin();
324 float rechit_x = lp.
x();
325 float rechit_y = lp.
y();
328 for (std::vector<PSimHit>::const_iterator
m =
matched.begin();
m <
matched.end();
m++) {
329 float sim_x1 = (*m).entryPoint().x();
330 float sim_x2 = (*m).exitPoint().x();
331 float sim_xpos = 0.5 * (sim_x1 + sim_x2);
333 float sim_y1 = (*m).entryPoint().y();
334 float sim_y2 = (*m).exitPoint().y();
335 float sim_ypos = 0.5 * (sim_y1 + sim_y2);
337 float x_res = fabs(sim_xpos - rechit_x);
338 float y_res = fabs(sim_ypos - rechit_y);
340 float dist =
sqrt(x_res * x_res + y_res * y_res);
342 if (dist < closest) {
349 fillBarrel(*pixeliter, *closestit, detId, theGeomDet, tTopo);
352 fillForward(*pixeliter, *closestit, detId, theGeomDet, tTopo);
359 for (
unsigned int i = 0;
i < 3;
i++)
364 if (tTopo->
pxfDisk(detId) == 1)
380 int bunch =
simHit.eventId().bunchCrossing();
381 int event =
simHit.eventId().event();
392 float lerr_x =
sqrt(lerr.
xx());
393 float lerr_y =
sqrt(lerr.
yy());
397 float sim_x1 =
simHit.entryPoint().x();
398 float sim_x2 =
simHit.exitPoint().x();
399 float sim_xpos = 0.5 * (sim_x1 + sim_x2);
404 float sim_y1 =
simHit.entryPoint().y();
405 float sim_y2 =
simHit.exitPoint().y();
406 float sim_ypos = 0.5 * (sim_y1 + sim_y2);
411 float pull_x = (lp_x - sim_xpos) / lerr_x;
412 float pull_y = (lp_y - sim_ypos) / lerr_y;
421 }
else if (
rows == 80) {
429 for (
unsigned int i = 0;
i < 3;
i++) {
436 for (
unsigned int i = 0;
i < 3;
i++) {
448 for (
unsigned int i = 0;
i < 8;
i++) {
450 int sizeY = (*clust).sizeY();
454 float charge = (*clust).charge();
458 }
else if (tTopo->
pxbLayer(detId) == 2) {
459 float charge = (*clust).charge();
463 }
else if (tTopo->
pxbLayer(detId) == 3) {
464 float charge = (*clust).charge();
471 int sizeX = (*clust).sizeX();
490 int bunch =
simHit.eventId().bunchCrossing();
491 int event =
simHit.eventId().event();
502 float lerr_x =
sqrt(lerr.
xx());
503 float lerr_y =
sqrt(lerr.
yy());
505 float sim_x1 =
simHit.entryPoint().x();
506 float sim_x2 =
simHit.exitPoint().x();
507 float sim_xpos = 0.5 * (sim_x1 + sim_x2);
509 float sim_y1 =
simHit.entryPoint().y();
510 float sim_y2 =
simHit.exitPoint().y();
511 float sim_ypos = 0.5 * (sim_y1 + sim_y2);
513 float pull_x = (lp_x - sim_xpos) / lerr_x;
514 float pull_y = (lp_y - sim_ypos) / lerr_y;
518 }
else if (
rows == 160) {
524 }
else if (cols == 156) {
526 }
else if (cols == 208) {
528 }
else if (cols == 260) {
545 for (
unsigned int i = 0;
i < 7;
i++) {
547 if (tTopo->
pxfDisk(detId) == 1) {
548 int sizeX = (*clust).sizeX();
551 int sizeY = (*clust).sizeY();
554 float charge = (*clust).charge();
563 int sizeX = (*clust).sizeX();
566 int sizeY = (*clust).sizeY();
569 float charge = (*clust).charge();
581 if (tTopo->
pxfDisk(detId) == 1) {
582 int sizeX = (*clust).sizeX();
585 int sizeY = (*clust).sizeY();
588 float charge = (*clust).charge();
597 int sizeX = (*clust).sizeX();
600 int sizeY = (*clust).sizeY();
603 float charge = (*clust).charge();
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es) override
const TrackerGeomDet * idToDet(DetId) const override
MonitorElement * clustYSizeDisk1Plaquettes[7]
T const * product() const
MonitorElement * recHitXPullDisk1Plaquettes[7]
MonitorElement * recHitXPullAllB
MonitorElement * recHitBunchB
MonitorElement * clustChargeLayer2Modules[8]
void fillBarrel(const SiPixelRecHit &, const PSimHit &, DetId, const PixelGeomDetUnit *, const TrackerTopology *tTopo)
MonitorElement * recHitYResLayer2Modules[8]
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * recHitXPullDisk2Plaquettes[7]
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
MonitorElement * recHitXResAllB
MonitorElement * clustYSizeDisk2Plaquettes[7]
MonitorElement * recHitYPullLayer2Modules[8]
Log< level::Info, false > LogInfo
MonitorElement * recHitXPullAllF
MonitorElement * clustChargeDisk1Plaquettes[7]
MonitorElement * clustChargeDisk2Plaquettes[7]
MonitorElement * recHitXPullFlippedLadderLayers[3]
MonitorElement * recHitYAllModules
unsigned int pxbLayer(const DetId &id) const
unsigned int pxfPanel(const DetId &id) const
MonitorElement * recHitYPullLayer1Modules[8]
const Plane & surface() const
The nominal surface of the GeomDet.
const_iterator find(id_type i, bool update=false) const
MonitorElement * recHitYPullLayer3Modules[8]
MonitorElement * recHitXResFlippedLadderLayers[3]
MonitorElement * recHitNsimHitDisk1
#define DEFINE_FWK_MODULE(type)
MonitorElement * recHitYResLayer3Modules[8]
SiPixelRecHitsValid(const edm::ParameterSet &conf)
void fillForward(const SiPixelRecHit &, const PSimHit &, DetId, const PixelGeomDetUnit *, const TrackerTopology *tTopo)
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
MonitorElement * recHitXPlaquetteSize1
virtual int ncolumns() const =0
MonitorElement * recHitYPlaquetteSize3
MonitorElement * recHitEventF
MonitorElement * recHitYPlaquetteSize4
MonitorElement * recHitNsimHitDisk2
MonitorElement * clustXSizeDisk2Plaquettes[7]
MonitorElement * recHitYResAllB
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
MonitorElement * recHitYPullDisk2Plaquettes[7]
TrackerHitAssociator::Config trackerHitAssociatorConfig_
MonitorElement * recHitYResLayer1Modules[8]
MonitorElement * clustYSizeModule[8]
MonitorElement * clustXSizeDisk1Plaquettes[7]
MonitorElement * recHitXResAllF
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
MonitorElement * recHitYPullAllB
MonitorElement * recHitXPullNonFlippedLadderLayers[3]
unsigned int pxfModule(const DetId &id) const
unsigned int pxfDisk(const DetId &id) const
MonitorElement * recHitXResDisk1Plaquettes[7]
MonitorElement * recHitBunchF
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * recHitYPlaquetteSize5
MonitorElement * clustXSizeLayer[3]
MonitorElement * recHitYResDisk2Plaquettes[7]
MonitorElement * recHitEventB
MonitorElement * recHitXPlaquetteSize2
MonitorElement * recHitYPlaquetteSize2
MonitorElement * recHitXFullModules
~SiPixelRecHitsValid() override
void analyze(const edm::Event &e, const edm::EventSetup &c) override
unsigned int pxbModule(const DetId &id) const
MonitorElement * recHitXHalfModules
const_iterator end(bool update=false) const
MonitorElement * recHitYPullAllF
MonitorElement * recHitYPullDisk1Plaquettes[7]
MonitorElement * recHitNsimHitLayer[3]
MonitorElement * clustChargeLayer1Modules[8]
virtual int nrows() const =0
MonitorElement * recHitXResNonFlippedLadderLayers[3]
MonitorElement * recHitYResDisk1Plaquettes[7]
MonitorElement * clustChargeLayer3Modules[8]
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
edm::EDGetTokenT< SiPixelRecHitCollection > siPixelRecHitCollectionToken_
Point3DBase< float, LocalTag > Local3DPoint
MonitorElement * recHitXResDisk2Plaquettes[7]
MonitorElement * recHitYResAllF