52 : outputFile_( ps.getUntrackedParameter<std::
string>(
"outputFile",
"pixelrechitshisto.root" ) )
55 , siPixelRecHitCollectionToken_( consumes<
SiPixelRecHitCollection>( ps.getParameter<edm::InputTag>(
"src" ) ) ) {
80 for (
int i=0;
i<8;
i++) {
81 sprintf(histo,
"Clust_y_size_Module%d",
i+1);
86 for (
int i=0;
i<3;
i++) {
87 sprintf(histo,
"Clust_x_size_Layer%d",
i+1);
92 for (
int i=0;
i<8;
i++) {
94 sprintf(histo,
"Clust_charge_Layer1_Module%d",
i+1);
98 sprintf(histo,
"Clust_charge_Layer2_Module%d",
i+1);
102 sprintf(histo,
"Clust_charge_Layer3_Module%d",
i+1);
108 for (
int i=0;
i<7;
i++) {
110 sprintf(histo,
"Clust_x_size_Disk1_Plaquette%d",
i+1);
114 sprintf(histo,
"Clust_x_size_Disk2_Plaquette%d",
i+1);
118 sprintf(histo,
"Clust_y_size_Disk1_Plaquette%d",
i+1);
122 sprintf(histo,
"Clust_y_size_Disk2_Plaquette%d",
i+1);
126 sprintf(histo,
"Clust_charge_Disk1_Plaquette%d",
i+1);
130 sprintf(histo,
"Clust_charge_Disk2_Plaquette%d",
i+1);
153 for (
int i=0;
i<3;
i++) {
155 sprintf(histo,
"RecHit_XRes_FlippedLadder_Layer%d",
i+1);
159 sprintf(histo,
"RecHit_XRes_UnFlippedLadder_Layer%d",
i+1);
164 for (
int i=0;
i<8;
i++) {
166 sprintf(histo,
"RecHit_YRes_Layer1_Module%d",
i+1);
170 sprintf(histo,
"RecHit_YRes_Layer2_Module%d",
i+1);
174 sprintf(histo,
"RecHit_YRes_Layer3_Module%d",
i+1);
204 for (
int i=0;
i<7;
i++) {
206 sprintf(histo,
"RecHit_XRes_Disk1_Plaquette%d",
i+1);
209 sprintf(histo,
"RecHit_XRes_Disk2_Plaquette%d",
i+1);
213 sprintf(histo,
"RecHit_YRes_Disk1_Plaquette%d",
i+1);
216 sprintf(histo,
"RecHit_YRes_Disk2_Plaquette%d",
i+1);
226 for (
int i=0;
i<3;
i++)
228 sprintf(histo,
"RecHit_XPull_FlippedLadder_Layer%d",
i+1);
231 sprintf(histo,
"RecHit_XPull_UnFlippedLadder_Layer%d",
i+1);
235 for (
int i=0;
i<8;
i++)
237 sprintf(histo,
"RecHit_YPull_Layer1_Module%d",
i+1);
240 sprintf(histo,
"RecHit_YPull_Layer2_Module%d",
i+1);
243 sprintf(histo,
"RecHit_YPull_Layer3_Module%d",
i+1);
252 for (
int i=0;
i<7;
i++)
254 sprintf(histo,
"RecHit_XPull_Disk1_Plaquette%d",
i+1);
256 sprintf(histo,
"RecHit_XPull_Disk2_Plaquette%d",
i+1);
259 sprintf(histo,
"RecHit_YPull_Disk1_Plaquette%d",
i+1);
262 sprintf(histo,
"RecHit_YPull_Disk2_Plaquette%d",
i+1);
280 if ( (
int) e.
id().
event() % 1000 == 0 )
295 for (TrackerGeometry::DetContainer::const_iterator it = geom->dets().begin(); it != geom->dets().end(); it++)
297 DetId detId = ((*it)->geographicalId());
298 unsigned int subid=detId.
subdetId();
300 if (! ((subid==1) || (subid==2)))
continue;
305 if (pixeldet == recHitColl->end())
continue;
310 std::vector<PSimHit> matched;
313 for ( ; pixeliter != pixelrechitRangeIteratorEnd; pixeliter++)
318 if ( !matched.empty() )
320 float closest = 9999.9;
321 std::vector<PSimHit>::const_iterator closestit = matched.begin();
323 float rechit_x = lp.
x();
324 float rechit_y = lp.
y();
327 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 )
351 fillBarrel(*pixeliter, *closestit, detId, theGeomDet,tTopo);
355 fillForward(*pixeliter, *closestit, detId, theGeomDet,tTopo);
367 const float cmtomicron = 10000.0;
373 LocalError lerr = recHit.localPositionError();
374 float lerr_x =
sqrt(lerr.
xx());
375 float lerr_y =
sqrt(lerr.
yy());
381 float sim_xpos = 0.5*(sim_x1 + sim_x2);
382 float res_x = (lp.
x() - sim_xpos)*cmtomicron;
388 float sim_ypos = 0.5*(sim_y1 + sim_y2);
389 float res_y = (lp.
y() - sim_ypos)*cmtomicron;
393 float pull_x = ( lp_x - sim_xpos ) / lerr_x;
394 float pull_y = ( lp_y - sim_ypos ) / lerr_y;
415 for (
unsigned int i=0;
i<3;
i++)
426 for (
unsigned int i=0;
i<3;
i++)
437 SiPixelRecHit::ClusterRef
const& clust = recHit.cluster();
440 for (
unsigned int i=0;
i<8;
i++)
444 int sizeY = (*clust).sizeY();
449 float charge = (*clust).charge();
454 else if (tTopo->
pxbLayer(detId) == 2)
456 float charge = (*clust).charge();
461 else if (tTopo->
pxbLayer(detId) == 3)
463 float charge = (*clust).charge();
470 int sizeX = (*clust).sizeX();
483 const float cmtomicron = 10000.0;
489 LocalError lerr = recHit.localPositionError();
490 float lerr_x =
sqrt(lerr.
xx());
491 float lerr_y =
sqrt(lerr.
yy());
495 float sim_xpos = 0.5*(sim_x1 + sim_x2);
499 float sim_ypos = 0.5*(sim_y1 + sim_y2);
501 float pull_x = ( lp_x - sim_xpos ) / lerr_x;
502 float pull_y = ( lp_y - sim_ypos ) / lerr_y;
509 else if (rows == 160)
518 else if (cols == 156)
522 else if (cols == 208)
526 else if (cols == 260)
531 float res_x = (lp.
x() - sim_xpos)*cmtomicron;
536 float res_y = (lp.
y() - sim_ypos)*cmtomicron;
541 SiPixelRecHit::ClusterRef
const& clust = recHit.cluster();
544 for (
unsigned int i=0;
i<7;
i++)
548 if (tTopo->
pxfDisk(detId) == 1)
550 int sizeX = (*clust).sizeX();
553 int sizeY = (*clust).sizeY();
556 float charge = (*clust).charge();
567 int sizeX = (*clust).sizeX();
570 int sizeY = (*clust).sizeY();
573 float charge = (*clust).charge();
586 if (tTopo->
pxfDisk(detId) == 1)
588 int sizeX = (*clust).sizeX();
591 int sizeY = (*clust).sizeY();
594 float charge = (*clust).charge();
605 int sizeX = (*clust).sizeX();
608 int sizeY = (*clust).sizeY();
611 float charge = (*clust).charge();
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
EventNumber_t event() const
MonitorElement * clustYSizeModule[8]
MonitorElement * clustXSizeDisk1Plaquettes[7]
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
MonitorElement * recHitXPullDisk2Plaquettes[7]
MonitorElement * recHitXResFlippedLadderLayers[3]
MonitorElement * recHitXFullModules
MonitorElement * recHitXResAllF
MonitorElement * recHitXHalfModules
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
virtual int ncolumns() const =0
MonitorElement * recHitYPullAllF
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * recHitXResDisk1Plaquettes[7]
MonitorElement * clustXSizeDisk2Plaquettes[7]
MonitorElement * recHitYResAllB
unsigned int pxfDisk(const DetId &id) const
MonitorElement * recHitYPullDisk2Plaquettes[7]
MonitorElement * clustXSizeLayer[3]
MonitorElement * clustChargeLayer1Modules[8]
virtual int nrows() const =0
MonitorElement * recHitYPlaquetteSize5
unsigned int pxbModule(const DetId &id) const
MonitorElement * recHitXPlaquetteSize1
MonitorElement * recHitXResDisk2Plaquettes[7]
const Plane & surface() const
The nominal surface of the GeomDet.
MonitorElement * recHitXPullNonFlippedLadderLayers[3]
MonitorElement * recHitYPullDisk1Plaquettes[7]
MonitorElement * recHitXPullAllB
MonitorElement * recHitXResAllB
void beginRun(const edm::Run &r, const edm::EventSetup &c)
MonitorElement * clustChargeLayer2Modules[8]
MonitorElement * recHitYResDisk2Plaquettes[7]
Local3DPoint exitPoint() const
Exit point in the local Det frame.
MonitorElement * recHitXResNonFlippedLadderLayers[3]
MonitorElement * recHitYResDisk1Plaquettes[7]
MonitorElement * recHitYResLayer2Modules[8]
MonitorElement * recHitYPlaquetteSize2
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * recHitYPullLayer3Modules[8]
edm::EDGetTokenT< SiPixelRecHitCollection > siPixelRecHitCollectionToken_
MonitorElement * clustYSizeDisk1Plaquettes[7]
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
void fillForward(const SiPixelRecHit &, const PSimHit &, DetId, const PixelGeomDetUnit *, const TrackerTopology *tTopo)
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
virtual const GeomDet * idToDet(DetId) const
unsigned int pxfModule(const DetId &id) const
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * recHitXPlaquetteSize2
unsigned int pxbLayer(const DetId &id) const
Point3DBase< float, LocalTag > Local3DPoint
MonitorElement * clustChargeLayer3Modules[8]
MonitorElement * recHitYResAllF
MonitorElement * recHitYResLayer3Modules[8]
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
T const * product() const
MonitorElement * recHitYPullLayer2Modules[8]
MonitorElement * clustYSizeDisk2Plaquettes[7]
MonitorElement * recHitYPlaquetteSize4
MonitorElement * recHitXPullFlippedLadderLayers[3]
std::vector< PSimHit > associateHit(const TrackingRecHit &thit)
MonitorElement * recHitYResLayer1Modules[8]
MonitorElement * recHitYPullLayer1Modules[8]
MonitorElement * recHitXPullDisk1Plaquettes[7]
SiPixelRecHitsValid(const edm::ParameterSet &conf)
MonitorElement * recHitYPullAllB
MonitorElement * recHitXPullAllF
Local3DPoint entryPoint() const
Entry point in the local Det frame.
MonitorElement * recHitYPlaquetteSize3
MonitorElement * clustChargeDisk1Plaquettes[7]
unsigned int pxfPanel(const DetId &id) const
MonitorElement * clustChargeDisk2Plaquettes[7]
void setCurrentFolder(const std::string &fullpath)
void fillBarrel(const SiPixelRecHit &, const PSimHit &, DetId, const PixelGeomDetUnit *, const TrackerTopology *tTopo)
MonitorElement * recHitYAllModules