ATLAS Offline Software
Loading...
Searching...
No Matches
ORUtils::OverlapDecorationHelper< CI > Class Template Reference

Encapsulates the code needed to access and set overlap-related decorations. More...

#include <OverlapDecorationHelper.h>

Inheritance diagram for ORUtils::OverlapDecorationHelper< CI >:
Collaboration diagram for ORUtils::OverlapDecorationHelper< CI >:

Public Member Functions

 OverlapDecorationHelper (const std::string &inputLabel, const std::string &outputLabel, bool outputPassValue=false)
 Constructor.
bool isInputObject (columnar::ObjectId< CI > obj) const
 Check if object is flagged as input for OR.
bool isRejectedObject (columnar::ObjectId< CI > obj) const
 Check if an object has been rejected by decoration.
bool isSurvivingObject (columnar::ObjectId< CI > obj) const
 Check if object is surviving OR thus far.
char getObjectPriority (columnar::ObjectId< CI > obj) const
 Get the user priority score, which is currently the input decoration.
void setOverlapDecoration (columnar::ObjectId< CI > obj, bool result) const
 Set output decoration on object, pass or fail.
void setObjectPass (columnar::ObjectId< CI > obj) const
 Shorthand way to set an object as passing overlap removal.
void setObjectFail (columnar::ObjectId< CI > obj) const
 Shorthand way to set an object as failing overlap removal.
bool isDecorated (columnar::ObjectRange< CI > container) const
 Check if output decoration has been applied to a container.
void initializeDecorations (columnar::ObjectRange< CI > container) const
 Initialize decorations for a container to "pass".
void resetDecorations (columnar::ObjectRange< CI > container) const
 Helper method for setting all objects as passing.

Private Attributes

bool m_useInputLabel
 Toggle usage of input label.
columnar::ColumnAccessor< CI, char > m_inputAccessor
 Input label accessor.
columnar::ColumnDecorator< CI, char > m_outputDecorator
 Output decorator.
bool m_outputPassValue
 Output decoration logic.

Detailed Description

template<columnar::ContainerIdConcept CI>
class ORUtils::OverlapDecorationHelper< CI >

Encapsulates the code needed to access and set overlap-related decorations.

This utility class is used by the OverlapTools, but in principle could probably be used by a user as well.

Author
Steve Farrell Steve.nosp@m.n.Fa.nosp@m.rrell.nosp@m.@cer.nosp@m.n.ch

Definition at line 32 of file OverlapDecorationHelper.h.

Constructor & Destructor Documentation

◆ OverlapDecorationHelper()

ORUtils::OverlapDecorationHelper< CI >::OverlapDecorationHelper ( const std::string & inputLabel,
const std::string & outputLabel,
bool outputPassValue = false )

Constructor.

Parameters
inputLabelInput decoration name
outputLabelOutput decoration name
outputPassValueSpecifies the boolean value to assign to passing, or non-overlapping objects. Default value is false for historical reasons.

Definition at line 100 of file OverlapDecorationHelper.h.

104 : m_useInputLabel(!inputLabel.empty()),
107 {
110 }
Encapsulates the code needed to access and set overlap-related decorations.
bool m_outputPassValue
Output decoration logic.
columnar::ColumnAccessor< CI, char > m_inputAccessor
Input label accessor.
columnar::ColumnDecorator< CI, char > m_outputDecorator
Output decorator.
bool m_useInputLabel
Toggle usage of input label.

Member Function Documentation

◆ getObjectPriority()

char ORUtils::OverlapDecorationHelper< CI >::getObjectPriority ( columnar::ObjectId< CI > obj) const

Get the user priority score, which is currently the input decoration.

Definition at line 148 of file OverlapDecorationHelper.h.

150 {
151 // We current reuse the input decoration as the priority score
152 return m_inputAccessor(obj);
153 }

◆ initializeDecorations()

void ORUtils::OverlapDecorationHelper< CI >::initializeDecorations ( columnar::ObjectRange< CI > container) const

Initialize decorations for a container to "pass".

Note that the value written depends on the output pass-value.

