CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
SiPixelRecHitsValid Class Reference

#include <SiPixelRecHitsValid.h>

Inheritance diagram for SiPixelRecHitsValid:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 SiPixelRecHitsValid (const edm::ParameterSet &conf)
 
 ~SiPixelRecHitsValid ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Member Functions

virtual void analyze (const edm::Event &e, const edm::EventSetup &c)
 
void beginJob ()
 
void bookHistograms (DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Member Functions

void fillBarrel (const SiPixelRecHit &, const PSimHit &, DetId, const PixelGeomDetUnit *, const TrackerTopology *tTopo)
 
void fillForward (const SiPixelRecHit &, const PSimHit &, DetId, const PixelGeomDetUnit *, const TrackerTopology *tTopo)
 

Private Attributes

MonitorElementclustChargeDisk1Plaquettes [7]
 
MonitorElementclustChargeDisk2Plaquettes [7]
 
MonitorElementclustChargeLayer1Modules [8]
 
MonitorElementclustChargeLayer2Modules [8]
 
MonitorElementclustChargeLayer3Modules [8]
 
MonitorElementclustXSizeDisk1Plaquettes [7]
 
MonitorElementclustXSizeDisk2Plaquettes [7]
 
MonitorElementclustXSizeLayer [3]
 
MonitorElementclustYSizeDisk1Plaquettes [7]
 
MonitorElementclustYSizeDisk2Plaquettes [7]
 
MonitorElementclustYSizeModule [8]
 
MonitorElementrecHitBunchB
 
MonitorElementrecHitBunchF
 
MonitorElementrecHitEventB
 
MonitorElementrecHitEventF
 
MonitorElementrecHitNsimHitDisk1
 
MonitorElementrecHitNsimHitDisk2
 
MonitorElementrecHitNsimHitLayer [3]
 
MonitorElementrecHitXFullModules
 
MonitorElementrecHitXHalfModules
 
MonitorElementrecHitXPlaquetteSize1
 
MonitorElementrecHitXPlaquetteSize2
 
MonitorElementrecHitXPullAllB
 
MonitorElementrecHitXPullAllF
 
MonitorElementrecHitXPullDisk1Plaquettes [7]
 
MonitorElementrecHitXPullDisk2Plaquettes [7]
 
MonitorElementrecHitXPullFlippedLadderLayers [3]
 
MonitorElementrecHitXPullNonFlippedLadderLayers [3]
 
MonitorElementrecHitXResAllB
 
MonitorElementrecHitXResAllF
 
MonitorElementrecHitXResDisk1Plaquettes [7]
 
MonitorElementrecHitXResDisk2Plaquettes [7]
 
MonitorElementrecHitXResFlippedLadderLayers [3]
 
MonitorElementrecHitXResNonFlippedLadderLayers [3]
 
MonitorElementrecHitYAllModules
 
MonitorElementrecHitYPlaquetteSize2
 
MonitorElementrecHitYPlaquetteSize3
 
MonitorElementrecHitYPlaquetteSize4
 
MonitorElementrecHitYPlaquetteSize5
 
MonitorElementrecHitYPullAllB
 
MonitorElementrecHitYPullAllF
 
MonitorElementrecHitYPullDisk1Plaquettes [7]
 
MonitorElementrecHitYPullDisk2Plaquettes [7]
 
MonitorElementrecHitYPullLayer1Modules [8]
 
MonitorElementrecHitYPullLayer2Modules [8]
 
MonitorElementrecHitYPullLayer3Modules [8]
 
MonitorElementrecHitYResAllB
 
MonitorElementrecHitYResAllF
 
MonitorElementrecHitYResDisk1Plaquettes [7]
 
MonitorElementrecHitYResDisk2Plaquettes [7]
 
MonitorElementrecHitYResLayer1Modules [8]
 
MonitorElementrecHitYResLayer2Modules [8]
 
MonitorElementrecHitYResLayer3Modules [8]
 
edm::EDGetTokenT
< SiPixelRecHitCollection
siPixelRecHitCollectionToken_
 
TrackerHitAssociator::Config trackerHitAssociatorConfig_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Detailed Description

File: SiPixelRecHitsValid.h

Author
Jason Shaev, JHU Created: 6/7/06

Definition at line 28 of file SiPixelRecHitsValid.h.

Constructor & Destructor Documentation

SiPixelRecHitsValid::SiPixelRecHitsValid ( const edm::ParameterSet conf)

Definition at line 49 of file SiPixelRecHitsValid.cc.

51  , siPixelRecHitCollectionToken_( consumes<SiPixelRecHitCollection>( ps.getParameter<edm::InputTag>( "src" ) ) ) {
52 
53 }
TrackerHitAssociator::Config trackerHitAssociatorConfig_
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
edm::EDGetTokenT< SiPixelRecHitCollection > siPixelRecHitCollectionToken_
SiPixelRecHitsValid::~SiPixelRecHitsValid ( )

Definition at line 55 of file SiPixelRecHitsValid.cc.

55  {
56 }

Member Function Documentation

void SiPixelRecHitsValid::analyze ( const edm::Event e,
const edm::EventSetup c 
)
protectedvirtual

Implements edm::stream::EDAnalyzerBase.

Definition at line 280 of file SiPixelRecHitsValid.cc.

References TrackerHitAssociator::associateHit(), edmNew::DetSet< T >::begin(), gather_cfg::cout, edmNew::DetSet< T >::end(), edm::EventID::event(), MonitorElement::Fill(), HcalObjRepresent::Fill(), fillBarrel(), fillForward(), relativeConstraints::geom, edm::EventSetup::get(), edm::Event::getByToken(), i, edm::EventBase::id(), TrackerGeometry::idToDet(), contentValuesFiles::m, edm::ESHandle< class >::product(), TrackerTopology::pxbLayer(), TrackerTopology::pxfDisk(), recHitNsimHitDisk1, recHitNsimHitDisk2, recHitNsimHitLayer, edm::EventID::run(), siPixelRecHitCollectionToken_, mathSSE::sqrt(), DetId::subdetId(), trackerHitAssociatorConfig_, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

281 {
282 
283  //Retrieve tracker topology from geometry
285  es.get<TrackerTopologyRcd>().get(tTopoHand);
286  const TrackerTopology *tTopo=tTopoHand.product();
287 
288  edm::LogInfo("EventInfo") << " Run = " << e.id().run() << " Event = " << e.id().event();
289  if (e.id().event() % 1000 == 0)
290  std::cout << " Run = " << e.id().run() << " Event = " << e.id().event() << std::endl;
291 
292  //Get RecHits
294  e.getByToken( siPixelRecHitCollectionToken_, recHitColl );
295 
296  //Get event setup
298  es.get<TrackerDigiGeometryRecord>().get(geom);
299  const TrackerGeometry& theTracker(*geom);
300 
302 
303  //iterate over detunits
304  for (TrackerGeometry::DetContainer::const_iterator it = geom->dets().begin(); it != geom->dets().end(); it++)
305  {
306  DetId detId = ((*it)->geographicalId());
307  unsigned int subid=detId.subdetId();
308 
309  if (! ((subid==1) || (subid==2))) continue;
310 
311  const PixelGeomDetUnit * theGeomDet = dynamic_cast<const PixelGeomDetUnit*>(theTracker.idToDet(detId) );
312 
313  SiPixelRecHitCollection::const_iterator pixeldet = recHitColl->find(detId);
314  if (pixeldet == recHitColl->end()) continue;
315  SiPixelRecHitCollection::DetSet pixelrechitRange = *pixeldet;
316  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorBegin = pixelrechitRange.begin();
317  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorEnd = pixelrechitRange.end();
318  SiPixelRecHitCollection::DetSet::const_iterator pixeliter = pixelrechitRangeIteratorBegin;
319  std::vector<PSimHit> matched;
320 
321  //----Loop over rechits for this detId
322  for ( ; pixeliter != pixelrechitRangeIteratorEnd; pixeliter++)
323  {
324  matched.clear();
325  matched = associate.associateHit(*pixeliter);
326 
327  if ( !matched.empty() )
328  {
329  float closest = 9999.9;
330  std::vector<PSimHit>::const_iterator closestit = matched.begin();
331  LocalPoint lp = pixeliter->localPosition();
332  float rechit_x = lp.x();
333  float rechit_y = lp.y();
334 
335  //loop over sim hits and fill closet
336  for (std::vector<PSimHit>::const_iterator m = matched.begin(); m<matched.end(); m++)
337  {
338  float sim_x1 = (*m).entryPoint().x();
339  float sim_x2 = (*m).exitPoint().x();
340  float sim_xpos = 0.5*(sim_x1+sim_x2);
341 
342  float sim_y1 = (*m).entryPoint().y();
343  float sim_y2 = (*m).exitPoint().y();
344  float sim_ypos = 0.5*(sim_y1+sim_y2);
345 
346  float x_res = fabs(sim_xpos - rechit_x);
347  float y_res = fabs(sim_ypos - rechit_y);
348 
349  float dist = sqrt(x_res*x_res + y_res*y_res);
350 
351  if ( dist < closest )
352  {
353  closest = dist;
354  closestit = m;
355  }
356  } // end sim hit loop
357 
358  if (subid==1)
359  { //<----------barrel
360  fillBarrel(*pixeliter, *closestit, detId, theGeomDet,tTopo);
361  } // end barrel
362  if (subid==2)
363  { // <-------forward
364  fillForward(*pixeliter, *closestit, detId, theGeomDet,tTopo);
365  }
366 
367  } // end matched emtpy
368 
369  int NsimHit = matched.size();
370  if (subid==1)
371  { //<----------barrel
372  for (unsigned int i=0; i<3; i++)
373  if (tTopo->pxbLayer(detId) == i+1)
374  recHitNsimHitLayer[i]->Fill(NsimHit);
375  } // end barrel
376  if (subid==2)
377  { // <-------forward
378  if (tTopo->pxfDisk(detId) == 1)
379  recHitNsimHitDisk1->Fill(NsimHit);
380  else
381  recHitNsimHitDisk2->Fill(NsimHit);
382  }
383  } // <-----end rechit loop
384  } // <------ end detunit loop
385 }
RunNumber_t run() const
Definition: EventID.h:39
EventNumber_t event() const
Definition: EventID.h:41
int i
Definition: DBlmapReader.cc:9
MonitorElement * recHitNsimHitDisk1
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
unsigned int pxfDisk(const DetId &id) const
MonitorElement * recHitNsimHitLayer[3]
T y() const
Definition: PV3DBase.h:63
void Fill(long long x)
TrackerHitAssociator::Config trackerHitAssociatorConfig_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
T sqrt(T t)
Definition: SSEVec.h:48
edm::EDGetTokenT< SiPixelRecHitCollection > siPixelRecHitCollectionToken_
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&#39;s numbering enum) ...
Definition: DetId.h:37
unsigned int pxbLayer(const DetId &id) const
Definition: DetId.h:18
T const * product() const
Definition: ESHandle.h:86
edm::EventID id() const
Definition: EventBase.h:60
iterator end()
Definition: DetSetNew.h:70
MonitorElement * recHitNsimHitDisk2
tuple cout
Definition: gather_cfg.py:121
T x() const
Definition: PV3DBase.h:62
void fillBarrel(const SiPixelRecHit &, const PSimHit &, DetId, const PixelGeomDetUnit *, const TrackerTopology *tTopo)
iterator begin()
Definition: DetSetNew.h:67
void SiPixelRecHitsValid::beginJob ( void  )
protected

Definition at line 58 of file SiPixelRecHitsValid.cc.

58  {
59 }
void SiPixelRecHitsValid::bookHistograms ( DQMStore::IBooker ibooker,
const edm::Run run,
const edm::EventSetup es 
)
protectedvirtual

Implements DQMEDAnalyzer.

Definition at line 61 of file SiPixelRecHitsValid.cc.

References DQMStore::IBooker::book1D(), clustChargeDisk1Plaquettes, clustChargeDisk2Plaquettes, clustChargeLayer1Modules, clustChargeLayer2Modules, clustChargeLayer3Modules, clustXSizeDisk1Plaquettes, clustXSizeDisk2Plaquettes, clustXSizeLayer, clustYSizeDisk1Plaquettes, clustYSizeDisk2Plaquettes, clustYSizeModule, timingPdfMaker::histo, i, recHitBunchB, recHitBunchF, recHitEventB, recHitEventF, recHitNsimHitDisk1, recHitNsimHitDisk2, recHitNsimHitLayer, recHitXFullModules, recHitXHalfModules, recHitXPlaquetteSize1, recHitXPlaquetteSize2, recHitXPullAllB, recHitXPullAllF, recHitXPullDisk1Plaquettes, recHitXPullDisk2Plaquettes, recHitXPullFlippedLadderLayers, recHitXPullNonFlippedLadderLayers, recHitXResAllB, recHitXResAllF, recHitXResDisk1Plaquettes, recHitXResDisk2Plaquettes, recHitXResFlippedLadderLayers, recHitXResNonFlippedLadderLayers, recHitYAllModules, recHitYPlaquetteSize2, recHitYPlaquetteSize3, recHitYPlaquetteSize4, recHitYPlaquetteSize5, recHitYPullAllB, recHitYPullAllF, recHitYPullDisk1Plaquettes, recHitYPullDisk2Plaquettes, recHitYPullLayer1Modules, recHitYPullLayer2Modules, recHitYPullLayer3Modules, recHitYResAllB, recHitYResAllF, recHitYResDisk1Plaquettes, recHitYResDisk2Plaquettes, recHitYResLayer1Modules, recHitYResLayer2Modules, recHitYResLayer3Modules, and DQMStore::IBooker::setCurrentFolder().

61  {
62  ibooker.setCurrentFolder("TrackerRecHitsV/TrackerRecHits/Pixel/clustBPIX");
63 
64  Char_t histo[200];
65 
66  // ---------------------------------------------------------------
67  // All histograms that depend on plaquette number have 7 indexes.
68  // The first 4 (0-3) correspond to Panel 1 plaquettes 1-4.
69  // The last 3 (4-6) correspond to Panel 2 plaquettes 1-3.
70  // ---------------------------------------------------------------
71 
72  //Cluster y-size by module number for barrel
73  for (int i=0; i<8; i++) {
74  sprintf(histo, "Clust_y_size_Module%d", i+1);
75  clustYSizeModule[i] = ibooker.book1D(histo,"Cluster y-size by Module", 20, 0.5, 20.5);
76  } // end for
77 
78  //Cluster x-size by layer for barrel
79  for (int i=0; i<3; i++) {
80  sprintf(histo, "Clust_x_size_Layer%d", i+1);
81  clustXSizeLayer[i] = ibooker.book1D(histo,"Cluster x-size by Layer", 20, 0.5, 20.5);
82  } // end for
83 
84  //Cluster charge by module for 3 layers of barrel
85  for (int i=0; i<8; i++) {
86  //Cluster charge by module for Layer1
87  sprintf(histo, "Clust_charge_Layer1_Module%d", i+1);
88  clustChargeLayer1Modules[i] = ibooker.book1D(histo, "Cluster charge Layer 1 by Module", 50, 0., 200000.);
89 
90  //Cluster charge by module for Layer2
91  sprintf(histo, "Clust_charge_Layer2_Module%d", i+1);
92  clustChargeLayer2Modules[i] = ibooker.book1D(histo, "Cluster charge Layer 2 by Module", 50, 0., 200000.);
93 
94  //Cluster charge by module for Layer3
95  sprintf(histo, "Clust_charge_Layer3_Module%d", i+1);
96  clustChargeLayer3Modules[i] = ibooker.book1D(histo, "Cluster charge Layer 3 by Module",50, 0., 200000.);
97  } // end for
98 
99  ibooker.setCurrentFolder("TrackerRecHitsV/TrackerRecHits/Pixel/clustFPIX");
100  //Cluster x-size, y-size, and charge by plaquette for Disks in Forward
101  for (int i=0; i<7; i++) {
102  //Cluster x-size for Disk1 by Plaquette
103  sprintf(histo, "Clust_x_size_Disk1_Plaquette%d", i+1);
104  clustXSizeDisk1Plaquettes[i] = ibooker.book1D(histo, "Cluster X-size for Disk1 by Plaquette", 20, 0.5, 20.5);
105 
106  //Cluster x-size for Disk2 by Plaquette
107  sprintf(histo, "Clust_x_size_Disk2_Plaquette%d", i+1);
108  clustXSizeDisk2Plaquettes[i] = ibooker.book1D(histo, "Cluster X-size for Disk2 by Plaquette", 20, 0.5, 20.5);
109 
110  //Cluster y-size for Disk1 by Plaquette
111  sprintf(histo, "Clust_y_size_Disk1_Plaquette%d", i+1);
112  clustYSizeDisk1Plaquettes[i] = ibooker.book1D(histo, "Cluster Y-size for Disk1 by Plaquette", 20, 0.5, 20.5);
113 
114  //Cluster y-size for Disk2 by Plaquette
115  sprintf(histo, "Clust_y_size_Disk2_Plaquette%d", i+1);
116  clustYSizeDisk2Plaquettes[i] = ibooker.book1D(histo, "Cluster Y-size for Disk2 by Plaquette", 20, 0.5, 20.5);
117 
118  //Cluster charge for Disk1 by Plaquette
119  sprintf(histo, "Clust_charge_Disk1_Plaquette%d", i+1);
120  clustChargeDisk1Plaquettes[i] = ibooker.book1D(histo, "Cluster charge for Disk1 by Plaquette", 50, 0., 200000.);
121 
122  //Cluster charge for Disk2 by Plaquette
123  sprintf(histo, "Clust_charge_Disk2_Plaquette%d", i+1);
124  clustChargeDisk2Plaquettes[i] = ibooker.book1D(histo, "Cluster charge for Disk2 by Plaquette", 50, 0., 200000.);
125  } // end for
126 
127 
128 
129  ibooker.setCurrentFolder("TrackerRecHitsV/TrackerRecHits/Pixel/recHitBPIX");
130  //RecHit Bunch crossing all barrel hits
131  recHitBunchB = ibooker.book1D("RecHit_Bunch_Barrel", "RecHit Bunch Crossing, Barrel", 20, -10., 10.);
132 
133  //RecHit Event, in-time bunch, all barrel hits
134  recHitEventB = ibooker.book1D("RecHit_Event_Barrel", "RecHit Event (in-time bunch), Barrel", 100, 0., 100.);
135 
136  //RecHit X Resolution all barrel hits
137  recHitXResAllB = ibooker.book1D("RecHit_xres_b_All","RecHit X Res All Modules in Barrel", 100, -200., 200.);
138 
139  //RecHit Y Resolution all barrel hits
140  recHitYResAllB = ibooker.book1D("RecHit_yres_b_All","RecHit Y Res All Modules in Barrel", 100, -200., 200.);
141 
142  //RecHit X distribution for full modules for barrel
143  recHitXFullModules = ibooker.book1D("RecHit_x_FullModules", "RecHit X distribution for full modules", 100,-2., 2.);
144 
145  //RecHit X distribution for half modules for barrel
146  recHitXHalfModules = ibooker.book1D("RecHit_x_HalfModules", "RecHit X distribution for half modules", 100, -1., 1.);
147 
148  //RecHit Y distribution all modules for barrel
149  recHitYAllModules = ibooker.book1D("RecHit_y_AllModules", "RecHit Y distribution for all modules", 100, -4., 4.);
150 
151  //RecHit X resolution for flipped and unflipped ladders by layer for barrel
152  for (int i=0; i<3; i++) {
153  //RecHit no. of matched simHits all ladders by layer
154  sprintf(histo, "RecHit_NsimHit_Layer%d", i+1);
155  recHitNsimHitLayer[i] = ibooker.book1D(histo, "RecHit Number of simHits by Layer", 30, 0., 30.);
156 
157  //RecHit X resolution for flipped ladders by layer
158  sprintf(histo, "RecHit_XRes_FlippedLadder_Layer%d", i+1);
159  recHitXResFlippedLadderLayers[i] = ibooker.book1D(histo, "RecHit XRes Flipped Ladders by Layer", 100, -200., 200.);
160 
161  //RecHit X resolution for unflipped ladders by layer
162  sprintf(histo, "RecHit_XRes_UnFlippedLadder_Layer%d", i+1);
163  recHitXResNonFlippedLadderLayers[i] = ibooker.book1D(histo, "RecHit XRes NonFlipped Ladders by Layer", 100, -200., 200.);
164  } // end for
165 
166  //RecHit Y resolutions for layers by module for barrel
167  for (int i=0; i<8; i++) {
168  //Rec Hit Y resolution by module for Layer1
169  sprintf(histo, "RecHit_YRes_Layer1_Module%d", i+1);
170  recHitYResLayer1Modules[i] = ibooker.book1D(histo, "RecHit YRes Layer1 by module", 100, -200., 200.);
171 
172  //RecHit Y resolution by module for Layer2
173  sprintf(histo, "RecHit_YRes_Layer2_Module%d", i+1);
174  recHitYResLayer2Modules[i] = ibooker.book1D(histo, "RecHit YRes Layer2 by module", 100, -200., 200.);
175 
176  //RecHit Y resolution by module for Layer3
177  sprintf(histo, "RecHit_YRes_Layer3_Module%d", i+1);
178  recHitYResLayer3Modules[i] = ibooker.book1D(histo, "RecHit YRes Layer3 by module", 100, -200., 200.);
179  } // end for
180 
181  ibooker.setCurrentFolder("TrackerRecHitsV/TrackerRecHits/Pixel/recHitFPIX");
182  //RecHit Bunch crossing all plaquettes
183  recHitBunchF = ibooker.book1D("RecHit_Bunch_Forward", "RecHit Bunch Crossing, Forward", 20, -10., 10.);
184 
185  //RecHit Event, in-time bunch, all plaquettes
186  recHitEventF = ibooker.book1D("RecHit_Event_Forward", "RecHit Event (in-time bunch), Forward", 100, 0., 100.);
187 
188  //RecHit No. of simHits, by disk
189  recHitNsimHitDisk1 = ibooker.book1D("RecHit_NsimHit_Disk1", "RecHit Number of simHits, Disk1", 30, 0., 30.);
190  recHitNsimHitDisk2 = ibooker.book1D("RecHit_NsimHit_Disk2", "RecHit Number of simHits, Disk2", 30, 0., 30.);
191 
192  //RecHit X resolution all plaquettes
193  recHitXResAllF = ibooker.book1D("RecHit_xres_f_All", "RecHit X Res All in Forward", 100, -200., 200.);
194 
195  //RecHit Y resolution all plaquettes
196  recHitYResAllF = ibooker.book1D("RecHit_yres_f_All", "RecHit Y Res All in Forward", 100, -200., 200.);
197 
198  //RecHit X distribution for plaquette with x-size 1 in forward
199  recHitXPlaquetteSize1 = ibooker.book1D("RecHit_x_Plaquette_xsize1", "RecHit X Distribution for plaquette x-size1", 100, -2., 2.);
200 
201  //RecHit X distribution for plaquette with x-size 2 in forward
202  recHitXPlaquetteSize2 = ibooker.book1D("RecHit_x_Plaquette_xsize2", "RecHit X Distribution for plaquette x-size2", 100, -2., 2.);
203 
204  //RecHit Y distribution for plaquette with y-size 2 in forward
205  recHitYPlaquetteSize2 = ibooker.book1D("RecHit_y_Plaquette_ysize2", "RecHit Y Distribution for plaquette y-size2", 100, -4., 4.);
206 
207  //RecHit Y distribution for plaquette with y-size 3 in forward
208  recHitYPlaquetteSize3 = ibooker.book1D("RecHit_y_Plaquette_ysize3", "RecHit Y Distribution for plaquette y-size3", 100, -4., 4.);
209 
210  //RecHit Y distribution for plaquette with y-size 4 in forward
211  recHitYPlaquetteSize4 = ibooker.book1D("RecHit_y_Plaquette_ysize4", "RecHit Y Distribution for plaquette y-size4", 100, -4., 4.);
212 
213  //RecHit Y distribution for plaquette with y-size 5 in forward
214  recHitYPlaquetteSize5 = ibooker.book1D("RecHit_y_Plaquette_ysize5", "RecHit Y Distribution for plaquette y-size5", 100, -4., 4.);
215 
216  //X and Y resolutions for both disks by plaquette in forward
217  for (int i=0; i<7; i++) {
218  //X resolution for Disk1 by plaquette
219  sprintf(histo, "RecHit_XRes_Disk1_Plaquette%d", i+1);
220  recHitXResDisk1Plaquettes[i] = ibooker.book1D(histo, "RecHit XRes Disk1 by plaquette", 100, -200., 200.);
221  //X resolution for Disk2 by plaquette
222  sprintf(histo, "RecHit_XRes_Disk2_Plaquette%d", i+1);
223  recHitXResDisk2Plaquettes[i] = ibooker.book1D(histo, "RecHit XRes Disk2 by plaquette", 100, -200., 200.);
224 
225  //Y resolution for Disk1 by plaquette
226  sprintf(histo, "RecHit_YRes_Disk1_Plaquette%d", i+1);
227  recHitYResDisk1Plaquettes[i] = ibooker.book1D(histo, "RecHit YRes Disk1 by plaquette", 100, -200., 200.);
228  //Y resolution for Disk2 by plaquette
229  sprintf(histo, "RecHit_YRes_Disk2_Plaquette%d", i+1);
230  recHitYResDisk2Plaquettes[i] = ibooker.book1D(histo, "RecHit YRes Disk2 by plaquette", 100, -200., 200.);
231 
232  }
233 
234 
235  ibooker.setCurrentFolder("TrackerRecHitsV/TrackerRecHits/Pixel/recHitPullsBPIX");
236  recHitXPullAllB = ibooker.book1D("RecHit_xres_b_All" , "RecHit X Pull All Modules in Barrel" , 100, -10.0, 10.0);
237  recHitYPullAllB = ibooker.book1D("RecHit_yres_b_All" , "RecHit Y Pull All Modules in Barrel" , 100, -10.0, 10.0);
238 
239  for (int i=0; i<3; i++)
240  {
241  sprintf(histo, "RecHit_XPull_FlippedLadder_Layer%d", i+1);
242  recHitXPullFlippedLadderLayers[i] = ibooker.book1D(histo, "RecHit XPull Flipped Ladders by Layer", 100, -10.0, 10.0);
243 
244  sprintf(histo, "RecHit_XPull_UnFlippedLadder_Layer%d", i+1);
245  recHitXPullNonFlippedLadderLayers[i] = ibooker.book1D(histo, "RecHit XPull NonFlipped Ladders by Layer", 100, -10.0, 10.0);
246  }
247 
248  for (int i=0; i<8; i++)
249  {
250  sprintf(histo, "RecHit_YPull_Layer1_Module%d", i+1);
251  recHitYPullLayer1Modules[i] = ibooker.book1D(histo, "RecHit YPull Layer1 by module", 100, -10.0, 10.0);
252 
253  sprintf(histo, "RecHit_YPull_Layer2_Module%d", i+1);
254  recHitYPullLayer2Modules[i] = ibooker.book1D(histo, "RecHit YPull Layer2 by module", 100, -10.0, 10.0);
255 
256  sprintf(histo, "RecHit_YPull_Layer3_Module%d", i+1);
257  recHitYPullLayer3Modules[i] = ibooker.book1D(histo, "RecHit YPull Layer3 by module", 100, -10.0, 10.0);
258  }
259 
260  ibooker.setCurrentFolder("TrackerRecHitsV/TrackerRecHits/Pixel/recHitPullsFPIX");
261  recHitXPullAllF = ibooker.book1D("RecHit_XPull_f_All", "RecHit X Pull All in Forward", 100, -10.0, 10.0);
262 
263  recHitYPullAllF = ibooker.book1D("RecHit_YPull_f_All", "RecHit Y Pull All in Forward", 100, -10.0, 10.0);
264 
265  for (int i=0; i<7; i++)
266  {
267  sprintf(histo, "RecHit_XPull_Disk1_Plaquette%d", i+1);
268  recHitXPullDisk1Plaquettes[i] = ibooker.book1D(histo, "RecHit XPull Disk1 by plaquette", 100, -10.0, 10.0);
269  sprintf(histo, "RecHit_XPull_Disk2_Plaquette%d", i+1);
270  recHitXPullDisk2Plaquettes[i] = ibooker.book1D(histo, "RecHit XPull Disk2 by plaquette", 100, -10.0, 10.0);
271 
272  sprintf(histo, "RecHit_YPull_Disk1_Plaquette%d", i+1);
273  recHitYPullDisk1Plaquettes[i] = ibooker.book1D(histo, "RecHit YPull Disk1 by plaquette", 100, -10.0, 10.0);
274 
275  sprintf(histo, "RecHit_YPull_Disk2_Plaquette%d", i+1);
276  recHitYPullDisk2Plaquettes[i] = ibooker.book1D(histo, "RecHit YPull Disk2 by plaquette", 100, -10.0, 10.0);
277  }
278 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * clustYSizeModule[8]
MonitorElement * clustXSizeDisk1Plaquettes[7]
MonitorElement * recHitNsimHitDisk1
MonitorElement * recHitXPullDisk2Plaquettes[7]
MonitorElement * recHitXResFlippedLadderLayers[3]
MonitorElement * recHitXFullModules
MonitorElement * recHitXResAllF
MonitorElement * recHitXHalfModules
MonitorElement * recHitYPullAllF
MonitorElement * recHitXResDisk1Plaquettes[7]
MonitorElement * recHitEventF
MonitorElement * clustXSizeDisk2Plaquettes[7]
MonitorElement * recHitYResAllB
MonitorElement * recHitYPullDisk2Plaquettes[7]
MonitorElement * recHitNsimHitLayer[3]
MonitorElement * clustXSizeLayer[3]
MonitorElement * clustChargeLayer1Modules[8]
MonitorElement * recHitYPlaquetteSize5
MonitorElement * recHitEventB
MonitorElement * recHitXPlaquetteSize1
MonitorElement * recHitXResDisk2Plaquettes[7]
MonitorElement * recHitXPullNonFlippedLadderLayers[3]
MonitorElement * recHitYPullDisk1Plaquettes[7]
MonitorElement * recHitXPullAllB
MonitorElement * recHitXResAllB
MonitorElement * recHitBunchB
MonitorElement * clustChargeLayer2Modules[8]
MonitorElement * recHitYResDisk2Plaquettes[7]
MonitorElement * recHitXResNonFlippedLadderLayers[3]
MonitorElement * recHitYResDisk1Plaquettes[7]
MonitorElement * recHitYResLayer2Modules[8]
MonitorElement * recHitYPlaquetteSize2
MonitorElement * recHitYPullLayer3Modules[8]
MonitorElement * clustYSizeDisk1Plaquettes[7]
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * recHitBunchF
MonitorElement * recHitXPlaquetteSize2
MonitorElement * clustChargeLayer3Modules[8]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * recHitYResAllF
MonitorElement * recHitYResLayer3Modules[8]
MonitorElement * recHitYPullLayer2Modules[8]
MonitorElement * clustYSizeDisk2Plaquettes[7]
MonitorElement * recHitYPlaquetteSize4
MonitorElement * recHitXPullFlippedLadderLayers[3]
MonitorElement * recHitNsimHitDisk2
MonitorElement * recHitYResLayer1Modules[8]
MonitorElement * recHitYPullLayer1Modules[8]
MonitorElement * recHitXPullDisk1Plaquettes[7]
MonitorElement * recHitYPullAllB
MonitorElement * recHitXPullAllF
MonitorElement * recHitYPlaquetteSize3
MonitorElement * clustChargeDisk1Plaquettes[7]
MonitorElement * clustChargeDisk2Plaquettes[7]
MonitorElement * recHitYAllModules
void SiPixelRecHitsValid::fillBarrel ( const SiPixelRecHit recHit,
const PSimHit simHit,
DetId  detId,
const PixelGeomDetUnit theGeomDet,
const TrackerTopology tTopo 
)
private

Definition at line 387 of file SiPixelRecHitsValid.cc.

References EncodedEventId::bunchCrossing(), clustChargeLayer1Modules, clustChargeLayer2Modules, clustChargeLayer3Modules, SiPixelRecHit::cluster(), clustXSizeLayer, clustYSizeModule, PSimHit::entryPoint(), EncodedEventId::event(), event(), PSimHit::eventId(), PSimHit::exitPoint(), MonitorElement::Fill(), HcalObjRepresent::Fill(), i, BaseTrackerRecHit::localPosition(), BaseTrackerRecHit::localPositionError(), PixelTopology::nrows(), PV3DBase< T, PVType, FrameType >::perp(), TrackerTopology::pxbLayer(), TrackerTopology::pxbModule(), recHitBunchB, recHitEventB, recHitXFullModules, recHitXHalfModules, recHitXPullAllB, recHitXPullFlippedLadderLayers, recHitXPullNonFlippedLadderLayers, recHitXResAllB, recHitXResFlippedLadderLayers, recHitXResNonFlippedLadderLayers, recHitYAllModules, recHitYPullAllB, recHitYPullLayer1Modules, recHitYPullLayer2Modules, recHitYPullLayer3Modules, recHitYResAllB, recHitYResLayer1Modules, recHitYResLayer2Modules, recHitYResLayer3Modules, tablePrinter::rows, PixelGeomDetUnit::specificTopology(), mathSSE::sqrt(), GeomDet::surface(), Surface::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), and LocalError::yy().

Referenced by analyze().

390 {
391  const float cmtomicron = 10000.0;
392 
393  int bunch = simHit.eventId().bunchCrossing();
394  int event = simHit.eventId().event();
395 
396  recHitBunchB->Fill(bunch);
397  if (bunch == 0) recHitEventB->Fill(event);
398 
399  LocalPoint lp = recHit.localPosition();
400  float lp_y = lp.y();
401  float lp_x = lp.x();
402 
403  LocalError lerr = recHit.localPositionError();
404  float lerr_x = sqrt(lerr.xx());
405  float lerr_y = sqrt(lerr.yy());
406 
407  recHitYAllModules->Fill(lp_y);
408 
409  float sim_x1 = simHit.entryPoint().x();
410  float sim_x2 = simHit.exitPoint().x();
411  float sim_xpos = 0.5*(sim_x1 + sim_x2);
412  float res_x = (lp.x() - sim_xpos)*cmtomicron;
413 
414  recHitXResAllB->Fill(res_x);
415 
416  float sim_y1 = simHit.entryPoint().y();
417  float sim_y2 = simHit.exitPoint().y();
418  float sim_ypos = 0.5*(sim_y1 + sim_y2);
419  float res_y = (lp.y() - sim_ypos)*cmtomicron;
420 
421  recHitYResAllB->Fill(res_y);
422 
423  float pull_x = ( lp_x - sim_xpos ) / lerr_x;
424  float pull_y = ( lp_y - sim_ypos ) / lerr_y;
425 
426  recHitXPullAllB->Fill(pull_x);
427  recHitYPullAllB->Fill(pull_y);
428 
429  int rows = theGeomDet->specificTopology().nrows();
430 
431  if (rows == 160)
432  {
433  recHitXFullModules->Fill(lp_x);
434  }
435  else if (rows == 80)
436  {
437  recHitXHalfModules->Fill(lp_x);
438  }
439 
440  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,0.)).perp();
441  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,1.)).perp();
442 
443  if (tmp2<tmp1)
444  { // flipped
445  for (unsigned int i=0; i<3; i++)
446  {
447  if (tTopo->pxbLayer(detId) == i+1)
448  {
451  }
452  }
453  }
454  else
455  {
456  for (unsigned int i=0; i<3; i++)
457  {
458  if (tTopo->pxbLayer(detId) == i+1)
459  {
462  }
463  }
464  }
465 
466  //get cluster
467  SiPixelRecHit::ClusterRef const& clust = recHit.cluster();
468 
469  // fill module dependent info
470  for (unsigned int i=0; i<8; i++)
471  {
472  if (tTopo->pxbModule(detId) == i+1)
473  {
474  int sizeY = (*clust).sizeY();
475  clustYSizeModule[i]->Fill(sizeY);
476 
477  if (tTopo->pxbLayer(detId) == 1)
478  {
479  float charge = (*clust).charge();
480  clustChargeLayer1Modules[i]->Fill(charge);
481  recHitYResLayer1Modules[i]->Fill(res_y);
482  recHitYPullLayer1Modules[i]->Fill(pull_y);
483  }
484  else if (tTopo->pxbLayer(detId) == 2)
485  {
486  float charge = (*clust).charge();
487  clustChargeLayer2Modules[i]->Fill(charge);
488  recHitYResLayer2Modules[i]->Fill(res_y);
489  recHitYPullLayer2Modules[i]->Fill(pull_y);
490  }
491  else if (tTopo->pxbLayer(detId) == 3)
492  {
493  float charge = (*clust).charge();
494  clustChargeLayer3Modules[i]->Fill(charge);
495  recHitYResLayer3Modules[i]->Fill(res_y);
496  recHitYPullLayer3Modules[i]->Fill(pull_y);
497  }
498  }
499  }
500  int sizeX = (*clust).sizeX();
501  if (tTopo->pxbLayer(detId) == 1) clustXSizeLayer[0]->Fill(sizeX);
502  if (tTopo->pxbLayer(detId) == 2) clustXSizeLayer[1]->Fill(sizeX);
503  if (tTopo->pxbLayer(detId) == 3) clustXSizeLayer[2]->Fill(sizeX);
504 }
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:114
int i
Definition: DBlmapReader.cc:9
MonitorElement * clustYSizeModule[8]
float xx() const
Definition: LocalError.h:24
MonitorElement * recHitXResFlippedLadderLayers[3]
int event() const
get the contents of the subdetector field (should be protected?)
MonitorElement * recHitXFullModules
T perp() const
Definition: PV3DBase.h:72
MonitorElement * recHitXHalfModules
MonitorElement * recHitYResAllB
MonitorElement * clustXSizeLayer[3]
T y() const
Definition: PV3DBase.h:63
MonitorElement * clustChargeLayer1Modules[8]
virtual int nrows() const =0
unsigned int pxbModule(const DetId &id) const
MonitorElement * recHitEventB
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:40
MonitorElement * recHitXPullNonFlippedLadderLayers[3]
void Fill(long long x)
MonitorElement * recHitXPullAllB
MonitorElement * recHitXResAllB
MonitorElement * recHitBunchB
MonitorElement * clustChargeLayer2Modules[8]
virtual LocalError localPositionError() const
Local3DPoint exitPoint() const
Exit point in the local Det frame.
Definition: PSimHit.h:38
MonitorElement * recHitXResNonFlippedLadderLayers[3]
MonitorElement * recHitYResLayer2Modules[8]
float yy() const
Definition: LocalError.h:26
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
T sqrt(T t)
Definition: SSEVec.h:48
int bunchCrossing() const
get the detector field from this detid
MonitorElement * recHitYPullLayer3Modules[8]
EncodedEventId eventId() const
Definition: PSimHit.h:105
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
unsigned int pxbLayer(const DetId &id) const
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
MonitorElement * clustChargeLayer3Modules[8]
MonitorElement * recHitYResLayer3Modules[8]
ClusterRef cluster() const
Definition: SiPixelRecHit.h:49
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
MonitorElement * recHitYPullLayer2Modules[8]
MonitorElement * recHitXPullFlippedLadderLayers[3]
MonitorElement * recHitYResLayer1Modules[8]
MonitorElement * recHitYPullLayer1Modules[8]
MonitorElement * recHitYPullAllB
T x() const
Definition: PV3DBase.h:62
virtual LocalPoint localPosition() const
Local3DPoint entryPoint() const
Entry point in the local Det frame.
Definition: PSimHit.h:35
MonitorElement * recHitYAllModules
void SiPixelRecHitsValid::fillForward ( const SiPixelRecHit recHit,
const PSimHit simHit,
DetId  detId,
const PixelGeomDetUnit theGeomDet,
const TrackerTopology tTopo 
)
private

