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
GeneralPurposeVertexAnalyzer Class Reference

#include <Alignment/GeneralPurposeVertexAnalyzer/plugins/GeneralPurposeVertexAnalyzer.cc>

Inheritance diagram for GeneralPurposeVertexAnalyzer:
edm::one::EDAnalyzer< edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Classes

struct  IPMonitoring
 

Public Member Functions

 GeneralPurposeVertexAnalyzer (const edm::ParameterSet &)
 
 ~GeneralPurposeVertexAnalyzer () override=default
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::SharedResources >
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const noexcept
 
bool wantsStreamRuns () const noexcept
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Types

using VertexScore = edm::ValueMap< float >
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
template<typename T , typename... Args>
Tbook (const Args &...args) const
 
void pvTracksPlots (const reco::Vertex &v)
 
void vertexPlots (const reco::Vertex &v, const reco::BeamSpot &beamSpot, int i)
 

Private Attributes

const edm::InputTag beamSpotInputTag_
 
const edm::EDGetTokenT< reco::BeamSpotbeamspotToken_
 
TH1D * bsBeamWidthX
 
TH1D * bsBeamWidthY
 
TH1D * bsDxdz
 
TH1D * bsDydz
 
TH1D * bsSigmaZ
 
TH1D * bsType
 
TH1D * bsX
 
TH1D * bsY
 
TH1D * bsZ
 
TH1D * chi2ndf
 
TH1D * chi2prob
 
const edm::ParameterSet conf_
 
TH1D * dxy2
 
IPMonitoring dxy_pt1
 
IPMonitoring dxy_pt10
 
const int dxyBin_
 
const double dxyMax_
 
const double dxyMin_
 
IPMonitoring dz_pt1
 
IPMonitoring dz_pt10
 
const int dzBin_
 
const double dzMax_
 
const double dzMin_
 
bool errorPrinted_
 
TH1D * eta_pt1
 
TH1D * eta_pt10
 
const int etaBin2D_
 
const int etaBin_
 
const double etaMax_
 
const double etaMin_
 
edm::Service< TFileServicefs_
 
TH1D * nans [2]
 
TH1I * nbgvtx
 
TH1D * nbtksinvtx [2]
 
TH1I * nbvtx
 
const int ndof_
 
TH1D * ntracks
 
TH1D * ntracksVsZ [2]
 
TH1D * phi_pt1
 
TH1D * phi_pt10
 
const int phiBin2D_
 
const int phiBin_
 
const double phiMax_
 
const double phiMin_
 
TH1D * score [2]
 
const edm::EDGetTokenT< VertexScorescoreToken_
 
TH1D * sumpt
 
const int tkNoBin_
 
const double tkNoMax_
 
const double tkNoMin_
 
TH1D * trksWeight [2]
 
TH1D * tt [2]
 
TH1D * type [2]
 
const edm::InputTag vertexInputTag_
 
const edm::EDGetTokenT< reco::VertexCollectionvertexToken_
 
const double vposx_
 
const double vposy_
 
TH1D * vtxchi2 [2]
 
TH1D * vtxndf [2]
 
TH1D * vtxprob [2]
 
TH1D * weight
 
TH1D * xDiff [2]
 
TH1D * xerr [2]
 
TH2D * xerrVsTrks [2]
 
TH1D * xrec [2]
 
TH1D * yDiff [2]
 
TH1D * yerr [2]
 
TH2D * yerrVsTrks [2]
 
TH1D * yrec [2]
 
TH1D * zerr [2]
 
TH2D * zerrVsTrks [2]
 
TH1D * zrec [2]
 

Static Private Attributes

static constexpr int cmToUm = 10000
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: monitor vertex properties for alignment purposes, largely copied from DQMOffline/RecoB/plugins/PrimaryVertexMonitor.cc

Definition at line 55 of file GeneralPurposeVertexAnalyzer.cc.

Member Typedef Documentation

◆ VertexScore

Definition at line 90 of file GeneralPurposeVertexAnalyzer.cc.

Constructor & Destructor Documentation

◆ GeneralPurposeVertexAnalyzer()

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

Definition at line 257 of file GeneralPurposeVertexAnalyzer.cc.

References TFileService::kSharedResource.

258  : conf_(iConfig),
259  ndof_(iConfig.getParameter<int>("ndof")),
260  errorPrinted_(false),
261  vertexInputTag_(iConfig.getParameter<edm::InputTag>("vertexLabel")),
262  beamSpotInputTag_(iConfig.getParameter<edm::InputTag>("beamSpotLabel")),
263  vertexToken_(consumes<reco::VertexCollection>(vertexInputTag_)),
264  scoreToken_(consumes<VertexScore>(vertexInputTag_)),
265  beamspotToken_(consumes<reco::BeamSpot>(beamSpotInputTag_)),
266  // to be configured for each year...
267  vposx_(iConfig.getParameter<double>("Xpos")),
268  vposy_(iConfig.getParameter<double>("Ypos")),
269  tkNoBin_(iConfig.getParameter<int>("TkSizeBin")),
270  tkNoMin_(iConfig.getParameter<double>("TkSizeMin")),
271  tkNoMax_(iConfig.getParameter<double>("TkSizeMax")),
272  dxyBin_(iConfig.getParameter<int>("DxyBin")),
273  dxyMin_(iConfig.getParameter<double>("DxyMin")),
274  dxyMax_(iConfig.getParameter<double>("DxyMax")),
275  dzBin_(iConfig.getParameter<int>("DzBin")),
276  dzMin_(iConfig.getParameter<double>("DzMin")),
277  dzMax_(iConfig.getParameter<double>("DzMax")),
278  phiBin_(iConfig.getParameter<int>("PhiBin")),
279  phiBin2D_(iConfig.getParameter<int>("PhiBin2D")),
280  phiMin_(iConfig.getParameter<double>("PhiMin")),
281  phiMax_(iConfig.getParameter<double>("PhiMax")),
282  etaBin_(iConfig.getParameter<int>("EtaBin")),
283  etaBin2D_(iConfig.getParameter<int>("EtaBin2D")),
284  etaMin_(iConfig.getParameter<double>("EtaMin")),
285  etaMax_(iConfig.getParameter<double>("EtaMax")),
286  // histograms
287  nbvtx(nullptr),
288  bsX(nullptr),
289  bsY(nullptr),
290  bsZ(nullptr),
291  bsSigmaZ(nullptr),
292  bsDxdz(nullptr),
293  bsDydz(nullptr),
294  bsBeamWidthX(nullptr),
295  bsBeamWidthY(nullptr),
296  bsType(nullptr),
297  sumpt(nullptr),
298  ntracks(nullptr),
299  weight(nullptr),
300  chi2ndf(nullptr),
301  chi2prob(nullptr),
302  dxy2(nullptr),
303  phi_pt1(nullptr),
304  eta_pt1(nullptr),
305  phi_pt10(nullptr),
306  eta_pt10(nullptr) {
307  usesResource(TFileService::kSharedResource);
308 }
static const std::string kSharedResource
Definition: TFileService.h:76
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
const edm::EDGetTokenT< reco::VertexCollection > vertexToken_
const edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
const edm::EDGetTokenT< VertexScore > scoreToken_

