JHUGen MELA  v2.4.1
Matrix element calculations as used in JHUGen. MELA is an important tool that was used for the Higgs boson discovery and for precise measurements of its structure and interactions. Please see the website https://spin.pha.jhu.edu/ and papers cited there for more details, and kindly cite those papers when using this code.
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
MELAThreeBodyDecayCandidate Class Reference

#include <MELAThreeBodyDecayCandidate.h>

Inheritance diagram for MELAThreeBodyDecayCandidate:
Inheritance graph
[legend]
Collaboration diagram for MELAThreeBodyDecayCandidate:
Collaboration graph
[legend]

Public Member Functions

 MELAThreeBodyDecayCandidate ()
 
 MELAThreeBodyDecayCandidate (int id_, TLorentzVector p4_)
 
 MELAThreeBodyDecayCandidate (MELAParticle *partnerParticle_, MELAParticle *Wferm_, MELAParticle *Wfermbar_)
 
 MELAThreeBodyDecayCandidate (const MELAThreeBodyDecayCandidate &particle_)
 
MELAThreeBodyDecayCandidateoperator= (const MELAThreeBodyDecayCandidate &particle_)
 
 ~MELAThreeBodyDecayCandidate ()
 
void swap (MELAThreeBodyDecayCandidate &particle_)
 
void setPartnerParticle (MELAParticle *myParticle)
 
void setWFermion (MELAParticle *myParticle)
 
void setWAntifermion (MELAParticle *myParticle)
 
MELAParticlegetPartnerParticle ()
 
MELAParticlegetWFermion ()
 
MELAParticlegetWAntifermion ()
 
MELAParticlegetPartnerParticle () const
 
MELAParticlegetWFermion () const
 
MELAParticlegetWAntifermion () const
 
void testPreSelectedDaughters ()
 
double getWmass () const
 
- Public Member Functions inherited from MELAParticle
 MELAParticle ()
 
 MELAParticle (int id_)
 
 MELAParticle (int id_, TLorentzVector p4_)
 
 MELAParticle (const MELAParticle &particle_)
 
MELAParticleoperator= (const MELAParticle &particle_)
 
virtual ~MELAParticle ()
 
void swap (MELAParticle &particle_)
 
void setSelected (bool isSelected=true)
 
void setGenStatus (int status_)
 
void setLifetime (double life_)
 
void addMother (MELAParticle *myParticle)
 
void addDaughter (MELAParticle *myParticle)
 
int getNMothers () const
 
int getNDaughters () const
 
virtual std::vector< int > getDaughterIds () const
 
MELAParticlegetMother (int index) const
 
MELAParticlegetDaughter (int index) const
 
virtual void getRelatedParticles (std::vector< MELAParticle * > &particles) const
 
virtual void getDaughterParticles (std::vector< MELAParticle * > &particles) const
 
std::vector< MELAParticle * > & getMothers ()
 
std::vector< MELAParticle * > & getDaughters ()
 
const std::vector< MELAParticle * > & getMothers () const
 
const std::vector< MELAParticle * > & getDaughters () const
 
bool hasMother (MELAParticle const *part) const
 
bool hasDaughter (MELAParticle const *part) const
 
double charge () const
 
double m () const
 
double x () const
 
double y () const
 
double z () const
 
double t () const
 
double p () const
 
double pt () const
 
double eta () const
 
double phi () const
 
double rapidity () const
 
double dot (const TLorentzVector &v) const
 
double dot (const MELAParticle &part) const
 
double dot (const MELAParticle *part) const
 
double euclidean_dot (const TLorentzVector &v) const
 
double euclidean_dot (const MELAParticle &part) const
 
double euclidean_dot (const MELAParticle *part) const
 
double deltaR (const TLorentzVector &v) const
 
double deltaR (const MELAParticle &part) const
 
double deltaR (const MELAParticle *part) const
 
void boost (const TVector3 &vec, bool boostAll=false)
 
TVector3 vect () const
 
TVector3 calculateTotalDisplacement () const
 
MELAParticleoperator+= (MELAParticle *part)
 
MELAParticleoperator+= (const TLorentzVector &mom)
 

Static Public Member Functions

static bool checkCandidateExists (MELAThreeBodyDecayCandidate const *myParticle, std::vector< MELAThreeBodyDecayCandidate * > const &particleArray)
 
- Static Public Member Functions inherited from MELAParticle
static bool checkParticleExists (MELAParticle const *myParticle, std::vector< MELAParticle * > const &particleArray)
 
static bool checkDeepDaughtership (MELAParticle const *part1, MELAParticle const *part2)
 

Protected Attributes

MELAParticlepartnerParticle
 
MELAParticleWferm
 
MELAParticleWfermbar
 
