ATLAS Offline Software
Loading...
Searching...
No Matches
MuonSegmentExtractor Class Reference

#include <MuonSegmentExtractor.h>

Inheritance diagram for MuonSegmentExtractor:
Collaboration diagram for MuonSegmentExtractor:

Public Member Functions

 MuonSegmentExtractor (const xAOD::MuonSegmentContainer *, const std::string &label="")
virtual ~MuonSegmentExtractor ()
virtual MuonSegmentExtractorclone () const override
virtual MuonSegmentExtractorghostClone () const override
virtual void addToJet (xAOD::Jet &, const std::vector< int > &indices) const override
virtual std::string toString (int level) const override
virtual bool checkIntegrity () const override

Private Attributes

const xAOD::MuonSegmentContainerm_originalParticles
std::string m_label

Detailed Description

Definition at line 17 of file MuonSegmentExtractor.h.

Constructor & Destructor Documentation

◆ MuonSegmentExtractor()

MuonSegmentExtractor::MuonSegmentExtractor ( const xAOD::MuonSegmentContainer * ms,
const std::string & label = "" )

Definition at line 11 of file MuonSegmentExtractor.cxx.

12 :
14}
const xAOD::MuonSegmentContainer * m_originalParticles
std::string label(const std::string &format, int i)
Definition label.h:19

◆ ~MuonSegmentExtractor()

MuonSegmentExtractor::~MuonSegmentExtractor ( )
virtualdefault

Member Function Documentation

◆ addToJet()

void MuonSegmentExtractor::addToJet ( xAOD::Jet & jet,
const std::vector< int > & indices ) const
overridevirtual

Implements IConstituentExtractor.

Definition at line 28 of file MuonSegmentExtractor.cxx.

29 {
30
31 std::vector<const xAOD::MuonSegment*> constituents;
32 constituents.reserve(indices.size());
33 for(auto i : indices){constituents.push_back((*m_originalParticles)[i]);}
34
35 // MuonSegments are always ghosts
36
37 jet.setAssociatedObjects(m_label, constituents);
38 jet.setAttribute<int>(m_label+"Count", constituents.size());
39}
void setAttribute(const std::string &name, const T &v)
void setAssociatedObjects(const std::string &name, const std::vector< const T * > &vec)
set associated objects from a vector of arbitrary object.
std::pair< long int, long int > indices

◆ checkIntegrity()

bool MuonSegmentExtractor::checkIntegrity ( ) const
overridevirtual

Implements IConstituentExtractor.

Definition at line 62 of file MuonSegmentExtractor.cxx.

62 {
63 for(const auto *const ip: *m_originalParticles){
64 try{
65 ip->pz();
66 } catch(...) {
67 return false;
68 }
69 }
70 return true;
71}

◆ clone()

MuonSegmentExtractor * MuonSegmentExtractor::clone ( ) const
overridevirtual

Implements IConstituentExtractor.

Definition at line 18 of file MuonSegmentExtractor.cxx.

18 {
19 // who is going to delete this?
20 return new MuonSegmentExtractor(*this);
21}
MuonSegmentExtractor(const xAOD::MuonSegmentContainer *, const std::string &label="")

◆ ghostClone()

MuonSegmentExtractor * MuonSegmentExtractor::ghostClone ( ) const
overridevirtual

Implements IConstituentExtractor.

Definition at line 23 of file MuonSegmentExtractor.cxx.

23 {
24 // who is going to delete this?
25 return new MuonSegmentExtractor(*this);
26}

◆ toString()

std::string MuonSegmentExtractor::toString ( int level) const
overridevirtual

Implements IConstituentExtractor.

Definition at line 42 of file MuonSegmentExtractor.cxx.

42 {
43 std::ostringstream oss{"", std::ios::ate};
44 oss << "MuonSegmentExtractor dump level(" << level << ")"
45 << " label " << m_label
46 << " isGhost " << std::boolalpha << true // muon segments ar always ghost
47 << " No of MuonSegments: " << m_originalParticles->size();
48
49 if (level > 0){
50 oss << "\n MuonSegment momenta\n";
51 std::for_each(m_originalParticles->begin(),
53 [&oss](const xAOD::MuonSegment* p){
54 oss << p->px() << " " << p->py() << " " << p->pz() << '\n';});
55 }
56
57 return oss.str();
58}
MuonSegment_v1 MuonSegment
Reference the current persistent version:

Member Data Documentation

◆ m_label

std::string MuonSegmentExtractor::m_label
private

Definition at line 35 of file MuonSegmentExtractor.h.

◆ m_originalParticles

const xAOD::MuonSegmentContainer* MuonSegmentExtractor::m_originalParticles
private

Definition at line 34 of file MuonSegmentExtractor.h.


The documentation for this class was generated from the following files: