|
ATLAS Offline Software
|
Go to the documentation of this file.
19 #include "GaudiKernel/IToolSvc.h"
20 #include "GaudiKernel/TypeNameString.h"
21 #include "GaudiKernel/StatusCode.h"
31 #include "CaloEvent/CaloTowerContainer.h"
40 ISvcLocator* pSvcLocator)
42 m_includeFcal(false) {
67 tool->setTowerSeg(theTowerSeg);
71 if (
tool->name().find(
"FC") != std::string::npos) {
84 ATH_MSG_DEBUG(
"Initialization of TrigCaloTowerMaker completed successfully");
86 return StatusCode::SUCCESS;
107 if ( !roiCollection.
isValid()) {
108 ATH_MSG_ERROR(
"Cell maker did not get a valid RoIs collection");
109 return StatusCode::FAILURE;
111 if (roiCollection->
size() == 0) {
113 return StatusCode::SUCCESS;
115 if (roiCollection->
size() > 1)
117 << roiCollection->
size()
118 <<
" ROI, but it should be called with 1 RoI - Will only "
119 "process the first RoI");
121 roiDescriptor = roiCollection->
front();
127 <<
" located at phi = " << roiDescriptor.
phi()
128 <<
", eta = " << roiDescriptor.
eta());
138 " Attempting to use composite RoI as a normal RoI - this is probably "
139 "*not* what you want to do "
143 double eta0 = roiDescriptor.
eta();
144 double phi0 = roiDescriptor.
phi();
148 double etamax = eta0 +
m_deta / 2.;
154 <<
" etamin = " <<
etamin <<
" etamax = " << etamax
155 <<
" phimin = " << phimin <<
" phimax = " << phimax);
162 caloTowerContainer.record(std::make_unique<CaloTowerContainer>(myseg)));
165 std::make_unique<CaloTowerContainer>(subseg.
segmentation())));
171 << caloTowerContainer.name()
172 <<
" symlinked to INavigable4MomentumCollection in StoreGate");
175 ATH_CHECK( caloCellContainer.isValid() );
182 " REGTEST: Retrieved a Cell Container of Size= " << theCellCont->
size());
190 ATH_CHECK(
tool->execute(ctx, pCaloTowerContainer, theCellCont));
193 ATH_CHECK(
tool->execute(ctx, pCaloTowerContainer, theCellCont, &subseg));
200 << caloTowerContainer.name() <<
" at "
201 << caloTowerContainer.cptr()
202 <<
" of Size= " << pCaloTowerContainer->
size());
204 mon_towerContainerSize =
static_cast<float>(pCaloTowerContainer->
size());
206 return StatusCode::SUCCESS;
Gaudi::Property< double > m_maxEta
Gaudi::Property< double > m_deta
Group
Properties of a chain group.
Gaudi::Property< unsigned int > m_nPhiTowers
Number of phi segments in which we divide the calorimeter.
SG::WriteHandleKey< CaloTowerContainer > m_outputTowerKey
T wrapToPi(T phi)
Wrap angle in radians to [-pi, pi].
bool m_includeFcal
To help structure Tower container.
virtual bool composite() const override final
SuperRoI compatability methods.
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
const std::string & key() const
Return the StoreGate ID for the referenced object.
Gaudi::Property< double > m_dphi
bool empty() const
Test if the key is blank.
virtual StatusCode execute(const EventContext &ctx) const override
def timer(name, disabled=False)
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
A rectangular window within the segmentation.
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_inputRoiKey
Storable container class for CaloTower.
::StatusCode StatusCode
StatusCode definition for legacy code.
const T * front() const
Access the first element in the collection as an rvalue.
#define CHECK(...)
Evaluate an expression and check for errors.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Header file to be included by clients of the Monitored infrastructure.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::ReadHandleKey< CaloCellContainer > m_inputCellsKey
Helper for azimuthal angle calculations.
SG::WriteHandleKey< INavigable4MomentumCollection > m_caloTowerNav4LinkKey
Container class for CaloCell.
virtual unsigned int roiId() const override final
these quantities probably don't need to be used any more
CaloTowerSeg segmentation() const
Return a new segmentation object corresponding to this window.
ToolHandleArray< CaloTowerBuilderToolBase > m_towerMakerTools
virtual StatusCode initialize() override
HLT method to initialize.
#define ATH_MSG_WARNING(x)
virtual double phi() const override final
Methods to retrieve data members.
Gaudi::Property< unsigned int > m_nEtaTowers
Number of eta segments in which we divide the calorimeter.
Gaudi::Property< double > m_minEta
Eta limits of the region where the towers are built.
TrigCaloTowerMaker(const std::string &name, ISvcLocator *pSvcLocator)
constructor
virtual double eta() const override final
Data object stores CaloTower segmentation.
ToolHandle< GenericMonitoringTool > m_monTool
Athena::TPCnvVers::Current TrigRoiDescriptor
Declare a monitored scalar variable.
size_type size() const noexcept
Returns the number of elements in the collection.
SubSeg subseg(double eta, double deta, double phi, double dphi) const
Return a window within the current segmentation.