Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
16 #include "GaudiKernel/ToolHandle.h"
28 class TrkV0VertexFitter;
29 class ITrackSelectorTool;
34 static const InterfaceID IID_FourMuonTool(
"FourMuonTool", 1, 0);
40 std::vector<const xAOD::Muon*>
muons;
45 std::string chargeStr =
"";
46 if (
muons.at(0)->charge() > 0) {chargeStr +=
"+";}
47 else {chargeStr +=
"-";}
48 if (
muons.at(1)->charge() > 0) {chargeStr +=
"+";}
49 else {chargeStr +=
"-";}
50 if (
muons.size()==4) {
51 if (
muons.at(2)->charge() > 0) {chargeStr +=
"+";}
52 else {chargeStr +=
"-";}
53 if (
muons.at(3)->charge() > 0) {chargeStr +=
"+";}
54 else {chargeStr +=
"-";}
60 std::string indexStr =
"";
62 if (
muons.size()==2) {
63 ss.str(
"");
ss.clear();
66 ss.str(
"");
ss.clear();
70 if (
muons.size()==4) {
71 for (
unsigned int i=0;
i<4; ++
i) {
72 ss.str(
"");
ss.clear();
81 auto& link =
mu->inDetTrackParticleLink();
82 return link.isValid() ? *link :
nullptr;
85 std::vector<const xAOD::TrackParticle*>
trackParticles(
const std::string& specify) {
86 std::vector<const xAOD::TrackParticle*> theTracks;
88 if (
muons.at(0)->charge()*
muons.at(1)->charge() < 0) oppCh=
true;
89 if (specify==
"pair1") {
93 if (specify==
"pair2") {
137 FourMuonTool(
const std::string&
t,
const std::string&
n,
const IInterface*
p);
141 static const InterfaceID&
interfaceID() {
return IID_FourMuonTool;}
150 static std::vector<std::vector<unsigned int> >
mFromN(
unsigned int m,
unsigned int n);
153 std::vector<unsigned int> &combination,
154 std::vector<unsigned int> &mainList,
155 std::vector<std::vector<unsigned int> > &allCombinations);
157 std::vector<Combination> &
pairs,
158 std::vector<Combination> &quadruplets,
159 unsigned int nSelectedMuons);
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Temporary container used until we have I/O for AuxStoreInternal.
std::string combinationIndices()
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< unsigned int > quadIndices
Ensure that the ATLAS eigen extensions are properly loaded.
std::pair< unsigned int, unsigned int > pairIndices
Eigen::Matrix< double, 3, 1 > Vector3D
std::vector< const xAOD::Muon * > muons
Class describing a Vertex.
const xAOD::TrackParticle * GetMuonTrack(const xAOD::Muon *mu) const
AthConfigFlags beamSpot(AthConfigFlags flags, str instanceName, str recoMode)
Class describing a TrackParticle.
std::string combinationCharges()
std::vector< const xAOD::TrackParticle * > trackParticles(const std::string &specify)