Definition at line 506 of file SiPixelRecHitsValid.cc.

References EncodedEventId::bunchCrossing(), clustChargeDisk1Plaquettes, clustChargeDisk2Plaquettes, SiPixelRecHit::cluster(), clustXSizeDisk1Plaquettes, clustXSizeDisk2Plaquettes, clustYSizeDisk1Plaquettes, clustYSizeDisk2Plaquettes, PSimHit::entryPoint(), EncodedEventId::event(), event(), PSimHit::eventId(), PSimHit::exitPoint(), MonitorElement::Fill(), i, BaseTrackerRecHit::localPosition(), BaseTrackerRecHit::localPositionError(), PixelTopology::ncolumns(), PixelTopology::nrows(), TrackerTopology::pxfDisk(), TrackerTopology::pxfModule(), TrackerTopology::pxfPanel(), recHitBunchF, recHitEventF, recHitXPlaquetteSize1, recHitXPlaquetteSize2, recHitXPullAllF, recHitXPullDisk1Plaquettes, recHitXPullDisk2Plaquettes, recHitXResAllF, recHitXResDisk1Plaquettes, recHitXResDisk2Plaquettes, recHitYPlaquetteSize2, recHitYPlaquetteSize3, recHitYPlaquetteSize4, recHitYPlaquetteSize5, recHitYPullAllF, recHitYPullDisk1Plaquettes, recHitYPullDisk2Plaquettes, recHitYResDisk1Plaquettes, recHitYResDisk2Plaquettes, tablePrinter::rows, PixelGeomDetUnit::specificTopology(), mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), and LocalError::yy().

