ATLAS Offline Software
Loading...
Searching...
No Matches
eEmNoSort.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4// eEmNoSort.cxx
5// TopoCore
6// Algorithm to generate ALL lists of eEm TOBs
7
12#include <algorithm>
13
14REGISTER_ALG_TCS(eEmNoSort)
15
16// constructor
18 defineParameter( "InputWidth", 120 ); // for fw
19 defineParameter( "OutputWidth", 120 );
20 defineParameter( "REtaMin", 0);
21 defineParameter( "RHadMin", 0);
22 defineParameter( "WsTotMin", 0);
23}
24
25
26// destructor
28
31 m_numberOfeEms = parameter("OutputWidth").value();
32 m_minREta = parameter("REtaMin").value();
33 m_minRHad = parameter("RHadMin").value();
34 m_minWsTot = parameter("WsTotMin").value();
36}
37
40
41 const eEmTOBArray & clusters = dynamic_cast<const eEmTOBArray&>(input);
42
43 // fill output array with GenericTOB built from clusters
44 for(eEmTOBArray::const_iterator eem = clusters.begin(); eem!= clusters.end(); ++eem ) {
45
46 // Isolation cut
47 if ( !isocut(m_minREta, (*eem)-> Reta()) ) {continue;}
48 if ( !isocut(m_minRHad, (*eem)-> Rhad()) ) {continue;}
49 if ( !isocut(m_minWsTot, (*eem)-> Wstot()) ) {continue;}
50
51 const GenericTOB gtob(**eem);
52 output.push_back( gtob );
53 }
54
55
56 // keep only max number of clusters
57 int par = m_numberOfeEms ;
58 unsigned int maxNumberOfeEms = std::clamp(par, 0, std::abs(par));
59 if(maxNumberOfeEms>0) {
60 while( output.size()> maxNumberOfeEms ) {
61 output.pop_back();
62 }
63 }
65}
66
#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
virtual TCS::StatusCode initialize() override
Definition eEmNoSort.cxx:30
virtual ~eEmNoSort()
Definition eEmNoSort.cxx:27
parType_t m_minRHad
Definition eEmNoSort.h:33
eEmNoSort(const std::string &name)
Definition eEmNoSort.cxx:17
parType_t m_minWsTot
Definition eEmNoSort.h:34
virtual TCS::StatusCode sort(const InputTOBArray &input, TOBArray &output) override final
Definition eEmNoSort.cxx:39
parType_t m_minREta
Definition eEmNoSort.h:32
parType_t m_numberOfeEms
Definition eEmNoSort.h:31
STL namespace.