17 void BinLogX(TH1 *
h) {
18 TAxis *axis = h->GetXaxis();
19 int bins = axis->GetNbins();
21 float from = axis->GetXmin();
22 float to = axis->GetXmax();
23 float width = (to - from) / bins;
24 std::vector<float> new_bins(bins+1, 0);
26 for (
int i = 0;
i <= bins;
i++) {
27 new_bins[
i] = TMath::Power(10, from +
i * width);
29 axis->Set(bins, new_bins.data());
149 auto initTPselector = [&](
auto&
sel,
auto&
name) {
152 auto initGPselector = [&](
auto&
sel,
auto&
name) {
179 << minPt <<
" <= 0 out of range while requesting log scale. Using minPt = 0.1.";
190 throw cms::Exception(
"LogicError") <<
"bookSimHistos() has already been called";
235 "N of associated tracks (simToReco) vs transverse vert position",
237 h_simulvertpos.push_back( ibook.
book1D(
"num_simul_vertpos",
"N of simulated tracks vs transverse vert position",
240 h_assoczpos.push_back( ibook.
book1D(
"num_assoc(simToReco)_zpos",
"N of associated tracks (simToReco) vs z vert position",
295 h_nchi2.push_back( ibook.
book1D(
"chi2",
"normalized #chi^{2}", 200, 0, 20 ) );
296 h_nchi2_prob.push_back( ibook.
book1D(
"chi2_prob",
"normalized #chi^{2} probability",100,0,1));
381 BinLogX(
h_recodr.back()->getTH1F());
394 h_eta.push_back( ibook.
book1D(
"eta",
"pseudorapidity residue", 1000, -0.1, 0.1 ) );
395 h_pt.push_back( ibook.
book1D(
"pullPt",
"pull of p_{t}", 100, -10, 10 ) );
396 h_pullTheta.push_back( ibook.
book1D(
"pullTheta",
"pull of #theta parameter",250,-25,25) );
397 h_pullPhi.push_back( ibook.
book1D(
"pullPhi",
"pull of #phi parameter",250,-25,25) );
398 h_pullDxy.push_back( ibook.
book1D(
"pullDxy",
"pull of dxy parameter",250,-25,25) );
399 h_pullDz.push_back( ibook.
book1D(
"pullDz",
"pull of dz parameter",250,-25,25) );
400 h_pullQoverp.push_back( ibook.
book1D(
"pullQoverp",
"pull of qoverp parameter",250,-25,25) );
521 BinLogX(
h_recopT.back()->getTH1F());
566 h_dedx_estim.emplace_back(std::initializer_list<MonitorElement*>{
570 h_dedx_nom.emplace_back(std::initializer_list<MonitorElement*>{
574 h_dedx_sat.emplace_back(std::initializer_list<MonitorElement*>{
602 double dxySim,
double dzSim,
603 double dxyPVSim,
double dzPVSim,
605 int nSimLayers,
int nSimPixelLayers,
int nSimStripMonoAndStereoLayers,
611 const auto eta =
getEta(momentumTP.eta());
612 const auto phi = momentumTP.phi();
614 const auto nSim3DLayers = nSimPixelLayers + nSimStripMonoAndStereoLayers;
615 const auto vertxy =
sqrt(vertexTP.perp2());
616 const auto vertz = vertexTP.z();
626 if (isMatched) fillPlotNoFlow(
h_assocphi[count], phi);
640 fillPlotNoFlow(
h_simulpu[count], numVertices);
641 if(isMatched) fillPlotNoFlow(
h_assocpu[count],numVertices);
644 if (isMatched) fillPlotNoFlow(
h_assocdr[count],dR);
649 if (isMatched) fillPlotNoFlow(
h_assocpT[count],
pt);
654 if (isMatched) fillPlotNoFlow(
h_assocdxy[count],dxySim);
657 if (isMatched) fillPlotNoFlow(
h_assocdxypv[count], dxyPVSim);
667 if (isMatched) fillPlotNoFlow(
h_assocdz[count],dzSim);
670 if (isMatched) fillPlotNoFlow(
h_assoczpos[count], vertz);
686 const double dzpvcut =
std::abs(track->
dz(*pvPosition));
687 const double dzpvsigcut = dzpvcut / track->
dzError();
704 for (
unsigned int i=0;
i<v_dEdx.size();
i++) {
720 bool isChargeMatched,
721 int numAssocRecoTracks,
724 double sharedFraction,
735 const auto dxy = track.
dxy(bsPosition);
736 const auto dz = track.
dz(bsPosition);
737 const auto dxypv = pvPosition ? track.
dxy(*pvPosition) : 0.0;
738 const auto dzpv = pvPosition ? track.
dz(*pvPosition) : 0.0;
739 const auto dzpvsig = pvPosition ? dzpv / track.
dzError() : 0.0;
746 const auto deltar =
min(
max(dR,
h_recodr[count]->getTH1()->GetXaxis()->GetXmin()),
h_recodr[count]->getTH1()->GetXaxis()->GetXmax());
753 fillPlotNoFlow(
h_recodz[count], dz);
758 fillPlotNoFlow(
h_recopu[count],numVertices);
783 fillPlotNoFlow(
h_assoc2pu[count],numVertices);
802 if (!isChargeMatched) {
812 fillPlotNoFlow(
h_misidpu[count], numVertices);
820 if (numAssocRecoTracks>1) {
830 fillPlotNoFlow(
h_looperpu[count], numVertices);
850 fillPlotNoFlow(
h_pileuppu[count], numVertices);
895 int Layers1D = LayersAll - Layers2D;
922 double qoverpSim = chargeTP/
sqrt(momentumTP.x()*momentumTP.x()+momentumTP.y()*momentumTP.y()+momentumTP.z()*momentumTP.z());
923 double lambdaSim =
M_PI/2-momentumTP.theta();
924 double phiSim = momentumTP.phi();
925 double dxySim = (-vertexTP.x()*
sin(momentumTP.phi())+vertexTP.y()*
cos(momentumTP.phi()));
926 double dzSim = vertexTP.z() - (vertexTP.x()*momentumTP.x()+vertexTP.y()*momentumTP.y())/
sqrt(momentumTP.perp2())
927 * momentumTP.z()/
sqrt(momentumTP.perp2());
933 double qoverpErrorRec(0);
935 double ptErrorRec(0);
937 double lambdaErrorRec(0);
939 double phiErrorRec(0);
962 lambdaRec,lambdaErrorRec, phiRec, phiErrorRec);
965 double ptError = ptErrorRec;
966 double ptres=ptRec-
sqrt(momentumTP.perp2());
967 double etares=track.
eta()-momentumTP.Eta();
970 double dxyRec = track.
dxy(bsPosition);
971 double dzRec = track.
dz(bsPosition);
973 const auto phiRes = phiRec-phiSim;
974 const auto dxyRes = dxyRec-dxySim;
975 const auto dzRes = dzRec-dzSim;
976 const auto cotThetaRes = 1/
tan(
M_PI*0.5-lambdaRec)-1/
tan(
M_PI*0.5-lambdaSim);
979 double qoverpPull=(qoverpRec-qoverpSim)/qoverpErrorRec;
980 double thetaPull=(lambdaRec-lambdaSim)/lambdaErrorRec;
981 double phiPull=phiRes/phiErrorRec;
982 double dxyPull=dxyRes/track.
dxyError();
983 double dzPull=dzRes/track.
dzError();
986 double contrib_Qoverp = ((qoverpRec-qoverpSim)/qoverpErrorRec)*
987 ((qoverpRec-qoverpSim)/qoverpErrorRec)/5;
988 double contrib_dxy = ((dxyRec-dxySim)/track.
dxyError())*((dxyRec-dxySim)/track.
dxyError())/5;
989 double contrib_dz = ((dzRec-dzSim)/track.
dzError())*((dzRec-dzSim)/track.
dzError())/5;
990 double contrib_theta = ((lambdaRec-lambdaSim)/lambdaErrorRec)*
991 ((lambdaRec-lambdaSim)/lambdaErrorRec)/5;
992 double contrib_phi = ((phiRec-phiSim)/phiErrorRec)*
993 ((phiRec-phiSim)/phiErrorRec)/5;
998 <<
"ptREC=" << ptRec <<
"\n" <<
"etaREC=" << track.
eta() <<
"\n" <<
"qoverpREC=" << qoverpRec <<
"\n"
999 <<
"dxyREC=" << dxyRec <<
"\n" <<
"dzREC=" << dzRec <<
"\n"
1000 <<
"thetaREC=" << track.
theta() <<
"\n" <<
"phiREC=" << phiRec <<
"\n"
1002 <<
"qoverpError()=" << qoverpErrorRec <<
"\n" <<
"dxyError()=" << track.
dxyError() <<
"\n"<<
"dzError()="
1004 <<
"thetaError()=" << lambdaErrorRec <<
"\n" <<
"phiError()=" << phiErrorRec <<
"\n"
1006 <<
"ptSIM=" <<
sqrt(momentumTP.perp2()) <<
"\n"<<
"etaSIM=" << momentumTP.Eta() <<
"\n"<<
"qoverpSIM=" << qoverpSim <<
"\n"
1007 <<
"dxySIM=" << dxySim <<
"\n"<<
"dzSIM=" << dzSim <<
"\n" <<
"thetaSIM=" <<
M_PI/2-lambdaSim <<
"\n"
1008 <<
"phiSIM=" << phiSim <<
"\n"
1010 <<
"contrib_Qoverp=" << contrib_Qoverp <<
"\n"<<
"contrib_dxy=" << contrib_dxy <<
"\n"<<
"contrib_dz=" << contrib_dz <<
"\n"
1011 <<
"contrib_theta=" << contrib_theta <<
"\n"<<
"contrib_phi=" << contrib_phi <<
"\n"
1013 <<
"chi2PULL="<<contrib_Qoverp+contrib_dxy+contrib_dz+contrib_theta+contrib_phi<<
"\n";
1022 const auto etaSim =
getEta(momentumTP.eta());
1023 const auto ptSim =
getPt(
sqrt(momentumTP.perp2()));
1070 double& qoverp,
double& qoverpError,
double& lambda,
double& lambdaError,
1071 double&
phi,
double& phiError )
const {
1088 double& qoverp,
double& qoverpError,
double& lambda,
double& lambdaError,
1089 double&
phi,
double& phiError )
const {
1120 double dxySim,
double dzSim,
int nSimHits,
1133 fillPlotNoFlow(
h_simulphi[count],momentumTP.phi());
1134 if (isMatched) fillPlotNoFlow(
h_assocphi[count],momentumTP.phi());
1136 fillPlotNoFlow(
h_simulhit[count],(
int)nSimHits);
1138 fillPlotNoFlow(
h_assochit[count],(
int)nSimHits);
1142 fillPlotNoFlow(
h_simulpu[count],numVertices);
1143 if (isMatched) fillPlotNoFlow(
h_assocpu[count],numVertices);
1155 if (isMatched) fillPlotNoFlow(
h_assocdxy[count],dxySim);
1163 if (isMatched) fillPlotNoFlow(
h_assocdz[count],dzSim);
1166 if (isMatched) fillPlotNoFlow(
h_assoczpos[count],vertexTP.z());
double qoverp() const
q / p
double phiModeError() const
error on phi from mode
std::vector< MonitorElement * > h_looperhit
std::vector< MonitorElement * > h_simul2_dzpvcut
T getParameter(std::string const &) const
std::vector< MonitorElement * > h_assoc2hit
T getUntrackedParameter(std::string const &, T const &) const
const Point & referencePoint() const
Reference point on the track.
MonitorElement * h_vertposSIM
std::vector< MonitorElement * > h_pileupdxypv
std::vector< MonitorElement * > h_recodxy
std::vector< MonitorElement * > h_looperzpos
std::vector< MonitorElement * > h_assochit
void bookSimTrackPVAssociationHistos(DQMStore::IBooker &ibook)
std::vector< MonitorElement * > h_fakes
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsPt
std::vector< MonitorElement * > h_nchi2_prob
std::vector< MonitorElement * > h_looperpT
std::vector< MonitorElement * > h_pullDz
~MTVHistoProducerAlgoForTracker()
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsEta
std::vector< MonitorElement * > h_misidlayer
std::vector< MonitorElement * > h_assoc_dzpvsigcut_pt
std::vector< MonitorElement * > ptpull_vs_phi
void bookRecoPVAssociationHistos(DQMStore::IBooker &ibook)
std::vector< MonitorElement * > h_looperchi2
std::vector< MonitorElement * > h_assoczpos
std::vector< MonitorElement * > nPXFhits_vs_eta
std::vector< MonitorElement * > h_assoc2zpos
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsVTXR
std::vector< MonitorElement * > h_simulzpos
std::vector< MonitorElement * > nrecHit_vs_nsimHit_rec2sim
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
std::vector< MonitorElement * > h_assoc2pT
std::vector< MonitorElement * > h_nmisslayers_inner
double lambdaMode() const
Lambda angle from mode.
std::vector< MonitorElement * > h_simulpT
std::vector< MonitorElement * > h_looperpixellayer
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
MonitorElement * bookProfile(Args &&...args)
void getRecoMomentum(const reco::Track &track, double &pt, double &ptError, double &qoverp, double &qoverpError, double &lambda, double &lambdaError, double &phi, double &phiError) const
retrieval of reconstructed momentum components from reco::Track (== mean values for GSF) ...
std::vector< MonitorElement * > h_simul_dzpvsigcut
std::vector< MonitorElement * > h_pileuphit
std::vector< MonitorElement * > h_pileupdr
std::vector< MonitorElement * > nTEChits_vs_eta
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsVTXR
std::vector< MonitorElement * > h_hits
double theta() const
polar angle
double dxyError() const
error on dxy
std::vector< MonitorElement * > nLayersWithMeas_vs_eta
std::vector< MonitorElement * > h_pullPhi
std::vector< MonitorElement * > phipull_vs_phi
std::vector< std::vector< MonitorElement * > > h_dedx_estim
std::vector< MonitorElement * > h_assoc_dzpvcut_pt
Sin< T >::type sin(const T &t)
double getEta(double eta)
std::vector< MonitorElement * > nrec_vs_nsim
std::vector< MonitorElement * > h_pileup_dzpvsigcut_pt
std::vector< MonitorElement * > h_pileuppT
S make(const edm::ParameterSet &cfg)
std::vector< MonitorElement * > h_algo
std::vector< MonitorElement * > h_simul_dzpvcut_pt
std::vector< MonitorElement * > h_assocdz
std::vector< MonitorElement * > h_recovertpos
std::vector< MonitorElement * > nTIDhits_vs_eta
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsVTXZ
void bookSimTrackHistos(DQMStore::IBooker &ibook)
std::vector< MonitorElement * > phires_vs_eta
std::vector< MonitorElement * > h_pullDxy
std::vector< MonitorElement * > h_assoc2phi
std::vector< MonitorElement * > h_nchi2
std::vector< MonitorElement * > h_assoc2pu
double phi() const
azimuthal angle of momentum vector
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
MonitorElement * h_etaSIM
std::vector< MonitorElement * > h_misidchi2
std::vector< MonitorElement * > h_assoc2_dzpvcut
std::vector< MonitorElement * > h_looperdxy
std::vector< MonitorElement * > h_simuleta
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsPt
std::vector< MonitorElement * > h_assoc3Dlayer
std::vector< MonitorElement * > h_looper3Dlayer
std::vector< MonitorElement * > h_simul2_dzpvsigcut_pt
int pixelLayersWithMeasurement() const
std::vector< MonitorElement * > h_reco_dzpvcut
const Vector & momentum() const
track momentum vector
std::vector< MonitorElement * > h_reco3Dlayer
std::vector< MonitorElement * > h_loopervertpos
MonitorElement * h_bunchxSIM
std::vector< MonitorElement * > h_looperdr
std::vector< MonitorElement * > h_pileupchi2
void fill_trackBased_histos(int count, int assTracks, int numRecoTracks, int numSimTracks)
std::vector< MonitorElement * > h_assoc2dz
int trackerLayersWithMeasurement() const
double cotThetaRes_rangeMax
std::vector< MonitorElement * > chi2_vs_phi
int numberOfValidStripTOBHits() const
std::vector< MonitorElement * > h_assocdzpv
std::vector< MonitorElement * > h_assocphi
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsPhi
std::vector< MonitorElement * > phires_vs_phi
MTVHistoProducerAlgoForTracker(const edm::ParameterSet &pset, edm::ConsumesCollector &&iC)
std::vector< MonitorElement * > dzres_vs_eta
double qoverpMode() const
q/p from mode
std::vector< MonitorElement * > h_misideta
std::vector< MonitorElement * > nlosthits_vs_eta
std::vector< MonitorElement * > nSTRIPlayersWith1dMeas_vs_eta
double ptModeError() const
error on Pt (set to 1000 TeV if charge==0 for safety) from mode
std::vector< MonitorElement * > h_recohit
TrackAlgorithm algo() const
std::vector< MonitorElement * > h_simul2_dzpvcut_pt
math::XYZPointD Point
point in the space
std::vector< MonitorElement * > h_looperlayer
std::vector< MonitorElement * > phires_vs_pt
void fill_seed_histos(int count, int seedsFitFailed, int seedsTotal)
std::vector< MonitorElement * > h_assoc2_dzpvsigcut
void fill_generic_recoTrack_histos(int count, const reco::Track &track, const math::XYZPoint &bsPosition, const math::XYZPoint *pvPosition, bool isMatched, bool isSigMatched, bool isChargeMatched, int numAssocRecoTracks, int numVertices, int nSimHits, double sharedFraction, double dR)
void fill_ResoAndPull_recoTrack_histos(int count, const TrackingParticle::Vector &momentumTP, const TrackingParticle::Point &vertexTP, int chargeTP, const reco::Track &track, const math::XYZPoint &bsPosition)
std::vector< MonitorElement * > h_assocpu
std::vector< MonitorElement * > h_assoc2layer
std::vector< MonitorElement * > h_assoc23Dlayer
unsigned int numberOfMeasurements() const
std::vector< MonitorElement * > nPXBhits_vs_eta
std::vector< std::vector< MonitorElement * > > h_dedx_sat
double eta() const
pseudorapidity of momentum vector
int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
std::vector< MonitorElement * > h_looperpu
std::vector< MonitorElement * > h_assoc2dxypv
std::vector< MonitorElement * > h_assoc2dxy
std::vector< MonitorElement * > h_pullQoverp
int numberOfValidPixelBarrelHits() const
std::vector< MonitorElement * > h_simulpu
std::vector< MonitorElement * > h_assoc2chi2
std::vector< MonitorElement * > h_simuldzpv
double chi2() const
chi-squared of the fit
std::vector< MonitorElement * > h_simuldr
std::vector< MonitorElement * > h_misidhit
std::vector< MonitorElement * > nSTRIPlayersWithMeas_vs_eta
std::vector< MonitorElement * > h_pileup_dzpvcut_pt
MonitorElement * bookProfile2D(Args &&...args)
std::vector< MonitorElement * > h_reco_dzpvcut_pt
void fill_recoAssociated_simTrack_histos(int count, const TrackingParticle &tp, const TrackingParticle::Vector &momentumTP, const TrackingParticle::Point &vertexTP, double dxy, double dz, double dxyPV, double dzPV, int nSimHits, int nSimLayers, int nSimPixelLayers, int nSimStripMonoAndStereoLayers, const reco::Track *track, int numVertices, double dR, const math::XYZPoint *pvPosition)
std::vector< MonitorElement * > nTOBhits_vs_eta
double ndof() const
number of degrees of freedom of the fit
std::vector< MonitorElement * > ptpull_vs_eta
std::vector< MonitorElement * > etares_vs_eta
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsEta
std::vector< MonitorElement * > h_recozpos
double pt() const
track transverse momentum
std::vector< MonitorElement * > h_recophi
std::vector< MonitorElement * > h_assocpT
std::unique_ptr< TrackingParticleSelector > generalTpSelector
Cos< T >::type cos(const T &t)
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
std::vector< MonitorElement * > h_seedsFitFailedFraction
std::vector< MonitorElement * > nSTRIPlayersWith2dMeas_vs_eta
std::vector< MonitorElement * > h_tracks
double phiError() const
error on phi
MonitorElement * book1D(Args &&...args)
Tan< T >::type tan(const T &t)
std::vector< MonitorElement * > nhits_vs_phi
Abs< T >::type abs(const T &t)
std::vector< MonitorElement * > h_assoc2pixellayer
int numberOfValidStripTIDHits() const
double lambda() const
Lambda angle.
std::vector< MonitorElement * > h_misid3Dlayer
std::vector< MonitorElement * > nrecHit_vs_nsimHit_sim2rec
bool isMatched(TrackingRecHit const &hit)
unsigned short numberOfValidHits() const
number of valid hits found
void fill_simTrackBased_histos(int numSimTracks)
void fill_simAssociated_recoTrack_histos(int count, const reco::Track &track)
int numberOfValidStripTECHits() const
std::vector< MonitorElement * > phimean_vs_eta_phi
std::vector< MonitorElement * > h_looperdxypv
std::vector< MonitorElement * > h_charge
std::vector< MonitorElement * > h_misidpu
std::vector< MonitorElement * > h_loopereta
std::vector< MonitorElement * > h_misiddz
std::vector< MonitorElement * > h_pileupvertpos
std::vector< MonitorElement * > h_simullayer
std::vector< MonitorElement * > h_pileupphi
std::vector< MonitorElement * > chi2_vs_nhits
std::vector< MonitorElement * > h_recodr
std::vector< MonitorElement * > h_assoc2vertpos
double cotThetaRes_rangeMin
std::vector< MonitorElement * > dzpull_vs_eta
std::vector< MonitorElement * > h_simuldz
std::vector< MonitorElement * > h_misiddxy
double qoverpError() const
error on signed transverse curvature
std::vector< MonitorElement * > h_seedsFitFailed
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
double dzError() const
error on dz
std::vector< MonitorElement * > thetapull_vs_phi
std::vector< MonitorElement * > h_recolayer
std::vector< MonitorElement * > h_assoc2_dzpvsigcut_pt
std::vector< MonitorElement * > h_simulvertpos
std::vector< MonitorElement * > dxyres_vs_eta
std::vector< MonitorElement * > h_simuldxypv
std::vector< MonitorElement * > h_reco_dzpvsigcut_pt
std::vector< MonitorElement * > h_simulpixellayer
std::vector< MonitorElement * > h_simul_dzpvcut
std::vector< MonitorElement * > h_recopu
std::vector< MonitorElement * > h_misidpT
std::vector< MonitorElement * > h_assoc_dzpvsigcut
std::vector< MonitorElement * > h_nmisslayers_outer
std::vector< MonitorElement * > nPXLlayersWithMeas_vs_eta
std::vector< MonitorElement * > h_misiddzpv
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsPhi
MonitorElement * book2D(Args &&...args)
std::vector< MonitorElement * > nTIBhits_vs_eta
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
void fill_generic_simTrack_histos(const TrackingParticle::Vector &, const TrackingParticle::Point &vertex, int bx)
XYZPointD XYZPoint
point in space with cartesian internal representation
double qoverpModeError() const
error on signed transverse curvature from mode
std::vector< MonitorElement * > h_simul_dzpvsigcut_pt
int stripLayersWithMeasurement() const
std::vector< MonitorElement * > h_eta
TH1F * getTH1F(void) const
std::vector< MonitorElement * > h_pt
std::vector< MonitorElement * > cotThetares_vs_pt
std::vector< MonitorElement * > h_recodzpv
std::vector< MonitorElement * > h_pileuppixellayer
MonitorElement * h_tracksSIM
int numberOfValidStripTIBHits() const
std::vector< MonitorElement * > h_simulphi
std::vector< MonitorElement * > h_pileup_dzpvcut
static const std::string algoNames[]
void bookRecoHistos(DQMStore::IBooker &ibook)
int numberOfValidPixelEndcapHits() const
std::vector< MonitorElement * > h_pullTheta
std::vector< MonitorElement * > h_looperdzpv
std::vector< MonitorElement * > ptmean_vs_eta_phi
std::vector< MonitorElement * > h_looperphi
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsVTXZ
double lambdaError() const
error on lambda
std::vector< MonitorElement * > h_recodxypv
std::vector< MonitorElement * > h_assoc2dr
std::vector< MonitorElement * > h_simul2_dzpvsigcut
std::vector< MonitorElement * > dxypull_vs_eta
void bookSeedHistos(DQMStore::IBooker &ibook)
std::vector< MonitorElement * > ptres_vs_eta
std::vector< MonitorElement * > phipull_vs_eta
unsigned short found() const
Number of valid hits on track.
std::vector< MonitorElement * > h_simulhit
std::vector< MonitorElement * > h_recopixellayer
std::vector< MonitorElement * > h_pileup_dzpvsigcut
std::vector< MonitorElement * > h_recopT
std::vector< MonitorElement * > h_pileup3Dlayer
std::vector< MonitorElement * > h_looperdz
std::vector< MonitorElement * > h_pileupzpos
std::vector< MonitorElement * > h_misiddxypv
std::vector< MonitorElement * > h_assocdxy
std::vector< MonitorElement * > h_misidpixellayer
double phiMode() const
azimuthal angle of momentum vector from mode
void bookRecodEdxHistos(DQMStore::IBooker &ibook)
Monte Carlo truth information used for tracking validation.
std::vector< MonitorElement * > h_pileuplayer
int charge() const
track electric charge
std::vector< MonitorElement * > cotThetares_vs_eta
std::vector< MonitorElement * > h_assocFraction
std::vector< MonitorElement * > h_reco_dzpvsigcut
std::vector< MonitorElement * > h_assoc2_dzpvcut_pt
void fill_dedx_recoTrack_histos(int count, const edm::RefToBase< reco::Track > &trackref, const std::vector< const edm::ValueMap< reco::DeDxData > * > &v_dEdx)
double lambdaModeError() const
error on lambda from mode
std::unique_ptr< GenParticleCustomSelector > generalGpSelector
std::vector< MonitorElement * > h_pileupdxy
std::vector< MonitorElement * > h_recodz
std::vector< MonitorElement * > ptres_vs_pt
std::vector< MonitorElement * > h_pileupdzpv
std::vector< MonitorElement * > h_pileupdz
math::XYZVectorD Vector
point in the space
std::vector< std::vector< MonitorElement * > > h_dedx_nom
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
std::vector< MonitorElement * > h_assoclayer
std::vector< MonitorElement * > h_recochi2
std::vector< MonitorElement * > h_assoceta
std::vector< MonitorElement * > ptres_vs_phi
std::vector< MonitorElement * > h_assocSharedHit
std::vector< MonitorElement * > h_simul3Dlayer
std::vector< MonitorElement * > nhits_vs_eta
std::vector< MonitorElement * > h_assoc2dzpv
double ptMode() const
track transverse momentum from mode
int numberOfSaturatedMeasurements() const
std::vector< MonitorElement * > h_pileupeta
std::vector< MonitorElement * > h_simuldxy
std::vector< MonitorElement * > h_assocdr
std::vector< MonitorElement * > h_assocvertpos
std::vector< MonitorElement * > h_assocpixellayer
std::vector< MonitorElement * > h_recoeta
std::vector< MonitorElement * > thetapull_vs_eta
std::vector< MonitorElement * > h_assoc_dzpvcut
std::vector< MonitorElement * > chi2_vs_eta
void bookSimHistos(DQMStore::IBooker &ibook)
int numberOfHits(HitCategory category) const
std::vector< MonitorElement * > h_assocdxypv
std::vector< MonitorElement * > dxyres_vs_pt
std::vector< MonitorElement * > h_losthits
std::vector< MonitorElement * > h_assoc2eta
std::vector< MonitorElement * > h_misidphi
std::vector< MonitorElement * > dzres_vs_pt
std::vector< MonitorElement * > h_pileuppu