CMS 3D CMS Logo

SiPixelPhase1TrackResiduals.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiPixelPhase1TrackResiduals
4 // Class: SiPixelPhase1TrackResiduals
5 //
6 
7 // Original Author: Marcel Schneider
8 
11 
20 
22  SiPixelPhase1Base(iConfig),
23  validator(iConfig, consumesCollector())
24 {
25  offlinePrimaryVerticesToken_ = consumes<reco::VertexCollection>(std::string("offlinePrimaryVertices"));
26 }
27 
29 
31  iSetup.get<TrackerDigiGeometryRecord>().get(tracker);
32  assert(tracker.isValid());
33 
35  iEvent.getByToken(offlinePrimaryVerticesToken_, vertices);
36  if (!vertices.isValid() || vertices->size() == 0) return;
37  const auto primaryVertex = vertices->at(0);
38 
39  std::vector<TrackerValidationVariables::AVTrackStruct> vtracks;
40  validator.fillTrackQuantities(iEvent, iSetup,
41  // tell the validator to only look at good tracks
42  [&](const reco::Track& track) -> bool {
43  return track.pt() > 0.75
44  && std::abs( track.dxy(primaryVertex.position()) ) < 5*track.dxyError();
45  }, vtracks);
46 
47  for (auto& track : vtracks) {
48  for (auto& it : track.hits) {
49  auto id = DetId(it.rawDetId);
50  auto isPixel = id.subdetId() == 1 || id.subdetId() == 2;
51  if (!isPixel) continue;
52 
53  //TO BE UPDATED WITH VINCENZO STUFF
54  const PixelGeomDetUnit* geomdetunit = dynamic_cast<const PixelGeomDetUnit*> ( tracker->idToDet(id) );
55  const PixelTopology& topol = geomdetunit->specificTopology();
56 
57  float lpx=it.localX;
58  float lpy=it.localY;
59  LocalPoint lp(lpx,lpy);
60 
62  int row = (int) mp.x();
63  int col = (int) mp.y();
64 
65  histo[RESIDUAL_X].fill(it.resXprime, id, &iEvent, col, row);
66  histo[RESIDUAL_Y].fill(it.resYprime, id, &iEvent, col, row);
67  }
68  }
69 
70 }
71 
73 
T y() const
Definition: PV2DBase.h:46
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
double dxyError() const
error on dxy
Definition: TrackBase.h:791
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
void analyze(const edm::Event &, const edm::EventSetup &)
int iEvent
Definition: GenABIO.cc:230
virtual float localX(const float mpX) const =0
double pt() const
track transverse momentum
Definition: TrackBase.h:616
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
SiPixelPhase1TrackResiduals(const edm::ParameterSet &conf)
TrackerValidationVariables validator
Definition: DetId.h:18
void fillTrackQuantities(const edm::Event &, const edm::EventSetup &, std::vector< AVTrackStruct > &v_avtrackout)
edm::EDGetTokenT< reco::VertexCollection > offlinePrimaryVerticesToken_
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 isPixel(HitType hitType)
bool isValid() const
Definition: ESHandle.h:47
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:586
T x() const
Definition: PV2DBase.h:45
const TrackerGeomDet * idToDet(DetId) const