|
ATLAS Offline Software
|
Go to the documentation of this file.
20 const std::string&
name,
26 declareInterface<CaloClusterCollectionProcessor>(
this);
35 return StatusCode::SUCCESS;
44 ATH_MSG_ERROR(
"A null collection was passed, which should never happen");
45 return StatusCode::FAILURE;
57 ATH_CHECK(caloDetDescrMgrHandle.isValid());
64 for (
const auto* cluster : *inputClusters) {
75 if (!cluster->inBarrel() && !cluster->inEndcap()) {
88 auto eta = cluster->etaSample(sam);
89 auto phi = cluster->phiSample(sam);
91 if ((
eta == 0. &&
phi == 0.) || std::abs(
eta) > 100) {
100 int sampling_or_module = 0;
114 <<
" phi = " <<
phi);
120 auto deta = dde->
deta();
121 auto dphi = dde->
dphi();
129 calc.fill(*calodetdescrmgr, cellcoll.
ptr(), cluster->etaSample(sam),
132 if (
sc.isFailure()) {
136 double etamax =
calc.etarmax();
137 double phimax =
calc.phirmax();
153 if (cluster->inBarrel()) {
171 auto eta = cluster->etaSample(sam);
172 auto phi = cluster->phiSample(sam);
174 if ((
eta == 0. &&
phi == 0.) || std::abs(
eta) > 100) {
176 <<
eta <<
" phi = " <<
phi <<
" Eeme2 = "
185 int sampling_or_module = 0;
195 subcalo, sampling_or_module, emec,
eta,
phi);
200 <<
" phi = " <<
phi);
206 auto deta = dde->
deta();
207 auto dphi = dde->
dphi();
222 *calodetdescrmgr, cellcoll.
ptr(), cluster->etaSample(sam),
226 if (
sc.isFailure()) {
230 double etamax =
calc.etarmax();
231 double phimax =
calc.phirmax();
233 newCluster->setEta0(etamax);
234 newCluster->setPhi0(phimax);
236 std::map<CaloSampling::CaloSample, double> caloSamV;
249 if (!caloSamV.empty()) {
252 std::vector<const CaloCell*>
cells;
255 for (
auto s : caloSamV) {
256 myList.
select(cluster->etaSample(sam), cluster->phiSample(sam),
268 newCluster->addCell(
index, 1.);
273 return StatusCode::SUCCESS;
float deta() const
cell deta
static std::unique_ptr< xAOD::CaloCluster > makeCluster(const CaloCellContainer *cellCont)
Creates a valid CaloCluster with a private Aux-Store and CellLink container.
Gaudi::Property< double > m_fwdEtThr
Et cut on input forward clusters to produce large clusters.
Gaudi::Property< bool > m_isFWD
do FWD cell
Gaudi::Property< double > m_centEtThr
Et cut on input central clusters to produce large clusters.
list_iterator begin() const
Scalar phi() const
phi method
void select(double eta, double phi, double deta, double dphi)
Scalar eta() const
pseudorapidity method
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
bool inBarrel(const xAOD::CaloCluster &cluster, int is)
return boolean to know if we are in barrel/end-cap
Gaudi::Property< double > m_nphiFWD
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
Cell container.
virtual StatusCode initialize() override final
initialize method
Gaudi::Property< bool > m_addCellsFromOtherSamplings
Et cut on input forward clusters to produce large clusters.
Definition of CaloDetDescrManager.
list_iterator end() const
Handle class for recording to StoreGate.
Description of a calorimeter cluster.
Gaudi::Property< double > m_nphi
void setPhi0(flt_t)
Set raw of cluster seed.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< double > m_netaFWD
SUBCALO
enumeration of sub calorimeters
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Gaudi::Property< double > m_drEM
Gaudi::Property< double > m_neta
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *collection) const override final
execute on container
bool isFCAL(const xAOD::CaloCluster *cluster)
return true if the cluster (or the majority of its energy) is in the FCAL0
StatusCode initialize(bool used=true)
const_pointer_type ptr()
Dereference the pointer.
float dphi() const
cell dphi
This class provides the client interface for accessing the detector description information common to...
void setClusterSize(const ClusterSize)
Get cluster size.
Gaudi::Property< double > m_drFWD
#define ATH_MSG_WARNING(x)
static void decode_sample(CaloCell_ID::SUBCALO &subCalo, bool &barrel, int &sampling_or_module, CaloCell_ID::CaloSample sample)
translate between the 2 ways to label a sub-detector:
int findIndex(const IdentifierHash theHash) const
Return index of the cell with a given hash.
Handle class for reading from StoreGate.
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inputClusterCollection
The name of the cluster container for electrons and photons.
egammaLargeClusterMaker(const std::string &type, const std::string &name, const IInterface *parent)
@bried constructor
Calculate total energy, position, etc. for a given layer of a cluster.
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey