CMS 3D CMS Logo

List of all members | 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

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 final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const 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
 
bool wantsStreamRuns () const
 
 ~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
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > 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
 
bool registeredToConsumeMany (TypeID const &, 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::ESRecordsToProxyIndices 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
 
TH1D * dxy
 
TH1D * dxy2
 
const int dxyBin_
 
TH1D * dxyErr
 
const double dxyMax_
 
const double dxyMin_
 
TProfile * dxyVsEta_pt1
 
TProfile * dxyVsEta_pt10
 
TProfile2D * dxyVsEtaVsPhi_pt1
 
TProfile2D * dxyVsEtaVsPhi_pt10
 
TProfile * dxyVsPhi_pt1
 
TProfile * dxyVsPhi_pt10
 
TH1D * dz
 
const int dzBin_
 
TH1D * dzErr
 
const double dzMax_
 
const double dzMin_
 
TProfile * dzVsEta_pt1
 
TProfile * dzVsEta_pt10
 
TProfile2D * dzVsEtaVsPhi_pt1
 
TProfile2D * dzVsEtaVsPhi_pt10
 
TProfile * dzVsPhi_pt1
 
TProfile * dzVsPhi_pt10
 
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 ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
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 78 of file GeneralPurposeVertexAnalyzer.cc.

Constructor & Destructor Documentation

◆ GeneralPurposeVertexAnalyzer()

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

Definition at line 134 of file GeneralPurposeVertexAnalyzer.cc.

References TFileService::kSharedResource.

135  : ndof_(iConfig.getParameter<int>("ndof")),
136  errorPrinted_(false),
137  vertexInputTag_(iConfig.getParameter<edm::InputTag>("vertexLabel")),
138  beamSpotInputTag_(iConfig.getParameter<edm::InputTag>("beamSpotLabel")),
139  vertexToken_(consumes<reco::VertexCollection>(vertexInputTag_)),
140  scoreToken_(consumes<VertexScore>(vertexInputTag_)),
141  beamspotToken_(consumes<reco::BeamSpot>(beamSpotInputTag_)),
142  // to be configured for each year...
143  vposx_(iConfig.getParameter<double>("Xpos")),
144  vposy_(iConfig.getParameter<double>("Ypos")),
145  tkNoBin_(iConfig.getParameter<int>("TkSizeBin")),
146  tkNoMin_(iConfig.getParameter<double>("TkSizeMin")),
147  tkNoMax_(iConfig.getParameter<double>("TkSizeMax")),
148  dxyBin_(iConfig.getParameter<int>("DxyBin")),
149  dxyMin_(iConfig.getParameter<double>("DxyMin")),
150  dxyMax_(iConfig.getParameter<double>("DxyMax")),
151  dzBin_(iConfig.getParameter<int>("DzBin")),
152  dzMin_(iConfig.getParameter<double>("DzMin")),
153  dzMax_(iConfig.getParameter<double>("DzMax")),
154  phiBin_(iConfig.getParameter<int>("PhiBin")),
155  phiBin2D_(iConfig.getParameter<int>("PhiBin2D")),
156  phiMin_(iConfig.getParameter<double>("PhiMin")),
157  phiMax_(iConfig.getParameter<double>("PhiMax")),
158  etaBin_(iConfig.getParameter<int>("EtaBin")),
159  etaBin2D_(iConfig.getParameter<int>("EtaBin2D")),
160  etaMin_(iConfig.getParameter<double>("EtaMin")),
161  etaMax_(iConfig.getParameter<double>("EtaMax")),
162  // histograms
163  nbvtx(nullptr),
164  bsX(nullptr),
165  bsY(nullptr),
166  bsZ(nullptr),
167  bsSigmaZ(nullptr),
168  bsDxdz(nullptr),
169  bsDydz(nullptr),
170  bsBeamWidthX(nullptr),
171  bsBeamWidthY(nullptr),
172  bsType(nullptr),
173  sumpt(nullptr),
174  ntracks(nullptr),
175  weight(nullptr),
176  chi2ndf(nullptr),
177  chi2prob(nullptr),
178  dxy(nullptr),
179  dxy2(nullptr),
180  dz(nullptr),
181  dxyErr(nullptr),
182  dzErr(nullptr),
183  phi_pt1(nullptr),
184  eta_pt1(nullptr),
185  phi_pt10(nullptr),
186  eta_pt10(nullptr),
187  dxyVsPhi_pt1(nullptr),
188  dzVsPhi_pt1(nullptr),
189  dxyVsEta_pt1(nullptr),
190  dzVsEta_pt1(nullptr),
191  dxyVsEtaVsPhi_pt1(nullptr),
192  dzVsEtaVsPhi_pt1(nullptr),
193  dxyVsPhi_pt10(nullptr),
194  dzVsPhi_pt10(nullptr),
195  dxyVsEta_pt10(nullptr),
196  dzVsEta_pt10(nullptr),
197  dxyVsEtaVsPhi_pt10(nullptr),
198  dzVsEtaVsPhi_pt10(nullptr) {
199  usesResource(TFileService::kSharedResource);
200 }
static const std::string kSharedResource
Definition: TFileService.h:76
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
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 207 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(), and vertexToken_.

207  {
208  using namespace edm;
209 
210  const auto &recVtxs = iEvent.getHandle(vertexToken_);
211  const auto &scores = iEvent.getHandle(scoreToken_);
212  const auto &beamSpotHandle = iEvent.getHandle(beamspotToken_);
213  reco::BeamSpot beamSpot = *beamSpotHandle;
214 
215  // check for absent products and simply "return" in that case
216  if (recVtxs.isValid() == false || beamSpotHandle.isValid() == false) {
217  edm::LogWarning("GeneralPurposeVertexAnalyzer")
218  << " Some products not available in the event: VertexCollection " << vertexInputTag_ << " " << recVtxs.isValid()
219  << " BeamSpot " << beamSpotInputTag_ << " " << beamSpotHandle.isValid() << ". Skipping plots for this event";
220  return;
221  }
222 
223  // check upfront that refs to track are (likely) to be valid
224  bool ok{true};
225  for (const auto &v : *recVtxs) {
226  if (v.tracksSize() > 0) {
227  const auto &ref = v.trackRefAt(0);
228  if (ref.isNull() || !ref.isAvailable()) {
229  if (!errorPrinted_) {
230  edm::LogWarning("GeneralPurposeVertexAnalyzer")
231  << "Skipping vertex collection: " << vertexInputTag_
232  << " since likely the track collection the vertex has refs pointing to is missing (at least the first "
233  "TrackBaseRef is null or not available)";
234  } else {
235  errorPrinted_ = true;
236  }
237  ok = false;
238  }
239  }
240  }
241 
242  if (!ok) {
243  return;
244  }
245 
246  nbvtx->Fill(recVtxs->size());
247  int ng = 0;
248  for (auto const &vx : (*recVtxs)) {
249  if (vx.isValid() && !vx.isFake() && vx.ndof() >= ndof_) {
250  ++ng;
251  }
252  }
253  nbgvtx->Fill(ng);
254 
255  if (scores.isValid() && !(*scores).empty()) {
256  auto pvScore = (*scores).get(0);
257  score[1]->Fill(std::sqrt(pvScore));
258  for (unsigned int i = 1; i < (*scores).size(); ++i) {
259  score[0]->Fill(std::sqrt((*scores).get(i)));
260  }
261  }
262 
263  // fill PV tracks MEs (as now, for alignment)
264  if (!recVtxs->empty()) {
265  vertexPlots(recVtxs->front(), beamSpot, 1);
266  pvTracksPlots(recVtxs->front());
267 
268  for (reco::VertexCollection::const_iterator v = recVtxs->begin() + 1; v != recVtxs->end(); ++v) {
269  vertexPlots(*v, beamSpot, 0);
270  }
271  }
272 
273  // Beamline plots:
274  bsX->Fill(beamSpot.x0());
275  bsY->Fill(beamSpot.y0());
276  bsZ->Fill(beamSpot.z0());
277  bsSigmaZ->Fill(beamSpot.sigmaZ());
278  bsDxdz->Fill(beamSpot.dxdz());
279  bsDydz->Fill(beamSpot.dydz());
280  bsBeamWidthX->Fill(beamSpot.BeamWidthX() * cmToUm);
281  bsBeamWidthY->Fill(beamSpot.BeamWidthY() * cmToUm);
282  bsType->Fill(beamSpot.type());
283 }
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:19
HLT enums.
Log< level::Warning, false > LogWarning

◆ beginJob()

void GeneralPurposeVertexAnalyzer::beginJob ( )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 419 of file GeneralPurposeVertexAnalyzer.cc.

References bsBeamWidthX, bsBeamWidthY, bsDxdz, bsDydz, bsSigmaZ, bsType, bsX, bsY, bsZ, chi2ndf, chi2prob, dxy, dxy2, dxyBin_, dxyErr, dxyMax_, dxyMin_, dxyVsEta_pt1, dxyVsEta_pt10, dxyVsEtaVsPhi_pt1, dxyVsEtaVsPhi_pt10, dxyVsPhi_pt1, dxyVsPhi_pt10, dz, dzBin_, dzErr, dzMax_, dzMin_, dzVsEta_pt1, dzVsEta_pt10, dzVsEtaVsPhi_pt1, dzVsEtaVsPhi_pt10, dzVsPhi_pt1, dzVsPhi_pt10, eta_pt1, eta_pt10, etaBin2D_, etaBin_, etaMax_, etaMin_, mps_fire::i, nans, nbgvtx, nbtksinvtx, nbvtx, ntracks, ntracksVsZ, phi_pt1, phi_pt10, phiBin2D_, phiBin_, phiMax_, phiMin_, score, AlCaHLTBitMon_QueryRunRegistry::string, sumpt, tkNoBin_, tkNoMax_, tkNoMin_, trksWeight, vposx_, vposy_, vtxchi2, vtxndf, vtxprob, xDiff, xerr, xerrVsTrks, xrec, yDiff, yerr, yerrVsTrks, yrec, zerr, zerrVsTrks, and zrec.

419  {
420  nbvtx = book<TH1I>("vtxNbr", "Reconstructed Vertices in Event", 80, -0.5, 79.5);
421  nbgvtx = book<TH1I>("goodvtxNbr", "Reconstructed Good Vertices in Event", 80, -0.5, 79.5);
422 
423  nbtksinvtx[0] = book<TH1D>("otherVtxTrksNbr", "Reconstructed Tracks in Vertex (other Vtx)", 40, -0.5, 99.5);
424  ntracksVsZ[0] =
425  book<TProfile>("otherVtxTrksVsZ", "Reconstructed Tracks in Vertex (other Vtx) vs Z", 80, -20., 20., 0., 100., "");
426  ntracksVsZ[0]->SetXTitle("z-bs");
427  ntracksVsZ[0]->SetYTitle("#tracks");
428 
429  score[0] = book<TH1D>("otherVtxScore", "sqrt(score) (other Vtx)", 100, 0., 400.);
430  trksWeight[0] = book<TH1D>("otherVtxTrksWeight", "Total weight of Tracks in Vertex (other Vtx)", 40, 0, 100.);
431  vtxchi2[0] = book<TH1D>("otherVtxChi2", "#chi^{2} (other Vtx)", 100, 0., 200.);
432  vtxndf[0] = book<TH1D>("otherVtxNdf", "ndof (other Vtx)", 100, 0., 200.);
433  vtxprob[0] = book<TH1D>("otherVtxProb", "#chi^{2} probability (other Vtx)", 100, 0., 1.);
434  nans[0] = book<TH1D>("otherVtxNans", "Illegal values for x,y,z,xx,xy,xz,yy,yz,zz (other Vtx)", 9, 0.5, 9.5);
435 
436  nbtksinvtx[1] = book<TH1D>("tagVtxTrksNbr", "Reconstructed Tracks in Vertex (tagged Vtx)", 100, -0.5, 99.5);
437  ntracksVsZ[1] =
438  book<TProfile>("tagVtxTrksVsZ", "Reconstructed Tracks in Vertex (tagged Vtx) vs Z", 80, -20., 20., 0., 100., "");
439  ntracksVsZ[1]->SetXTitle("z-bs");
440  ntracksVsZ[1]->SetYTitle("#tracks");
441 
442  score[1] = book<TH1D>("tagVtxScore", "sqrt(score) (tagged Vtx)", 100, 0., 400.);
443  trksWeight[1] = book<TH1D>("tagVtxTrksWeight", "Total weight of Tracks in Vertex (tagged Vtx)", 100, 0, 100.);
444  vtxchi2[1] = book<TH1D>("tagVtxChi2", "#chi^{2} (tagged Vtx)", 100, 0., 200.);
445  vtxndf[1] = book<TH1D>("tagVtxNdf", "ndof (tagged Vtx)", 100, 0., 200.);
446  vtxprob[1] = book<TH1D>("tagVtxProb", "#chi^{2} probability (tagged Vtx)", 100, 0., 1.);
447  nans[1] = book<TH1D>("tagVtxNans", "Illegal values for x,y,z,xx,xy,xz,yy,yz,zz (tagged Vtx)", 9, 0.5, 9.5);
448 
449  xrec[0] = book<TH1D>("otherPosX", "Position x Coordinate (other Vtx)", 100, vposx_ - 0.1, vposx_ + 0.1);
450  yrec[0] = book<TH1D>("otherPosY", "Position y Coordinate (other Vtx)", 100, vposy_ - 0.1, vposy_ + 0.1);
451  zrec[0] = book<TH1D>("otherPosZ", "Position z Coordinate (other Vtx)", 100, -20., 20.);
452  xDiff[0] = book<TH1D>("otherDiffX", "X distance from BeamSpot (other Vtx)", 100, -500, 500);
453  yDiff[0] = book<TH1D>("otherDiffY", "Y distance from BeamSpot (other Vtx)", 100, -500, 500);
454  xerr[0] = book<TH1D>("otherErrX", "Uncertainty x Coordinate (other Vtx)", 100, 0., 100);
455  yerr[0] = book<TH1D>("otherErrY", "Uncertainty y Coordinate (other Vtx)", 100, 0., 100);
456  zerr[0] = book<TH1D>("otherErrZ", "Uncertainty z Coordinate (other Vtx)", 100, 0., 100);
457  xerrVsTrks[0] = book<TH2D>(
458  "otherErrVsWeightX", "Uncertainty x Coordinate vs. track weight (other Vtx)", 100, 0, 100., 100, 0., 100);
459  yerrVsTrks[0] = book<TH2D>(
460  "otherErrVsWeightY", "Uncertainty y Coordinate vs. track weight (other Vtx)", 100, 0, 100., 100, 0., 100);
461  zerrVsTrks[0] = book<TH2D>(
462  "otherErrVsWeightZ", "Uncertainty z Coordinate vs. track weight (other Vtx)", 100, 0, 100., 100, 0., 100);
463 
464  xrec[1] = book<TH1D>("tagPosX", "Position x Coordinate (tagged Vtx)", 100, vposx_ - 0.1, vposx_ + 0.1);
465  yrec[1] = book<TH1D>("tagPosY", "Position y Coordinate (tagged Vtx)", 100, vposy_ - 0.1, vposy_ + 0.1);
466  zrec[1] = book<TH1D>("tagPosZ", "Position z Coordinate (tagged Vtx)", 100, -20., 20.);
467  xDiff[1] = book<TH1D>("tagDiffX", "X distance from BeamSpot (tagged Vtx)", 100, -500, 500);
468  yDiff[1] = book<TH1D>("tagDiffY", "Y distance from BeamSpot (tagged Vtx)", 100, -500, 500);
469  xerr[1] = book<TH1D>("tagErrX", "Uncertainty x Coordinate (tagged Vtx)", 100, 0., 100);
470  yerr[1] = book<TH1D>("tagErrY", "Uncertainty y Coordinate (tagged Vtx)", 100, 0., 100);
471  zerr[1] = book<TH1D>("tagErrZ", "Uncertainty z Coordinate (tagged Vtx)", 100, 0., 100);
472  xerrVsTrks[1] = book<TH2D>(
473  "tagErrVsWeightX", "Uncertainty x Coordinate vs. track weight (tagged Vtx)", 100, 0, 100., 100, 0., 100);
474  yerrVsTrks[1] = book<TH2D>(
475  "tagErrVsWeightY", "Uncertainty y Coordinate vs. track weight (tagged Vtx)", 100, 0, 100., 100, 0., 100);
476  zerrVsTrks[1] = book<TH2D>(
477  "tagErrVsWeightZ", "Uncertainty z Coordinate vs. track weight (tagged Vtx)", 100, 0, 100., 100, 0., 100);
478 
479  type[0] = book<TH1D>("otherType", "Vertex type (other Vtx)", 3, -0.5, 2.5);
480  type[1] = book<TH1D>("tagType", "Vertex type (tagged Vtx)", 3, -0.5, 2.5);
481 
482  for (int i = 0; i < 2; ++i) {
483  type[i]->GetXaxis()->SetBinLabel(1, "Valid, real");
484  type[i]->GetXaxis()->SetBinLabel(2, "Valid, fake");
485  type[i]->GetXaxis()->SetBinLabel(3, "Invalid");
486  }
487 
488  bsX = book<TH1D>("bsX", "BeamSpot x0", 100, vposx_ - 0.1, vposx_ + 0.1);
489  bsY = book<TH1D>("bsY", "BeamSpot y0", 100, vposy_ - 0.1, vposy_ + 0.1);
490  bsZ = book<TH1D>("bsZ", "BeamSpot z0", 100, -2., 2.);
491  bsSigmaZ = book<TH1D>("bsSigmaZ", "BeamSpot sigmaZ", 100, 0., 10.);
492  bsDxdz = book<TH1D>("bsDxdz", "BeamSpot dxdz", 100, -0.0003, 0.0003);
493  bsDydz = book<TH1D>("bsDydz", "BeamSpot dydz", 100, -0.0003, 0.0003);
494  bsBeamWidthX = book<TH1D>("bsBeamWidthX", "BeamSpot BeamWidthX", 100, 0., 100.);
495  bsBeamWidthY = book<TH1D>("bsBeamWidthY", "BeamSpot BeamWidthY", 100, 0., 100.);
496  bsType = book<TH1D>("bsType", "BeamSpot type", 4, -1.5, 2.5);
497  bsType->GetXaxis()->SetBinLabel(1, "Unknown");
498  bsType->GetXaxis()->SetBinLabel(2, "Fake");
499  bsType->GetXaxis()->SetBinLabel(3, "LHC");
500  bsType->GetXaxis()->SetBinLabel(4, "Tracker");
501 
502  // repeated strings in titles
503  std::string s_1 = "PV Tracks (p_{T} > 1 GeV)";
504  std::string s_10 = "PV Tracks (p_{T} > 10 GeV)";
505 
506  ntracks = book<TH1D>("ntracks", fmt::sprintf("number of %s", s_1).c_str(), tkNoBin_, tkNoMin_, tkNoMax_);
507  ntracks->SetXTitle(fmt::sprintf("Number of %s per Event", s_1).c_str());
508  ntracks->SetYTitle("Number of Events");
509 
510  weight = book<TH1D>("weight", fmt::sprintf("weight of %s", s_1).c_str(), 100, 0., 1.);
511  weight->SetXTitle(fmt::sprintf("weight of %s per Event", s_1).c_str());
512  weight->SetYTitle("Number of Events");
513 
514  sumpt = book<TH1D>("sumpt", fmt::sprintf("#Sum p_{T} of %s", s_1).c_str(), 100, -0.5, 249.5);
515  chi2ndf = book<TH1D>("chi2ndf", fmt::sprintf("%s #chi^{2}/ndof", s_1).c_str(), 100, 0., 20.);
516  chi2prob = book<TH1D>("chi2prob", fmt::sprintf("%s #chi^{2} probability", s_1).c_str(), 100, 0., 1.);
517  dxy = book<TH1D>("dxy", fmt::sprintf("%s d_{xy} (#mum)", s_1).c_str(), dxyBin_, dxyMin_, dxyMax_);
518  dxy2 = book<TH1D>("dxyzoom", fmt::sprintf("%s d_{xy} (#mum)", s_1).c_str(), dxyBin_, dxyMin_ / 5., dxyMax_ / 5.);
519  dxyErr = book<TH1D>("dxyErr", fmt::sprintf("%s d_{xy} error (#mum)", s_1).c_str(), 100, 0., 2000.);
520  dz = book<TH1D>("dz", fmt::sprintf("%s d_{z} (#mum)", s_1).c_str(), dzBin_, dzMin_, dzMax_);
521  dzErr = book<TH1D>("dzErr", fmt::sprintf("%s d_{z} error(#mum)", s_1).c_str(), 100, 0., 10000.);
522 
523  phi_pt1 =
524  book<TH1D>("phi_pt1", fmt::sprintf("%s #phi; PV tracks #phi;#tracks", s_1).c_str(), phiBin_, phiMin_, phiMax_);
525  eta_pt1 =
526  book<TH1D>("eta_pt1", fmt::sprintf("%s #eta; PV tracks #eta;#tracks", s_1).c_str(), etaBin_, etaMin_, etaMax_);
527  phi_pt10 =
528  book<TH1D>("phi_pt10", fmt::sprintf("%s #phi; PV tracks #phi;#tracks", s_10).c_str(), phiBin_, phiMin_, phiMax_);
529  eta_pt10 =
530  book<TH1D>("eta_pt10", fmt::sprintf("%s #phi; PV tracks #eta;#tracks", s_10).c_str(), etaBin_, etaMin_, etaMax_);
531 
532  dxyVsPhi_pt1 = book<TProfile>("dxyVsPhi_pt1",
533  fmt::sprintf("%s d_{xy} (#mum) VS track #phi", s_1).c_str(),
534  phiBin_,
535  phiMin_,
536  phiMax_,
537  dxyMin_,
538  dxyMax_);
539  dxyVsPhi_pt1->SetXTitle("PV track (p_{T} > 1 GeV) #phi");
540  dxyVsPhi_pt1->SetYTitle("PV track (p_{T} > 1 GeV) d_{xy} (#mum)");
541 
542  dzVsPhi_pt1 = book<TProfile>("dzVsPhi_pt1",
543  fmt::sprintf("%s d_{z} (#mum) VS track #phi", s_1).c_str(),
544  phiBin_,
545  phiMin_,
546  phiMax_,
547  dzMin_,
548  dzMax_);
549  dzVsPhi_pt1->SetXTitle("PV track (p_{T} > 1 GeV) #phi");
550  dzVsPhi_pt1->SetYTitle("PV track (p_{T} > 1 GeV) d_{z} (#mum)");
551 
552  dxyVsEta_pt1 = book<TProfile>("dxyVsEta_pt1",
553  fmt::sprintf("%s d_{xy} (#mum) VS track #eta", s_1).c_str(),
554  etaBin_,
555  etaMin_,
556  etaMax_,
557  dxyMin_,
558  dxyMax_);
559  dxyVsEta_pt1->SetXTitle("PV track (p_{T} > 1 GeV) #eta");
560  dxyVsEta_pt1->SetYTitle("PV track (p_{T} > 1 GeV) d_{xy} (#mum)");
561 
562  dzVsEta_pt1 = book<TProfile>("dzVsEta_pt1",
563  fmt::sprintf("%s d_{z} (#mum) VS track #eta", s_1).c_str(),
564  etaBin_,
565  etaMin_,
566  etaMax_,
567  dzMin_,
568  dzMax_);
569  dzVsEta_pt1->SetXTitle("PV track (p_{T} > 1 GeV) #eta");
570  dzVsEta_pt1->SetYTitle("PV track (p_{T} > 1 GeV) d_{z} (#mum)");
571 
572  dxyVsEtaVsPhi_pt1 = book<TProfile2D>("dxyVsEtaVsPhi_pt1",
573  fmt::sprintf("%s d_{xy} (#mum) VS track #eta VS track #phi", s_1).c_str(),
574  etaBin2D_,
575  etaMin_,
576  etaMax_,
577  phiBin2D_,
578  phiMin_,
579  phiMax_,
580  dxyMin_,
581  dxyMax_);
582  dxyVsEtaVsPhi_pt1->SetXTitle("PV track (p_{T} > 1 GeV) #eta");
583  dxyVsEtaVsPhi_pt1->SetYTitle("PV track (p_{T} > 1 GeV) #phi");
584  dxyVsEtaVsPhi_pt1->SetZTitle("PV track (p_{T} > 1 GeV) d_{xy} (#mum)");
585 
586  dzVsEtaVsPhi_pt1 = book<TProfile2D>("dzVsEtaVsPhi_pt1",
587  fmt::sprintf("%s d_{z} (#mum) VS track #eta VS track #phi", s_1).c_str(),
588  etaBin2D_,
589  etaMin_,
590  etaMax_,
591  phiBin2D_,
592  phiMin_,
593  phiMax_,
594  dzMin_,
595  dzMax_);
596  dzVsEtaVsPhi_pt1->SetXTitle("PV track (p_{T} > 1 GeV) #eta");
597  dzVsEtaVsPhi_pt1->SetYTitle("PV track (p_{T} > 1 GeV) #phi");
598  dzVsEtaVsPhi_pt1->SetZTitle("PV track (p_{T} > 1 GeV) d_{z} (#mum)");
599 
600  dxyVsPhi_pt10 = book<TProfile>("dxyVsPhi_pt10",
601  fmt::sprintf("%s d_{xy} (#mum) VS track #phi", s_10).c_str(),
602  phiBin_,
603  phiMin_,
604  phiMax_,
605  dxyMin_,
606  dxyMax_);
607  dxyVsPhi_pt10->SetXTitle("PV track (p_{T} > 10 GeV) #phi");
608  dxyVsPhi_pt10->SetYTitle("PV track (p_{T} > 10 GeV) d_{xy} (#mum)");
609 
610  dzVsPhi_pt10 = book<TProfile>("dzVsPhi_pt10",
611  fmt::sprintf("%s d_{z} (#mum) VS track #phi", s_10).c_str(),
612  phiBin_,
613  phiMin_,
614  phiMax_,
615  dzMin_,
616  dzMax_);
617  dzVsPhi_pt10->SetXTitle("PV track (p_{T} > 10 GeV) #phi");
618  dzVsPhi_pt10->SetYTitle("PV track (p_{T} > 10 GeV) d_{z} (#mum)");
619 
620  dxyVsEta_pt10 = book<TProfile>("dxyVsEta_pt10",
621  fmt::sprintf("%s d_{xy} (#mum) VS track #eta", s_10).c_str(),
622  etaBin_,
623  etaMin_,
624  etaMax_,
625  dxyMin_,
626  dxyMax_);
627  dxyVsEta_pt10->SetXTitle("PV track (p_{T} > 10 GeV) #eta");
628  dxyVsEta_pt10->SetYTitle("PV track (p_{T} > 10 GeV) d_{xy} (#mum)");
629 
630  dzVsEta_pt10 = book<TProfile>("dzVsEta_pt10",
631  fmt::sprintf("%s d_{z} (#mum) VS track #eta", s_10).c_str(),
632  etaBin_,
633  etaMin_,
634  etaMax_,
635  dzMin_,
636  dzMax_);
637  dzVsEta_pt10->SetXTitle("PV track (p_{T} > 10 GeV) #eta");
638  dzVsEta_pt10->SetYTitle("PV track (p_{T} > 10 GeV) d_{z} (#mum)");
639 
640  dxyVsEtaVsPhi_pt10 = book<TProfile2D>("dxyVsEtaVsPhi_pt10",
641  fmt::sprintf("%s d_{xy} (#mum) VS track #eta VS track #phi", s_10).c_str(),
642  etaBin2D_,
643  etaMin_,
644  etaMax_,
645  phiBin2D_,
646  phiMin_,
647  phiMax_,
648  dxyMin_,
649  dxyMax_);
650  dxyVsEtaVsPhi_pt10->SetXTitle("PV track (p_{T} > 10 GeV) #eta");
651  dxyVsEtaVsPhi_pt10->SetYTitle("PV track (p_{T} > 10 GeV) #phi");
652  dxyVsEtaVsPhi_pt10->SetZTitle("PV track (p_{T} > 10 GeV) d_{xy} (#mum)");
653 
654  dzVsEtaVsPhi_pt10 = book<TProfile2D>("dzVsEtaVsPhi_pt10",
655  fmt::sprintf("%s d_{z} (#mum) VS track #eta VS track #phi", s_10).c_str(),
656  etaBin2D_,
657  etaMin_,
658  etaMax_,
659  phiBin2D_,
660  phiMin_,
661  phiMax_,
662  dzMin_,
663  dzMax_);
664  dzVsEtaVsPhi_pt10->SetXTitle("PV track (p_{T} > 10 GeV) #eta");
665  dzVsEtaVsPhi_pt10->SetYTitle("PV track (p_{T} > 10 GeV) #phi");
666  dzVsEtaVsPhi_pt10->SetZTitle("PV track (p_{T} > 10 GeV) d_{z} (#mum)");
667 }
Definition: weight.py:1

◆ book()

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

Definition at line 413 of file GeneralPurposeVertexAnalyzer.cc.

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

413  {
414  T *t = fs_->make<T>(args...);
415  return t;
416 }
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 670 of file GeneralPurposeVertexAnalyzer.cc.

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

670  {
672  desc.add<int>("ndof", 4);
673  desc.add<edm::InputTag>("vertexLabel", edm::InputTag("offlinePrimaryVertices"));
674  desc.add<edm::InputTag>("beamSpotLabel", edm::InputTag("offlineBeamSpot"));
675  desc.add<double>("Xpos", 0.1);
676  desc.add<double>("Ypos", 0.0);
677  desc.add<int>("TkSizeBin", 100);
678  desc.add<double>("TkSizeMin", 499.5);
679  desc.add<double>("TkSizeMax", -0.5);
680  desc.add<int>("DxyBin", 100);
681  desc.add<double>("DxyMin", 5000.);
682  desc.add<double>("DxyMax", -5000.);
683  desc.add<int>("DzBin", 100);
684  desc.add<double>("DzMin", -2000.0);
685  desc.add<double>("DzMax", 2000.0);
686  desc.add<int>("PhiBin", 32);
687  desc.add<int>("PhiBin2D", 12);
688  desc.add<double>("PhiMin", -M_PI);
689  desc.add<double>("PhiMax", M_PI);
690  desc.add<int>("EtaBin", 26);
691  desc.add<int>("EtaBin2D", 8);
692  desc.add<double>("EtaMin", -2.7);
693  desc.add<double>("EtaMax", 2.7);
694  descriptions.addWithDefaultLabel(desc);
695 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
#define M_PI

◆ pvTracksPlots()

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

Definition at line 285 of file GeneralPurposeVertexAnalyzer.cc.

References chi2ndf, chi2prob, cmToUm, dxy, dxy2, dxyErr, dxyVsEta_pt1, dxyVsEta_pt10, dxyVsEtaVsPhi_pt1, dxyVsEtaVsPhi_pt10, dxyVsPhi_pt1, dxyVsPhi_pt10, dz, dzErr, dzVsEta_pt1, dzVsEta_pt10, dzVsEtaVsPhi_pt1, dzVsEtaVsPhi_pt10, dzVsPhi_pt1, dzVsPhi_pt10, PVValHelper::eta, eta_pt1, eta_pt10, f, reco::TrackBase::highPurity, ntracks, phi, phi_pt1, phi_pt10, DiDispStaMuonMonitor_cfi::pt, HLT_2023v12_cff::pt2, sumpt, submitPVValidationJobs::t, findQualityFiles::v, and w().

Referenced by analyze().

285  {
286  if (!v.isValid())
287  return;
288  if (v.isFake())
289  return;
290 
291  if (v.tracksSize() == 0) {
292  ntracks->Fill(0);
293  return;
294  }
295 
296  const math::XYZPoint myVertex(v.position().x(), v.position().y(), v.position().z());
297 
298  float sumPT = 0.;
299  for (const auto &t : v.tracks()) {
300  const bool isHighPurity = t->quality(reco::TrackBase::highPurity);
301  if (!isHighPurity) {
302  continue;
303  }
304 
305  const float pt = t->pt();
306  if (pt < 1.f) {
307  continue;
308  }
309 
310  const float pt2 = pt * pt;
311  const float eta = t->eta();
312  const float phi = t->phi();
313  const float w = v.trackWeight(t);
314  const float chi2NDF = t->normalizedChi2();
315  const float chi2Prob = TMath::Prob(t->chi2(), static_cast<int>(t->ndof()));
316  const float Dxy = t->dxy(myVertex) * cmToUm;
317  const float Dz = t->dz(myVertex) * cmToUm;
318  const float DxyErr = t->dxyError() * cmToUm;
319  const float DzErr = t->dzError() * cmToUm;
320 
321  sumPT += pt2;
322 
323  weight->Fill(w);
324  chi2ndf->Fill(chi2NDF);
325  chi2prob->Fill(chi2Prob);
326  dxy->Fill(Dxy);
327  dxy2->Fill(Dxy);
328  dz->Fill(Dz);
329  dxyErr->Fill(DxyErr);
330  dzErr->Fill(DzErr);
331  phi_pt1->Fill(phi);
332  eta_pt1->Fill(eta);
333  dxyVsPhi_pt1->Fill(phi, Dxy);
334  dzVsPhi_pt1->Fill(phi, Dz);
335  dxyVsEta_pt1->Fill(eta, Dxy);
336  dzVsEta_pt1->Fill(eta, Dz);
337  dxyVsEtaVsPhi_pt1->Fill(eta, phi, Dxy);
338  dzVsEtaVsPhi_pt1->Fill(eta, phi, Dz);
339 
340  if (pt >= 10.f) {
341  phi_pt10->Fill(phi);
342  eta_pt10->Fill(eta);
343  dxyVsPhi_pt10->Fill(phi, Dxy);
344  dzVsPhi_pt10->Fill(phi, Dz);
345  dxyVsEta_pt10->Fill(eta, Dxy);
346  dzVsEta_pt10->Fill(eta, Dz);
347  dxyVsEtaVsPhi_pt10->Fill(eta, phi, Dxy);
348  dzVsEtaVsPhi_pt10->Fill(eta, phi, Dz);
349  }
350  }
351 
352  ntracks->Fill(static_cast<float>(v.tracks().size()));
353  sumpt->Fill(sumPT);
354 }
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 356 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().

356  {
357  if (i < 0 || i > 1)
358  return;
359  if (!v.isValid())
360  type[i]->Fill(2.);
361  else if (v.isFake())
362  type[i]->Fill(1.);
363  else
364  type[i]->Fill(0.);
365 
366  if (v.isValid() && !v.isFake()) {
367  float weight = 0;
368  for (reco::Vertex::trackRef_iterator t = v.tracks_begin(); t != v.tracks_end(); t++)
369  weight += v.trackWeight(*t);
370  trksWeight[i]->Fill(weight);
371  nbtksinvtx[i]->Fill(v.tracksSize());
372  ntracksVsZ[i]->Fill(v.position().z() - beamSpot.z0(), v.tracksSize());
373 
374  vtxchi2[i]->Fill(v.chi2());
375  vtxndf[i]->Fill(v.ndof());
376  vtxprob[i]->Fill(ChiSquaredProbability(v.chi2(), v.ndof()));
377 
378  xrec[i]->Fill(v.position().x());
379  yrec[i]->Fill(v.position().y());
380  zrec[i]->Fill(v.position().z());
381 
382  float xb = beamSpot.x0() + beamSpot.dxdz() * (v.position().z() - beamSpot.z0());
383  float yb = beamSpot.y0() + beamSpot.dydz() * (v.position().z() - beamSpot.z0());
384  xDiff[i]->Fill((v.position().x() - xb) * cmToUm);
385  yDiff[i]->Fill((v.position().y() - yb) * cmToUm);
386 
387  xerr[i]->Fill(v.xError() * cmToUm);
388  yerr[i]->Fill(v.yError() * cmToUm);
389  zerr[i]->Fill(v.zError() * cmToUm);
390  xerrVsTrks[i]->Fill(weight, v.xError() * cmToUm);
391  yerrVsTrks[i]->Fill(weight, v.yError() * cmToUm);
392  zerrVsTrks[i]->Fill(weight, v.zError() * cmToUm);
393 
394  nans[i]->Fill(1., edm::isNotFinite(v.position().x()) * 1.);
395  nans[i]->Fill(2., edm::isNotFinite(v.position().y()) * 1.);
396  nans[i]->Fill(3., edm::isNotFinite(v.position().z()) * 1.);
397 
398  int index = 3;
399  for (int k = 0; k != 3; k++) {
400  for (int j = k; j != 3; j++) {
401  index++;
402  nans[i]->Fill(index * 1., edm::isNotFinite(v.covariance(k, j)) * 1.);
403  // in addition, diagonal element must be positive
404  if (j == k && v.covariance(k, j) < 0) {
405  nans[i]->Fill(index * 1., 1.);
406  }
407  }
408  }
409  }
410 }
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 76 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ beamspotToken_

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

Definition at line 80 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ bsBeamWidthX

TH1D * GeneralPurposeVertexAnalyzer::bsBeamWidthX
private

Definition at line 117 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsBeamWidthY

TH1D * GeneralPurposeVertexAnalyzer::bsBeamWidthY
private

Definition at line 117 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsDxdz

TH1D * GeneralPurposeVertexAnalyzer::bsDxdz
private

Definition at line 117 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsDydz

TH1D * GeneralPurposeVertexAnalyzer::bsDydz
private

Definition at line 117 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsSigmaZ

TH1D * GeneralPurposeVertexAnalyzer::bsSigmaZ
private

Definition at line 117 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsType

TH1D * GeneralPurposeVertexAnalyzer::bsType
private

Definition at line 117 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsX

TH1D* GeneralPurposeVertexAnalyzer::bsX
private

Definition at line 117 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsY

TH1D * GeneralPurposeVertexAnalyzer::bsY
private

Definition at line 117 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ bsZ

TH1D * GeneralPurposeVertexAnalyzer::bsZ
private

Definition at line 117 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ chi2ndf

TH1D * GeneralPurposeVertexAnalyzer::chi2ndf
private

Definition at line 119 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ chi2prob

TH1D * GeneralPurposeVertexAnalyzer::chi2prob
private

Definition at line 119 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ cmToUm

constexpr int GeneralPurposeVertexAnalyzer::cmToUm = 10000
staticprivate

Definition at line 82 of file GeneralPurposeVertexAnalyzer.cc.

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

◆ dxy

TH1D* GeneralPurposeVertexAnalyzer::dxy
private

◆ dxy2

TH1D * GeneralPurposeVertexAnalyzer::dxy2
private

Definition at line 120 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dxyBin_

const int GeneralPurposeVertexAnalyzer::dxyBin_
private

Definition at line 90 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ dxyErr

TH1D * GeneralPurposeVertexAnalyzer::dxyErr
private

◆ dxyMax_

const double GeneralPurposeVertexAnalyzer::dxyMax_
private

Definition at line 92 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ dxyMin_

const double GeneralPurposeVertexAnalyzer::dxyMin_
private

Definition at line 91 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ dxyVsEta_pt1

TProfile* GeneralPurposeVertexAnalyzer::dxyVsEta_pt1
private

Definition at line 124 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dxyVsEta_pt10

TProfile* GeneralPurposeVertexAnalyzer::dxyVsEta_pt10
private

Definition at line 127 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dxyVsEtaVsPhi_pt1

TProfile2D* GeneralPurposeVertexAnalyzer::dxyVsEtaVsPhi_pt1
private

Definition at line 125 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dxyVsEtaVsPhi_pt10

TProfile2D* GeneralPurposeVertexAnalyzer::dxyVsEtaVsPhi_pt10
private

Definition at line 128 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dxyVsPhi_pt1

TProfile* GeneralPurposeVertexAnalyzer::dxyVsPhi_pt1
private

Definition at line 123 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dxyVsPhi_pt10

TProfile* GeneralPurposeVertexAnalyzer::dxyVsPhi_pt10
private

Definition at line 126 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dz

TH1D * GeneralPurposeVertexAnalyzer::dz
private

◆ dzBin_

const int GeneralPurposeVertexAnalyzer::dzBin_
private

Definition at line 94 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ dzErr

TH1D * GeneralPurposeVertexAnalyzer::dzErr
private

◆ dzMax_

const double GeneralPurposeVertexAnalyzer::dzMax_
private

Definition at line 96 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ dzMin_

const double GeneralPurposeVertexAnalyzer::dzMin_
private

Definition at line 95 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ dzVsEta_pt1

TProfile * GeneralPurposeVertexAnalyzer::dzVsEta_pt1
private

Definition at line 124 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dzVsEta_pt10

TProfile * GeneralPurposeVertexAnalyzer::dzVsEta_pt10
private

Definition at line 127 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dzVsEtaVsPhi_pt1

TProfile2D * GeneralPurposeVertexAnalyzer::dzVsEtaVsPhi_pt1
private

Definition at line 125 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dzVsEtaVsPhi_pt10

TProfile2D * GeneralPurposeVertexAnalyzer::dzVsEtaVsPhi_pt10
private

Definition at line 128 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dzVsPhi_pt1

TProfile * GeneralPurposeVertexAnalyzer::dzVsPhi_pt1
private

Definition at line 123 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ dzVsPhi_pt10

TProfile * GeneralPurposeVertexAnalyzer::dzVsPhi_pt10
private

Definition at line 126 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ errorPrinted_

bool GeneralPurposeVertexAnalyzer::errorPrinted_
private

Definition at line 74 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ eta_pt1

TH1D * GeneralPurposeVertexAnalyzer::eta_pt1
private

Definition at line 121 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ eta_pt10

TH1D * GeneralPurposeVertexAnalyzer::eta_pt10
private

Definition at line 122 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ etaBin2D_

const int GeneralPurposeVertexAnalyzer::etaBin2D_
private

Definition at line 104 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ etaBin_

const int GeneralPurposeVertexAnalyzer::etaBin_
private

Definition at line 103 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ etaMax_

const double GeneralPurposeVertexAnalyzer::etaMax_
private

Definition at line 106 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ etaMin_

const double GeneralPurposeVertexAnalyzer::etaMin_
private

Definition at line 105 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ fs_

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

Definition at line 71 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by book().

◆ nans

TH1D * GeneralPurposeVertexAnalyzer::nans[2]
private

Definition at line 115 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ nbgvtx

TH1I * GeneralPurposeVertexAnalyzer::nbgvtx
private

Definition at line 109 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ nbtksinvtx

TH1D* GeneralPurposeVertexAnalyzer::nbtksinvtx[2]
private

Definition at line 110 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ nbvtx

TH1I* GeneralPurposeVertexAnalyzer::nbvtx
private

Definition at line 109 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ ndof_

const int GeneralPurposeVertexAnalyzer::ndof_
private

Definition at line 73 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ ntracks

TH1D * GeneralPurposeVertexAnalyzer::ntracks
private

Definition at line 119 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ ntracksVsZ

TH1D* GeneralPurposeVertexAnalyzer::ntracksVsZ[2]
private

Definition at line 114 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ phi_pt1

TH1D* GeneralPurposeVertexAnalyzer::phi_pt1
private

Definition at line 121 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ phi_pt10

TH1D* GeneralPurposeVertexAnalyzer::phi_pt10
private

Definition at line 122 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and pvTracksPlots().

◆ phiBin2D_

const int GeneralPurposeVertexAnalyzer::phiBin2D_
private

Definition at line 99 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ phiBin_

const int GeneralPurposeVertexAnalyzer::phiBin_
private

Definition at line 98 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ phiMax_

const double GeneralPurposeVertexAnalyzer::phiMax_
private

Definition at line 101 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ phiMin_

const double GeneralPurposeVertexAnalyzer::phiMin_
private

Definition at line 100 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ score

TH1D * GeneralPurposeVertexAnalyzer::score[2]
private

Definition at line 110 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ scoreToken_

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

Definition at line 79 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ sumpt

TH1D* GeneralPurposeVertexAnalyzer::sumpt
private

◆ tkNoBin_

const int GeneralPurposeVertexAnalyzer::tkNoBin_
private

Definition at line 86 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ tkNoMax_

const double GeneralPurposeVertexAnalyzer::tkNoMax_
private

Definition at line 88 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ tkNoMin_

const double GeneralPurposeVertexAnalyzer::tkNoMin_
private

Definition at line 87 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ trksWeight

TH1D * GeneralPurposeVertexAnalyzer::trksWeight[2]
private

Definition at line 110 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ tt

TH1D* GeneralPurposeVertexAnalyzer::tt[2]
private

Definition at line 111 of file GeneralPurposeVertexAnalyzer.cc.

◆ type

TH1D* GeneralPurposeVertexAnalyzer::type[2]
private

◆ vertexInputTag_

const edm::InputTag GeneralPurposeVertexAnalyzer::vertexInputTag_
private

Definition at line 76 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ vertexToken_

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

Definition at line 77 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by analyze().

◆ vposx_

const double GeneralPurposeVertexAnalyzer::vposx_
private

Definition at line 84 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ vposy_

const double GeneralPurposeVertexAnalyzer::vposy_
private

Definition at line 85 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob().

◆ vtxchi2

TH1D* GeneralPurposeVertexAnalyzer::vtxchi2[2]
private

Definition at line 115 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ vtxndf

TH1D * GeneralPurposeVertexAnalyzer::vtxndf[2]
private

Definition at line 115 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ vtxprob

TH1D * GeneralPurposeVertexAnalyzer::vtxprob[2]
private

Definition at line 115 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ weight

TH1D * GeneralPurposeVertexAnalyzer::weight
private

◆ xDiff

TH1D * GeneralPurposeVertexAnalyzer::xDiff[2]
private

Definition at line 112 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ xerr

TH1D * GeneralPurposeVertexAnalyzer::xerr[2]
private

◆ xerrVsTrks

TH2D* GeneralPurposeVertexAnalyzer::xerrVsTrks[2]
private

Definition at line 113 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ xrec

TH1D* GeneralPurposeVertexAnalyzer::xrec[2]
private

Definition at line 112 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ yDiff

TH1D * GeneralPurposeVertexAnalyzer::yDiff[2]
private

Definition at line 112 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ yerr

TH1D * GeneralPurposeVertexAnalyzer::yerr[2]
private

◆ yerrVsTrks

TH2D * GeneralPurposeVertexAnalyzer::yerrVsTrks[2]
private

Definition at line 113 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ yrec

TH1D * GeneralPurposeVertexAnalyzer::yrec[2]
private

Definition at line 112 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ zerr

TH1D * GeneralPurposeVertexAnalyzer::zerr[2]
private

Definition at line 112 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ zerrVsTrks

TH2D * GeneralPurposeVertexAnalyzer::zerrVsTrks[2]
private

Definition at line 113 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().

◆ zrec

TH1D * GeneralPurposeVertexAnalyzer::zrec[2]
private

Definition at line 112 of file GeneralPurposeVertexAnalyzer.cc.

Referenced by beginJob(), and vertexPlots().