CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
Primary4DVertexValidation Class Reference
Inheritance diagram for Primary4DVertexValidation:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Classes

struct  recoPrimaryVertex
 
struct  simPrimaryVertex
 

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
 
 Primary4DVertexValidation (const edm::ParameterSet &)
 
 ~Primary4DVertexValidation () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 

Private Types

typedef math::XYZTLorentzVector LorentzVector
 

Private Member Functions

std::pair< const edm::Ref< std::vector< TrackingParticle > > *, int > getMatchedTP (const reco::TrackBaseRef &, const TrackingVertexRef &)
 
std::vector< Primary4DVertexValidation::recoPrimaryVertexgetRecoPVs (const edm::Handle< edm::View< reco::Vertex >> &)
 
std::vector< Primary4DVertexValidation::simPrimaryVertexgetSimPVs (const edm::Handle< TrackingVertexCollection > &)
 
void getWosWnt (const reco::Vertex &, const reco::TrackBaseRef &, const edm::ValueMap< float > &, const edm::Handle< reco::BeamSpot > &, double &, double &)
 
void isParticle (const reco::TrackBaseRef &, const edm::ValueMap< float > &, const edm::ValueMap< float > &, const edm::ValueMap< float > &, unsigned int &, bool &, bool &, bool &, bool &)
 
void matchReco2Sim (std::vector< recoPrimaryVertex > &, std::vector< simPrimaryVertex > &, const edm::ValueMap< float > &, const edm::ValueMap< float > &, const edm::Handle< reco::BeamSpot > &)
 
bool matchRecoTrack2SimSignal (const reco::TrackBaseRef &)
 
const bool mvaRecSel (const reco::TrackBase &, const reco::Vertex &, const double &, const double &)
 
const bool mvaTPSel (const TrackingParticle &)
 
void observablesFromJets (const std::vector< reco::Track > &, const std::vector< double > &, const std::vector< int > &, const std::string &, unsigned int &, double &, double &, double &, double &)
 
void printMatchedRecoTrackInfo (const reco::Vertex &, const reco::TrackBaseRef &, const TrackingParticleRef &, const unsigned int &)
 
void printSimVtxRecoVtxInfo (const struct Primary4DVertexValidation::simPrimaryVertex &, const struct Primary4DVertexValidation::recoPrimaryVertex &)
 
bool select (const reco::Vertex &, int level=0)
 
double timeFromTrueMass (double, double, double, double)
 

Private Attributes

bool debug_
 
const std::string folder_
 
const std::vector< double > lineDensityPar_
 
MonitorElementmeBarrelNoPIDtype_
 
MonitorElementmeBarrelPIDp_
 
MonitorElementmeBarrelTrueKAsK_
 
MonitorElementmeBarrelTrueKAsP_
 
MonitorElementmeBarrelTrueKAsPi_
 
MonitorElementmeBarrelTrueKNoPID_
 
MonitorElementmeBarrelTruePAsK_
 
MonitorElementmeBarrelTruePAsP_
 
MonitorElementmeBarrelTruePAsPi_
 
MonitorElementmeBarrelTruePiAsK_
 
MonitorElementmeBarrelTruePiAsP_
 
MonitorElementmeBarrelTruePiAsPi_
 
MonitorElementmeBarrelTruePiNoPID_
 
MonitorElementmeBarrelTruePNoPID_
 
MonitorElementmeDeltaTfakefake_
 
MonitorElementmeDeltaTfakereal_
 
MonitorElementmeDeltaTrealreal_
 
MonitorElementmeDeltaZfakefake_
 
MonitorElementmeDeltaZfakereal_
 
MonitorElementmeDeltaZrealreal_
 
MonitorElementmeEndcapNoPIDtype_
 
MonitorElementmeEndcapPIDp_
 
MonitorElementmeEndcapTrueKAsK_
 
MonitorElementmeEndcapTrueKAsP_
 
MonitorElementmeEndcapTrueKAsPi_
 
MonitorElementmeEndcapTrueKNoPID_
 
MonitorElementmeEndcapTruePAsK_
 
MonitorElementmeEndcapTruePAsP_
 
MonitorElementmeEndcapTruePAsPi_
 
MonitorElementmeEndcapTruePiAsK_
 
MonitorElementmeEndcapTruePiAsP_
 
MonitorElementmeEndcapTruePiAsPi_
 
MonitorElementmeEndcapTruePiNoPID_
 
MonitorElementmeEndcapTruePNoPID_
 
MonitorElementmeFakeTrackRecLVRelMult_
 
MonitorElementmeFakeTrackRecLVRelMultvsMult_
 
MonitorElementmeFakeTrackRecLVRelSumWos_
 
MonitorElementmeFakeTrackRecLVRelSumWosvsSumWos_
 
MonitorElementmeFakeTrackRelMult_
 
MonitorElementmeFakeTrackRelMultvsMult_
 
MonitorElementmeFakeTrackRelSumWos_
 
MonitorElementmeFakeTrackRelSumWosvsSumWos_
 
MonitorElementmeJetsFakeRelSumPt2_
 
MonitorElementmeJetsFakeRelSumPt2vsSumPt2_
 
MonitorElementmeJetsPUHt_
 
MonitorElementmeJetsPUMetPt_
 
MonitorElementmeJetsPUMult_
 
MonitorElementmeJetsPURelHt_
 
MonitorElementmeJetsPURelHtvsHt_
 
MonitorElementmeJetsPURelMetPt_
 
MonitorElementmeJetsPURelMetPtvsMetPt_
 
MonitorElementmeJetsPURelMult_
 
MonitorElementmeJetsPURelMultvsMult_
 
MonitorElementmeJetsPURelSumPt2_
 
MonitorElementmeJetsPURelSumPt2vsSumPt2_
 
MonitorElementmeJetsPURelSumPz_
 
MonitorElementmeJetsPURelSumPzvsSumPz_
 
MonitorElementmeJetsPUSumPt2_
 
MonitorElementmeJetsPUSumPz_
 
MonitorElementmeJetsRecLVFakeRelSumPt2_
 
MonitorElementmeJetsRecLVFakeRelSumPt2vsSumPt2_
 
MonitorElementmeJetsRecLVPUHt_
 
MonitorElementmeJetsRecLVPUMetPt_
 
MonitorElementmeJetsRecLVPUMult_
 
MonitorElementmeJetsRecLVPURelHt_
 
MonitorElementmeJetsRecLVPURelHtvsHt_
 
MonitorElementmeJetsRecLVPURelMetPt_
 
MonitorElementmeJetsRecLVPURelMetPtvsMetPt_
 
MonitorElementmeJetsRecLVPURelMult_
 
MonitorElementmeJetsRecLVPURelMultvsMult_
 
MonitorElementmeJetsRecLVPURelSumPt2_
 
MonitorElementmeJetsRecLVPURelSumPt2vsSumPt2_
 
MonitorElementmeJetsRecLVPURelSumPz_
 
MonitorElementmeJetsRecLVPURelSumPzvsSumPz_
 
MonitorElementmeJetsRecLVPUSumPt2_
 
MonitorElementmeJetsRecLVPUSumPz_
 
MonitorElementmeMatchQual_
 
MonitorElementmeMVATrackEffEtaTot_
 
MonitorElementmeMVATrackEffPtTot_
 
MonitorElementmeMVATrackMatchedEffEtaMtd_
 
MonitorElementmeMVATrackMatchedEffEtaTot_
 
MonitorElementmeMVATrackMatchedEffPtMtd_
 
MonitorElementmeMVATrackMatchedEffPtTot_
 
MonitorElementmeMVATrackPullTot_
 
MonitorElementmeMVATrackResTot_
 
MonitorElementmeMVATrackZposResTot_
 
MonitorElementmePUTrackMult_
 
MonitorElementmePUTrackRecLVMult_
 
MonitorElementmePUTrackRecLVRelMult_
 
MonitorElementmePUTrackRecLVRelMultvsMult_
 
MonitorElementmePUTrackRecLVRelSumPt2_
 
MonitorElementmePUTrackRecLVRelSumPt2vsSumPt2_
 
MonitorElementmePUTrackRecLVRelSumPt_
 
MonitorElementmePUTrackRecLVRelSumPtvsSumPt_
 
MonitorElementmePUTrackRecLVRelSumWnt_
 
MonitorElementmePUTrackRecLVRelSumWntvsSumWnt_
 
MonitorElementmePUTrackRecLVRelSumWos_
 
MonitorElementmePUTrackRecLVRelSumWosvsSumWos_
 
MonitorElementmePUTrackRecLVSumPt2_
 
MonitorElementmePUTrackRecLVSumPt_
 
MonitorElementmePUTrackRecLVSumWnt_
 
MonitorElementmePUTrackRecLVSumWos_
 
MonitorElementmePUTrackRecLVWnt_
 
MonitorElementmePUTrackRelMult_
 
MonitorElementmePUTrackRelMultvsMult_
 
MonitorElementmePUTrackRelSumPt2_
 
MonitorElementmePUTrackRelSumPt2vsSumPt2_
 
MonitorElementmePUTrackRelSumPt_
 
MonitorElementmePUTrackRelSumPtvsSumPt_
 
MonitorElementmePUTrackRelSumWnt_
 
MonitorElementmePUTrackRelSumWntvsSumWnt_
 
MonitorElementmePUTrackRelSumWos_
 
MonitorElementmePUTrackRelSumWosvsSumWos_
 
MonitorElementmePUTrackSumPt2_
 
MonitorElementmePUTrackSumPt_
 
MonitorElementmePUTrackSumWnt_
 
MonitorElementmePUTrackSumWos_
 
MonitorElementmePUTrackWnt_
 
MonitorElementmePUvsOtherFakeV_
 
MonitorElementmePUvsRealV_
 
MonitorElementmePUvsSplitV_
 
MonitorElementmeRecoPosInRecoOrigCollection_
 
MonitorElementmeRecoPosInSimCollection_
 
MonitorElementmeRecoPVPosSignal_
 
MonitorElementmeRecoPVPosSignalNotHighestPt_
 
MonitorElementmeRecoVtxVsLineDensity_
 
MonitorElementmeRecPVT_
 
MonitorElementmeRecPVZ_
 
MonitorElementmeRecVerNumber_
 
MonitorElementmeSecTrackRecLVRelSumWos_
 
MonitorElementmeSecTrackRecLVRelSumWosvsSumWos_
 
MonitorElementmeSecTrackRecLVSumWos_
 
MonitorElementmeSecTrackRelSumWos_
 
MonitorElementmeSecTrackRelSumWosvsSumWos_
 
MonitorElementmeSecTrackSumWos_
 
MonitorElementmeSimPosInSimOrigCollection_
 
MonitorElementmeSimPVZ_
 
MonitorElementmeTimePull_
 
MonitorElementmeTimeRes_
 
MonitorElementmeTimeSignalPull_
 
MonitorElementmeTimeSignalRes_
 
MonitorElementmeTrack3DposRes_ [3]
 
MonitorElementmeTrackPull_ [3]
 
MonitorElementmeTrackPullHighP_ [3]
 
MonitorElementmeTrackPullHighPTot_
 
MonitorElementmeTrackPullLowP_ [3]
 
MonitorElementmeTrackPullLowPTot_
 
MonitorElementmeTrackPullTot_
 
MonitorElementmeTrackRes_ [3]
 
MonitorElementmeTrackResHighP_ [3]
 
MonitorElementmeTrackResHighPTot_
 
MonitorElementmeTrackResLowP_ [3]
 
MonitorElementmeTrackResLowPTot_
 
MonitorElementmeTrackResMass_ [3]
 
MonitorElementmeTrackResMassPions_ [3]
 
MonitorElementmeTrackResMassProtons_ [3]
 
MonitorElementmeTrackResMassTrue_ [3]
 
MonitorElementmeTrackResMassTruePions_ [3]
 
MonitorElementmeTrackResMassTrueProtons_ [3]
 
MonitorElementmeTrackResTot_
 
MonitorElementmeTrackZposRes_ [3]
 
MonitorElementmeTrackZposResTot_
 
const double minProbHeavy_
 
edm::EDGetTokenT< edm::ValueMap< float > > momentumToken_
 
const double mvaTh_
 
bool optionalPlots_
 
edm::EDGetTokenT< edm::ValueMap< float > > pathLengthToken_
 
edm::ESGetToken< HepPDT::ParticleDataTable, edm::DefaultRecordpdtToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > probKToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > probPiToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > probPToken_
 
const reco::RecoToSimCollectionr2s_
 
edm::EDGetTokenT< edm::View< reco::Vertex > > Rec4DVerToken_
 
edm::EDGetTokenT< reco::BeamSpotRecBeamSpotToken_
 
edm::EDGetTokenT< reco::RecoToSimCollectionrecoToSimAssociationToken_
 
edm::EDGetTokenT< reco::TrackCollectionRecTrackToken_
 
const reco::SimToRecoCollections2r_
 
edm::EDGetTokenT< edm::ValueMap< float > > sigmat0SafePidToken_
 
edm::EDGetTokenT< reco::SimToRecoCollectionsimToRecoAssociationToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > t0PidToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > t0SafePidToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > timeToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > tofKToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > tofPiToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > tofPToken_
 
edm::EDGetTokenT< edm::ValueMap< int > > trackAssocToken_
 
edm::EDGetTokenT< TrackingParticleCollectiontrackingParticleCollectionToken_
 
edm::EDGetTokenT< TrackingVertexCollectiontrackingVertexCollectionToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > trackMVAQualToken_
 
const double trackweightTh_
 
bool use3dNoTime_
 
bool use_only_charged_tracks_
 
edm::EDGetTokenT< std::vector< PileupSummaryInfo > > vecPileupSummaryInfoToken_
 

Static Private Attributes

static constexpr double c_ = 2.99792458e1
 
static constexpr float c_cm_ns = geant_units::operators::convertMmToCm(CLHEP::c_light)
 
static constexpr double deltaZcut_ = 0.1
 
static constexpr double etacutGEN_ = 4.
 
static constexpr double etacutREC_ = 3.
 
static constexpr double maxRank_ = 8.
 
static constexpr double maxTry_ = 10.
 
static constexpr double minThrMetPt_ = 1.e-3
 
static constexpr double minThrSumPt2_ = 1.e-3
 
static constexpr double minThrSumPt_ = 0.01
 
static constexpr double minThrSumPz_ = 1.e-4
 
static constexpr double minThrSumWnt_ = 0.01
 
static constexpr double minThrSumWos_ = 0.1
 
static constexpr double mvaH_ = 0.8
 
static constexpr double mvaL_ = 0.5
 
static constexpr unsigned int NOT_MATCHED = 66666
 
static constexpr double pTcut_ = 0.7
 
static constexpr double selNdof_ = 4.
 
static constexpr double simUnit_ = 1e9
 
static constexpr double tol_ = 1.e-4
 
static constexpr double trackMaxBtlEta_ = 1.5
 
static constexpr double trackMaxEtlEta_ = 3.
 
static constexpr double trackMinEtlEta_ = 1.6
 
static constexpr double zWosMatchMax_ = 1.
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 66 of file Primary4DVertexValidation.cc.

Member Typedef Documentation

◆ LorentzVector

Definition at line 67 of file Primary4DVertexValidation.cc.

Constructor & Destructor Documentation

◆ Primary4DVertexValidation()

Primary4DVertexValidation::Primary4DVertexValidation ( const edm::ParameterSet iConfig)
explicit

Definition at line 510 of file Primary4DVertexValidation.cc.

References edm::ParameterSet::getParameter(), ProducerED_cfi::InputTag, momentumToken_, pathLengthToken_, probKToken_, probPiToken_, probPToken_, Rec4DVerToken_, RecBeamSpotToken_, recoToSimAssociationToken_, RecTrackToken_, sigmat0SafePidToken_, simToRecoAssociationToken_, AlCaHLTBitMon_QueryRunRegistry::string, t0PidToken_, t0SafePidToken_, timeToken_, tmtdToken_, tofKToken_, tofPiToken_, tofPToken_, trackAssocToken_, trackingParticleCollectionToken_, trackingVertexCollectionToken_, trackMVAQualToken_, and vecPileupSummaryInfoToken_.

511  : folder_(iConfig.getParameter<std::string>("folder")),
512  use_only_charged_tracks_(iConfig.getParameter<bool>("useOnlyChargedTracks")),
513  debug_(iConfig.getUntrackedParameter<bool>("debug")),
514  optionalPlots_(iConfig.getUntrackedParameter<bool>("optionalPlots")),
515  use3dNoTime_(iConfig.getParameter<bool>("use3dNoTime")),
516  minProbHeavy_(iConfig.getParameter<double>("minProbHeavy")),
517  trackweightTh_(iConfig.getParameter<double>("trackweightTh")),
518  mvaTh_(iConfig.getParameter<double>("mvaTh")),
519  lineDensityPar_(iConfig.getParameter<std::vector<double>>("lineDensityPar")),
520  pdtToken_(esConsumes<HepPDT::ParticleDataTable, edm::DefaultRecord>()) {
521  vecPileupSummaryInfoToken_ = consumes<std::vector<PileupSummaryInfo>>(edm::InputTag(std::string("addPileupInfo")));
523  consumes<TrackingParticleCollection>(iConfig.getParameter<edm::InputTag>("SimTag"));
524  trackingVertexCollectionToken_ = consumes<TrackingVertexCollection>(iConfig.getParameter<edm::InputTag>("SimTag"));
526  consumes<reco::SimToRecoCollection>(iConfig.getParameter<edm::InputTag>("TPtoRecoTrackAssoc"));
528  consumes<reco::RecoToSimCollection>(iConfig.getParameter<edm::InputTag>("TPtoRecoTrackAssoc"));
529  RecTrackToken_ = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("mtdTracks"));
530  RecBeamSpotToken_ = consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("offlineBS"));
531  Rec4DVerToken_ = consumes<edm::View<reco::Vertex>>(iConfig.getParameter<edm::InputTag>("offline4DPV"));
532  trackAssocToken_ = consumes<edm::ValueMap<int>>(iConfig.getParameter<edm::InputTag>("trackAssocSrc"));
533  pathLengthToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("pathLengthSrc"));
534  momentumToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("momentumSrc"));
535  timeToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("timeSrc"));
536  t0PidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0PID"));
537  t0SafePidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0SafePID"));
538  sigmat0SafePidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmat0SafePID"));
539  trackMVAQualToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("trackMVAQual"));
540  tmtdToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("tmtd"));
541  tofPiToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("tofPi"));
542  tofKToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("tofK"));
543  tofPToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("tofP"));
544  probPiToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("probPi"));
545  probKToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("probK"));
546  probPToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("probP"));
547 }
edm::EDGetTokenT< edm::View< reco::Vertex > > Rec4DVerToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::EDGetTokenT< TrackingVertexCollection > trackingVertexCollectionToken_
edm::EDGetTokenT< TrackingParticleCollection > trackingParticleCollectionToken_
edm::EDGetTokenT< edm::ValueMap< float > > sigmat0SafePidToken_
edm::EDGetTokenT< reco::BeamSpot > RecBeamSpotToken_
edm::EDGetTokenT< edm::ValueMap< float > > probKToken_
edm::EDGetTokenT< edm::ValueMap< float > > timeToken_
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< edm::ValueMap< float > > probPiToken_
edm::EDGetTokenT< edm::ValueMap< float > > probPToken_
edm::EDGetTokenT< edm::ValueMap< float > > momentumToken_
edm::EDGetTokenT< edm::ValueMap< float > > tofKToken_
edm::EDGetTokenT< reco::TrackCollection > RecTrackToken_
const std::vector< double > lineDensityPar_
edm::EDGetTokenT< std::vector< PileupSummaryInfo > > vecPileupSummaryInfoToken_
edm::EDGetTokenT< edm::ValueMap< float > > t0PidToken_
edm::EDGetTokenT< reco::SimToRecoCollection > simToRecoAssociationToken_
edm::EDGetTokenT< edm::ValueMap< int > > trackAssocToken_
edm::EDGetTokenT< edm::ValueMap< float > > tofPiToken_
edm::EDGetTokenT< reco::RecoToSimCollection > recoToSimAssociationToken_
edm::ESGetToken< HepPDT::ParticleDataTable, edm::DefaultRecord > pdtToken_
edm::EDGetTokenT< edm::ValueMap< float > > t0SafePidToken_
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
edm::EDGetTokenT< edm::ValueMap< float > > tofPToken_
edm::EDGetTokenT< edm::ValueMap< float > > trackMVAQualToken_
edm::EDGetTokenT< edm::ValueMap< float > > pathLengthToken_

◆ ~Primary4DVertexValidation()

Primary4DVertexValidation::~Primary4DVertexValidation ( )
override

Definition at line 549 of file Primary4DVertexValidation.cc.

549 {}

Member Function Documentation

◆ analyze()

void Primary4DVertexValidation::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 1885 of file Primary4DVertexValidation.cc.

