ATLAS Offline Software
Loading...
Searching...
No Matches
eTauNoSort.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4// eTauNoSort.cxx
5// TopoCore
6// Algorithm to generate ALL lists of eTau TOBs
7
12#include <algorithm>
13
14REGISTER_ALG_TCS(eTauNoSort)
15
16// constructor
18 defineParameter( "InputWidth", 120 ); // for fw
19 defineParameter( "OutputWidth", 120 );
20 defineParameter( "RCoreMin", 0);
21 defineParameter( "RHadMin", 0);
22}
23
24
25// destructor
27
30 m_numberOfeTaus = parameter("OutputWidth").value();
31 m_minRCore = parameter("RCoreMin").value();
32 m_minRHad = parameter("RHadMin").value();
34}
35
38
39 const eTauTOBArray & clusters = dynamic_cast<const eTauTOBArray&>(input);
40
41 // fill output array with GenericTOB built from clusters
42 for(eTauTOBArray::const_iterator etau = clusters.begin(); etau!= clusters.end(); ++etau ) {
43
44 // Isolation cut
45 if ( !isocut(m_minRCore, (*etau)-> rCore()) ) {continue;}
46 if ( !isocut(m_minRHad, (*etau)-> rHad()) ) {continue;}
47
48 const GenericTOB gtob(**etau);
49 output.push_back( gtob );
50 }
51
52
53 // keep only max number of clusters
54 int par = m_numberOfeTaus ;
55 unsigned int maxNumberOfeTaus = std::clamp(par, 0, std::abs(par));
56 if(maxNumberOfeTaus>0) {
57 while( output.size()> maxNumberOfeTaus ) {
58 output.pop_back();
59 }
60 }
62}
63
#define REGISTER_ALG_TCS(CLASS)
Definition AlgFactory.h:62
const Parameter & parameter(const std::string &parameterName) const
const std::string & name() const
bool isocut(const std::string &threshold, const unsigned int bit) const
void defineParameter(const std::string &name, TCS::parType_t value)
data_t::const_iterator const_iterator
SortingAlg(const std::string &name)
Definition SortingAlg.h:21
parType_t m_numberOfeTaus
Definition eTauNoSort.h:31
virtual TCS::StatusCode initialize() override
virtual ~eTauNoSort()
parType_t m_minRCore
Definition eTauNoSort.h:32
parType_t m_minRHad
Definition eTauNoSort.h:33
eTauNoSort(const std::string &name)
virtual TCS::StatusCode sort(const InputTOBArray &input, TOBArray &output) override final
STL namespace.