|
ATLAS Offline Software
|
#include <egammaOQFlagsBuilder.h>
|
| egammaOQFlagsBuilder (const std::string &type, const std::string &name, const IInterface *parent) |
| Default constructor. More...
|
|
| ~egammaOQFlagsBuilder ()=default |
| Destructor. More...
|
|
StatusCode | initialize () |
| initialize method More...
|
|
virtual StatusCode | execute (const EventContext &ctx, xAOD::Egamma &egamma) const |
| standard execute method More...
|
|
StatusCode | finalize () |
| finalize method More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
SG::ReadCondHandleKey< LArBadChannelCont > | m_bcContKey |
| Handle to bad-channel CDO. More...
|
|
SG::ReadCondHandleKey< CaloAffectedRegionInfoVec > | m_affKey |
|
ToolHandle< ICaloAffectedTool > | m_affectedTool |
|
const LArEM_ID * | m_emHelper |
|
const CaloCell_ID * | m_calocellId |
|
SG::ReadHandleKey< CaloCellContainer > | m_cellsKey |
|
Gaudi::Property< double > | m_QCellCut { this, "QCellCut", 4000. } |
|
Gaudi::Property< double > | m_QCellHECCut { this, "QCellHECCut", 60000. } |
|
Gaudi::Property< double > | m_QCellSporCut { this, "QCellSporCut", 4000. } |
|
Gaudi::Property< double > | m_LArQCut { this, "LArQCut", 0.8 } |
|
Gaudi::Property< double > | m_TCut { this, "TCut", 10.0 } |
|
Gaudi::Property< double > | m_TCutVsE { this, "TCutVsE", 2.0 } |
|
Gaudi::Property< double > | m_RcellCut { this, "RcellCut", 0.8 } |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
egamma Object Quality flags data object builder :
Definition at line 49 of file egammaOQFlagsBuilder.h.
◆ StoreGateSvc_t
◆ egammaOQFlagsBuilder()
egammaOQFlagsBuilder::egammaOQFlagsBuilder |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~egammaOQFlagsBuilder()
egammaOQFlagsBuilder::~egammaOQFlagsBuilder |
( |
| ) |
|
|
default |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode egammaOQFlagsBuilder::execute |
( |
const EventContext & |
ctx, |
|
|
xAOD::Egamma & |
egamma |
|
) |
| const |
|
virtual |
standard execute method
Implements IegammaOQFlagsBuilder.
Definition at line 203 of file egammaOQFlagsBuilder.cxx.
209 return StatusCode::SUCCESS;
211 if (cluster->
size() == 0) {
212 return StatusCode::SUCCESS;
215 const float clusterEta = cluster->
eta();
222 if (etaSize == 0 && phiSize == 0) {
233 unsigned int iflag =
eg.OQ();
245 double energyCellMax = 0;
248 bool foundCentralCell = findCentralCell(cluster, cellCentrId);
249 if (foundCentralCell) {
251 std::vector<IdentifierHash> neighbourList =
260 for (; cellIter != cellIterEnd; cellIter++) {
266 if (
cell->caloDDE()->is_tile()) {
273 const bool isHighQ =
qual >= 4000;
276 const bool isMissing = ((
cell->provenance() & 0x0A00) == 0x0A00);
277 const bool isMasked = ((
cell->provenance() & 0x0A00) == 0x0800);
288 if ((
cell->provenance() & 0x2000) && !(
cell->provenance() & 0x0800)) {
290 if (
cell->e() > energyCellMax) {
291 energyCellMax =
cell->e();
299 bool isStripCoreCell =
false;
301 std::abs(
eta - clusterEta) < 0.025 / 2.) {
302 isStripCoreCell =
true;
313 const bool isAffected =
319 const bool isSporadicNoise =
323 coreCellHelper(isMissing, isMasked, isSporadicNoise, isAffected,
328 missingHelper(isPresampler, isL1, isStripCoreCell, isL2, isL3, iflag);
331 maskedHelper(isPresampler, isL1, isStripCoreCell, isL2, isL3, iflag);
334 affectedHelper(isPresampler, isL1, isL2, isL3, iflag);
343 double egammaLArQCleaning = 0;
345 egammaLArQCleaning = badE / totE;
353 double ratioCell = 0;
355 ratioCell = energyCellMax / totE;
371 ATH_MSG_WARNING(
"Do not have affected regions info, is this expected ?");
375 deta = 0.5 * 0.025 * etaSize;
376 dphi = 0.5 * 0.025 * phiSize;
378 bool isNonNominalHVPS = chainIsAffected(
388 bool isDeadHVPS = chainIsAffected(
400 deta = 0.5 * 0.025 * 3.;
401 dphi = 0.5 * 0.025 * 3.;
402 bool isDeadHVS2Core = chainIsAffected(
414 deta = 0.5 * 0.025 * etaSize;
415 dphi = 0.5 * 0.025 * phiSize;
417 bool isNonNominalHVS1S2S3 = chainIsAffected(
432 bool isDeadHVS1S2S3Edge = chainIsAffected(
449 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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
◆ finalize()
StatusCode egammaOQFlagsBuilder::finalize |
( |
| ) |
|
◆ initialize()
StatusCode egammaOQFlagsBuilder::initialize |
( |
| ) |
|
◆ inputHandles()
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.
◆ interfaceID()
const InterfaceID & IegammaOQFlagsBuilder::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_affectedTool
Initial value:{ this,
"affectedTool",
"CaloAffectedTool",
"CaloAffectedTool" }
Definition at line 85 of file egammaOQFlagsBuilder.h.
◆ m_affKey
Initial value:{
this,
"LArAffectedRegionKey",
"LArAffectedRegionInfo",
"SG key for affected regions cond object"
}
Definition at line 78 of file egammaOQFlagsBuilder.h.
◆ m_bcContKey
Initial value:{
this,
"LArBadChannelKey",
"LArBadChannel",
"Key of the LArBadChannelCont CDO"
}
Handle to bad-channel CDO.
Definition at line 71 of file egammaOQFlagsBuilder.h.
◆ m_calocellId
◆ m_cellsKey
Initial value:{
this,
"CellsName",
"AllCalo",
"Names of container which contain cells"
}
Definition at line 93 of file egammaOQFlagsBuilder.h.
◆ m_detStore
◆ m_emHelper
◆ m_evtStore
◆ m_LArQCut
Gaudi::Property<double> egammaOQFlagsBuilder::m_LArQCut { this, "LArQCut", 0.8 } |
|
private |
◆ m_QCellCut
Gaudi::Property<double> egammaOQFlagsBuilder::m_QCellCut { this, "QCellCut", 4000. } |
|
private |
◆ m_QCellHECCut
Gaudi::Property<double> egammaOQFlagsBuilder::m_QCellHECCut { this, "QCellHECCut", 60000. } |
|
private |
◆ m_QCellSporCut
Gaudi::Property<double> egammaOQFlagsBuilder::m_QCellSporCut { this, "QCellSporCut", 4000. } |
|
private |
◆ m_RcellCut
Gaudi::Property<double> egammaOQFlagsBuilder::m_RcellCut { this, "RcellCut", 0.8 } |
|
private |
◆ m_TCut
Gaudi::Property<double> egammaOQFlagsBuilder::m_TCut { this, "TCut", 10.0 } |
|
private |
◆ m_TCutVsE
Gaudi::Property<double> egammaOQFlagsBuilder::m_TCutVsE { this, "TCutVsE", 2.0 } |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
bool shortProblem() const
std::vector< CaloAffectedRegionInfo > CaloAffectedRegionInfoVec
flt_t time() const
Access cluster time.
SG::ReadCondHandleKey< CaloAffectedRegionInfoVec > m_affKey
const_cell_iterator cell_begin() const
Iterator of the underlying CaloClusterCellLink (const version)
@ LArQCleaning
Cleaning based on LArQ factor--> sum[ E(Q>4000)/E].
bool unstableNoiseLG() const
ToolHandle< ICaloAffectedTool > m_affectedTool
@ HighQEdge
High quality factor cell in the edge of the cluster.
Scalar eta() const
pseudorapidity method
@ HECHighQ
High quality factor cell in the HEC.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
Gaudi::Property< double > m_LArQCut
bool sporadicBurstNoise() const
Gaudi::Property< double > m_QCellSporCut
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const CaloCell_ID * m_calocellId
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
Handle to bad-channel CDO.
@ NonNominalHVPS
Non Nominal High Voltage in the EM Presampler.
LArBC_t offlineStatus(const Identifier id) const
Query the status of a particular channel by offline ID This is the main client access method.
const LArEM_ID * m_emHelper
Gaudi::Property< double > m_QCellHECCut
Gaudi::Property< double > m_RcellCut
@ DeadHVPS
Dead High Voltage in the EM Presampler.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
bool unstableNoiseHG() const
Gaudi::Property< double > m_TCut
bool isBarrel(const xAOD::Egamma *eg)
return true if the cluster is in the barrel
Description of a calorimeter cluster.
unsigned int getClusterEtaSize() const
Get eta size from cluster size.
virtual double eta() const
The pseudorapidity ( ) of the particle.
bool unstableNoiseMG() const
@ NonNominalHVS1S2S3
Non Nominal High Voltage in the EM strips, middle and back.
size_t size() const
size method (forwarded from CaloClusterCellLink obj)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
unsigned int getClusterPhiSize() const
Get phi size from cluster size.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
bool peculiarCalibrationLine() const
StatusCode initialize(bool used=true)
@ DeadHVS1S2S3Edge
Dead High Voltage in the EM strips, middle and back affecting the edge of the cluster.
@ SporadicNoiseLowQEdge
Sporadic noisy cell in the edge of the cluster.
@ HighRcell
High R_cell -—> Energy of the most energetic cell / total energy of the cluster.
Data object for each calorimeter readout cell.
#define ATH_MSG_WARNING(x)
const_cell_iterator cell_end() const
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ OutTime
Out of time cell.
const_iterator to loop over cells belonging to a cluster
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
@ DeadHVS1S2S3Core
Dead High Voltage in the EM strips, middle and back affecting the core of the cluster.
virtual double e() const
The total energy of the particle.
Gaudi::Property< double > m_QCellCut
Gaudi::Property< double > m_TCutVsE