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