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
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 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
 
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::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- 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]
 
edm::ParameterSet conf_
 
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_
 

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
 
- 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 27 of file SiPixelRecHitsValid.h.

Constructor & Destructor Documentation

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

Definition at line 51 of file SiPixelRecHitsValid.cc.

52  : conf_(ps)
53  , siPixelRecHitCollectionToken_( consumes<SiPixelRecHitCollection>( ps.getParameter<edm::InputTag>( "src" ) ) ) {
54 
55 }
edm::ParameterSet conf_
edm::EDGetTokenT< SiPixelRecHitCollection > siPixelRecHitCollectionToken_
SiPixelRecHitsValid::~SiPixelRecHitsValid ( )

Definition at line 57 of file SiPixelRecHitsValid.cc.

57  {
58 }

Member Function Documentation

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

Implements edm::stream::EDAnalyzerBase.

Definition at line 282 of file SiPixelRecHitsValid.cc.

References TrackerHitAssociator::associateHit(), edmNew::DetSet< T >::begin(), conf_, 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(), m, edm::ESHandle< class >::product(), TrackerTopology::pxbLayer(), TrackerTopology::pxfDisk(), recHitNsimHitDisk1, recHitNsimHitDisk2, recHitNsimHitLayer, edm::EventID::run(), siPixelRecHitCollectionToken_, mathSSE::sqrt(), DetId::subdetId(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

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

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

Implements DQMEDAnalyzer.

Definition at line 63 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().

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

392 {
393  const float cmtomicron = 10000.0;
394 
395  int bunch = simHit.eventId().bunchCrossing();
396  int event = simHit.eventId().event();
397 
398  recHitBunchB->Fill(bunch);
399  if (bunch == 0) recHitEventB->Fill(event);
400 
401  LocalPoint lp = recHit.localPosition();
402  float lp_y = lp.y();
403  float lp_x = lp.x();
404 
405  LocalError lerr = recHit.localPositionError();
406  float lerr_x = sqrt(lerr.xx());
407  float lerr_y = sqrt(lerr.yy());
408 
409  recHitYAllModules->Fill(lp_y);
410 
411  float sim_x1 = simHit.entryPoint().x();
412  float sim_x2 = simHit.exitPoint().x();
413  float sim_xpos = 0.5*(sim_x1 + sim_x2);
414  float res_x = (lp.x() - sim_xpos)*cmtomicron;
415 
416  recHitXResAllB->Fill(res_x);
417 
418  float sim_y1 = simHit.entryPoint().y();
419  float sim_y2 = simHit.exitPoint().y();
420  float sim_ypos = 0.5*(sim_y1 + sim_y2);
421  float res_y = (lp.y() - sim_ypos)*cmtomicron;
422 
423  recHitYResAllB->Fill(res_y);
424 
425  float pull_x = ( lp_x - sim_xpos ) / lerr_x;
426  float pull_y = ( lp_y - sim_ypos ) / lerr_y;
427 
428  recHitXPullAllB->Fill(pull_x);
429  recHitYPullAllB->Fill(pull_y);
430 
431  int rows = theGeomDet->specificTopology().nrows();
432 
433  if (rows == 160)
434  {
435  recHitXFullModules->Fill(lp_x);
436  }
437  else if (rows == 80)
438  {
439  recHitXHalfModules->Fill(lp_x);
440  }
441 
442  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,0.)).perp();
443  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,1.)).perp();
444 
445  if (tmp2<tmp1)
446  { // flipped
447  for (unsigned int i=0; i<3; i++)
448  {
449  if (tTopo->pxbLayer(detId) == i+1)
450  {
453  }
454  }
455  }
456  else
457  {
458  for (unsigned int i=0; i<3; i++)
459  {
460  if (tTopo->pxbLayer(detId) == i+1)
461  {
464  }
465  }
466  }
467 
468  //get cluster
469  SiPixelRecHit::ClusterRef const& clust = recHit.cluster();
470 
471  // fill module dependent info
472  for (unsigned int i=0; i<8; i++)
473  {
474  if (tTopo->pxbModule(detId) == i+1)
475  {
476  int sizeY = (*clust).sizeY();
477  clustYSizeModule[i]->Fill(sizeY);
478 
479  if (tTopo->pxbLayer(detId) == 1)
480  {
481  float charge = (*clust).charge();
482  clustChargeLayer1Modules[i]->Fill(charge);
483  recHitYResLayer1Modules[i]->Fill(res_y);
484  recHitYPullLayer1Modules[i]->Fill(pull_y);
485  }
486  else if (tTopo->pxbLayer(detId) == 2)
487  {
488  float charge = (*clust).charge();
489  clustChargeLayer2Modules[i]->Fill(charge);
490  recHitYResLayer2Modules[i]->Fill(res_y);
491  recHitYPullLayer2Modules[i]->Fill(pull_y);
492  }
493  else if (tTopo->pxbLayer(detId) == 3)
494  {
495  float charge = (*clust).charge();
496  clustChargeLayer3Modules[i]->Fill(charge);
497  recHitYResLayer3Modules[i]->Fill(res_y);
498  recHitYPullLayer3Modules[i]->Fill(pull_y);
499  }
500  }
501  }
502  int sizeX = (*clust).sizeX();
503  if (tTopo->pxbLayer(detId) == 1) clustXSizeLayer[0]->Fill(sizeX);
504  if (tTopo->pxbLayer(detId) == 2) clustXSizeLayer[1]->Fill(sizeX);
505  if (tTopo->pxbLayer(detId) == 3) clustXSizeLayer[2]->Fill(sizeX);
506 }
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 508 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().

