|
ATLAS Offline Software
|
ElectronMuonTopoInfo is a class for storing information about combuned electron-muon object. It stores angular distance, invariant mass, common vertex information, and opposite charge bit.
More...
#include <ElectronMuonTopoInfo.h>
|
| ElectronMuonTopoInfo () |
|
| ElectronMuonTopoInfo (int roiWord, float deltaPhi=-1., float deltaR=-1., float invMass=-1., bool el_valid=false, bool oppositeCharge=0, unsigned short vertexState=0) |
|
| ~ElectronMuonTopoInfo () |
|
int | RoiWord () const |
| accessor methods More...
|
|
float | DeltaPhi () const |
|
float | DeltaR () const |
|
float | InvMass () const |
|
bool | ElecValid () const |
|
bool | OppositeCharge () const |
|
unsigned short | VertexState () const |
|
void | SetRoiWord (int RoiWord) |
| set methods More...
|
|
void | SetDeltaPhi (float DeltaPhi) |
|
void | SetDeltaR (float DeltaR) |
|
void | SetInvMass (float InvMass) |
|
void | SetElecValid (bool ElecValid) |
|
void | SetOppositeCharge (bool OppositeCharge) |
|
void | SetVertexState (unsigned short vextexState) |
|
Vertex | commonVertex (const TrigElectron *electron1, const CombinedMuonFeature *muon1) |
| checking Vertex compatibility @ L2 More...
|
|
bool | opositeCharge (const TrigElectron *electron1, const CombinedMuonFeature *muon1) |
| Opposite charge @ L2. More...
|
|
double | invariantMass (const TrigElectron *electron1, const CombinedMuonFeature *muon1) |
| Invariant mass calculation @ L2. More...
|
|
double | deltaPhi (const TrigElectron *electron1, const CombinedMuonFeature *muon1) |
| Delta phi @ L2. More...
|
|
double | deltaR (const TrigElectron *electron1, const CombinedMuonFeature *muon1) |
| Delta R @ L2. More...
|
|
double | invariantMass (const TrigTau *tau1, const TrigTau *tau2) |
| Invariant mass calculation @ L2. More...
|
|
double | deltaPhi (const TrigTau *tau1, const TrigTau *tau2) |
| Delta phi @ L2. More...
|
|
double | deltaR (const TrigTau *tau1, const TrigTau *tau2) |
| Delta R @ L2. More...
|
|
double | invariantMass (const TrigTau *tau1, const TrigElectron *electron1) |
| Invariant mass calculation @ L2. More...
|
|
double | deltaPhi (const TrigTau *tau1, const TrigElectron *electron1) |
| Delta phi @ L2. More...
|
|
double | deltaR (const TrigTau *tau1, const TrigElectron *electron1) |
| Delta R @ L2. More...
|
|
double | invariantMass (const TrigTau *tau1, const CombinedMuonFeature *muon1) |
| Invariant mass calculation @ L2. More...
|
|
double | deltaPhi (const TrigTau *tau1, const CombinedMuonFeature *muon1) |
| Delta phi @ L2. More...
|
|
double | deltaR (const TrigTau *tau1, const CombinedMuonFeature *muon1) |
| Delta R @ L2. More...
|
|
Vertex | commonVertex (const Trk::Perigee *perigeeEL, const Trk::Perigee *perigeeMU, double &pull, bool debug=false) |
|
bool | opositeCharge (const egamma *electron1, const Trk::Perigee *muon1) |
|
double | invariantMass (const egamma *electron1, const Trk::Perigee *muon1) |
|
double | deltaR (const egamma *electron1, const Trk::Perigee *muon1) |
|
double | deltaPhi (const egamma *electron1, const Trk::Perigee *muon1) |
|
double | invariantMass (double Pt1, double eta1, double phi1, double m1, double Pt2, double eta2, double phi2, double m2) const |
|
double | deltaR (const Analysis::TauJet *tau1, const Analysis::TauJet *tau2) |
|
double | deltaPhi (const Analysis::TauJet *tau1, const Analysis::TauJet *tau2) |
|
double | invariantMass (const Analysis::TauJet *tau1, const Analysis::TauJet *tau2) |
|
double | deltaR (const Analysis::TauJet *tau1, const egamma *electron1) |
|
double | deltaPhi (const Analysis::TauJet *tau1, const egamma *electron1) |
|
double | invariantMass (const Analysis::TauJet *tau1, const egamma *electron1) |
|
double | deltaR (const Analysis::TauJet *tau1, const Trk::Perigee *muon1) |
|
double | deltaPhi (const Analysis::TauJet *tau1, const Trk::Perigee *muon1) |
|
double | invariantMass (const Analysis::TauJet *tau1, const Trk::Perigee *muon1) |
|
ElectronMuonTopoInfo is a class for storing information about combuned electron-muon object. It stores angular distance, invariant mass, common vertex information, and opposite charge bit.
Definition at line 51 of file ElectronMuonTopoInfo.h.
◆ Vertex
◆ ElectronMuonTopoInfo() [1/2]
ElectronMuonTopoInfo::ElectronMuonTopoInfo |
( |
| ) |
|
◆ ElectronMuonTopoInfo() [2/2]
ElectronMuonTopoInfo::ElectronMuonTopoInfo |
( |
int |
roiWord, |
|
|
float |
deltaPhi = -1. , |
|
|
float |
deltaR = -1. , |
|
|
float |
invMass = -1. , |
|
|
bool |
el_valid = false , |
|
|
bool |
oppositeCharge = 0 , |
|
|
unsigned short |
vertexState = 0 |
|
) |
| |
◆ ~ElectronMuonTopoInfo()
ElectronMuonTopoInfo::~ElectronMuonTopoInfo |
( |
| ) |
|
◆ commonVertex() [1/2]
checking Vertex compatibility @ L2
Definition at line 90 of file ElectronMuonTopoInfo.cxx.
94 double trk_e1_z0error = electron1->
err_Zvtx();
95 double trk_e2_z0error = muon1->
IDTrack()->
param()->ez0();
98 if ( trk_e1_z0error > 0 && trk_e2_z0error > 0 ) {
99 double z0_distance = fabs(electron1->
Zvtx()
102 double z0_error = sqrt(trk_e1_z0error * trk_e1_z0error
103 + trk_e2_z0error * trk_e2_z0error);
111 if (z0_distance > 3*z0_error) {
◆ commonVertex() [2/2]
Definition at line 125 of file ElectronMuonTopoInfo.cxx.
129 if(
debug) std::cout <<
"Now checking electron perigee at " << perigeeEL <<
" and muon perigee at " << perigeeMU <<
"." << std::endl;
132 double electron_z0=0.;
133 double electron_z0_error=0.;
136 double muon_z0_error=0.;
140 electron_z0 = perigeeEL->parameters()[
Trk::z0];
151 muon_z0 = perigeeMU->parameters()[
Trk::z0];
158 if(
debug) std::cout <<
"Electron z0 = " << electron_z0 <<
"+-" << electron_z0_error <<
"; muon_z0 = " << muon_z0 <<
"+-" << muon_z0_error << std::endl;
162 if ( electron_z0_error > 0 && muon_z0_error > 0 ) {
163 double z0_distance = fabs(electron_z0
166 double z0_error = sqrt(electron_z0_error * electron_z0_error
167 + muon_z0_error * muon_z0_error);
169 pull = z0_distance/z0_error;
171 if(
debug) std::cout <<
"z-distance is " << z0_distance <<
"+-" << z0_error <<
". And the pull is " <<
pull <<
"." << std::endl;
178 if (z0_distance > 3*z0_error) {
◆ DeltaPhi()
float ElectronMuonTopoInfo::DeltaPhi |
( |
| ) |
const |
|
inline |
◆ deltaPhi() [1/8]
◆ deltaPhi() [2/8]
◆ deltaPhi() [3/8]
◆ deltaPhi() [4/8]
◆ deltaPhi() [5/8]
◆ deltaPhi() [6/8]
◆ deltaPhi() [7/8]
◆ deltaPhi() [8/8]
◆ DeltaR()
float ElectronMuonTopoInfo::DeltaR |
( |
| ) |
const |
|
inline |
◆ deltaR() [1/8]
◆ deltaR() [2/8]
◆ deltaR() [3/8]
◆ deltaR() [4/8]
◆ deltaR() [5/8]
◆ deltaR() [6/8]
◆ deltaR() [7/8]
◆ deltaR() [8/8]
◆ ElecValid()
bool ElectronMuonTopoInfo::ElecValid |
( |
| ) |
const |
|
inline |
◆ invariantMass() [1/9]
◆ invariantMass() [2/9]
◆ invariantMass() [3/9]
Definition at line 505 of file ElectronMuonTopoInfo.cxx.
509 double eta2 = muon1->eta();
512 double Pt1 = tau1->
pt() ;
513 double Pt2 = muon1->pT() ;
515 double phi1 = tau1->
phi();
516 double phi2 = muon1->parameters()[
Trk::phi];
◆ invariantMass() [4/9]
◆ invariantMass() [5/9]
Invariant mass calculation @ L2.
Definition at line 403 of file ElectronMuonTopoInfo.cxx.
406 double eta1 = electron1->
eta();
410 double Pt1 = electron1->
pt() ;
411 double Pt2 = muon1->
pt();
413 double phi1 = electron1->
phi();
◆ invariantMass() [6/9]
Invariant mass calculation @ L2.
Definition at line 454 of file ElectronMuonTopoInfo.cxx.
461 double Pt1 = tau1->
pt() ;
462 double Pt2 = muon1->
pt();
464 double phi1 = tau1->
phi();
◆ invariantMass() [7/9]
Invariant mass calculation @ L2.
Definition at line 437 of file ElectronMuonTopoInfo.cxx.
441 double eta2 = electron1->
eta();
444 double Pt1 = tau1->
pt() ;
445 double Pt2 = electron1->
pt();
447 double phi1 = tau1->
phi();
448 double phi2 = electron1->
phi();
◆ invariantMass() [8/9]
Invariant mass calculation @ L2.
Definition at line 420 of file ElectronMuonTopoInfo.cxx.
427 double Pt1 = tau1->
pt() ;
428 double Pt2 = tau2->
pt();
430 double phi1 = tau1->
phi();
431 double phi2 = tau2->
phi();
◆ invariantMass() [9/9]
double ElectronMuonTopoInfo::invariantMass |
( |
double |
Pt1, |
|
|
double |
eta1, |
|
|
double |
phi1, |
|
|
double |
m1, |
|
|
double |
Pt2, |
|
|
double |
eta2, |
|
|
double |
phi2, |
|
|
double |
m2 |
|
) |
| const |
Definition at line 521 of file ElectronMuonTopoInfo.cxx.
528 double theta1 = 2*atan2((
double)
exp(-
eta1),1.);
529 double theta2 = 2*atan2((
double)
exp(-
eta2),1.);
530 double P1 = Pt1/
sin(theta1);
531 double P2 = Pt2/
sin(theta2);
539 sincos(phi1,&
p1[1],&
p1[0]);
544 p1[0] = Pt1*scphi1.cs;
545 p1[1] = Pt1*scphi1.sn;
552 sincos(phi2,&
p2[1],&
p2[0]);
557 p2[0] = Pt2*scphi2.cs;
558 p2[1] = Pt2*scphi2.sn;
561 p1[2] = P1*
cos(theta1);
562 p2[2] = P2*
cos(theta2);
567 double e1 = sqrt(Ptot1*Ptot1 +
m1*
m1);
568 double e2 = sqrt(Ptot2*Ptot2 +
m2*
m2);
◆ InvMass()
float ElectronMuonTopoInfo::InvMass |
( |
| ) |
const |
|
inline |
◆ opositeCharge() [1/2]
◆ opositeCharge() [2/2]
◆ OppositeCharge()
bool ElectronMuonTopoInfo::OppositeCharge |
( |
| ) |
const |
|
inline |
◆ RoiWord()
int ElectronMuonTopoInfo::RoiWord |
( |
| ) |
const |
|
inline |
◆ SetDeltaPhi()
void ElectronMuonTopoInfo::SetDeltaPhi |
( |
float |
DeltaPhi | ) |
|
◆ SetDeltaR()
void ElectronMuonTopoInfo::SetDeltaR |
( |
float |
DeltaR | ) |
|
◆ SetElecValid()
void ElectronMuonTopoInfo::SetElecValid |
( |
bool |
ElecValid | ) |
|
◆ SetInvMass()
void ElectronMuonTopoInfo::SetInvMass |
( |
float |
InvMass | ) |
|
◆ SetOppositeCharge()
void ElectronMuonTopoInfo::SetOppositeCharge |
( |
bool |
OppositeCharge | ) |
|
◆ SetRoiWord()
void ElectronMuonTopoInfo::SetRoiWord |
( |
int |
RoiWord | ) |
|
◆ SetVertexState()
void ElectronMuonTopoInfo::SetVertexState |
( |
unsigned short |
vextexState | ) |
|
◆ VertexState()
unsigned short ElectronMuonTopoInfo::VertexState |
( |
| ) |
const |
|
inline |
◆ m_DeltaPhi
float ElectronMuonTopoInfo::m_DeltaPhi |
|
private |
◆ m_DeltaR
float ElectronMuonTopoInfo::m_DeltaR |
|
private |
◆ m_electronValid
bool ElectronMuonTopoInfo::m_electronValid |
|
private |
◆ m_InvMass
float ElectronMuonTopoInfo::m_InvMass |
|
private |
◆ m_oppositeCharge
bool ElectronMuonTopoInfo::m_oppositeCharge |
|
private |
◆ m_roiWord
int ElectronMuonTopoInfo::m_roiWord |
|
private |
◆ m_vertexState
unsigned short ElectronMuonTopoInfo::m_vertexState |
|
private |
3 bit description of vertex: 0=common, 1=not common, 3= not applicable
Definition at line 145 of file ElectronMuonTopoInfo.h.
The documentation for this class was generated from the following files:
const Rec::TrackParticle * trackParticle(unsigned int index=0) const
pointer to TrackParticle
void param(const TrigInDetTrackFitPar *param)
virtual double pt() const
transverse momentum
double invMass(const I4Momentum &pA, const I4Momentum &pB)
invariant mass from two I4momentum references
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling
double pt(void) const
transverse momentum
setEt setPhi setE277 setWeta2 eta1
double deltaR(const TrigElectron *electron1, const CombinedMuonFeature *muon1)
Delta R @ L2.
double invariantMass(const TrigElectron *electron1, const CombinedMuonFeature *muon1)
Invariant mass calculation @ L2.
float m_DeltaR
Delta R between electron and muon.
double deltaPhi(const TrigElectron *electron1, const CombinedMuonFeature *muon1)
Delta phi @ L2.
float m_InvMass
Invariant mass of electron and muon.
virtual double phi() const
get phi data member
virtual ChargeType charge() const
returns charge as a typedef ChargeType currently Charge Type is a double for jets this may be changed...
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
bool m_electronValid
boolean flag showing the validity of electron
const CaloCluster * cluster() const
pointer to CaloCluster
bool OppositeCharge() const
virtual double eta() const =0
pseudo rapidity
virtual double phi() const
phi in [-pi,pi[
unsigned short m_vertexState
3 bit description of vertex: 0=common, 1=not common, 3= not applicable
virtual double eta() const
pseudo rapidity
virtual double pt() const
get pt data member
virtual double phi() const =0
phi in [-pi,pi[
bool m_oppositeCharge
True if electron and muon have opposite charged.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
virtual double eta() const
get eta data member
int m_roiWord
Identifier of the RoI.
const TrigInDetTrack * IDTrack(void) const
int RoiWord() const
accessor methods
double e2(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 2nd sampling
virtual double e() const
Retrieve energy independent of signal state.
Helper to simultaneously calculate sin and cos of the same angle.
int charge() const
accessor to return the track charge (sign of TrigInDetTrack pT)
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
constexpr int pow(int base, int exp) noexcept
float m_DeltaPhi
Delta Phi between electron and muon.