CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
DiElectronVertexValidation Class Reference

#include <Alignment/OfflineValidation/plugins/DiElectronVertexValidation.cc>

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

Public Member Functions

 DiElectronVertexValidation (const edm::ParameterSet &)
 
 ~DiElectronVertexValidation () override
 
- 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
 
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 Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void endJob () override
 
bool passLooseSelection (const reco::GsfElectron &electron)
 

Private Attributes

edm::ParameterSet CosPhi3DConfiguration_
 
DiLeptonHelp::PlotsVsKinematics CosPhi3DPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
 
edm::ParameterSet CosPhiConfiguration_
 
DiLeptonHelp::PlotsVsKinematics CosPhiPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
 
edm::ParameterSet DiMuMassConfiguration_
 
edm::EDGetTokenT< reco::GsfElectronCollectionelectronsToken_
 
edm::EDGetTokenT< reco::GsfTrackCollectiongsfTracksToken_
 
TH1I * hClosestVtxIndex_
 
TH1F * hCosPhi3D_
 
TH1F * hCosPhi_
 
TH1F * hCutFlow_
 
TH1F * hGSF0Eta_
 
TH1F * hGSF0Pt_
 
TH1F * hGSF1Eta_
 
TH1F * hGSF1Pt_
 
TH1F * hGSFMult_
 
TH1F * hGSFMultAftPt_
 
TH1F * hInvMass_
 
TH1F * hSVDist3D_
 
TH1F * hSVDist3DSig_
 
TH1F * hSVDist_
 
TH1F * hSVDistSig_
 
TH1F * hSVProb_
 
TH1F * hTrackInvMass_
 
float maxSVdist_
 
DiLeptonHelp::Counts myCounts
 
std::vector< double > pTthresholds_
 
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecordttbESToken_
 
edm::EDGetTokenT< reco::VertexCollectionvertexToken_
 
edm::ParameterSet VtxDist3DConfiguration_
 
DiLeptonHelp::PlotsVsKinematics VtxDist3DPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
 
edm::ParameterSet VtxDist3DSigConfiguration_
 
DiLeptonHelp::PlotsVsKinematics VtxDist3DSigPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
 
edm::ParameterSet VtxDistConfiguration_
 
DiLeptonHelp::PlotsVsKinematics VtxDistPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
 
edm::ParameterSet VtxDistSigConfiguration_
 
DiLeptonHelp::PlotsVsKinematics VtxDistSigPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
 
edm::ParameterSet VtxProbConfiguration_
 
DiLeptonHelp::PlotsVsKinematics VtxProbPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
 
DiLeptonHelp::PlotsVsKinematics ZMassPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
 

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: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 67 of file DiElectronVertexValidation.cc.

Constructor & Destructor Documentation

◆ DiElectronVertexValidation()

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

Definition at line 143 of file DiElectronVertexValidation.cc.

References TFileService::kSharedResource, maxSVdist_, pTthresholds_, and jetUpdater_cfi::sort.

144  : pTthresholds_(iConfig.getParameter<std::vector<double>>("pTThresholds")),
145  maxSVdist_(iConfig.getParameter<double>("maxSVdist")),
146  CosPhiConfiguration_(iConfig.getParameter<edm::ParameterSet>("CosPhiConfig")),
147  CosPhi3DConfiguration_(iConfig.getParameter<edm::ParameterSet>("CosPhi3DConfig")),
148  VtxProbConfiguration_(iConfig.getParameter<edm::ParameterSet>("VtxProbConfig")),
149  VtxDistConfiguration_(iConfig.getParameter<edm::ParameterSet>("VtxDistConfig")),
150  VtxDist3DConfiguration_(iConfig.getParameter<edm::ParameterSet>("VtxDist3DConfig")),
151  VtxDistSigConfiguration_(iConfig.getParameter<edm::ParameterSet>("VtxDistSigConfig")),
152  VtxDist3DSigConfiguration_(iConfig.getParameter<edm::ParameterSet>("VtxDist3DSigConfig")),
153  DiMuMassConfiguration_(iConfig.getParameter<edm::ParameterSet>("DiMuMassConfig")),
154  ttbESToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))),
155  electronsToken_(consumes<reco::GsfElectronCollection>(iConfig.getParameter<edm::InputTag>("electrons"))),
156  gsfTracksToken_(consumes<reco::GsfTrackCollection>(iConfig.getParameter<edm::InputTag>("gsfTracks"))),
157  vertexToken_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertices"))) {
158  usesResource(TFileService::kSharedResource);
159 
160  // sort the vector of thresholds
161  std::sort(pTthresholds_.begin(), pTthresholds_.end(), [](const double& lhs, const double& rhs) { return lhs > rhs; });
162 
163  edm::LogInfo("DiElectronVertexValidation") << __FUNCTION__;
164  for (const auto& thr : pTthresholds_) {
165  edm::LogInfo("DiElectronVertexValidation") << " Threshold: " << thr << " ";
166  }
167  edm::LogInfo("DiElectronVertexValidation") << "Max SV distance: " << maxSVdist_ << " ";
168 }
static const std::string kSharedResource
Definition: TFileService.h:76
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< reco::GsfElectronCollection > electronsToken_
Log< level::Info, false > LogInfo
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > ttbESToken_
edm::EDGetTokenT< reco::GsfTrackCollection > gsfTracksToken_