511 {
512  int rows = theGeomDet->specificTopology().nrows();
513  int cols = theGeomDet->specificTopology().ncolumns();
514 
515  const float cmtomicron = 10000.0;
516 
517  int bunch = simHit.eventId().bunchCrossing();
518  int event = simHit.eventId().event();
519 
520  recHitBunchF->Fill(bunch);
521  if (bunch == 0) recHitEventF->Fill(event);
522 
523  LocalPoint lp = recHit.localPosition();
524  float lp_x = lp.x();
525  float lp_y = lp.y();
526 
527  LocalError lerr = recHit.localPositionError();
528  float lerr_x = sqrt(lerr.xx());
529  float lerr_y = sqrt(lerr.yy());
530 
531  float sim_x1 = simHit.entryPoint().x();
532  float sim_x2 = simHit.exitPoint().x();
533  float sim_xpos = 0.5*(sim_x1 + sim_x2);
534 
535  float sim_y1 = simHit.entryPoint().y();
536  float sim_y2 = simHit.exitPoint().y();
537  float sim_ypos = 0.5*(sim_y1 + sim_y2);
538 
539  float pull_x = ( lp_x - sim_xpos ) / lerr_x;
540  float pull_y = ( lp_y - sim_ypos ) / lerr_y;
541 
542 
543  if (rows == 80)
544  {
546  }
547  else if (rows == 160)
548  {
550  }
551 
552  if (cols == 104)
553  {
555  }
556  else if (cols == 156)
557  {
559  }
560  else if (cols == 208)
561  {
563  }
564  else if (cols == 260)
565  {
567  }
568 
569  float res_x = (lp.x() - sim_xpos)*cmtomicron;
570 
571  recHitXResAllF->Fill(res_x);
572  recHitXPullAllF->Fill(pull_x);
573 
574  float res_y = (lp.y() - sim_ypos)*cmtomicron;
575 
576  recHitYPullAllF->Fill(pull_y);
577 
578  // get cluster
579  SiPixelRecHit::ClusterRef const& clust = recHit.cluster();
580 
581  // fill plaquette dependent info
582  for (unsigned int i=0; i<7; i++)
583  {
584  if (tTopo->pxfModule(detId) == i+1)
585  {
586  if (tTopo->pxfDisk(detId) == 1)
587  {
588  int sizeX = (*clust).sizeX();
590 
591  int sizeY = (*clust).sizeY();
593 
594  float charge = (*clust).charge();
596 
599 
602  }
603  else
604  {
605  int sizeX = (*clust).sizeX();
607 
608  int sizeY = (*clust).sizeY();
610 
611  float charge = (*clust).charge();
613 
616 
619 
620  } // end else
621  } // end if module
622  else if (tTopo->pxfPanel(detId) == 2 && (tTopo->pxfModule(detId)+4) == i+1)
623  {
624  if (tTopo->pxfDisk(detId) == 1)
625  {
626  int sizeX = (*clust).sizeX();
628 
629  int sizeY = (*clust).sizeY();
631 
632  float charge = (*clust).charge();
634 
637 
640  }
641  else
642  {
643  int sizeX = (*clust).sizeX();
645 
646  int sizeY = (*clust).sizeY();
648 
649  float charge = (*clust).charge();
651 
654 
657 
658  } // end else
659  } // end else
660  } // end for
661 }
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 60 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustChargeDisk2Plaquettes[7]
private