◆ ~GeneralPurposeVertexAnalyzer()

GeneralPurposeVertexAnalyzer::~GeneralPurposeVertexAnalyzer ( )
overridedefault

Member Function Documentation

◆ analyze()

void GeneralPurposeVertexAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 315 of file GeneralPurposeVertexAnalyzer.cc.

References pwdgSkimBPark_cfi::beamSpot, beamSpotInputTag_, beamspotToken_, bsBeamWidthX, bsBeamWidthY, bsDxdz, bsDydz, bsSigmaZ, bsType, bsX, bsY, bsZ, cmToUm, errorPrinted_, mps_fire::i, iEvent, nbgvtx, nbvtx, ndof_, convertSQLiteXML::ok, pvTracksPlots(), score, scoreToken_, mathSSE::sqrt(), findQualityFiles::v, vertexInputTag_, vertexPlots(), vertexToken_, and btvMC_cff::vx.

315  {
316  using namespace edm;
317 
318  const auto &recVtxs = iEvent.getHandle(vertexToken_);
319  const auto &scores = iEvent.getHandle(scoreToken_);
320  const auto &beamSpotHandle = iEvent.getHandle(beamspotToken_);
321  reco::BeamSpot beamSpot = *beamSpotHandle;
322 
323  // check for absent products and simply "return" in that case
324  if (recVtxs.isValid() == false || beamSpotHandle.isValid() == false) {
325  edm::LogWarning("GeneralPurposeVertexAnalyzer")
326  << " Some products not available in the event: VertexCollection " << vertexInputTag_ << " " << recVtxs.isValid()
327  << " BeamSpot " << beamSpotInputTag_ << " " << beamSpotHandle.isValid() << ". Skipping plots for this event";
328  return;
329  }
330 
331  // check upfront that refs to track are (likely) to be valid
332  bool ok{true};
333  for (const auto &v : *recVtxs) {
334  if (v.tracksSize() > 0) {
335  const auto &ref = v.trackRefAt(0);
336  if (ref.isNull() || !ref.isAvailable()) {
337  if (!errorPrinted_) {
338  edm::LogWarning("GeneralPurposeVertexAnalyzer")
339  << "Skipping vertex collection: " << vertexInputTag_
340  << " since likely the track collection the vertex has refs pointing to is missing (at least the first "
341  "TrackBaseRef is null or not available)";
342  } else {
343  errorPrinted_ = true;
344  }
345  ok = false;
346  }
347  }
348  }
349 
350  if (!ok) {
351  return;
352  }
353 
354  nbvtx->Fill(recVtxs->size());
355  int ng = 0;
356  for (auto const &vx : (*recVtxs)) {
357  if (vx.isValid() && !vx.isFake() && vx.ndof() >= ndof_) {
358  ++ng;
359  }
360  }
361  nbgvtx->Fill(ng);
362 
363  if (scores.isValid() && !(*scores).empty()) {
364  auto pvScore = (*scores).get(0);
365  score[1]->Fill(std::sqrt(pvScore));
366  for (unsigned int i = 1; i < (*scores).size(); ++i) {
367  score[0]->Fill(std::sqrt((*scores).get(i)));
368  }
369  }
370 
371  // fill PV tracks MEs (as now, for alignment)
372  if (!recVtxs->empty()) {
373  vertexPlots(recVtxs->front(), beamSpot, 1);
374  pvTracksPlots(recVtxs->front());
375 
376  for (reco::VertexCollection::const_iterator v = recVtxs->begin() + 1; v != recVtxs->end(); ++v) {
377  vertexPlots(*v, beamSpot, 0);
378  }
379  }
380 
381  // Beamline plots:
382  bsX->Fill(beamSpot.x0());
383  bsY->Fill(beamSpot.y0());
384  bsZ->Fill(beamSpot.z0());
385  bsSigmaZ->Fill(beamSpot.sigmaZ());
386  bsDxdz->Fill(beamSpot.dxdz());
387  bsDydz->Fill(beamSpot.dydz());
388  bsBeamWidthX->Fill(beamSpot.BeamWidthX() * cmToUm);
389  bsBeamWidthY->Fill(beamSpot.BeamWidthY() * cmToUm);
390  bsType->Fill(beamSpot.type());
391 }
const edm::EDGetTokenT< reco::VertexCollection > vertexToken_
const edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
const edm::EDGetTokenT< VertexScore > scoreToken_
void vertexPlots(const reco::Vertex &v, const reco::BeamSpot &beamSpot, int i)
int iEvent
Definition: GenABIO.cc:224
void pvTracksPlots(const reco::Vertex &v)
T sqrt(T t)
Definition: SSEVec.h:23
HLT enums.
Log< level::Warning, false > LogWarning