References funct::abs(), gather_cfg::cout, PVValHelper::d3D, debug_, deltaZcut_, dt, PVValHelper::dz, l1ctLayer1_cff::dZ, JetChargeProducer_cfi::exp, dqm::impl::MonitorElement::Fill(), edm::EventSetup::getHandle(), getMatchedTP(), getRecoPVs(), getSimPVs(), getWosWnt(), caHitNtupletGeneratorKernels::iev, iEvent, edm::isNotFinite(), isParticle(), edm::HandleBase::isValid(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::iv, lineDensityPar_, LogTrace, EgHLTOffHistBins_cfi::mass, matchReco2Sim(), SiStripPI::max, meBarrelNoPIDtype_, meBarrelPIDp_, meBarrelTrueKAsK_, meBarrelTrueKAsP_, meBarrelTrueKAsPi_, meBarrelTrueKNoPID_, meBarrelTruePAsK_, meBarrelTruePAsP_, meBarrelTruePAsPi_, meBarrelTruePiAsK_, meBarrelTruePiAsP_, meBarrelTruePiAsPi_, meBarrelTruePiNoPID_, meBarrelTruePNoPID_, meDeltaTfakefake_, meDeltaTfakereal_, meDeltaTrealreal_, meDeltaZfakefake_, meDeltaZfakereal_, meDeltaZrealreal_, meEndcapNoPIDtype_, meEndcapPIDp_, meEndcapTrueKAsK_, meEndcapTrueKAsP_, meEndcapTrueKAsPi_, meEndcapTrueKNoPID_, meEndcapTruePAsK_, meEndcapTruePAsP_, meEndcapTruePAsPi_, meEndcapTruePiAsK_, meEndcapTruePiAsP_, meEndcapTruePiAsPi_, meEndcapTruePiNoPID_, meEndcapTruePNoPID_, meFakeTrackRecLVRelMult_, meFakeTrackRecLVRelMultvsMult_, meFakeTrackRecLVRelSumWos_, meFakeTrackRecLVRelSumWosvsSumWos_, meFakeTrackRelMult_, meFakeTrackRelMultvsMult_, meFakeTrackRelSumWos_, meFakeTrackRelSumWosvsSumWos_, meJetsFakeRelSumPt2_, meJetsFakeRelSumPt2vsSumPt2_, meJetsPUHt_, meJetsPUMetPt_, meJetsPUMult_, meJetsPURelHt_, meJetsPURelHtvsHt_, meJetsPURelMetPt_, meJetsPURelMetPtvsMetPt_, meJetsPURelMult_, meJetsPURelMultvsMult_, meJetsPURelSumPt2_, meJetsPURelSumPt2vsSumPt2_, meJetsPURelSumPz_, meJetsPURelSumPzvsSumPz_, meJetsPUSumPt2_, meJetsPUSumPz_, meJetsRecLVFakeRelSumPt2_, meJetsRecLVFakeRelSumPt2vsSumPt2_, meJetsRecLVPUHt_, meJetsRecLVPUMetPt_, meJetsRecLVPUMult_, meJetsRecLVPURelHt_, meJetsRecLVPURelHtvsHt_, meJetsRecLVPURelMetPt_, meJetsRecLVPURelMetPtvsMetPt_, meJetsRecLVPURelMult_, meJetsRecLVPURelMultvsMult_, meJetsRecLVPURelSumPt2_, meJetsRecLVPURelSumPt2vsSumPt2_, meJetsRecLVPURelSumPz_, meJetsRecLVPURelSumPzvsSumPz_, meJetsRecLVPUSumPt2_, meJetsRecLVPUSumPz_, meMatchQual_, meMVATrackEffEtaTot_, meMVATrackEffPtTot_, meMVATrackMatchedEffEtaMtd_, meMVATrackMatchedEffEtaTot_, meMVATrackMatchedEffPtMtd_, meMVATrackMatchedEffPtTot_, meMVATrackPullTot_, meMVATrackResTot_, meMVATrackZposResTot_, mePUTrackMult_, mePUTrackRecLVMult_, mePUTrackRecLVRelMult_, mePUTrackRecLVRelMultvsMult_, mePUTrackRecLVRelSumPt2_, mePUTrackRecLVRelSumPt2vsSumPt2_, mePUTrackRecLVRelSumPt_, mePUTrackRecLVRelSumPtvsSumPt_, mePUTrackRecLVRelSumWnt_, mePUTrackRecLVRelSumWntvsSumWnt_, mePUTrackRecLVRelSumWos_, mePUTrackRecLVRelSumWosvsSumWos_, mePUTrackRecLVSumPt2_, mePUTrackRecLVSumPt_, mePUTrackRecLVSumWnt_, mePUTrackRecLVSumWos_, mePUTrackRecLVWnt_, mePUTrackRelMult_, mePUTrackRelMultvsMult_, mePUTrackRelSumPt2_, mePUTrackRelSumPt2vsSumPt2_, mePUTrackRelSumPt_, mePUTrackRelSumPtvsSumPt_, mePUTrackRelSumWnt_, mePUTrackRelSumWntvsSumWnt_, mePUTrackRelSumWos_, mePUTrackRelSumWosvsSumWos_, mePUTrackSumPt2_, mePUTrackSumPt_, mePUTrackSumWnt_, mePUTrackSumWos_, mePUTrackWnt_, mePUvsOtherFakeV_, mePUvsRealV_, mePUvsSplitV_, meRecoPosInRecoOrigCollection_, meRecoPosInSimCollection_, meRecoPVPosSignal_, meRecoPVPosSignalNotHighestPt_, meRecoVtxVsLineDensity_, meRecPVT_, meRecPVZ_, meRecVerNumber_, meSecTrackRecLVRelSumWos_, meSecTrackRecLVRelSumWosvsSumWos_, meSecTrackRecLVSumWos_, meSecTrackRelSumWos_, meSecTrackRelSumWosvsSumWos_, meSecTrackSumWos_, meSimPosInSimOrigCollection_, meSimPVZ_, meTimePull_, meTimeRes_, meTimeSignalPull_, meTimeSignalRes_, meTrack3DposRes_, meTrackPull_, meTrackPullHighP_, meTrackPullHighPTot_, meTrackPullLowP_, meTrackPullLowPTot_, meTrackPullTot_, meTrackRes_, meTrackResHighP_, meTrackResHighPTot_, meTrackResLowP_, meTrackResLowPTot_, meTrackResMass_, meTrackResMassPions_, meTrackResMassProtons_, meTrackResMassTrue_, meTrackResMassTruePions_, meTrackResMassTrueProtons_, meTrackResTot_, meTrackZposRes_, meTrackZposResTot_, minThrMetPt_, minThrSumPt2_, minThrSumPt_, minThrSumPz_, minThrSumWnt_, minThrSumWos_, momentumToken_, mvaH_, mvaL_, mvaRecSel(), mvaTPSel(), nJets, NOT_MATCHED, nt, observablesFromJets(), optionalPlots_, LHEGenericFilter_cfi::ParticleID, genfragment_ptgun_cfg::PartID, pathLengthToken_, pdtToken_, printMatchedRecoTrackInfo(), printSimVtxRecoVtxInfo(), probKToken_, probPiToken_, probPToken_, edm::Handle< T >::product(), Primary4DVertexValidation::simPrimaryVertex::ptsq, r2s_, Rec4DVerToken_, RecBeamSpotToken_, recoToSimAssociationToken_, s2r_, select(), selNdof_, sigmat0SafePidToken_, simToRecoAssociationToken_, simUnit_, submitPVValidationJobs::split(), mathSSE::sqrt(), TtFullHadEvtBuilder_cfi::sumPt, t0PidToken_, t0SafePidToken_, hcalRecHitTable_cff::time, timeFromTrueMass(), timeToken_, tmtdToken_, tofKToken_, tofPiToken_, tofPToken_, tol_, trackAssocToken_, trackingParticleCollectionToken_, trackingVertexCollectionToken_, trackMaxBtlEta_, trackMaxEtlEta_, trackMinEtlEta_, trackMVAQualToken_, trackweightTh_, use3dNoTime_, vecPileupSummaryInfoToken_, trackerHitRTTI::vector, bphysicsOniaDQM_cfi::vertex, and z.

1885  {
1886  using edm::Handle;
1887  using edm::View;
1888  using std::cout;
1889  using std::endl;
1890  using std::vector;
1891  using namespace reco;
1892 
1893  std::vector<float> pileUpInfo_z;
1894 
1895  // get the pileup information
1897  if (iEvent.getByToken(vecPileupSummaryInfoToken_, puinfoH)) {
1898  for (auto const& pu_info : *puinfoH.product()) {
1899  if (pu_info.getBunchCrossing() == 0) {
1900  pileUpInfo_z = pu_info.getPU_zpositions();
1901  break;
1902  }
1903  }
1904  }
1905 
1907  iEvent.getByToken(trackingParticleCollectionToken_, TPCollectionH);
1908  if (!TPCollectionH.isValid())
1909  edm::LogWarning("Primary4DVertexValidation") << "TPCollectionH is not valid";
1910 
1912  iEvent.getByToken(trackingVertexCollectionToken_, TVCollectionH);
1913  if (!TVCollectionH.isValid())
1914  edm::LogWarning("Primary4DVertexValidation") << "TVCollectionH is not valid";
1915 
1917  iEvent.getByToken(simToRecoAssociationToken_, simToRecoH);
1918  if (simToRecoH.isValid())
1919  s2r_ = simToRecoH.product();
1920  else
1921  edm::LogWarning("Primary4DVertexValidation") << "simToRecoH is not valid";
1922 
1924  iEvent.getByToken(recoToSimAssociationToken_, recoToSimH);
1925  if (recoToSimH.isValid())
1926  r2s_ = recoToSimH.product();
1927  else
1928  edm::LogWarning("Primary4DVertexValidation") << "recoToSimH is not valid";
1929 
1930  edm::Handle<reco::BeamSpot> BeamSpotH;
1931  iEvent.getByToken(RecBeamSpotToken_, BeamSpotH);
1932  if (!BeamSpotH.isValid())
1933  edm::LogWarning("Primary4DVertexValidation") << "BeamSpotH is not valid";
1934 
1935  std::vector<simPrimaryVertex> simpv; // a list of simulated primary MC vertices
1936  simpv = getSimPVs(TVCollectionH);
1937  // this bool check if first vertex in that with highest pT
1938  bool signal_is_highest_pt =
1939  std::max_element(simpv.begin(), simpv.end(), [](const simPrimaryVertex& lhs, const simPrimaryVertex& rhs) {
1940  return lhs.ptsq < rhs.ptsq;
1941  }) == simpv.begin();
1942 
1943  std::vector<recoPrimaryVertex> recopv; // a list of reconstructed primary MC vertices
1945  iEvent.getByToken(Rec4DVerToken_, recVtxs);
1946  if (!recVtxs.isValid())
1947  edm::LogWarning("Primary4DVertexValidation") << "recVtxs is not valid";
1948  recopv = getRecoPVs(recVtxs);
1949 
1950  const auto& trackAssoc = iEvent.get(trackAssocToken_);
1951  const auto& pathLength = iEvent.get(pathLengthToken_);
1952  const auto& momentum = iEvent.get(momentumToken_);
1953  const auto& time = iEvent.get(timeToken_);
1954  const auto& t0Pid = iEvent.get(t0PidToken_);
1955  const auto& t0Safe = iEvent.get(t0SafePidToken_);
1956  const auto& sigmat0Safe = iEvent.get(sigmat0SafePidToken_);
1957  const auto& mtdQualMVA = iEvent.get(trackMVAQualToken_);
1958  const auto& tMtd = iEvent.get(tmtdToken_);
1959  const auto& tofPi = iEvent.get(tofPiToken_);
1960  const auto& tofK = iEvent.get(tofKToken_);
1961  const auto& tofP = iEvent.get(tofPToken_);
1962  const auto& probPi = iEvent.get(probPiToken_);
1963  const auto& probK = iEvent.get(probKToken_);
1964  const auto& probP = iEvent.get(probPToken_);
1965  const auto& fPDGTable = iSetup.getHandle(pdtToken_);
1966 
1967  // I have simPV and recoPV collections
1968  matchReco2Sim(recopv, simpv, sigmat0Safe, mtdQualMVA, BeamSpotH);
1969 
1970  // Loop on tracks
1971  for (unsigned int iv = 0; iv < recopv.size(); iv++) {
1972  if (recopv.at(iv).ndof > selNdof_) {
1973  const reco::Vertex* vertex = recopv.at(iv).recVtx;
1974 
1975  for (unsigned int iev = 0; iev < simpv.size(); iev++) {
1976  auto vsim = simpv.at(iev).sim_vertex;
1977 
1978  bool selectedVtxMatching = recopv.at(iv).sim == iev && simpv.at(iev).rec == iv;
1979  bool selectedLV = simpv.at(iev).eventId.bunchCrossing() == 0 && simpv.at(iev).eventId.event() == 0 &&
1980  recopv.at(iv).OriginalIndex == 0;
1981  bool selectedLVMatching = selectedVtxMatching && selectedLV; // bool for reco vtx leading match
1982  if (selectedLVMatching && !recopv.at(iv).is_signal()) {
1983  edm::LogWarning("Primary4DVertexValidation")
1984  << "Reco vtx leading match inconsistent: BX/ID " << simpv.at(iev).eventId.bunchCrossing() << " "
1985  << simpv.at(iev).eventId.event();
1986  }
1987  if (selectedLVMatching && debug_) {
1988  printSimVtxRecoVtxInfo(simpv.at(iev), recopv.at(iv));
1989  }
1990  double vzsim = simpv.at(iev).z;
1991  double vtsim = simpv.at(iev).t * simUnit_;
1992 
1993  double wnt = 0, wos = 0;
1994  double PUsumWnt = 0, PUsumWos = 0, SecsumWos = 0, FakesumWos = 0, PUsumPt = 0, PUsumPt2 = 0;
1995  double sumWnt = 0, sumWos = 0, sumPt = 0, sumPt2 = 0;
1996  unsigned int nt = 0, PUnt = 0, Fakent = 0;
1997 
1998  std::vector<double> massVector;
1999  std::vector<reco::Track> recotracks;
2000  std::vector<int> categoryVector;
2001  double sumEtJets = 0, sumPt2Jets = 0, metPt = 0, sumPzJets = 0;
2002  double sumEtJetsnoPU = 0, sumPt2JetsnoPU = 0, metPtnoPU = 0, sumPzJetsnoPU = 0;
2003  double sumEtJetsnoFake = 0, sumPt2JetsnoFake = 0, metPtnoFake = 0, sumPzJetsnoFake = 0;
2004  unsigned int nJets = 0, nJetsnoPU = 0, nJetsnoFake = 0;
2005  for (auto iTrack = vertex->tracks_begin(); iTrack != vertex->tracks_end(); ++iTrack) {
2006  if (trackAssoc[*iTrack] == -1) {
2007  LogTrace("mtdTracks") << "Extended track not associated";
2008  continue;
2009  }
2010 
2011  if (vertex->trackWeight(*iTrack) < trackweightTh_)
2012  continue;
2013  bool noCrack = std::abs((*iTrack)->eta()) < trackMaxBtlEta_ || std::abs((*iTrack)->eta()) > trackMinEtlEta_;
2014 
2015  bool selectRecoTrk = mvaRecSel(**iTrack, *vertex, t0Safe[*iTrack], sigmat0Safe[*iTrack]);
2016  if (selectedLVMatching && selectRecoTrk) {
2017  if (noCrack) {
2018  meMVATrackEffPtTot_->Fill((*iTrack)->pt());
2019  }
2020  meMVATrackEffEtaTot_->Fill(std::abs((*iTrack)->eta()));
2021  }
2022 
2023  auto tp_info = getMatchedTP(*iTrack, vsim).first;
2024  int matchCategory = getMatchedTP(*iTrack, vsim).second;
2025 
2026  // PU, fake and secondary tracks
2027  if (selectedVtxMatching) {
2028  unsigned int no_PIDtype = 0;
2029  bool no_PID, is_Pi, is_K, is_P;
2030  int PartID = 211; // pion
2031  isParticle(*iTrack, probPi, probK, probP, no_PIDtype, no_PID, is_Pi, is_K, is_P);
2032  if (!use3dNoTime_) {
2033  if (no_PID || is_Pi) {
2034  PartID = 211;
2035  } else if (is_K) {
2036  PartID = 321;
2037  } else if (is_P) {
2038  PartID = 2212;
2039  }
2040  }
2041  const HepPDT::ParticleData* PData = fPDGTable->particle(HepPDT::ParticleID(abs(PartID)));
2042  double mass = PData->mass().value();
2043  massVector.push_back(mass);
2044  recotracks.push_back(**iTrack);
2045  getWosWnt(*vertex, *iTrack, sigmat0Safe, BeamSpotH, wos, wnt);
2046  // reco track matched to any TP
2047  if (tp_info != nullptr) {
2048  if (debug_ && selectedLV) {
2049  printMatchedRecoTrackInfo(*vertex, *iTrack, *tp_info, matchCategory);
2050  }
2051  // matched TP not associated to any daughter track of a given sim vertex but having the same eventID (track from secondary vtx)
2052  if (matchCategory == 1) {
2053  categoryVector.push_back(matchCategory);
2054  SecsumWos += wos;
2055  }
2056  // matched TP not associated to any sim vertex of a given simulated event (PU track)
2057  if (matchCategory == 2) {
2058  if (optionalPlots_) {
2059  mePUTrackWnt_->Fill(wnt);
2060  if (selectedLV) {
2061  mePUTrackRecLVWnt_->Fill(wnt);
2062  }
2063  }
2064  PUsumWnt += wnt;
2065  PUsumWos += wos;
2066  PUsumPt += (*iTrack)->pt();
2067  PUsumPt2 += ((*iTrack)->pt() * (*iTrack)->pt());
2068  PUnt++;
2069  categoryVector.push_back(2);
2070  }
2071  }
2072  // reco track not matched to any TP (fake tracks)
2073  else {
2074  categoryVector.push_back(matchCategory);
2075  FakesumWos += wos;
2076  Fakent++;
2077  }
2078  nt++;
2079  sumWnt += wnt;
2080  sumWos += wos;
2081  sumPt += (*iTrack)->pt();
2082  sumPt2 += ((*iTrack)->pt() * (*iTrack)->pt());
2083  }
2084 
2085  // matched TP equal to any TP of a given sim vertex
2086  if (tp_info != nullptr && matchCategory == 0) {
2087  categoryVector.push_back(matchCategory);
2088  double mass = (*tp_info)->mass();
2089  double tsim = (*tp_info)->parentVertex()->position().t() * simUnit_;
2090  double tEst = timeFromTrueMass(mass, pathLength[*iTrack], momentum[*iTrack], time[*iTrack]);
2091 
2092  double xsim = (*tp_info)->parentVertex()->position().x();
2093  double ysim = (*tp_info)->parentVertex()->position().y();
2094  double zsim = (*tp_info)->parentVertex()->position().z();
2095  double xPCA = (*iTrack)->vx();
2096  double yPCA = (*iTrack)->vy();
2097  double zPCA = (*iTrack)->vz();
2098 
2099  double dZ = zPCA - zsim;
2100  double d3D = std::sqrt((xPCA - xsim) * (xPCA - xsim) + (yPCA - ysim) * (yPCA - ysim) + dZ * dZ);
2101  // orient d3D according to the projection of RECO - SIM onto simulated momentum
2102  if ((xPCA - xsim) * ((*tp_info)->px()) + (yPCA - ysim) * ((*tp_info)->py()) + dZ * ((*tp_info)->pz()) <
2103  0.) {
2104  d3D = -d3D;
2105  }
2106 
2107  bool selectTP = mvaTPSel(**tp_info);
2108 
2109  if (selectedLVMatching && selectRecoTrk && selectTP) {
2110  meMVATrackZposResTot_->Fill((*iTrack)->vz() - vzsim);
2111  if (noCrack) {
2112  meMVATrackMatchedEffPtTot_->Fill((*iTrack)->pt());
2113  }
2114  meMVATrackMatchedEffEtaTot_->Fill(std::abs((*iTrack)->eta()));
2115  }
2116 
2117  if (sigmat0Safe[*iTrack] == -1)
2118  continue;
2119 
2120  if (selectedLVMatching && selectRecoTrk && selectTP) {
2121  meMVATrackResTot_->Fill(t0Safe[*iTrack] - vtsim);
2122  meMVATrackPullTot_->Fill((t0Safe[*iTrack] - vtsim) / sigmat0Safe[*iTrack]);
2123  if (noCrack) {
2124  meMVATrackMatchedEffPtMtd_->Fill((*iTrack)->pt());
2125  }
2126  meMVATrackMatchedEffEtaMtd_->Fill(std::abs((*iTrack)->eta()));
2127 
2128  unsigned int noPIDtype = 0;
2129  bool noPID = false, isPi = false, isK = false, isP = false;
2130  isParticle(*iTrack, probPi, probK, probP, noPIDtype, noPID, isPi, isK, isP);
2131 
2132  if ((isPi && std::abs(tMtd[*iTrack] - tofPi[*iTrack] - t0Pid[*iTrack]) > tol_) ||
2133  (isK && std::abs(tMtd[*iTrack] - tofK[*iTrack] - t0Pid[*iTrack]) > tol_) ||
2134  (isP && std::abs(tMtd[*iTrack] - tofP[*iTrack] - t0Pid[*iTrack]) > tol_)) {
2135  edm::LogWarning("Primary4DVertexValidation")
2136  << "No match between mass hyp. and time: " << std::abs((*tp_info)->pdgId()) << " mass hyp pi/k/p "
2137  << isPi << " " << isK << " " << isP << " t0/t0safe " << t0Pid[*iTrack] << " " << t0Safe[*iTrack]
2138  << " tMtd - tof pi/K/p " << tMtd[*iTrack] - tofPi[*iTrack] << " " << tMtd[*iTrack] - tofK[*iTrack]
2139  << " " << tMtd[*iTrack] - tofP[*iTrack] << " Prob pi/K/p " << probPi[*iTrack] << " "
2140  << probK[*iTrack] << " " << probP[*iTrack];
2141  }
2142 
2143  if (std::abs((*iTrack)->eta()) < trackMaxBtlEta_) {
2144  meBarrelPIDp_->Fill((*iTrack)->p());
2145  meBarrelNoPIDtype_->Fill(noPIDtype + 0.5);
2146  if (std::abs((*tp_info)->pdgId()) == 211) {
2147  if (noPID) {
2148  meBarrelTruePiNoPID_->Fill((*iTrack)->p());
2149  } else if (isPi) {
2150  meBarrelTruePiAsPi_->Fill((*iTrack)->p());
2151  } else if (isK) {
2152  meBarrelTruePiAsK_->Fill((*iTrack)->p());
2153  } else if (isP) {
2154  meBarrelTruePiAsP_->Fill((*iTrack)->p());
2155  } else {
2156  edm::LogWarning("Primary4DVertexValidation")
2157  << "No PID class: " << std::abs((*tp_info)->pdgId()) << " t0/t0safe " << t0Pid[*iTrack] << " "
2158  << t0Safe[*iTrack] << " Prob pi/K/p " << probPi[*iTrack] << " " << probK[*iTrack] << " "
2159  << probP[*iTrack];
2160  }
2161  } else if (std::abs((*tp_info)->pdgId()) == 321) {
2162  if (noPID) {
2163  meBarrelTrueKNoPID_->Fill((*iTrack)->p());
2164  } else if (isPi) {
2165  meBarrelTrueKAsPi_->Fill((*iTrack)->p());
2166  } else if (isK) {
2167  meBarrelTrueKAsK_->Fill((*iTrack)->p());
2168  } else if (isP) {
2169  meBarrelTrueKAsP_->Fill((*iTrack)->p());
2170  } else {
2171  edm::LogWarning("Primary4DVertexValidation")
2172  << "No PID class: " << std::abs((*tp_info)->pdgId()) << " t0/t0safe " << t0Pid[*iTrack] << " "
2173  << t0Safe[*iTrack] << " Prob pi/K/p " << probPi[*iTrack] << " " << probK[*iTrack] << " "
2174  << probP[*iTrack];
2175  }
2176  } else if (std::abs((*tp_info)->pdgId()) == 2212) {
2177  if (noPID) {
2178  meBarrelTruePNoPID_->Fill((*iTrack)->p());
2179  } else if (isPi) {
2180  meBarrelTruePAsPi_->Fill((*iTrack)->p());
2181  } else if (isK) {
2182  meBarrelTruePAsK_->Fill((*iTrack)->p());
2183  } else if (isP) {
2184  meBarrelTruePAsP_->Fill((*iTrack)->p());
2185  } else {
2186  edm::LogWarning("Primary4DVertexValidation")
2187  << "No PID class: " << std::abs((*tp_info)->pdgId()) << " t0/t0safe " << t0Pid[*iTrack] << " "
2188  << t0Safe[*iTrack] << " Prob pi/K/p " << probPi[*iTrack] << " " << probK[*iTrack] << " "
2189  << probP[*iTrack];
2190  }
2191  }
2192  } else if (std::abs((*iTrack)->eta()) > trackMinEtlEta_ && std::abs((*iTrack)->eta()) < trackMaxEtlEta_) {
2193  meEndcapPIDp_->Fill((*iTrack)->p());
2194  meEndcapNoPIDtype_->Fill(noPIDtype + 0.5);
2195  if (std::abs((*tp_info)->pdgId()) == 211) {
2196  if (noPID) {
2197  meEndcapTruePiNoPID_->Fill((*iTrack)->p());
2198  } else if (isPi) {
2199  meEndcapTruePiAsPi_->Fill((*iTrack)->p());
2200  } else if (isK) {
2201  meEndcapTruePiAsK_->Fill((*iTrack)->p());
2202  } else if (isP) {
2203  meEndcapTruePiAsP_->Fill((*iTrack)->p());
2204  } else {
2205  edm::LogWarning("Primary4DVertexValidation")
2206  << "No PID class: " << std::abs((*tp_info)->pdgId()) << " t0/t0safe " << t0Pid[*iTrack] << " "
2207  << t0Safe[*iTrack] << " Prob pi/K/p " << probPi[*iTrack] << " " << probK[*iTrack] << " "
2208  << probP[*iTrack];
2209  }
2210  } else if (std::abs((*tp_info)->pdgId()) == 321) {
2211  if (noPID) {
2212  meEndcapTrueKNoPID_->Fill((*iTrack)->p());
2213  } else if (isPi) {
2214  meEndcapTrueKAsPi_->Fill((*iTrack)->p());
2215  } else if (isK) {
2216  meEndcapTrueKAsK_->Fill((*iTrack)->p());
2217  } else if (isP) {
2218  meEndcapTrueKAsP_->Fill((*iTrack)->p());
2219  } else {
2220  edm::LogWarning("Primary4DVertexValidation")
2221  << "No PID class: " << std::abs((*tp_info)->pdgId()) << " t0/t0safe " << t0Pid[*iTrack] << " "
2222  << t0Safe[*iTrack] << " Prob pi/K/p " << probPi[*iTrack] << " " << probK[*iTrack] << " "
2223  << probP[*iTrack];
2224  }
2225  } else if (std::abs((*tp_info)->pdgId()) == 2212) {
2226  if (noPID) {
2227  meEndcapTruePNoPID_->Fill((*iTrack)->p());
2228  } else if (isPi) {
2229  meEndcapTruePAsPi_->Fill((*iTrack)->p());
2230  } else if (isK) {
2231  meEndcapTruePAsK_->Fill((*iTrack)->p());
2232  } else if (isP) {
2233  meEndcapTruePAsP_->Fill((*iTrack)->p());
2234  } else {
2235  edm::LogWarning("Primary4DVertexValidation")
2236  << "No PID class: " << std::abs((*tp_info)->pdgId()) << " t0/t0safe " << t0Pid[*iTrack] << " "
2237  << t0Safe[*iTrack] << " Prob pi/K/p " << probPi[*iTrack] << " " << probK[*iTrack] << " "
2238  << probP[*iTrack];
2239  }
2240  }
2241  }
2242  }
2243  meTrackResTot_->Fill(t0Safe[*iTrack] - tsim);
2244  meTrackPullTot_->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2246  if ((*iTrack)->p() <= 2) {
2247  meTrackResLowPTot_->Fill(t0Safe[*iTrack] - tsim);
2248  meTrackPullLowPTot_->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2249  } else {
2250  meTrackResHighPTot_->Fill(t0Safe[*iTrack] - tsim);
2251  meTrackPullHighPTot_->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2252  }
2253 
2254  if (mtdQualMVA[(*iTrack)] < mvaL_) {
2255  meTrackZposRes_[0]->Fill(dZ);
2256  meTrack3DposRes_[0]->Fill(d3D);
2257  meTrackRes_[0]->Fill(t0Safe[*iTrack] - tsim);
2258  meTrackPull_[0]->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2259 
2260  if (optionalPlots_) {
2261  meTrackResMass_[0]->Fill(t0Safe[*iTrack] - tEst);
2262  meTrackResMassTrue_[0]->Fill(tEst - tsim);
2263  }
2264 
2265  if ((*iTrack)->p() <= 2) {
2266  meTrackResLowP_[0]->Fill(t0Safe[*iTrack] - tsim);
2267  meTrackPullLowP_[0]->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2268  } else if ((*iTrack)->p() > 2) {
2269  meTrackResHighP_[0]->Fill(t0Safe[*iTrack] - tsim);
2270  meTrackPullHighP_[0]->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2271  }
2272 
2273  if (optionalPlots_) {
2274  if (std::abs((*tp_info)->pdgId()) == 2212) {
2275  meTrackResMassProtons_[0]->Fill(t0Safe[*iTrack] - tEst);
2276  meTrackResMassTrueProtons_[0]->Fill(tEst - tsim);
2277  } else if (std::abs((*tp_info)->pdgId()) == 211) {
2278  meTrackResMassPions_[0]->Fill(t0Safe[*iTrack] - tEst);
2279  meTrackResMassTruePions_[0]->Fill(tEst - tsim);
2280  }
2281  }
2282 
2283  } else if (mtdQualMVA[(*iTrack)] > mvaL_ && mtdQualMVA[(*iTrack)] < mvaH_) {
2284  meTrackZposRes_[1]->Fill(dZ);
2285  meTrack3DposRes_[1]->Fill(d3D);
2286  meTrackRes_[1]->Fill(t0Safe[*iTrack] - tsim);
2287  meTrackPull_[1]->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2288 
2289  if (optionalPlots_) {
2290  meTrackResMass_[1]->Fill(t0Safe[*iTrack] - tEst);
2291  meTrackResMassTrue_[1]->Fill(tEst - tsim);
2292  }
2293 
2294  if ((*iTrack)->p() <= 2) {
2295  meTrackResLowP_[1]->Fill(t0Safe[*iTrack] - tsim);
2296  meTrackPullLowP_[1]->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2297  } else if ((*iTrack)->p() > 2) {
2298  meTrackResHighP_[1]->Fill(t0Safe[*iTrack] - tsim);
2299  meTrackPullHighP_[1]->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2300  }
2301 
2302  if (optionalPlots_) {
2303  if (std::abs((*tp_info)->pdgId()) == 2212) {
2304  meTrackResMassProtons_[1]->Fill(t0Safe[*iTrack] - tEst);
2305  meTrackResMassTrueProtons_[1]->Fill(tEst - tsim);
2306  } else if (std::abs((*tp_info)->pdgId()) == 211) {
2307  meTrackResMassPions_[1]->Fill(t0Safe[*iTrack] - tEst);
2308  meTrackResMassTruePions_[1]->Fill(tEst - tsim);
2309  }
2310  }
2311 
2312  } else if (mtdQualMVA[(*iTrack)] > mvaH_) {
2313  meTrackZposRes_[2]->Fill(dZ);
2314  meTrack3DposRes_[2]->Fill(d3D);
2315  meTrackRes_[2]->Fill(t0Safe[*iTrack] - tsim);
2316  meTrackPull_[2]->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2317 
2318  if (optionalPlots_) {
2319  meTrackResMass_[2]->Fill(t0Safe[*iTrack] - tEst);
2320  meTrackResMassTrue_[2]->Fill(tEst - tsim);
2321  }
2322 
2323  if ((*iTrack)->p() <= 2) {
2324  meTrackResLowP_[2]->Fill(t0Safe[*iTrack] - tsim);
2325  meTrackPullLowP_[2]->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2326  } else if ((*iTrack)->p() > 2) {
2327  meTrackResHighP_[2]->Fill(t0Safe[*iTrack] - tsim);
2328  meTrackPullHighP_[2]->Fill((t0Safe[*iTrack] - tsim) / sigmat0Safe[*iTrack]);
2329  }
2330 
2331  if (optionalPlots_) {
2332  if (std::abs((*tp_info)->pdgId()) == 2212) {
2333  meTrackResMassProtons_[2]->Fill(t0Safe[*iTrack] - tEst);
2334  meTrackResMassTrueProtons_[2]->Fill(tEst - tsim);
2335  } else if (std::abs((*tp_info)->pdgId()) == 211) {
2336  meTrackResMassPions_[2]->Fill(t0Safe[*iTrack] - tEst);
2337  meTrackResMassTruePions_[2]->Fill(tEst - tsim);
2338  }
2339  }
2340  }
2341  } // if tp_info != nullptr && MatchCategory == 0
2342  } // loop on reco tracks
2343  if (selectedVtxMatching) {
2344  mePUTrackRelMult_->Fill(static_cast<double>(PUnt) / nt);
2345  meFakeTrackRelMult_->Fill(static_cast<double>(Fakent) / nt);
2346  mePUTrackRelSumWnt_->Fill(PUsumWnt / sumWnt);
2347  mePUTrackRelSumWos_->Fill(PUsumWos / sumWos);
2348  meSecTrackRelSumWos_->Fill(SecsumWos / sumWos);
2349  meFakeTrackRelSumWos_->Fill(FakesumWos / sumWos);
2350  mePUTrackRelSumPt_->Fill(PUsumPt / sumPt);
2351  mePUTrackRelSumPt2_->Fill(PUsumPt2 / sumPt2);
2352 
2354  recotracks, massVector, categoryVector, "use_allTracks", nJets, sumEtJets, sumPt2Jets, metPt, sumPzJets);
2355  observablesFromJets(recotracks,
2356  massVector,
2357  categoryVector,
2358  "skip_Fake",
2359  nJetsnoFake,
2360  sumEtJetsnoFake,
2361  sumPt2JetsnoFake,
2362  metPtnoFake,
2363  sumPzJetsnoFake);
2364  observablesFromJets(recotracks,
2365  massVector,
2366  categoryVector,
2367  "skip_PU",
2368  nJetsnoPU,
2369  sumEtJetsnoPU,
2370  sumPt2JetsnoPU,
2371  metPtnoPU,
2372  sumPzJetsnoPU);
2373 
2374  meJetsPURelMult_->Fill(static_cast<double>(nJets - nJetsnoPU) / nJets);
2375  meJetsPURelHt_->Fill((sumEtJets - sumEtJetsnoPU) / sumEtJets);
2376  meJetsPURelSumPt2_->Fill((sumPt2Jets - sumPt2JetsnoPU) / sumPt2Jets);
2377  meJetsFakeRelSumPt2_->Fill((sumPt2Jets - sumPt2JetsnoFake) / sumPt2Jets);
2378  meJetsPURelMetPt_->Fill((metPt - metPtnoPU) / metPt);
2379  meJetsPURelSumPz_->Fill((sumPzJets - sumPzJetsnoPU) / sumPzJets);
2380 
2381  if (optionalPlots_) {
2382  mePUTrackMult_->Fill(PUnt);
2383  mePUTrackSumWnt_->Fill(log10(std::max(minThrSumWnt_, PUsumWnt)));
2384  mePUTrackSumWos_->Fill(log10(std::max(minThrSumWos_, PUsumWos)));
2385  meSecTrackSumWos_->Fill(log10(std::max(minThrSumWos_, SecsumWos)));
2386  mePUTrackSumPt_->Fill(log10(std::max(minThrSumPt_, PUsumPt)));
2387  mePUTrackSumPt2_->Fill(log10(std::max(minThrSumPt2_, PUsumPt2)));
2388 
2389  mePUTrackRelMultvsMult_->Fill(nt, static_cast<double>(PUnt) / nt);
2390  meFakeTrackRelMultvsMult_->Fill(nt, static_cast<double>(Fakent) / nt);
2391  mePUTrackRelSumWntvsSumWnt_->Fill(log10(std::max(minThrSumWnt_, sumWnt)), PUsumWnt / sumWnt);
2392  mePUTrackRelSumWosvsSumWos_->Fill(log10(std::max(minThrSumWos_, sumWos)), PUsumWos / sumWos);
2393  meSecTrackRelSumWosvsSumWos_->Fill(log10(std::max(minThrSumWos_, sumWos)), SecsumWos / sumWos);
2394  meFakeTrackRelSumWosvsSumWos_->Fill(log10(std::max(minThrSumWos_, sumWos)), FakesumWos / sumWos);
2396  mePUTrackRelSumPt2vsSumPt2_->Fill(log10(std::max(minThrSumPt2_, sumPt2)), PUsumPt2 / sumPt2);
2397 
2398  meJetsPUMult_->Fill(nJets - nJetsnoPU);
2399  meJetsPUHt_->Fill(log10(std::max(minThrSumPt_, sumEtJets - sumEtJetsnoPU)));
2400  meJetsPUSumPt2_->Fill(log10(std::max(minThrSumPt2_, sumPt2Jets - sumPt2JetsnoPU)));
2401  meJetsPUMetPt_->Fill(log10(std::max(minThrMetPt_, metPt - metPtnoPU)));
2402  meJetsPUSumPz_->Fill(log10(std::max(minThrSumPz_, std::abs(sumPzJets - sumPzJetsnoPU))));
2403 
2404  meJetsPURelMultvsMult_->Fill(nJets, static_cast<double>(nJets - nJetsnoPU) / nJets);
2405  meJetsPURelHtvsHt_->Fill(log10(std::max(minThrSumPt_, sumEtJets)), (sumEtJets - sumEtJetsnoPU) / sumEtJets);
2407  (sumPt2Jets - sumPt2JetsnoPU) / sumPt2Jets);
2409  (sumPt2Jets - sumPt2JetsnoFake) / sumPt2Jets);
2410  meJetsPURelMetPtvsMetPt_->Fill(log10(std::max(minThrMetPt_, metPt)), (metPt - metPtnoPU) / metPt);
2412  (sumPzJets - sumPzJetsnoPU) / sumPzJets);
2413  }
2414  if (selectedLV) {
2415  mePUTrackRecLVRelMult_->Fill(static_cast<double>(PUnt) / nt);
2416  meFakeTrackRecLVRelMult_->Fill(static_cast<double>(Fakent) / nt);
2417  mePUTrackRecLVRelSumWnt_->Fill(PUsumWnt / sumWnt);
2418  mePUTrackRecLVRelSumWos_->Fill(PUsumWos / sumWos);
2419  meSecTrackRecLVRelSumWos_->Fill(SecsumWos / sumWos);
2420  meFakeTrackRecLVRelSumWos_->Fill(FakesumWos / sumWos);
2421  mePUTrackRecLVRelSumPt_->Fill(PUsumPt / sumPt);
2422  mePUTrackRecLVRelSumPt2_->Fill(PUsumPt2 / sumPt2);
2423 
2424  meJetsRecLVPURelMult_->Fill(static_cast<double>(nJets - nJetsnoPU) / nJets);
2425  meJetsRecLVPURelHt_->Fill((sumEtJets - sumEtJetsnoPU) / sumEtJets);
2426  meJetsRecLVPURelSumPt2_->Fill((sumPt2Jets - sumPt2JetsnoPU) / sumPt2Jets);
2427  meJetsRecLVFakeRelSumPt2_->Fill((sumPt2Jets - sumPt2JetsnoFake) / sumPt2Jets);
2428  meJetsRecLVPURelMetPt_->Fill((metPt - metPtnoPU) / metPt);
2429  meJetsRecLVPURelSumPz_->Fill((sumPzJets - sumPzJetsnoPU) / sumPzJets);
2430 
2431  if (debug_) {
2432  edm::LogPrint("Primary4DVertexValidation")
2433  << "#PUTrks = " << PUnt << " #Trks = " << nt << " PURelMult = " << std::setprecision(3)
2434  << static_cast<double>(PUnt) / nt;
2435  edm::LogPrint("Primary4DVertexValidation")
2436  << "PUsumWnt = " << std::setprecision(3) << PUsumWnt << " sumWnt = " << std::setprecision(3) << sumWnt
2437  << " PURelsumWnt = " << std::setprecision(3) << PUsumWnt / sumWnt;
2438  edm::LogPrint("Primary4DVertexValidation")
2439  << "PUsumWos = " << std::setprecision(3) << PUsumWos << " sumWos = " << std::setprecision(3) << sumWos
2440  << " PURelsumWos = " << std::setprecision(3) << PUsumWos / sumWos;
2441  edm::LogPrint("Primary4DVertexValidation")
2442  << "PuSumPt = " << std::setprecision(3) << PUsumPt << " SumPt = " << std::setprecision(4) << sumPt
2443  << " PURelSumPt = " << std::setprecision(3) << PUsumPt / sumPt;
2444  edm::LogPrint("Primary4DVertexValidation")
2445  << "PuSumPt2 = " << std::setprecision(3) << PUsumPt2 << " SumPt2 = " << std::setprecision(4) << sumPt2
2446  << " PURelSumPt2 = " << std::setprecision(3) << PUsumPt2 / sumPt2;
2447  }
2448  if (optionalPlots_) {
2449  mePUTrackRecLVMult_->Fill(PUnt);
2450  mePUTrackRecLVSumWnt_->Fill(log10(std::max(minThrSumWnt_, PUsumWnt)));
2451  mePUTrackRecLVSumWos_->Fill(log10(std::max(minThrSumWos_, PUsumWos)));
2452  meSecTrackRecLVSumWos_->Fill(log10(std::max(minThrSumWos_, PUsumWos)));
2453  mePUTrackRecLVSumPt_->Fill(log10(std::max(minThrSumPt_, PUsumPt)));
2454  mePUTrackRecLVSumPt2_->Fill(log10(std::max(minThrSumPt2_, PUsumPt2)));
2455 
2456  mePUTrackRecLVRelMultvsMult_->Fill(nt, static_cast<double>(PUnt) / nt);
2457  meFakeTrackRecLVRelMultvsMult_->Fill(nt, static_cast<double>(Fakent) / nt);
2458  mePUTrackRecLVRelSumWntvsSumWnt_->Fill(log10(std::max(minThrSumWnt_, sumWnt)), PUsumWnt / sumWnt);
2459  mePUTrackRecLVRelSumWosvsSumWos_->Fill(log10(std::max(minThrSumWos_, sumWos)), PUsumWos / sumWos);
2460  meSecTrackRecLVRelSumWosvsSumWos_->Fill(log10(std::max(minThrSumWos_, sumWos)), SecsumWos / sumWos);
2461  meFakeTrackRecLVRelSumWosvsSumWos_->Fill(log10(std::max(minThrSumWos_, sumWos)), FakesumWos / sumWos);
2463  mePUTrackRecLVRelSumPt2vsSumPt2_->Fill(log10(std::max(minThrSumPt2_, sumPt2)), PUsumPt2 / sumPt2);
2464 
2465  meJetsRecLVPUMult_->Fill(nJets - nJetsnoPU);
2466  meJetsRecLVPUHt_->Fill(log10(std::max(minThrSumPt_, sumEtJets - sumEtJetsnoPU)));
2467  meJetsRecLVPUSumPt2_->Fill(log10(std::max(minThrSumPt2_, sumPt2Jets - sumPt2JetsnoPU)));
2468  meJetsRecLVPUMetPt_->Fill(log10(std::max(minThrMetPt_, metPt - metPtnoPU)));
2469  meJetsRecLVPUSumPz_->Fill(log10(std::max(minThrSumPz_, std::abs(sumPzJets - sumPzJetsnoPU))));
2470 
2471  meJetsRecLVPURelMultvsMult_->Fill(nJets, static_cast<double>(nJets - nJetsnoPU) / nJets);
2472  meJetsRecLVPURelHtvsHt_->Fill(log10(std::max(minThrSumPt_, sumEtJets)),
2473  (sumEtJets - sumEtJetsnoPU) / sumEtJets);
2475  (sumPt2Jets - sumPt2JetsnoPU) / sumPt2Jets);
2477  (sumPt2Jets - sumPt2JetsnoFake) / sumPt2Jets);
2478  meJetsRecLVPURelMetPtvsMetPt_->Fill(log10(std::max(minThrMetPt_, metPt)), (metPt - metPtnoPU) / metPt);
2480  (sumPzJets - sumPzJetsnoPU) / sumPzJets);
2481  }
2482  }
2483  }
2484  } // loop on simpv
2485  } // ndof
2486  } // loop on recopv
2487 
2488  int real = 0;
2489  int fake = 0;
2490  int other_fake = 0;
2491  int split = 0;
2492 
2493  auto puLineDensity = [&](double z) {
2494  // gaussian parameterization of line density vs z, z in cm, parameters in mm
2495  double argl = (z * 10. - lineDensityPar_[1]) / lineDensityPar_[2];
2496  return lineDensityPar_[0] * exp(-0.5 * argl * argl);
2497  };
2498 
2499  meRecVerNumber_->Fill(recopv.size());
2500  for (unsigned int ir = 0; ir < recopv.size(); ir++) {
2501  if (recopv.at(ir).ndof > selNdof_) {
2502  meRecoVtxVsLineDensity_->Fill(puLineDensity(recopv.at(ir).z));
2503  meRecPVZ_->Fill(recopv.at(ir).z, 1. / puLineDensity(recopv.at(ir).z));
2504  if (recopv.at(ir).recVtx->tError() > 0.) {
2505  meRecPVT_->Fill(recopv.at(ir).recVtx->t());
2506  }
2507  if (debug_) {
2508  edm::LogPrint("Primary4DVertexValidation") << "************* IR: " << ir;
2509  edm::LogPrint("Primary4DVertexValidation")
2510  << "z: " << recopv.at(ir).z << " corresponding to line density: " << puLineDensity(recopv.at(ir).z);
2511  edm::LogPrint("Primary4DVertexValidation") << "is_real: " << recopv.at(ir).is_real();
2512  edm::LogPrint("Primary4DVertexValidation") << "is_fake: " << recopv.at(ir).is_fake();
2513  edm::LogPrint("Primary4DVertexValidation") << "is_signal: " << recopv.at(ir).is_signal();
2514  edm::LogPrint("Primary4DVertexValidation") << "split_from: " << recopv.at(ir).split_from();
2515  edm::LogPrint("Primary4DVertexValidation") << "other fake: " << recopv.at(ir).other_fake();
2516  }
2517  if (recopv.at(ir).is_real())
2518  real++;
2519  if (recopv.at(ir).is_fake())
2520  fake++;
2521  if (recopv.at(ir).other_fake())
2522  other_fake++;
2523  if (recopv.at(ir).split_from() != -1) {
2524  split++;
2525  }
2526  } // ndof
2527  }
2528 
2529  if (debug_) {
2530  edm::LogPrint("Primary4DVertexValidation") << "is_real: " << real;
2531  edm::LogPrint("Primary4DVertexValidation") << "is_fake: " << fake;
2532  edm::LogPrint("Primary4DVertexValidation") << "split_from: " << split;
2533  edm::LogPrint("Primary4DVertexValidation") << "other fake: " << other_fake;
2534  }
2535  mePUvsRealV_->Fill(simpv.size(), real);
2536  mePUvsOtherFakeV_->Fill(simpv.size(), other_fake);
2537  mePUvsSplitV_->Fill(simpv.size(), split);
2538 
2539  // fill vertices histograms here in a new loop
2540  for (unsigned int is = 0; is < simpv.size(); is++) {
2541  // protect against particle guns with very displaced vertices
2542  if (edm::isNotFinite(1. / puLineDensity(simpv.at(is).z))) {
2543  continue;
2544  }
2545  meSimPVZ_->Fill(simpv.at(is).z, 1. / puLineDensity(simpv.at(is).z));
2546  if (is == 0 && optionalPlots_) {
2547  meSimPosInSimOrigCollection_->Fill(simpv.at(is).OriginalIndex);
2548  }
2549 
2550  if (simpv.at(is).rec == NOT_MATCHED) {
2551  if (debug_) {
2552  edm::LogPrint("Primary4DVertexValidation") << "sim vertex: " << is << " is not matched with any reco";
2553  }
2554  continue;
2555  }
2556 
2557  for (unsigned int ir = 0; ir < recopv.size(); ir++) {
2558  if (recopv.at(ir).ndof > selNdof_) {
2559  if (recopv.at(ir).sim == is && simpv.at(is).rec == ir) {
2560  meTimeRes_->Fill(recopv.at(ir).recVtx->t() - simpv.at(is).t * simUnit_);
2561  meTimePull_->Fill((recopv.at(ir).recVtx->t() - simpv.at(is).t * simUnit_) / recopv.at(ir).recVtx->tError());
2562  meMatchQual_->Fill(recopv.at(ir).matchQuality - 0.5);
2563  if (ir == 0) { // signal vertex plots
2564  meTimeSignalRes_->Fill(recopv.at(ir).recVtx->t() - simpv.at(is).t * simUnit_);
2565  meTimeSignalPull_->Fill((recopv.at(ir).recVtx->t() - simpv.at(is).t * simUnit_) /
2566  recopv.at(ir).recVtx->tError());
2567  if (optionalPlots_) {
2568  meRecoPosInSimCollection_->Fill(recopv.at(ir).sim);
2569  meRecoPosInRecoOrigCollection_->Fill(recopv.at(ir).OriginalIndex);
2570  }
2571  }
2572  if (simpv.at(is).eventId.bunchCrossing() == 0 && simpv.at(is).eventId.event() == 0) {
2573  if (!recopv.at(ir).is_signal()) {
2574  edm::LogWarning("Primary4DVertexValidation")
2575  << "Reco vtx leading match inconsistent: BX/ID " << simpv.at(is).eventId.bunchCrossing() << " "
2576  << simpv.at(is).eventId.event();
2577  }
2579  recopv.at(ir).OriginalIndex); // position in reco vtx correction associated to sim signal
2580  if (!signal_is_highest_pt) {
2582  recopv.at(ir).OriginalIndex); // position in reco vtx correction associated to sim signal
2583  }
2584  }
2585  if (debug_) {
2586  edm::LogPrint("Primary4DVertexValidation") << "*** Matching RECO: " << ir << "with SIM: " << is << " ***";
2587  edm::LogPrint("Primary4DVertexValidation") << "Match Quality is " << recopv.at(ir).matchQuality;
2588  edm::LogPrint("Primary4DVertexValidation") << "****";
2589  }
2590  }
2591  } // ndof
2592  }
2593  }
2594 
2595  // dz histos
2596  for (unsigned int iv = 0; iv < recVtxs->size() - 1; iv++) {
2597  if (recVtxs->at(iv).ndof() > selNdof_) {
2598  double mindistance_realreal = 1e10;
2599 
2600  for (unsigned int jv = iv; jv < recVtxs->size(); jv++) {
2601  if ((!(jv == iv)) && select(recVtxs->at(jv))) {
2602  double dz = recVtxs->at(iv).z() - recVtxs->at(jv).z();
2603  double dtsigma = std::sqrt(recVtxs->at(iv).covariance(3, 3) + recVtxs->at(jv).covariance(3, 3));
2604  double dt = (std::abs(dz) <= deltaZcut_ && dtsigma > 0.)
2605  ? (recVtxs->at(iv).t() - recVtxs->at(jv).t()) / dtsigma
2606  : -9999.;
2607  if (recopv.at(iv).is_real() && recopv.at(jv).is_real()) {
2609  if (dt != -9999.) {
2611  }
2612  if (std::abs(dz) < std::abs(mindistance_realreal)) {
2613  mindistance_realreal = dz;
2614  }
2615  } else if (recopv.at(iv).is_fake() && recopv.at(jv).is_fake()) {
2617  if (dt != -9999.) {
2619  }
2620  }
2621  }
2622  }
2623 
2624  double mindistance_fakereal = 1e10;
2625  double mindistance_realfake = 1e10;
2626  for (unsigned int jv = 0; jv < recVtxs->size(); jv++) {
2627  if ((!(jv == iv)) && select(recVtxs->at(jv))) {
2628  double dz = recVtxs->at(iv).z() - recVtxs->at(jv).z();
2629  double dtsigma = std::sqrt(recVtxs->at(iv).covariance(3, 3) + recVtxs->at(jv).covariance(3, 3));
2630  double dt = (std::abs(dz) <= deltaZcut_ && dtsigma > 0.)
2631  ? (recVtxs->at(iv).t() - recVtxs->at(jv).t()) / dtsigma
2632  : -9999.;
2633  if (recopv.at(iv).is_fake() && recopv.at(jv).is_real()) {
2635  if (dt != -9999.) {
2637  }
2638  if (std::abs(dz) < std::abs(mindistance_fakereal)) {
2639  mindistance_fakereal = dz;
2640  }
2641  }
2642 
2643  if (recopv.at(iv).is_real() && recopv.at(jv).is_fake() && (std::abs(dz) < std::abs(mindistance_realfake))) {
2644  mindistance_realfake = dz;
2645  }
2646  }
2647  }
2648  } // ndof
2649  }
2650 
2651 } // end of analyze
static constexpr double trackMaxBtlEta_
float dt
Definition: AMPTWrapper.h:136
edm::EDGetTokenT< edm::View< reco::Vertex > > Rec4DVerToken_
edm::EDGetTokenT< TrackingVertexCollection > trackingVertexCollectionToken_
const bool mvaTPSel(const TrackingParticle &)
static constexpr double trackMaxEtlEta_
MonitorElement * mePUTrackRecLVRelSumWntvsSumWnt_
edm::EDGetTokenT< TrackingParticleCollection > trackingParticleCollectionToken_
edm::EDGetTokenT< edm::ValueMap< float > > sigmat0SafePidToken_
std::vector< Primary4DVertexValidation::simPrimaryVertex > getSimPVs(const edm::Handle< TrackingVertexCollection > &)
edm::EDGetTokenT< reco::BeamSpot > RecBeamSpotToken_
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
bool select(const reco::Vertex &, int level=0)
void matchReco2Sim(std::vector< recoPrimaryVertex > &, std::vector< simPrimaryVertex > &, const edm::ValueMap< float > &, const edm::ValueMap< float > &, const edm::Handle< reco::BeamSpot > &)
void observablesFromJets(const std::vector< reco::Track > &, const std::vector< double > &, const std::vector< int > &, const std::string &, unsigned int &, double &, double &, double &, double &)
edm::EDGetTokenT< edm::ValueMap< float > > probKToken_
T const * product() const
Definition: Handle.h:70
TkSoAView< TrackerTraits > HitToTuple< TrackerTraits > const *__restrict__ int32_t int32_t int iev
static constexpr double minThrSumWos_
MonitorElement * meFakeTrackRecLVRelSumWosvsSumWos_
MonitorElement * meJetsRecLVPURelSumPt2vsSumPt2_
static constexpr int nJets
edm::EDGetTokenT< edm::ValueMap< float > > timeToken_
std::vector< Primary4DVertexValidation::recoPrimaryVertex > getRecoPVs(const edm::Handle< edm::View< reco::Vertex >> &)
static constexpr double trackMinEtlEta_
#define LogTrace(id)
MonitorElement * meTrackResMassProtons_[3]
MonitorElement * meTrackResMassTrueProtons_[3]
void Fill(long long x)
double timeFromTrueMass(double, double, double, double)
int iEvent
Definition: GenABIO.cc:224
MonitorElement * meSecTrackRecLVRelSumWosvsSumWos_
T sqrt(T t)
Definition: SSEVec.h:19
edm::EDGetTokenT< edm::ValueMap< float > > probPiToken_
static constexpr double minThrMetPt_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * mePUTrackRecLVRelSumPt2vsSumPt2_
edm::EDGetTokenT< edm::ValueMap< float > > probPToken_
MonitorElement * meJetsRecLVFakeRelSumPt2vsSumPt2_
edm::EDGetTokenT< edm::ValueMap< float > > momentumToken_
MonitorElement * meTrackResMassTruePions_[3]
edm::EDGetTokenT< edm::ValueMap< float > > tofKToken_
const std::vector< double > lineDensityPar_
HepPDT::ParticleData ParticleData
Log< level::Warning, true > LogPrint
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
const reco::RecoToSimCollection * r2s_
edm::EDGetTokenT< std::vector< PileupSummaryInfo > > vecPileupSummaryInfoToken_
int nt
Definition: AMPTWrapper.h:42
static constexpr double deltaZcut_
const bool mvaRecSel(const reco::TrackBase &, const reco::Vertex &, const double &, const double &)
edm::EDGetTokenT< edm::ValueMap< float > > t0PidToken_
static constexpr unsigned int NOT_MATCHED
edm::EDGetTokenT< reco::SimToRecoCollection > simToRecoAssociationToken_
edm::EDGetTokenT< edm::ValueMap< int > > trackAssocToken_
static constexpr double minThrSumPz_
static constexpr double minThrSumPt2_
bool isValid() const
Definition: HandleBase.h:70
void printSimVtxRecoVtxInfo(const struct Primary4DVertexValidation::simPrimaryVertex &, const struct Primary4DVertexValidation::recoPrimaryVertex &)
std::pair< const edm::Ref< std::vector< TrackingParticle > > *, int > getMatchedTP(const reco::TrackBaseRef &, const TrackingVertexRef &)
fixed size matrix
const reco::SimToRecoCollection * s2r_
edm::EDGetTokenT< edm::ValueMap< float > > tofPiToken_
edm::EDGetTokenT< reco::RecoToSimCollection > recoToSimAssociationToken_
edm::ESGetToken< HepPDT::ParticleDataTable, edm::DefaultRecord > pdtToken_
Log< level::Warning, false > LogWarning
edm::EDGetTokenT< edm::ValueMap< float > > t0SafePidToken_
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
MonitorElement * mePUTrackRecLVRelSumWosvsSumWos_
static constexpr double minThrSumPt_
void isParticle(const reco::TrackBaseRef &, const edm::ValueMap< float > &, const edm::ValueMap< float > &, const edm::ValueMap< float > &, unsigned int &, bool &, bool &, bool &, bool &)
void getWosWnt(const reco::Vertex &, const reco::TrackBaseRef &, const edm::ValueMap< float > &, const edm::Handle< reco::BeamSpot > &, double &, double &)
edm::EDGetTokenT< edm::ValueMap< float > > tofPToken_
static constexpr double minThrSumWnt_
edm::EDGetTokenT< edm::ValueMap< float > > trackMVAQualToken_
void printMatchedRecoTrackInfo(const reco::Vertex &, const reco::TrackBaseRef &, const TrackingParticleRef &, const unsigned int &)
edm::EDGetTokenT< edm::ValueMap< float > > pathLengthToken_

