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));
370 BinLogX(
h_recodr.back()->getTH1F());
382 h_eta.push_back( ibook.
book1D(
"eta",
"pseudorapidity residue", 1000, -0.1, 0.1 ) );
383 h_pt.push_back( ibook.
book1D(
"pullPt",
"pull of p_{t}", 100, -10, 10 ) );
384 h_pullTheta.push_back( ibook.
book1D(
"pullTheta",
"pull of #theta parameter",250,-25,25) );
385 h_pullPhi.push_back( ibook.
book1D(
"pullPhi",
"pull of #phi parameter",250,-25,25) );
386 h_pullDxy.push_back( ibook.
book1D(
"pullDxy",
"pull of dxy parameter",250,-25,25) );
387 h_pullDz.push_back( ibook.
book1D(
"pullDz",
"pull of dz parameter",250,-25,25) );
388 h_pullQoverp.push_back( ibook.
book1D(
"pullQoverp",
"pull of qoverp parameter",250,-25,25) );
509 BinLogX(
h_recopT.back()->getTH1F());
554 h_dedx_estim.emplace_back(std::initializer_list<MonitorElement*>{
558 h_dedx_nom.emplace_back(std::initializer_list<MonitorElement*>{
562 h_dedx_sat.emplace_back(std::initializer_list<MonitorElement*>{
585 double dxySim,
double dzSim,
586 double dxyPVSim,
double dzPVSim,
588 int nSimLayers,
int nSimPixelLayers,
int nSimStripMonoAndStereoLayers,
594 const auto eta =
getEta(momentumTP.eta());
595 const auto phi = momentumTP.phi();
597 const auto nSim3DLayers = nSimPixelLayers + nSimStripMonoAndStereoLayers;
598 const auto vertxy =
sqrt(vertexTP.perp2());
599 const auto vertz = vertexTP.z();
618 fillPlotNoFlow(
h_simulpu[count], numVertices);
619 if(isMatched) fillPlotNoFlow(
h_assocpu[count],numVertices);
622 if (isMatched) fillPlotNoFlow(
h_assocdr[count],dR);
627 if (isMatched) fillPlotNoFlow(
h_assocphi[count], phi);
632 if (isMatched) fillPlotNoFlow(
h_assocpT[count],
pt);
637 if (isMatched) fillPlotNoFlow(
h_assocdxy[count],dxySim);
640 if (isMatched) fillPlotNoFlow(
h_assocdxypv[count], dxyPVSim);
650 if (isMatched) fillPlotNoFlow(
h_assocdz[count],dzSim);
653 if (isMatched) fillPlotNoFlow(
h_assoczpos[count], vertz);
669 const double dzpvcut =
std::abs(track->
dz(*pvPosition));
670 const double dzpvsigcut = dzpvcut / track->
dzError();
687 for (
unsigned int i=0;
i<v_dEdx.size();
i++) {
703 bool isChargeMatched,
704 int numAssocRecoTracks,
707 double sharedFraction,
718 const auto dxy = track.
dxy(bsPosition);
719 const auto dz = track.
dz(bsPosition);
720 const auto dxypv = pvPosition ? track.
dxy(*pvPosition) : 0.0;
721 const auto dzpv = pvPosition ? track.
dz(*pvPosition) : 0.0;
722 const auto dzpvsig = pvPosition ? dzpv / track.
dzError() : 0.0;
727 const auto deltar =
min(
max(dR,
h_recodr[count]->getTH1()->GetXaxis()->GetXmin()),
h_recodr[count]->getTH1()->GetXaxis()->GetXmax());
734 fillPlotNoFlow(
h_recodz[count], dz);
739 fillPlotNoFlow(
h_recopu[count],numVertices);
762 fillPlotNoFlow(
h_assoc2pu[count],numVertices);
779 if (!isChargeMatched) {
789 fillPlotNoFlow(
h_misidpu[count], numVertices);
797 if (numAssocRecoTracks>1) {
807 fillPlotNoFlow(
h_looperpu[count], numVertices);
824 fillPlotNoFlow(
h_pileuppu[count], numVertices);
867 int Layers1D = LayersAll - Layers2D;
894 double qoverpSim = chargeTP/
sqrt(momentumTP.x()*momentumTP.x()+momentumTP.y()*momentumTP.y()+momentumTP.z()*momentumTP.z());
895 double lambdaSim =
M_PI/2-momentumTP.theta();
896 double phiSim = momentumTP.phi();
897 double dxySim = (-vertexTP.x()*
sin(momentumTP.phi())+vertexTP.y()*
cos(momentumTP.phi()));
898 double dzSim = vertexTP.z() - (vertexTP.x()*momentumTP.x()+vertexTP.y()*momentumTP.y())/
sqrt(momentumTP.perp2())
899 * momentumTP.z()/
sqrt(momentumTP.perp2());
905 double qoverpErrorRec(0);
907 double ptErrorRec(0);
909 double lambdaErrorRec(0);
911 double phiErrorRec(0);
934 lambdaRec,lambdaErrorRec, phiRec, phiErrorRec);
937 double ptError = ptErrorRec;
938 double ptres=ptRec-
sqrt(momentumTP.perp2());
939 double etares=track.
eta()-momentumTP.Eta();
942 double dxyRec = track.
dxy(bsPosition);
943 double dzRec = track.
dz(bsPosition);
945 const auto phiRes = phiRec-phiSim;
946 const auto dxyRes = dxyRec-dxySim;
947 const auto dzRes = dzRec-dzSim;
948 const auto cotThetaRes = 1/
tan(
M_PI*0.5-lambdaRec)-1/
tan(
M_PI*0.5-lambdaSim);
951 double qoverpPull=(qoverpRec-qoverpSim)/qoverpErrorRec;
952 double thetaPull=(lambdaRec-lambdaSim)/lambdaErrorRec;
953 double phiPull=phiRes/phiErrorRec;
954 double dxyPull=dxyRes/track.
dxyError();
955 double dzPull=dzRes/track.
dzError();
958 double contrib_Qoverp = ((qoverpRec-qoverpSim)/qoverpErrorRec)*
959 ((qoverpRec-qoverpSim)/qoverpErrorRec)/5;
960 double contrib_dxy = ((dxyRec-dxySim)/track.
dxyError())*((dxyRec-dxySim)/track.
dxyError())/5;
961 double contrib_dz = ((dzRec-dzSim)/track.
dzError())*((dzRec-dzSim)/track.
dzError())/5;
962 double contrib_theta = ((lambdaRec-lambdaSim)/lambdaErrorRec)*
963 ((lambdaRec-lambdaSim)/lambdaErrorRec)/5;
964 double contrib_phi = ((phiRec-phiSim)/phiErrorRec)*
965 ((phiRec-phiSim)/phiErrorRec)/5;
970 <<
"ptREC=" << ptRec <<
"\n" <<
"etaREC=" << track.
eta() <<
"\n" <<
"qoverpREC=" << qoverpRec <<
"\n"
971 <<
"dxyREC=" << dxyRec <<
"\n" <<
"dzREC=" << dzRec <<
"\n"
972 <<
"thetaREC=" << track.
theta() <<
"\n" <<
"phiREC=" << phiRec <<
"\n"
974 <<
"qoverpError()=" << qoverpErrorRec <<
"\n" <<
"dxyError()=" << track.
dxyError() <<
"\n"<<
"dzError()="
976 <<
"thetaError()=" << lambdaErrorRec <<
"\n" <<
"phiError()=" << phiErrorRec <<
"\n"
978 <<
"ptSIM=" <<
sqrt(momentumTP.perp2()) <<
"\n"<<
"etaSIM=" << momentumTP.Eta() <<
"\n"<<
"qoverpSIM=" << qoverpSim <<
"\n"
979 <<
"dxySIM=" << dxySim <<
"\n"<<
"dzSIM=" << dzSim <<
"\n" <<
"thetaSIM=" <<
M_PI/2-lambdaSim <<
"\n"
980 <<
"phiSIM=" << phiSim <<
"\n"
982 <<
"contrib_Qoverp=" << contrib_Qoverp <<
"\n"<<
"contrib_dxy=" << contrib_dxy <<
"\n"<<
"contrib_dz=" << contrib_dz <<
"\n"
983 <<
"contrib_theta=" << contrib_theta <<
"\n"<<
"contrib_phi=" << contrib_phi <<
"\n"
985 <<
"chi2PULL="<<contrib_Qoverp+contrib_dxy+contrib_dz+contrib_theta+contrib_phi<<
"\n";
994 const auto etaSim =
getEta(momentumTP.eta());
995 const auto ptSim =
getPt(
sqrt(momentumTP.perp2()));
1042 double& qoverp,
double& qoverpError,
double& lambda,
double& lambdaError,
1043 double&
phi,
double& phiError )
const {
1060 double& qoverp,
double& qoverpError,
double& lambda,
double& lambdaError,
1061 double&
phi,
double& phiError )
const {
1092 double dxySim,
double dzSim,
int nSimHits,
1103 fillPlotNoFlow(
h_simulhit[count],(
int)nSimHits);
1105 fillPlotNoFlow(
h_assochit[count],(
int)nSimHits);
1109 fillPlotNoFlow(
h_simulpu[count],numVertices);
1110 if (isMatched) fillPlotNoFlow(
h_assocpu[count],numVertices);
1116 fillPlotNoFlow(
h_simulphi[count],momentumTP.phi());
1117 if (isMatched) fillPlotNoFlow(
h_assocphi[count],momentumTP.phi());
1127 if (isMatched) fillPlotNoFlow(
h_assocdxy[count],dxySim);
1135 if (isMatched) fillPlotNoFlow(
h_assocdz[count],dzSim);
1138 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
MonitorElement * h_vertposSIM
std::vector< MonitorElement * > h_pileupdxypv
std::vector< MonitorElement * > h_recodxy
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::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsVTXR
std::vector< MonitorElement * > h_simulzpos
std::vector< MonitorElement * > nrecHit_vs_nsimHit_rec2sim
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 * > 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
MonitorElement * h_bunchxSIM
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
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
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 * > 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)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
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_simullayer
std::vector< MonitorElement * > h_pileupphi
std::vector< MonitorElement * > chi2_vs_nhits
std::vector< MonitorElement * > h_recodr
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
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
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_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