◆ beginJob()

void GeneralPurposeVertexAnalyzer::beginJob ( )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 551 of file GeneralPurposeVertexAnalyzer.cc.

References GeneralPurposeVertexAnalyzer::IPMonitoring::bookIPMonitor(), bsBeamWidthX, bsBeamWidthY, bsDxdz, bsDydz, bsSigmaZ, bsType, bsX, bsY, bsZ, chi2ndf, chi2prob, conf_, dxy2, dxy_pt1, dxy_pt10, dxyBin_, dxyMax_, dxyMin_, dz_pt1, dz_pt10, eta_pt1, eta_pt10, etaBin_, etaMax_, etaMin_, fs_, mps_fire::i, nans, nbgvtx, nbtksinvtx, nbvtx, ntracks, ntracksVsZ, phi_pt1, phi_pt10, phiBin_, phiMax_, phiMin_, GeneralPurposeVertexAnalyzer::IPMonitoring::pTcut_, score, AlCaHLTBitMon_QueryRunRegistry::string, sumpt, tkNoBin_, tkNoMax_, tkNoMin_, trksWeight, GeneralPurposeVertexAnalyzer::IPMonitoring::varname_, vposx_, vposy_, vtxchi2, vtxndf, vtxprob, xDiff, xerr, xerrVsTrks, xrec, yDiff, yerr, yerrVsTrks, yrec, zerr, zerrVsTrks, and zrec.