Definition at line 61 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustChargeLayer1Modules[8]
private

Definition at line 51 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::clustChargeLayer2Modules[8]
private

Definition at line 52 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::clustChargeLayer3Modules[8]
private

Definition at line 53 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::clustXSizeDisk1Plaquettes[7]
private

Definition at line 56 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustXSizeDisk2Plaquettes[7]
private

Definition at line 57 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustXSizeLayer[3]
private

Definition at line 50 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::clustYSizeDisk1Plaquettes[7]
private

Definition at line 58 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustYSizeDisk2Plaquettes[7]
private

Definition at line 59 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::clustYSizeModule[8]
private

Definition at line 49 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

edm::ParameterSet SiPixelRecHitsValid::conf_
private

Definition at line 116 of file SiPixelRecHitsValid.h.

Referenced by analyze().

MonitorElement* SiPixelRecHitsValid::recHitBunchB
private

Definition at line 74 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitBunchF
private

Definition at line 91 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitEventB
private

Definition at line 75 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitEventF
private

Definition at line 92 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitNsimHitDisk1
private

Definition at line 93 of file SiPixelRecHitsValid.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelRecHitsValid::recHitNsimHitDisk2
private

Definition at line 94 of file SiPixelRecHitsValid.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelRecHitsValid::recHitNsimHitLayer[3]
private

Definition at line 76 of file SiPixelRecHitsValid.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelRecHitsValid::recHitXFullModules
private

Definition at line 66 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXHalfModules
private

Definition at line 67 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXPlaquetteSize1
private

Definition at line 81 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXPlaquetteSize2
private

Definition at line 82 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXPullAllB
private

Definition at line 98 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXPullAllF
private

Definition at line 108 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXPullDisk1Plaquettes[7]
private

Definition at line 111 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXPullDisk2Plaquettes[7]
private

Definition at line 112 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXPullFlippedLadderLayers[3]
private

Definition at line 101 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXPullNonFlippedLadderLayers[3]
private

Definition at line 102 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXResAllB
private

Definition at line 64 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXResAllF
private

Definition at line 79 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXResDisk1Plaquettes[7]
private

Definition at line 87 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXResDisk2Plaquettes[7]
private

Definition at line 88 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitXResFlippedLadderLayers[3]
private

Definition at line 69 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitXResNonFlippedLadderLayers[3]
private

Definition at line 70 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYAllModules
private

Definition at line 68 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYPlaquetteSize2
private

Definition at line 83 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPlaquetteSize3
private

Definition at line 84 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPlaquetteSize4
private

Definition at line 85 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPlaquetteSize5
private

Definition at line 86 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPullAllB
private

Definition at line 99 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYPullAllF
private

Definition at line 109 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPullDisk1Plaquettes[7]
private

Definition at line 113 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPullDisk2Plaquettes[7]
private

Definition at line 114 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYPullLayer1Modules[8]
private

Definition at line 103 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYPullLayer2Modules[8]
private

Definition at line 104 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYPullLayer3Modules[8]
private

Definition at line 105 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYResAllB
private

Definition at line 65 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYResAllF
private

Definition at line 80 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms().

MonitorElement* SiPixelRecHitsValid::recHitYResDisk1Plaquettes[7]
private

Definition at line 89 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYResDisk2Plaquettes[7]
private

Definition at line 90 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillForward().

MonitorElement* SiPixelRecHitsValid::recHitYResLayer1Modules[8]
private

Definition at line 71 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYResLayer2Modules[8]
private

Definition at line 72 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

MonitorElement* SiPixelRecHitsValid::recHitYResLayer3Modules[8]
private

Definition at line 73 of file SiPixelRecHitsValid.h.

Referenced by bookHistograms(), and fillBarrel().

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

Definition at line 117 of file SiPixelRecHitsValid.h.

Referenced by analyze().