◆ ~DiElectronVertexValidation()

DiElectronVertexValidation::~DiElectronVertexValidation ( )
overridedefault

Member Function Documentation

◆ analyze()

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

Implements edm::one::EDAnalyzerBase.

Definition at line 177 of file DiElectronVertexValidation.cc.

References funct::abs(), TransientTrackBuilder::build(), ALCARECOTkAlJpsiMuMu_cff::charge, cmToum, CosPhi3DPlots, CosPhiPlots, counter, TransientVertex::degreesOfFreedom(), PbPb_ZMuSkimMuonDPG_cff::deltaR, VertexDistanceXY::distance(), VertexDistance3D::distance(), HLT_2023v12_cff::distance, StorageManager_cfg::e1, HPSPFTauProducerPuppi_cfi::electron, electronsToken_, emass2, Measurement1D::error(), PVValHelper::eta, DiLeptonHelp::Counts::eventsAfterDist, DiLeptonHelp::Counts::eventsAfterEta, DiLeptonHelp::Counts::eventsAfterMult, DiLeptonHelp::Counts::eventsAfterPt, DiLeptonHelp::Counts::eventsAfterVtx, DiLeptonHelp::Counts::eventsTotal, DiLeptonHelp::PlotsVsKinematics::fillPlots(), edm::EventSetup::getData(), gsfTracksToken_, hClosestVtxIndex_, hCosPhi3D_, hCosPhi_, hGSF0Eta_, hGSF0Pt_, hGSF1Eta_, hGSF1Pt_, hGSFMult_, hGSFMultAftPt_, hInvMass_, hSVDist3D_, hSVDist3DSig_, hSVDist_, hSVDistSig_, hSVProb_, hTrackInvMass_, iEvent, createfilelist::int, edm::HandleBase::isValid(), reco::Vertex::isValid(), TransientVertex::isValid(), SiStripPI::max, maxSVdist_, myCounts, passLooseSelection(), reco::Vertex::position(), TransientVertex::position(), edm::Handle< T >::product(), DiDispStaMuonMonitor_cfi::pt, reco::LeafCandidate::pt(), pTthresholds_, jetUpdater_cfi::sort, mathSSE::sqrt(), TransientVertex::totalChiSquared(), HLT_2023v12_cff::track, ttbESToken_, Measurement1D::value(), KalmanVertexFitter::vertex(), vertexToken_, AlignmentTracksFromVertexSelector_cfi::vertices, L1BJetProducer_cff::vtx, VtxDist3DPlots, VtxDist3DSigPlots, VtxDistPlots, VtxDistSigPlots, VtxProbPlots, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), and ZMassPlots.

