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 <PFUnifiedLCCalibTool.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 PFUnifiedLCCalibTool.h.
◆ PFUnifiedLCCalibTool()
| PFUnifiedLCCalibTool::PFUnifiedLCCalibTool |
( |
const std::string & | type, |
|
|
const std::string & | name, |
|
|
const IInterface * | parent ) |
◆ ~PFUnifiedLCCalibTool()
| PFUnifiedLCCalibTool::~PFUnifiedLCCalibTool |
( |
| ) |
|
|
inline |
◆ apply()
Definition at line 83 of file PFUnifiedLCCalibTool.cxx.
83 {
85 ATH_CHECK(calibTool->execute(ctx,cluster));
86 return StatusCode::SUCCESS;
87}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
◆ applyLocalWeight()
Definition at line 89 of file PFUnifiedLCCalibTool.cxx.
89 {
91
92
93 const std::map<IdentifierHash, double> weightMap = theEFRecClusters->getCellsWeight();
94
97
98 for (;cellIter != theCluster->
cell_end(); ++cellIter) {
99 const CaloCell* pCell = *cellIter;
101 if (const auto pWeight = weightMap.find(myHashId); pWeight!=weightMap.end()){
102 const double weight = pWeight->second;
104 }
105 }
106
108
110}
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.
◆ initialize()
| StatusCode PFUnifiedLCCalibTool::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 24 of file PFUnifiedLCCalibTool.cxx.
24 {
25
26
28
29
31
32
34
36
37
39
40
42
43 return StatusCode::SUCCESS;
44
45}
◆ processPFlowData()
| StatusCode PFUnifiedLCCalibTool::processPFlowData |
( |
const EventContext & | ctx, |
|
|
PFData & | thePFData ) const |
|
overridevirtual |
Definition at line 47 of file PFUnifiedLCCalibTool.cxx.
47 {
48
50 ATH_MSG_ERROR(
"PFData::caloObjects is null; caller must set it before invoking the LC calib tool");
51 return StatusCode::FAILURE;
52 }
53
54 eflowCaloObjectContainer *theEflowCaloObjectContainer = thePFData.
caloObjects;
55
57 std::unique_ptr<eflowRecClusterContainer> theEFRecClusterContainer =
m_clusterCollectionTool->retrieve(*theEflowCaloObjectContainer,
true);
58
59 SG::ReadCondHandle<CaloDetDescrManager> caloMgrHandle{
m_caloMgrKey, ctx};
61 for (
auto thisEFlowRecCluster : *theEFRecClusterContainer)
applyLocalWeight(thisEFlowRecCluster,**caloMgrHandle);
62 }
63 else ATH_MSG_WARNING(
"Invalid pointer to CaloDetDescrManage: Did NOT calibrate any topoclusters.");
64 } else {
65
66 std::unique_ptr<xAOD::CaloClusterContainer> tempClusterContainer =
m_clusterCollectionTool->execute(*theEflowCaloObjectContainer,
true);
67
68 for (auto thisCaloCluster : *tempClusterContainer){
69
71
73
75
77
78 }
79 }
80 return StatusCode::SUCCESS;
81}
eflowCaloObjectContainer * caloObjects
◆ m_caloMgrKey
Initial value:{ this
, "CaloDetDescrManager"
, "CaloDetDescrManager"
, "SG Key for CaloDetDescrManager in the Condition Store" }
ReadCondHandleKey for CaloDetDescrManager.
Definition at line 57 of file PFUnifiedLCCalibTool.h.
57 { this
58 , "CaloDetDescrManager"
59 , "CaloDetDescrManager"
60 , "SG Key for CaloDetDescrManager in the Condition Store" };
◆ m_clusterCollectionTool
| ToolHandle<IPFClusterCollectionTool> PFUnifiedLCCalibTool::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 39 of file PFUnifiedLCCalibTool.h.
39{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> PFUnifiedLCCalibTool::m_clusterLocalCalibDMTool {this,"CaloClusterLocalCalibDM","CaloClusterLocalCalib","Tool for correcting clusters at cell level for dead material"} |
|
private |
Definition at line 51 of file PFUnifiedLCCalibTool.h.
51{this,"CaloClusterLocalCalibDM","CaloClusterLocalCalib","Tool for correcting clusters at cell level for dead material"};
◆ m_clusterLocalCalibOOCCPi0Tool
| ToolHandle<CaloClusterProcessor> PFUnifiedLCCalibTool::m_clusterLocalCalibOOCCPi0Tool {this,"CaloClusterLocalCalibOOCCPi0","CaloClusterLocalCalib","Tool to do Pi0 corrections"} |
|
private |
Definition at line 48 of file PFUnifiedLCCalibTool.h.
48{this,"CaloClusterLocalCalibOOCCPi0","CaloClusterLocalCalib","Tool to do Pi0 corrections"};
◆ m_clusterLocalCalibOOCCTool
| ToolHandle<CaloClusterProcessor> PFUnifiedLCCalibTool::m_clusterLocalCalibOOCCTool {this,"CaloClusterLocalCalibOOCC","CaloClusterLocalCalib","Tool to deal with out of cluster corrections"} |
|
private |
Definition at line 45 of file PFUnifiedLCCalibTool.h.
45{this,"CaloClusterLocalCalibOOCC","CaloClusterLocalCalib","Tool to deal with out of cluster corrections"};
◆ m_clusterLocalCalibTool
| ToolHandle<CaloClusterProcessor> PFUnifiedLCCalibTool::m_clusterLocalCalibTool {this,"CaloClusterLocalCalib","CaloClusterLocalCalib","Tool for applying local hadronc calibration weights to cells"} |
|
private |
Definition at line 42 of file PFUnifiedLCCalibTool.h.
42{this,"CaloClusterLocalCalib","CaloClusterLocalCalib","Tool for applying local hadronc calibration weights to cells"};
◆ m_useLocalWeight
| Gaudi::Property<bool> PFUnifiedLCCalibTool::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 54 of file PFUnifiedLCCalibTool.h.
54{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: