ATLAS Offline Software
Loading...
Searching...
No Matches
met::METSoftTermsTool Class Reference

#include <METSoftTermsTool.h>

Inheritance diagram for met::METSoftTermsTool:
Collaboration diagram for met::METSoftTermsTool:

Public Member Functions

 METSoftTermsTool (const std::string &name)
 ~METSoftTermsTool ()=default
virtual StatusCode initialize () override
 Dummy implementation of the initialisation function.
virtual StatusCode execute (xAOD::MissingET *metTerm, xAOD::MissingETComponentMap *metMap) const override
virtual void print () const
 Print the state of the tool.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
Additional helper functions, not directly mimicking Athena
template<class T>
const T * getProperty (const std::string &name) const
 Get one of the tool's properties.
const std::string & msg_level_name () const __attribute__((deprecated))
 A deprecated function for getting the message level's name.
const std::string & getName (const void *ptr) const
 Get the name of an object that is / should be in the event store.
SG::sgkey_t getKey (const void *ptr) const
 Get the (hashed) key of an object that is in the event store.

Protected Member Functions

virtual StatusCode executeTool (xAOD::MissingET *metTerm, xAOD::MissingETComponentMap *metMap) const override
virtual bool accept (const xAOD::IParticle *object) const override
bool accept (const xAOD::CaloCluster *clus) const
virtual bool resolveOverlap (const xAOD::IParticle *object, xAOD::MissingETComponentMap *metMap, std::vector< const xAOD::IParticle * > &acceptedSignals, MissingETBase::Types::weight_t &objWeight) const override
bool resolveOverlap (xAOD::MissingETComponentMap *metMap, std::vector< const xAOD::IParticle * > &acceptedSignals) const
virtual bool addToMET (const xAOD::IParticle *object, const std::vector< const xAOD::IParticle * > &acceptedSignals, xAOD::MissingET *metTerm, xAOD::MissingETComponentMap *metMap, MissingETBase::Types::weight_t &objWeight, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::TrackCluster) const
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Static Protected Member Functions

static bool accept (const xAOD::TrackParticle *trk)

Protected Attributes

Gaudi::Property< std::string > m_output_met_key {this, "MissingETKey", "", "output MET key"}
Gaudi::Property< std::string > m_mod_clus_key {this, "ModifiedClusKey", "", "modified clusters key"}
Gaudi::Property< boolm_useRapidity {this, "UseRapidity", false, }
bool m_useModClus {}

Private Member Functions

 METSoftTermsTool ()

Private Attributes

Gaudi::Property< std::string > m_inputType {this, "InputComposition", "Clusters", ""}
xAOD::Type::ObjectType m_st_objtype
Gaudi::Property< boolm_cl_vetoNegE {this, "VetoNegEClus", true, ""}
Gaudi::Property< boolm_cl_onlyNegE {this, "OnlyNegEClus", false, ""}
SG::ReadHandleKey< xAOD::CaloClusterContainerm_caloClusterKey {this, "CaloClusterKey", "", "Input calo cluster container name (not to be configured manually)"}
SG::ReadHandleKey< xAOD::TrackParticleContainerm_trackParticleKey {this, "TrackKey", "", "Input track container name (not to be configured manually)"}

Detailed Description

Definition at line 39 of file METSoftTermsTool.h.

Constructor & Destructor Documentation

◆ METSoftTermsTool() [1/2]

met::METSoftTermsTool::METSoftTermsTool ( const std::string & name)

Definition at line 53 of file METSoftTermsTool.cxx.

53 :
56 {
57 }
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition AsgTool.cxx:58
METBuilderTool()
Default constructor:

◆ ~METSoftTermsTool()

met::METSoftTermsTool::~METSoftTermsTool ( )
default

◆ METSoftTermsTool() [2/2]

met::METSoftTermsTool::METSoftTermsTool ( )
private

Member Function Documentation

◆ accept() [1/3]

bool met::METSoftTermsTool::accept ( const xAOD::CaloCluster * clus) const
protected

Definition at line 108 of file METSoftTermsTool.cxx.