177  {
178  using namespace edm;
179 
181 
182  std::vector<const reco::GsfElectron*> myGoodGsfElectrons;
183 
184  int totGsfCounter = 0;
185  for (const auto& gsfEle : iEvent.get(electronsToken_)) {
186  totGsfCounter++;
187  if (gsfEle.pt() > pTthresholds_[1] && passLooseSelection(gsfEle)) {
188  myGoodGsfElectrons.emplace_back(&gsfEle);
189  }
190  }
191 
192  hGSFMult_->Fill(totGsfCounter);
193 
194  std::sort(myGoodGsfElectrons.begin(),
195  myGoodGsfElectrons.end(),
196  [](const reco::GsfElectron*& lhs, const reco::GsfElectron*& rhs) { return lhs->pt() > rhs->pt(); });
197 
198  hGSFMultAftPt_->Fill(myGoodGsfElectrons.size());
199 
200  // reject if there's no Z
201  if (myGoodGsfElectrons.size() < 2)
202  return;
203 
205 
206  if ((myGoodGsfElectrons[0]->pt()) < pTthresholds_[0] || (myGoodGsfElectrons[1]->pt() < pTthresholds_[1]))
207  return;
208 
210 
211  if (myGoodGsfElectrons[0]->charge() * myGoodGsfElectrons[1]->charge() > 0)
212  return;
213 
214  if (std::max(std::abs(myGoodGsfElectrons[0]->eta()), std::abs(myGoodGsfElectrons[1]->eta())) > 2.4)
215  return;
216 
218 
219  const auto& ele1 = myGoodGsfElectrons[1]->p4();
220  const auto& ele0 = myGoodGsfElectrons[0]->p4();
221  const auto& mother = ele1 + ele0;
222 
223  float invMass = mother.M();
224  hInvMass_->Fill(invMass);
225 
226  // just copy the top two muons
227  std::vector<const reco::GsfElectron*> theZElectronVector;
228  theZElectronVector.reserve(2);
229  theZElectronVector.emplace_back(myGoodGsfElectrons[1]);
230  theZElectronVector.emplace_back(myGoodGsfElectrons[0]);
231 
232  // do the matching of Z muons with inner tracks
233 
234  std::vector<const reco::GsfTrack*> myGoodGsfTracks;
235 
236  for (const auto& electron : theZElectronVector) {
237  float minD = 1000.;
238  const reco::GsfTrack* theMatch = nullptr;
239  for (const auto& track : iEvent.get(gsfTracksToken_)) {
240  float D = ::deltaR(electron->gsfTrack()->eta(), electron->gsfTrack()->phi(), track.eta(), track.phi());
241  if (D < minD) {
242  minD = D;
243  theMatch = &track;
244  }
245  }
246  myGoodGsfTracks.emplace_back(theMatch);
247  }
248 
249  hGSF0Pt_->Fill(myGoodGsfTracks[0]->pt());
250  hGSF0Eta_->Fill(myGoodGsfTracks[0]->eta());
251  hGSF1Pt_->Fill(myGoodGsfTracks[1]->pt());
252  hGSF1Eta_->Fill(myGoodGsfTracks[1]->eta());
253 
254  const TransientTrackBuilder* theB = &iSetup.getData(ttbESToken_);
255  TransientVertex aTransVtx;
256  std::vector<reco::TransientTrack> tks;
257 
258  std::vector<const reco::GsfTrack*> myTracks;
259  myTracks.emplace_back(myGoodGsfTracks[0]);
260  myTracks.emplace_back(myGoodGsfTracks[1]);
261 
262  if (myTracks.size() != 2)
263  return;
264 
265  const auto& e1 = myTracks[1]->momentum();
266  const auto& e0 = myTracks[0]->momentum();
267  const auto& ditrack = e1 + e0;
268 
269  const auto& tplus = myTracks[0]->charge() > 0 ? myTracks[0] : myTracks[1];
270  const auto& tminus = myTracks[0]->charge() < 0 ? myTracks[0] : myTracks[1];
271 
272  TLorentzVector p4_tplus(tplus->px(), tplus->py(), tplus->pz(), sqrt((tplus->p() * tplus->p()) + emass2));
273  TLorentzVector p4_tminus(tminus->px(), tminus->py(), tminus->pz(), sqrt((tminus->p() * tminus->p()) + emass2));
274 
275  // creat the pair of TLorentVectors used to make the plos
276  std::pair<TLorentzVector, TLorentzVector> tktk_p4 = std::make_pair(p4_tplus, p4_tminus);
277 
278  const auto& Zp4 = p4_tplus + p4_tminus;
279  float track_invMass = Zp4.M();
280  hTrackInvMass_->Fill(track_invMass);
281 
282  // fill the z->mm mass plots
283  ZMassPlots.fillPlots(track_invMass, tktk_p4);
284 
285  math::XYZPoint ZpT(ditrack.x(), ditrack.y(), 0);
286  math::XYZPoint Zp(ditrack.x(), ditrack.y(), ditrack.z());
287 
288  for (const auto& track : myTracks) {
289  reco::TransientTrack trajectory = theB->build(track);
290  tks.push_back(trajectory);
291  }
292 
293  KalmanVertexFitter kalman(true);
294  aTransVtx = kalman.vertex(tks);
295 
296  double SVProb = TMath::Prob(aTransVtx.totalChiSquared(), (int)aTransVtx.degreesOfFreedom());
297  hSVProb_->Fill(SVProb);
298 
299  if (!aTransVtx.isValid())
300  return;
301 
303 
304  // fill the VtxProb plots
305  VtxProbPlots.fillPlots(SVProb, tktk_p4);
306 
307  // get collection of reconstructed vertices from event
308  edm::Handle<reco::VertexCollection> vertexHandle = iEvent.getHandle(vertexToken_);
309 
310  math::XYZPoint mainVtx(0, 0, 0);
311  reco::Vertex TheMainVtx; // = vertexHandle.product()->front();
312 
313  VertexDistanceXY vertTool;
314  VertexDistance3D vertTool3D;
315 
316  if (vertexHandle.isValid()) {
317  const reco::VertexCollection* vertices = vertexHandle.product();
318  float minD = 9999.;
319  int closestVtxIndex = 0;
320  int counter = 0;
321  for (const auto& vtx : *vertices) {
322  double dist3D = vertTool3D.distance(aTransVtx, vtx).value();
323  if (dist3D < minD) {
324  minD = dist3D;
325  closestVtxIndex = counter;
326  }
327  counter++;
328  }
329  if ((*vertices).at(closestVtxIndex).isValid()) {
330  hClosestVtxIndex_->Fill(closestVtxIndex);
331  TheMainVtx = (*vertices).at(closestVtxIndex);
332  mainVtx.SetXYZ(TheMainVtx.position().x(), TheMainVtx.position().y(), TheMainVtx.position().z());
333  }
334  }
335 
336  const math::XYZPoint myVertex(aTransVtx.position().x(), aTransVtx.position().y(), aTransVtx.position().z());
337  const math::XYZPoint deltaVtx(mainVtx.x() - myVertex.x(), mainVtx.y() - myVertex.y(), mainVtx.z() - myVertex.z());
338 
339  if (TheMainVtx.isValid()) {
340  // Z Vertex distance in the xy plane
341  double distance = vertTool.distance(aTransVtx, TheMainVtx).value();
342  double dist_err = vertTool.distance(aTransVtx, TheMainVtx).error();
343 
344  hSVDist_->Fill(distance * cmToum);
345  hSVDistSig_->Fill(distance / dist_err);
346 
347  // fill the VtxDist plots
349 
350  // fill the VtxDisSig plots
351  VtxDistSigPlots.fillPlots(distance / dist_err, tktk_p4);
352 
353  // Z Vertex distance in 3D
354  double distance3D = vertTool3D.distance(aTransVtx, TheMainVtx).value();
355  double dist3D_err = vertTool3D.distance(aTransVtx, TheMainVtx).error();
356 
357  hSVDist3D_->Fill(distance3D * cmToum);
358  hSVDist3DSig_->Fill(distance3D / dist3D_err);
359 
360  // fill the VtxDist3D plots
361  VtxDist3DPlots.fillPlots(distance3D * cmToum, tktk_p4);
362 
363  // fill the VtxDisSig plots
364  VtxDist3DSigPlots.fillPlots(distance3D / dist3D_err, tktk_p4);
365 
366  // cut on the PV - SV distance
367  if (distance * cmToum < maxSVdist_) {
369 
370  double cosphi = (ZpT.x() * deltaVtx.x() + ZpT.y() * deltaVtx.y()) /
371  (sqrt(ZpT.x() * ZpT.x() + ZpT.y() * ZpT.y()) *
372  sqrt(deltaVtx.x() * deltaVtx.x() + deltaVtx.y() * deltaVtx.y()));
373 
374  double cosphi3D = (Zp.x() * deltaVtx.x() + Zp.y() * deltaVtx.y() + Zp.z() * deltaVtx.z()) /
375  (sqrt(Zp.x() * Zp.x() + Zp.y() * Zp.y() + Zp.z() * Zp.z()) *
376  sqrt(deltaVtx.x() * deltaVtx.x() + deltaVtx.y() * deltaVtx.y() + deltaVtx.z() * deltaVtx.z()));
377 
378  hCosPhi_->Fill(cosphi);
379  hCosPhi3D_->Fill(cosphi3D);
380 
381  // fill the cosphi plots
382  CosPhiPlots.fillPlots(cosphi, tktk_p4);
383 
384  // fill the VtxDisSig plots
385  CosPhi3DPlots.fillPlots(cosphi3D, tktk_p4);
386  }
387  }
388 }
float totalChiSquared() const
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
double pt() const final
transverse momentum
GlobalPoint position() const
DiLeptonHelp::PlotsVsKinematics CosPhiPlots
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
T z() const
Definition: PV3DBase.h:61
const Point & position() const
position
Definition: Vertex.h:127
T const * product() const
Definition: Handle.h:70
static constexpr float emass2
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
DiLeptonHelp::PlotsVsKinematics VtxDist3DPlots
DiLeptonHelp::PlotsVsKinematics CosPhi3DPlots
DiLeptonHelp::PlotsVsKinematics VtxDistSigPlots
DiLeptonHelp::PlotsVsKinematics VtxProbPlots
float degreesOfFreedom() const
reco::TransientTrack build(const reco::Track *p) const
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
int iEvent
Definition: GenABIO.cc:224
bool isValid() const
bool passLooseSelection(const reco::GsfElectron &electron)
edm::EDGetTokenT< reco::GsfElectronCollection > electronsToken_
T sqrt(T t)
Definition: SSEVec.h:19
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
DiLeptonHelp::PlotsVsKinematics VtxDist3DSigPlots
DecomposeProduct< arg, typename Div::arg > D
Definition: Factorize.h:141
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
bool isValid() const
Definition: HandleBase.h:70
double value() const
Definition: Measurement1D.h:25
HLT enums.
static std::atomic< unsigned int > counter
double error() const
Definition: Measurement1D.h:27
void fillPlots(const float val, const std::pair< TLorentzVector, TLorentzVector > &momenta)
static constexpr float cmToum
DiLeptonHelp::PlotsVsKinematics VtxDistPlots
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > ttbESToken_
bool isValid() const
Tells whether the vertex is valid.
Definition: Vertex.h:72
DiLeptonHelp::PlotsVsKinematics ZMassPlots
edm::EDGetTokenT< reco::GsfTrackCollection > gsfTracksToken_