551  {
552  nbvtx = book<TH1I>("vtxNbr", "Reconstructed Vertices in Event", 80, -0.5, 79.5);
553  nbgvtx = book<TH1I>("goodvtxNbr", "Reconstructed Good Vertices in Event", 80, -0.5, 79.5);
554 
555  nbtksinvtx[0] = book<TH1D>("otherVtxTrksNbr", "Reconstructed Tracks in Vertex (other Vtx)", 40, -0.5, 99.5);
556  ntracksVsZ[0] =
557  book<TProfile>("otherVtxTrksVsZ", "Reconstructed Tracks in Vertex (other Vtx) vs Z", 80, -20., 20., 0., 100., "");
558  ntracksVsZ[0]->SetXTitle("z-bs");
559  ntracksVsZ[0]->SetYTitle("#tracks");
560 
561  score[0] = book<TH1D>("otherVtxScore", "sqrt(score) (other Vtx)", 100, 0., 400.);
562  trksWeight[0] = book<TH1D>("otherVtxTrksWeight", "Total weight of Tracks in Vertex (other Vtx)", 40, 0, 100.);
563  vtxchi2[0] = book<TH1D>("otherVtxChi2", "#chi^{2} (other Vtx)", 100, 0., 200.);
564  vtxndf[0] = book<TH1D>("otherVtxNdf", "ndof (other Vtx)", 100, 0., 200.);
565  vtxprob[0] = book<TH1D>("otherVtxProb", "#chi^{2} probability (other Vtx)", 100, 0., 1.);
566  nans[0] = book<TH1D>("otherVtxNans", "Illegal values for x,y,z,xx,xy,xz,yy,yz,zz (other Vtx)", 9, 0.5, 9.5);
567 
568  nbtksinvtx[1] = book<TH1D>("tagVtxTrksNbr", "Reconstructed Tracks in Vertex (tagged Vtx)", 100, -0.5, 99.5);
569  ntracksVsZ[1] =
570  book<TProfile>("tagVtxTrksVsZ", "Reconstructed Tracks in Vertex (tagged Vtx) vs Z", 80, -20., 20., 0., 100., "");
571  ntracksVsZ[1]->SetXTitle("z-bs");
572  ntracksVsZ[1]->SetYTitle("#tracks");
573 
574  score[1] = book<TH1D>("tagVtxScore", "sqrt(score) (tagged Vtx)", 100, 0., 400.);
575  trksWeight[1] = book<TH1D>("tagVtxTrksWeight", "Total weight of Tracks in Vertex (tagged Vtx)", 100, 0, 100.);
576  vtxchi2[1] = book<TH1D>("tagVtxChi2", "#chi^{2} (tagged Vtx)", 100, 0., 200.);
577  vtxndf[1] = book<TH1D>("tagVtxNdf", "ndof (tagged Vtx)", 100, 0., 200.);
578  vtxprob[1] = book<TH1D>("tagVtxProb", "#chi^{2} probability (tagged Vtx)", 100, 0., 1.);
579  nans[1] = book<TH1D>("tagVtxNans", "Illegal values for x,y,z,xx,xy,xz,yy,yz,zz (tagged Vtx)", 9, 0.5, 9.5);
580 
581  xrec[0] = book<TH1D>("otherPosX", "Position x Coordinate (other Vtx)", 100, vposx_ - 0.1, vposx_ + 0.1);
582  yrec[0] = book<TH1D>("otherPosY", "Position y Coordinate (other Vtx)", 100, vposy_ - 0.1, vposy_ + 0.1);
583  zrec[0] = book<TH1D>("otherPosZ", "Position z Coordinate (other Vtx)", 100, -20., 20.);
584  xDiff[0] = book<TH1D>("otherDiffX", "X distance from BeamSpot (other Vtx)", 100, -500, 500);
585  yDiff[0] = book<TH1D>("otherDiffY", "Y distance from BeamSpot (other Vtx)", 100, -500, 500);
586  xerr[0] = book<TH1D>("otherErrX", "Uncertainty x Coordinate (other Vtx)", 100, 0., 100);
587  yerr[0] = book<TH1D>("otherErrY", "Uncertainty y Coordinate (other Vtx)", 100, 0., 100);
588  zerr[0] = book<TH1D>("otherErrZ", "Uncertainty z Coordinate (other Vtx)", 100, 0., 100);
589  xerrVsTrks[0] = book<TH2D>(
590  "otherErrVsWeightX", "Uncertainty x Coordinate vs. track weight (other Vtx)", 100, 0, 100., 100, 0., 100);
591  yerrVsTrks[0] = book<TH2D>(
592  "otherErrVsWeightY", "Uncertainty y Coordinate vs. track weight (other Vtx)", 100, 0, 100., 100, 0., 100);
593  zerrVsTrks[0] = book<TH2D>(
594  "otherErrVsWeightZ", "Uncertainty z Coordinate vs. track weight (other Vtx)", 100, 0, 100., 100, 0., 100);
595 
596  xrec[1] = book<TH1D>("tagPosX", "Position x Coordinate (tagged Vtx)", 100, vposx_ - 0.1, vposx_ + 0.1);
597  yrec[1] = book<TH1D>("tagPosY", "Position y Coordinate (tagged Vtx)", 100, vposy_ - 0.1, vposy_ + 0.1);
598  zrec[1] = book<TH1D>("tagPosZ", "Position z Coordinate (tagged Vtx)", 100, -20., 20.);
599  xDiff[1] = book<TH1D>("tagDiffX", "X distance from BeamSpot (tagged Vtx)", 100, -500, 500);
600  yDiff[1] = book<TH1D>("tagDiffY", "Y distance from BeamSpot (tagged Vtx)", 100, -500, 500);
601  xerr[1] = book<TH1D>("tagErrX", "Uncertainty x Coordinate (tagged Vtx)", 100, 0., 100);
602  yerr[1] = book<TH1D>("tagErrY", "Uncertainty y Coordinate (tagged Vtx)", 100, 0., 100);
603  zerr[1] = book<TH1D>("tagErrZ", "Uncertainty z Coordinate (tagged Vtx)", 100, 0., 100);
604  xerrVsTrks[1] = book<TH2D>(
605  "tagErrVsWeightX", "Uncertainty x Coordinate vs. track weight (tagged Vtx)", 100, 0, 100., 100, 0., 100);
606  yerrVsTrks[1] = book<TH2D>(
607  "tagErrVsWeightY", "Uncertainty y Coordinate vs. track weight (tagged Vtx)", 100, 0, 100., 100, 0., 100);
608  zerrVsTrks[1] = book<TH2D>(
609  "tagErrVsWeightZ", "Uncertainty z Coordinate vs. track weight (tagged Vtx)", 100, 0, 100., 100, 0., 100);
610 
611  type[0] = book<TH1D>("otherType", "Vertex type (other Vtx)", 3, -0.5, 2.5);
612  type[1] = book<TH1D>("tagType", "Vertex type (tagged Vtx)", 3, -0.5, 2.5);
613 
614  for (int i = 0; i < 2; ++i) {
615  type[i]->GetXaxis()->SetBinLabel(1, "Valid, real");
616  type[i]->GetXaxis()->SetBinLabel(2, "Valid, fake");
617  type[i]->GetXaxis()->SetBinLabel(3, "Invalid");
618  }
619 
620  bsX = book<TH1D>("bsX", "BeamSpot x0", 100, vposx_ - 0.1, vposx_ + 0.1);
621  bsY = book<TH1D>("bsY", "BeamSpot y0", 100, vposy_ - 0.1, vposy_ + 0.1);
622  bsZ = book<TH1D>("bsZ", "BeamSpot z0", 100, -2., 2.);
623  bsSigmaZ = book<TH1D>("bsSigmaZ", "BeamSpot sigmaZ", 100, 0., 10.);
624  bsDxdz = book<TH1D>("bsDxdz", "BeamSpot dxdz", 100, -0.0003, 0.0003);
625  bsDydz = book<TH1D>("bsDydz", "BeamSpot dydz", 100, -0.0003, 0.0003);
626  bsBeamWidthX = book<TH1D>("bsBeamWidthX", "BeamSpot BeamWidthX", 100, 0., 100.);
627  bsBeamWidthY = book<TH1D>("bsBeamWidthY", "BeamSpot BeamWidthY", 100, 0., 100.);
628  bsType = book<TH1D>("bsType", "BeamSpot type", 4, -1.5, 2.5);
629  bsType->GetXaxis()->SetBinLabel(1, "Unknown");
630  bsType->GetXaxis()->SetBinLabel(2, "Fake");
631  bsType->GetXaxis()->SetBinLabel(3, "LHC");
632  bsType->GetXaxis()->SetBinLabel(4, "Tracker");
633 
634  // repeated strings in titles
635  std::string s_1 = "PV Tracks (p_{T} > 1 GeV)";
636  std::string s_10 = "PV Tracks (p_{T} > 10 GeV)";
637 
638  ntracks = book<TH1D>("ntracks", fmt::sprintf("number of %s", s_1).c_str(), tkNoBin_, tkNoMin_, tkNoMax_);
639  ntracks->SetXTitle(fmt::sprintf("Number of %s per Event", s_1).c_str());
640  ntracks->SetYTitle("Number of Events");
641 
642  weight = book<TH1D>("weight", fmt::sprintf("weight of %s", s_1).c_str(), 100, 0., 1.);
643  weight->SetXTitle(fmt::sprintf("weight of %s per Event", s_1).c_str());
644  weight->SetYTitle("Number of Events");
645 
646  sumpt = book<TH1D>("sumpt", fmt::sprintf("#Sum p_{T} of %s", s_1).c_str(), 100, -0.5, 249.5);
647  chi2ndf = book<TH1D>("chi2ndf", fmt::sprintf("%s #chi^{2}/ndof", s_1).c_str(), 100, 0., 20.);
648  chi2prob = book<TH1D>("chi2prob", fmt::sprintf("%s #chi^{2} probability", s_1).c_str(), 100, 0., 1.);
649 
650  dxy2 = book<TH1D>("dxyzoom", fmt::sprintf("%s d_{xy} (#mum)", s_1).c_str(), dxyBin_, dxyMin_ / 5., dxyMax_ / 5.);
651 
652  phi_pt1 =
653  book<TH1D>("phi_pt1", fmt::sprintf("%s #phi; PV tracks #phi;#tracks", s_1).c_str(), phiBin_, phiMin_, phiMax_);
654  eta_pt1 =
655  book<TH1D>("eta_pt1", fmt::sprintf("%s #eta; PV tracks #eta;#tracks", s_1).c_str(), etaBin_, etaMin_, etaMax_);
656  phi_pt10 =
657  book<TH1D>("phi_pt10", fmt::sprintf("%s #phi; PV tracks #phi;#tracks", s_10).c_str(), phiBin_, phiMin_, phiMax_);
658  eta_pt10 =
659  book<TH1D>("eta_pt10", fmt::sprintf("%s #phi; PV tracks #eta;#tracks", s_10).c_str(), etaBin_, etaMin_, etaMax_);
660 
661  // initialize and book the monitors;
662  dxy_pt1.varname_ = "xy";
663  dxy_pt1.pTcut_ = 1.f;
665 
666  dxy_pt10.varname_ = "xy";
667  dxy_pt10.pTcut_ = 10.f;
669 
670  dz_pt1.varname_ = "z";
671  dz_pt1.pTcut_ = 1.f;
673 
674  dz_pt10.varname_ = "z";
675  dz_pt10.pTcut_ = 10.f;
677 }
void bookIPMonitor(const edm::ParameterSet &, const edm::Service< TFileService > fs)
Definition: weight.py:1