109 {
110 if(!clus) return false;
111 if(m_cl_vetoNegE && clus->e()<0) return false;
112 if(m_cl_onlyNegE && clus->e()>0) return false;
113
114 return true;
115 }
Gaudi::Property< bool > m_cl_onlyNegE
Gaudi::Property< bool > m_cl_vetoNegE
virtual double e() const
The total energy of the particle.

◆ accept() [2/3]

bool met::METSoftTermsTool::accept ( const xAOD::IParticle * object) const
overrideprotectedvirtual

Implements met::METBuilderTool.

Definition at line 81 of file METSoftTermsTool.cxx.

82 {
83
84 if(object->type() != m_st_objtype){
85 ATH_MSG_WARNING("Type mismatch: Expected " << m_st_objtype << ", given " << object->type());
86 return false;
87 }
88
89 // Apply cuts
91 ATH_MSG_VERBOSE("Check if cluster is accepted");
92
93 const xAOD::CaloCluster* clus = static_cast<const xAOD::CaloCluster*>(object);
94 return (clus) ? accept(clus) : false;
95
96 } // end of if using clusters
98 ATH_MSG_VERBOSE("Check if track is accepted");
99
100 const xAOD::TrackParticle* track = static_cast<const xAOD::TrackParticle*>(object);
101 return (track) ? accept(track) : false;
102
103 } // end of if using tracks
104
105 return false; // Default
106 }
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
virtual bool accept(const xAOD::IParticle *object) const override
xAOD::Type::ObjectType m_st_objtype
@ TrackParticle
The object is a charged track particle.
Definition ObjectType.h:43
@ CaloCluster
The object is a calorimeter cluster.
Definition ObjectType.h:39
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:

◆ accept() [3/3]

bool met::METSoftTermsTool::accept ( const xAOD::TrackParticle * trk)
staticprotected

Definition at line 117 of file METSoftTermsTool.cxx.

118 {
119 // if(!trk) return false;
120
121// if(fabs(trk->pt())<500/*MeV*/ || fabs(trk->eta())>2.5) return false;
122//
123// // could add some error checking to make sure we successfully read the details
124// uint8_t nPixHits(0), nSctHits(0);
125// trk->summaryValue(nPixHits,xAOD::numberOfPixelHits);
126// if(nPixHits<1) return false;
127// trk->summaryValue(nSctHits,xAOD::numberOfSCTHits);
128// if(nSctHits<6) return false;
129
130 return true;
131 }

◆ addToMET()

bool met::METBuilderTool::addToMET ( const xAOD::IParticle * object,
const std::vector< const xAOD::IParticle * > & acceptedSignals,
xAOD::MissingET * metTerm,
xAOD::MissingETComponentMap * metMap,
MissingETBase::Types::weight_t & objWeight,
MissingETBase::UsageHandler::Policy p = MissingETBase::UsageHandler::TrackCluster ) const
protectedvirtualinherited

Definition at line 77 of file METBuilderTool.cxx.

83 {
84
85 metTerm->add(object->pt()*cos(object->phi())*objWeight.wpx(),
86 object->pt()*sin(object->phi())*objWeight.wpy(),
87 object->pt()*objWeight.wet()); // or actually ET?)
88
89 return MissingETComposition::insert(metMap,metTerm,object,acceptedSignals,objWeight,p);
90 }
double wpx() const
Returns .
double wpy() const
Returns .
double wet() const
Returns .
void add(const IParticle *particle)
Add particle kinematics to MET.
static bool insert(MissingETComponentMap *pMap, const MissingET *pMET, const IParticle *pPart, MissingETBase::Types::weight_t weight=MissingETBase::Types::weight_t())
Insert contributing signal or physics object by pointer, with optional kinematic weight object.

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode met::METBuilderTool::execute ( xAOD::MissingET * metTerm,
xAOD::MissingETComponentMap * metMap ) const
overridevirtualinherited

Implements IMETToolBase.

Definition at line 55 of file METBuilderTool.cxx.