- Protected Attributes inherited from MELAParticle
std::vector< MELAParticle * > mothers
 
std::vector< MELAParticle * > daughters
 

Additional Inherited Members

- Public Attributes inherited from MELAParticle
int id
 
TLorentzVector p4
 
bool passSelection
 
int genStatus
 
double lifetime
 

Detailed Description

Definition at line 7 of file MELAThreeBodyDecayCandidate.h.

Constructor & Destructor Documentation

◆ MELAThreeBodyDecayCandidate() [1/4]

MELAThreeBodyDecayCandidate::MELAThreeBodyDecayCandidate ( )
inline

Definition at line 9 of file MELAThreeBodyDecayCandidate.h.

◆ MELAThreeBodyDecayCandidate() [2/4]

MELAThreeBodyDecayCandidate::MELAThreeBodyDecayCandidate ( int  id_,
TLorentzVector  p4_ 
)
inline

Definition at line 10 of file MELAThreeBodyDecayCandidate.h.

10 : MELAParticle(id_, p4_), partnerParticle(0), Wferm(0), Wfermbar(0) {}

◆ MELAThreeBodyDecayCandidate() [3/4]

MELAThreeBodyDecayCandidate::MELAThreeBodyDecayCandidate ( MELAParticle partnerParticle_,
MELAParticle Wferm_,
MELAParticle Wfermbar_ 
)

Definition at line 5 of file MELAThreeBodyDecayCandidate.cc.

9  : MELAParticle(),
10  partnerParticle(partnerParticle_),
11  Wferm(Wferm_),
12  Wfermbar(Wfermbar_)
13 {
14  if (partnerParticle!=0){
15  p4 = p4 + partnerParticle->p4;
17  }
18  double Wcharge=0;
19  if (Wferm!=0){
20  p4 = p4 + Wferm->p4;
21  Wcharge += Wferm->charge();
23  }
24  if (Wfermbar!=0){
25  p4 = p4 + Wfermbar->p4;
26  Wcharge += Wfermbar->charge();
28  }
29  if (
31  ||
32  (Wcharge>0)
33  ) id = 6;
34  else if (
36  ||
37  (Wcharge<0)
38  ) id = -6;
39  else id=0;
40 }

◆ MELAThreeBodyDecayCandidate() [4/4]

MELAThreeBodyDecayCandidate::MELAThreeBodyDecayCandidate ( const MELAThreeBodyDecayCandidate particle_)
inline

Definition at line 12 of file MELAThreeBodyDecayCandidate.h.

12 : MELAParticle(particle_), partnerParticle(particle_.partnerParticle), Wferm(particle_.Wferm), Wfermbar(particle_.Wfermbar) {}

◆ ~MELAThreeBodyDecayCandidate()

MELAThreeBodyDecayCandidate::~MELAThreeBodyDecayCandidate ( )
inline

Definition at line 14 of file MELAThreeBodyDecayCandidate.h.

14 {}

Member Function Documentation

◆ checkCandidateExists()

bool MELAThreeBodyDecayCandidate::checkCandidateExists ( MELAThreeBodyDecayCandidate const *  myParticle,
std::vector< MELAThreeBodyDecayCandidate * > const &  particleArray 
)
static

Definition at line 63 of file MELAThreeBodyDecayCandidate.cc.

63  {
64  return TUtilHelpers::checkElementExists<MELAThreeBodyDecayCandidate const*, MELAThreeBodyDecayCandidate*>(myParticle, particleArray);
65 }

◆ getPartnerParticle() [1/2]

MELAParticle* MELAThreeBodyDecayCandidate::getPartnerParticle ( )
inline

Definition at line 21 of file MELAThreeBodyDecayCandidate.h.

21 { return partnerParticle; }

◆ getPartnerParticle() [2/2]

MELAParticle* MELAThreeBodyDecayCandidate::getPartnerParticle ( ) const
inline

Definition at line 25 of file MELAThreeBodyDecayCandidate.h.

25 { return partnerParticle; }

◆ getWAntifermion() [1/2]

MELAParticle* MELAThreeBodyDecayCandidate::getWAntifermion ( )
inline

Definition at line 23 of file MELAThreeBodyDecayCandidate.h.

23 { return Wfermbar; }

◆ getWAntifermion() [2/2]

MELAParticle* MELAThreeBodyDecayCandidate::getWAntifermion ( ) const
inline

Definition at line 27 of file MELAThreeBodyDecayCandidate.h.

27 { return Wfermbar; }

◆ getWFermion() [1/2]

MELAParticle* MELAThreeBodyDecayCandidate::getWFermion ( )
inline

Definition at line 22 of file MELAThreeBodyDecayCandidate.h.

22 { return Wferm; }

◆ getWFermion() [2/2]