Referenced by analyze().

509 {
510  int rows = theGeomDet->specificTopology().nrows();
511  int cols = theGeomDet->specificTopology().ncolumns();
512 
513  const float cmtomicron = 10000.0;
514 
515  int bunch = simHit.eventId().bunchCrossing();
516  int event = simHit.eventId().event();
517 
518  recHitBunchF->Fill(bunch);
519  if (bunch == 0) recHitEventF->Fill(event);
520 
521  LocalPoint lp = recHit.localPosition();
522  float lp_x = lp.x();
523  float lp_y = lp.y();
524 
525  LocalError lerr = recHit.localPositionError();
526  float lerr_x = sqrt(lerr.xx());
527  float lerr_y = sqrt(lerr.yy());
528 
529  float sim_x1 = simHit.entryPoint().x();
530  float sim_x2 = simHit.exitPoint().x();
531  float sim_xpos = 0.5*(sim_x1 + sim_x2);
532 
533  float sim_y1 = simHit.entryPoint().y();
534  float sim_y2 = simHit.exitPoint().y();
535  float sim_ypos = 0.5*(sim_y1 + sim_y2);
536 
537  float pull_x = ( lp_x - sim_xpos ) / lerr_x;
538  float pull_y = ( lp_y - sim_ypos ) / lerr_y;
539 
540 
541  if (rows == 80)
542  {
544  }
545  else if (rows == 160)
546  {
548  }
549 
550  if (cols == 104)
551  {
553  }
554  else if (cols == 156)
555  {
557  }
558  else if (cols == 208)
559  {
561  }
562  else if (cols == 260)
563  {
565  }
566 
567  float res_x = (lp.x() - sim_xpos)*cmtomicron;
568 
569  recHitXResAllF->Fill(res_x);
570  recHitXPullAllF->Fill(pull_x);
571 
572  float res_y = (lp.y() - sim_ypos)*cmtomicron;
573 
574  recHitYPullAllF->Fill(pull_y);
575 
576  // get cluster
577  SiPixelRecHit::ClusterRef const& clust = recHit.cluster();
578 
579  // fill plaquette dependent info
580  for (unsigned int i=0; i<7; i++)
581  {
582  if (tTopo->pxfModule(detId) == i+1)
583  {
584  if (tTopo->pxfDisk(detId) == 1)
585  {
586  int sizeX = (*clust).sizeX();
588 
589  int sizeY = (*clust).sizeY();
591 
592  float charge = (*clust).charge();
594 
597 
600  }
601  else
602  {
603  int sizeX = (*clust).sizeX();
605 
606  int sizeY = (*clust).sizeY();
608 
609  float charge = (*clust).charge();
611 
614 
617 
618  } // end else
619  } // end if module
620  else if (tTopo->pxfPanel(detId) == 2 && (tTopo->pxfModule(detId)+4) == i+1)
621  {
622  if (tTopo->pxfDisk(detId) == 1)
623  {
624  int sizeX = (*clust).sizeX();
626 
627  int sizeY = (*clust).sizeY();
629 
630  float charge = (*clust).charge();
632 
635 
638  }
639  else
640  {
641  int sizeX = (*clust).sizeX();
643 
644  int sizeY = (*clust).sizeY();
646 
647  float charge = (*clust).charge();
649 
652 
655 
656  } // end else
657  } // end else
658  } // end for
659 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * clustXSizeDisk1Plaquettes[7]
float xx() const
Definition: LocalError.h:24
MonitorElement * recHitXPullDisk2Plaquettes[7]
int event() const
get the contents of the subdetector field (should be protected?)
MonitorElement * recHitXResAllF
virtual int ncolumns() const =0
MonitorElement * recHitYPullAllF
MonitorElement * recHitXResDisk1Plaquettes[7]
MonitorElement * recHitEventF
MonitorElement * clustXSizeDisk2Plaquettes[7]
unsigned int pxfDisk(const DetId &id) const
MonitorElement * recHitYPullDisk2Plaquettes[7]
T y() const
Definition: PV3DBase.h:63
virtual int nrows() const =0
MonitorElement * recHitYPlaquetteSize5
MonitorElement * recHitXPlaquetteSize1
MonitorElement * recHitXResDisk2Plaquettes[7]
void Fill(long long x)
MonitorElement * recHitYPullDisk1Plaquettes[7]
virtual LocalError localPositionError() const
MonitorElement * recHitYResDisk2Plaquettes[7]
Local3DPoint exitPoint() const
Exit point in the local Det frame.
Definition: PSimHit.h:38
MonitorElement * recHitYResDisk1Plaquettes[7]
MonitorElement * recHitYPlaquetteSize2
float yy() const
Definition: LocalError.h:26
T sqrt(T t)
Definition: SSEVec.h:48
int bunchCrossing() const
get the detector field from this detid
MonitorElement * clustYSizeDisk1Plaquettes[7]
MonitorElement * recHitBunchF
EncodedEventId eventId() const
Definition: PSimHit.h:105
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
unsigned int pxfModule(const DetId &id) const
MonitorElement * recHitXPlaquetteSize2
ClusterRef cluster() const
Definition: SiPixelRecHit.h:49
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
MonitorElement * clustYSizeDisk2Plaquettes[7]
MonitorElement * recHitYPlaquetteSize4
MonitorElement * recHitXPullDisk1Plaquettes[7]
T x() const
Definition: PV3DBase.h:62
virtual LocalPoint localPosition() const
MonitorElement * recHitXPullAllF
Local3DPoint entryPoint() const
Entry point in the local Det frame.
Definition: PSimHit.h:35
MonitorElement * recHitYPlaquetteSize3
MonitorElement * clustChargeDisk1Plaquettes[7]
unsigned int pxfPanel(const DetId &id) const
MonitorElement * clustChargeDisk2Plaquettes[7]

Member Data Documentation

MonitorElement* SiPixelRecHitsValid::clustChargeDisk1Plaquettes[7]
private

Definition at line 61 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustChargeDisk2Plaquettes[7]
private

Definition at line 62 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustChargeLayer1Modules[8]
private

Definition at line 52 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::clustChargeLayer2Modules[8]
private

Definition at line 53 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::clustChargeLayer3Modules[8]
private

Definition at line 54 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::clustXSizeDisk1Plaquettes[7]
private

Definition at line 57 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustXSizeDisk2Plaquettes[7]
private

Definition at line 58 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustXSizeLayer[3]
private

Definition at line 51 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::clustYSizeDisk1Plaquettes[7]
private

Definition at line 59 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustYSizeDisk2Plaquettes[7]
private

Definition at line 60 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustYSizeModule[8]
private

Definition at line 50 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitBunchB
private

Definition at line 75 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitBunchF
private

Definition at line 92 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitEventB
private

Definition at line 76 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitEventF
private

Definition at line 93 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitNsimHitDisk1
private

Definition at line 94 of file SiPixelRecHitsValid.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelRecHitsValid::recHitNsimHitDisk2
private

Definition at line 95 of file SiPixelRecHitsValid.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelRecHitsValid::recHitNsimHitLayer[3]
private

Definition at line 77 of file SiPixelRecHitsValid.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelRecHitsValid::recHitXFullModules
private

Definition at line 67 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXHalfModules
private

Definition at line 68 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXPlaquetteSize1
private

Definition at line 82 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXPlaquetteSize2
private

Definition at line 83 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXPullAllB
private

Definition at line 99 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXPullAllF
private

Definition at line 109 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXPullDisk1Plaquettes[7]
private

Definition at line 112 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXPullDisk2Plaquettes[7]
private

Definition at line 113 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXPullFlippedLadderLayers[3]
private

Definition at line 102 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXPullNonFlippedLadderLayers[3]
private

Definition at line 103 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXResAllB
private

Definition at line 65 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXResAllF
private

Definition at line 80 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXResDisk1Plaquettes[7]
private

Definition at line 88 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXResDisk2Plaquettes[7]
private

Definition at line 89 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXResFlippedLadderLayers[3]
private

Definition at line 70 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXResNonFlippedLadderLayers[3]
private

Definition at line 71 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYAllModules
private

Definition at line 69 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYPlaquetteSize2
private

Definition at line 84 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPlaquetteSize3
private

Definition at line 85 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPlaquetteSize4
private

Definition at line 86 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPlaquetteSize5
private

Definition at line 87 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPullAllB
private

Definition at line 100 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYPullAllF
private

Definition at line 110 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPullDisk1Plaquettes[7]
private

Definition at line 114 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPullDisk2Plaquettes[7]
private

Definition at line 115 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPullLayer1Modules[8]
private

Definition at line 104 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYPullLayer2Modules[8]
private

Definition at line 105 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYPullLayer3Modules[8]
private

Definition at line 106 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYResAllB
private

Definition at line 66 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYResAllF
private

Definition at line 81 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms().

MonitorElement* SiPixelRecHitsValid::recHitYResDisk1Plaquettes[7]
private

Definition at line 90 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYResDisk2Plaquettes[7]
private

Definition at line 91 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYResLayer1Modules[8]
private

Definition at line 72 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYResLayer2Modules[8]
private

Definition at line 73 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYResLayer3Modules[8]
private

Definition at line 74 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

edm::EDGetTokenT<SiPixelRecHitCollection> SiPixelRecHitsValid::siPixelRecHitCollectionToken_
private

Definition at line 118 of file SiPixelRecHitsValid.h.

Referenced by analyze().

TrackerHitAssociator::Config SiPixelRecHitsValid::trackerHitAssociatorConfig_
private

Definition at line 117 of file SiPixelRecHitsValid.h.

Referenced by analyze().