◆ book()

template<typename T , typename... Args>
T * GeneralPurposeVertexAnalyzer::book ( const Args &...  args) const
private

Definition at line 545 of file GeneralPurposeVertexAnalyzer.cc.

References writedatasetfile::args, fs_, TFileService::make(), and submitPVValidationJobs::t.

545  {
546  T *t = fs_->make<T>(args...);
547  return t;
548 }
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
long double T

◆ fillDescriptions()

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

Definition at line 680 of file GeneralPurposeVertexAnalyzer.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and M_PI.

680  {
682  desc.add<int>("ndof", 4);
683  desc.add<edm::InputTag>("vertexLabel", edm::InputTag("offlinePrimaryVertices"));
684  desc.add<edm::InputTag>("beamSpotLabel", edm::InputTag("offlineBeamSpot"));
685  desc.add<double>("Xpos", 0.1);
686  desc.add<double>("Ypos", 0.0);
687  desc.add<int>("TkSizeBin", 100);
688  desc.add<double>("TkSizeMin", 499.5);
689  desc.add<double>("TkSizeMax", -0.5);
690  desc.add<int>("DxyBin", 100);
691  desc.add<double>("DxyMin", -2000.);
692  desc.add<double>("DxyMax", 2000.);
693  desc.add<int>("DzBin", 100);
694  desc.add<double>("DzMin", -2000.0);
695  desc.add<double>("DzMax", 2000.0);
696  desc.add<int>("PhiBin", 32);
697  desc.add<int>("PhiBin2D", 12);
698  desc.add<double>("PhiMin", -M_PI);
699  desc.add<double>("PhiMax", M_PI);
700  desc.add<int>("EtaBin", 26);
701  desc.add<int>("EtaBin2D", 8);
702  desc.add<double>("EtaMin", -2.7);
703  desc.add<double>("EtaMax", 2.7);
704  descriptions.addWithDefaultLabel(desc);
705 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
#define M_PI

◆ pvTracksPlots()

void GeneralPurposeVertexAnalyzer::pvTracksPlots ( const reco::Vertex v)
private

Definition at line 393 of file GeneralPurposeVertexAnalyzer.cc.

References chi2ndf, chi2prob, cmToUm, dxy2, dxy_pt1, dxy_pt10, dz_pt1, dz_pt10, PVValHelper::eta, eta_pt1, eta_pt10, f, reco::TrackBase::highPurity, GeneralPurposeVertexAnalyzer::IPMonitoring::IP_, GeneralPurposeVertexAnalyzer::IPMonitoring::IPErr_, GeneralPurposeVertexAnalyzer::IPMonitoring::IPErrVsEta_, GeneralPurposeVertexAnalyzer::IPMonitoring::IPErrVsEtaVsPhi_, GeneralPurposeVertexAnalyzer::IPMonitoring::IPErrVsPhi_, GeneralPurposeVertexAnalyzer::IPMonitoring::IPVsEta_, GeneralPurposeVertexAnalyzer::IPMonitoring::IPVsEtaVsPhi_, GeneralPurposeVertexAnalyzer::IPMonitoring::IPVsPhi_, ntracks, phi, phi_pt1, phi_pt10, DiDispStaMuonMonitor_cfi::pt, HLT_2024v14_cff::pt2, sumpt, submitPVValidationJobs::t, findQualityFiles::v, and w().

Referenced by analyze().

393  {
394  if (!v.isValid())
395  return;
396  if (v.isFake())
397  return;
398 
399  if (v.tracksSize() == 0) {
400  ntracks->Fill(0);
401  return;
402  }
403 
404  const math::XYZPoint myVertex(v.position().x(), v.position().y(), v.position().z());
405 
406  float sumPT = 0.;
407  for (const auto &t : v.tracks()) {
408  const bool isHighPurity = t->quality(reco::TrackBase::highPurity);
409  if (!isHighPurity) {
410  continue;
411  }
412 
413  const float pt = t->pt();
414  if (pt < 1.f) {
415  continue;
416  }
417 
418  const float pt2 = pt * pt;
419  const float eta = t->eta();
420  const float phi = t->phi();
421  const float w = v.trackWeight(t);
422  const float chi2NDF = t->normalizedChi2();
423  const float chi2Prob = TMath::Prob(t->chi2(), static_cast<int>(t->ndof()));
424  const float Dxy = t->dxy(myVertex) * cmToUm;
425  const float Dz = t->dz(myVertex) * cmToUm;
426  const float DxyErr = t->dxyError() * cmToUm;
427  const float DzErr = t->dzError() * cmToUm;
428 
429  sumPT += pt2;
430 
431  weight->Fill(w);
432  chi2ndf->Fill(chi2NDF);
433  chi2prob->Fill(chi2Prob);
434  dxy2->Fill(Dxy);
435  phi_pt1->Fill(phi);
436  eta_pt1->Fill(eta);
437 
438  dxy_pt1.IP_->Fill(Dxy);
439  dxy_pt1.IPVsPhi_->Fill(phi, Dxy);
440  dxy_pt1.IPVsEta_->Fill(eta, Dxy);
441  dxy_pt1.IPVsEtaVsPhi_->Fill(eta, phi, Dxy);
442 
443  dxy_pt1.IPErr_->Fill(DxyErr);
444  dxy_pt1.IPErrVsPhi_->Fill(phi, DxyErr);
445  dxy_pt1.IPErrVsEta_->Fill(eta, DxyErr);
446  dxy_pt1.IPErrVsEtaVsPhi_->Fill(eta, phi, DxyErr);
447 
448  dz_pt1.IP_->Fill(Dz);
449  dz_pt1.IPVsPhi_->Fill(phi, Dz);
450  dz_pt1.IPVsEta_->Fill(eta, Dz);
451  dz_pt1.IPVsEtaVsPhi_->Fill(eta, phi, Dz);
452 
453  dz_pt1.IPErr_->Fill(DzErr);
454  dz_pt1.IPErrVsPhi_->Fill(phi, DzErr);
455  dz_pt1.IPErrVsEta_->Fill(eta, DzErr);
456  dz_pt1.IPErrVsEtaVsPhi_->Fill(eta, phi, DzErr);
457 
458  if (pt >= 10.f) {
459  phi_pt10->Fill(phi);
460  eta_pt10->Fill(eta);
461 
462  dxy_pt10.IP_->Fill(Dxy);
463  dxy_pt10.IPVsPhi_->Fill(phi, Dxy);
464  dxy_pt10.IPVsEta_->Fill(eta, Dxy);
465  dxy_pt10.IPVsEtaVsPhi_->Fill(eta, phi, Dxy);
466 
467  dxy_pt10.IPErr_->Fill(DxyErr);
468  dxy_pt10.IPErrVsPhi_->Fill(phi, DxyErr);
469  dxy_pt10.IPErrVsEta_->Fill(eta, DxyErr);
470  dxy_pt10.IPErrVsEtaVsPhi_->Fill(eta, phi, DxyErr);
471 
472  dz_pt10.IP_->Fill(Dz);
473  dz_pt10.IPVsPhi_->Fill(phi, Dz);
474  dz_pt10.IPVsEta_->Fill(eta, Dz);
475  dz_pt10.IPVsEtaVsPhi_->Fill(eta, phi, Dz);
476 
477  dz_pt10.IPErr_->Fill(DzErr);
478  dz_pt10.IPErrVsPhi_->Fill(phi, DzErr);
479  dz_pt10.IPErrVsEta_->Fill(eta, DzErr);
480  dz_pt10.IPErrVsEtaVsPhi_->Fill(eta, phi, DzErr);
481  }
482  }
483 
484  ntracks->Fill(static_cast<float>(v.tracks().size()));
485  sumpt->Fill(sumPT);
486 }
T w() const
Definition: weight.py:1
double f[11][100]
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12

◆ vertexPlots()

void GeneralPurposeVertexAnalyzer::vertexPlots ( const reco::Vertex v,
const reco::BeamSpot beamSpot,
int  i 
)
private

Definition at line 488 of file GeneralPurposeVertexAnalyzer.cc.

References pwdgSkimBPark_cfi::beamSpot, ChiSquaredProbability(), cmToUm, HcalObjRepresent::Fill(), mps_fire::i, edm::isNotFinite(), dqmiolumiharvest::j, dqmdumpme::k, nans, nbtksinvtx, ntracksVsZ, submitPVValidationJobs::t, trksWeight, findQualityFiles::v, vtxchi2, vtxndf, vtxprob, xDiff, xerr, xerrVsTrks, xrec, yDiff, yerr, yerrVsTrks, yrec, zerr, zerrVsTrks, and zrec.

Referenced by analyze().

488  {
489  if (i < 0 || i > 1)
490  return;
491  if (!v.isValid())
492  type[i]->Fill(2.);
493  else if (v.isFake())
494  type[i]->Fill(1.);
495  else
496  type[i]->Fill(0.);
497 
498  if (v.isValid() && !v.isFake()) {
499  float weight = 0;
500  for (reco::Vertex::trackRef_iterator t = v.tracks_begin(); t != v.tracks_end(); t++)
501  weight += v.trackWeight(*t);
502  trksWeight[i]->Fill(weight);
503  nbtksinvtx[i]->Fill(v.tracksSize());
504  ntracksVsZ[i]->Fill(v.position().z() - beamSpot.z0(), v.tracksSize());
505 
506  vtxchi2[i]->Fill(v.chi2());
507  vtxndf[i]->Fill(v.ndof());
508  vtxprob[i]->Fill(ChiSquaredProbability(v.chi2(), v.ndof()));
509 
510  xrec[i]->Fill(v.position().x());
511  yrec[i]->Fill(v.position().y());
512  zrec[i]->Fill(v.position().z());
513 
514  float xb = beamSpot.x0() + beamSpot.dxdz() * (v.position().z() - beamSpot.z0());
515  float yb = beamSpot.y0() + beamSpot.dydz() * (v.position().z() - beamSpot.z0());
516  xDiff[i]->Fill((v.position().x() - xb) * cmToUm);
517  yDiff[i]->Fill((v.position().y() - yb) * cmToUm);
518 
519  xerr[i]->Fill(v.xError() * cmToUm);
520  yerr[i]->Fill(v.yError() * cmToUm);
521  zerr[i]->Fill(v.zError() * cmToUm);
522  xerrVsTrks[i]->Fill(weight, v.xError() * cmToUm);
523  yerrVsTrks[i]->Fill(weight, v.yError() * cmToUm);
524  zerrVsTrks[i]->Fill(weight, v.zError() * cmToUm);
525 
526  nans[i]->Fill(1., edm::isNotFinite(v.position().x()) * 1.);
527  nans[i]->Fill(2., edm::isNotFinite(v.position().y()) * 1.);
528  nans[i]->Fill(3., edm::isNotFinite(v.position().z()) * 1.);
529 
530  int index = 3;
531  for (int k = 0; k != 3; k++) {
532  for (int j = k; j != 3; j++) {
533  index++;
534  nans[i]->Fill(index * 1., edm::isNotFinite(v.covariance(k, j)) * 1.);
535  // in addition, diagonal element must be positive
536  if (j == k && v.covariance(k, j) < 0) {
537  nans[i]->Fill(index * 1., 1.);
538  }
539  }
540  }
541  }
542 }
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
Definition: weight.py:1
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
float ChiSquaredProbability(double chiSquared, double nrDOF)
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
Definition: Vertex.h:38

Member Data Documentation

◆ beamSpotInputTag_

const edm::InputTag GeneralPurposeVertexAnalyzer::beamSpotInputTag_
private

Definition at line 88 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ beamspotToken_

const edm::EDGetTokenT<reco::BeamSpot> GeneralPurposeVertexAnalyzer::beamspotToken_
private

Definition at line 92 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ bsBeamWidthX

TH1D * GeneralPurposeVertexAnalyzer::bsBeamWidthX
private

Definition at line 129 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsBeamWidthY

TH1D * GeneralPurposeVertexAnalyzer::bsBeamWidthY
private

Definition at line 129 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsDxdz

TH1D * GeneralPurposeVertexAnalyzer::bsDxdz
private

Definition at line 129 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsDydz

TH1D * GeneralPurposeVertexAnalyzer::bsDydz
private

Definition at line 129 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsSigmaZ

TH1D * GeneralPurposeVertexAnalyzer::bsSigmaZ
private

Definition at line 129 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsType

TH1D * GeneralPurposeVertexAnalyzer::bsType
private

Definition at line 129 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsX

TH1D* GeneralPurposeVertexAnalyzer::bsX
private

Definition at line 129 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsY

TH1D * GeneralPurposeVertexAnalyzer::bsY
private

Definition at line 129 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsZ

TH1D * GeneralPurposeVertexAnalyzer::bsZ
private

Definition at line 129 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ chi2ndf

TH1D * GeneralPurposeVertexAnalyzer::chi2ndf
private

Definition at line 131 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ chi2prob

TH1D * GeneralPurposeVertexAnalyzer::chi2prob
private

Definition at line 131 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ cmToUm

constexpr int GeneralPurposeVertexAnalyzer::cmToUm = 10000
staticprivate

Definition at line 94 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), pvTracksPlots(), and vertexPlots().

