|
ATLAS Offline Software
|
Go to the documentation of this file.
13 return StatusCode::SUCCESS;
25 auto neutralFEContainer = std::make_unique<xAOD::FlowElementContainer>();
26 auto neutralFEContainerAux = std::make_unique<xAOD::FlowElementAuxContainer>();
27 neutralFEContainer->setStore(neutralFEContainerAux.get());
31 for (
const auto *thisEflowCaloObject : *eflowCaloObjectContainerReadHandle) {
33 ATH_MSG_WARNING(
"Problem encountered while creating neutral FlowElements");
34 return StatusCode::SUCCESS;
41 std::sort(neutralFEContainer->begin(),
42 neutralFEContainer->end(),
44 return fe1->pt() > fe2->pt();
47 std::move(neutralFEContainer), std::move(neutralFEContainerAux)));
49 return StatusCode::SUCCESS;
58 for (
unsigned int iCluster = 0; iCluster < energyFlowCaloObject.
nClusters(); ++iCluster){
91 std::vector<ElementLink<xAOD::IParticleContainer>> theClusters;
93 theClusters.emplace_back(theSisterClusterLink);
96 theClusters.emplace_back(theOriginalClusterLink);
102 accShowerSubtractedClusterLink(
"FEShowerSubtractedClusterLink");
103 accShowerSubtractedClusterLink(*thisFE) =
118 ATH_MSG_DEBUG(
"Created neutral FlowElement with E, pt, eta and phi of "
119 << thisFE->
e() <<
", " << thisFE->
pt() <<
", "
120 << thisFE->
eta() <<
" and " << thisFE->
phi());
135 accFloatTIle0E(*thisFE) = layerEnergy_TileBar0 + layerEnergy_TileExt0;
138 accFloatTiming(*thisFE) = cluster->
time();
143 std::vector<double>
eta,
phi;
152 accFloatWidthEta(*thisFE) =
width.first;
154 accFloatWidthPhi(*thisFE) =
width.second;
158 return StatusCode::SUCCESS;
This class extends the information about a xAOD::CaloCluster.
virtual double phi() const
The azimuthal angle ( ) of the particle.
flt_t time() const
Access cluster time.
unsigned nClusters() const
void addStandardSamplingEnergies(xAOD::FlowElement &theFE, const xAOD::CaloCluster &theCluster)
flt_t rawEta() const
Get in signal state UNCALIBRATED.
Scalar phi() const
phi method
void addStandardMoments(xAOD::FlowElement &theFE, const xAOD::CaloCluster &theCluster)
Helper class to provide type-safe access to aux data.
Scalar eta() const
pseudorapidity method
void setSignalType(signal_t t)
void addStandardCalHitMoments(xAOD::FlowElement &theFE, const xAOD::CaloCluster &theCluster)
const_iterator begin() const
const begin method
SG::ReadHandleKey< eflowCaloObjectContainer > m_eflowCaloObjectContainerReadHandleKey
ReadHandleKey for eflowCaloObjectContainer.
virtual double phi() const override
The azimuthal angle ( ) of the particle.
virtual double pt() const override
An internal EDM object which stores information about systems of associated tracks and calorimeter cl...
#define ATH_MSG_VERBOSE(x)
void setOtherObjectLinks(const std::vector< ElementLink< IParticleContainer >> &elV)
bool isValid() const
Test to see if the link can be dereferenced.
Bookkeeping of cells that make up a cluster Simplified replacement for CaloCellLink,...
Description of a calorimeter cluster.
virtual double eta() const
The pseudorapidity ( ) of the particle.
::StatusCode StatusCode
StatusCode definition for legacy code.
FlowElement_v1 FlowElement
Definition of the current "pfo version".
Gaudi::Property< bool > m_addCPData
Toggle whether to decorate FlowElements with addutional data for Combined Performance studies.
StatusCode createNeutralFlowElement(const eflowCaloObject &energyFlowCaloObject, xAOD::FlowElementContainer *neutralFEContainer) const
Create the chargedneutral FE.
xAOD::CaloCluster * getCluster()
ElementLink< xAOD::CaloClusterContainer > getOriginalClusElementLink() const
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Gaudi::Property< bool > m_useCalibHitTruth
Toggle usage of calibration hit truth - false by default.
const CaloClusterCellLink * getCellLinks() const
Get a pointer to the CaloClusterCellLink object (const version)
SG::WriteHandleKey< xAOD::FlowElementContainer > m_neutralFEContainerWriteHandleKey
WriteHandleKey for neutral FE.
ElementLink implementation for ROOT usage.
flt_t rawM() const
Get mass in signal state UNCALIBRATED.
size_t size() const
size method
virtual double e() const override
The total energy of the particle.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
const_iterator end() const
const end method
virtual double eta() const override
The pseudorapidity ( ) of the particle.
float eSample(const CaloSample sampling) const
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
Data object for each calorimeter readout cell.
flt_t rawPhi() const
Get in signal state UNCALIBRATED.
#define ATH_MSG_WARNING(x)
const eflowRecCluster * efRecCluster(int i) const
StatusCode execute(const EventContext &ctx) const
void setP4(float pt, float eta, float phi, float m)
const_iterator to loop over cells belonging to a cluster
std::pair< double, double > getPFClusterCoordinateWidth(const std::vector< double > &eta, const std::vector< double > &phi, const double &clusterEta, const double &clusterPhi, unsigned int nCells)
virtual double e() const
The total energy of the particle.
ElementLink< xAOD::CaloClusterContainer > getClusElementLink() const
A detector object made of other lower level object(s)