![]() |
ATLAS Offline Software
|
Tool calculates alternative cluster calibration using an external cell weight tool with interface ICellWeightTool .
More...
#include <CaloClusterCellWeightCalib.h>
Public Member Functions | |
| CaloClusterCellWeightCalib (const std::string &type, const std::string &name, const IInterface *pParent) | |
| Algorithm tool constructor. | |
| virtual | ~CaloClusterCellWeightCalib () override |
| Base tool destructor. | |
| virtual StatusCode | initialize () override |
| Tool initialization. | |
| virtual StatusCode | execute (const EventContext &ctx, xAOD::CaloCluster *theCluster) const override |
| Execute on a single cluster. | |
| virtual StatusCode | execute (const EventContext &ctx, xAOD::CaloClusterContainer *collection) const |
| Tool execution. | |
| virtual StatusCode | execute (xAOD::CaloClusterContainer *collection) final |
| Execute on an entire collection of clusters. | |
| 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 |
| DeclareInterfaceID (CaloClusterCollectionProcessor, 1, 0) | |
Static Public Member Functions | |
| static const InterfaceID & | interfaceID () |
| Standard Gaudi interface ID method. | |
Protected Types | |
| typedef StatusCode(CaloClusterCellWeightCalib::* | CALCULATOR) (xAOD::CaloCluster *pClus) const |
| Processor type for cluster calibration. | |
Protected Member Functions | |
| StatusCode | f_dirRaw (xAOD::CaloCluster *pClus) const |
| Calculator implementation for energy only update. | |
| StatusCode | f_dirRawNW (xAOD::CaloCluster *pClus) const |
| Calculator implementation for energy only update. | |
| StatusCode | f_dirPos (xAOD::CaloCluster *pClus) const |
| Calculator implementation for direction from positive signal. | |
| StatusCode | f_dirPosNW (xAOD::CaloCluster *pClus) const |
| Calculator implementation for direction from positive signal. | |
| StatusCode | f_dirAbs (xAOD::CaloCluster *pClus) const |
| Calculator implementation for direction from absolute signal. | |
| StatusCode | f_dirAbsNW (xAOD::CaloCluster *pClus) const |
| Calculator implementation for direction from absolute signal. | |
| StatusCode | setupAll (MsgStream &report) |
| Setup for calculation for all or non-noise clusters. | |
| StatusCode | setupSpc (MsgStream &report) |
| Setup for different calculation for noise clusters. | |
| bool | setup (const std::string &name, const std::string &tag, CALCULATOR &calc, std::string &conf, MsgStream &report) |
| Common setup function. | |
| 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 | cmpNoCase (const std::string &a, const std::string &b) |
| Helper for non-case sensitive string comparison. | |
Protected Attributes | |
| std::string | m_directionCalculation |
| Property controlling negative signal handling. | |
| bool | m_calibNoiseLikeAll |
| Property controlling calibration of noise clusters. | |
| std::string | m_noiseDirectionCalculation |
| Property controlling calibration method for noise clusters. | |
| double | m_eThreshold |
| Energy threshold for direction calculation. | |
| bool | m_ignoreGeoWghts |
| Flag to ignore geometrical cell weights in clusters. | |
| ToolHandle< ICellWeightTool > | m_cellWeight |
| Handle for cell weight tool. | |
| CALCULATOR | m_calc |
| Pointer to direction calculation implementation. | |
| CALCULATOR | m_calc_noise |
| Pointer to direction calculation for noise clusters. | |
Static Protected Attributes | |
| static const std::string | m_defName = m_absName |
| Negative signal handling: default tag. | |
| static const std::string | m_posName = "Signal" |
| Negative signal handling: positive signal tag. | |
| static const std::string | m_absName = "AbsSignal" |
| Negative signal handling: absolute signal tag. | |
| static const std::string | m_rawName = "RawSignal" |
| Negative signal handling: raw signal tag. | |
Private Types | |
| typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> | |
Private Attributes | |
| StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) | |
| StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) | |
| std::vector< SG::VarHandleKeyArray * > | m_vhka |
| bool | m_varHandleArraysDeclared |
Tool calculates alternative cluster calibration using an external cell weight tool with interface ICellWeightTool .
It only modifies the cluster 4-vector from alternative calibration, i.e. it switches the CaloCluster to signal state P4SignalState::ALTCALIBRATED and puts the result of the cell weight calibration into this state. Previously set alternative calibrations are overwritten, but the basic (P4SignalState::UNCALIBRATED ) and (local hadronic) calibrated (P4SignalState::CALIBRATED ) are not changed. The cluster is returned to the signal state it has been received in. Even though with this behaviour the tool could run at any time in the cluster algorithm, it should run right after the cluster formation, i.e. it should be the first calibration/correction tool, as it is using the geometrical weights, which are lost in local hadronic calibration. Note that the tool can be configured to ignore these weights, but this can lead to unexpected signal calibrations.
Definition at line 16 of file CaloClusterCellWeightCalib.h.
|
protected |
Processor type for cluster calibration.
Processor implementation for all clusters
Processor implementation for dedicated noise cluster treatment
Pointer to cluster processor
Calculator type for direction calculation
Definition at line 116 of file CaloClusterCellWeightCalib.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
| CaloClusterCellWeightCalib::CaloClusterCellWeightCalib | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | pParent ) |
Algorithm tool constructor.
Definition at line 31 of file CaloClusterCellWeightCalib.cxx.
|
overridevirtualdefault |
Base tool destructor.
|
staticprotected |
Helper for non-case sensitive string comparison.
Definition at line 230 of file CaloClusterCellWeightCalib.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inherited |
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 95 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 85 of file AthCommonDataStore.h.
|
overridevirtual |
Execute on a single cluster.
| cluster | The cluster to process. |
| ctx | The event context. |
Implements CaloClusterProcessor.
Definition at line 95 of file CaloClusterCellWeightCalib.cxx.
|
virtual |
Tool execution.
Reimplemented from CaloClusterProcessor.
Definition at line 65 of file CaloClusterProcessor.cxx.
|
inlinefinalvirtualinherited |
Execute on an entire collection of clusters.
| collection | The container of clusters. (deprecated) |
Reimplemented from CaloClusterCollectionProcessor.
Definition at line 50 of file CaloClusterCollectionProcessor.h.
|
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
|
protected |
Calculator implementation for direction from absolute signal.
The absolute signal is used to re-calculate the cluster direction. This is stable for all clusters but changes the direction with respect to the fixed scenario somewhat.
Definition at line 362 of file CaloClusterCellWeightCalib.cxx.
|
protected |
Calculator implementation for direction from absolute signal.
The absolute signal is used to re-calculate the cluster direction. This is stable for all clusters but changes the direction with respect to the fixed scenario somewhat. Geometrical weights are ignored.
Definition at line 397 of file CaloClusterCellWeightCalib.cxx.
|
protected |
Calculator implementation for direction from positive signal.
Direction is calculated using E>0 cell signals only. This may be highly fluctuating for noise clusters.
Definition at line 292 of file CaloClusterCellWeightCalib.cxx.
|
protected |
Calculator implementation for direction from positive signal.
Direction is calculated using E>0 cell signals only. This may be highly fluctuating for noise clusters. Geometrical weights are ignored.
Definition at line 329 of file CaloClusterCellWeightCalib.cxx.
|
protected |
Calculator implementation for energy only update.
Direction is taken from electromagnetic scale. This is safe for all clusters.
Definition at line 253 of file CaloClusterCellWeightCalib.cxx.
|
protected |
Calculator implementation for energy only update.
Direction is taken from electromagnetic scale. This is safe for all clusters. The energy calculation ignores geometrical weights.
Definition at line 274 of file CaloClusterCellWeightCalib.cxx.
|
overridevirtual |
Tool initialization.
Definition at line 60 of file CaloClusterCellWeightCalib.cxx.
|
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.
|
inlinestaticinherited |
Standard Gaudi interface ID method.
Definition at line 72 of file CaloClusterProcessor.h.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
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.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
protected |
Common setup function.
Definition at line 176 of file CaloClusterCellWeightCalib.cxx.
|
protected |
Setup for calculation for all or non-noise clusters.
Definition at line 157 of file CaloClusterCellWeightCalib.cxx.
|
protected |
Setup for different calculation for noise clusters.
Definition at line 165 of file CaloClusterCellWeightCalib.cxx.
|
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.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
staticprotected |
Negative signal handling: absolute signal tag.
Definition at line 96 of file CaloClusterCellWeightCalib.h.
|
protected |
Pointer to direction calculation implementation.
Definition at line 161 of file CaloClusterCellWeightCalib.h.
|
protected |
Pointer to direction calculation for noise clusters.
Definition at line 164 of file CaloClusterCellWeightCalib.h.
|
protected |
Property controlling calibration of noise clusters.
Flags calibration of noise (E<0) clusters:
| true | (default) means noise clusters are treated as all others |
| false | means noise clusters are not calibrated at all |
Definition at line 58 of file CaloClusterCellWeightCalib.h.
|
protected |
Handle for cell weight tool.
Definition at line 87 of file CaloClusterCellWeightCalib.h.
|
staticprotected |
Negative signal handling: default tag.
Definition at line 92 of file CaloClusterCellWeightCalib.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
protected |
Property controlling negative signal handling.
Negative cell signals are problematic for the direction calculation from cells:
| Signal | use only E>0 cells for direction |
| AbsSignal | (default) use w*|E| for direction |
| RawSignal | do not recalculate direction at all |
The property is not case sensitive. The default is AbsSignal, i.e. following a strategy very similar to the direction calculation performed during cluster formation.
Definition at line 49 of file CaloClusterCellWeightCalib.h.
|
protected |
Energy threshold for direction calculation.
Definition at line 72 of file CaloClusterCellWeightCalib.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
protected |
Flag to ignore geometrical cell weights in clusters.
This flags controls the use of geometrical cell weights in clusters:
| false | (default) geometrical weights are used |
| true | geometrical weights are ignored |
Note that using the geometrical weights requires this tool to run before the Local Hadronic calibration tools.
Definition at line 84 of file CaloClusterCellWeightCalib.h.
|
protected |
Property controlling calibration method for noise clusters.
Tags calibration method for noise (E<0) clusters. Only effective if these clusters are calibrated at all, i.e. m_calibNoise is true :
| true | (default) uses same direction correction as all other clusters |
| false | uses AbsSignal calibration for noise clusters. |
Definition at line 69 of file CaloClusterCellWeightCalib.h.
|
staticprotected |
Negative signal handling: positive signal tag.
Definition at line 94 of file CaloClusterCellWeightCalib.h.
|
staticprotected |
Negative signal handling: raw signal tag.
Definition at line 98 of file CaloClusterCellWeightCalib.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.