Definition at line 192 of file OverlapDecorationHelper.h.

194 {
197 }
void resetDecorations(columnar::ObjectRange< CI > container) const
Helper method for setting all objects as passing.
bool isDecorated(columnar::ObjectRange< CI > container) const
Check if output decoration has been applied to a container.

◆ isDecorated()

bool ORUtils::OverlapDecorationHelper< CI >::isDecorated ( columnar::ObjectRange< CI > container) const

Check if output decoration has been applied to a container.

Returns false if the container is empty. Output logic independent.

Definition at line 181 of file OverlapDecorationHelper.h.

183 {
184 return container.size() > 0 &&
185 m_outputDecorator.isAvailable(container[0]);
186 }

◆ isInputObject()

bool ORUtils::OverlapDecorationHelper< CI >::isInputObject ( columnar::ObjectId< CI > obj) const

Check if object is flagged as input for OR.

Definition at line 116 of file OverlapDecorationHelper.h.

118 {
119 // Input label is turned off if empty string
120 if(!m_useInputLabel) return true;
121 return m_inputAccessor(obj);
122 }

◆ isRejectedObject()

bool ORUtils::OverlapDecorationHelper< CI >::isRejectedObject ( columnar::ObjectId< CI > obj) const

Check if an object has been rejected by decoration.

Definition at line 128 of file OverlapDecorationHelper.h.

130 {
131 // isRejected = isInput && (output == fail)
133 }
bool isInputObject(columnar::ObjectId< CI > obj) const
Check if object is flagged as input for OR.

◆ isSurvivingObject()

bool ORUtils::OverlapDecorationHelper< CI >::isSurvivingObject ( columnar::ObjectId< CI > obj) const

Check if object is surviving OR thus far.

Definition at line 138 of file OverlapDecorationHelper.h.

140 {
141 // isSurviving = isInput && (output == pass)
143 }

◆ resetDecorations()

void ORUtils::OverlapDecorationHelper< CI >::resetDecorations ( columnar::ObjectRange< CI > container) const

Helper method for setting all objects as passing.

Definition at line 203 of file OverlapDecorationHelper.h.

205 {
206 for(auto obj : container){
207 // This isn't terrible intuitive, but in order to support both output
208 // logic modes in a reasonable way, we initialize the output flag to the
209 // logical AND of isInput and outputPassValue. This results in non-input
210 // objects being initialized to 'false' regardless of output logic.
213 }
214 //for(auto obj : container) setObjectPass(obj);
215 }
void setOverlapDecoration(columnar::ObjectId< CI > obj, bool result) const
Set output decoration on object, pass or fail.

◆ setObjectFail()

void ORUtils::OverlapDecorationHelper< CI >::setObjectFail ( columnar::ObjectId< CI > obj) const

Shorthand way to set an object as failing overlap removal.

Definition at line 172 of file OverlapDecorationHelper.h.

◆ setObjectPass()

void ORUtils::OverlapDecorationHelper< CI >::setObjectPass ( columnar::ObjectId< CI > obj) const

Shorthand way to set an object as passing overlap removal.

Definition at line 166 of file OverlapDecorationHelper.h.

◆ setOverlapDecoration()

void ORUtils::OverlapDecorationHelper< CI >::setOverlapDecoration ( columnar::ObjectId< CI > obj,
bool result ) const

Set output decoration on object, pass or fail.

Definition at line 159 of file OverlapDecorationHelper.h.

161 {
163 }

Member Data Documentation

◆ m_inputAccessor

Input label accessor.

Definition at line 87 of file OverlapDecorationHelper.h.

◆ m_outputDecorator

Output decorator.

Definition at line 89 of file OverlapDecorationHelper.h.

◆ m_outputPassValue

bool ORUtils::OverlapDecorationHelper< CI >::m_outputPassValue
private

Output decoration logic.

Definition at line 92 of file OverlapDecorationHelper.h.

◆ m_useInputLabel

bool ORUtils::OverlapDecorationHelper< CI >::m_useInputLabel
private

Toggle usage of input label.

Definition at line 84 of file OverlapDecorationHelper.h.


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