◆ bookHistograms()

void Primary4DVertexValidation::bookHistograms ( DQMStore::IBooker i,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 554 of file Primary4DVertexValidation.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), folder_, meBarrelNoPIDtype_, meBarrelPIDp_, meBarrelTrueKAsK_, meBarrelTrueKAsP_, meBarrelTrueKAsPi_, meBarrelTrueKNoPID_, meBarrelTruePAsK_, meBarrelTruePAsP_, meBarrelTruePAsPi_, meBarrelTruePiAsK_, meBarrelTruePiAsP_, meBarrelTruePiAsPi_, meBarrelTruePiNoPID_, meBarrelTruePNoPID_, meDeltaTfakefake_, meDeltaTfakereal_, meDeltaTrealreal_, meDeltaZfakefake_, meDeltaZfakereal_, meDeltaZrealreal_, meEndcapNoPIDtype_, meEndcapPIDp_, meEndcapTrueKAsK_, meEndcapTrueKAsP_, meEndcapTrueKAsPi_, meEndcapTrueKNoPID_, meEndcapTruePAsK_, meEndcapTruePAsP_, meEndcapTruePAsPi_, meEndcapTruePiAsK_, meEndcapTruePiAsP_, meEndcapTruePiAsPi_, meEndcapTruePiNoPID_, meEndcapTruePNoPID_, meFakeTrackRecLVRelMult_, meFakeTrackRecLVRelMultvsMult_, meFakeTrackRecLVRelSumWos_, meFakeTrackRecLVRelSumWosvsSumWos_, meFakeTrackRelMult_, meFakeTrackRelMultvsMult_, meFakeTrackRelSumWos_, meFakeTrackRelSumWosvsSumWos_, meJetsFakeRelSumPt2_, meJetsFakeRelSumPt2vsSumPt2_, meJetsPUHt_, meJetsPUMetPt_, meJetsPUMult_, meJetsPURelHt_, meJetsPURelHtvsHt_, meJetsPURelMetPt_, meJetsPURelMetPtvsMetPt_, meJetsPURelMult_, meJetsPURelMultvsMult_, meJetsPURelSumPt2_, meJetsPURelSumPt2vsSumPt2_, meJetsPURelSumPz_, meJetsPURelSumPzvsSumPz_, meJetsPUSumPt2_, meJetsPUSumPz_, meJetsRecLVFakeRelSumPt2_, meJetsRecLVFakeRelSumPt2vsSumPt2_, meJetsRecLVPUHt_, meJetsRecLVPUMetPt_, meJetsRecLVPUMult_, meJetsRecLVPURelHt_, meJetsRecLVPURelHtvsHt_, meJetsRecLVPURelMetPt_, meJetsRecLVPURelMetPtvsMetPt_, meJetsRecLVPURelMult_, meJetsRecLVPURelMultvsMult_, meJetsRecLVPURelSumPt2_, meJetsRecLVPURelSumPt2vsSumPt2_, meJetsRecLVPURelSumPz_, meJetsRecLVPURelSumPzvsSumPz_, meJetsRecLVPUSumPt2_, meJetsRecLVPUSumPz_, meMatchQual_, meMVATrackEffEtaTot_, meMVATrackEffPtTot_, meMVATrackMatchedEffEtaMtd_, meMVATrackMatchedEffEtaTot_, meMVATrackMatchedEffPtMtd_, meMVATrackMatchedEffPtTot_, meMVATrackPullTot_, meMVATrackResTot_, meMVATrackZposResTot_, mePUTrackMult_, mePUTrackRecLVMult_, mePUTrackRecLVRelMult_, mePUTrackRecLVRelMultvsMult_, mePUTrackRecLVRelSumPt2_, mePUTrackRecLVRelSumPt2vsSumPt2_, mePUTrackRecLVRelSumPt_, mePUTrackRecLVRelSumPtvsSumPt_, mePUTrackRecLVRelSumWnt_, mePUTrackRecLVRelSumWntvsSumWnt_, mePUTrackRecLVRelSumWos_, mePUTrackRecLVRelSumWosvsSumWos_, mePUTrackRecLVSumPt2_, mePUTrackRecLVSumPt_, mePUTrackRecLVSumWnt_, mePUTrackRecLVSumWos_, mePUTrackRecLVWnt_, mePUTrackRelMult_, mePUTrackRelMultvsMult_, mePUTrackRelSumPt2_, mePUTrackRelSumPt2vsSumPt2_, mePUTrackRelSumPt_, mePUTrackRelSumPtvsSumPt_, mePUTrackRelSumWnt_, mePUTrackRelSumWntvsSumWnt_, mePUTrackRelSumWos_, mePUTrackRelSumWosvsSumWos_, mePUTrackSumPt2_, mePUTrackSumPt_, mePUTrackSumWnt_, mePUTrackSumWos_, mePUTrackWnt_, mePUvsOtherFakeV_, mePUvsRealV_, mePUvsSplitV_, meRecoPosInRecoOrigCollection_, meRecoPosInSimCollection_, meRecoPVPosSignal_, meRecoPVPosSignalNotHighestPt_, meRecoVtxVsLineDensity_, meRecPVT_, meRecPVZ_, meRecVerNumber_, meSecTrackRecLVRelSumWos_, meSecTrackRecLVRelSumWosvsSumWos_, meSecTrackRecLVSumWos_, meSecTrackRelSumWos_, meSecTrackRelSumWosvsSumWos_, meSecTrackSumWos_, meSimPosInSimOrigCollection_, meSimPVZ_, meTimePull_, meTimeRes_, meTimeSignalPull_, meTimeSignalRes_, meTrack3DposRes_, meTrackPull_, meTrackPullHighP_, meTrackPullHighPTot_, meTrackPullLowP_, meTrackPullLowPTot_, meTrackPullTot_, meTrackRes_, meTrackResHighP_, meTrackResHighPTot_, meTrackResLowP_, meTrackResLowPTot_, meTrackResMass_, meTrackResMassPions_, meTrackResMassProtons_, meTrackResMassTrue_, meTrackResMassTruePions_, meTrackResMassTrueProtons_, meTrackResTot_, meTrackZposRes_, meTrackZposResTot_, optionalPlots_, and dqm::implementation::NavigatorBase::setCurrentFolder().

