ATLAS Offline Software
Loading...
Searching...
No Matches
eEmSelect.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4// eEmSelect.cxx
5// TopoCore
6// Algorithm to select the abbreviated list of eEMs , no order is applied
7//
12#include <algorithm>
13
14REGISTER_ALG_TCS(eEmSelect)
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( "REtaMin", 0 );
23 defineParameter( "RHadMin", 0 );
24 defineParameter( "WsTotMin", 0 );
25 defineParameter( "MinEta", 0 );
26 defineParameter( "MaxEta", 196 );
27}
28
29
30// destructor
32
35 m_numberOfeEms = parameter("OutputWidth").value();
36 m_et = parameter("MinET").value();
37 m_minREta = parameter("REtaMin").value();
38 m_minRHad = parameter("RHadMin").value();
39 m_minWsTot = parameter("WsTotMin").value();
41}
42
45
46 const eEmTOBArray & eems = dynamic_cast<const eEmTOBArray&>(input);
47
48 // fill output array with GenericTOB buildt from eEms
49 for(eEmTOBArray::const_iterator eem = eems.begin(); eem!= eems.end(); ++eem ) {
50
51 if( parType_t((*eem)->Et()) <= m_et ) continue; // ET cut
52 // isolation cut
53 if ( !isocut(m_minREta, (*eem)-> Reta()) ) {continue;}
54 if ( !isocut(m_minRHad, (*eem)-> Rhad()) ) {continue;}
55 if ( !isocut(m_minWsTot, (*eem)-> Wstot()) ) {continue;}
56
57 const GenericTOB gtob(**eem);
58 output.push_back( gtob );
59 }
60
61
62 // keep only max number of eEms
63 int par = m_numberOfeEms ;
64 unsigned int maxNumberOfeEms = std::clamp(par, 0, std::abs(par));
65 if(maxNumberOfeEms>0) {
66
67 if (output.size()> maxNumberOfeEms) {setOverflow(true);}
68
69 while( output.size()> maxNumberOfeEms ) {
70 output.pop_back();
71 }
72 }
74}
75
#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
Definition eEmSelect.cxx:44
parType_t m_minREta
Definition eEmSelect.h:33
virtual TCS::StatusCode initialize() override
Definition eEmSelect.cxx:34
virtual ~eEmSelect()
Definition eEmSelect.cxx:31
parType_t m_minRHad
Definition eEmSelect.h:34
eEmSelect(const std::string &name)
Definition eEmSelect.cxx:17
parType_t m_et
Definition eEmSelect.h:32
parType_t m_minWsTot
Definition eEmSelect.h:35
parType_t m_numberOfeEms
Definition eEmSelect.h:31
uint32_t parType_t
Definition Parameter.h:22
STL namespace.