ATLAS Offline Software
Loading...
Searching...
No Matches
ElectronMuonTopoInfo.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5/**************************************************************************
6 **
7 ** File: Trigger/TrigEvent/TrigTopoEvent/ElectronMuonTopoInfo.h
8 **
9 ** Description: -Class for description of combined electron-muon object for
10 ** algorithms in TrigEgammaMuonCombHypo package
11 **
12 ** Author: Pavel Jez <pavel.jez@cern.ch>
13 **
14 ** Created: Apr 9, 2011
15 **
16 **
17 **************************************************************************/
18
19#ifndef _ELECTRONMUONTOPOINFO_H_
20#define _ELECTRONMUONTOPOINFO_H_
21
22// standard stuff
23#include <string>
24#include <map>
25#include <cmath>
26// general athena stuff
27#include "GaudiKernel/MsgStream.h"
28
33
35#include "tauEvent/TauJet.h"
39#include "tauEvent/TauPID.h"
40
41
42
50
52
53 public:
55 ElectronMuonTopoInfo(int roiWord, float deltaPhi=-1., float deltaR = -1., float invMass = -1., bool el_valid = false, bool oppositeCharge = 0, unsigned short vertexState =0);
56
58
59
61
62 int RoiWord() const { return m_roiWord; }
63 float DeltaPhi() const { return m_DeltaPhi; }
64 float DeltaR() const { return m_DeltaR; }
65 float InvMass() const { return m_InvMass; }
66 bool ElecValid() const{ return m_electronValid; }
67 bool OppositeCharge() const { return m_oppositeCharge; }
68 unsigned short VertexState() const { return m_vertexState;}
69
70
72 void SetRoiWord(int RoiWord);
73 void SetDeltaPhi(float DeltaPhi);
74 void SetDeltaR(float DeltaR);
75 void SetInvMass(float InvMass);
76 void SetElecValid(bool ElecValid);
78 void SetVertexState(unsigned short vextexState);
79
81
82
83
85 Vertex commonVertex(const TrigElectron* electron1, const CombinedMuonFeature* muon1);
86 bool opositeCharge(const TrigElectron* electron1, const CombinedMuonFeature* muon1);
87
88 double invariantMass(const TrigElectron* electron1, const CombinedMuonFeature* muon1);
89 double deltaPhi(const TrigElectron* electron1, const CombinedMuonFeature* muon1);
90 double deltaR(const TrigElectron* electron1, const CombinedMuonFeature* muon1);
91
92 //overloading for L2 tau tau combinations
93 double invariantMass(const TrigTau* tau1, const TrigTau* tau2);
94 double deltaPhi(const TrigTau* tau1, const TrigTau* tau2);
95 double deltaR(const TrigTau* tau1, const TrigTau* tau2);
96 //overloading for L2 tau e combinations
97 double invariantMass(const TrigTau* tau1, const TrigElectron* electron1);
98 double deltaPhi(const TrigTau* tau1, const TrigElectron* electron1);
99 double deltaR(const TrigTau* tau1, const TrigElectron* electron1);
100 //overloading for L2 tau mu combinations
101 double invariantMass(const TrigTau* tau1, const CombinedMuonFeature* muon1);
102 double deltaPhi(const TrigTau* tau1, const CombinedMuonFeature* muon1);
103 double deltaR(const TrigTau* tau1, const CombinedMuonFeature* muon1);
104
105
106 // overloading for EF
107 Vertex commonVertex(const Trk::Perigee* perigeeEL, const Trk::Perigee* perigeeMU, double& pull, bool debug = false);
108
109 bool opositeCharge(const egamma* electron1, const Trk::Perigee* muon1);
110 double invariantMass(const egamma* electron1, const Trk::Perigee* muon1);
111 double deltaR(const egamma* electron1, const Trk::Perigee* muon1);
112 double deltaPhi(const egamma* electron1, const Trk::Perigee* muon1);
113
114 double invariantMass(double Pt1, double eta1, double phi1, double m1,
115 double Pt2, double eta2, double phi2, double m2) const ;
116
117 // overloading for EF tau tau combinations
118 double deltaR(const Analysis::TauJet* tau1, const Analysis::TauJet* tau2);
119 double deltaPhi(const Analysis::TauJet* tau1, const Analysis::TauJet* tau2);
120 double invariantMass(const Analysis::TauJet* tau1, const Analysis::TauJet* tau2);
121 // overloading for EF tau e combinations
122 double deltaR(const Analysis::TauJet* tau1, const egamma* electron1);
123 double deltaPhi(const Analysis::TauJet* tau1, const egamma* electron1);
124 double invariantMass(const Analysis::TauJet* tau1, const egamma* electron1);
125 // overloading for EF tau mu combinations
126 double deltaR(const Analysis::TauJet* tau1, const Trk::Perigee* muon1);
127 double deltaPhi(const Analysis::TauJet* tau1, const Trk::Perigee* muon1);
128 double invariantMass(const Analysis::TauJet* tau1, const Trk::Perigee* muon1);
129
130
131 private:
137 float m_DeltaR;
145 unsigned short m_vertexState;
146
147};
148
150std::string str( const ElectronMuonTopoInfo& d );
151
152MsgStream& operator<< ( MsgStream& m, const ElectronMuonTopoInfo& d );
153
154// comparison operators
155bool operator==( const ElectronMuonTopoInfo& d1, const ElectronMuonTopoInfo& d2 );
156inline bool operator!=( const ElectronMuonTopoInfo& d1, const ElectronMuonTopoInfo& d2 ) {
157 return !( d1 == d2 );
158 }
159
160
161CLASS_DEF( ElectronMuonTopoInfo , 129722551 , 1 )
162
163
164#endif //ELECTRONMUONTOPOINFO_H_
165
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
bool operator==(const ElectronMuonTopoInfo &d1, const ElectronMuonTopoInfo &d2)
MsgStream & operator<<(MsgStream &m, const ElectronMuonTopoInfo &d)
bool operator!=(const ElectronMuonTopoInfo &d1, const ElectronMuonTopoInfo &d2)
boost::graph_traits< boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS > >::vertex_descriptor Vertex
const bool debug
Declaration of tau jet transient class.
Declaration of details class for tau event.
Declaration of extra details class for tau event.
Declaration of tau details container transient class.
Object for taus common for ESD and AOD.
ElectronMuonTopoInfo is a class for storing information about combuned electron-muon object.
bool opositeCharge(const TrigElectron *electron1, const CombinedMuonFeature *muon1)
Opposite charge @ L2.
float m_DeltaR
Delta R between electron and muon.
double deltaR(const TrigElectron *electron1, const CombinedMuonFeature *muon1)
Delta R @ L2.
void SetOppositeCharge(bool OppositeCharge)
unsigned short m_vertexState
3 bit description of vertex: 0=common, 1=not common, 3= not applicable
float m_DeltaPhi
Delta Phi between electron and muon.
void SetElecValid(bool ElecValid)
unsigned short VertexState() const
void SetDeltaR(float DeltaR)
int m_roiWord
Identifier of the RoI.
void SetVertexState(unsigned short vextexState)
bool m_electronValid
boolean flag showing the validity of electron
void SetInvMass(float InvMass)
double invariantMass(const TrigElectron *electron1, const CombinedMuonFeature *muon1)
Invariant mass calculation @ L2.
double deltaPhi(const TrigElectron *electron1, const CombinedMuonFeature *muon1)
Delta phi @ L2.
void SetRoiWord(int RoiWord)
set methods
int RoiWord() const
accessor methods
float m_InvMass
Invariant mass of electron and muon.
Vertex commonVertex(const TrigElectron *electron1, const CombinedMuonFeature *muon1)
checking Vertex compatibility @ L2
void SetDeltaPhi(float DeltaPhi)
bool m_oppositeCharge
True if electron and muon have opposite charged.
File: TrigTau.h.
Definition TrigTau.h:37
elec/gamma data class.
Definition egamma.h:58
Definition Common.h:9
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee