CMS 3D CMS Logo

SiPixelPhase1RecHits.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiPixelPhase1RecHits
4 // Class: SiPixelPhase1RecHits
5 //
6 
7 // Original Author: Marcel Schneider
8 
11 
14 
20 
22  SiPixelPhase1Base(iConfig)
23 {
24  srcToken_ = consumes<SiPixelRecHitCollection>(iConfig.getParameter<edm::InputTag>("src"));
25 }
26 
28 
30  iSetup.get<TrackerDigiGeometryRecord>().get(tracker);
31  assert(tracker.isValid());
32 
34  iEvent.getByToken(srcToken_, input);
35  if (!input.isValid()) return;
36 
38  for (it = input->begin(); it != input->end(); ++it) {
39  auto id = DetId(it->detId());
40 
41  for(SiPixelRecHit const& rechit : *it) {
42  SiPixelRecHit::ClusterRef const& clust = rechit.cluster();
43 
44  int sizeX = (*clust).sizeX();
45  int sizeY = (*clust).sizeY();
46 
47  const PixelGeomDetUnit* geomdetunit = dynamic_cast<const PixelGeomDetUnit*> ( tracker->idToDet(id) );
48  const PixelTopology& topol = geomdetunit->specificTopology();
49 
50  LocalPoint lp = rechit.localPosition();
52 
53  int row = (int) mp.x();
54  int col = (int) mp.y();
55 
56  float rechit_x = lp.x();
57  float rechit_y = lp.y();
58 
59  LocalError lerr = rechit.localPositionError();
60  float lerr_x = sqrt(lerr.xx());
61  float lerr_y = sqrt(lerr.yy());
62 
63  histo[NRECHITS].fill(id, &iEvent, col, row);
64 
65  histo[CLUST_X].fill(sizeX, id, &iEvent, col, row);
66  histo[CLUST_Y].fill(sizeY, id, &iEvent, col, row);
67 
68  histo[ERROR_X].fill(lerr_x, id, &iEvent);
69  histo[ERROR_Y].fill(lerr_y, id, &iEvent);
70 
71  histo[POS].fill(rechit_x, rechit_y, id, &iEvent);
72 
73  double clusterProbability = rechit.clusterProbability(0);
74  if (clusterProbability > 0)
75  histo[CLUSTER_PROB].fill(log10(clusterProbability), id, &iEvent);
76  }
77  }
78 
79  histo[NRECHITS].executePerEventHarvesting(&iEvent);
80 }
81 
83 
T getParameter(std::string const &) const
float xx() const
Definition: LocalError.h:24
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
T y() const
Definition: PV2DBase.h:46
edm::EDGetTokenT< SiPixelRecHitCollection > srcToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
void analyze(const edm::Event &, const edm::EventSetup &)
SiPixelPhase1RecHits(const edm::ParameterSet &conf)
T y() const
Definition: PV3DBase.h:63
static std::string const input
Definition: EdmProvDump.cc:44
int iEvent
Definition: GenABIO.cc:230
float yy() const
Definition: LocalError.h:26
T sqrt(T t)
Definition: SSEVec.h:18
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
Definition: DetId.h:18
const T & get() const
Definition: EventSetup.h:56
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
std::vector< HistogramManager > histo
col
Definition: cuy.py:1008
bool isValid() const
Definition: ESHandle.h:47
T x() const
Definition: PV2DBase.h:45
T x() const
Definition: PV3DBase.h:62
const TrackerGeomDet * idToDet(DetId) const
Our base class.
Definition: SiPixelRecHit.h:23