CMS 3D CMS Logo

TrackingRecoMaterialAnalyser.cc
Go to the documentation of this file.
10 
16 
24 
25 #include <cassert>
26 #include <unordered_map>
27 #include <string>
28 
29 // Values are not ordered randomly, but the order is taken from
30 // http://cmslxr.fnal.gov/dxr/CMSSW/source/Geometry/CommonDetUnit/interface/GeomDetEnumerators.h#15
31 static const std::vector<std::string> sDETS{"", "PXB", "PXF", "TIB", "TID", "TOB", "TEC"};
32 
34 public:
36  void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override;
37  void analyze(const edm::Event &, const edm::EventSetup &) override;
39 
40 private:
41  inline bool isDoubleSided(const TrackerTopology *tTopo, DetId id) { return (tTopo->glued(id)); }
48  bool usePV_;
50  std::unordered_map<std::string, MonitorElement *> histosOriEta_;
51  std::unordered_map<std::string, MonitorElement *> histosEta_;
65 };
66 
67 //-------------------------------------------------------------------------
69  : refitter_(iPSet, consumesCollector()),
70  tracksToken_(consumes<reco::TrackCollection>(iPSet.getParameter<edm::InputTag>("tracks"))),
71  beamspotToken_(consumes<reco::BeamSpot>(iPSet.getParameter<edm::InputTag>("beamspot"))),
72  verticesToken_(mayConsume<reco::VertexCollection>(iPSet.getParameter<edm::InputTag>("vertices"))),
73  trackerGeometryTokenRun_(esConsumes<edm::Transition::BeginRun>()),
74  tTopoToken_(esConsumes()),
75  usePV_(iPSet.getParameter<bool>("usePV")),
76  folder_(iPSet.getParameter<std::string>("folder")),
77  histo_RZ_(nullptr),
78  histo_RZ_Ori_(nullptr),
79  deltaPt_in_out_2d_(nullptr),
80  deltaP_in_out_vs_eta_(nullptr),
81  deltaP_in_out_vs_z_(nullptr),
82  deltaP_in_out_vs_eta_2d_(nullptr),
83  deltaP_in_out_vs_eta_vs_phi_2d_(nullptr),
84  deltaP_in_out_vs_z_2d_(nullptr),
85  deltaPt_in_out_vs_eta_(nullptr),
86  deltaPt_in_out_vs_z_(nullptr),
87  deltaPl_in_out_vs_eta_(nullptr),
88  deltaPl_in_out_vs_z_(nullptr),
89  P_vs_eta_2d_(nullptr) {}
90 
91 //-------------------------------------------------------------------------
93 
94 //-------------------------------------------------------------------------
96  edm::Run const &,
97  edm::EventSetup const &setup) {
98  using namespace std;
99  const TrackerGeometry &trackerGeometry = setup.getData(trackerGeometryTokenRun_);
100 
101  ibook.setCurrentFolder(folder_);
102 
103  // Histogram to store the radiation length map, in the R-Z plane,
104  // gathering numbers directly from the trackerRecoMaterial.xml
105  // file. The numbers are not corrected for the track angle.
106  histo_RZ_Ori_ = ibook.bookProfile2D("OriRadLen", "Original_RadLen", 600, -300., 300, 120, 0., 120., 0., 1.);
107 
108  // Histogram to store the radiation length map, as before, but
109  // correcting the numbers with the track angle. This represents the
110  // real material seen by the track.
111  histo_RZ_ = ibook.bookProfile2D("RadLen", "RadLen", 600, -300., 300, 120, 0., 120., 0., 1.);
112 
113  // Histogram to show the deltaP Out-In in the eta-phi plane.
115  "DeltaP_in_out_vs_eta_vs_phi_2d", "DeltaP_in_out_vs_eta_vs_phi_2d", 100, -3.0, 3.0, 100, -3.15, 3.15, 0., 100.);
116 
117  // Histogram to show the deltaP Out-In vs eta.
119  ibook.book2D("DeltaP_in_out_vs_eta_2d", "DeltaP_in_out_vs_eta_2d", 100, -3.0, 3.0, 100, 0., 1);
120 
121  // Histogram to show the deltaP Out-In vs Z. The Z coordinate is the
122  // one computed at the outermost hit.
123  deltaP_in_out_vs_z_2d_ = ibook.book2D("DeltaP_in_out_vs_z_2d", "DeltaP_in_out_vs_z_2d", 600, -300, 300, 200., -1, 1.);
124 
125  // Histogram to show the deltaP Out-In vs eta. The eta is the one
126  // computed at the innermost hit.
128  ibook.bookProfile("DeltaP_in_out_vs_eta", "DeltaP_in_out_vs_eta", 100, -3.0, 3.0, -100., 100.);
129  deltaP_in_out_vs_z_ = ibook.bookProfile("DeltaP_in_out_vs_z", "DeltaP_in_out_vs_z", 600, -300, 300, -100., 100.);
130 
131  // Histogram to show the delta_Pt Out-In vs eta. The eta is the one
132  // computed at the innermost hit.
134  ibook.bookProfile("DeltaPt_in_out_vs_eta", "DeltaPt_in_out_vs_eta", 100, -3.0, 3.0, -100., 100.);
135 
136  // Histogram to show the delta_Pt Out-In vs Z. The Z is the one
137  // computed at the outermost hit.
138  deltaPt_in_out_vs_z_ = ibook.bookProfile("DeltaPt_in_out_vs_z", "DeltaPt_in_out_vs_z", 600, -300, 300, -100., 100);
139 
140  // Histogram to show the delta_Pl Out-In vs eta. The eta is the one
141  // computed at the innermost hit.
143  ibook.bookProfile("DeltaPz_in_out_vs_eta", "DeltaPz_in_out_vs_eta", 100, -3.0, 3.0, -100., 100.);
144 
145  // Histogram to show the delta_Pl Out-In vs Z. The Z is the one
146  // computed at the outermost hit.
147  deltaPl_in_out_vs_z_ = ibook.bookProfile("DeltaPz_in_out_vs_z", "DeltaPz_in_out_vs_z", 600, -300, 300, -100., 100.);
148 
149  // Histogram to show the delta_Pt Out-In in the Z-R plane. Z and R
150  // are related to the outermost hit.
151  deltaPt_in_out_2d_ = ibook.bookProfile2D("DeltaPt 2D", "DeltaPt 2D", 600, -300., 300, 120, 0., 120., -100., 100.);
152 
153  // Histogram to show the distribution of p vs eta for all tracks.
154  P_vs_eta_2d_ = ibook.book2D("P_vs_eta_2d", "P_vs_eta_2d", 100, -3.0, 3.0, 100., 0., 5.);
155  char title[50];
156  char key[20];
157  for (unsigned int det = 1; det < sDETS.size(); ++det) {
158  for (unsigned int sub_det = 1; sub_det <= trackerGeometry.numberOfLayers(det); ++sub_det) {
159  memset(title, 0, sizeof(title));
160  snprintf(title, sizeof(title), "Original_RadLen_vs_Eta_%s%d", sDETS[det].data(), sub_det);
161  snprintf(key, sizeof(key), "%s%d", sDETS[det].data(), sub_det);
162  histosOriEta_.insert(
163  make_pair<string, MonitorElement *>(key, ibook.bookProfile(title, title, 250, -5.0, 5.0, 0., 1.)));
164  snprintf(title, sizeof(title), "RadLen_vs_Eta_%s%d", sDETS[det].data(), sub_det);
165  histosEta_.insert(
166  make_pair<string, MonitorElement *>(key, ibook.bookProfile(title, title, 250, -5.0, 5.0, 0., 1.)));
167  }
168  }
169 }
170 
171 //-------------------------------------------------------------------------
173  using namespace edm;
174  using namespace reco;
175  using namespace std;
176 
178 
181 
182  // Get the TrackerTopology
183  const TrackerTopology *const tTopo = &setup.getData(tTopoToken_);
184 
185  // Get Tracks
186  event.getByToken(tracksToken_, tracks);
187  if (!tracks.isValid() || tracks->empty()) {
188  LogInfo("TrackingRecoMaterialAnalyser") << "Invalid or empty track collection" << endl;
189  return;
190  }
191 
192  // Track Selector
193  auto selector = [](const Track &track, const reco::Vertex::Point &pv) -> bool {
194  return (track.quality(track.qualityByName("highPurity")) && track.dxy(pv) < 0.01 &&
195  track.hitPattern().numberOfLostTrackerHits(HitPattern::MISSING_OUTER_HITS) == 0);
196  };
197 
198  // Get BeamSpot
200  event.getByToken(beamspotToken_, beamSpot);
201  // Bail out if missing
202  if (!beamSpot.isValid())
203  return;
204 
205  reco::Vertex::Point pv(beamSpot->position());
206  if (usePV_) {
207  event.getByToken(verticesToken_, vertices);
208  if (vertices.isValid() && !vertices->empty()) {
209  // Since we need to use eta and Z information from the tracks, in
210  // order not to have the reco material distribution washed out due
211  // to geometrical effects, we need to confine the PV to some small
212  // region.
213  const Vertex &v = (*vertices)[0];
214  if (!v.isFake() && v.ndof() > 4 && std::fabs(v.z()) < 24 && std::fabs(v.position().rho()) < 2)
215  pv = v.position();
216  }
217  }
218 
219  // Main idea:
220  // * select first good tracks in input, according to reasonable criteria
221  // * refit the tracks so that we have access to the TrajectoryMeasurements
222  // that internally have all the information about the TSOS on all
223  // crossed layers. We need the refit track and not the original one so
224  // that we are able to correctly compute the path travelled by the track
225  // within the detector, using its updated TSOS. The material description
226  // can in principle be derived also directly from the rechits, via the
227  // det()[(->)GeomDet *]->mediumProperties chain, but that would simply give the
228  // face values, not the "real" ones used while propagating the track.
229  // * Loop on all measurements, extract the information about the TSOS,
230  // its surface and its mediumProperties
231  // * Make plots for the untouched material properties, but also for the
232  // ones corrected by the track direction, since the material properties,
233  // according to the documentation, should refer to normal incidence of
234  // the track, which is seldom the case, according to the current direction
235  TrajectoryStateOnSurface current_tsos;
236  DetId current_det;
237  for (auto const &track : *tracks) {
238  if (!selector(track, pv))
239  continue;
240  auto const &inner = track.innerMomentum();
241  auto const &outer = track.outerMomentum();
242  deltaP_in_out_vs_eta_->Fill(inner.eta(), inner.R() - outer.R());
243  deltaP_in_out_vs_z_->Fill(track.outerZ(), inner.R() - outer.R());
244  deltaP_in_out_vs_eta_2d_->Fill(inner.eta(), inner.R() - outer.R());
245  deltaP_in_out_vs_eta_vs_phi_2d_->Fill(inner.eta(), inner.phi(), inner.R() - outer.R());
246  deltaP_in_out_vs_z_2d_->Fill(track.outerZ(), inner.R() - outer.R());
247  deltaPt_in_out_vs_eta_->Fill(inner.eta(), inner.rho() - outer.rho());
248  deltaPt_in_out_vs_z_->Fill(track.outerZ(), inner.rho() - outer.rho());
249  deltaPl_in_out_vs_eta_->Fill(inner.eta(), inner.z() - outer.z());
250  deltaPl_in_out_vs_z_->Fill(track.outerZ(), inner.z() - outer.z());
251  deltaPt_in_out_2d_->Fill(track.outerZ(), track.outerPosition().rho(), inner.rho() - outer.rho());
252  P_vs_eta_2d_->Fill(track.eta(), track.p());
253  vector<Trajectory> traj = refitter_.transform(track);
254  if (traj.size() > 1 || traj.empty())
255  continue;
256  for (auto const &tm : traj.front().measurements()) {
257  if (tm.recHit().get() &&
258  (tm.recHitR().type() == TrackingRecHit::valid || tm.recHitR().type() == TrackingRecHit::missing)) {
259  current_tsos = tm.updatedState().isValid() ? tm.updatedState() : tm.forwardPredictedState();
260  auto const &localP = current_tsos.localMomentum();
261  current_det = tm.recHit()->geographicalId();
262  const Surface &surface = current_tsos.surface();
263  assert(tm.recHit()->surface() == &surface);
264  if (!surface.mediumProperties().isValid()) {
265  LogError("TrackingRecoMaterialAnalyser")
266  << "Medium properties for material linked to detector"
267  << " are invalid at: " << current_tsos.globalPosition() << " " << (SiStripDetId)current_det << endl;
268  assert(0);
269  continue;
270  }
271  float p2 = localP.mag2();
272  float xf = std::abs(std::sqrt(p2) / localP.z());
273  float ori_xi = surface.mediumProperties().xi();
274  float ori_radLen = surface.mediumProperties().radLen();
275  float xi = ori_xi * xf;
276  float radLen = ori_radLen * xf;
277 
278  // NOTA BENE: THIS ASSUMES THAT THE TRACKS HAVE BEEN PRODUCED
279  // WITH SPLITTING, AS IS THE CASE FOR THE generalTracks
280  // collection.
281 
282  // Since there are double-sided (glued) modules all over the
283  // tracker, the material budget has been internally
284  // partitioned in two equal components, so that each single
285  // layer will receive half of the correct radLen. For this
286  // reason, only for the double-sided components, we rescale
287  // the obtained radLen by 2.
288 
289  // In particular see code here:
290  // http://cmslxr.fnal.gov/dxr/CMSSW_8_0_5/source/Geometry/TrackerGeometryBuilder/src/TrackerGeomBuilderFromGeometricDet.cc#213
291  // where, in the SiStrip Tracker, if the module has a partner
292  // (i.e. it's a glued detector) the plane is built with a
293  // scaling of 0.5. The actual plane is built few lines below:
294  // http://cmslxr.fnal.gov/dxr/CMSSW_8_0_5/source/Geometry/TrackerGeometryBuilder/src/TrackerGeomBuilderFromGeometricDet.cc#287
295 
296  if (isDoubleSided(tTopo, current_det)) {
297  LogTrace("TrackingRecoMaterialAnalyser")
298  << "Eta: " << track.eta() << " " << sDETS[current_det.subdetId()] << tTopo->layer(current_det)
299  << " has ori_radLen: " << ori_radLen << " and ori_xi: " << xi << " and has radLen: " << radLen
300  << " and xi: " << xi << endl;
301  ori_radLen *= 2.;
302  radLen *= 2.;
303  }
304 
305  histosOriEta_[sDETS[current_det.subdetId()] + to_string(tTopo->layer(current_det))]->Fill(
306  current_tsos.globalPosition().eta(), ori_radLen);
307  histosEta_[sDETS[current_det.subdetId()] + to_string(tTopo->layer(current_det))]->Fill(
308  current_tsos.globalPosition().eta(), radLen);
309  histo_RZ_Ori_->Fill(current_tsos.globalPosition().z(), current_tsos.globalPosition().perp(), ori_radLen);
310  histo_RZ_->Fill(current_tsos.globalPosition().z(), current_tsos.globalPosition().perp(), radLen);
311  LogInfo("TrackingRecoMaterialAnalyser")
312  << "Eta: " << track.eta() << " " << sDETS[current_det.subdetId()] << tTopo->layer(current_det)
313  << " has ori_radLen: " << ori_radLen << " and ori_xi: " << xi << " and has radLen: " << radLen
314  << " and xi: " << xi << endl;
315  }
316  }
317  }
318 }
319 
320 //-------------------------------------------------------------------------
321 // define as a plugin
TrackingRecoMaterialAnalyser::deltaPt_in_out_2d_
MonitorElement * deltaPt_in_out_2d_
Definition: TrackingRecoMaterialAnalyser.cc:54
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
TrackingRecoMaterialAnalyser::refitter_
TrackTransformer refitter_
Definition: TrackingRecoMaterialAnalyser.cc:42
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
TrajectoryStateOnSurface::localMomentum
LocalVector localMomentum() const
Definition: TrajectoryStateOnSurface.h:75
electrons_cff.bool
bool
Definition: electrons_cff.py:393
mps_fire.i
i
Definition: mps_fire.py:428
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11713
TrackerGeometry.h
align::BeamSpot
Definition: StructureType.h:89
TrackTransformer::setServices
void setServices(const edm::EventSetup &) override
set the services needed by the TrackTransformer
Definition: TrackTransformer.cc:79
edm::Run
Definition: Run.h:45
edm::EDGetTokenT< reco::TrackCollection >
MediumProperties::radLen
float radLen() const
Definition: MediumProperties.h:20
TrackingRecoMaterialAnalyser::P_vs_eta_2d_
MonitorElement * P_vs_eta_2d_
Definition: TrackingRecoMaterialAnalyser.cc:64
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
dqm::implementation::IBooker::bookProfile2D
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
TrackingRecoMaterialAnalyser::~TrackingRecoMaterialAnalyser
~TrackingRecoMaterialAnalyser() override
Definition: TrackingRecoMaterialAnalyser.cc:92
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
TrackingRecoMaterialAnalyser::deltaP_in_out_vs_eta_vs_phi_2d_
MonitorElement * deltaP_in_out_vs_eta_vs_phi_2d_
Definition: TrackingRecoMaterialAnalyser.cc:58
hybridSuperClusters_cfi.xi
xi
Definition: hybridSuperClusters_cfi.py:10
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
TrackTransformer::transform
std::vector< Trajectory > transform(const reco::Track &) const override
Convert a reco::Track into Trajectory.
Definition: TrackTransformer.cc:182
cms::cuda::assert
assert(be >=bs)
Surface
Definition: Surface.h:36
DQMStore.h
TrackerTopology::layer
unsigned int layer(const DetId &id) const
Definition: TrackerTopology.cc:47
SiStripDetId.h
TrackingRecoMaterialAnalyser::beamspotToken_
const edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
Definition: TrackingRecoMaterialAnalyser.cc:44
TrackingRecoMaterialAnalyser
Definition: TrackingRecoMaterialAnalyser.cc:33
EDAnalyzer.h
TrackingRecoMaterialAnalyser::histosOriEta_
std::unordered_map< std::string, MonitorElement * > histosOriEta_
Definition: TrackingRecoMaterialAnalyser.cc:50
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
TrackingRecoMaterialAnalyser::tracksToken_
const edm::EDGetTokenT< reco::TrackCollection > tracksToken_
Definition: TrackingRecoMaterialAnalyser.cc:43
findQualityFiles.v
v
Definition: findQualityFiles.py:179
edm::Handle
Definition: AssociativeIterator.h:50
TrackingRecoMaterialAnalyser::isDoubleSided
bool isDoubleSided(const TrackerTopology *tTopo, DetId id)
Definition: TrackingRecoMaterialAnalyser.cc:41
TrackingRecoMaterialAnalyser::usePV_
bool usePV_
Definition: TrackingRecoMaterialAnalyser.cc:48
Surface::mediumProperties
const MediumProperties & mediumProperties() const
Definition: Surface.h:83
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
TrackerGeometry::numberOfLayers
unsigned int numberOfLayers(int subdet) const
Definition: TrackerGeometry.cc:211
TrackingRecoMaterialAnalyser::histo_RZ_Ori_
MonitorElement * histo_RZ_Ori_
Definition: TrackingRecoMaterialAnalyser.cc:53
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
DetId
Definition: DetId.h:17
TrackingRecoMaterialAnalyser::tTopoToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
Definition: TrackingRecoMaterialAnalyser.cc:47
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
MakerMacros.h
TrackerTopology.h
TrackingRecoMaterialAnalyser::deltaPl_in_out_vs_z_
MonitorElement * deltaPl_in_out_vs_z_
Definition: TrackingRecoMaterialAnalyser.cc:63
TrackingRecoMaterialAnalyser::bookHistograms
void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
Definition: TrackingRecoMaterialAnalyser.cc:95
TrackerTopologyRcd.h
Track.h
TrackFwd.h
TrackerTopology::glued
uint32_t glued(const DetId &id) const
Definition: TrackerTopology.cc:85
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
BeamSpot.h
TrackingRecoMaterialAnalyser::deltaP_in_out_vs_eta_2d_
MonitorElement * deltaP_in_out_vs_eta_2d_
Definition: TrackingRecoMaterialAnalyser.cc:57
SurfaceOrientation::inner
Definition: Surface.h:19
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
reco::Track
Definition: Track.h:27
p2
double p2[4]
Definition: TauolaWrapper.h:90
dqm::implementation::IBooker::bookProfile
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
fastSimProducer_cff.radLen
radLen
Definition: fastSimProducer_cff.py:62
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
DQMEDAnalyzer.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
sDETS
static const std::vector< std::string > sDETS
Definition: TrackingRecoMaterialAnalyser.cc:31
folder_
std::string folder_
Definition: DQMEDAnalyzer.cc:60
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
TrackerDigiGeometryRecord.h
edm::ParameterSet
Definition: ParameterSet.h:47
edm::Transition
Transition
Definition: Transition.h:12
Event.h
TrackingRecHit::missing
Definition: TrackingRecHit.h:47
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
TrackingRecoMaterialAnalyser::deltaPt_in_out_vs_z_
MonitorElement * deltaPt_in_out_vs_z_
Definition: TrackingRecoMaterialAnalyser.cc:61
ModuleDef.h
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
TrackTransformer.h
edm::EventSetup
Definition: EventSetup.h:57
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
TrackingRecoMaterialAnalyser::deltaPl_in_out_vs_eta_
MonitorElement * deltaPl_in_out_vs_eta_
Definition: TrackingRecoMaterialAnalyser.cc:62
TrackingRecoMaterialAnalyser::deltaP_in_out_vs_eta_
MonitorElement * deltaP_in_out_vs_eta_
Definition: TrackingRecoMaterialAnalyser.cc:55
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord >
TrackingRecHit::valid
Definition: TrackingRecHit.h:46
HcalObjRepresent::Fill
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Definition: HcalObjRepresent.h:1053
BaseTrackerRecHit.h
MediumProperties::isValid
bool isValid() const
Definition: MediumProperties.h:26
VertexFwd.h
Trajectory.h
TrackingRecoMaterialAnalyser::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: TrackingRecoMaterialAnalyser.cc:172
TrackingRecoMaterialAnalyser::deltaPt_in_out_vs_eta_
MonitorElement * deltaPt_in_out_vs_eta_
Definition: TrackingRecoMaterialAnalyser.cc:60
reco::Vertex::Point
math::XYZPoint Point
point in the space
Definition: Vertex.h:40
std
Definition: JetResolutionObject.h:76
MediumProperties::xi
float xi() const
Definition: MediumProperties.h:24
DetId.h
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
TrackingRecoMaterialAnalyser::histo_RZ_
MonitorElement * histo_RZ_
Definition: TrackingRecoMaterialAnalyser.cc:52
TrackingRecoMaterialAnalyser::deltaP_in_out_vs_z_2d_
MonitorElement * deltaP_in_out_vs_z_2d_
Definition: TrackingRecoMaterialAnalyser.cc:59
EventSetup.h
TrackingRecoMaterialAnalyser::trackerGeometryTokenRun_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryTokenRun_
Definition: TrackingRecoMaterialAnalyser.cc:46
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
dqm::implementation::IBooker
Definition: DQMStore.h:43
TrajectoryStateOnSurface::surface
const SurfaceType & surface() const
Definition: TrajectoryStateOnSurface.h:78
ConsumesCollector.h
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
ParameterSet.h
TrackingRecoMaterialAnalyser::verticesToken_
const edm::EDGetTokenT< reco::VertexCollection > verticesToken_
Definition: TrackingRecoMaterialAnalyser.cc:45
SiStripDetId
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:18
SurfaceOrientation::outer
Definition: Surface.h:19
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
crabWrapper.key
key
Definition: crabWrapper.py:19
TrackingRecoMaterialAnalyser::TrackingRecoMaterialAnalyser
TrackingRecoMaterialAnalyser(const edm::ParameterSet &)
Definition: TrackingRecoMaterialAnalyser.cc:68
TrackingRecoMaterialAnalyser::folder_
std::string folder_
Definition: TrackingRecoMaterialAnalyser.cc:49
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
reco::Vertex
Definition: Vertex.h:35
TrackingRecoMaterialAnalyser::deltaP_in_out_vs_z_
MonitorElement * deltaP_in_out_vs_z_
Definition: TrackingRecoMaterialAnalyser.cc:56
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
pwdgSkimBPark_cfi.vertices
vertices
Definition: pwdgSkimBPark_cfi.py:7
TrackerGeometry
Definition: TrackerGeometry.h:14
TrackingRecoMaterialAnalyser::histosEta_
std::unordered_map< std::string, MonitorElement * > histosEta_
Definition: TrackingRecoMaterialAnalyser.cc:51
TrackTransformer
Definition: TrackTransformer.h:46