◆ conf_

const edm::ParameterSet GeneralPurposeVertexAnalyzer::conf_
private

Definition at line 84 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ dxy2

TH1D* GeneralPurposeVertexAnalyzer::dxy2
private

Definition at line 132 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dxy_pt1

IPMonitoring GeneralPurposeVertexAnalyzer::dxy_pt1
private

Definition at line 137 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dxy_pt10

IPMonitoring GeneralPurposeVertexAnalyzer::dxy_pt10
private

Definition at line 138 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dxyBin_

const int GeneralPurposeVertexAnalyzer::dxyBin_
private

Definition at line 102 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ dxyMax_

const double GeneralPurposeVertexAnalyzer::dxyMax_
private

Definition at line 104 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ dxyMin_

const double GeneralPurposeVertexAnalyzer::dxyMin_
private

Definition at line 103 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ dz_pt1

IPMonitoring GeneralPurposeVertexAnalyzer::dz_pt1
private

Definition at line 140 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dz_pt10

IPMonitoring GeneralPurposeVertexAnalyzer::dz_pt10
private

Definition at line 141 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dzBin_

const int GeneralPurposeVertexAnalyzer::dzBin_
private

Definition at line 106 of file GeneralPurposeVertexAnalyzer.cc.

◆ dzMax_