MELAParticle* MELAThreeBodyDecayCandidate::getWFermion ( ) const
inline

Definition at line 26 of file MELAThreeBodyDecayCandidate.h.

26 { return Wferm; }

◆ getWmass()

double MELAThreeBodyDecayCandidate::getWmass ( ) const

Definition at line 58 of file MELAThreeBodyDecayCandidate.cc.

58  {
59  if (Wferm && Wfermbar) return (Wferm->p4+Wfermbar->p4).M();
60  else return -1;
61 }

◆ operator=()

MELAThreeBodyDecayCandidate & MELAThreeBodyDecayCandidate::operator= ( const MELAThreeBodyDecayCandidate particle_)

Definition at line 41 of file MELAThreeBodyDecayCandidate.cc.

41  {
42  MELAThreeBodyDecayCandidate tmp(particle_);
43  swap(tmp);
44  return *this;
45 }

◆ setPartnerParticle()

void MELAThreeBodyDecayCandidate::setPartnerParticle ( MELAParticle myParticle)

Definition at line 54 of file MELAThreeBodyDecayCandidate.cc.

◆ setWAntifermion()

void MELAThreeBodyDecayCandidate::setWAntifermion ( MELAParticle myParticle)

Definition at line 56 of file MELAThreeBodyDecayCandidate.cc.

56 { Wfermbar=myParticle; if (Wfermbar!=0) addDaughter(Wfermbar); }

◆ setWFermion()

void MELAThreeBodyDecayCandidate::setWFermion ( MELAParticle myParticle)

Definition at line 55 of file MELAThreeBodyDecayCandidate.cc.

55 { Wferm=myParticle; if (Wferm!=0) addDaughter(Wferm); }

◆ swap()

void MELAThreeBodyDecayCandidate::swap ( MELAThreeBodyDecayCandidate particle_)

Definition at line 47 of file MELAThreeBodyDecayCandidate.cc.

47  {
48  MELAParticle::swap(particle_);
49  std::swap(partnerParticle, particle_.partnerParticle);
50  std::swap(Wferm, particle_.Wferm);
51  std::swap(Wfermbar, particle_.Wfermbar);
52 }

◆ testPreSelectedDaughters()

void MELAThreeBodyDecayCandidate::testPreSelectedDaughters ( )

Definition at line 67 of file MELAThreeBodyDecayCandidate.cc.

67  {
68  for (auto& dau:getDaughters()){
69  if (!dau->passSelection){
70  passSelection=false;
71  break;
72  }
73  }
74 }

Member Data Documentation

◆ partnerParticle

MELAParticle* MELAThreeBodyDecayCandidate::partnerParticle
protected

Definition at line 36 of file MELAThreeBodyDecayCandidate.h.

◆ Wferm

MELAParticle* MELAThreeBodyDecayCandidate::Wferm
protected

Definition at line 37 of file MELAThreeBodyDecayCandidate.h.

◆ Wfermbar

MELAParticle* MELAThreeBodyDecayCandidate::Wfermbar
protected

Definition at line 38 of file MELAThreeBodyDecayCandidate.h.


The documentation for this class was generated from the following files:
MELAParticle::MELAParticle
MELAParticle()
Definition: MELAParticle.cc:16
MELAParticle::swap
void swap(MELAParticle &particle_)
Definition: MELAParticle.cc:52
MELAParticle::getDaughters
std::vector< MELAParticle * > & getDaughters()
Definition: MELAParticle.h:59
MELAThreeBodyDecayCandidate::swap
void swap(MELAThreeBodyDecayCandidate &particle_)
Definition: MELAThreeBodyDecayCandidate.cc:47
PDGHelpers::isDownTypeQuark
bool isDownTypeQuark(const int id)
Definition: PDGHelpers.cc:45
MELAParticle::p4
TLorentzVector p4
Definition: MELAParticle.h:18
MELAThreeBodyDecayCandidate::partnerParticle
MELAParticle * partnerParticle
Definition: MELAThreeBodyDecayCandidate.h:36
MELAParticle::charge
double charge() const
Definition: MELAParticle.cc:90
MELAThreeBodyDecayCandidate::Wfermbar
MELAParticle * Wfermbar
Definition: MELAThreeBodyDecayCandidate.h:38
MELAThreeBodyDecayCandidate::Wferm
MELAParticle * Wferm
Definition: MELAThreeBodyDecayCandidate.h:37
MELAParticle::passSelection
bool passSelection
Definition: MELAParticle.h:19
MELAThreeBodyDecayCandidate
Definition: MELAThreeBodyDecayCandidate.h:7
MELAParticle::id
int id
Definition: MELAParticle.h:17
MELAParticle::addDaughter
void addDaughter(MELAParticle *myParticle)
Definition: MELAParticle.cc:63