CMS 3D CMS Logo

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

#include <BPHMassSymSelect.h>

Inheritance diagram for BPHMassSymSelect:
BPHMomentumSelect

Public Member Functions

bool accept (const BPHDecayMomentum &cand) const override
 select particle More...
 
 BPHMassSymSelect (const std::string &np, const std::string &nn, const BPHMassSelect *ms)
 
 ~BPHMassSymSelect () override
 
- Public Member Functions inherited from BPHMomentumSelect
 BPHMomentumSelect ()
 
virtual ~BPHMomentumSelect ()
 

Private Member Functions

 BPHMassSymSelect (const BPHMassSymSelect &x)=delete
 
BPHMassSymSelectoperator= (const BPHMassSymSelect &x)=delete
 

Private Attributes

const BPHMassSelectmSel
 
std::string nNeg
 
std::string nPos
 

Additional Inherited Members

- Public Types inherited from BPHMomentumSelect
using AcceptArg = BPHDecayMomentum
 

Detailed Description

Description: Class for candidate selection by invariant mass (at momentum sum level) allowing for decay product mass swap

Author
Paolo Ronchese INFN Padova

Definition at line 33 of file BPHMassSymSelect.h.

Constructor & Destructor Documentation

BPHMassSymSelect::BPHMassSymSelect ( const std::string &  np,
const std::string &  nn,
const BPHMassSelect ms 
)
inline

Constructor

Definition at line 37 of file BPHMassSymSelect.h.

Referenced by ~BPHMassSymSelect().

38  : nPos(np), nNeg(nn), mSel(ms) {}
int np
Definition: AMPTWrapper.h:43
const BPHMassSelect * mSel
BPHMassSymSelect::~BPHMassSymSelect ( )
inlineoverride
BPHMassSymSelect::BPHMassSymSelect ( const BPHMassSymSelect x)
privatedelete

Member Function Documentation

bool BPHMassSymSelect::accept ( const BPHDecayMomentum cand) const
inlineoverridevirtual

select particle

Operations

Implements BPHMomentumSelect.

Definition at line 47 of file BPHMassSymSelect.h.

Referenced by Vispa.Gui.BoxContentDialog.BoxContentDialog::apply(), Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog::apply(), esMonitoring.FDJsonServer::handle_accept(), and ~BPHMassSymSelect().

47  {
48  if (mSel->accept(cand))
49  return true;
50 
51  const reco::Candidate* pp = cand.getDaug(nPos);
52  const reco::Candidate* np = cand.getDaug(nNeg);
53 
54  reco::Candidate* pc = cand.originalReco(pp)->clone();
55  reco::Candidate* nc = cand.originalReco(np)->clone();
56 
57  pc->setMass(np->p4().mass());
58  nc->setMass(pp->p4().mass());
59  const reco::Candidate::LorentzVector s4 = pc->p4() + nc->p4();
60  double mass = s4.mass();
61 
62  delete pc;
63  delete nc;
64  return ((mass > mSel->getMassMin()) && (mass < mSel->getMassMax()));
65  }
bool accept(const BPHDecayMomentum &cand) const override
select particle
Definition: BPHMassSelect.h:44
int np
Definition: AMPTWrapper.h:43
virtual Candidate * clone() const =0
returns a clone of the Candidate object
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
virtual const reco::Candidate * originalReco(const reco::Candidate *daug) const
get the original particle from the clone
double getMassMin() const
get current mass cuts
Definition: BPHMassCuts.h:54
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
virtual const reco::Candidate * getDaug(const std::string &name) const
virtual void setMass(double m)=0
set particle mass
const BPHMassSelect * mSel
BPHMassSymSelect& BPHMassSymSelect::operator= ( const BPHMassSymSelect x)
privatedelete

Referenced by ~BPHMassSymSelect().

Member Data Documentation

const BPHMassSelect* BPHMassSymSelect::mSel
private

Definition at line 74 of file BPHMassSymSelect.h.

Referenced by ~BPHMassSymSelect().

std::string BPHMassSymSelect::nNeg
private

Definition at line 73 of file BPHMassSymSelect.h.

Referenced by ~BPHMassSymSelect().

std::string BPHMassSymSelect::nPos
private

Definition at line 72 of file BPHMassSymSelect.h.

Referenced by ~BPHMassSymSelect().