const double GeneralPurposeVertexAnalyzer::dzMax_
private

Definition at line 108 of file GeneralPurposeVertexAnalyzer.cc.

◆ dzMin_

const double GeneralPurposeVertexAnalyzer::dzMin_
private

Definition at line 107 of file GeneralPurposeVertexAnalyzer.cc.

◆ errorPrinted_

bool GeneralPurposeVertexAnalyzer::errorPrinted_
private

Definition at line 86 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ eta_pt1

TH1D * GeneralPurposeVertexAnalyzer::eta_pt1
private

Definition at line 133 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ eta_pt10

TH1D * GeneralPurposeVertexAnalyzer::eta_pt10
private

Definition at line 134 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ etaBin2D_

const int GeneralPurposeVertexAnalyzer::etaBin2D_
private

Definition at line 116 of file GeneralPurposeVertexAnalyzer.cc.

◆ etaBin_

const int GeneralPurposeVertexAnalyzer::etaBin_
private

Definition at line 115 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ etaMax_

const double GeneralPurposeVertexAnalyzer::etaMax_
private

Definition at line 118 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ etaMin_

const double GeneralPurposeVertexAnalyzer::etaMin_
private

Definition at line 117 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ fs_

edm::Service<TFileService> GeneralPurposeVertexAnalyzer::fs_
private

