ATLAS Offline Software
Loading...
Searching...
No Matches
JetSelect.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4// JetSelect.cxx
5// TopoCore
6// Created by Veronica Sorin on 14/8/14.
7// algorithm to create abbreviated jet lists
8//
13#include <algorithm>
14
15REGISTER_ALG_TCS(JetSelect)
16
17
18// constructor
21{
22 defineParameter( "InputWidth", 64 ); // for FW
23 defineParameter( "InputWidth1stStage", 16 ); // for FW
24 defineParameter( "OutputWidth", 10 );
25 defineParameter( "JetSize", 2 );
26 defineParameter( "MinET", 0 );
27 defineParameter( "MinEta", 0 );
28 defineParameter( "MaxEta", 31);
29 defineParameter( "DoEtaCut", 1);
31}
32
33
36
39 m_numberOfJets = parameter("OutputWidth").value();
40 m_et = parameter("MinET").value();
41 m_jsize = parameter("JetSize").value();
42 m_minEta = parameter("MinEta").value();
43 m_maxEta = parameter("MaxEta").value();
44 m_doEtaCut = parameter("DoEtaCut").value();
46}
47
48
49
50
53 const JetTOBArray & jets = dynamic_cast<const JetTOBArray&>(input);
54 // because fw seems to have a differnt notation, for now 2 means JS1 8x8
56
57 // fill output array with GenericTOBs builds from jets
58 for(JetTOBArray::const_iterator cl = jets.begin(); cl!= jets.end(); ++cl ) {
59 unsigned int Et = m_jsize==2?parType_t((*cl)->Et1()):parType_t((*cl)->Et2());
60 if( Et <= m_et ) continue; // ET cut
61 if (m_doEtaCut && (parType_t(std::abs((*cl)-> eta())) < m_minEta)) continue;
62 if (m_doEtaCut && (parType_t(std::abs((*cl)-> eta())) > m_maxEta)) continue;
63
64 output.push_back( GenericTOB(**cl, m_jetsize) );
65 }
66
67
68 // keep only max number of jets
69 int par = m_numberOfJets ;
70 unsigned int maxNumberOfJets = std::clamp(par, 0, std::abs(par));
71 if(maxNumberOfJets>0) {
72
73 if (output.size()> maxNumberOfJets) {setOverflow(true);}
74
75 while( output.size()> maxNumberOfJets ) {
76 output.pop_back();
77 }
78 }
80}
81
#define REGISTER_ALG_TCS(CLASS)
Definition AlgFactory.h:62
Scalar eta() const
pseudorapidity method
const Parameter & parameter(const std::string &parameterName) const
const std::string & name() const
void defineParameter(const std::string &name, TCS::parType_t value)
data_t::const_iterator const_iterator
virtual TCS::StatusCode initialize()
Definition JetSelect.cxx:38
parType_t m_doEtaCut
Definition JetSelect.h:38
parType_t m_maxEta
Definition JetSelect.h:35
JetSelect(const std::string &name)
Definition JetSelect.cxx:19
parType_t m_minEta
Definition JetSelect.h:34
parType_t m_et
Definition JetSelect.h:36
virtual ~JetSelect()
Definition JetSelect.cxx:34
parType_t m_numberOfJets
Definition JetSelect.h:33
JetTOB::JetSize m_jetsize
Definition JetSelect.h:42
virtual TCS::StatusCode sort(const InputTOBArray &input, TOBArray &output)
Definition JetSelect.cxx:52
parType_t m_jsize
Definition JetSelect.h:37
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
uint32_t parType_t
Definition Parameter.h:22
STL namespace.