ATLAS Offline Software
Loading...
Searching...
No Matches
xAODJetROIRetriever.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7#include <string>
8
9#include "CLHEP/Units/SystemOfUnits.h"
10
12
13namespace JiveXML {
14
15 //--------------------------------------------------------------------------
16
17 xAODJetROIRetriever::xAODJetROIRetriever(const std::string& type, const std::string& name, const IInterface* parent):
18 AthAlgTool(type, name, parent), m_typeName("JetROI")
19 {
20
21 declareInterface<IDataRetriever>(this);
22 }
23
24 //--------------------------------------------------------------------------
25
26 StatusCode xAODJetROIRetriever::retrieve(ToolHandle<IFormatTool> &FormatTool) {
27
30 DataVect energy;
31 DataVect roiWord;
32 DataVect thrPattern;
33
35
36 const xAOD::JetRoIContainer* jetROIs = 0;
37
38
39 // L1JetObject -not- available
40 m_sgKey = "LVL1JetRoIs";
41 if ( evtStore()->retrieve(jetROIs,m_sgKey).isFailure() ) {
42 if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "No LVL1JetROIs found in SG " << endmsg;
43 return StatusCode::SUCCESS;
44 }
45 if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Found LVL1JetROIs in SG ! " << endmsg;
46
49
50
51 int counter = 0;
52 for (; itJET != itJETe; ++itJET)
53 {
54 phi.push_back(DataType( (*itJET)->phi()) );
55 eta.push_back(DataType( (*itJET)->eta()) );
56
57 if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "xAOD JetROI #" << counter++
58 << ", eta: " << (*itJET)->eta() << ", phi: " << (*itJET)->phi() << endmsg;
59
60// Placeholders ! No direct access to those in Run-2
61// Reference:
62// Event/xAOD/xAODTrigger/trunk/Root/JetRoI_v2.cxx
63// jpt 9Jan15:
64 energy.push_back(DataType( 0. ));
65 roiWord.push_back(DataType( 0. ));
66 thrPattern.push_back(DataType( 0. ));
67
68// Run-1: info from Alan Watson: pT is getET8x8();
69// energy.push_back(DataType( itJET->pt()/1000. ));
71// energy.push_back(DataType( (*itJET)->getET4x4()/1000. ));
72// roiWord.push_back(DataType( (*itJET)->getRoI()));
73// thrPattern.push_back(DataType( (*itJET)->getThrPattern()));
74
75 }
76
77 DataMap myDataMap;
78 const auto nPhi = phi.size();
79 myDataMap["phi"] = std::move(phi);
80 myDataMap["eta"] = std::move(eta);
81 myDataMap["energy"] = std::move(energy);
82 myDataMap["roiWord"] = std::move(roiWord);
83 myDataMap["thrPattern"] = std::move(thrPattern);
84
85 if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << dataTypeName() << ": "<< nPhi
86 << " from: " << m_sgKey << endmsg;
87
88 //forward data to formating tool
89 return FormatTool->AddToEvent(dataTypeName(), m_sgKey, &myDataMap);
90 }
91}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define endmsg
OFFLINE_FRAGMENTS_NAMESPACE::PointerType DataType
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
ServiceHandle< StoreGateSvc > & evtStore()
bool msgLvl(const MSG::Level lvl) const
MsgStream & msg() const
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
virtual StatusCode retrieve(ToolHandle< IFormatTool > &FormatTool)
Retrieve all the data.
virtual std::string dataTypeName() const
Return the name of the data type.
const std::string m_typeName
The data type that is generated by this retriever.
xAODJetROIRetriever(const std::string &type, const std::string &name, const IInterface *parent)
Standard Constructor.
This header is shared inbetween the C-style server thread and the C++ Athena ServerSvc.
std::map< std::string, DataVect > DataMap
Definition DataType.h:59
std::vector< DataType > DataVect
Defines a map with a key and a vector of DataType objects e.g.
Definition DataType.h:58
JetRoIContainer_v2 JetRoIContainer