Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
32 if ( pMap ==
nullptr || pMET ==
nullptr )
33 { printf(
"MissingETComposition::add - ERROR - possible invalid pointer values: MissingETComponentMap* = %p, MissingET* = %p\n",(
void*)pMap,(
void*)pMET);
return false; }
35 if ( pMap->
find(pMET) != pMap->
end() )
36 { printf(
"MissingETComposition::add - WARNING - MissingET object \042%s\042 already in map, not added again\n",pMET->
name().c_str());
return false; }
39 return pMap->
back() !=
nullptr;
48 if ( pMap ==
nullptr || pMET ==
nullptr )
49 { printf(
"MissingETComposition::insert - ERROR - possible invalid pointer values: MissingETComponentMap* = %p, MissingET* = %p\n",(
void*)pMap,(
void*)pMET);
return false; }
52 if ( fMap == pMap->
end() )
53 { printf(
"MissingETComposition::insert - ERROR - referenced MissingET object \042%%%s\042 not yet in map, add first!\n",pMET->
name().c_str());
return false; }
55 (*fMap)->addObject(pPart,wpx,wpy,wet);
66 bool flag(
insert(pMap,pMET,pPart,wpx,wpy,wet));
174 {
return *fCont !=
nullptr ? (*fCont)->metObject() : (
const MissingET*)
nullptr; }
190 if ( pMap ==
nullptr || pJet ==
nullptr )
191 { printf(
"MissingETComposition::add - ERROR - possible invalid pointer values: MissingETAssociationMap* = %p, Jet* = %p\n",(
void*)pMap,(
void*)pJet);
return false; }
193 if ( pMap->
find(pJet) != pMap->
end() )
194 { printf(
"MissingETComposition::add - WARNING - jet with index %zu already in map, not added again\n",pJet->
index());
return false; }
196 size_t nextIdx = pMap->
size();
200 pMap->
back()->setJetTrkVec(trkvec);
201 return pMap->
back() !=
nullptr;
207 if ( pMap ==
nullptr || pJet ==
nullptr )
208 { printf(
"MissingETComposition::add - ERROR - possible invalid pointer values: MissingETAssociationMap* = %p, Jet* = %p\n",(
void*)pMap,(
void*)pJet);
return false; }
210 if ( pMap->
find(pJet) != pMap->
end() )
211 { printf(
"MissingETComposition::add - WARNING - jet with index %zu already in map, not added again\n",pJet->
index());
return false; }
214 std::vector<ElementLink<IParticleContainer> > jetconst = pJet->
constituentLinks();
216 if(!jettracks.empty()) {
218 for(
const auto& trk : jettracks) {
220 jetconst.push_back(link);
224 return add(pMap,pJet,jetconst,trkvec);
230 if ( pMap ==
nullptr )
231 { printf(
"MissingETComposition::addMiscAssociation - ERROR - possible invalid pointer values: MissingETAssociationMap* = %p\n",(
void*)pMap);
return false; }
234 return pMap->
back() !=
nullptr;
240 if ( pMap ==
nullptr )
241 { printf(
"MissingETComposition::insert - ERROR - possible invalid pointer value: MissingETAssociationMap* = %p\n",(
void*)pMap);
return false; }
247 { printf(
"MissingETComposition::insert - WARNING - no MissingETAssociation matching this jet, could not add\n");
return false; }
249 (*pMap)[jetIndex]->addObject(pPart,constlist);
256 if ( pMap ==
nullptr || pJet ==
nullptr )
257 { printf(
"MissingETComposition::insert - ERROR - possible invalid pointer values: MissingETAssociationMap* = %p, Jet* = %p\n",(
void*)pMap,(
void*)pJet);
return false; }
261 { printf(
"MissingETComposition::insert - WARNING - jet with pointer %p not in map, could not add\n",(
void*)pJet);
return false; }
263 return insert(pMap,jetIndex,pPart,constlist);
267 std::map<const IParticle*,MissingETBase::Types::constvec_t> pOverride)
270 if ( pMap ==
nullptr )
271 { printf(
"MissingETComposition::insert - ERROR - possible invalid pointer values: MissingETAssociationMap* = %p\n",(
void*)pMap);
return false; }
275 std::map<size_t,std::vector<const IParticle*> > constMap;
276 for(
const auto&
signal : constlist) {
279 constMap[jetIndex].push_back(
signal);
281 std::map<size_t,std::vector<const IParticle*> >
::iterator jetIter;
282 for(
auto& jetIter : constMap) {
284 insert(pMap,jetIter.first,pPart,jetIter.second);
286 (*pMap)[jetIter.first]->addOverrideMom(pOverride);
292 if (constMap.empty())
insertMisc(pMap,pPart,std::vector<const IParticle*>());
297 std::map<const IParticle*,MissingETBase::Types::constvec_t> pOverride) {
298 std::vector<ElementLink<IParticleContainer> > jetconst;
299 if(!altConsts.empty()) {
300 for(
const auto& alt : altConsts) {
303 jetconst.push_back(link);
307 if (!altConsts.empty())
insert(metMap,
jet,altConsts,std::move(pOverride));
315 if ( pMap ==
nullptr )
316 { printf(
"MissingETComposition::insertMisc - ERROR - possible invalid pointer values: MissingETAssociationMap* = %p\n",(
void*)pMap);
return false; }
321 for(
const auto&
signal : constlist) {
325 printf(
"MissingETComposition::insertMisc - ERROR - object %p with constituent %p is associated to jet %zu, will not place in misc association\n",(
void*)pPart,(
void*)
signal,jetIndex);
return false;
364 std::vector<const MissingETAssociation*> assocs =
getAssociations(pMap,pPart);
365 for (
size_t i = 0;
i < assocs.size();
i++) {
367 totalvec += assocs[
i]->trkVec(pPart);
369 totalvec += assocs[
i]->calVec(pPart);
377 for(
size_t i = 0;
i < assocs.size();
i++)
if(
helper.objSelected(assocs[
i],
obj))
return true;
384 bool overlaps(
false);
385 for(
size_t i = 0;
i < assocs.size();
i++) overlaps |= assocs[
i]->hasOverlaps(
helper,
obj,
p);
386 if (overlaps)
return false;
387 for(
size_t i = 0;
i < assocs.size();
i++)
helper.setObjSelectionFlag(assocs[
i],
obj,
true);
393 std::vector<const MissingETAssociation*> assocs;
394 if ( pMap ==
nullptr ) {
return assocs; }
396 for (
const auto fAssoc : *pMap) {
405 std::vector<MissingETAssociation*> assocs;
406 if ( pMap ==
nullptr ) {
return assocs; }
408 for (
const auto fAssoc : *pMap) {
428 return fAssoc==pMap->
end() ? nullptr :
getRefJet(fAssoc);
432 {
return *fAssoc !=
nullptr ? (*fAssoc)->refJet() : (
const Jet*)
nullptr; }
bool setJetConstituents(const Jet *pJet)
Set constituent map for a jet.
size_t findIndexByJetConst(const IParticle *pConst) const
Const iterator class for DataVector/DataList.
const_iterator find(const MissingET *pMET) const
Find MET object referenced by pointer.
DataModel_detail::iterator< DataVector > iterator
Standard iterator.
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
MET association descriptor contains object links and corresponding parameters.
static bool addMiscAssociation(MissingETAssociationMap *pMap)
Add an association to hold objects not associated to any jet.
static MissingETComponentMap::const_iterator find(const MissingETComponentMap *pMap, const MissingET *pmetObj)
Find non-modifiable contribution for a given MET object.
static bool objSelected(const MissingETAssociationHelper &helper, const IParticle *obj)
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
static size_t invalidIndex()
Access invalid index indicator.
bool addObject(const IParticle *pPart, const std::vector< const IParticle * > &constlist)
Add object (particle) from pointer reference with individual constituent vectors.
uint64_t bitmask_t
Type for status word bit mask.
MissingETAssociation_v1 MissingETAssociation
Version control by type definition.
Class providing the definition of the 4-vector interface.
Vector sum of constituents for subtractive overlap removal.
static const Jet * getRefJet(const MissingETAssociationMap *pMap, const IParticle *pPart)
xAOD::MissingETComponent_v1::Weight weight_t
Type for kinematic weight.
static const MissingETComponent * getComponent(const MissingETComponentMap *pMap, const IParticle *pPart)
Access non-modifiable contribution object.
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.
size_t findIndex(const Jet *pJet) const
static MissingETBase::Types::constvec_t getConstVec(const MissingETAssociationMap *pMap, const IParticle *pPart, MissingETBase::UsageHandler::Policy p)
(Non-const) Iterator class for DataVector/DataList.
const_iterator find(const Jet *pJet) const
Find association from jet pointer.
Principal data object for Missing ET.
static const MissingET * getMissingET(const MissingETComponentMap *pMap, const IParticle *pPart)
const MissingETAssociation_v1 * getMiscAssociation() const
Get an association for miscellaneous objects not associated to jets.
size_t index() const
Return the index of this element within its container.
const std::string & name() const
Identifier getters.
static bool setJetConstSum(MissingETAssociationMap *metMap, const Jet *jet, const std::vector< const IParticle * > &altConsts, std::map< const IParticle *, MissingETBase::Types::constvec_t > pOverride)
const T * back() const
Access the last element in the collection as an rvalue.
static bool insertMisc(MissingETAssociationMap *pMap, const IParticle *pPart, const std::vector< const IParticle * > &constlist)
Insert contributing object into miscellaneous association.
const std::vector< ElementLink< IParticleContainer > > & constituentLinks() const
Direct access to constituents. WARNING expert use only.
Policy
Policies on usage checks.
bool addObjects(const MissingET *pMET, const IParticle *pPart, const MissingETBase::Types::object_vector_t &signalList, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::OnlyCluster)
@ OnlyTrack
Track based only.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
static bool add(MissingETComponentMap *pMap, const MissingET *pMET, MissingETBase::Types::bitmask_t sw=MissingETBase::Status::clearedStatus())
Adding a MissingET object to the map.
static const MissingETAssociation * getAssociation(const MissingETAssociationMap *pMap, const Jet *pJet)
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Kinematic weight descriptor.
static MissingETBase::Types::weight_t getWeight(const MissingETComponentMap *pMap, const IParticle *pPart)
static MissingETBase::Types::bitmask_t getStatusWord(const MissingETComponentMap *pMap, const MissingET *pmetObj)
MissingETComponent_v1 MissingETComponent
Version control by type definition.
void addOverrideMom(std::map< const IParticle *, ConstVec > &pOverride)
Extend override momentum map.
static Types::bitmask_t clearedStatus()
Cleared term tag accessor.
static bool selectIfNoOverlaps(MissingETAssociationHelper &helper, const IParticle *obj, MissingETBase::UsageHandler::Policy p)
size_type size() const noexcept
Returns the number of elements in the collection.
std::vector< const xAOD::IParticle * > object_vector_t
Vector of object type.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
MET component descriptor contains object links and corresponding parameters.
static std::vector< const MissingETAssociation * > getAssociations(const MissingETAssociationMap *pMap, const IParticle *pPart)
Access non-modifiable contribution object.