◆ beginJob()

void DiElectronVertexValidation::beginJob ( )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 413 of file DiElectronVertexValidation.cc.

References DiLeptonHelp::PlotsVsKinematics::bookFromPSet(), CosPhi3DConfiguration_, CosPhi3DPlots, CosPhiConfiguration_, CosPhiPlots, DiMuMassConfiguration_, compareTotals::fs, hClosestVtxIndex_, hCosPhi3D_, hCosPhi_, hCutFlow_, hGSF0Eta_, hGSF0Pt_, hGSF1Eta_, hGSF1Pt_, hGSFMult_, hGSFMultAftPt_, hInvMass_, hSVDist3D_, hSVDist3DSig_, hSVDist_, hSVDistSig_, hSVProb_, hTrackInvMass_, mps_fire::i, myCounts, names, AlCaHLTBitMon_QueryRunRegistry::string, VtxDist3DConfiguration_, VtxDist3DPlots, VtxDist3DSigConfiguration_, VtxDist3DSigPlots, VtxDistConfiguration_, VtxDistPlots, VtxDistSigConfiguration_, VtxDistSigPlots, VtxProbConfiguration_, VtxProbPlots, DiLeptonHelp::Counts::zeroAll(), and ZMassPlots.

413  {
414  // please remove this method if not needed
416 
417  // clang-format off
418  TH1F::SetDefaultSumw2(kTRUE);
419 
420  hGSFMult_= fs->make<TH1F>("GSFMult", ";# gsf tracks;N. events", 20, 0., 20.);
421  hGSFMultAftPt_= fs->make<TH1F>("GSFMultAftPt", ";# gsf tracks;N. events", 20, 0., 20.);
422  hGSF0Pt_= fs->make<TH1F>("GSF0Pt", ";leading GSF track p_{T};N. GSF tracks", 100, 0., 100.);
423  hGSF0Eta_= fs->make<TH1F>("GSF0Eta", ";leading GSF track #eta;N. GSF tracks", 50, -2.5, 2.5);
424  hGSF1Pt_= fs->make<TH1F>("GSF1Pt", ";sub-leading GSF track p_{T};N. GSF tracks", 100, 0., 100.);
425  hGSF1Eta_= fs->make<TH1F>("GSF1Eta", ";sub-leading GSF track #eta;N. GSF tracks", 50, -2.5, 2.5);
426 
427  hSVProb_ = fs->make<TH1F>("VtxProb", ";ZV vertex probability;N(e^{+}e^{-} pairs)", 100, 0., 1.);
428 
429  hSVDist_ = fs->make<TH1F>("VtxDist", ";PV-ZV xy distance [#mum];N(e^{+}e^{-} pairs)", 100, 0., 1000.);
430  hSVDistSig_ = fs->make<TH1F>("VtxDistSig", ";PV-ZV xy distance signficance;N(e^{+}e^{-} pairs)", 100, 0., 5.);
431 
432  hSVDist3D_ = fs->make<TH1F>("VtxDist3D", ";PV-ZV 3D distance [#mum];N(e^{+}e^{-} pairs)", 100, 0., 1000.);
433  hSVDist3DSig_ = fs->make<TH1F>("VtxDist3DSig", ";PV-ZV 3D distance signficance;N(e^{+}e^{-} pairs)", 100, 0., 5.);
434 
435  hCosPhi_ = fs->make<TH1F>("CosPhi", ";cos(#phi_{xy});N(ee pairs)", 50, -1., 1.);
436  hCosPhi3D_ = fs->make<TH1F>("CosPhi3D", ";cos(#phi_{3D});N(ee pairs)", 50, -1., 1.);
437  hTrackInvMass_ = fs->make<TH1F>("TkTkInvMass", ";M(tk,tk) [GeV];N(tk tk pairs)", 70., 50., 120.);
438  hInvMass_ = fs->make<TH1F>("InvMass", ";M(#mu#mu) [GeV];N(#mu#mu pairs)", 70., 50., 120.);
439 
440  hClosestVtxIndex_ = fs->make<TH1I>("ClosestVtxIndex", ";closest vertex index;N(tk tk pairs)", 20, -0.5, 19.5);
441 
442  // 2D Maps
443 
444  TFileDirectory dirCosPhi = fs->mkdir("CosPhiPlots");
446 
447  TFileDirectory dirCosPhi3D = fs->mkdir("CosPhi3DPlots");
449 
450  TFileDirectory dirVtxProb = fs->mkdir("VtxProbPlots");
452 
453  TFileDirectory dirVtxDist = fs->mkdir("VtxDistPlots");
455 
456  TFileDirectory dirVtxDist3D = fs->mkdir("VtxDist3DPlots");
458 
459  TFileDirectory dirVtxDistSig = fs->mkdir("VtxDistSigPlots");
461 
462  TFileDirectory dirVtxDist3DSig = fs->mkdir("VtxDist3DSigPlots");
464 
465  TFileDirectory dirInvariantMass = fs->mkdir("InvariantMassPlots");
467 
468  // cut flow
469 
470  hCutFlow_ = fs->make<TH1F>("hCutFlow","cut flow;cut step;events left",6,-0.5,5.5);
471  std::string names[6]={"Total","Mult.",">pT","<eta","hasVtx","VtxDist"};
472  for(unsigned int i=0;i<6;i++){
473  hCutFlow_->GetXaxis()->SetBinLabel(i+1,names[i].c_str());
474  }
475 
476  myCounts.zeroAll();
477 }
DiLeptonHelp::PlotsVsKinematics CosPhiPlots
DiLeptonHelp::PlotsVsKinematics VtxDist3DPlots
DiLeptonHelp::PlotsVsKinematics CosPhi3DPlots
DiLeptonHelp::PlotsVsKinematics VtxDistSigPlots
DiLeptonHelp::PlotsVsKinematics VtxProbPlots
const std::string names[nVars_]
DiLeptonHelp::PlotsVsKinematics VtxDist3DSigPlots
void bookFromPSet(const TFileDirectory &fs, const edm::ParameterSet &hpar)
DiLeptonHelp::PlotsVsKinematics VtxDistPlots
DiLeptonHelp::PlotsVsKinematics ZMassPlots

