Go to the documentation of this file. 1 #ifndef PrimaryVertexValidation_h
2 #define PrimaryVertexValidation_h
94 std::vector<TH1F*>&
h,
107 unsigned int theNOfBins,
110 bool isNormalized =
false);
119 void add(std::map<std::string, TH1*>&
h, TH1*
hist);
130 TH1F* residualsMapPlot[100][100],
689 std::map<std::string, TH1*>
hDA;
TH1F * a_dxyEtaWidthBiasTrend
float chi2UnbiasedVertex_[nMaxtracks_]
std::vector< TH1F * > h_norm_dz_modZ_
TFileDirectory MADTrendsDir
std::vector< TH1F * > n_dzPhiResiduals
TH1F * n_dxyEtaMedianTrend
PrimaryVertexValidation(const edm::ParameterSet &)
double chi2_[nMaxtracks_]
std::vector< TH1F * > n_dxyPhiBiasResiduals
TH1F * a_dzEtaMADBiasTrend
TH1F * h_probeL1ClusterProb_
std::vector< TH1F * > n_dzPhiBiasResiduals
std::vector< TH1F * > n_d3DEtaResiduals
double IP3DsigFromMyVertex_[nMaxtracks_]
const edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecord > trackingGeomToken_
TH2F * h2_probeLayer1Map_
std::vector< TH1F * > h_norm_dz_Central_pT_
TH1F * n_dxyPhiMedianTrend
std::vector< TH1F * > h_norm_dxy_modZ_
TH1F * a_dxyEtaMADBiasTrend
TFileDirectory WidthTrendsDir
TH1F * n_dzEtaMedianTrend
TH1F * a_dzBiasResidualsMap[nMaxBins_][nMaxBins_]
TH1F * n_dxyEtaMADBiasTrend
TH1F * n_dzladderMeanTrend
int nhits1D_[nMaxtracks_]
TH1F * n_dzResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_dxyEtaMedianTrend
std::vector< TH1F * > a_d3DEtaResiduals
TH1F * a_dxyResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_dxyladderMeanTrend
TH1F * a_dzResidualsMap[nMaxBins_][nMaxBins_]
std::pair< Measurement1D, Measurement1D > fitResiduals(TH1 *hist)
double xErrOfflineVertex_
TH1F * a_dzEtaMeanBiasTrend
std::vector< unsigned int > runControlNumbers_
TH1F * a_dxyPhiWidthBiasTrend
std::vector< TH1F * > h_norm_dxy_Central_pT_
TH1F * n_dzmodZWidthTrend
std::vector< TH1F * > a_dzEtaBiasResiduals
TH1F * h_probeRefitVSig3D_
std::vector< TH1F * > a_IP3DPhiResiduals
TH1F * n_dxyladderWidthTrend
static const int nMaxtracks_
TH1F * h_probereszRefitV_
TH1F * h_probesignIP2DRefitV_
float DOFUnbiasedVertex_[nMaxtracks_]
TH1F * n_dxyPhiMADBiasTrend
std::vector< TH1F * > n_dxyEtaResiduals
TH1F * h_probeRefitVSigResZ_
double d3DFromMyVertex_[nMaxtracks_]
double qoverp_[nMaxtracks_]
std::vector< TH1F * > a_reszPhiResiduals
std::map< std::string, TH1 * > hDA
double dxyBs_[nMaxtracks_]
std::vector< TH1F * > n_reszPhiResiduals
TH1F * a_dxyPhiMedianTrend
TH1F * a_dzPhiWidthBiasTrend
double dxyFromMyVertex_[nMaxtracks_]
TH1F * a_dzladderWidthTrend
std::vector< TH1F * > n_d3DPhiResiduals
TH1F * a_dzEtaWidthBiasTrend
TH1F * h_probeRefitVSigXY_
TH1F * n_dxyBiasResidualsMap[nMaxBins_][nMaxBins_]
TFileDirectory MeanTrendsDir
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
TH1F * h_probeRefitVSigZ_
std::vector< TH1F * > h_dz_modZ_
std::vector< TH1F * > h_dxy_modZ_
int isGoodTrack_[nMaxtracks_]
std::pair< bool, bool > pixelHitsCheck(const reco::TransientTrack &track)
unsigned int LuminosityBlockNumber_
TH1F * a_dzpTCentralWidthTrend
std::vector< TH1F * > n_dxyEtaBiasResiduals
std::vector< TH1F * > h_norm_dxy_ladder_
int nhitsTIB_[nMaxtracks_]
void fillTrendPlot(TH1F *trendPlot, TH1F *residualsPlot[100], PVValHelper::estimator fitPar_, const std::string &var_)
TH1F * n_dzPhiWidthBiasTrend
const edm::ESGetToken< RunInfo, RunInfoRcd > runInfoToken_
std::vector< TH1F * > h_dxy_pT_
double IPTsigFromMyVertex_[nMaxtracks_]
std::vector< TH1F * > a_IP3DEtaResiduals
double zPCA_[nMaxtracks_]
void fill(std::map< std::string, TH1 * > &h, const std::string &s, double x)
float chi2ProbUnbiasedVertex_[nMaxtracks_]
TH1F * h_fitVtxTrackWeights_
std::vector< TH1F * > h_norm_dxy_pT_
std::vector< TH1F * > a_d3DPhiResiduals
std::vector< TH1F * > n_reszEtaResiduals
std::tuple< std::string, std::string, std::string > getTypeString(PVValHelper::residualType type)
void fillByIndex(std::vector< TH1F * > &h, unsigned int index, double x, std::string tag="")
TH1F * a_dzL1ResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_dxyPhiMADBiasTrend
TH1F * a_dxyPhiWidthTrend
double zErrOfflineVertex_
TH1F * h_xErrOfflineVertex
std::vector< TH1F * > h_dxy_ladder_
void fillTrackHistos(std::map< std::string, TH1 * > &h, const std::string &ttype, const reco::TransientTrack *tt, const reco::Vertex &v, const reco::BeamSpot &beamSpot, double fBfield)
float chi2normUnbiasedVertex_[nMaxtracks_]
double yUnbiasedVertex_[nMaxtracks_]
void fillTrendPlotByIndex(TH1F *trendPlot, std::vector< TH1F * > &h, PVValHelper::estimator fitPar_, PVValHelper::plotVariable plotVar=PVValHelper::END_OF_PLOTS)
std::unique_ptr< TrackClusterizerInZ > theTrackClusterizer_
edm::EDGetTokenT< reco::VertexCollection > theVertexCollectionToken
TH1F * n_dzEtaWidthBiasTrend
TH1F * n_dzEtaMADBiasTrend
std::vector< TH1F * > a_dzPhiBiasResiduals
std::vector< TH1F * > a_IP2DPhiResiduals
TH2F * h2_probePassingLayer1Map_
std::vector< TH1F * > a_dzEtaResiduals
void shrinkHistVectorToFit(std::vector< TH1F * > &h, unsigned int desired_size)
TH1F * a_dzPhiMeanBiasTrend
TH1F * n_dxymodZWidthTrend
unsigned int EventNumber_
std::map< std::string, TH1 * > bookVertexHistograms(const TFileDirectory &dir)
std::unique_ptr< TrackFilterForPVFindingBase > theTrackFilter_
std::vector< TH1F * > a_dxEtaResiduals
TH1F * n_dzPhiMeanBiasTrend
int nhitsTID_[nMaxtracks_]
double dzErrorFromMyVertex_[nMaxtracks_]
TH1F * h_yErrOfflineVertex
int nhitsFPIX_[nMaxtracks_]
const int compressionSettings_
int isHighPurity_[nMaxtracks_]
bool useTracksFromRecoVtx_
TH1F * n_dzPhiMADBiasTrend
TH1F * n_dzPhiMedianBiasTrend
bool isBFieldConsistentWithMode(const edm::EventSetup &iSetup) const
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< TH1F * > h_dz_pT_
TH1F * h_probeRecoVSigXY_
TH1F * a_dzEtaMedianTrend
TH1F * a_dxymodZWidthTrend
double theta_[nMaxtracks_]
std::vector< TH1F * > h_dz_Central_pT_
edm::Service< TFileService > fs
TH1F * a_dxypTCentralWidthTrend
Measurement1D getMedian(TH1F *histo)
int nhitsTOB_[nMaxtracks_]
std::vector< TH1F * > a_IP2DEtaResiduals
static const int nPtBins_
double dzBs_[nMaxtracks_]
double yPCA_[nMaxtracks_]
void fillMap(TH2F *trendMap, TH1F *residualsMapPlot[100][100], PVValHelper::estimator fitPar_, const int nXBins_, const int nYBins_)
std::vector< TH1F * > n_dzEtaResiduals
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
TH1F * a_dxyEtaWidthTrend
int tracksUsedForVertexing_[nMaxtracks_]
TH1F * h_fitVtxTrackAverageWeight_
TFileDirectory Width2DMapsDir
int nhitsTEC_[nMaxtracks_]
std::vector< TH1F * > n_IP3DEtaResiduals
std::vector< TH1F * > a_dxyEtaBiasResiduals
double zUnbiasedVertex_[nMaxtracks_]
TH1F * n_dxypTCentralWidthTrend
TH1F * a_dzPhiMedianTrend
PVValHelper::detectorPhase phase_
std::vector< TH1F * > a_dzPhiResiduals
static const int nMaxBins_
std::vector< TH1F * > h_norm_dz_pT_
bool isHit2D(const TrackingRecHit &hit, const PVValHelper::detectorPhase &thePhase) const
TH1I * h_probeHasBPixL1Overlap_
TH1F * n_dzL1ResidualsMap[nMaxBins_][nMaxBins_]
Measurement1D getMAD(TH1F *histo)
TH1F * a_dzladderMeanTrend
bool forceBeamSpotContraint_
std::vector< TH1F * > h_dxy_ladderNoOverlap_
TH1F * h_probeRefitVLogSig3D_
std::vector< TH1F * > n_dzEtaBiasResiduals
std::vector< TH1F * > n_dxyPhiResiduals
double dzFromMyVertex_[nMaxtracks_]
double chi2ndof_[nMaxtracks_]
TH1F * n_dxyL1ResidualsMap[nMaxBins_][nMaxBins_]
TH1F * h_probeHitsInBPIX_
int nhits2D_[nMaxtracks_]
TH1F * a_dxyEtaMedianBiasTrend
std::tuple< std::string, std::string, std::string > getVarString(PVValHelper::plotVariable var)
TH1F * n_dxyPhiWidthTrend
TH1F * a_dzpTCentralMeanTrend
TH1F * n_d3DResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_dxypTCentralMeanTrend
TFileDirectory MedianTrendsDir
std::vector< TH1F * > a_dxyPhiResiduals
TH1F * a_dxyL1ResidualsMap[nMaxBins_][nMaxBins_]
std::vector< TH1F * > a_dxyPhiBiasResiduals
double dxyErrorFromMyVertex_[nMaxtracks_]
TH1F * a_dxyEtaMeanBiasTrend
TH1F * a_d3DResidualsMap[nMaxBins_][nMaxBins_]
TH1F * n_dxypTCentralMeanTrend
std::vector< TH1F * > a_dyEtaResiduals
std::map< unsigned int, std::pair< long long, long long > > runNumbersTimesLog_
TH1F * a_dzEtaMedianBiasTrend
std::vector< TH1F * > h_norm_dz_ladder_
double IPLsigFromMyVertex_[nMaxtracks_]
float sumOfWeightsUnbiasedVertex_[nMaxtracks_]
double d3DErrorFromMyVertex_[nMaxtracks_]
bool hasFirstLayerPixelHits(const reco::TransientTrack &track)
TH1F * n_dxymodZMeanTrend
std::vector< TH1F * > h_dxy_ladderOverlap_
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
std::vector< TH1F * > bookResidualsHistogram(const TFileDirectory &dir, unsigned int theNOfBins, PVValHelper::residualType resType, PVValHelper::plotVariable varType, bool isNormalized=false)
double yErrOfflineVertex_
std::vector< TH1F * > n_IP2DPhiResiduals
PVValHelper::histodetails theDetails_
TH1F * h_nOfflineVertices
std::vector< TH1F * > h_dxy_Central_pT_
double xUnbiasedVertex_[nMaxtracks_]
std::array< float, nPtBins_+1 > mypT_bins_
TH1F * h_zErrOfflineVertex
std::pair< long long, long long > getRunTime(const edm::EventSetup &iSetup) const
bool passesTrackCuts(const reco::Track &track, const reco::Vertex &vertex, const std::string &qualityString_, double dxyErrMax_, double dzErrMax_, double ptErrMax_)
TH1F * n_dzPhiMedianTrend
TH1F * n_dxyPhiMeanBiasTrend
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > ttkToken_
TH1F * n_dxyPhiWidthBiasTrend
int nhitsBPIX_[nMaxtracks_]
TH1F * n_dzEtaMeanBiasTrend
TH1F * n_dzladderWidthTrend
TH1F * a_dxymodZMeanTrend
std::vector< TH1F * > h_dz_ladder_
TH1F * n_dzEtaMedianBiasTrend
TFileDirectory Mean2DMapsDir
TH1F * h_probeHitsInFPIX_
TH1F * a_dxyPhiMedianBiasTrend
TH1F * a_dxyladderWidthTrend
double xPCA_[nMaxtracks_]
std::vector< TH1F * > a_dxPhiResiduals
TH1F * n_dzpTCentralWidthTrend
TH1F * n_dxyResidualsMap[nMaxBins_][nMaxBins_]
TH1F * n_dzpTCentralMeanTrend
TH1F * n_dxyPhiMedianBiasTrend
TH1F * n_dxyEtaMeanBiasTrend
edm::EDGetTokenT< reco::TrackCollection > theTrackCollectionToken
edm::EDGetTokenT< reco::BeamSpot > theBeamspotToken
TH1F * a_dzPhiMADBiasTrend
~PrimaryVertexValidation() override
std::vector< TH1F * > n_IP2DEtaResiduals
static bool vtxSort(const reco::Vertex &a, const reco::Vertex &b)
TH1F * n_dxyEtaWidthTrend
TH1F * n_dzBiasResidualsMap[nMaxBins_][nMaxBins_]
std::vector< TH1F * > a_dyPhiResiduals
TH1F * n_dxyEtaMedianBiasTrend
TH1F * a_dxyPhiMeanBiasTrend
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
TH1F * n_dxyEtaWidthBiasTrend
TH1F * h_recoVtxChi2Prob_
std::vector< TH1F * > a_reszEtaResiduals
std::vector< TH1F * > n_IP3DPhiResiduals
std::vector< TH1F * > a_dxyEtaResiduals
TH1F * a_dzmodZWidthTrend
TH1F * a_dzPhiMedianBiasTrend
int hasRecVertex_[nMaxtracks_]
TH1F * a_dxyBiasResidualsMap[nMaxBins_][nMaxBins_]
TH1F * n_dxyladderMeanTrend