CMS 3D CMS Logo

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::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 SiPixelRecHitsValid (const edm::ParameterSet &conf)
 
 ~SiPixelRecHitsValid () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void bookHistograms (DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &)=0
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
 DQMEDAnalyzer (DQMEDAnalyzer const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer &&)=delete
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDAnalyzer () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void beginJob () override
 
void bookHistograms (DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es) override
 
- 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< SiPixelRecHitCollectionsiPixelRecHitCollectionToken_
 
TrackerHitAssociator::Config trackerHitAssociatorConfig_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

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 ( )
override

Definition at line 55 of file SiPixelRecHitsValid.cc.

55  {
56 }

Member Function Documentation

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

Definition at line 280 of file SiPixelRecHitsValid.cc.

References TrackerHitAssociator::associateHit(), edmNew::DetSet< T >::begin(), gather_cfg::cout, TrackerGeometry::dets(), edmNew::DetSet< T >::end(), edmNew::DetSetVector< T >::end(), edm::EventID::event(), MonitorElement::Fill(), HcalObjRepresent::Fill(), fillBarrel(), fillForward(), edmNew::DetSetVector< T >::find(), relativeConstraints::geom, edm::EventSetup::get(), edm::Event::getByToken(), mps_fire::i, edm::EventBase::id(), TrackerGeometry::idToDet(), funct::m, electrons_cff::matched, edm::ESHandle< T >::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
MonitorElement * recHitNsimHitDisk1
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator end(bool update=false) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
unsigned int pxfDisk(const DetId &id) const
MonitorElement * recHitNsimHitLayer[3]
T y() const
Definition: PV3DBase.h:63
void Fill(long long x)
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
TrackerHitAssociator::Config trackerHitAssociatorConfig_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
T sqrt(T t)
Definition: SSEVec.h:18
edm::EDGetTokenT< SiPixelRecHitCollection > siPixelRecHitCollectionToken_
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:41
void fillForward(const SiPixelRecHit &, const PSimHit &, DetId, const PixelGeomDetUnit *, const TrackerTopology *tTopo)
unsigned int pxbLayer(const DetId &id) const
Definition: DetId.h:18
const_iterator find(id_type i, bool update=false) const
edm::EventID id() const
Definition: EventBase.h:60
iterator end()
Definition: DetSetNew.h:70
MonitorElement * recHitNsimHitDisk2
T x() const
Definition: PV3DBase.h:62
T const * product() const
Definition: ESHandle.h:86
void fillBarrel(const SiPixelRecHit &, const PSimHit &, DetId, const PixelGeomDetUnit *, const TrackerTopology *tTopo)
iterator begin()
Definition: DetSetNew.h:67
void SiPixelRecHitsValid::beginJob ( void  )
overrideprotectedvirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 58 of file SiPixelRecHitsValid.cc.

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

Definition at line 61 of file SiPixelRecHitsValid.cc.

References DQMStore::IBooker::book1D(), clustChargeDisk1Plaquettes, clustChargeDisk2Plaquettes, clustChargeLayer1Modules, clustChargeLayer2Modules, clustChargeLayer3Modules, clustXSizeDisk1Plaquettes, clustXSizeDisk2Plaquettes, clustXSizeLayer, clustYSizeDisk1Plaquettes, clustYSizeDisk2Plaquettes, clustYSizeModule, trackerHits::histo, mps_fire::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 }
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:118
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(), ALCARECOTkAlJpsiMuMu_cff::charge, clustChargeLayer1Modules, clustChargeLayer2Modules, clustChargeLayer3Modules, SiPixelRecHit::cluster(), clustXSizeLayer, clustYSizeModule, cmtomicron, PSimHit::entryPoint(), EncodedEventId::event(), PSimHit::eventId(), PSimHit::exitPoint(), MonitorElement::Fill(), HcalObjRepresent::Fill(), mps_fire::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, RecoTauValidation_cfi::sizeX, RecoTauValidation_cfi::sizeY, 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:106
MonitorElement * clustYSizeModule[8]
float xx() const
Definition: LocalError.h:24
virtual int nrows() const =0
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
LocalError localPositionError() const final
MonitorElement * recHitXHalfModules
const float cmtomicron
MonitorElement * recHitYResAllB
MonitorElement * clustXSizeLayer[3]
T y() const
Definition: PV3DBase.h:63
MonitorElement * clustChargeLayer1Modules[8]
unsigned int pxbModule(const DetId &id) const
MonitorElement * recHitEventB
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
MonitorElement * recHitXPullNonFlippedLadderLayers[3]
void Fill(long long x)
MonitorElement * recHitXPullAllB
MonitorElement * recHitXResAllB
MonitorElement * recHitBunchB
MonitorElement * clustChargeLayer2Modules[8]
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:18
int bunchCrossing() const
get the detector field from this detid
MonitorElement * recHitYPullLayer3Modules[8]
EncodedEventId eventId() const
Definition: PSimHit.h:105
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]
LocalPoint localPosition() const final
MonitorElement * recHitYPullAllB
T x() const
Definition: PV3DBase.h:62
Local3DPoint entryPoint() const
Entry point in the local Det frame.
Definition: PSimHit.h:35
Definition: event.py:1
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(), ALCARECOTkAlJpsiMuMu_cff::charge, clustChargeDisk1Plaquettes, clustChargeDisk2Plaquettes, SiPixelRecHit::cluster(), clustXSizeDisk1Plaquettes, clustXSizeDisk2Plaquettes, clustYSizeDisk1Plaquettes, clustYSizeDisk2Plaquettes, cmtomicron, DEFINE_FWK_MODULE, PSimHit::entryPoint(), EncodedEventId::event(), PSimHit::eventId(), PSimHit::exitPoint(), MonitorElement::Fill(), mps_fire::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, RecoTauValidation_cfi::sizeX, RecoTauValidation_cfi::sizeY, 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 }
MonitorElement * clustXSizeDisk1Plaquettes[7]
float xx() const
Definition: LocalError.h:24
virtual int nrows() const =0
MonitorElement * recHitXPullDisk2Plaquettes[7]
int event() const
get the contents of the subdetector field (should be protected?)
MonitorElement * recHitXResAllF
LocalError localPositionError() const final
MonitorElement * recHitYPullAllF
const float cmtomicron
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
MonitorElement * recHitYPlaquetteSize5
MonitorElement * recHitXPlaquetteSize1
MonitorElement * recHitXResDisk2Plaquettes[7]
void Fill(long long x)
MonitorElement * recHitYPullDisk1Plaquettes[7]
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:18
int bunchCrossing() const
get the detector field from this detid
MonitorElement * clustYSizeDisk1Plaquettes[7]
MonitorElement * recHitBunchF
EncodedEventId eventId() const
Definition: PSimHit.h:105
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
virtual int ncolumns() const =0
LocalPoint localPosition() const final
MonitorElement * recHitXPullDisk1Plaquettes[7]
T x() const
Definition: PV3DBase.h:62
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]
Definition: event.py:1

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().