CMS 3D CMS Logo

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

#include <SiPixelPhase1RecHitsV.h>

Inheritance diagram for SiPixelPhase1RecHitsV:
SiPixelPhase1Base DQMEDAnalyzer HistogramManagerHolder edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
 SiPixelPhase1RecHitsV (const edm::ParameterSet &conf)
 
- Public Member Functions inherited from SiPixelPhase1Base
void bookHistograms (DQMStore::IBooker &iBooker, edm::Run const &run, edm::EventSetup const &) override
 
 SiPixelPhase1Base (const edm::ParameterSet &iConfig)
 
 ~SiPixelPhase1Base () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
- Public Member Functions inherited from HistogramManagerHolder
 HistogramManagerHolder (const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iC, edm::Transition transition=edm::Transition::BeginRun)
 

Private Types

enum  {
  IN_TIME_BUNCH, OUT_TIME_BUNCH, NSIMHITS, RECHIT_X,
  RECHIT_Y, RES_X, RES_Y, ERROR_X,
  ERROR_Y, PULL_X, PULL_Y
}
 

Private Attributes

edm::EDGetTokenT
< SiPixelRecHitCollection
srcToken_
 
TrackerHitAssociator::Config trackerHitAssociatorConfig_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr
< DQMEDAnalyzerGlobalCache
initializeGlobalCache (edm::ParameterSet const &)
 
- Protected Types inherited from SiPixelPhase1Base
enum  { DCS }
 
- Protected Member Functions inherited from SiPixelPhase1Base
bool checktrigger (const edm::Event &iEvent, const edm::EventSetup &, const unsigned trgidx) const
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 
- Protected Attributes inherited from HistogramManagerHolder
GeometryInterface geometryInterface
 
std::vector< HistogramManagerhisto
 

Detailed Description

Definition at line 16 of file SiPixelPhase1RecHitsV.h.

Member Enumeration Documentation

anonymous enum
private

Constructor & Destructor Documentation

SiPixelPhase1RecHitsV::SiPixelPhase1RecHitsV ( const edm::ParameterSet conf)
explicit

Definition at line 19 of file SiPixelPhase1RecHitsV.cc.

21  trackerHitAssociatorConfig_(iConfig, consumesCollector()),
22  srcToken_(consumes<SiPixelRecHitCollection>(iConfig.getParameter<edm::InputTag>("src"))) {}
SiPixelPhase1Base(const edm::ParameterSet &iConfig)
edm::EDGetTokenT< SiPixelRecHitCollection > srcToken_
TrackerHitAssociator::Config trackerHitAssociatorConfig_

Member Function Documentation

void SiPixelPhase1RecHitsV::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements SiPixelPhase1Base.

Definition at line 24 of file SiPixelPhase1RecHitsV.cc.

References funct::abs(), TrackerHitAssociator::associateHit(), EncodedEventId::bunchCrossing(), PSimHit::entryPoint(), ERROR_X, ERROR_Y, EncodedEventId::event(), edmPickEvents::event, PSimHit::eventId(), PSimHit::exitPoint(), edm::Event::getByToken(), HistogramManagerHolder::histo, IN_TIME_BUNCH, input, edm::HandleBase::isValid(), visualization-live-secondInstance_cfg::m, NSIMHITS, OUT_TIME_BUNCH, PULL_X, PULL_Y, RECHIT_X, RECHIT_Y, RES_X, RES_Y, mathSSE::sqrt(), srcToken_, trackerHitAssociatorConfig_, PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), and LocalError::yy().

