ATLAS Offline Software
Loading...
Searching...
No Matches
eTauSelect.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4// eTauSelect.cxx
5// TopoCore
6// Algorithm to select the abbreviated list of eTaus , no order is applied
7//
12#include <algorithm>
13
14REGISTER_ALG_TCS(eTauSelect)
15
16// constructor
18 defineParameter( "InputWidth", 120 ); // for fw
19 defineParameter( "InputWidth1stStage", 30 ); // for fw
20 defineParameter( "OutputWidth", 6 );
21 defineParameter( "MinET", 0 );
22 defineParameter( "RCoreMin", 0 );
23 defineParameter( "RHadMin", 0 );
24 defineParameter( "MinEta", 0 );
25 defineParameter( "MaxEta", 196 );
26}
27
28
29// destructor
31
34 m_numberOfeTaus = parameter("OutputWidth").value();
35 m_et = parameter("MinET").value();
36 m_minRCore = parameter("RCoreMin").value();
37 m_minRHad = parameter("RHadMin").value();
39}
40
43
44 const eTauTOBArray & clusters = dynamic_cast<const eTauTOBArray&>(input);
45
46 // fill output array with GenericTOB buildt from clusters
47 for(eTauTOBArray::const_iterator etau = clusters.begin(); etau!= clusters.end(); ++etau ) {
48
49 if( parType_t((*etau)->Et()) <= m_et ) continue; // ET cut
50
51 // Isolation cut
52 if ( !isocut(m_minRCore, (*etau)-> rCore()) ) {continue;}
53 if ( !isocut(m_minRHad, (*etau)-> rHad()) ) {continue;}
54
55 const GenericTOB gtob(**etau);
56 output.push_back( gtob );
57 }
58
59
60 // keep only max number of clusters
61 int par = m_numberOfeTaus ;
62 unsigned int maxNumberOfeTaus = std::clamp(par, 0, std::abs(par));
63 if(maxNumberOfeTaus>0) {
64
65 if (output.size()> maxNumberOfeTaus) {setOverflow(true);}
66
67 while( output.size()> maxNumberOfeTaus ) {
68 output.pop_back();
69 }
70 }
72}
73
#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 & setOverflow(const bool v)
setter, to propagate bit from input event
Definition SortingAlg.h:37
SortingAlg(const std::string &name)
Definition SortingAlg.h:21
virtual TCS::StatusCode sort(const InputTOBArray &input, TOBArray &output) override final
parType_t m_minRCore
Definition eTauSelect.h:33
eTauSelect(const std::string &name)
parType_t m_minRHad
Definition eTauSelect.h:34
parType_t m_numberOfeTaus
Definition eTauSelect.h:31
parType_t m_et
Definition eTauSelect.h:32
virtual TCS::StatusCode initialize() override
virtual ~eTauSelect()
uint32_t parType_t
Definition Parameter.h:22
STL namespace.