◆ endJob()

void DiElectronVertexValidation::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 480 of file DiElectronVertexValidation.cc.

References DiLeptonHelp::Counts::eventsAfterDist, DiLeptonHelp::Counts::eventsAfterEta, DiLeptonHelp::Counts::eventsAfterMult, DiLeptonHelp::Counts::eventsAfterPt, DiLeptonHelp::Counts::eventsAfterVtx, DiLeptonHelp::Counts::eventsTotal, hCutFlow_, myCounts, and DiLeptonHelp::Counts::printCounts().

Referenced by o2olib.O2ORunMgr::executeJob().

480  {
482 
483  hCutFlow_->SetBinContent(1,myCounts.eventsTotal);
484  hCutFlow_->SetBinContent(2,myCounts.eventsAfterMult);
485  hCutFlow_->SetBinContent(3,myCounts.eventsAfterPt);
486  hCutFlow_->SetBinContent(4,myCounts.eventsAfterEta);
487  hCutFlow_->SetBinContent(5,myCounts.eventsAfterVtx);
488  hCutFlow_->SetBinContent(6,myCounts.eventsAfterDist);
489 }

◆ fillDescriptions()

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

Definition at line 492 of file DiElectronVertexValidation.cc.

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

492  {
494  desc.add<edm::InputTag>("gsfTracks",edm::InputTag("electronGsfTracks"));
495  desc.add<edm::InputTag>("vertices", edm::InputTag("offlinePrimaryVertices"));
496  desc.add<edm::InputTag>("electrons", edm::InputTag("gedGsfElectrons"));
497  desc.add<std::vector<double>>("pTThresholds", {25., 15.});
498  desc.add<double>("maxSVdist", 50.);
499 
500  {
501  edm::ParameterSetDescription psDiMuMass;
502  psDiMuMass.add<std::string>("name", "DiMuMass");
503  psDiMuMass.add<std::string>("title", "M(#mu#mu)");
504  psDiMuMass.add<std::string>("yUnits", "[GeV]");
505  psDiMuMass.add<int>("NxBins", 24);
506  psDiMuMass.add<int>("NyBins", 50);
507  psDiMuMass.add<double>("ymin", 70.);
508  psDiMuMass.add<double>("ymax", 120.);
509  desc.add<edm::ParameterSetDescription>("DiMuMassConfig", psDiMuMass);
510  }
511  {
513  psCosPhi.add<std::string>("name", "CosPhi");
514  psCosPhi.add<std::string>("title", "cos(#phi_{xy})");
515  psCosPhi.add<std::string>("yUnits", "");
516  psCosPhi.add<int>("NxBins", 50);
517  psCosPhi.add<int>("NyBins", 50);
518  psCosPhi.add<double>("ymin", -1.);
519  psCosPhi.add<double>("ymax", 1.);
520  desc.add<edm::ParameterSetDescription>("CosPhiConfig", psCosPhi);
521  }
522  {
523  edm::ParameterSetDescription psCosPhi3D;
524  psCosPhi3D.add<std::string>("name", "CosPhi3D");
525  psCosPhi3D.add<std::string>("title", "cos(#phi_{3D})");
526  psCosPhi3D.add<std::string>("yUnits", "");
527  psCosPhi3D.add<int>("NxBins", 50);
528  psCosPhi3D.add<int>("NyBins", 50);
529  psCosPhi3D.add<double>("ymin", -1.);
530  psCosPhi3D.add<double>("ymax", 1.);
531  desc.add<edm::ParameterSetDescription>("CosPhi3DConfig", psCosPhi3D);
532  }
533  {
535  psVtxProb.add<std::string>("name", "VtxProb");
536  psVtxProb.add<std::string>("title", "Prob(#chi^{2}_{SV})");
537  psVtxProb.add<std::string>("yUnits", "");
538  psVtxProb.add<int>("NxBins", 50);
539  psVtxProb.add<int>("NyBins", 50);
540  psVtxProb.add<double>("ymin", 0);
541  psVtxProb.add<double>("ymax", 1.);
542  desc.add<edm::ParameterSetDescription>("VtxProbConfig", psVtxProb);
543  }
544  {
546  psVtxDist.add<std::string>("name", "VtxDist");
547  psVtxDist.add<std::string>("title", "d_{xy}(PV,SV)");
548  psVtxDist.add<std::string>("yUnits", "[#mum]");
549  psVtxDist.add<int>("NxBins", 50);
550  psVtxDist.add<int>("NyBins", 100);
551  psVtxDist.add<double>("ymin", 0);
552  psVtxDist.add<double>("ymax", 300.);
553  desc.add<edm::ParameterSetDescription>("VtxDistConfig", psVtxDist);
554  }
555  {
556  edm::ParameterSetDescription psVtxDist3D;
557  psVtxDist3D.add<std::string>("name", "VtxDist3D");
558  psVtxDist3D.add<std::string>("title", "d_{3D}(PV,SV)");
559  psVtxDist3D.add<std::string>("yUnits", "[#mum]");
560  psVtxDist3D.add<int>("NxBins", 50);
561  psVtxDist3D.add<int>("NyBins", 250);
562  psVtxDist3D.add<double>("ymin", 0);
563  psVtxDist3D.add<double>("ymax", 500.);
564  desc.add<edm::ParameterSetDescription>("VtxDist3DConfig", psVtxDist3D);
565  }
566  {
567  edm::ParameterSetDescription psVtxDistSig;
568  psVtxDistSig.add<std::string>("name", "VtxDistSig");
569  psVtxDistSig.add<std::string>("title", "d_{xy}(PV,SV)/#sigma_{dxy}(PV,SV)");
570  psVtxDistSig.add<std::string>("yUnits", "");
571  psVtxDistSig.add<int>("NxBins", 50);
572  psVtxDistSig.add<int>("NyBins", 100);
573  psVtxDistSig.add<double>("ymin", 0);
574  psVtxDistSig.add<double>("ymax", 5.);
575  desc.add<edm::ParameterSetDescription>("VtxDistSigConfig", psVtxDistSig);
576  }
577  {
578  edm::ParameterSetDescription psVtxDist3DSig;
579  psVtxDist3DSig.add<std::string>("name", "VtxDist3DSig");
580  psVtxDist3DSig.add<std::string>("title", "d_{3D}(PV,SV)/#sigma_{d3D}(PV,SV)");
581  psVtxDist3DSig.add<std::string>("yUnits", "");
582  psVtxDist3DSig.add<int>("NxBins", 50);
583  psVtxDist3DSig.add<int>("NyBins", 100);
584  psVtxDist3DSig.add<double>("ymin", 0);
585  psVtxDist3DSig.add<double>("ymax", 5.);
586  desc.add<edm::ParameterSetDescription>("VtxDist3DSigConfig", psVtxDist3DSig);
587  }
588 
589  descriptions.addWithDefaultLabel(desc);
590 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
ParameterDescriptionBase * add(U const &iLabel, T const &value)

◆ passLooseSelection()

bool DiElectronVertexValidation::passLooseSelection ( const reco::GsfElectron electron)
private

Definition at line 390 of file DiElectronVertexValidation.cc.

References Reference_intrackfit_cff::barrel, reco::GsfElectron::deltaEtaSuperClusterTrackAtVtx(), reco::GsfElectron::deltaPhiSuperClusterTrackAtVtx(), reco::GsfElectron::ecalEnergy(), makeMuonMisalignmentScenario::endcap, reco::GsfElectron::eSuperClusterOverP(), reco::GsfElectron::full5x5_sigmaIetaIeta(), reco::GsfElectron::gsfTrack(), reco::GsfElectron::hadronicOverEm(), reco::HitPattern::MISSING_INNER_HITS, pfClustersFromCombinedCaloHF_cfi::resol, and reco::GsfElectron::superCluster().

Referenced by analyze().

390  {
391  float dEtaln = fabs(el.deltaEtaSuperClusterTrackAtVtx());
392  float dPhiln = fabs(el.deltaPhiSuperClusterTrackAtVtx());
393  float sigmaletaleta = el.full5x5_sigmaIetaIeta();
394  float hem = el.hadronicOverEm();
395  double resol = fabs((1 / el.ecalEnergy()) - (el.eSuperClusterOverP() / el.ecalEnergy()));
396  double mHits = el.gsfTrack()->hitPattern().numberOfAllHits(reco::HitPattern::MISSING_INNER_HITS);
397  bool barrel = (fabs(el.superCluster()->eta()) <= 1.479);
398  bool endcap = (!barrel && fabs(el.superCluster()->eta()) < 2.5);
399 
400  // loose electron ID
401 
402  if (barrel && dEtaln < 0.00477 && dPhiln < 0.222 && sigmaletaleta < 0.011 && hem < 0.298 && resol < 0.241 &&
403  mHits <= 1)
404  return true;
405  if (endcap && dEtaln < 0.00868 && dPhiln < 0.213 && sigmaletaleta < 0.0314 && hem < 0.101 && resol < 0.14 &&
406  mHits <= 1)
407  return true;
408 
409  return false;
410 }

Member Data Documentation

◆ CosPhi3DConfiguration_

edm::ParameterSet DiElectronVertexValidation::CosPhi3DConfiguration_
private

Definition at line 88 of file DiElectronVertexValidation.cc.

Referenced by beginJob().

◆ CosPhi3DPlots

DiLeptonHelp::PlotsVsKinematics DiElectronVertexValidation::CosPhi3DPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
private

Definition at line 124 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ CosPhiConfiguration_

edm::ParameterSet DiElectronVertexValidation::CosPhiConfiguration_
private

Definition at line 87 of file DiElectronVertexValidation.cc.

Referenced by beginJob().

◆ CosPhiPlots

DiLeptonHelp::PlotsVsKinematics DiElectronVertexValidation::CosPhiPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
private

Definition at line 123 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ DiMuMassConfiguration_

edm::ParameterSet DiElectronVertexValidation::DiMuMassConfiguration_
private

Definition at line 94 of file DiElectronVertexValidation.cc.

Referenced by beginJob().

◆ electronsToken_

edm::EDGetTokenT<reco::GsfElectronCollection> DiElectronVertexValidation::electronsToken_
private

Definition at line 98 of file DiElectronVertexValidation.cc.

Referenced by analyze().

◆ gsfTracksToken_

edm::EDGetTokenT<reco::GsfTrackCollection> DiElectronVertexValidation::gsfTracksToken_
private

Definition at line 100 of file DiElectronVertexValidation.cc.

Referenced by analyze().

◆ hClosestVtxIndex_

TH1I* DiElectronVertexValidation::hClosestVtxIndex_
private

Definition at line 118 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hCosPhi3D_

TH1F* DiElectronVertexValidation::hCosPhi3D_
private

Definition at line 115 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hCosPhi_

TH1F* DiElectronVertexValidation::hCosPhi_
private

Definition at line 114 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hCutFlow_

TH1F* DiElectronVertexValidation::hCutFlow_
private

Definition at line 119 of file DiElectronVertexValidation.cc.

Referenced by beginJob(), and endJob().

◆ hGSF0Eta_

TH1F* DiElectronVertexValidation::hGSF0Eta_
private

Definition at line 108 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hGSF0Pt_

TH1F* DiElectronVertexValidation::hGSF0Pt_
private

Definition at line 107 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hGSF1Eta_

TH1F* DiElectronVertexValidation::hGSF1Eta_
private

Definition at line 110 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hGSF1Pt_

TH1F* DiElectronVertexValidation::hGSF1Pt_
private

Definition at line 109 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hGSFMult_

TH1F* DiElectronVertexValidation::hGSFMult_
private

Definition at line 105 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hGSFMultAftPt_

TH1F* DiElectronVertexValidation::hGSFMultAftPt_
private

Definition at line 106 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hInvMass_

TH1F* DiElectronVertexValidation::hInvMass_
private

Definition at line 117 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hSVDist3D_

TH1F* DiElectronVertexValidation::hSVDist3D_
private

Definition at line 112 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hSVDist3DSig_

TH1F* DiElectronVertexValidation::hSVDist3DSig_
private

Definition at line 113 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hSVDist_

TH1F* DiElectronVertexValidation::hSVDist_
private

Definition at line 104 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hSVDistSig_

TH1F* DiElectronVertexValidation::hSVDistSig_
private

Definition at line 111 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hSVProb_

TH1F* DiElectronVertexValidation::hSVProb_
private

Definition at line 103 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ hTrackInvMass_

TH1F* DiElectronVertexValidation::hTrackInvMass_
private

Definition at line 116 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ maxSVdist_

float DiElectronVertexValidation::maxSVdist_
private

Definition at line 83 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and DiElectronVertexValidation().

◆ myCounts

DiLeptonHelp::Counts DiElectronVertexValidation::myCounts
private

Definition at line 81 of file DiElectronVertexValidation.cc.

Referenced by analyze(), beginJob(), and endJob().

◆ pTthresholds_

std::vector<double> DiElectronVertexValidation::pTthresholds_
private

Definition at line 82 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and DiElectronVertexValidation().

◆ ttbESToken_

const edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> DiElectronVertexValidation::ttbESToken_
private

Definition at line 96 of file DiElectronVertexValidation.cc.

Referenced by analyze().

◆ vertexToken_

edm::EDGetTokenT<reco::VertexCollection> DiElectronVertexValidation::vertexToken_
private

Definition at line 101 of file DiElectronVertexValidation.cc.

Referenced by analyze().

◆ VtxDist3DConfiguration_

edm::ParameterSet DiElectronVertexValidation::VtxDist3DConfiguration_
private

Definition at line 91 of file DiElectronVertexValidation.cc.

Referenced by beginJob().

◆ VtxDist3DPlots

DiLeptonHelp::PlotsVsKinematics DiElectronVertexValidation::VtxDist3DPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
private

Definition at line 127 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ VtxDist3DSigConfiguration_

edm::ParameterSet DiElectronVertexValidation::VtxDist3DSigConfiguration_
private

Definition at line 93 of file DiElectronVertexValidation.cc.

Referenced by beginJob().

◆ VtxDist3DSigPlots

DiLeptonHelp::PlotsVsKinematics DiElectronVertexValidation::VtxDist3DSigPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
private

Definition at line 129 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ VtxDistConfiguration_

edm::ParameterSet DiElectronVertexValidation::VtxDistConfiguration_
private

Definition at line 90 of file DiElectronVertexValidation.cc.

Referenced by beginJob().

◆ VtxDistPlots

DiLeptonHelp::PlotsVsKinematics DiElectronVertexValidation::VtxDistPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
private

Definition at line 126 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ VtxDistSigConfiguration_

edm::ParameterSet DiElectronVertexValidation::VtxDistSigConfiguration_
private

Definition at line 92 of file DiElectronVertexValidation.cc.

Referenced by beginJob().

◆ VtxDistSigPlots

DiLeptonHelp::PlotsVsKinematics DiElectronVertexValidation::VtxDistSigPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
private

Definition at line 128 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ VtxProbConfiguration_

edm::ParameterSet DiElectronVertexValidation::VtxProbConfiguration_
private

Definition at line 89 of file DiElectronVertexValidation.cc.

Referenced by beginJob().

◆ VtxProbPlots

DiLeptonHelp::PlotsVsKinematics DiElectronVertexValidation::VtxProbPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
private

Definition at line 125 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().

◆ ZMassPlots

DiLeptonHelp::PlotsVsKinematics DiElectronVertexValidation::ZMassPlots = DiLeptonHelp::PlotsVsKinematics(DiLeptonHelp::EE)
private

Definition at line 130 of file DiElectronVertexValidation.cc.

Referenced by analyze(), and beginJob().