|
![CMS Logo](/cmsdoxygen/common/rightImage.jpg) |
Definition at line 35 of file MtdTracksValidation.cc.
◆ MtdTracksValidation()
Definition at line 108 of file MtdTracksValidation.cc.
References GenRecTrackToken_, edm::ParameterSet::getParameter(), mtdtopoToken_, pathLengthToken_, RecTrackToken_, RecVertexToken_, Sigmat0PidToken_, Sigmat0SafePidToken_, Sigmat0SrcToken_, SigmatmtdToken_, t0PidToken_, t0SafePidToken_, t0SrcToken_, tmtdToken_, trackAssocToken_, and trackMVAQualToken_.
◆ ~MtdTracksValidation()
MtdTracksValidation::~MtdTracksValidation |
( |
| ) |
|
|
override |
◆ analyze()
Reimplemented from DQMEDAnalyzer.
Definition at line 133 of file MtdTracksValidation.cc.
139 const MTDTopology* topology = topologyHandle.product();
141 bool topo1Dis =
false;
142 bool topo2Dis =
false;
165 unsigned int index = 0;
167 for (
const auto& trackGen : *GenRecTrackHandle) {
171 if (trackAssoc[trackref] == -1) {
172 LogInfo(
"mtdTracks") <<
"Extended track not associated";
183 if (std::round(SigmatMtd[trackref] - Sigmat0Pid[trackref]) != 0) {
184 LogWarning(
"mtdTracks") <<
"TimeError associated to refitted track is different from TimeError stored in tofPID "
185 "sigmat0 ValueMap: this should not happen";
206 int numMTDBtlvalidhits = 0;
207 for (
const auto hit :
track.recHits()) {
208 if (
hit->isValid() ==
false)
211 if ((
Hit.det() == 6) && (
Hit.subdetId() == 1) && (
Hit.mtdSubDetector() == 1)) {
213 numMTDBtlvalidhits++;
219 if (MTDBtl ==
true) {
242 bool MTDEtlZnegD1 =
false;
243 bool MTDEtlZnegD2 =
false;
244 bool MTDEtlZposD1 =
false;
245 bool MTDEtlZposD2 =
false;
246 int numMTDEtlvalidhits = 0;
247 for (
const auto hit :
track.recHits()) {
248 if (
hit->isValid() ==
false)
251 if ((
Hit.det() == 6) && (
Hit.subdetId() == 1) && (
Hit.mtdSubDetector() == 2)) {
255 if ((ETLHit.
zside() == -1) && (ETLHit.
nDisc() == 1)) {
259 numMTDEtlvalidhits++;
261 if ((ETLHit.
zside() == -1) && (ETLHit.
nDisc() == 2)) {
265 numMTDEtlvalidhits++;
267 if ((ETLHit.
zside() == 1) && (ETLHit.
nDisc() == 1)) {
271 numMTDEtlvalidhits++;
273 if ((ETLHit.
zside() == 1) && (ETLHit.
nDisc() == 2)) {
277 numMTDEtlvalidhits++;
282 if (ETLHit.
zside() == -1) {
285 numMTDEtlvalidhits++;
287 if (ETLHit.
zside() == 1) {
290 numMTDEtlvalidhits++;
299 if ((MTDEtlZnegD1 ==
true) || (MTDEtlZnegD2 ==
true)) {
306 if ((MTDEtlZposD1 ==
true) || (MTDEtlZposD2 ==
true)) {
317 for (
const auto&
v : *RecVertexHandle) {
323 cout <<
"The vertex is not valid" << endl;
References funct::abs(), MTDTopologyMode::barphiflat, gather_cfg::cout, dqm::impl::MonitorElement::Fill(), GenRecTrackToken_, MTDTopology::getMTDTopologyMode(), edm::EventSetup::getTransientHandle(), iEvent, edm::makeValid(), meBTLTrackEffEtaMtd_, meBTLTrackEffEtaTot_, meBTLTrackEffPhiMtd_, meBTLTrackEffPhiTot_, meBTLTrackEffPtMtd_, meBTLTrackEffPtTot_, meBTLTrackPtRes_, meBTLTrackRPTime_, meETLTrackEffEtaMtd_, meETLTrackEffEtaTot_, meETLTrackEffPhiMtd_, meETLTrackEffPhiTot_, meETLTrackEffPtMtd_, meETLTrackEffPtTot_, meETLTrackPtRes_, meETLTrackRPTime_, meTrackMVAQual_, meTrackNumHits_, meTrackPathLenghtvsEta_, meTrackSigmat0Pid_, meTrackSigmat0SafePid_, meTrackSigmat0Src_, meTrackt0Pid_, meTrackt0SafePid_, meTrackt0Src_, meTracktmtd_, meVerNumber_, meVerTime_, meVerZ_, mtdtopoToken_, ETLDetId::nDisc(), pathLengthToken_, RecTrackToken_, RecVertexToken_, Sigmat0PidToken_, Sigmat0SafePidToken_, Sigmat0SrcToken_, SigmatmtdToken_, t0PidToken_, t0SafePidToken_, t0SrcToken_, tmtdToken_, HLT_FULL_cff::track, trackAssocToken_, trackMaxEta_, trackMinEta_, trackMinPt_, trackMVAQualToken_, findQualityFiles::v, and MTDDetId::zside().
◆ bookHistograms()
Implements DQMEDAnalyzer.
Definition at line 329 of file MtdTracksValidation.cc.
336 ibook.
book1D(
"TrackBTLEffPhiTot",
"Track efficiency vs phi (Tot);#phi_{RECO} [rad]", 100, -3.2, 3.2);
340 ibook.
book1D(
"TrackBTLEffPhiMtd",
"Track efficiency vs phi (Mtd);#phi_{RECO} [rad]", 100, -3.2, 3.2);
343 ibook.
book1D(
"TrackBTLPtRes",
"Track pT resolution ;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1);
346 ibook.
book1D(
"TrackETLEffEtaTotZneg",
"Track efficiency vs eta (Tot) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
348 ibook.
book1D(
"TrackETLEffEtaTotZpos",
"Track efficiency vs eta (Tot) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
350 ibook.
book1D(
"TrackETLEffPhiTotZneg",
"Track efficiency vs phi (Tot) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
352 ibook.
book1D(
"TrackETLEffPhiTotZpos",
"Track efficiency vs phi (Tot) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
354 ibook.
book1D(
"TrackETLEffPtTotZneg",
"Track efficiency vs pt (Tot) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
356 ibook.
book1D(
"TrackETLEffPtTotZpos",
"Track efficiency vs pt (Tot) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
358 ibook.
book1D(
"TrackETLEffEtaMtdZneg",
"Track efficiency vs eta (Mtd) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
360 ibook.
book1D(
"TrackETLEffEtaMtdZpos",
"Track efficiency vs eta (Mtd) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
362 ibook.
book1D(
"TrackETLEffPhiMtdZneg",
"Track efficiency vs phi (Mtd) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
364 ibook.
book1D(
"TrackETLEffPhiMtdZpos",
"Track efficiency vs phi (Mtd) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
366 ibook.
book1D(
"TrackETLEffPtMtdZneg",
"Track efficiency vs pt (Mtd) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
368 ibook.
book1D(
"TrackETLEffPtMtdZpos",
"Track efficiency vs pt (Mtd) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
370 ibook.
book1D(
"TrackETLPtRes",
"Track pT resolution;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1);
372 meTracktmtd_ = ibook.
book1D(
"Tracktmtd",
"Track time from TrackExtenderWithMTD;tmtd [ns]", 150, 1, 16);
373 meTrackt0Src_ = ibook.
book1D(
"Trackt0Src",
"Track time from TrackExtenderWithMTD;t0Src [ns]", 100, -1.5, 1.5);
375 ibook.
book1D(
"TrackSigmat0Src",
"Time Error from TrackExtenderWithMTD; #sigma_{t0Src} [ns]", 100, 0, 0.1);
377 meTrackt0Pid_ = ibook.
book1D(
"Trackt0Pid",
"Track t0 as stored in TofPid;t0 [ns]", 100, -1, 1);
381 ibook.
book1D(
"TrackSigmat0SafePID",
"Sigmat0 Safe as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1);
382 meTrackNumHits_ = ibook.
book1D(
"TrackNumHits",
"Number of valid MTD hits per track ; Number of hits", 10, -5, 5);
383 meTrackMVAQual_ = ibook.
book1D(
"TrackMVAQual",
"Track MVA Quality as stored in Value Map ; MVAQual", 100, 0, 1);
385 "TrackPathLenghtvsEta",
"MTD Track pathlength vs MTD track Eta;|#eta|;Pathlength", 100, 0, 3.2, 100.0, 400.0,
"S");
386 meVerZ_ = ibook.
book1D(
"VerZ",
"RECO Vertex Z;Z_{RECO} [cm]", 180, -18, 18);
387 meVerTime_ = ibook.
book1D(
"VerTime",
"RECO Vertex Time;t0 [ns]", 100, -1, 1);
388 meVerNumber_ = ibook.
book1D(
"VerNumber",
"RECO Vertex Number: Number of vertices", 100, 0, 500);
References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), folder_, meBTLTrackEffEtaMtd_, meBTLTrackEffEtaTot_, meBTLTrackEffPhiMtd_, meBTLTrackEffPhiTot_, meBTLTrackEffPtMtd_, meBTLTrackEffPtTot_, meBTLTrackPtRes_, meBTLTrackRPTime_, meETLTrackEffEtaMtd_, meETLTrackEffEtaTot_, meETLTrackEffPhiMtd_, meETLTrackEffPhiTot_, meETLTrackEffPtMtd_, meETLTrackEffPtTot_, meETLTrackPtRes_, meETLTrackRPTime_, meTrackMVAQual_, meTrackNumHits_, meTrackPathLenghtvsEta_, meTrackSigmat0Pid_, meTrackSigmat0SafePid_, meTrackSigmat0Src_, meTrackt0Pid_, meTrackt0SafePid_, meTrackt0Src_, meTracktmtd_, meVerNumber_, meVerTime_, meVerZ_, and dqm::implementation::NavigatorBase::setCurrentFolder().
◆ fillDescriptions()
◆ folder_
const std::string MtdTracksValidation::folder_ |
|
private |
◆ GenRecTrackToken_
◆ meBTLTrackEffEtaMtd_
◆ meBTLTrackEffEtaTot_
◆ meBTLTrackEffPhiMtd_
◆ meBTLTrackEffPhiTot_
◆ meBTLTrackEffPtMtd_
◆ meBTLTrackEffPtTot_
◆ meBTLTrackPtRes_
◆ meBTLTrackRPTime_
◆ meETLTrackEffEtaMtd_
◆ meETLTrackEffEtaTot_
◆ meETLTrackEffPhiMtd_
◆ meETLTrackEffPhiTot_
◆ meETLTrackEffPtMtd_
◆ meETLTrackEffPtTot_
◆ meETLTrackPtRes_
◆ meETLTrackRPTime_
◆ meTrackMVAQual_
◆ meTrackNumHits_
◆ meTrackPathLenghtvsEta_
◆ meTrackSigmat0Pid_
◆ meTrackSigmat0SafePid_
◆ meTrackSigmat0Src_
◆ meTrackt0Pid_
◆ meTrackt0SafePid_
◆ meTrackt0Src_
◆ meTracktmtd_
◆ meVerNumber_
◆ meVerTime_
◆ meVerZ_
◆ mtdtopoToken_
◆ pathLengthToken_
◆ RecTrackToken_
◆ RecVertexToken_
◆ Sigmat0PidToken_
◆ Sigmat0SafePidToken_
◆ Sigmat0SrcToken_
◆ SigmatmtdToken_
◆ t0PidToken_
◆ t0SafePidToken_
◆ t0SrcToken_
◆ tmtdToken_
◆ trackAssocToken_
◆ trackMaxEta_
const float MtdTracksValidation::trackMaxEta_ |
|
private |
◆ trackMinEta_
const float MtdTracksValidation::trackMinEta_ |
|
private |
◆ trackMinPt_
const float MtdTracksValidation::trackMinPt_ |
|
private |
◆ trackMVAQualToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SrcToken_
MonitorElement * meETLTrackEffPtTot_[2]
MonitorElement * meBTLTrackEffEtaMtd_
MonitorElement * meBTLTrackRPTime_
edm::EDGetTokenT< edm::ValueMap< float > > t0SrcToken_
MonitorElement * meVerNumber_
MonitorElement * meBTLTrackEffPtTot_
virtual void setCurrentFolder(std::string const &fullpath)
edm::EDGetTokenT< edm::ValueMap< int > > trackAssocToken_
MonitorElement * meTrackNumHits_
MonitorElement * meTrackt0Pid_
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
Detector identifier class for the Endcap Timing Layer.
Log< level::Info, false > LogInfo
Log< level::Warning, false > LogWarning
edm::ESGetToken< MTDTopology, MTDTopologyRcd > mtdtopoToken_
int getMTDTopologyMode() const
edm::EDGetTokenT< reco::TrackCollection > GenRecTrackToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0PidToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SafePidToken_
MonitorElement * meVerTime_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
MonitorElement * meTrackt0Src_
MonitorElement * meETLTrackEffEtaMtd_[2]
MonitorElement * meTracktmtd_
MonitorElement * meBTLTrackEffPhiMtd_
edm::EDGetTokenT< std::vector< reco::Vertex > > RecVertexToken_
edm::EDGetTokenT< edm::ValueMap< float > > trackMVAQualToken_
edm::EDGetTokenT< edm::ValueMap< float > > pathLengthToken_
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())
MonitorElement * meETLTrackRPTime_
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
MonitorElement * meETLTrackEffPhiMtd_[2]
MonitorElement * meBTLTrackPtRes_
MonitorElement * meBTLTrackEffPtMtd_
MonitorElement * meETLTrackEffEtaTot_[2]
MonitorElement * meETLTrackPtRes_
MonitorElement * meETLTrackEffPtMtd_[2]
MonitorElement * meBTLTrackEffEtaTot_
auto makeValid(const U &iOtherHandleType) noexcept(false)
ESTransientHandle< T > getTransientHandle(const ESGetToken< T, R > &iToken) const
const std::string folder_
MonitorElement * meTrackSigmat0SafePid_
edm::EDGetTokenT< edm::ValueMap< float > > t0SafePidToken_
MonitorElement * meTrackSigmat0Src_
MonitorElement * meETLTrackEffPhiTot_[2]
MonitorElement * meTrackMVAQual_
MonitorElement * meTrackPathLenghtvsEta_
edm::EDGetTokenT< edm::ValueMap< float > > SigmatmtdToken_
Detector identifier base class for the MIP Timing Layer.
MonitorElement * meBTLTrackEffPhiTot_
T getParameter(std::string const &) const
Abs< T >::type abs(const T &t)
MonitorElement * meTrackt0SafePid_
edm::EDGetTokenT< edm::ValueMap< float > > t0PidToken_
MonitorElement * meTrackSigmat0Pid_
edm::EDGetTokenT< reco::TrackCollection > RecTrackToken_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())