 |
ATLAS Offline Software
|
#include <eEmSortSelectCountContainerAlgTool.h>
◆ GenTobPtr
◆ eEmSortSelectCountContainerAlgTool()
GlobalSim::eEmSortSelectCountContainerAlgTool::eEmSortSelectCountContainerAlgTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~eEmSortSelectCountContainerAlgTool()
virtual GlobalSim::eEmSortSelectCountContainerAlgTool::~eEmSortSelectCountContainerAlgTool |
( |
| ) |
|
|
virtualdefault |
◆ count_tobs()
std::vector< std::size_t > GlobalSim::eEmSortSelectCountContainerAlgTool::count_tobs |
( |
const std::vector< std::vector< GenTobPtr >> & |
tobContainerVector | ) |
const |
|
private |
Definition at line 316 of file eEmSortSelectCountContainerAlgTool.cxx.
322 const auto& gTobs = tobContainerVector[
s_CntSelN[
i]];
331 for(std::size_t j{0}; j != etMin_etaRegs.size(); ++j) {
332 if (tob->Et() > etMin_etaRegs[j] and
333 tob->Eta() > etaMin_etaRegs[j] and
334 tob->Eta() <= etaMax_etaRegs[j]) {return true;}
◆ initialize()
StatusCode GlobalSim::eEmSortSelectCountContainerAlgTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ make_selectedTobs()
StatusCode GlobalSim::eEmSortSelectCountContainerAlgTool::make_selectedTobs |
( |
const std::vector< eEmTobPtr > & |
eEmTobs, |
|
|
std::vector< std::vector< eEmTobPtr >> & |
selectedTobs |
|
) |
| const |
|
private |
Definition at line 283 of file eEmSortSelectCountContainerAlgTool.cxx.
295 (tob->Et_bits()).to_ulong() >= etMin and
296 (tob->REta_bits()).to_ulong() >= rEtaMin and
297 (tob->RHad_bits()).to_ulong() >= rHadMin and
298 (tob->WsTot_bits()).to_ulong() >= wsTotMin;
301 std::vector<eEmTobPtr> s_tobs;
302 s_tobs.reserve(eEmTobs.size());
305 std::back_inserter(s_tobs),
308 selectedTobs.push_back(s_tobs);
312 return StatusCode::SUCCESS;
◆ run()
StatusCode GlobalSim::eEmSortSelectCountContainerAlgTool::run |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
Definition at line 70 of file eEmSortSelectCountContainerAlgTool.cxx.
86 for (
const auto&
p : *
fifo) {
95 auto collector = std::make_unique<DataCollector>();
96 collector->collect(
"eEmTobs in", eEmTobs);
101 auto selected_eEmTobs = std::vector<std::vector<eEmTobPtr>>();
104 collector->collect(
"selected eEmTobs containers", selected_eEmTobs);
109 auto selected_genericTobs =
110 std::vector<std::vector<GenTobPtr>>(selected_eEmTobs.size(),
111 std::vector<GenTobPtr>());
113 auto make_genericTob = [](
const auto& tob) {
114 return std::make_shared<GenericTob>(tob);
117 for (std::size_t
i = 0;
i != selected_eEmTobs.size(); ++
i){
120 std::back_inserter(selected_genericTobs[
i]),
124 collector->collect(
"Selected generic tob containers",
125 selected_genericTobs);
128 return l->Et() >
r->Et();
132 auto ports_out = std::make_unique<eEmSortSelectCountContainerPortsOut>();
137 auto& outputTobs = ports_out->m_O_eEmGenTob;
140 auto&
sel = selected_genericTobs[
i];
158 collector->collect(
"Sorted generic tob containers",
159 selected_genericTobs);
167 std::cbegin(eEmTobs)+numToCopy,
178 auto ntobs =
count_tobs(selected_genericTobs);
179 collector->collect(
"eEmSortSelectCount counts", ntobs);
183 std::vector<std::pair<std::size_t, unsigned>> bounded_counts;
184 bounded_counts.reserve(ntobs.size());
186 for(std::size_t
i = 0;
i != ntobs.size(); ++
i) {
187 bounded_counts.push_back({
193 std::vector<std::vector<short>> int_bit_vecs;
194 int_bit_vecs.reserve(bounded_counts.size());
198 std::cend(bounded_counts),
199 std::back_inserter(int_bit_vecs),
201 std::vector<short> bits(
p.second, 0);
205 if (ntob&1) {bits.at(
i) = 1;}
215 std::vector<short> int_bits;
216 for (
const auto&
v : int_bit_vecs) {
217 int_bits.insert(int_bits.end(), std::cbegin(
v), std::cend(
v));
223 int_bits.size() != (ports_out->m_O_Multiplicity)->
size()) {
226 <<
" obtained " << int_bits.size()
227 <<
" number bits in output ports "
228 << (ports_out->m_O_Multiplicity)->size());
229 return StatusCode::FAILURE;
233 auto& count_bits_out = ports_out->m_O_Multiplicity;
234 for (std::size_t
i = 0;
i != int_bits.size(); ++
i){
235 if (int_bits[
i] == 1) {
236 count_bits_out->set(
i);
238 count_bits_out->reset(
i);
244 std::stringstream
ss;
250 std::stringstream
ss;
261 CHECK(h_write.record(std::move(ports_out)));
262 return StatusCode::SUCCESS;
◆ toString()
std::string GlobalSim::eEmSortSelectCountContainerAlgTool::toString |
( |
| ) |
const |
|
overridevirtual |
◆ m_count_EtaMax
std::vector<std::vector<int> > GlobalSim::eEmSortSelectCountContainerAlgTool::m_count_EtaMax |
|
private |
◆ m_count_EtaMin
std::vector<std::vector<int> > GlobalSim::eEmSortSelectCountContainerAlgTool::m_count_EtaMin |
|
private |
◆ m_count_EtMin
std::vector<std::vector<int> > GlobalSim::eEmSortSelectCountContainerAlgTool::m_count_EtMin |
|
private |
◆ m_enableDump
Gaudi::Property<bool> GlobalSim::eEmSortSelectCountContainerAlgTool::m_enableDump |
|
private |
◆ m_EtMin
std::vector<unsigned> GlobalSim::eEmSortSelectCountContainerAlgTool::m_EtMin |
|
private |
◆ m_HypoFIFOReadKey
◆ m_portsOutWriteKey
◆ m_REtaMin
std::vector<unsigned> GlobalSim::eEmSortSelectCountContainerAlgTool::m_REtaMin |
|
private |
◆ m_RHadMin
std::vector<unsigned> GlobalSim::eEmSortSelectCountContainerAlgTool::m_RHadMin |
|
private |
◆ m_WsTotMin
std::vector<unsigned> GlobalSim::eEmSortSelectCountContainerAlgTool::m_WsTotMin |
|
private |
◆ s_CntSelN
constexpr static std::array<std::size_t, s_NumCnt> GlobalSim::eEmSortSelectCountContainerAlgTool::s_CntSelN |
|
staticconstexprprivate |
Initial value:{
0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Definition at line 97 of file eEmSortSelectCountContainerAlgTool.h.
◆ s_CountOutWidth
constexpr static auto& GlobalSim::eEmSortSelectCountContainerAlgTool::s_CountOutWidth |
|
staticconstexprprivate |
◆ s_max_counts
constexpr static auto& GlobalSim::eEmSortSelectCountContainerAlgTool::s_max_counts |
|
staticconstexprprivate |
◆ s_NumCnt
constexpr static std::size_t GlobalSim::eEmSortSelectCountContainerAlgTool::s_NumCnt {24} |
|
staticconstexprprivate |
◆ s_NumEtaRanges
constexpr static std::size_t GlobalSim::eEmSortSelectCountContainerAlgTool::s_NumEtaRanges {3} |
|
staticconstexprprivate |
◆ s_NumNoSort
constexpr static auto& GlobalSim::eEmSortSelectCountContainerAlgTool::s_NumNoSort |
|
staticconstexprprivate |
◆ s_NumSelect
constexpr static auto& GlobalSim::eEmSortSelectCountContainerAlgTool::s_NumSelect |
|
staticconstexprprivate |
◆ s_NumSort
constexpr static auto& GlobalSim::eEmSortSelectCountContainerAlgTool::s_NumSort |
|
staticconstexprprivate |
◆ s_NumTotalCountWidth
constexpr static auto& GlobalSim::eEmSortSelectCountContainerAlgTool::s_NumTotalCountWidth |
|
staticconstexprprivate |
◆ s_SortOutStart
constexpr static auto& GlobalSim::eEmSortSelectCountContainerAlgTool::s_SortOutStart |
|
staticconstexprprivate |
◆ s_SortOutWidth
constexpr static auto& GlobalSim::eEmSortSelectCountContainerAlgTool::s_SortOutWidth |
|
staticconstexprprivate |
◆ s_SortOutWidths
constexpr static auto& GlobalSim::eEmSortSelectCountContainerAlgTool::s_SortOutWidths |
|
staticconstexprprivate |
The documentation for this class was generated from the following files:
std::string eEmInputTOBToString(const std::bitset< 72 > &bs)
constexpr static std::array< unsigned, NumCount > CountOutWidth
constexpr static std::array< std::size_t, NumSort > SortOutStart
constexpr static std::size_t NumTotalCountWidth
std::vector< eEmTobPtr > make_eEmTobs(const GlobalSim::GepAlgoHypothesisFIFO &fifo)
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Out copy_if(In first, const In &last, Out res, const Pred &p)
constexpr static std::size_t NumNoSort
#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.
constexpr static std::size_t SortOutWidth
constexpr static std::size_t NumSelect
void partial_sort(std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, std::reverse_iterator< DataModel_detail::iterator< DVL > > mid, std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Compare comp)
Specialization of partial_sort for DataVector/List.
constexpr static std::array< std::size_t, NumCount > max_counts
constexpr static std::size_t NumSort
constexpr static std::array< std::size_t, NumSort > SortOutWidths