56 {
57 ATH_MSG_DEBUG ("In execute: " << name() << "...");
58
59 if( metTerm==nullptr ) {
60 ATH_MSG_ERROR("Invalid input MissingET pointer provided!");
61 return StatusCode::FAILURE;
62 }
63 if( metMap==nullptr ) {
64 ATH_MSG_ERROR("Invalid input MissingETComponentMap pointer provided!");
65 return StatusCode::FAILURE;
66 }
67
68 metTerm->setName(m_output_met_key);
69 return this->executeTool(metTerm,metMap);
70 }
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
Gaudi::Property< std::string > m_output_met_key
virtual StatusCode executeTool(xAOD::MissingET *metTerm, xAOD::MissingETComponentMap *metMap) const =0
void setName(const std::string &name)
Set the name of the MET object.

◆ executeTool()

StatusCode met::METSoftTermsTool::executeTool ( xAOD::MissingET * metTerm,
xAOD::MissingETComponentMap * metMap ) const
overrideprotectedvirtual

Implements met::METBuilderTool.

Definition at line 167 of file METSoftTermsTool.cxx.

168 {
169
170 ATH_MSG_DEBUG ("In execute: " << name() << "...");
171
172 vector<const IParticle*> signalList;
174 // Retrieve the calo container
175 SG::ReadHandle<xAOD::CaloClusterContainer> caloClusCont(m_caloClusterKey);
176 if (!caloClusCont.isValid()) {
177 ATH_MSG_WARNING("Unable to retrieve input calo cluster container");
178 }
179
180 signalList.reserve(caloClusCont->size());
181 //stateHelperList.reserve(caloClusCont->size());
182
184 metTerm->setSource(source);
185
187 if(iter==metMap->end()) {
188 ATH_MSG_WARNING("Could not find current METComponent in MET Map!");
189 return StatusCode::SUCCESS;
190 }
191 MissingETComponent* newComp = *iter;
192 newComp->setStatusWord(MissingETBase::Status::contributedSoftTerm());
193
194 // Loop over all clusters
195 for(const auto *iClus : *caloClusCont) {
196 // Check if cluster satisfies the requirements
197 if( this->accept(iClus)) {
198 // Add the selected clusters to the list
199 signalList.push_back(iClus);
200 }
201 } // end loop over clusters
202
203 ATH_MSG_DEBUG("Selected " << signalList.size() << " topoclusters for soft MET");
204
205 } // end if Clusters
207
208 // Retrieve the track container
209 SG::ReadHandle<xAOD::TrackParticleContainer> trackParCont(m_trackParticleKey);
210 if (!trackParCont.isValid()) {
211 ATH_MSG_WARNING("Unable to retrieve input track particle container");
212 }
213 signalList.reserve(trackParCont->size());
214
215 MissingETBase::Types::bitmask_t source = MissingETBase::Source::Type::SoftEvent | MissingETBase::Source::idTrack();
216 metTerm->setSource(source);
217
219 if(iter==metMap->end()) {
220 ATH_MSG_WARNING("Could not find current METComponent in MET Map!");
221 return StatusCode::SUCCESS;
222 }
223 MissingETComponent* newComp = *iter;
224 newComp->setStatusWord(MissingETBase::Status::contributedSoftTerm());
225
226 // Loop over all tracks
227 for(const auto *iTrk : *trackParCont) {
228 // Check if track satisfies the requirements
229 if( this->accept(iTrk) ) {
230 // Add the selected track particles to the list
231 signalList.push_back(iTrk);
232 }
233 } // end loop over tracks
234
235 ATH_MSG_DEBUG("Selected " << signalList.size() << " tracks for soft MET");
236
237 } // end if Tracks
238
239 // Resolve overlap: signalList is accessed by reference and updated w/ content that is not
240 // associated to any object. True if signalList size 0, i.e. nothing to add to MET
241 if( this->resolveOverlap(metMap,signalList) ) return StatusCode::SUCCESS;
242
243 // Loop over the content and add to MET
244 vector<const IParticle*> dummyList;
245 MissingETBase::Types::weight_t unitWeight(1.,1.,1.);
246
247 for(const IParticle* part : signalList) this->addToMET(part,dummyList,metTerm,metMap,unitWeight);
248
249 ATH_MSG_DEBUG( "Map contains " << (*MissingETComposition::find(metMap,metTerm))->objects().size() << " soft signals" );
250
251 return StatusCode::SUCCESS;
252 }
DataModel_detail::iterator< DataVector > iterator
Definition DataVector.h:842
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
virtual bool addToMET(const xAOD::IParticle *object, const std::vector< const xAOD::IParticle * > &acceptedSignals, xAOD::MissingET *metTerm, xAOD::MissingETComponentMap *metMap, MissingETBase::Types::weight_t &objWeight, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::TrackCluster) const
virtual bool resolveOverlap(const xAOD::IParticle *object, xAOD::MissingETComponentMap *metMap, std::vector< const xAOD::IParticle * > &acceptedSignals, MissingETBase::Types::weight_t &objWeight) const override
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleKey
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_caloClusterKey
void setSource(MissingETBase::Types::bitmask_t src)
Set the source of the MET object.
uint64_t bitmask_t
Type for status word bit mask.
xAOD::MissingETComponent_v1::Weight weight_t
Type for kinematic weight.
MissingETComponent_v1 MissingETComponent
Version control by type definition.
static Types::bitmask_t idTrack(Region reg=Region::FullAcceptance)
Bit pattern indicating a ID Track MET term.
static Types::bitmask_t cluster(Region reg=Region::FullAcceptance)
Bit mask for MET term from any cluster signal objects.
static Types::bitmask_t softEvent(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed soft event.
static Types::bitmask_t contributedSoftTerm()
General soft term contribution tag accessor.
static MissingETComponentMap::const_iterator find(const MissingETComponentMap *pMap, const MissingET *pmetObj)
Find non-modifiable contribution for a given MET object.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void * ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119 {
120
121#ifdef XAOD_STANDALONE
122 // In case we use @c xAOD::TEvent, we have a direct function call
123 // for this.
124 return evtStore()->event()->getKey( ptr );
125#else
126 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127 return ( proxy == nullptr ? 0 : proxy->sgkey() );
128#endif // XAOD_STANDALONE
129 }
ServiceHandle< StoreGateSvc > & evtStore()

◆ getName()

const std::string & asg::AsgTool::getName ( const void * ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106 {
107
108#ifdef XAOD_STANDALONE
109 // In case we use @c xAOD::TEvent, we have a direct function call
110 // for this.
111 return evtStore()->event()->getName( ptr );
112#else
113 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114 static const std::string dummy = "";
115 return ( proxy == nullptr ? dummy : proxy->name() );
116#endif // XAOD_STANDALONE
117 }

◆ getProperty()

template<class T>
const T * asg::AsgTool::getProperty ( const std::string & name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode met::METSoftTermsTool::initialize ( void )
overridevirtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

Reimplemented from met::METBuilderTool.

Definition at line 61 of file METSoftTermsTool.cxx.

62 {
64 ATH_MSG_VERBOSE ("Initializing " << name() << "...");
65
66 // use string property and convert to int?
67 if(m_inputType.value() == "Clusters") m_st_objtype = xAOD::Type::CaloCluster;
68 else if(m_inputType.value() == "Tracks") m_st_objtype = xAOD::Type::TrackParticle;
69 else {
70 ATH_MSG_FATAL("Invalid input collection type " << m_inputType.value() << " supplied!");
71 }
72
73 // ReadHandleKey(s)
76
77 return StatusCode::SUCCESS;
78 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_FATAL(x)
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Gaudi::Property< std::string > m_inputType

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101 {
102
103 return MSG::name( msg().level() );
104 }
MsgStream & msg() const
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition MsgLevel.cxx:19

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ print()

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ resolveOverlap() [1/2]

bool met::METSoftTermsTool::resolveOverlap ( const xAOD::IParticle * object,
xAOD::MissingETComponentMap * metMap,
std::vector< const xAOD::IParticle * > & acceptedSignals,
MissingETBase::Types::weight_t & objWeight ) const
overrideprotectedvirtual

Implements met::METBuilderTool.

Definition at line 133 of file METSoftTermsTool.cxx.

137 {
138
139 // Check/Resolve overlap
140 bool objsused = false;
142 ATH_MSG_DEBUG("Check for used clusters");
143 objsused = metMap->checkUsage(acceptedSignals,MissingETBase::UsageHandler::OnlyCluster);
144 }
146 ATH_MSG_DEBUG("Check for used tracks");
147 objsused = metMap->checkUsage(acceptedSignals,MissingETBase::UsageHandler::OnlyTrack);
148 }
149 if(!objsused) {
150 ATH_MSG_DEBUG("No objects used.");
151 }
152
153 ATH_MSG_DEBUG( acceptedSignals.size() << " retained after overlap removal");
154
155 return acceptedSignals.empty();
156 }
bool checkUsage(const IParticle *pPart, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::OnlyCluster) const
Check if a given object is already used in MET.
@ OnlyCluster
CaloCluster based only.

◆ resolveOverlap() [2/2]

bool met::METSoftTermsTool::resolveOverlap ( xAOD::MissingETComponentMap * metMap,
std::vector< const xAOD::IParticle * > & acceptedSignals ) const
protected

Definition at line 159 of file METSoftTermsTool.cxx.

161 {
162 const xAOD::IParticle* dummyObject = nullptr; // Just a dummy object
163 MissingETBase::Types::weight_t dummyObjWeight(1.,1.,1.); // Currently use a default value
164 return resolveOverlap(dummyObject, metMap, acceptedSignals, dummyObjWeight);
165 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_caloClusterKey

SG::ReadHandleKey<xAOD::CaloClusterContainer> met::METSoftTermsTool::m_caloClusterKey {this, "CaloClusterKey", "", "Input calo cluster container name (not to be configured manually)"}
private

Definition at line 82 of file METSoftTermsTool.h.

82{this, "CaloClusterKey", "", "Input calo cluster container name (not to be configured manually)"};

◆ m_cl_onlyNegE

Gaudi::Property<bool> met::METSoftTermsTool::m_cl_onlyNegE {this, "OnlyNegEClus", false, ""}
private

Definition at line 81 of file METSoftTermsTool.h.

81{this, "OnlyNegEClus", false, ""};

◆ m_cl_vetoNegE

Gaudi::Property<bool> met::METSoftTermsTool::m_cl_vetoNegE {this, "VetoNegEClus", true, ""}
private

Definition at line 80 of file METSoftTermsTool.h.

80{this, "VetoNegEClus", true, ""};

◆ m_inputType

Gaudi::Property<std::string> met::METSoftTermsTool::m_inputType {this, "InputComposition", "Clusters", ""}
private

Definition at line 77 of file METSoftTermsTool.h.

77{this, "InputComposition", "Clusters", ""}; // Options : Clusters (default) OR Tracks

◆ m_mod_clus_key

Gaudi::Property<std::string> met::METBuilderTool::m_mod_clus_key {this, "ModifiedClusKey", "", "modified clusters key"}
protectedinherited

Definition at line 63 of file METBuilderTool.h.

63{this, "ModifiedClusKey", "", "modified clusters key"};

◆ m_output_met_key

Gaudi::Property<std::string> met::METBuilderTool::m_output_met_key {this, "MissingETKey", "", "output MET key"}
protectedinherited

Definition at line 62 of file METBuilderTool.h.

62{this, "MissingETKey", "", "output MET key"};

◆ m_st_objtype

xAOD::Type::ObjectType met::METSoftTermsTool::m_st_objtype
private

Definition at line 78 of file METSoftTermsTool.h.

◆ m_trackParticleKey

SG::ReadHandleKey<xAOD::TrackParticleContainer> met::METSoftTermsTool::m_trackParticleKey {this, "TrackKey", "", "Input track container name (not to be configured manually)"}
private

Definition at line 83 of file METSoftTermsTool.h.

83{this, "TrackKey", "", "Input track container name (not to be configured manually)"};

◆ m_useModClus

bool met::METBuilderTool::m_useModClus {}
protectedinherited

Definition at line 65 of file METBuilderTool.h.

65{}; // use modified e.g. origin-corrected clusters

◆ m_useRapidity

Gaudi::Property<bool> met::METBuilderTool::m_useRapidity {this, "UseRapidity", false, }
protectedinherited

Definition at line 64 of file METBuilderTool.h.

64{this, "UseRapidity", false, }; // by default, use pseudorapidity for matching

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