24  {
26  iEvent.getByToken(srcToken_, input);
27  if (!input.isValid())
28  return;
29 
31 
33  for (it = input->begin(); it != input->end(); ++it) {
34  auto id = DetId(it->detId());
35 
36  for (SiPixelRecHit const& rechit : *it) {
37  std::vector<PSimHit> associateSimHit;
38  associateSimHit = associate.associateHit(rechit);
39  std::vector<PSimHit>::const_iterator closestIt = associateSimHit.begin();
40 
41  LocalPoint lp = rechit.localPosition();
42  float rechit_x = lp.x();
43  float rechit_y = lp.y();
44 
45  LocalError lerr = rechit.localPositionError();
46  float lerr_x = sqrt(lerr.xx());
47  float lerr_y = sqrt(lerr.yy());
48 
49  // loop over associated sim hits and find the closest
50  if (!associateSimHit.empty()) {
51  float closestSimHit = 9999.9;
52 
53  for (std::vector<PSimHit>::const_iterator m = associateSimHit.begin(); m < associateSimHit.end(); m++) {
54  float sim_x1((*m).entryPoint().x()), sim_x2((*m).exitPoint().x()), sim_xpos(0.5 * (sim_x1 + sim_x2));
55  float sim_y1((*m).entryPoint().y()), sim_y2((*m).exitPoint().y()), sim_ypos(0.5 * (sim_y1 + sim_y2));
56 
57  float xres(std::abs(sim_xpos - rechit_x)), yres(std::abs(sim_ypos - rechit_y));
58  float dist = std::sqrt(xres * xres + yres * yres);
59 
60  if (dist < closestSimHit) {
61  closestSimHit = dist;
62  closestIt = m;
63  }
64  }
65  }
66 
67  // Sim Hit stuff
68 
69  if (!associateSimHit.empty()) {
70  const PSimHit& simHit = *closestIt;
71 
72  int bunch = simHit.eventId().bunchCrossing();
73  int event = simHit.eventId().event();
74 
75  float sim_x1(simHit.entryPoint().x()), sim_x2(simHit.exitPoint().x()), sim_xpos(0.5 * (sim_x1 + sim_x2));
76  float sim_y1(simHit.entryPoint().y()), sim_y2(simHit.exitPoint().y()), sim_ypos(0.5 * (sim_y1 + sim_y2));
77 
78  float res_x = (rechit_x - sim_xpos) * 10000.0;
79  float res_y = (rechit_y - sim_ypos) * 10000.0;
80 
81  float pull_x = (rechit_x - sim_xpos) / lerr_x;
82  float pull_y = (rechit_y - sim_ypos) / lerr_y;
83 
84  // Now Plotting stuff
85  if (bunch == 0)
86  histo[IN_TIME_BUNCH].fill(bunch, id, &iEvent);
87  if (bunch != 0)
88  histo[OUT_TIME_BUNCH].fill(bunch, id, &iEvent);
89 
90  histo[NSIMHITS].fill(event, id, &iEvent);
91 
92  histo[RECHIT_X].fill(rechit_x, id, &iEvent);
93  histo[RECHIT_Y].fill(rechit_y, id, &iEvent);
94 
95  histo[RES_X].fill(res_x, id, &iEvent);
96  histo[RES_Y].fill(res_y, id, &iEvent);
97 
98  histo[ERROR_X].fill(lerr_x, id, &iEvent);
99  histo[ERROR_Y].fill(lerr_y, id, &iEvent);
100 
101  histo[PULL_X].fill(pull_x, id, &iEvent);
102  histo[PULL_Y].fill(pull_y, id, &iEvent);
103  }
104  }
105  }
106 }
float xx() const
Definition: LocalError.h:22
int event() const
get the contents of the subdetector field (should be protected?)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
T y() const
Definition: PV3DBase.h:60
static std::string const input
Definition: EdmProvDump.cc:47
Local3DPoint exitPoint() const
Exit point in the local Det frame.
Definition: PSimHit.h:46
float yy() const
Definition: LocalError.h:24
T sqrt(T t)
Definition: SSEVec.h:19
int bunchCrossing() const
get the detector field from this detid
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
edm::EDGetTokenT< SiPixelRecHitCollection > srcToken_
EncodedEventId eventId() const
Definition: PSimHit.h:108
bool isValid() const
Definition: HandleBase.h:70
TrackerHitAssociator::Config trackerHitAssociatorConfig_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetId.h:17
std::vector< HistogramManager > histo
T x() const
Definition: PV3DBase.h:59
Local3DPoint entryPoint() const
Entry point in the local Det frame.
Definition: PSimHit.h:43
Our base class.
Definition: SiPixelRecHit.h:23

Member Data Documentation

edm::EDGetTokenT<SiPixelRecHitCollection> SiPixelPhase1RecHitsV::srcToken_
private

Definition at line 37 of file SiPixelPhase1RecHitsV.h.

Referenced by analyze().

TrackerHitAssociator::Config SiPixelPhase1RecHitsV::trackerHitAssociatorConfig_
private

Definition at line 36 of file SiPixelPhase1RecHitsV.h.

Referenced by analyze().