ATLAS Offline Software
L1Topo/L1TopoAlgorithms/Root/jJetSelect.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 // jJetSelect.cxx
5 // TopoCore
6 // algorithm to create abbreviated jJet lists
7 //
9 #include "L1TopoEvent/TOBArray.h"
11 #include "L1TopoEvent/GenericTOB.h"
12 #include <algorithm>
13 
14 REGISTER_ALG_TCS(jJetSelect)
15 
16 
17 // constructor
18 TCS::jJetSelect::jJetSelect(const std::string & name) :
20 {
21  defineParameter( "InputWidth", 64 ); // for FW
22  defineParameter( "InputWidth1stStage", 16 ); // for FW
23  defineParameter( "OutputWidth", 10 );
24  defineParameter( "MinET", 0 );
25  defineParameter( "MinEta", 0 );
26  defineParameter( "MaxEta", 196 );
27 }
28 
29 
31 {}
32 
35  m_numberOfJets = parameter("OutputWidth").value();
36  m_et = parameter("MinET").value();
37  m_minEta = parameter("MinEta").value();
38  m_maxEta = parameter("MaxEta").value();
40 }
41 
42 
43 
44 
47 
48  const jJetTOBArray & jets = dynamic_cast<const jJetTOBArray&>(input);
49 
50  // fill output array with GenericTOBs builds from jets
51 
52  for(jJetTOBArray::const_iterator jet = jets.begin(); jet!= jets.end(); ++jet ) {
53  unsigned int Et = parType_t((*jet)->Et());
54  if( Et <= m_et ) continue; // ET cut
55  if ( parType_t(std::abs((*jet)-> eta())) < m_minEta ) continue;
56  if ( parType_t(std::abs((*jet)-> eta())) > m_maxEta ) continue;
57 
58  output.push_back( GenericTOB(**jet) );
59  }
60 
61  // keep only max number of jets
62  int par = m_numberOfJets ;
63  unsigned int maxNumberOfJets = std::clamp(par, 0, std::abs(par));
64  if(maxNumberOfJets>0) {
65 
66  if (output.size()> maxNumberOfJets) {setOverflow(true);}
67 
68  while( output.size()> maxNumberOfJets ) {
69  output.pop_back();
70  }
71  }
73 }
74 
TCS::StatusCode::SUCCESS
@ SUCCESS
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
TCS::parType_t
uint32_t parType_t
Definition: Parameter.h:22
TCS::DataArrayImpl< jJetTOB >::const_iterator
data_t::const_iterator const_iterator
Definition: DataArrayImpl.h:18
jJetTOBArray.h
TCS::jJetSelect
Definition: L1Topo/L1TopoAlgorithms/L1TopoAlgorithms/jJetSelect.h:18
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
jJetSelect.h
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
TCS::jJetSelect::sort
virtual TCS::StatusCode sort(const InputTOBArray &input, TOBArray &output) override final
Definition: L1Topo/L1TopoAlgorithms/Root/jJetSelect.cxx:46
TCS::InputTOBArray
Definition: InputTOBArray.h:15
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
TCS::jJetSelect::initialize
virtual TCS::StatusCode initialize() override
Definition: L1Topo/L1TopoAlgorithms/Root/jJetSelect.cxx:34
TOBArray.h
TCS::TOBArray
Definition: TOBArray.h:24
TCS::jJetTOBArray
Definition: L1Topo/L1TopoEvent/L1TopoEvent/jJetTOBArray.h:19
TCS::jJetSelect::~jJetSelect
virtual ~jJetSelect()
Definition: L1Topo/L1TopoAlgorithms/Root/jJetSelect.cxx:30
merge.output
output
Definition: merge.py:17
TCS::GenericTOB
Definition: GenericTOB.h:35
REGISTER_ALG_TCS
#define REGISTER_ALG_TCS(CLASS)
Definition: AlgFactory.h:62
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
TCS::SortingAlg
Definition: SortingAlg.h:18
GenericTOB.h
TCS
Definition: Global/GlobalSimulation/src/IO/Decision.h:18
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
TCS::StatusCode
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15