Definition at line 71 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and book().

◆ nans

TH1D * GeneralPurposeVertexAnalyzer::nans[2]
private

Definition at line 127 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ nbgvtx

TH1I * GeneralPurposeVertexAnalyzer::nbgvtx
private

Definition at line 121 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ nbtksinvtx

TH1D* GeneralPurposeVertexAnalyzer::nbtksinvtx[2]
private

Definition at line 122 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ nbvtx

TH1I* GeneralPurposeVertexAnalyzer::nbvtx
private

Definition at line 121 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ ndof_

const int GeneralPurposeVertexAnalyzer::ndof_
private

Definition at line 85 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ ntracks

TH1D * GeneralPurposeVertexAnalyzer::ntracks
private

Definition at line 131 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ ntracksVsZ

TH1D* GeneralPurposeVertexAnalyzer::ntracksVsZ[2]
private

Definition at line 126 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ phi_pt1

TH1D* GeneralPurposeVertexAnalyzer::phi_pt1
private

Definition at line 133 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ phi_pt10

TH1D* GeneralPurposeVertexAnalyzer::phi_pt10
private

Definition at line 134 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ phiBin2D_

const int GeneralPurposeVertexAnalyzer::phiBin2D_
private

Definition at line 111 of file GeneralPurposeVertexAnalyzer.cc.

◆ phiBin_

const int GeneralPurposeVertexAnalyzer::phiBin_
private

Definition at line 110 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ phiMax_

const double GeneralPurposeVertexAnalyzer::phiMax_
private

Definition at line 113 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ phiMin_

const double GeneralPurposeVertexAnalyzer::phiMin_
private

Definition at line 112 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ score

TH1D * GeneralPurposeVertexAnalyzer::score[2]
private

Definition at line 122 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ scoreToken_

const edm::EDGetTokenT<VertexScore> GeneralPurposeVertexAnalyzer::scoreToken_
private

Definition at line 91 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ sumpt

TH1D* GeneralPurposeVertexAnalyzer::sumpt
private

◆ tkNoBin_

const int GeneralPurposeVertexAnalyzer::tkNoBin_
private

Definition at line 98 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ tkNoMax_

const double GeneralPurposeVertexAnalyzer::tkNoMax_
private

Definition at line 100 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ tkNoMin_

const double GeneralPurposeVertexAnalyzer::tkNoMin_
private

Definition at line 99 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ trksWeight

TH1D * GeneralPurposeVertexAnalyzer::trksWeight[2]
private

Definition at line 122 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ tt

TH1D* GeneralPurposeVertexAnalyzer::tt[2]
private

Definition at line 123 of file GeneralPurposeVertexAnalyzer.cc.

◆ type

TH1D* GeneralPurposeVertexAnalyzer::type[2]
private

◆ vertexInputTag_

const edm::InputTag GeneralPurposeVertexAnalyzer::vertexInputTag_
private

Definition at line 88 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ vertexToken_

const edm::EDGetTokenT<reco::VertexCollection> GeneralPurposeVertexAnalyzer::vertexToken_
private

Definition at line 89 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ vposx_

const double GeneralPurposeVertexAnalyzer::vposx_
private

Definition at line 96 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ vposy_

const double GeneralPurposeVertexAnalyzer::vposy_
private

Definition at line 97 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ vtxchi2

TH1D* GeneralPurposeVertexAnalyzer::vtxchi2[2]
private

Definition at line 127 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ vtxndf

TH1D * GeneralPurposeVertexAnalyzer::vtxndf[2]
private

Definition at line 127 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ vtxprob

TH1D * GeneralPurposeVertexAnalyzer::vtxprob[2]
private

Definition at line 127 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ weight

TH1D * GeneralPurposeVertexAnalyzer::weight
private

◆ xDiff

TH1D * GeneralPurposeVertexAnalyzer::xDiff[2]
private

Definition at line 124 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ xerr

TH1D * GeneralPurposeVertexAnalyzer::xerr[2]
private

◆ xerrVsTrks

TH2D* GeneralPurposeVertexAnalyzer::xerrVsTrks[2]
private

Definition at line 125 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ xrec

TH1D* GeneralPurposeVertexAnalyzer::xrec[2]
private

Definition at line 124 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ yDiff

TH1D * GeneralPurposeVertexAnalyzer::yDiff[2]
private

Definition at line 124 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ yerr

TH1D * GeneralPurposeVertexAnalyzer::yerr[2]
private

◆ yerrVsTrks

TH2D * GeneralPurposeVertexAnalyzer::yerrVsTrks[2]
private

Definition at line 125 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ yrec

TH1D * GeneralPurposeVertexAnalyzer::yrec[2]
private

Definition at line 124 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ zerr

TH1D * GeneralPurposeVertexAnalyzer::zerr[2]
private

Definition at line 124 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ zerrVsTrks

TH2D * GeneralPurposeVertexAnalyzer::zerrVsTrks[2]
private

Definition at line 125 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ zrec

TH1D * GeneralPurposeVertexAnalyzer::zrec[2]
private

Definition at line 124 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().