556  {
557  ibook.setCurrentFolder(folder_);
558  // --- histograms booking
559  meMVATrackEffPtTot_ = ibook.book1D("MVAEffPtTot", "Pt of tracks associated to LV; track pt [GeV] ", 110, 0., 11.);
560  meMVATrackEffEtaTot_ = ibook.book1D("MVAEffEtaTot", "Eta of tracks associated to LV; track eta ", 66, 0., 3.3);
562  ibook.book1D("MVAMatchedEffPtTot", "Pt of tracks associated to LV matched to TP; track pt [GeV] ", 110, 0., 11.);
563  meMVATrackMatchedEffPtMtd_ = ibook.book1D(
564  "MVAMatchedEffPtMtd", "Pt of tracks associated to LV matched to TP with time; track pt [GeV] ", 110, 0., 11.);
566  ibook.book1D("MVAMatchedEffEtaTot", "Eta of tracks associated to LV matched to TP; track eta ", 66, 0., 3.3);
567  meMVATrackMatchedEffEtaMtd_ = ibook.book1D(
568  "MVAMatchedEffEtaMtd", "Eta of tracks associated to LV matched to TP with time; track eta ", 66, 0., 3.3);
569  meMVATrackResTot_ = ibook.book1D(
570  "MVATrackRes", "t_{rec} - t_{sim} for tracks from LV MVA sel.; t_{rec} - t_{sim} [ns] ", 120, -0.15, 0.15);
571  meTrackResTot_ = ibook.book1D("TrackRes", "t_{rec} - t_{sim} for tracks; t_{rec} - t_{sim} [ns] ", 120, -0.15, 0.15);
572  meTrackRes_[0] = ibook.book1D(
573  "TrackRes-LowMVA", "t_{rec} - t_{sim} for tracks with MVA < 0.5; t_{rec} - t_{sim} [ns] ", 100, -1., 1.);
574  meTrackRes_[1] = ibook.book1D(
575  "TrackRes-MediumMVA", "t_{rec} - t_{sim} for tracks with 0.5 < MVA < 0.8; t_{rec} - t_{sim} [ns] ", 100, -1., 1.);
576  meTrackRes_[2] = ibook.book1D(
577  "TrackRes-HighMVA", "t_{rec} - t_{sim} for tracks with MVA > 0.8; t_{rec} - t_{sim} [ns] ", 100, -1., 1.);
578  if (optionalPlots_) {
579  meTrackResMass_[0] = ibook.book1D(
580  "TrackResMass-LowMVA", "t_{rec} - t_{est} for tracks with MVA < 0.5; t_{rec} - t_{est} [ns] ", 100, -1., 1.);
581  meTrackResMass_[1] = ibook.book1D("TrackResMass-MediumMVA",
582  "t_{rec} - t_{est} for tracks with 0.5 < MVA < 0.8; t_{rec} - t_{est} [ns] ",
583  100,
584  -1.,
585  1.);
586  meTrackResMass_[2] = ibook.book1D(
587  "TrackResMass-HighMVA", "t_{rec} - t_{est} for tracks with MVA > 0.8; t_{rec} - t_{est} [ns] ", 100, -1., 1.);
588  meTrackResMassTrue_[0] = ibook.book1D(
589  "TrackResMassTrue-LowMVA", "t_{est} - t_{sim} for tracks with MVA < 0.5; t_{est} - t_{sim} [ns] ", 100, -1., 1.);
590  meTrackResMassTrue_[1] = ibook.book1D("TrackResMassTrue-MediumMVA",
591  "t_{est} - t_{sim} for tracks with 0.5 < MVA < 0.8; t_{est} - t_{sim} [ns] ",
592  100,
593  -1.,
594  1.);
595  meTrackResMassTrue_[2] = ibook.book1D("TrackResMassTrue-HighMVA",
596  "t_{est} - t_{sim} for tracks with MVA > 0.8; t_{est} - t_{sim} [ns] ",
597  100,
598  -1.,
599  1.);
600  }
602  ibook.book1D("MVATrackPull", "Pull for tracks from LV MAV sel.; (t_{rec}-t_{sim})/#sigma_{t}", 50, -5., 5.);
603  meTrackPullTot_ = ibook.book1D("TrackPull", "Pull for tracks; (t_{rec}-t_{sim})/#sigma_{t}", 100, -10., 10.);
604  meTrackPull_[0] =
605  ibook.book1D("TrackPull-LowMVA", "Pull for tracks with MVA < 0.5; (t_{rec}-t_{sim})/#sigma_{t}", 100, -10., 10.);
606  meTrackPull_[1] = ibook.book1D(
607  "TrackPull-MediumMVA", "Pull for tracks with 0.5 < MVA < 0.8; (t_{rec}-t_{sim})/#sigma_{t}", 100, -10., 10.);
608  meTrackPull_[2] =
609  ibook.book1D("TrackPull-HighMVA", "Pull for tracks with MVA > 0.8; (t_{rec}-t_{sim})/#sigma_{t}", 100, -10., 10.);
610  meMVATrackZposResTot_ = ibook.book1D(
611  "MVATrackZposResTot", "Z_{PCA} - Z_{sim} for tracks from LV MVA sel.;Z_{PCA} - Z_{sim} [cm] ", 50, -0.1, 0.1);
613  ibook.book1D("TrackZposResTot", "Z_{PCA} - Z_{sim} for tracks;Z_{PCA} - Z_{sim} [cm] ", 50, -0.5, 0.5);
614  meTrackZposRes_[0] = ibook.book1D(
615  "TrackZposRes-LowMVA", "Z_{PCA} - Z_{sim} for tracks with MVA < 0.5;Z_{PCA} - Z_{sim} [cm] ", 50, -0.5, 0.5);
616  meTrackZposRes_[1] = ibook.book1D("TrackZposRes-MediumMVA",
617  "Z_{PCA} - Z_{sim} for tracks with 0.5 < MVA < 0.8 ;Z_{PCA} - Z_{sim} [cm] ",
618  50,
619  -0.5,
620  0.5);
621  meTrackZposRes_[2] = ibook.book1D(
622  "TrackZposRes-HighMVA", "Z_{PCA} - Z_{sim} for tracks with MVA > 0.8 ;Z_{PCA} - Z_{sim} [cm] ", 50, -0.5, 0.5);
623  meTrack3DposRes_[0] =
624  ibook.book1D("Track3DposRes-LowMVA",
625  "3dPos_{PCA} - 3dPos_{sim} for tracks with MVA < 0.5 ;3dPos_{PCA} - 3dPos_{sim} [cm] ",
626  50,
627  -0.5,
628  0.5);
629  meTrack3DposRes_[1] =
630  ibook.book1D("Track3DposRes-MediumMVA",
631  "3dPos_{PCA} - 3dPos_{sim} for tracks with 0.5 < MVA < 0.8 ;3dPos_{PCA} - 3dPos_{sim} [cm] ",
632  50,
633  -0.5,
634  0.5);
635  meTrack3DposRes_[2] =
636  ibook.book1D("Track3DposRes-HighMVA",
637  "3dPos_{PCA} - 3dPos_{sim} for tracks with MVA > 0.8;3dPos_{PCA} - 3dPos_{sim} [cm] ",
638  50,
639  -0.5,
640  0.5);
641  meTimeRes_ = ibook.book1D("TimeRes", "t_{rec} - t_{sim} ;t_{rec} - t_{sim} [ns] ", 40, -0.2, 0.2);
642  meTimePull_ = ibook.book1D("TimePull", "Pull; t_{rec} - t_{sim}/#sigma_{t rec}", 100, -10., 10.);
644  ibook.book1D("TimeSignalRes", "t_{rec} - t_{sim} for signal ;t_{rec} - t_{sim} [ns] ", 40, -0.2, 0.2);
646  ibook.book1D("TimeSignalPull", "Pull for signal; t_{rec} - t_{sim}/#sigma_{t rec}", 100, -10., 10.);
647  mePUvsRealV_ =
648  ibook.bookProfile("PUvsReal", "#PU vertices vs #real matched vertices;#PU;#real ", 100, 0, 300, 100, 0, 200);
649  mePUvsOtherFakeV_ = ibook.bookProfile(
650  "PUvsOtherFake", "#PU vertices vs #other fake matched vertices;#PU;#other fake ", 100, 0, 300, 100, 0, 20);
651  mePUvsSplitV_ =
652  ibook.bookProfile("PUvsSplit", "#PU vertices vs #split matched vertices;#PU;#split ", 100, 0, 300, 100, 0, 20);
653  meMatchQual_ = ibook.book1D("MatchQuality", "RECO-SIM vertex match quality; ", 8, 0, 8.);
654  meDeltaZrealreal_ = ibook.book1D("DeltaZrealreal", "#Delta Z real-real; |#Delta Z (r-r)| [cm]", 100, 0, 0.5);
655  meDeltaZfakefake_ = ibook.book1D("DeltaZfakefake", "#Delta Z fake-fake; |#Delta Z (f-f)| [cm]", 100, 0, 0.5);
656  meDeltaZfakereal_ = ibook.book1D("DeltaZfakereal", "#Delta Z fake-real; |#Delta Z (f-r)| [cm]", 100, 0, 0.5);
657  meDeltaTrealreal_ = ibook.book1D("DeltaTrealreal", "#Delta T real-real; |#Delta T (r-r)| [sigma]", 60, 0., 30.);
658  meDeltaTfakefake_ = ibook.book1D("DeltaTfakefake", "#Delta T fake-fake; |#Delta T (f-f)| [sigma]", 60, 0., 30.);
659  meDeltaTfakereal_ = ibook.book1D("DeltaTfakereal", "#Delta T fake-real; |#Delta T (f-r)| [sigma]", 60, 0., 30.);
660  if (optionalPlots_) {
661  meRecoPosInSimCollection_ = ibook.book1D(
662  "RecoPosInSimCollection", "Sim signal vertex index associated to Reco signal vertex; Sim PV index", 200, 0, 200);
664  ibook.book1D("RecoPosInRecoOrigCollection", "Reco signal index in OrigCollection; Reco index", 200, 0, 200);
666  ibook.book1D("SimPosInSimOrigCollection", "Sim signal index in OrigCollection; Sim index", 200, 0, 200);
667  }
669  ibook.book1D("RecoPVPosSignal", "Position in reco collection of PV associated to sim signal", 20, 0, 20);
671  ibook.book1D("RecoPVPosSignalNotHighestPt",
672  "Position in reco collection of PV associated to sim signal not highest Pt",
673  20,
674  0,
675  20);
677  ibook.book1D("RecoVtxVsLineDensity", "#Reco vertices/mm/event; line density [#vtx/mm/event]", 160, 0., 4.);
678  meRecVerNumber_ = ibook.book1D("RecVerNumber", "RECO Vertex Number: Number of vertices", 50, 0, 250);
679  meRecPVZ_ = ibook.book1D("recPVZ", "Weighted #Rec vertices/mm", 400, -20., 20.);
680  meRecPVT_ = ibook.book1D("recPVT", "#Rec vertices/10 ps", 200, -1., 1.);
681  meSimPVZ_ = ibook.book1D("simPVZ", "Weighted #Sim vertices/mm", 400, -20., 20.);
682 
683  mePUTrackRelMult_ = ibook.book1D(
684  "PUTrackRelMult", "Relative multiplicity of PU tracks for matched vertices; #PUTrks/#Trks", 50, 0., 1.);
685  meFakeTrackRelMult_ = ibook.book1D(
686  "FakeTrackRelMult", "Relative multiplicity of fake tracks for matched vertices; #fakeTrks/#Trks", 50, 0., 1.);
688  ibook.book1D("PUTrackRelSumWnt",
689  "Relative Sum of wnt of PU tracks for matched vertices; PUSumW*min(Pt, 1.)/SumW*min(Pt, 1.)",
690  50,
691  0.,
692  1.);
693  mePUTrackRelSumWos_ = ibook.book1D(
694  "PUTrackRelSumWos", "Relative Sum of wos of PU tracks for matched vertices; PUSumWos/SumWos", 50, 0., 1.);
696  ibook.book1D("SecTrackRelSumWos",
697  "Relative Sum of wos of tracks from secondary vtx for matched vertices; SecSumWos/SumWos",
698  50,
699  0.,
700  1.);
701  meFakeTrackRelSumWos_ = ibook.book1D(
702  "FakeTrackRelSumWos", "Relative Sum of wos of fake tracks for matched vertices; FakeSumWos/SumWos", 50, 0., 1.);
703  mePUTrackRelSumPt_ = ibook.book1D(
704  "PUTrackRelSumPt", "Relative Sum of Pt of PU tracks for matched vertices; PUSumPt/SumPt", 50, 0., 1.);
705  mePUTrackRelSumPt2_ = ibook.book1D(
706  "PUTrackRelSumPt2", "Relative Sum of Pt2 for PU tracks for matched vertices; PUSumPt2/SumPt2", 50, 0., 1.);
707 
708  mePUTrackRecLVRelMult_ = ibook.book1D(
709  "PUTrackRecLVRelMult", "Relative multiplicity of PU tracks for matched LV; #PUTrks/#Trks", 50, 0., 1.);
710  meFakeTrackRecLVRelMult_ = ibook.book1D(
711  "FakeTrackRecLVRelMult", "Relative multiplicity of fake tracks for matched LV; #FakeTrks/#Trks", 50, 0., 1.);
713  ibook.book1D("PUTrackRecLVRelSumWnt",
714  "Relative Sum of Wnt of PU tracks for matched LV; PUSumW*min(Pt, 1.)/SumW*min(Pt, 1.)",
715  50,
716  0.,
717  1.);
718  mePUTrackRecLVRelSumWos_ = ibook.book1D(
719  "PUTrackRecLVRelSumWos", "Relative Sum of Wos of PU tracks for matched LV; PUSumWos/SumWos", 50, 0., 1.);
721  ibook.book1D("SecTrackRecLVRelSumWos",
722  "Relative Sum of wos of tracks from secondary vtx for matched LV; SecSumWos/SumWos",
723  50,
724  0.,
725  1.);
726  meFakeTrackRecLVRelSumWos_ = ibook.book1D(
727  "FakeTrackRecLVRelSumWos", "Relative Sum of wos of fake tracks for matched LV; FakeSumWos/SumWos", 50, 0., 1.);
729  ibook.book1D("PUTrackRecLVRelSumPt", "Relative Sum of Pt of PU tracks for matched LV; PUSumPt/SumPt", 50, 0., 1.);
730  mePUTrackRecLVRelSumPt2_ = ibook.book1D(
731  "PUTrackRecLVRelSumPt2", "Relative Sum of Pt2 of PU tracks for matched LV; PUSumPt2/SumPt2", 50, 0., 1.);
732 
733  if (optionalPlots_) {
734  mePUTrackMult_ = ibook.book1D("PUTrackMult", "Number of PU tracks for matched vertices; #PUTrks", 50, 0., 100.);
735  mePUTrackWnt_ = ibook.book1D("PUTrackWnt", "Wnt of PU tracks for matched vertices; PUTrkW*min(Pt, 1.)", 50, 0., 1.);
736  mePUTrackSumWnt_ = ibook.book1D(
737  "PUTrackSumWnt", "Sum of wnt of PU tracks for matched vertices; log10(PUSumW*min(Pt, 1.))", 50, -2., 3.);
739  ibook.book1D("PUTrackSumWos", "Sum of wos of PU tracks for matched vertices; log10(PUSumWos)", 50, -1., 7.);
740  meSecTrackSumWos_ = ibook.book1D(
741  "SecTrackSumWos", "Sum of wos of tracks from secondary vtx for matched vertices; log10(SecSumWos)", 50, -1., 7.);
743  ibook.book1D("PUTrackSumPt", "Sum of Pt of PU tracks for matched vertices; log10(PUSumPt)", 50, -2., 3.);
745  ibook.book1D("PUTrackSumPt2", "Sum of Pt2 of PU tracks for matched vertices; log10(PUSumPt2)", 50, -3., 3.);
746 
748  ibook.bookProfile("PUTrackRelMultvsMult",
749  "Relative PU multiplicity vs Number of tracks for matched vertices; #Trks; #PUTrks/#Trks",
750  50,
751  0.,
752  200.,
753  0.,
754  1.,
755  "s");
756  meFakeTrackRelMultvsMult_ = ibook.bookProfile(
757  "FakeTrackRelMultvsMult",
758  "Relative multiplicity of fake tracks vs Number of tracks for matched vertices; #Trks; #FakeTrks/#Trks",
759  50,
760  0.,
761  200.,
762  0.,
763  1.,
764  "s");
766  ibook.bookProfile("PUTrackRelSumWntvsSumWnt",
767  "Relative PU Sum of Wnt vs Sum of Wnt of tracks for matched vertices; log10(SumW*min(Pt, "
768  "1.)); PUSumW*min(Pt, 1.)/SumW*min(Pt, 1.)",
769  50,
770  0.,
771  2.5,
772  0.,
773  1.,
774  "s");
775  mePUTrackRelSumWosvsSumWos_ = ibook.bookProfile(
776  "PUTrackRelSumWosvsSumWos",
777  "Relative PU Sum of Wos vs Sum of Wos of tracks for matched vertices; log10(SumWos); PUSumWos/SumWos",
778  50,
779  2.5,
780  7.,
781  0.,
782  1.,
783  "s");
784  meSecTrackRelSumWosvsSumWos_ = ibook.bookProfile("SecTrackRelSumWosvsSumWos",
785  "Relative Sum of Wos of tracks from secondary vtx vs Sum of Wos "
786  "of tracks for matched vertices; log10(SumWos); SecSumWos/SumWos",
787  50,
788  2.,
789  7.,
790  0.,
791  1.,
792  "s");
793  meFakeTrackRelSumWosvsSumWos_ = ibook.bookProfile("FakeTrackRelSumWosvsSumWos",
794  "Relative Sum of Wos of fake tracks vs Sum of Wos of tracks for "
795  "matched vertices; log10(SumWos); FakeSumWos/SumWos",
796  50,
797  2.5,
798  7.5,
799  0.,
800  1.,
801  "s");
802  mePUTrackRelSumPtvsSumPt_ = ibook.bookProfile(
803  "PUTrackRelSumPtvsSumPt",
804  "Relative PU Sum of Pt vs Sum of Pt of tracks for matched vertices; log10(SumPt); PUSumPt/SumPt",
805  50,
806  0.,
807  3.,
808  0.,
809  1.,
810  "s");
811  mePUTrackRelSumPt2vsSumPt2_ = ibook.bookProfile(
812  "PUTrackRelSumPt2vsSumPt2",
813  "Relative PU Sum of Pt2 vs Sum of Pt2 of tracks for matched vertices; log10(SumPt2); PUSumPt2/SumPt2",
814  50,
815  0.,
816  4.,
817  0.,
818  1.,
819  "s");
820 
821  mePUTrackRecLVMult_ = ibook.book1D("PUTrackRecLVMult", "Number of PU tracks for matched LV; #PUTrks", 50, 0., 100.);
823  ibook.book1D("PUTrackRecLVWnt", "Wnt of PU tracks for matched LV; PUTrkW*min(Pt, 1.)", 50, 0., 1.);
824  mePUTrackRecLVSumWnt_ = ibook.book1D(
825  "PUTrackRecLVSumWnt", "Sum of wnt of PU tracks for matched LV; log10(PUSumW*min(Pt, 1.))", 50, -2., 3.);
827  ibook.book1D("PUTrackRecLVSumWos", "Sum of wos of PU tracks for matched LV; log10(PUSumWos)", 50, -1., 7.);
828  meSecTrackRecLVSumWos_ = ibook.book1D(
829  "SecTrackRecLVSumWos", "Sum of wos of tracks from secondary vtx for matched LV; log10(SecSumWos)", 50, -1., 7.);
831  ibook.book1D("PUTrackRecLVSumPt", "Sum of Pt of PU tracks for matched LV; log10(PUSumPt)", 50, -2., 3.);
833  ibook.book1D("PUTrackRecLVSumPt2", "Sum of Pt2 of PU tracks for matched LV; log10(PUSumPt2)", 50, -3., 3.);
834 
836  ibook.bookProfile("PUTrackRecLVRelMultvsMult",
837  "Relative PU multiplicity vs Number of tracks for matched LV; #Trks; #PUTrks/#Trks",
838  50,
839  0.,
840  200.,
841  0.,
842  1.,
843  "s");
844  meFakeTrackRecLVRelMultvsMult_ = ibook.bookProfile(
845  "FakeTrackRecLVRelMultvsMult",
846  "Relative multiplicity of fake tracks vs Number of tracks for matched LV; #Trks; #FakeTrks/#Trks",
847  50,
848  0.,
849  200.,
850  0.,
851  1.,
852  "s");
854  ibook.bookProfile("PUTrackRecLVRelSumWntvsSumWnt",
855  "Relative PU Sum of Wnt vs Sum of Wnt of tracks for matched LV; log10(SumW*min(Pt, 1.)); "
856  "PUSumW*min(Pt, 1.)/SumW*min(Pt, 1.)",
857  50,
858  1.,
859  2.3,
860  0.,
861  1.,
862  "s");
863  mePUTrackRecLVRelSumWosvsSumWos_ = ibook.bookProfile(
864  "PUTrackRecLVRelSumWosvsSumWos",
865  "Relative PU Sum of Wos vs Sum of Wos of tracks for matched vertices; log10(SumWos); PUSumWos/SumWos",
866  50,
867  5.5,
868  7.,
869  0.,
870  1.,
871  "s");
873  ibook.bookProfile("SecTrackRecLVRelSumWosvsSumWos",
874  "Relative Sum of Wos of tracks from secondary vtx vs Sum of Wos of tracks for matched "
875  "vertices; log10(SumWos); SecSumWos/SumWos",
876  50,
877  5.5,
878  7.,
879  0.,
880  1.,
881  "s");
882  meFakeTrackRecLVRelSumWosvsSumWos_ = ibook.bookProfile("FakeTrackRecLVRelSumWosvsSumWos",
883  "Relative Sum of Wos of fake tracks vs Sum of Wos of tracks "
884  "for matched vertices; log10(SumWos); FakeSumWos/SumWos",
885  50,
886  5.5,
887  7.,
888  0.,
889  1.,
890  "s");
892  ibook.bookProfile("PUTrackRecLVRelSumPtvsSumPt",
893  "Relative PU Sum of Pt vs Sum of Pt of tracks for matched LV; log10(SumPt); PUSumPt/SumPt",
894  50,
895  1.4,
896  3.,
897  0.,
898  1.,
899  "s");
901  ibook.bookProfile("PUTrackRecLVRelSumPt2vsSumPt2",
902  "Relative PU Sum of Pt2 vs Sum of tracks for matched LV; log10(SumPt2); PUSumPt2/SumPt2",
903  50,
904  2.,
905  4.,
906  0.,
907  1.,
908  "s");
909  }
910 
912  ibook.book1D("JetsPURelMult",
913  "Relative contribution of PU to jet multiplicity for matched vertices; (#Jets-#JetsNoPU)/#Jets",
914  50,
915  0.,
916  1.);
918  ibook.book1D("JetsPURelHt",
919  "Relative contribution of PU to scalar sum of Et of jets for matched vertices; (Ht-HtNoPU)/HT",
920  50,
921  0.,
922  1.);
924  ibook.book1D("JetsPURelSumPt2",
925  "Relative contribution of PU to sum of Pt2 of jets for matched vertices; (SumPt2-SumPt2NoPU)/SumPt2",
926  50,
927  0.,
928  1.);
929  meJetsFakeRelSumPt2_ = ibook.book1D(
930  "JetsFakeRelSumPt2",
931  "Relative contribution of fake tracks to sum of Pt2 of jets for matched vertices; (SumPt2-SumPt2NoFake)/SumPt2",
932  50,
933  0.,
934  1.);
936  ibook.book1D("JetsPURelMetPt",
937  "Relative contribution of PU to Missing Transverse Energy for matched vertices; (Met-MetNoPU)/Met",
938  50,
939  -1.,
940  1.);
942  ibook.book1D("JetsPURelSumPz",
943  "Relative contribution of PU to sum of Pz of jets for matched vertices; (SumPz-SumPzNoPU)/SumPz",
944  50,
945  -1.,
946  1.);
947 
949  ibook.book1D("JetsRecLVPURelMult",
950  "Relative contribution of PU to jet multiplicity for matched LV; (#Jets-#JetsNoPU)/#Jets",
951  50,
952  0.,
953  1.);
955  ibook.book1D("JetsRecLVPURelHt",
956  "Relative contribution of PU to scalar sum of Et of jets for matched LV; (Ht-HtNoPU)/HT",
957  50,
958  0.,
959  1.);
961  ibook.book1D("JetsRecLVPURelSumPt2",
962  "Relative contribution of PU to sum of Pt2 of jets for matched LV; (SumPt2-SumPt2NoPU)/SumPt2",
963  50,
964  0.,
965  1.);
966  meJetsRecLVFakeRelSumPt2_ = ibook.book1D(
967  "JetsRecLVFakeRelSumPt2",
968  "Relative contribution of fake tracks to sum of Pt2 of jets for matched LV; (SumPt2-SumPt2NoFake)/SumPt2",
969  50,
970  0.,
971  1.);
973  ibook.book1D("JetsRecLVPURelMetPt",
974  "Relative contribution of PU to Missing Transverse Energy for matched LV; (Met-MetNoPU)/Met",
975  50,
976  -1.,
977  1.);
979  ibook.book1D("JetsRecLVPURelSumPz",
980  "Relative contribution of PU to sum of Pz of jets for matched LV; (SumPz-SumPzNoPU)/SumPz",
981  50,
982  -1.,
983  1.);
984 
985  if (optionalPlots_) {
986  meJetsPUMult_ = ibook.book1D(
987  "JetsPUMult", "Contribution of PU to jet multiplicity for matched vertices; #Jets-#JetsNoPU", 50, 0., 100.);
988  meJetsPUHt_ = ibook.book1D("JetsPUHt",
989  "Contribution of PU to scalar sum of Et of jets for matched vertices; log10(Ht-HtNoPU)",
990  50,
991  -2.,
992  3.);
994  ibook.book1D("JetsPUSumPt2",
995  "Contribution of PU to sum of Pt2 of jets for matched vertices; log10(sumPt2-SumPt2NoPU)",
996  50,
997  -3.,
998  3.);
1000  ibook.book1D("JetsPUMetPt",
1001  "Contribution of PU to Missing Transverse Energy for matched vertices; log10(Met-MetNoPU)",
1002  50,
1003  -3.,
1004  2.);
1005  meJetsPUSumPz_ =
1006  ibook.book1D("JetsPUSumPz",
1007  "Contribution of PU to sum of Pz of jets for matched vertices; log10(abs(SumPz-SumPzNoPU))",
1008  50,
1009  -4.,
1010  3.);
1011 
1012  meJetsPURelMultvsMult_ = ibook.bookProfile("JetsPURelMultvsMult",
1013  "Relative contribution of PU to jet multiplicity vs number of jets for "
1014  "matched vertices; #Jets; (#Jets-#JetsNoPU)/#Jets",
1015  50,
1016  0.,
1017  120.,
1018  0.,
1019  1.,
1020  "s");
1021  meJetsPURelHtvsHt_ = ibook.bookProfile("JetsPURelHtvsHt",
1022  "Relative contribution of PU to scalar sum of Et of jets vs scalar sum of "
1023  "Et for matched vertices; log10(Ht); (Ht-HtNoPU)/HT",
1024  50,
1025  0.,
1026  3.,
1027  0.,
1028  1.,
1029  "s");
1030  meJetsPURelSumPt2vsSumPt2_ = ibook.bookProfile("JetsPURelSumPt2vsSumPt2",
1031  "Relative contribution of PU to sum of Pt2 of jets vs sum of Pt2 "
1032  "for matched vertices; log10(SumPt2); (SumPt2-SumPt2NoPU)/SumPt2",
1033  50,
1034  -1.,
1035  4.,
1036  0.,
1037  1.,
1038  "s");
1040  ibook.bookProfile("JetsFakeRelSumPt2vsSumPt2",
1041  "Relative contribution of fake tracks to sum of Pt2 of jets vs sum of Pt2 for matched "
1042  "vertices; log10(SumPt2); (SumPt2-SumPt2NoFake)/SumPt2",
1043  50,
1044  -1.,
1045  4.,
1046  0.,
1047  1.,
1048  "s");
1049  meJetsPURelMetPtvsMetPt_ = ibook.bookProfile("JetsPURelMetPtvsMetPt",
1050  "Relative contribution of PU to Missing Transverse Energy vs MET for "
1051  "matched vertices; log10(Met); (Met-MetNoPU)/Met",
1052  50,
1053  -1.,
1054  2.,
1055  -1.,
1056  1.,
1057  "s");
1058  meJetsPURelSumPzvsSumPz_ = ibook.bookProfile("JetsPURelSumPzvsSumPz",
1059  "Relative contribution of PU to sum of Pz of jets vs Sum of Pz for "
1060  "matched vertices; log10(abs SumPz); (SumPz-SumPzNoPU)/SumPz",
1061  50,
1062  -2.,
1063  3.,
1064  -1.,
1065  1.,
1066  "s");
1067 
1068  meJetsRecLVPUMult_ = ibook.book1D(
1069  "JetsRecLVPUMult", "Contribution of PU to jet multiplicity for matched LV; #Jets-#JetsNoPU", 50, 0., 100.);
1070  meJetsRecLVPUHt_ = ibook.book1D(
1071  "JetsRecLVPUHt", "Contribution of PU to scalar sum of Et of jets for matched LV; log10(Ht-HtNoPU)", 50, -2., 3.);
1073  ibook.book1D("JetsRecLVPUSumPt2",
1074  "Contribution of PU to sum of Pt2 of jets for matched LV; log10(sumPt2-SumPt2NoPU)",
1075  50,
1076  -3.,
1077  3.);
1079  ibook.book1D("JetsRecLVPUMetPt",
1080  "Contribution of PU to Missing Transverse Energy for matched LV; log10(Met-MetNoPU)",
1081  50,
1082  -3.,
1083  2.);
1085  ibook.book1D("JetsRecLVPUSumPz",
1086  "Contribution of PU to sum of Pz of jets for matched LV; log10(abs(SumPz-SumPzNoPU))",
1087  50,
1088  -4.,
1089  3.);
1090 
1091  meJetsRecLVPURelMultvsMult_ = ibook.bookProfile("JetsRecLVPURelMultvsMult",
1092  "Relative contribution of PU to jet multiplicity vs number of jets "
1093  "for matched vertices; #Jets; (#Jets-#JetsNoPU)/#Jets",
1094  50,
1095  0.,
1096  120.,
1097  0.,
1098  1.,
1099  "s");
1100  meJetsRecLVPURelHtvsHt_ = ibook.bookProfile("JetsRecLVPURelHtvsHt",
1101  "Relative contribution of PU to scalar sum of Et of jets vs scalar sum "
1102  "of Et for matched vertices; log10(Ht); (Ht-HtNoPU)/HT",
1103  50,
1104  1.5,
1105  3.,
1106  0.,
1107  1.,
1108  "s");
1110  ibook.bookProfile("JetsRecLVPURelSumPt2vsSumPt2",
1111  "Relative contribution of PU to sum of Pt2 of jets vs sum of Pt2 for matched vertices; "
1112  "log10(SumPt2); (SumPt2-SumPt2NoPU)/SumPt2",
1113  50,
1114  2.,
1115  5.,
1116  0.,
1117  1.,
1118  "s");
1120  ibook.bookProfile("JetsRecLVFakeRelSumPt2vsSumPt2",
1121  "Relative contribution of fake tracks to sum of Pt2 of jets vs sum of Pt2 for matched "
1122  "vertices; log10(SumPt2); (SumPt2-SumPt2NoFake)/SumPt2",
1123  50,
1124  2.,
1125  5.,
1126  0.,
1127  1.,
1128  "s");
1129  meJetsRecLVPURelMetPtvsMetPt_ = ibook.bookProfile("JetsRecLVPURelMetPtvsMetPt",
1130  "Relative contribution of PU to Missing Transverse Energy vs MET "
1131  "for matched vertices; log10(Met); (Met-MetNoPU)/Met",
1132  50,
1133  0.,
1134  2.5,
1135  -1.,
1136  1.,
1137  "s");
1138  meJetsRecLVPURelSumPzvsSumPz_ = ibook.bookProfile("JetsRecLVPURelSumPzvsSumPz",
1139  "Relative contribution of PU to sum of Pz of jets vs Sum of Pz "
1140  "for matched vertices; log10(abs SumPz); (SumPz-SumPzNoPU)/SumPz",
1141  50,
1142  0.5,
1143  3.5,
1144  -1.,
1145  1.,
1146  "s");
1147  }
1148 
1149  // some tests
1150  meTrackResLowPTot_ = ibook.book1D(
1151  "TrackResLowP", "t_{rec} - t_{sim} for tracks with p < 2 GeV; t_{rec} - t_{sim} [ns] ", 70, -0.15, 0.15);
1152  meTrackResLowP_[0] =
1153  ibook.book1D("TrackResLowP-LowMVA",
1154  "t_{rec} - t_{sim} for tracks with MVA < 0.5 and p < 2 GeV; t_{rec} - t_{sim} [ns] ",
1155  100,
1156  -1.,
1157  1.);
1158  meTrackResLowP_[1] =
1159  ibook.book1D("TrackResLowP-MediumMVA",
1160  "t_{rec} - t_{sim} for tracks with 0.5 < MVA < 0.8 and p < 2 GeV; t_{rec} - t_{sim} [ns] ",
1161  100,
1162  -1.,
1163  1.);
1164  meTrackResLowP_[2] =
1165  ibook.book1D("TrackResLowP-HighMVA",
1166  "t_{rec} - t_{sim} for tracks with MVA > 0.8 and p < 2 GeV; t_{rec} - t_{sim} [ns] ",
1167  100,
1168  -1.,
1169  1.);
1170  meTrackResHighPTot_ = ibook.book1D(
1171  "TrackResHighP", "t_{rec} - t_{sim} for tracks with p > 2 GeV; t_{rec} - t_{sim} [ns] ", 70, -0.15, 0.15);
1172  meTrackResHighP_[0] =
1173  ibook.book1D("TrackResHighP-LowMVA",
1174  "t_{rec} - t_{sim} for tracks with MVA < 0.5 and p > 2 GeV; t_{rec} - t_{sim} [ns] ",
1175  100,
1176  -1.,
1177  1.);
1178  meTrackResHighP_[1] =
1179  ibook.book1D("TrackResHighP-MediumMVA",
1180  "t_{rec} - t_{sim} for tracks with 0.5 < MVA < 0.8 and p > 2 GeV; t_{rec} - t_{sim} [ns] ",
1181  100,
1182  -1.,
1183  1.);
1184  meTrackResHighP_[2] =
1185  ibook.book1D("TrackResHighP-HighMVA",
1186  "t_{rec} - t_{sim} for tracks with MVA > 0.8 and p > 2 GeV; t_{rec} - t_{sim} [ns] ",
1187  100,
1188  -1.,
1189  1.);
1191  ibook.book1D("TrackPullLowP", "Pull for tracks with p < 2 GeV; (t_{rec}-t_{sim})/#sigma_{t}", 100, -10., 10.);
1192  meTrackPullLowP_[0] = ibook.book1D("TrackPullLowP-LowMVA",
1193  "Pull for tracks with MVA < 0.5 and p < 2 GeV; (t_{rec}-t_{sim})/#sigma_{t}",
1194  100,
1195  -10.,
1196  10.);
1197  meTrackPullLowP_[1] = ibook.book1D("TrackPullLowP-MediumMVA",
1198  "Pull for tracks with 0.5 < MVA < 0.8 and p < 2 GeV; (t_{rec}-t_{sim})/#sigma_{t}",
1199  100,
1200  -10.,
1201  10.);
1202  meTrackPullLowP_[2] = ibook.book1D("TrackPullLowP-HighMVA",
1203  "Pull for tracks with MVA > 0.8 and p < 2 GeV; (t_{rec}-t_{sim})/#sigma_{t}",
1204  100,
1205  -10.,
1206  10.);
1208  ibook.book1D("TrackPullHighP", "Pull for tracks with p > 2 GeV; (t_{rec}-t_{sim})/#sigma_{t}", 100, -10., 10.);
1209  meTrackPullHighP_[0] = ibook.book1D("TrackPullHighP-LowMVA",
1210  "Pull for tracks with MVA < 0.5 and p > 2 GeV; (t_{rec}-t_{sim})/#sigma_{t}",
1211  100,
1212  -10.,
1213  10.);
1214  meTrackPullHighP_[1] =
1215  ibook.book1D("TrackPullHighP-MediumMVA",
1216  "Pull for tracks with 0.5 < MVA < 0.8 and p > 2 GeV; (t_{rec}-t_{sim})/#sigma_{t}",
1217  100,
1218  -10.,
1219  10.);
1220  meTrackPullHighP_[2] = ibook.book1D("TrackPullHighP-HighMVA",
1221  "Pull for tracks with MVA > 0.8 and p > 2 GeV; (t_{rec}-t_{sim})/#sigma_{t}",
1222  100,
1223  -10.,
1224  10.);
1225  if (optionalPlots_) {
1227  ibook.book1D("TrackResMass-Protons-LowMVA",
1228  "t_{rec} - t_{est} for proton tracks with MVA < 0.5; t_{rec} - t_{est} [ns] ",
1229  100,
1230  -1.,
1231  1.);
1233  ibook.book1D("TrackResMass-Protons-MediumMVA",
1234  "t_{rec} - t_{est} for proton tracks with 0.5 < MVA < 0.8; t_{rec} - t_{est} [ns] ",
1235  100,
1236  -1.,
1237  1.);
1239  ibook.book1D("TrackResMass-Protons-HighMVA",
1240  "t_{rec} - t_{est} for proton tracks with MVA > 0.8; t_{rec} - t_{est} [ns] ",
1241  100,
1242  -1.,
1243  1.);
1245  ibook.book1D("TrackResMassTrue-Protons-LowMVA",
1246  "t_{est} - t_{sim} for proton tracks with MVA < 0.5; t_{est} - t_{sim} [ns] ",
1247  100,
1248  -1.,
1249  1.);
1251  ibook.book1D("TrackResMassTrue-Protons-MediumMVA",
1252  "t_{est} - t_{sim} for proton tracks with 0.5 < MVA < 0.8; t_{est} - t_{sim} [ns] ",
1253  100,
1254  -1.,
1255  1.);
1257  ibook.book1D("TrackResMassTrue-Protons-HighMVA",
1258  "t_{est} - t_{sim} for proton tracks with MVA > 0.8; t_{est} - t_{sim} [ns] ",
1259  100,
1260  -1.,
1261  1.);
1262 
1263  meTrackResMassPions_[0] = ibook.book1D("TrackResMass-Pions-LowMVA",
1264  "t_{rec} - t_{est} for pion tracks with MVA < 0.5; t_{rec} - t_{est} [ns] ",
1265  100,
1266  -1.,
1267  1.);
1269  ibook.book1D("TrackResMass-Pions-MediumMVA",
1270  "t_{rec} - t_{est} for pion tracks with 0.5 < MVA < 0.8; t_{rec} - t_{est} [ns] ",
1271  100,
1272  -1.,
1273  1.);
1274  meTrackResMassPions_[2] = ibook.book1D("TrackResMass-Pions-HighMVA",
1275  "t_{rec} - t_{est} for pion tracks with MVA > 0.8; t_{rec} - t_{est} [ns] ",
1276  100,
1277  -1.,
1278  1.);
1280  ibook.book1D("TrackResMassTrue-Pions-LowMVA",
1281  "t_{est} - t_{sim} for pion tracks with MVA < 0.5; t_{est} - t_{sim} [ns] ",
1282  100,
1283  -1.,
1284  1.);
1286  ibook.book1D("TrackResMassTrue-Pions-MediumMVA",
1287  "t_{est} - t_{sim} for pion tracks with 0.5 < MVA < 0.8; t_{est} - t_{sim} [ns] ",
1288  100,
1289  -1.,
1290  1.);
1292  ibook.book1D("TrackResMassTrue-Pions-HighMVA",
1293  "t_{est} - t_{sim} for pion tracks with MVA > 0.8; t_{est} - t_{sim} [ns] ",
1294  100,
1295  -1.,
1296  1.);
1297  }
1298 
1299  meBarrelPIDp_ = ibook.book1D("BarrelPIDp", "PID track MTD momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1300  meEndcapPIDp_ = ibook.book1D("EndcapPIDp", "PID track with MTD momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1301 
1302  meBarrelNoPIDtype_ = ibook.book1D("BarrelNoPIDtype", "Barrel PID failure category", 4, 0., 4.);
1303  meEndcapNoPIDtype_ = ibook.book1D("EndcapNoPIDtype", "Endcap PID failure category", 4, 0., 4.);
1304 
1306  ibook.book1D("BarrelTruePiNoPID", "True pi NoPID momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1308  ibook.book1D("BarrelTrueKNoPID", "True k NoPID momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1310  ibook.book1D("BarrelTruePNoPID", "True p NoPID momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1312  ibook.book1D("EndcapTruePiNoPID", "True pi NoPID momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1314  ibook.book1D("EndcapTrueKNoPID", "True k NoPID momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1316  ibook.book1D("EndcapTruePNoPID", "True p NoPID momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1317 
1319  ibook.book1D("BarrelTruePiAsPi", "True pi as pi momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1321  ibook.book1D("BarrelTruePiAsK", "True pi as k momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1323  ibook.book1D("BarrelTruePiAsP", "True pi as p momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1325  ibook.book1D("EndcapTruePiAsPi", "True pi as pi momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1327  ibook.book1D("EndcapTruePiAsK", "True pi as k momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1329  ibook.book1D("EndcapTruePiAsP", "True pi as p momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1330 
1332  ibook.book1D("BarrelTrueKAsPi", "True k as pi momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1333  meBarrelTrueKAsK_ = ibook.book1D("BarrelTrueKAsK", "True k as k momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1334  meBarrelTrueKAsP_ = ibook.book1D("BarrelTrueKAsP", "True k as p momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1336  ibook.book1D("EndcapTrueKAsPi", "True k as pi momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1337  meEndcapTrueKAsK_ = ibook.book1D("EndcapTrueKAsK", "True k as k momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1338  meEndcapTrueKAsP_ = ibook.book1D("EndcapTrueKAsP", "True k as p momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1339 
1341  ibook.book1D("BarrelTruePAsPi", "True p as pi momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1342  meBarrelTruePAsK_ = ibook.book1D("BarrelTruePAsK", "True p as k momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1343  meBarrelTruePAsP_ = ibook.book1D("BarrelTruePAsP", "True p as p momentum spectrum, |eta| < 1.5;p [GeV]", 25, 0., 10.);
1345  ibook.book1D("EndcapTruePAsPi", "True p as pi momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1346  meEndcapTruePAsK_ = ibook.book1D("EndcapTruePAsK", "True p as k momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1347  meEndcapTruePAsP_ = ibook.book1D("EndcapTruePAsP", "True p as p momentum spectrum, |eta| > 1.6;p [GeV]", 25, 0., 10.);
1348 }
MonitorElement * mePUTrackRecLVRelSumWntvsSumWnt_
MonitorElement * meFakeTrackRecLVRelSumWosvsSumWos_
MonitorElement * meJetsRecLVPURelSumPt2vsSumPt2_
MonitorElement * meTrackResMassProtons_[3]
MonitorElement * meTrackResMassTrueProtons_[3]
MonitorElement * meSecTrackRecLVRelSumWosvsSumWos_
MonitorElement * mePUTrackRecLVRelSumPt2vsSumPt2_
MonitorElement * meJetsRecLVFakeRelSumPt2vsSumPt2_
MonitorElement * meTrackResMassTruePions_[3]
MonitorElement * mePUTrackRecLVRelSumWosvsSumWos_

◆ fillDescriptions()

void Primary4DVertexValidation::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 2653 of file Primary4DVertexValidation.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

2653  {
2655 
2656  desc.add<std::string>("folder", "MTD/Vertices");
2657  desc.add<edm::InputTag>("TPtoRecoTrackAssoc", edm::InputTag("trackingParticleRecoTrackAsssociation"));
2658  desc.add<edm::InputTag>("mtdTracks", edm::InputTag("trackExtenderWithMTD"));
2659  desc.add<edm::InputTag>("SimTag", edm::InputTag("mix", "MergedTrackTruth"));
2660  desc.add<edm::InputTag>("offlineBS", edm::InputTag("offlineBeamSpot"));
2661  desc.add<edm::InputTag>("offline4DPV", edm::InputTag("offlinePrimaryVertices4D"));
2662  desc.add<edm::InputTag>("trackAssocSrc", edm::InputTag("trackExtenderWithMTD:generalTrackassoc"))
2663  ->setComment("Association between General and MTD Extended tracks");
2664  desc.add<edm::InputTag>("pathLengthSrc", edm::InputTag("trackExtenderWithMTD:generalTrackPathLength"));
2665  desc.add<edm::InputTag>("momentumSrc", edm::InputTag("trackExtenderWithMTD:generalTrackp"));
2666  desc.add<edm::InputTag>("tmtd", edm::InputTag("trackExtenderWithMTD:generalTracktmtd"));
2667  desc.add<edm::InputTag>("timeSrc", edm::InputTag("trackExtenderWithMTD:generalTracktmtd"));
2668  desc.add<edm::InputTag>("sigmaSrc", edm::InputTag("trackExtenderWithMTD:generalTracksigmatmtd"));
2669  desc.add<edm::InputTag>("t0PID", edm::InputTag("tofPID:t0"));
2670  desc.add<edm::InputTag>("t0SafePID", edm::InputTag("tofPID:t0safe"));
2671  desc.add<edm::InputTag>("sigmat0SafePID", edm::InputTag("tofPID:sigmat0safe"));
2672  desc.add<edm::InputTag>("trackMVAQual", edm::InputTag("mtdTrackQualityMVA:mtdQualMVA"));
2673  desc.add<edm::InputTag>("tofPi", edm::InputTag("trackExtenderWithMTD:generalTrackTofPi"));
2674  desc.add<edm::InputTag>("tofK", edm::InputTag("trackExtenderWithMTD:generalTrackTofK"));
2675  desc.add<edm::InputTag>("tofP", edm::InputTag("trackExtenderWithMTD:generalTrackTofP"));
2676  desc.add<edm::InputTag>("probPi", edm::InputTag("tofPID:probPi"));
2677  desc.add<edm::InputTag>("probK", edm::InputTag("tofPID:probK"));
2678  desc.add<edm::InputTag>("probP", edm::InputTag("tofPID:probP"));
2679  desc.add<bool>("useOnlyChargedTracks", true);
2680  desc.addUntracked<bool>("debug", false);
2681  desc.addUntracked<bool>("optionalPlots", false);
2682  desc.add<bool>("use3dNoTime", false);
2683  desc.add<double>("trackweightTh", 0.5);
2684  desc.add<double>("mvaTh", 0.01);
2685  desc.add<double>("minProbHeavy", 0.75);
2686 
2687  //lineDensity parameters have been obtained by fitting the distribution of the z position of the vertices,
2688  //using a 200k single mu ptGun sample (gaussian fit)
2689  std::vector<double> lDP;
2690  lDP.push_back(1.87);
2691  lDP.push_back(0.);
2692  lDP.push_back(42.5);
2693  desc.add<std::vector<double>>("lineDensityPar", lDP);
2694  descriptions.add("vertices4DValid", desc);
2695 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ getMatchedTP()

std::pair< const edm::Ref< std::vector< TrackingParticle > > *, int > Primary4DVertexValidation::getMatchedTP ( const reco::TrackBaseRef recoTrack,
const TrackingVertexRef vsim 
)
private

Definition at line 1367 of file Primary4DVertexValidation.cc.

References edm::AssociationMap< Tag >::end(), edm::AssociationMap< Tag >::find(), newFWLiteAna::found, r2s_, and cmsswSequenceInfo::tp.

Referenced by analyze(), and matchReco2Sim().

1368  {
1369  auto found = r2s_->find(recoTrack);
1370 
1371  // reco track not matched to any TP (fake tracks)
1372  if (found == r2s_->end())
1373  return std::make_pair(nullptr, -1);
1374 
1375  // matched TP equal to any TP of a given sim vertex
1376  for (const auto& tp : found->val) {
1377  if (std::find_if(vsim->daughterTracks_begin(), vsim->daughterTracks_end(), [&](const TrackingParticleRef& vtp) {
1378  return tp.first == vtp;
1379  }) != vsim->daughterTracks_end())
1380  return std::make_pair(&tp.first, 0);
1381  // matched TP not associated to any daughter track of a given sim vertex but having the same eventID (track from secondary vtx)
1382  else if (tp.first->eventId().bunchCrossing() == vsim->eventId().bunchCrossing() &&
1383  tp.first->eventId().event() == vsim->eventId().event()) {
1384  return std::make_pair(&tp.first, 1);
1385  }
1386  // matched TP not associated to any sim vertex of a given simulated event (PU track)
1387  else {
1388  return std::make_pair(&tp.first, 2);
1389  }
1390  }
1391 
1392  // reco track not matched to any TP from vertex
1393  return std::make_pair(nullptr, -1);
1394 }
const_iterator find(const key_type &k) const
find element with specified reference key
const_iterator end() const
last iterator over the map (read only)
const reco::RecoToSimCollection * r2s_

◆ getRecoPVs()

std::vector< Primary4DVertexValidation::recoPrimaryVertex > Primary4DVertexValidation::getRecoPVs ( const edm::Handle< edm::View< reco::Vertex >> &  tVC)
private

Definition at line 1653 of file Primary4DVertexValidation.cc.

References funct::abs(), HLT_2024v10_cff::distance, edm::AssociationMap< Tag >::end(), edm::AssociationMap< Tag >::find(), muonTagProbeFilters_cff::matched, SiStripPI::min, Primary4DVertexValidation::recoPrimaryVertex::nRecoTrk, Primary4DVertexValidation::recoPrimaryVertex::num_matched_sim_tracks, Primary4DVertexValidation::recoPrimaryVertex::pt, Primary4DVertexValidation::recoPrimaryVertex::ptsq, alignCSCRings::r, r2s_, mathSSE::sqrt(), pfDeepBoostedJetPreprocessParams_cfi::sv, and findQualityFiles::v.

Referenced by analyze().

1654  {
1655  std::vector<Primary4DVertexValidation::recoPrimaryVertex> recopv;
1656  int r = -1;
1657  for (auto v = tVC->begin(); v != tVC->end(); ++v) {
1658  r++;
1659  // Skip junk vertices
1660  if (std::abs(v->z()) > 1000)
1661  continue;
1662  if (v->isFake() || !v->isValid())
1663  continue;
1664 
1665  recoPrimaryVertex sv(v->position().x(), v->position().y(), v->position().z());
1666  sv.recVtx = &(*v);
1667  sv.recVtxRef = reco::VertexBaseRef(tVC, std::distance(tVC->begin(), v));
1668 
1669  sv.OriginalIndex = r;
1670  sv.ndof = v->ndof();
1671  // this is a new vertex, add it to the list of reco-vertices
1672  recopv.push_back(sv);
1673  Primary4DVertexValidation::recoPrimaryVertex* vp = &recopv.back();
1674 
1675  // Loop over daughter track(s)
1676  for (auto iTrack = v->tracks_begin(); iTrack != v->tracks_end(); ++iTrack) {
1677  auto momentum = (*(*iTrack)).innerMomentum();
1678  if (momentum.mag2() == 0)
1679  momentum = (*(*iTrack)).momentum();
1680  vp->pt += std::sqrt(momentum.perp2());
1681  vp->ptsq += (momentum.perp2());
1682  vp->nRecoTrk++;
1683 
1684  auto matched = r2s_->find(*iTrack);
1685  if (matched != r2s_->end()) {
1686  vp->num_matched_sim_tracks++;
1687  }
1688 
1689  } // End of for loop on daughters reconstructed tracks
1690  } // End of for loop on tracking vertices
1691 
1692  // In case of no reco vertices, break here
1693  if (recopv.empty())
1694  return recopv;
1695 
1696  // Now compute the closest distance in z between all reconstructed vertex
1697  // first initialize
1698  auto prev_z = recopv.back().z;
1699  for (recoPrimaryVertex& vreco : recopv) {
1700  vreco.closest_vertex_distance_z = std::abs(vreco.z - prev_z);
1701  prev_z = vreco.z;
1702  }
1703  for (std::vector<recoPrimaryVertex>::iterator vreco = recopv.begin(); vreco != recopv.end(); vreco++) {
1704  std::vector<recoPrimaryVertex>::iterator vreco2 = vreco;
1705  vreco2++;
1706  for (; vreco2 != recopv.end(); vreco2++) {
1707  double distance = std::abs(vreco->z - vreco2->z);
1708  // need both to be complete
1709  vreco->closest_vertex_distance_z = std::min(vreco->closest_vertex_distance_z, distance);
1710  vreco2->closest_vertex_distance_z = std::min(vreco2->closest_vertex_distance_z, distance);
1711  }
1712  }
1713  return recopv;
1714 }
edm::RefToBase< reco::Vertex > VertexBaseRef
persistent reference to a Vertex, using views
Definition: VertexFwd.h:21
const_iterator find(const key_type &k) const
find element with specified reference key
const_iterator end() const
last iterator over the map (read only)
T sqrt(T t)
Definition: SSEVec.h:19
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const reco::RecoToSimCollection * r2s_

◆ getSimPVs()

std::vector< Primary4DVertexValidation::simPrimaryVertex > Primary4DVertexValidation::getSimPVs ( const edm::Handle< TrackingVertexCollection > &  tVC)
private

Definition at line 1550 of file Primary4DVertexValidation.cc.

References funct::abs(), cms::cuda::assert(), Primary4DVertexValidation::simPrimaryVertex::average_match_quality, debug_, HLT_2024v10_cff::distance, MillePedeFileConverter_cfg::e, edm::AssociationMap< Tag >::end(), edm::AssociationMap< Tag >::find(), SiStripPI::min, Primary4DVertexValidation::simPrimaryVertex::nGenTrk, Primary4DVertexValidation::simPrimaryVertex::num_matched_reco_tracks, Primary4DVertexValidation::simPrimaryVertex::pt, Primary4DVertexValidation::simPrimaryVertex::ptot, Primary4DVertexValidation::simPrimaryVertex::ptsq, alignCSCRings::s, s2r_, pfDeepBoostedJetPreprocessParams_cfi::sv, use_only_charged_tracks_, findQualityFiles::v, and V0Monitor_cff::v0.

Referenced by analyze().

1551  {
1552  std::vector<Primary4DVertexValidation::simPrimaryVertex> simpv;
1553  int current_event = -1;
1554  int s = -1;
1555  for (TrackingVertexCollection::const_iterator v = tVC->begin(); v != tVC->end(); ++v) {
1556  // We keep only the first vertex from all the events at BX=0.
1557  if (v->eventId().bunchCrossing() != 0)
1558  continue;
1559  if (v->eventId().event() != current_event) {
1560  current_event = v->eventId().event();
1561  } else {
1562  continue;
1563  }
1564  s++;
1565  if (std::abs(v->position().z()) > 1000)
1566  continue; // skip junk vertices
1567 
1568  // could be a new vertex, check all primaries found so far to avoid multiple entries
1569  simPrimaryVertex sv(v->position().x(), v->position().y(), v->position().z(), v->position().t());
1570  sv.eventId = v->eventId();
1571  sv.sim_vertex = TrackingVertexRef(tVC, std::distance(tVC->begin(), v));
1572  sv.OriginalIndex = s;
1573 
1574  for (TrackingParticleRefVector::iterator iTrack = v->daughterTracks_begin(); iTrack != v->daughterTracks_end();
1575  ++iTrack) {
1576  assert((**iTrack).eventId().bunchCrossing() == 0);
1577  }
1578  simPrimaryVertex* vp = nullptr; // will become non-NULL if a vertex is found and then point to it
1579  for (std::vector<simPrimaryVertex>::iterator v0 = simpv.begin(); v0 != simpv.end(); v0++) {
1580  if ((sv.eventId == v0->eventId) && (std::abs(sv.x - v0->x) < 1e-5) && (std::abs(sv.y - v0->y) < 1e-5) &&
1581  (std::abs(sv.z - v0->z) < 1e-5)) {
1582  vp = &(*v0);
1583  break;
1584  }
1585  }
1586  if (!vp) {
1587  // this is a new vertex, add it to the list of sim-vertices
1588  simpv.push_back(sv);
1589  vp = &simpv.back();
1590  }
1591 
1592  // Loop over daughter track(s) as Tracking Particles
1593  for (TrackingVertex::tp_iterator iTP = v->daughterTracks_begin(); iTP != v->daughterTracks_end(); ++iTP) {
1594  auto momentum = (*(*iTP)).momentum();
1595  const reco::Track* matched_best_reco_track = nullptr;
1596  double match_quality = -1;
1597  if (use_only_charged_tracks_ && (**iTP).charge() == 0)
1598  continue;
1599  if (s2r_->find(*iTP) != s2r_->end()) {
1600  matched_best_reco_track = (*s2r_)[*iTP][0].first.get();
1601  match_quality = (*s2r_)[*iTP][0].second;
1602  }
1603 
1604  vp->ptot.setPx(vp->ptot.x() + momentum.x());
1605  vp->ptot.setPy(vp->ptot.y() + momentum.y());
1606  vp->ptot.setPz(vp->ptot.z() + momentum.z());
1607  vp->ptot.setE(vp->ptot.e() + (**iTP).energy());
1608  vp->pt += (**iTP).pt();
1609  vp->ptsq += ((**iTP).pt() * (**iTP).pt());
1610  vp->nGenTrk++;
1611 
1612  if (matched_best_reco_track) {
1613  vp->num_matched_reco_tracks++;
1614  vp->average_match_quality += match_quality;
1615  }
1616  } // End of for loop on daughters sim-particles
1617  if (vp->num_matched_reco_tracks)
1618  vp->average_match_quality /= static_cast<float>(vp->num_matched_reco_tracks);
1619  if (debug_) {
1620  edm::LogPrint("Primary4DVertexValidation")
1621  << "average number of associated tracks: " << vp->num_matched_reco_tracks / static_cast<float>(vp->nGenTrk)
1622  << " with average quality: " << vp->average_match_quality;
1623  }
1624  } // End of for loop on tracking vertices
1625 
1626  // In case of no simulated vertices, break here
1627  if (simpv.empty())
1628  return simpv;
1629 
1630  // Now compute the closest distance in z between all simulated vertex
1631  // first initialize
1632  auto prev_z = simpv.back().z;
1633  for (simPrimaryVertex& vsim : simpv) {
1634  vsim.closest_vertex_distance_z = std::abs(vsim.z - prev_z);
1635  prev_z = vsim.z;
1636  }
1637  // then calculate
1638  for (std::vector<simPrimaryVertex>::iterator vsim = simpv.begin(); vsim != simpv.end(); vsim++) {
1639  std::vector<simPrimaryVertex>::iterator vsim2 = vsim;
1640  vsim2++;
1641  for (; vsim2 != simpv.end(); vsim2++) {
1642  double distance = std::abs(vsim->z - vsim2->z);
1643  // need both to be complete
1644  vsim->closest_vertex_distance_z = std::min(vsim->closest_vertex_distance_z, distance);
1645  vsim2->closest_vertex_distance_z = std::min(vsim2->closest_vertex_distance_z, distance);
1646  }
1647  }
1648  return simpv;
1649 }
assert(be >=bs)
const_iterator find(const key_type &k) const
find element with specified reference key
const_iterator end() const
last iterator over the map (read only)
double pt() const
track transverse momentum
Definition: TrackBase.h:637
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Log< level::Warning, true > LogPrint
edm::Ref< TrackingVertexCollection > TrackingVertexRef
const reco::SimToRecoCollection * s2r_

◆ getWosWnt()

void Primary4DVertexValidation::getWosWnt ( const reco::Vertex recoVtx,
const reco::TrackBaseRef recoTrk,
const edm::ValueMap< float > &  sigmat0,
const edm::Handle< reco::BeamSpot > &  BS,
double &  wos,
double &  wnt 
)
private

Definition at line 1527 of file Primary4DVertexValidation.cc.

References c_, funct::cos(), reco::TrackBase::dzError(), SiStripPI::min, reco::TrackBase::phi(), funct::pow(), reco::TrackBase::pt(), beamSpotPI::sigmaZ, funct::sin(), funct::tan(), reco::TrackBase::theta(), and reco::Vertex::trackWeight().

Referenced by analyze(), and matchReco2Sim().

1532  {
1533  double dz2_beam = pow((*BS).BeamWidthX() * cos(recoTrk->phi()) / tan(recoTrk->theta()), 2) +
1534  pow((*BS).BeamWidthY() * sin(recoTrk->phi()) / tan(recoTrk->theta()), 2);
1535  double dz2 =
1536  pow(recoTrk->dzError(), 2) + dz2_beam + pow(0.0020, 2); // added 20 um, some tracks have crazy small resolutions
1537  wos = recoVtx.trackWeight(recoTrk) / dz2;
1538  wnt = recoVtx.trackWeight(recoTrk) * std::min(recoTrk->pt(), 1.0);
1539 
1540  if (sigmat0[recoTrk] > 0) {
1541  double sigmaZ = (*BS).sigmaZ();
1542  double sigmaT = sigmaZ / c_; // c in cm/ns
1543  wos = wos / erf(sigmat0[recoTrk] / sigmaT);
1544  }
1545 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
double pt() const
track transverse momentum
Definition: TrackBase.h:637
double dzError() const
error on dz
Definition: TrackBase.h:778
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
float trackWeight(const TREF &r) const
returns the weight with which a Track has contributed to the vertex-fit.
Definition: Vertex.h:97
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
double theta() const
polar angle
Definition: TrackBase.h:602
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29

◆ isParticle()

void Primary4DVertexValidation::isParticle ( const reco::TrackBaseRef recoTrack,
const edm::ValueMap< float > &  probPi,
const edm::ValueMap< float > &  probK,
const edm::ValueMap< float > &  probP,
unsigned int &  no_PIDtype,
bool &  no_PID,
bool &  is_Pi,
bool &  is_K,
bool &  is_P 
)
private

Definition at line 1500 of file Primary4DVertexValidation.cc.

References edm::isNotFinite(), and minProbHeavy_.

Referenced by analyze().

1508  {
1509  no_PIDtype = 0;
1510  no_PID = false;
1511  is_Pi = false;
1512  is_K = false;
1513  is_P = false;
1514  if (probPi[recoTrack] == -1) {
1515  no_PIDtype = 1;
1516  } else if (edm::isNotFinite(probPi[recoTrack])) {
1517  no_PIDtype = 2;
1518  } else if (probPi[recoTrack] == 1 && probK[recoTrack] == 0 && probP[recoTrack] == 0) {
1519  no_PIDtype = 3;
1520  }
1521  no_PID = no_PIDtype > 0;
1522  is_Pi = !no_PID && 1. - probPi[recoTrack] < minProbHeavy_;
1523  is_K = !no_PID && !is_Pi && probK[recoTrack] > probP[recoTrack];
1524  is_P = !no_PID && !is_Pi && !is_K;
1525 }
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9

◆ matchReco2Sim()

void Primary4DVertexValidation::matchReco2Sim ( std::vector< recoPrimaryVertex > &  recopv,
std::vector< simPrimaryVertex > &  simpv,
const edm::ValueMap< float > &  sigmat0,
const edm::ValueMap< float > &  MVA,
const edm::Handle< reco::BeamSpot > &  BS 
)
private

Definition at line 1717 of file Primary4DVertexValidation.cc.

References funct::abs(), debug_, dqmdumpme::first, getMatchedTP(), getWosWnt(), mps_fire::i, caHitNtupletGeneratorKernels::iev, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::iv, dqmdumpme::k, maxRank_, maxTry_, mvaTh_, NOT_MATCHED, edm::second(), pfDeepBoostedJetPreprocessParams_cfi::sv, trackweightTh_, bphysicsOniaDQM_cfi::vertex, and zWosMatchMax_.

Referenced by analyze().

1721  {
1722  for (auto vv : simpv) {
1723  vv.wnt.clear();
1724  vv.wos.clear();
1725  }
1726  for (auto rv : recopv) {
1727  rv.wnt.clear();
1728  rv.wos.clear();
1729  }
1730 
1731  for (unsigned int iv = 0; iv < recopv.size(); iv++) {
1732  const reco::Vertex* vertex = recopv.at(iv).recVtx;
1733 
1734  for (unsigned int iev = 0; iev < simpv.size(); iev++) {
1735  double wnt = 0;
1736  double wos = 0;
1737  double evwnt = 0;
1738  double evwos = 0;
1739  double evnt = 0;
1740 
1741  for (auto iTrack = vertex->tracks_begin(); iTrack != vertex->tracks_end(); ++iTrack) {
1742  if (vertex->trackWeight(*iTrack) < trackweightTh_)
1743  continue;
1744  if (MVA[(*iTrack)] < mvaTh_)
1745  continue;
1746 
1747  auto tp_info = getMatchedTP(*iTrack, simpv.at(iev).sim_vertex).first;
1748  int matchCategory = getMatchedTP(*iTrack, simpv.at(iev).sim_vertex).second;
1749  // matched TP equal to any TP of a given sim vertex
1750  if (tp_info != nullptr && matchCategory == 0) {
1751  getWosWnt(*vertex, *iTrack, sigmat0, BS, wos, wnt);
1752  simpv.at(iev).addTrack(iv, wos, wnt);
1753  recopv.at(iv).addTrack(iev, wos, wnt);
1754  evwos += wos;
1755  evwnt += wnt;
1756  evnt++;
1757  }
1758  } // RecoTracks loop
1759 
1760  // require 2 tracks for a wos-match
1761  if ((evwos > 0) && (evwos > recopv.at(iv).maxwos) && (evnt > 1)) {
1762  recopv.at(iv).wosmatch = iev;
1763  recopv.at(iv).maxwos = evwos;
1764  recopv.at(iv).maxwosnt = evnt;
1765 
1766  simpv.at(iev).wos_dominated_recv.push_back(iv);
1767  simpv.at(iev).nwosmatch++;
1768  }
1769 
1770  // weighted track counting match, require at least one track
1771  if ((evnt > 0) && (evwnt > recopv.at(iv).maxwnt)) {
1772  recopv.at(iv).wntmatch = iev;
1773  recopv.at(iv).maxwnt = evwnt;
1774  }
1775  } // TrackingVertex loop
1776 
1777  } // RecoPrimaryVertex
1778 
1779  // after filling infos, goes for the sim-reco match
1780  for (auto& vrec : recopv) {
1781  vrec.sim = NOT_MATCHED;
1782  vrec.matchQuality = 0;
1783  }
1784  unsigned int iev = 0;
1785  for (auto& vv : simpv) {
1786  if (debug_) {
1787  edm::LogPrint("Primary4DVertexValidation") << "iev: " << iev;
1788  edm::LogPrint("Primary4DVertexValidation") << "wos_dominated_recv.size: " << vv.wos_dominated_recv.size();
1789  }
1790  for (unsigned int i = 0; i < vv.wos_dominated_recv.size(); i++) {
1791  auto recov = vv.wos_dominated_recv.at(i);
1792  if (debug_) {
1793  edm::LogPrint("Primary4DVertexValidation")
1794  << "index of reco vertex: " << recov << " that has a wos: " << vv.wos.at(recov) << " at position " << i;
1795  }
1796  }
1797  vv.rec = NOT_MATCHED;
1798  vv.matchQuality = 0;
1799  iev++;
1800  }
1801  // this tries a one-to-one match, taking simPV with highest wos if there are > 1 simPV candidates
1802  for (unsigned int rank = 1; rank < maxRank_; rank++) {
1803  for (unsigned int iev = 0; iev < simpv.size(); iev++) { //loop on SimPV
1804  if (simpv.at(iev).rec != NOT_MATCHED)
1805  continue;
1806  if (simpv.at(iev).nwosmatch == 0)
1807  continue;
1808  if (simpv.at(iev).nwosmatch > rank)
1809  continue;
1810  unsigned int iv = NOT_MATCHED;
1811  for (unsigned int k = 0; k < simpv.at(iev).wos_dominated_recv.size(); k++) {
1812  unsigned int rec = simpv.at(iev).wos_dominated_recv.at(k);
1813  auto vrec = recopv.at(rec);
1814  if (vrec.sim != NOT_MATCHED)
1815  continue; // already matched
1816  if (std::abs(simpv.at(iev).z - vrec.z) > zWosMatchMax_)
1817  continue; // insanely far away
1818  if ((iv == NOT_MATCHED) || simpv.at(iev).wos.at(rec) > simpv.at(iev).wos.at(iv)) {
1819  iv = rec;
1820  }
1821  }
1822  if (iv !=
1823  NOT_MATCHED) { // if the rec vertex has already been associated is possible that iv remains NOT_MATCHED at this point
1824  recopv.at(iv).sim = iev;
1825  simpv.at(iev).rec = iv;
1826  recopv.at(iv).matchQuality = rank;
1827  simpv.at(iev).matchQuality = rank;
1828  }
1829  }
1830  }
1831  //give vertices a chance that have a lot of overlap, but are still recognizably
1832  //caused by a specific simvertex (without being classified as dominating)
1833  //like a small peak sitting on the flank of a larger nearby peak
1834  unsigned int ntry = 0;
1835  while (ntry++ < maxTry_) {
1836  unsigned nmatch = 0;
1837  for (unsigned int iev = 0; iev < simpv.size(); iev++) {
1838  if ((simpv.at(iev).rec != NOT_MATCHED) || (simpv.at(iev).wos.empty()))
1839  continue;
1840  // find a rec vertex for the NOT_MATCHED sim vertex
1841  unsigned int rec = NOT_MATCHED;
1842  for (auto rv : simpv.at(iev).wos) {
1843  if ((rec == NOT_MATCHED) || (rv.second > simpv.at(iev).wos.at(rec))) {
1844  rec = rv.first;
1845  }
1846  }
1847 
1848  if (rec == NOT_MATCHED) { // try with wnt match
1849  for (auto rv : simpv.at(iev).wnt) {
1850  if ((rec == NOT_MATCHED) || (rv.second > simpv.at(iev).wnt.at(rec))) {
1851  rec = rv.first;
1852  }
1853  }
1854  }
1855 
1856  if (rec == NOT_MATCHED)
1857  continue;
1858  if (recopv.at(rec).sim != NOT_MATCHED)
1859  continue; // already gone
1860 
1861  // check if the recvertex can be matched
1862  unsigned int rec2sim = NOT_MATCHED;
1863  for (auto sv : recopv.at(rec).wos) {
1864  if (simpv.at(sv.first).rec != NOT_MATCHED)
1865  continue; // already used
1866  if ((rec2sim == NOT_MATCHED) || (sv.second > recopv.at(rec).wos.at(rec2sim))) {
1867  rec2sim = sv.first;
1868  }
1869  }
1870  if (iev == rec2sim) {
1871  // do the match and assign lowest quality (i.e. max rank)
1872  recopv.at(rec).sim = iev;
1873  recopv.at(rec).matchQuality = maxRank_;
1874  simpv.at(iev).rec = rec;
1875  simpv.at(iev).matchQuality = maxRank_;
1876  nmatch++;
1877  }
1878  } // sim loop
1879  if (nmatch == 0) {
1880  break;
1881  }
1882  } // ntry
1883 }
TkSoAView< TrackerTraits > HitToTuple< TrackerTraits > const *__restrict__ int32_t int32_t int iev
U second(std::pair< T, U > const &p)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Log< level::Warning, true > LogPrint
static constexpr unsigned int NOT_MATCHED
std::pair< const edm::Ref< std::vector< TrackingParticle > > *, int > getMatchedTP(const reco::TrackBaseRef &, const TrackingVertexRef &)
static constexpr double zWosMatchMax_
void getWosWnt(const reco::Vertex &, const reco::TrackBaseRef &, const edm::ValueMap< float > &, const edm::Handle< reco::BeamSpot > &, double &, double &)

◆ matchRecoTrack2SimSignal()

bool Primary4DVertexValidation::matchRecoTrack2SimSignal ( const reco::TrackBaseRef recoTrack)
private

Definition at line 1350 of file Primary4DVertexValidation.cc.

References edm::AssociationMap< Tag >::end(), edm::AssociationMap< Tag >::find(), newFWLiteAna::found, r2s_, and cmsswSequenceInfo::tp.

1350  {
1351  auto found = r2s_->find(recoTrack);
1352 
1353  // reco track not matched to any TP
1354  if (found == r2s_->end())
1355  return false;
1356 
1358  for (const auto& tp : found->val) {
1359  if (tp.first->eventId().bunchCrossing() == 0 && tp.first->eventId().event() == 0)
1360  return true;
1361  }
1362 
1363  // reco track not matched to any TP from signal vertex
1364  return false;
1365 }
const_iterator find(const key_type &k) const
find element with specified reference key
const_iterator end() const
last iterator over the map (read only)
const reco::RecoToSimCollection * r2s_

◆ mvaRecSel()

const bool Primary4DVertexValidation::mvaRecSel ( const reco::TrackBase trk,
const reco::Vertex vtx,
const double &  t0,
const double &  st0 
)
private

Definition at line 2758 of file Primary4DVertexValidation.cc.

References funct::abs(), deltaZcut_, reco::TrackBase::eta(), etacutREC_, match(), reco::TrackBase::pt(), pTcut_, FrontierCondition_GT_autoExpress_cfi::t0, L1BJetProducer_cff::vtx, and reco::TrackBase::vz().

Referenced by analyze().

2761  {
2762  bool match = false;
2763  match = trk.pt() > pTcut_ && std::abs(trk.eta()) < etacutREC_ && std::abs(trk.vz() - vtx.z()) <= deltaZcut_;
2764  if (st0 > 0.) {
2765  match = match && std::abs(t0 - vtx.t()) < 3. * st0;
2766  }
2767  return match;
2768 }
static constexpr double etacutREC_
double pt() const
track transverse momentum
Definition: TrackBase.h:637
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:661
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static constexpr double deltaZcut_
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10

◆ mvaTPSel()

const bool Primary4DVertexValidation::mvaTPSel ( const TrackingParticle tp)
private

Definition at line 2749 of file Primary4DVertexValidation.cc.

References funct::abs(), etacutGEN_, match(), pTcut_, and cmsswSequenceInfo::tp.

Referenced by analyze().

2749  {
2750  bool match = false;
2751  if (tp.status() != 1) {
2752  return match;
2753  }
2754  match = tp.charge() != 0 && tp.pt() > pTcut_ && std::abs(tp.eta()) < etacutGEN_;
2755  return match;
2756 }
static constexpr double etacutGEN_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10

◆ observablesFromJets()

void Primary4DVertexValidation::observablesFromJets ( const std::vector< reco::Track > &  reco_Tracks,
const std::vector< double > &  mass_Tracks,
const std::vector< int > &  category_Tracks,
const std::string &  skip_Tracks,
unsigned int &  n_Jets,
double &  sum_EtJets,
double &  sum_Pt2Jets,
double &  met_Pt,
double &  sum_PzJets 
)
private

Definition at line 1427 of file Primary4DVertexValidation.cc.

References mps_fire::i, edm::isNotFinite(), PDWG_EXODelayedJetMET_cff::jets, EgHLTOffHistBins_cfi::mass, BTaggingMonitor_cfi::met, l1tEGammaCrystalsEmulatorProducer_cfi::scale, and mathSSE::sqrt().

Referenced by analyze().

1435  {
1436  double sum_PtJets = 0;
1437  n_Jets = 0;
1438  sum_EtJets = 0;
1439  sum_Pt2Jets = 0;
1440  met_Pt = 0;
1441  sum_PzJets = 0;
1442  auto met = LorentzVector(0, 0, 0, 0);
1443  std::vector<fastjet::PseudoJet> fjInputs_;
1444  fjInputs_.clear();
1445  size_t countScale0 = 0;
1446  for (size_t i = 0; i < reco_Tracks.size(); i++) {
1447  const auto recotr = reco_Tracks[i];
1448  const auto mass = mass_Tracks[i];
1449  float scale = 1.;
1450  if (recotr.charge() == 0) {
1451  continue;
1452  }
1453  // skip PU tracks in jet definition if skip_PU is required
1454  if (skip_Tracks == "skip_PU" && category_Tracks[i] == 2) {
1455  continue;
1456  }
1457  // skip fake tracks in jet definition if skip_Fake is required
1458  if (skip_Tracks == "skip_Fake" && category_Tracks[i] == -1) {
1459  continue;
1460  }
1461  if (recotr.pt() != 0) {
1462  scale = (recotr.pt() - recotr.ptError()) / recotr.pt();
1463  }
1464  if (edm::isNotFinite(scale)) {
1465  edm::LogWarning("Primary4DVertexValidation") << "Scaling is NAN ignoring this recotrack" << std::endl;
1466  scale = 0;
1467  }
1468  if (scale < 0) {
1469  scale = 0;
1470  countScale0++;
1471  }
1472  if (scale != 0) {
1473  fjInputs_.push_back(fastjet::PseudoJet(recotr.px() * scale,
1474  recotr.py() * scale,
1475  recotr.pz() * scale,
1476  std::sqrt(recotr.p() * recotr.p() + mass * mass) * scale));
1477  }
1478  }
1479  fastjet::ClusterSequence sequence(fjInputs_, fastjet::JetDefinition(fastjet::antikt_algorithm, 0.4));
1480  auto jets = fastjet::sorted_by_pt(sequence.inclusive_jets(0));
1481  for (const auto& pj : jets) {
1482  auto p4 = LorentzVector(pj.px(), pj.py(), pj.pz(), pj.e());
1483  sum_EtJets += std::sqrt(p4.e() * p4.e() - p4.P() * p4.P() + p4.pt() * p4.pt());
1484  sum_PtJets += p4.pt();
1485  sum_Pt2Jets += (p4.pt() * p4.pt() * 0.8 * 0.8);
1486  met += p4;
1487  sum_PzJets += p4.pz();
1488  n_Jets++;
1489  }
1490  met_Pt = met.pt();
1491  double metAbove = met_Pt - 2 * std::sqrt(sum_PtJets);
1492  if (metAbove > 0) {
1493  sum_Pt2Jets += (metAbove * metAbove);
1494  }
1495  if (countScale0 == reco_Tracks.size()) {
1496  sum_Pt2Jets = countScale0 * 0.01; //leave some epsilon value to sort vertices with unknown pt
1497  }
1498 }
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
math::XYZTLorentzVector LorentzVector
T sqrt(T t)
Definition: SSEVec.h:19
Log< level::Warning, false > LogWarning

◆ printMatchedRecoTrackInfo()

void Primary4DVertexValidation::printMatchedRecoTrackInfo ( const reco::Vertex vtx,
const reco::TrackBaseRef trk,
const TrackingParticleRef tp,
const unsigned int &  categ 
)
private

Definition at line 2697 of file Primary4DVertexValidation.cc.

References reco::TrackBase::eta(), reco::TrackBase::pt(), simUnit_, AlCaHLTBitMon_QueryRunRegistry::string, cmsswSequenceInfo::tp, and L1BJetProducer_cff::vtx.

Referenced by analyze().

2700  {
2701  std::string strTrk;
2702  switch (categ) {
2703  case 0:
2704  strTrk = "Reco_Track:";
2705  break;
2706  case 1:
2707  strTrk = "SecRecoTrk:";
2708  break;
2709  case 2:
2710  strTrk = "PU_RecoTrk:";
2711  break;
2712  }
2713  edm::LogPrint("Primary4DVertexValidation")
2714  << strTrk << " w =" << std::setw(6) << std::setprecision(2) << vtx.trackWeight(trk) << " pt =" << std::setw(6)
2715  << std::setprecision(2) << trk->pt() << " eta =" << std::setw(6) << std::setprecision(2) << trk->eta()
2716  << " MatchedTP: Pt =" << std::setw(6) << std::setprecision(2) << tp->pt() << " eta =" << std::setw(6)
2717  << std::setprecision(2) << tp->eta() << " Parent vtx: z =" << std::setw(8) << std::setprecision(4)
2718  << tp->parentVertex()->position().z() << " t =" << std::setw(8) << std::setprecision(4)
2719  << tp->parentVertex()->position().t() * simUnit_ << " BX =" << tp->parentVertex()->eventId().bunchCrossing()
2720  << " ev =" << tp->parentVertex()->eventId().event() << std::endl;
2721 }
double pt() const
track transverse momentum
Definition: TrackBase.h:637
Log< level::Warning, true > LogPrint
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652

◆ printSimVtxRecoVtxInfo()

void Primary4DVertexValidation::printSimVtxRecoVtxInfo ( const struct Primary4DVertexValidation::simPrimaryVertex simpVtx,
const struct Primary4DVertexValidation::recoPrimaryVertex recopVtx 
)
private

Definition at line 2723 of file Primary4DVertexValidation.cc.

References Primary4DVertexValidation::simPrimaryVertex::nGenTrk, Primary4DVertexValidation::recoPrimaryVertex::nRecoTrk, Primary4DVertexValidation::simPrimaryVertex::num_matched_reco_tracks, Primary4DVertexValidation::recoPrimaryVertex::num_matched_sim_tracks, Primary4DVertexValidation::simPrimaryVertex::pt, Primary4DVertexValidation::recoPrimaryVertex::pt, Primary4DVertexValidation::simPrimaryVertex::ptsq, Primary4DVertexValidation::recoPrimaryVertex::ptsq, Primary4DVertexValidation::simPrimaryVertex::sim_vertex, simUnit_, Primary4DVertexValidation::recoPrimaryVertex::sumwnt, Primary4DVertexValidation::recoPrimaryVertex::sumwos, Primary4DVertexValidation::simPrimaryVertex::t, use_only_charged_tracks_, Primary4DVertexValidation::simPrimaryVertex::x, Primary4DVertexValidation::recoPrimaryVertex::x, Primary4DVertexValidation::simPrimaryVertex::y, Primary4DVertexValidation::recoPrimaryVertex::y, Primary4DVertexValidation::simPrimaryVertex::z, and Primary4DVertexValidation::recoPrimaryVertex::z.

Referenced by analyze().

2725  {
2726  edm::LogPrint("Primary4DVertexValidation")
2727  << "Sim vtx (x,y,z,t) = (" << std::setprecision(4) << simpVtx.x << "," << std::setprecision(4) << simpVtx.y << ","
2728  << std::setprecision(4) << simpVtx.z << "," << std::setprecision(4) << simpVtx.t * simUnit_ << ")";
2729  edm::LogPrint("Primary4DVertexValidation")
2730  << "Sim vtx: pt = " << std::setprecision(4) << simpVtx.pt << " ptsq = " << std::setprecision(6) << simpVtx.ptsq
2731  << " nGenTrk = " << simpVtx.nGenTrk << " nmatch recotrks = " << simpVtx.num_matched_reco_tracks;
2732  edm::LogPrint("Primary4DVertexValidation")
2733  << "Reco vtx (x,y,z) = (" << std::setprecision(4) << recopVtx.x << "," << std::setprecision(4) << recopVtx.y
2734  << "," << std::setprecision(4) << recopVtx.z << ")";
2735  edm::LogPrint("Primary4DVertexValidation")
2736  << "Reco vtx: pt = " << std::setprecision(4) << recopVtx.pt << " ptsq = " << std::setprecision(6) << recopVtx.ptsq
2737  << " nrecotrks = " << recopVtx.nRecoTrk << " nmatch simtrks = " << recopVtx.num_matched_sim_tracks;
2738  edm::LogPrint("Primary4DVertexValidation") << "wnt " << recopVtx.sumwnt << " wos = " << recopVtx.sumwos;
2739  for (auto iTP = simpVtx.sim_vertex->daughterTracks_begin(); iTP != simpVtx.sim_vertex->daughterTracks_end(); ++iTP) {
2740  if (use_only_charged_tracks_ && (**iTP).charge() == 0) {
2741  continue;
2742  }
2743  edm::LogPrint("Primary4DVertexValidation")
2744  << "Daughter track of sim vertex: pt =" << std::setw(6) << std::setprecision(2) << (*iTP)->pt()
2745  << " eta =" << std::setw(6) << std::setprecision(2) << (*iTP)->eta();
2746  }
2747 }
Log< level::Warning, true > LogPrint

◆ select()

bool Primary4DVertexValidation::select ( const reco::Vertex v,
int  level = 0 
)
private

Definition at line 1408 of file Primary4DVertexValidation.cc.

References personalPlayback::level, selNdof_, and findQualityFiles::v.

Referenced by analyze().

1408  {
1409  /* level
1410  0 !isFake && ndof>4 (default)
1411  1 !isFake && ndof>4 && prob > 0.01
1412  2 !isFake && ndof>4 && prob > 0.01 && ptmax2 > 0.4
1413  */
1414  if (v.isFake())
1415  return false;
1416  if ((level == 0) && (v.ndof() > selNdof_))
1417  return true;
1418  /*if ((level == 1) && (v.ndof() > selNdof_) && (vertex_pxy(v) > 0.01))
1419  return true;
1420  if ((level == 2) && (v.ndof() > selNdof_) && (vertex_pxy(v) > 0.01) && (vertex_ptmax2(v) > 0.4))
1421  return true;
1422  if ((level == 3) && (v.ndof() > selNdof_) && (vertex_ptmax2(v) < 0.4))
1423  return true;*/
1424  return false;
1425 }

◆ timeFromTrueMass()

double Primary4DVertexValidation::timeFromTrueMass ( double  mass,
double  pathlength,
double  momentum,
double  time 
)
private

Definition at line 1396 of file Primary4DVertexValidation.cc.

References c_, EgHLTOffHistBins_cfi::mass, mathSSE::sqrt(), hcalRecHitTable_cff::time, and findQualityFiles::v.

Referenced by analyze().

1396  {
1397  if (time > 0 && pathlength > 0 && mass > 0) {
1398  double gammasq = 1. + momentum * momentum / (mass * mass);
1399  double v = c_ * std::sqrt(1. - 1. / gammasq); // cm / ns
1400  double t_est = time - (pathlength / v);
1401 
1402  return t_est;
1403  } else {
1404  return -1;
1405  }
1406 }
T sqrt(T t)
Definition: SSEVec.h:19

Member Data Documentation

◆ c_

constexpr double Primary4DVertexValidation::c_ = 2.99792458e1
staticprivate

Definition at line 260 of file Primary4DVertexValidation.cc.

Referenced by getWosWnt(), and timeFromTrueMass().

◆ c_cm_ns

constexpr float Primary4DVertexValidation::c_cm_ns = geant_units::operators::convertMmToCm(CLHEP::c_light)
staticprivate

Definition at line 282 of file Primary4DVertexValidation.cc.

◆ debug_

bool Primary4DVertexValidation::debug_
private

Definition at line 285 of file Primary4DVertexValidation.cc.

Referenced by analyze(), getSimPVs(), and matchReco2Sim().

◆ deltaZcut_

constexpr double Primary4DVertexValidation::deltaZcut_ = 0.1
staticprivate

Definition at line 270 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and mvaRecSel().

◆ etacutGEN_

constexpr double Primary4DVertexValidation::etacutGEN_ = 4.
staticprivate

Definition at line 267 of file Primary4DVertexValidation.cc.

Referenced by mvaTPSel().

◆ etacutREC_

constexpr double Primary4DVertexValidation::etacutREC_ = 3.
staticprivate

Definition at line 268 of file Primary4DVertexValidation.cc.

Referenced by mvaRecSel().

◆ folder_

const std::string Primary4DVertexValidation::folder_
private

Definition at line 257 of file Primary4DVertexValidation.cc.

Referenced by bookHistograms().

◆ lineDensityPar_

const std::vector<double> Primary4DVertexValidation::lineDensityPar_
private

Definition at line 292 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ maxRank_

constexpr double Primary4DVertexValidation::maxRank_ = 8.
staticprivate

Definition at line 264 of file Primary4DVertexValidation.cc.

Referenced by matchReco2Sim().

◆ maxTry_

constexpr double Primary4DVertexValidation::maxTry_ = 10.
staticprivate

Definition at line 265 of file Primary4DVertexValidation.cc.

Referenced by matchReco2Sim().

◆ meBarrelNoPIDtype_

MonitorElement* Primary4DVertexValidation::meBarrelNoPIDtype_
private

Definition at line 477 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelPIDp_

MonitorElement* Primary4DVertexValidation::meBarrelPIDp_
private

Definition at line 474 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTrueKAsK_

MonitorElement* Primary4DVertexValidation::meBarrelTrueKAsK_
private

Definition at line 495 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTrueKAsP_

MonitorElement* Primary4DVertexValidation::meBarrelTrueKAsP_
private

Definition at line 496 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTrueKAsPi_

MonitorElement* Primary4DVertexValidation::meBarrelTrueKAsPi_
private

Definition at line 494 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTrueKNoPID_

MonitorElement* Primary4DVertexValidation::meBarrelTrueKNoPID_
private

Definition at line 481 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTruePAsK_

MonitorElement* Primary4DVertexValidation::meBarrelTruePAsK_
private

Definition at line 502 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTruePAsP_

MonitorElement* Primary4DVertexValidation::meBarrelTruePAsP_
private

Definition at line 503 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTruePAsPi_

MonitorElement* Primary4DVertexValidation::meBarrelTruePAsPi_
private

Definition at line 501 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTruePiAsK_

MonitorElement* Primary4DVertexValidation::meBarrelTruePiAsK_
private

Definition at line 488 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTruePiAsP_

MonitorElement* Primary4DVertexValidation::meBarrelTruePiAsP_
private

Definition at line 489 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTruePiAsPi_

MonitorElement* Primary4DVertexValidation::meBarrelTruePiAsPi_
private

Definition at line 487 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTruePiNoPID_

MonitorElement* Primary4DVertexValidation::meBarrelTruePiNoPID_
private

Definition at line 480 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBarrelTruePNoPID_

MonitorElement* Primary4DVertexValidation::meBarrelTruePNoPID_
private

Definition at line 482 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meDeltaTfakefake_

MonitorElement* Primary4DVertexValidation::meDeltaTfakefake_
private

Definition at line 357 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meDeltaTfakereal_

MonitorElement* Primary4DVertexValidation::meDeltaTfakereal_
private

Definition at line 358 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meDeltaTrealreal_

MonitorElement* Primary4DVertexValidation::meDeltaTrealreal_
private

Definition at line 356 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meDeltaZfakefake_

MonitorElement* Primary4DVertexValidation::meDeltaZfakefake_
private

Definition at line 354 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meDeltaZfakereal_

MonitorElement* Primary4DVertexValidation::meDeltaZfakereal_
private

Definition at line 355 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meDeltaZrealreal_

MonitorElement* Primary4DVertexValidation::meDeltaZrealreal_
private

Definition at line 353 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapNoPIDtype_

MonitorElement* Primary4DVertexValidation::meEndcapNoPIDtype_
private

Definition at line 478 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapPIDp_

MonitorElement* Primary4DVertexValidation::meEndcapPIDp_
private

Definition at line 475 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTrueKAsK_

MonitorElement* Primary4DVertexValidation::meEndcapTrueKAsK_
private

Definition at line 498 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTrueKAsP_

MonitorElement* Primary4DVertexValidation::meEndcapTrueKAsP_
private

Definition at line 499 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTrueKAsPi_

MonitorElement* Primary4DVertexValidation::meEndcapTrueKAsPi_
private

Definition at line 497 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTrueKNoPID_

MonitorElement* Primary4DVertexValidation::meEndcapTrueKNoPID_
private

Definition at line 484 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTruePAsK_

MonitorElement* Primary4DVertexValidation::meEndcapTruePAsK_
private

Definition at line 505 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTruePAsP_

MonitorElement* Primary4DVertexValidation::meEndcapTruePAsP_
private

Definition at line 506 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTruePAsPi_

MonitorElement* Primary4DVertexValidation::meEndcapTruePAsPi_
private

Definition at line 504 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTruePiAsK_

MonitorElement* Primary4DVertexValidation::meEndcapTruePiAsK_
private

Definition at line 491 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTruePiAsP_

MonitorElement* Primary4DVertexValidation::meEndcapTruePiAsP_
private

Definition at line 492 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTruePiAsPi_

MonitorElement* Primary4DVertexValidation::meEndcapTruePiAsPi_
private

Definition at line 490 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTruePiNoPID_

MonitorElement* Primary4DVertexValidation::meEndcapTruePiNoPID_
private

Definition at line 483 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEndcapTruePNoPID_

MonitorElement* Primary4DVertexValidation::meEndcapTruePNoPID_
private

Definition at line 485 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meFakeTrackRecLVRelMult_

MonitorElement* Primary4DVertexValidation::meFakeTrackRecLVRelMult_
private

Definition at line 397 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meFakeTrackRecLVRelMultvsMult_

MonitorElement* Primary4DVertexValidation::meFakeTrackRecLVRelMultvsMult_
private

Definition at line 412 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meFakeTrackRecLVRelSumWos_

MonitorElement* Primary4DVertexValidation::meFakeTrackRecLVRelSumWos_
private

Definition at line 404 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meFakeTrackRecLVRelSumWosvsSumWos_

MonitorElement* Primary4DVertexValidation::meFakeTrackRecLVRelSumWosvsSumWos_
private

Definition at line 416 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meFakeTrackRelMult_

MonitorElement* Primary4DVertexValidation::meFakeTrackRelMult_
private

Definition at line 372 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meFakeTrackRelMultvsMult_

MonitorElement* Primary4DVertexValidation::meFakeTrackRelMultvsMult_
private

Definition at line 387 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meFakeTrackRelSumWos_

MonitorElement* Primary4DVertexValidation::meFakeTrackRelSumWos_
private

Definition at line 379 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meFakeTrackRelSumWosvsSumWos_

MonitorElement* Primary4DVertexValidation::meFakeTrackRelSumWosvsSumWos_
private

Definition at line 390 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsFakeRelSumPt2_

MonitorElement* Primary4DVertexValidation::meJetsFakeRelSumPt2_
private

Definition at line 428 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsFakeRelSumPt2vsSumPt2_

MonitorElement* Primary4DVertexValidation::meJetsFakeRelSumPt2vsSumPt2_
private

Definition at line 435 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPUHt_

MonitorElement* Primary4DVertexValidation::meJetsPUHt_
private

Definition at line 421 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPUMetPt_

MonitorElement* Primary4DVertexValidation::meJetsPUMetPt_
private

Definition at line 423 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPUMult_

MonitorElement* Primary4DVertexValidation::meJetsPUMult_
private

Definition at line 420 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPURelHt_

MonitorElement* Primary4DVertexValidation::meJetsPURelHt_
private

Definition at line 426 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPURelHtvsHt_

MonitorElement* Primary4DVertexValidation::meJetsPURelHtvsHt_
private

Definition at line 433 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPURelMetPt_

MonitorElement* Primary4DVertexValidation::meJetsPURelMetPt_
private

Definition at line 429 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPURelMetPtvsMetPt_

MonitorElement* Primary4DVertexValidation::meJetsPURelMetPtvsMetPt_
private

Definition at line 436 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPURelMult_

MonitorElement* Primary4DVertexValidation::meJetsPURelMult_
private

Definition at line 425 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPURelMultvsMult_

MonitorElement* Primary4DVertexValidation::meJetsPURelMultvsMult_
private

Definition at line 432 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPURelSumPt2_

MonitorElement* Primary4DVertexValidation::meJetsPURelSumPt2_
private

Definition at line 427 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPURelSumPt2vsSumPt2_

MonitorElement* Primary4DVertexValidation::meJetsPURelSumPt2vsSumPt2_
private

Definition at line 434 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPURelSumPz_

MonitorElement* Primary4DVertexValidation::meJetsPURelSumPz_
private

Definition at line 430 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPURelSumPzvsSumPz_

MonitorElement* Primary4DVertexValidation::meJetsPURelSumPzvsSumPz_
private

Definition at line 437 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPUSumPt2_

MonitorElement* Primary4DVertexValidation::meJetsPUSumPt2_
private

Definition at line 422 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsPUSumPz_

MonitorElement* Primary4DVertexValidation::meJetsPUSumPz_
private

Definition at line 424 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVFakeRelSumPt2_

MonitorElement* Primary4DVertexValidation::meJetsRecLVFakeRelSumPt2_
private

Definition at line 447 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVFakeRelSumPt2vsSumPt2_

MonitorElement* Primary4DVertexValidation::meJetsRecLVFakeRelSumPt2vsSumPt2_
private

Definition at line 454 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPUHt_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPUHt_
private

Definition at line 440 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPUMetPt_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPUMetPt_
private

Definition at line 442 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPUMult_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPUMult_
private

Definition at line 439 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPURelHt_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPURelHt_
private

Definition at line 445 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPURelHtvsHt_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPURelHtvsHt_
private

Definition at line 452 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPURelMetPt_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPURelMetPt_
private

Definition at line 448 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPURelMetPtvsMetPt_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPURelMetPtvsMetPt_
private

Definition at line 455 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPURelMult_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPURelMult_
private

Definition at line 444 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPURelMultvsMult_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPURelMultvsMult_
private

Definition at line 451 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPURelSumPt2_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPURelSumPt2_
private

Definition at line 446 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPURelSumPt2vsSumPt2_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPURelSumPt2vsSumPt2_
private

Definition at line 453 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPURelSumPz_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPURelSumPz_
private

Definition at line 449 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPURelSumPzvsSumPz_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPURelSumPzvsSumPz_
private

Definition at line 456 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPUSumPt2_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPUSumPt2_
private

Definition at line 441 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meJetsRecLVPUSumPz_

MonitorElement* Primary4DVertexValidation::meJetsRecLVPUSumPz_
private

Definition at line 443 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMatchQual_

MonitorElement* Primary4DVertexValidation::meMatchQual_
private

Definition at line 352 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackEffEtaTot_

MonitorElement* Primary4DVertexValidation::meMVATrackEffEtaTot_
private

Definition at line 330 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackEffPtTot_

MonitorElement* Primary4DVertexValidation::meMVATrackEffPtTot_
private

Definition at line 327 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffEtaMtd_

MonitorElement* Primary4DVertexValidation::meMVATrackMatchedEffEtaMtd_
private

Definition at line 332 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffEtaTot_

MonitorElement* Primary4DVertexValidation::meMVATrackMatchedEffEtaTot_
private

Definition at line 331 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffPtMtd_

MonitorElement* Primary4DVertexValidation::meMVATrackMatchedEffPtMtd_
private

Definition at line 329 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffPtTot_

MonitorElement* Primary4DVertexValidation::meMVATrackMatchedEffPtTot_
private

Definition at line 328 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackPullTot_

MonitorElement* Primary4DVertexValidation::meMVATrackPullTot_
private

Definition at line 334 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackResTot_

MonitorElement* Primary4DVertexValidation::meMVATrackResTot_
private

Definition at line 333 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackZposResTot_

MonitorElement* Primary4DVertexValidation::meMVATrackZposResTot_
private

Definition at line 341 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackMult_

MonitorElement* Primary4DVertexValidation::mePUTrackMult_
private

Definition at line 370 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVMult_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVMult_
private

Definition at line 395 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVRelMult_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVRelMult_
private

Definition at line 396 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVRelMultvsMult_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVRelMultvsMult_
private

Definition at line 411 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVRelSumPt2_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVRelSumPt2_
private

Definition at line 409 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVRelSumPt2vsSumPt2_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVRelSumPt2vsSumPt2_
private

Definition at line 418 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVRelSumPt_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVRelSumPt_
private

Definition at line 407 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVRelSumPtvsSumPt_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVRelSumPtvsSumPt_
private

Definition at line 417 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVRelSumWnt_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVRelSumWnt_
private

Definition at line 399 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVRelSumWntvsSumWnt_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVRelSumWntvsSumWnt_
private

Definition at line 413 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVRelSumWos_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVRelSumWos_
private

Definition at line 401 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVRelSumWosvsSumWos_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVRelSumWosvsSumWos_
private

Definition at line 414 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVSumPt2_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVSumPt2_
private

Definition at line 408 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVSumPt_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVSumPt_
private

Definition at line 406 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVSumWnt_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVSumWnt_
private

Definition at line 398 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVSumWos_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVSumWos_
private

Definition at line 400 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRecLVWnt_

MonitorElement* Primary4DVertexValidation::mePUTrackRecLVWnt_
private

Definition at line 405 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRelMult_

MonitorElement* Primary4DVertexValidation::mePUTrackRelMult_
private

Definition at line 371 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRelMultvsMult_

MonitorElement* Primary4DVertexValidation::mePUTrackRelMultvsMult_
private

Definition at line 386 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRelSumPt2_

MonitorElement* Primary4DVertexValidation::mePUTrackRelSumPt2_
private

Definition at line 384 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRelSumPt2vsSumPt2_

MonitorElement* Primary4DVertexValidation::mePUTrackRelSumPt2vsSumPt2_
private

Definition at line 393 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRelSumPt_

MonitorElement* Primary4DVertexValidation::mePUTrackRelSumPt_
private

Definition at line 382 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRelSumPtvsSumPt_

MonitorElement* Primary4DVertexValidation::mePUTrackRelSumPtvsSumPt_
private

Definition at line 392 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRelSumWnt_

MonitorElement* Primary4DVertexValidation::mePUTrackRelSumWnt_
private

Definition at line 374 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRelSumWntvsSumWnt_

MonitorElement* Primary4DVertexValidation::mePUTrackRelSumWntvsSumWnt_
private

Definition at line 388 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRelSumWos_

MonitorElement* Primary4DVertexValidation::mePUTrackRelSumWos_
private

Definition at line 376 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackRelSumWosvsSumWos_

MonitorElement* Primary4DVertexValidation::mePUTrackRelSumWosvsSumWos_
private

Definition at line 389 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackSumPt2_

MonitorElement* Primary4DVertexValidation::mePUTrackSumPt2_
private

Definition at line 383 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackSumPt_

MonitorElement* Primary4DVertexValidation::mePUTrackSumPt_
private

Definition at line 381 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackSumWnt_

MonitorElement* Primary4DVertexValidation::mePUTrackSumWnt_
private

Definition at line 373 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackSumWos_

MonitorElement* Primary4DVertexValidation::mePUTrackSumWos_
private

Definition at line 375 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUTrackWnt_

MonitorElement* Primary4DVertexValidation::mePUTrackWnt_
private

Definition at line 380 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUvsOtherFakeV_

MonitorElement* Primary4DVertexValidation::mePUvsOtherFakeV_
private

Definition at line 350 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUvsRealV_

MonitorElement* Primary4DVertexValidation::mePUvsRealV_
private

Definition at line 349 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mePUvsSplitV_

MonitorElement* Primary4DVertexValidation::mePUvsSplitV_
private

Definition at line 351 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meRecoPosInRecoOrigCollection_

MonitorElement* Primary4DVertexValidation::meRecoPosInRecoOrigCollection_
private

Definition at line 360 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meRecoPosInSimCollection_

MonitorElement* Primary4DVertexValidation::meRecoPosInSimCollection_
private

Definition at line 359 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meRecoPVPosSignal_

MonitorElement* Primary4DVertexValidation::meRecoPVPosSignal_
private

Definition at line 362 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meRecoPVPosSignalNotHighestPt_

MonitorElement* Primary4DVertexValidation::meRecoPVPosSignalNotHighestPt_
private

Definition at line 363 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meRecoVtxVsLineDensity_

MonitorElement* Primary4DVertexValidation::meRecoVtxVsLineDensity_
private

Definition at line 364 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meRecPVT_

MonitorElement* Primary4DVertexValidation::meRecPVT_
private

Definition at line 367 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meRecPVZ_

MonitorElement* Primary4DVertexValidation::meRecPVZ_
private

Definition at line 366 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meRecVerNumber_

MonitorElement* Primary4DVertexValidation::meRecVerNumber_
private

Definition at line 365 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meSecTrackRecLVRelSumWos_

MonitorElement* Primary4DVertexValidation::meSecTrackRecLVRelSumWos_
private

Definition at line 403 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meSecTrackRecLVRelSumWosvsSumWos_

MonitorElement* Primary4DVertexValidation::meSecTrackRecLVRelSumWosvsSumWos_
private

Definition at line 415 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meSecTrackRecLVSumWos_

MonitorElement* Primary4DVertexValidation::meSecTrackRecLVSumWos_
private

Definition at line 402 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meSecTrackRelSumWos_

MonitorElement* Primary4DVertexValidation::meSecTrackRelSumWos_
private

Definition at line 378 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meSecTrackRelSumWosvsSumWos_

MonitorElement* Primary4DVertexValidation::meSecTrackRelSumWosvsSumWos_
private

Definition at line 391 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meSecTrackSumWos_

MonitorElement* Primary4DVertexValidation::meSecTrackSumWos_
private

Definition at line 377 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meSimPosInSimOrigCollection_

MonitorElement* Primary4DVertexValidation::meSimPosInSimOrigCollection_
private

Definition at line 361 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meSimPVZ_

MonitorElement* Primary4DVertexValidation::meSimPVZ_
private

Definition at line 368 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTimePull_

MonitorElement* Primary4DVertexValidation::meTimePull_
private

Definition at line 346 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTimeRes_

MonitorElement* Primary4DVertexValidation::meTimeRes_
private

Definition at line 345 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTimeSignalPull_

MonitorElement* Primary4DVertexValidation::meTimeSignalPull_
private

Definition at line 348 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTimeSignalRes_

MonitorElement* Primary4DVertexValidation::meTimeSignalRes_
private

Definition at line 347 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrack3DposRes_

MonitorElement* Primary4DVertexValidation::meTrack3DposRes_[3]
private

Definition at line 344 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPull_

MonitorElement* Primary4DVertexValidation::meTrackPull_[3]
private

Definition at line 338 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPullHighP_

MonitorElement* Primary4DVertexValidation::meTrackPullHighP_[3]
private

Definition at line 467 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPullHighPTot_

MonitorElement* Primary4DVertexValidation::meTrackPullHighPTot_
private

Definition at line 462 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPullLowP_

MonitorElement* Primary4DVertexValidation::meTrackPullLowP_[3]
private

Definition at line 466 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPullLowPTot_

MonitorElement* Primary4DVertexValidation::meTrackPullLowPTot_
private

Definition at line 461 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPullTot_

MonitorElement* Primary4DVertexValidation::meTrackPullTot_
private

Definition at line 336 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackRes_

MonitorElement* Primary4DVertexValidation::meTrackRes_[3]
private

Definition at line 337 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResHighP_

MonitorElement* Primary4DVertexValidation::meTrackResHighP_[3]
private

Definition at line 465 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResHighPTot_

MonitorElement* Primary4DVertexValidation::meTrackResHighPTot_
private

Definition at line 460 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResLowP_

MonitorElement* Primary4DVertexValidation::meTrackResLowP_[3]
private

Definition at line 464 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResLowPTot_

MonitorElement* Primary4DVertexValidation::meTrackResLowPTot_
private

Definition at line 459 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResMass_

MonitorElement* Primary4DVertexValidation::meTrackResMass_[3]
private

Definition at line 339 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResMassPions_

MonitorElement* Primary4DVertexValidation::meTrackResMassPions_[3]
private

Definition at line 471 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResMassProtons_

MonitorElement* Primary4DVertexValidation::meTrackResMassProtons_[3]
private

Definition at line 469 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResMassTrue_

MonitorElement* Primary4DVertexValidation::meTrackResMassTrue_[3]
private

Definition at line 340 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResMassTruePions_

MonitorElement* Primary4DVertexValidation::meTrackResMassTruePions_[3]
private

Definition at line 472 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResMassTrueProtons_

MonitorElement* Primary4DVertexValidation::meTrackResMassTrueProtons_[3]
private

Definition at line 470 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackResTot_

MonitorElement* Primary4DVertexValidation::meTrackResTot_
private

Definition at line 335 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackZposRes_

MonitorElement* Primary4DVertexValidation::meTrackZposRes_[3]
private

Definition at line 343 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackZposResTot_

MonitorElement* Primary4DVertexValidation::meTrackZposResTot_
private

Definition at line 342 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ minProbHeavy_

const double Primary4DVertexValidation::minProbHeavy_
private

Definition at line 289 of file Primary4DVertexValidation.cc.

Referenced by isParticle().

◆ minThrMetPt_

constexpr double Primary4DVertexValidation::minThrMetPt_ = 1.e-3
staticprivate

Definition at line 279 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ minThrSumPt2_

constexpr double Primary4DVertexValidation::minThrSumPt2_ = 1.e-3
staticprivate

Definition at line 278 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ minThrSumPt_

constexpr double Primary4DVertexValidation::minThrSumPt_ = 0.01
staticprivate

Definition at line 277 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ minThrSumPz_

constexpr double Primary4DVertexValidation::minThrSumPz_ = 1.e-4
staticprivate

Definition at line 280 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ minThrSumWnt_

constexpr double Primary4DVertexValidation::minThrSumWnt_ = 0.01
staticprivate

Definition at line 275 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ minThrSumWos_

constexpr double Primary4DVertexValidation::minThrSumWos_ = 0.1
staticprivate

Definition at line 276 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ momentumToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::momentumToken_
private

Definition at line 309 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ mvaH_

constexpr double Primary4DVertexValidation::mvaH_ = 0.8
staticprivate

Definition at line 262 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ mvaL_

constexpr double Primary4DVertexValidation::mvaL_ = 0.5
staticprivate

Definition at line 261 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ mvaTh_

const double Primary4DVertexValidation::mvaTh_
private

Definition at line 291 of file Primary4DVertexValidation.cc.

Referenced by matchReco2Sim().

◆ NOT_MATCHED

constexpr unsigned int Primary4DVertexValidation::NOT_MATCHED = 66666
staticprivate

Definition at line 258 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and matchReco2Sim().

◆ optionalPlots_

bool Primary4DVertexValidation::optionalPlots_
private

Definition at line 286 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ pathLengthToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::pathLengthToken_
private

Definition at line 308 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ pdtToken_

edm::ESGetToken<HepPDT::ParticleDataTable, edm::DefaultRecord> Primary4DVertexValidation::pdtToken_
private

Definition at line 324 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ probKToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::probKToken_
private

Definition at line 322 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ probPiToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::probPiToken_
private

Definition at line 321 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ probPToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::probPToken_
private

Definition at line 323 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ pTcut_

constexpr double Primary4DVertexValidation::pTcut_ = 0.7
staticprivate

Definition at line 269 of file Primary4DVertexValidation.cc.

Referenced by mvaRecSel(), and mvaTPSel().

◆ r2s_

const reco::RecoToSimCollection* Primary4DVertexValidation::r2s_
private

◆ Rec4DVerToken_

edm::EDGetTokenT<edm::View<reco::Vertex> > Primary4DVertexValidation::Rec4DVerToken_
private

Definition at line 305 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ RecBeamSpotToken_

edm::EDGetTokenT<reco::BeamSpot> Primary4DVertexValidation::RecBeamSpotToken_
private

Definition at line 304 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ recoToSimAssociationToken_

edm::EDGetTokenT<reco::RecoToSimCollection> Primary4DVertexValidation::recoToSimAssociationToken_
private

Definition at line 303 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ RecTrackToken_

edm::EDGetTokenT<reco::TrackCollection> Primary4DVertexValidation::RecTrackToken_
private

Definition at line 296 of file Primary4DVertexValidation.cc.

Referenced by Primary4DVertexValidation().

◆ s2r_

const reco::SimToRecoCollection* Primary4DVertexValidation::s2r_
private

Definition at line 294 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and getSimPVs().

◆ selNdof_

constexpr double Primary4DVertexValidation::selNdof_ = 4.
staticprivate

Definition at line 263 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and select().

◆ sigmat0SafePidToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::sigmat0SafePidToken_
private

Definition at line 314 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ simToRecoAssociationToken_

edm::EDGetTokenT<reco::SimToRecoCollection> Primary4DVertexValidation::simToRecoAssociationToken_
private

Definition at line 302 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ simUnit_

constexpr double Primary4DVertexValidation::simUnit_ = 1e9
staticprivate

◆ t0PidToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::t0PidToken_
private

Definition at line 312 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ t0SafePidToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::t0SafePidToken_
private

Definition at line 313 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ timeToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::timeToken_
private

Definition at line 310 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ tmtdToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::tmtdToken_
private

Definition at line 317 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ tofKToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::tofKToken_
private

Definition at line 319 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ tofPiToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::tofPiToken_
private

Definition at line 318 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ tofPToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::tofPToken_
private

Definition at line 320 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ tol_

constexpr double Primary4DVertexValidation::tol_ = 1.e-4
staticprivate

Definition at line 274 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ trackAssocToken_

edm::EDGetTokenT<edm::ValueMap<int> > Primary4DVertexValidation::trackAssocToken_
private

Definition at line 307 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ trackingParticleCollectionToken_

edm::EDGetTokenT<TrackingParticleCollection> Primary4DVertexValidation::trackingParticleCollectionToken_
private

Definition at line 300 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ trackingVertexCollectionToken_

edm::EDGetTokenT<TrackingVertexCollection> Primary4DVertexValidation::trackingVertexCollectionToken_
private

Definition at line 301 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ trackMaxBtlEta_

constexpr double Primary4DVertexValidation::trackMaxBtlEta_ = 1.5
staticprivate

Definition at line 271 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ trackMaxEtlEta_

constexpr double Primary4DVertexValidation::trackMaxEtlEta_ = 3.
staticprivate

Definition at line 273 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ trackMinEtlEta_

constexpr double Primary4DVertexValidation::trackMinEtlEta_ = 1.6
staticprivate

Definition at line 272 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ trackMVAQualToken_

edm::EDGetTokenT<edm::ValueMap<float> > Primary4DVertexValidation::trackMVAQualToken_
private

Definition at line 315 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ trackweightTh_

const double Primary4DVertexValidation::trackweightTh_
private

Definition at line 290 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and matchReco2Sim().

◆ use3dNoTime_

bool Primary4DVertexValidation::use3dNoTime_
private

Definition at line 287 of file Primary4DVertexValidation.cc.

Referenced by analyze().

◆ use_only_charged_tracks_

bool Primary4DVertexValidation::use_only_charged_tracks_
private

Definition at line 284 of file Primary4DVertexValidation.cc.

Referenced by getSimPVs(), and printSimVtxRecoVtxInfo().

◆ vecPileupSummaryInfoToken_

edm::EDGetTokenT<std::vector<PileupSummaryInfo> > Primary4DVertexValidation::vecPileupSummaryInfoToken_
private

Definition at line 298 of file Primary4DVertexValidation.cc.

Referenced by analyze(), and Primary4DVertexValidation().

◆ zWosMatchMax_

constexpr double Primary4DVertexValidation::zWosMatchMax_ = 1.
staticprivate

Definition at line 266 of file Primary4DVertexValidation.cc.

Referenced by matchReco2Sim().