This tool can either use a series of CaloClusterProcessor to calibrate the modified xAOD::CaloCluster (modified when we do the charged shower subtraction) using recalculated LC weights or its own internal method to use the stored LC weights in the eflowRecCluster objects.
More...
#include <PFLCCalibTool.h>
|
| ToolHandle< IPFClusterCollectionTool > | m_clusterCollectionTool {this,"eflowRecClusterCollectionTool","eflowRecClusterCollectionTool","Tool to put all clusters into a temporary container - then we use this to calculate moments, some of which depend on configuration of nearby clusters"} |
| | Tool to put all clusters into a temporary container - then we use this to calculate moments, some of which depend on configuration of nearby clusters.
|
| ToolHandle< CaloClusterProcessor > | m_clusterLocalCalibTool {this,"CaloClusterLocalCalib","CaloClusterLocalCalib","Tool for applying local hadronc calibration weights to cells"} |
| ToolHandle< CaloClusterProcessor > | m_clusterLocalCalibOOCCTool {this,"CaloClusterLocalCalibOOCC","CaloClusterLocalCalib","Tool to deal with out of cluster corrections"} |
| ToolHandle< CaloClusterProcessor > | m_clusterLocalCalibOOCCPi0Tool {this,"CaloClusterLocalCalibOOCCPi0","CaloClusterLocalCalib","Tool to do Pi0 corrections"} |
| ToolHandle< CaloClusterProcessor > | m_clusterLocalCalibDMTool {this,"CaloClusterLocalCalibDM","CaloClusterLocalCalib","Tool for correcting clusters at cell level for dead material"} |
| Gaudi::Property< bool > | m_useLocalWeight {this,"UseLocalWeight",false,"Toggle which LC weights scheme to use - default is to recalculate weights, rather than use saved weights"} |
| | Toggle which LC weights scheme to use - default is to recalculate weights, rather than use saved weights.
|
| SG::ReadCondHandleKey< CaloDetDescrManager > | m_caloMgrKey |
| | ReadCondHandleKey for CaloDetDescrManager.
|
This tool can either use a series of CaloClusterProcessor to calibrate the modified xAOD::CaloCluster (modified when we do the charged shower subtraction) using recalculated LC weights or its own internal method to use the stored LC weights in the eflowRecCluster objects.
If using the LC weights which were stored in the eflowRecCluster then we use the container of eflowRecCluster, but if using recalculated LC weights for the modified xAOD::CaloCluster (modified when we remove calorimeter cells in the charged shower subtraction) then we need the container of xAOD::CaloCluster. The PFClusterCollectionTool provides both of these containers.
Definition at line 22 of file PFLCCalibTool.h.
◆ PFLCCalibTool()
| PFLCCalibTool::PFLCCalibTool |
( |
const std::string & | type, |
|
|
const std::string & | name, |
|
|
const IInterface * | parent ) |
Definition at line 18 of file PFLCCalibTool.cxx.
18 :
19 base_class(type, name, parent)
20{
21}
◆ ~PFLCCalibTool()
| PFLCCalibTool::~PFLCCalibTool |
( |
| ) |
|
|
inline |
◆ apply()
Definition at line 81 of file PFLCCalibTool.cxx.
81 {
83 ATH_CHECK(calibTool->execute(ctx,cluster));
84 return StatusCode::SUCCESS;
85}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
◆ applyLocalWeight()
Definition at line 87 of file PFLCCalibTool.cxx.
87 {
89
90
91 const std::map<IdentifierHash, double> weightMap = theEFRecClusters->getCellsWeight();
92
95
96 for (;cellIter != theCluster->
cell_end(); ++cellIter) {
97 const CaloCell* pCell = *cellIter;
99 if (const auto pWeight = weightMap.find(myHashId); pWeight!=weightMap.end()){
100 const double weight = pWeight->second;
102 }
103 }
104
106
108}
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
Identifier ID() const
get ID (from cached data member) non-virtual and inline for fast access
static void calculateKine(xAOD::CaloCluster *clu, const bool useweight=true, const bool updateLayers=true, const bool useGPUCriteria=false)
Helper class to calculate cluster kinematics based on cells.
const CaloCell_ID * getCaloCell_ID() const
get calo cell ID helper
virtual void setStatus(const StatusIndicator &statusIndicator)
Set status.
void reweightCell(cell_iterator it, const double weight)
Method to reweight a cell in the cluster (Beware: Kinematics not updated!)
CaloClusterCellLink::iterator cell_iterator
Iterator of the underlying CaloClusterCellLink (non-const version)
const_cell_iterator cell_end() const
const_cell_iterator cell_begin() const
Iterator of the underlying CaloClusterCellLink (const version)
CaloRecoStatus & recoStatus()
Accesssor to CaloRecoStatus (non-const)
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
◆ execute()
Definition at line 46 of file PFLCCalibTool.cxx.
46 {
47
49 std::unique_ptr<eflowRecClusterContainer> theEFRecClusterContainer =
m_clusterCollectionTool->retrieve(theEflowCaloObjectContainer,
true);
50
51 SG::ReadCondHandle<CaloDetDescrManager> caloMgrHandle{
m_caloMgrKey};
53 for (
auto thisEFlowRecCluster : *theEFRecClusterContainer)
applyLocalWeight(thisEFlowRecCluster,**caloMgrHandle);
54 }
55 else ATH_MSG_WARNING(
"Invalid pointer to CaloDetDescrManage: Did NOT calibrate any topoclusters.");
56 } else {
57
58 std::unique_ptr<xAOD::CaloClusterContainer> tempClusterContainer =
m_clusterCollectionTool->execute(theEflowCaloObjectContainer,
true);
59 const EventContext& ctx=Gaudi::Hive::currentContext();
60
61 for (auto thisCaloCluster : *tempClusterContainer){
62
64
66
68
70
71 }
72 }
73 return StatusCode::SUCCESS;
74}
◆ finalize()
| StatusCode PFLCCalibTool::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
| StatusCode PFLCCalibTool::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 23 of file PFLCCalibTool.cxx.
23 {
24
25
27
28
30
31
33
35
36
38
39
41
42 return StatusCode::SUCCESS;
43
44}
◆ m_caloMgrKey
Initial value:{ this
, "CaloDetDescrManager"
, "CaloDetDescrManager"
, "SG Key for CaloDetDescrManager in the Condition Store" }
ReadCondHandleKey for CaloDetDescrManager.
Definition at line 58 of file PFLCCalibTool.h.
58 { this
59 , "CaloDetDescrManager"
60 , "CaloDetDescrManager"
61 , "SG Key for CaloDetDescrManager in the Condition Store" };
◆ m_clusterCollectionTool
| ToolHandle<IPFClusterCollectionTool> PFLCCalibTool::m_clusterCollectionTool {this,"eflowRecClusterCollectionTool","eflowRecClusterCollectionTool","Tool to put all clusters into a temporary container - then we use this to calculate moments, some of which depend on configuration of nearby clusters"} |
|
private |
Tool to put all clusters into a temporary container - then we use this to calculate moments, some of which depend on configuration of nearby clusters.
Definition at line 40 of file PFLCCalibTool.h.
40{this,"eflowRecClusterCollectionTool","eflowRecClusterCollectionTool","Tool to put all clusters into a temporary container - then we use this to calculate moments, some of which depend on configuration of nearby clusters"};
◆ m_clusterLocalCalibDMTool
| ToolHandle<CaloClusterProcessor> PFLCCalibTool::m_clusterLocalCalibDMTool {this,"CaloClusterLocalCalibDM","CaloClusterLocalCalib","Tool for correcting clusters at cell level for dead material"} |
|
private |
Definition at line 52 of file PFLCCalibTool.h.
52{this,"CaloClusterLocalCalibDM","CaloClusterLocalCalib","Tool for correcting clusters at cell level for dead material"};
◆ m_clusterLocalCalibOOCCPi0Tool
| ToolHandle<CaloClusterProcessor> PFLCCalibTool::m_clusterLocalCalibOOCCPi0Tool {this,"CaloClusterLocalCalibOOCCPi0","CaloClusterLocalCalib","Tool to do Pi0 corrections"} |
|
private |
Definition at line 49 of file PFLCCalibTool.h.
49{this,"CaloClusterLocalCalibOOCCPi0","CaloClusterLocalCalib","Tool to do Pi0 corrections"};
◆ m_clusterLocalCalibOOCCTool
| ToolHandle<CaloClusterProcessor> PFLCCalibTool::m_clusterLocalCalibOOCCTool {this,"CaloClusterLocalCalibOOCC","CaloClusterLocalCalib","Tool to deal with out of cluster corrections"} |
|
private |
Definition at line 46 of file PFLCCalibTool.h.
46{this,"CaloClusterLocalCalibOOCC","CaloClusterLocalCalib","Tool to deal with out of cluster corrections"};
◆ m_clusterLocalCalibTool
| ToolHandle<CaloClusterProcessor> PFLCCalibTool::m_clusterLocalCalibTool {this,"CaloClusterLocalCalib","CaloClusterLocalCalib","Tool for applying local hadronc calibration weights to cells"} |
|
private |
Definition at line 43 of file PFLCCalibTool.h.
43{this,"CaloClusterLocalCalib","CaloClusterLocalCalib","Tool for applying local hadronc calibration weights to cells"};
◆ m_useLocalWeight
| Gaudi::Property<bool> PFLCCalibTool::m_useLocalWeight {this,"UseLocalWeight",false,"Toggle which LC weights scheme to use - default is to recalculate weights, rather than use saved weights"} |
|
private |
Toggle which LC weights scheme to use - default is to recalculate weights, rather than use saved weights.
Definition at line 55 of file PFLCCalibTool.h.
55{this,"UseLocalWeight",false,"Toggle which LC weights scheme to use - default is to recalculate weights, rather than use saved weights"};
The documentation for this class was generated from the following files: