ATLAS Offline Software
Trigger
TrigT1
L1Topo
L1TopoAlgorithms
Root
jEmMultiplicity.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
/*********************************
5
* jEmMultiplicity.cpp
6
* Created by Carlos Moreno on 17/09/21.
7
*
8
* @brief algorithm that computes the multiplicity for a specified list and ET threshold
9
* line 1: 0 or 1, line 1 and 2 : 2 or more, uses 2 bits
10
*
11
* @param NumberLeading MinET
12
13
**********************************/
14
15
#include <cmath>
16
17
#include "
L1TopoAlgorithms/jEmMultiplicity.h
"
18
#include "
L1TopoCommon/Exception.h
"
19
#include "
L1TopoInterfaces/Count.h
"
20
21
#include "
L1TopoEvent/TOBArray.h
"
22
#include "
L1TopoEvent/jEmTOBArray.h
"
23
24
REGISTER_ALG_TCS
(jEmMultiplicity)
25
26
using namespace
std;
27
28
29
TCS::jEmMultiplicity::jEmMultiplicity
(
const
std::string &
name
) :
CountingAlg
(
name
)
30
{
31
32
33
setNumberOutputBits
(12);
//To-Do: Make this flexible to addapt to the menu. Each counting requires more than one bit
34
35
}
36
37
TCS::jEmMultiplicity::~jEmMultiplicity
(){}
38
39
40
TCS::StatusCode
41
TCS::jEmMultiplicity::initialize
() {
42
43
m_threshold =
getThreshold
();
44
45
// book histograms
46
std::string hname_accept =
"jEmMultiplicity_accept_EtaPt"
+m_threshold->name();
47
bookHistMult(m_histAccept, hname_accept,
"Mult_"
+m_threshold->name(),
"#eta#times40"
,
"E_{t} [GeV]"
, 200, -200, 200, 600, 0, 600);
48
49
hname_accept =
"jEmMultiplicity_accept_counts_"
+m_threshold->name();
50
bookHistMult(m_histAccept, hname_accept,
"Mult_"
+m_threshold->name(),
"counts"
, 15, 0, 15);
51
52
return
StatusCode::SUCCESS
;
53
54
}
55
56
57
TCS::StatusCode
58
TCS::jEmMultiplicity::processBitCorrect
(
const
TCS::InputTOBArray
&
input
,
59
Count
&
count
)
60
61
{
62
return
process
(
input
,
count
);
63
}
64
65
TCS::StatusCode
66
TCS::jEmMultiplicity::process
(
const
TCS::InputTOBArray
&
input
,
67
Count
&
count
)
68
{
69
70
// Grab the threshold and cast it into the right type
71
const
auto
& jEMThr =
dynamic_cast<
const
TrigConf::L1Threshold_jEM
&
>
(*m_threshold);
72
73
// Grab inputs
74
const
jEmTOBArray
& jems =
dynamic_cast<
const
jEmTOBArray
&
>
(
input
);
75
76
int
counting = 0;
77
78
// loop over input TOBs
79
for
(
jEmTOBArray::const_iterator
jem = jems.
begin
();
80
jem != jems.
end
();
81
++jem ) {
82
83
// Dividing by 4 standing for converting eta from 0.025 to 0.1 granularity as it is defined in the menu as 0.1 gran.
84
bool
passed
= (*jem)->Et() > jEMThr.thrValue100MeV((*jem)->eta()/4);
85
86
if
( !
isocut
(
TrigConf::Selection::wpToString
(jEMThr.iso()), (*jem)->isolation()) ) {
continue
;}
87
if
( !
isocut
(
TrigConf::Selection::wpToString
(jEMThr.frac()), (*jem)->frac1()) ) {
continue
;}
88
if
( !
isocut
(
TrigConf::Selection::wpToString
(jEMThr.frac2()), (*jem)->frac2()) ) {
continue
;}
89
90
if
(
passed
) {
91
counting++;
92
fillHist2D( m_histAccept[0], (*jem)->eta(), (*jem)->EtDouble() );
93
}
94
95
}
96
97
fillHist1D( m_histAccept[1], counting);
98
99
// Pass counting to TCS::Count object - output bits are composed there
100
count
.setSizeCount(counting);
101
102
return
TCS::StatusCode::SUCCESS
;
103
104
}
TCS::jEmMultiplicity::process
virtual StatusCode process(const TCS::InputTOBArray &input, Count &count) override final
Definition:
jEmMultiplicity.cxx:66
TCS::StatusCode::SUCCESS
@ SUCCESS
Definition:
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
TrigCompositeUtils::passed
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
Definition:
TrigCompositeUtilsRoot.cxx:117
TCS::DataArrayImpl< jEmTOB >::const_iterator
data_t::const_iterator const_iterator
Definition:
DataArrayImpl.h:18
TrigConf::Selection::wpToString
static std::string wpToString(WP)
Definition:
L1ThresholdBase.cxx:347
TCS::jEmMultiplicity::jEmMultiplicity
jEmMultiplicity(const std::string &name)
Definition:
jEmMultiplicity.cxx:29
TrigConf::L1Threshold_jEM
Definition:
L1Threshold.h:189
TCS::jEmMultiplicity::~jEmMultiplicity
virtual ~jEmMultiplicity()
Definition:
jEmMultiplicity.cxx:37
SUSY_SimplifiedModel_PostInclude.process
string process
Definition:
SUSY_SimplifiedModel_PostInclude.py:42
TCS::DataArrayImpl::end
iterator end()
Definition:
DataArrayImpl.h:43
XMLtoHeader.count
count
Definition:
XMLtoHeader.py:85
TCS::CountingAlg::setNumberOutputBits
void setNumberOutputBits(unsigned int numberOutputBits)
Definition:
CountingAlg.h:41
Count.h
TCS::InputTOBArray
Definition:
InputTOBArray.h:15
PlotPulseshapeFromCool.input
input
Definition:
PlotPulseshapeFromCool.py:106
TOBArray.h
jEmTOBArray.h
REGISTER_ALG_TCS
#define REGISTER_ALG_TCS(CLASS)
Definition:
AlgFactory.h:62
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:221
TCS::jEmMultiplicity::processBitCorrect
virtual StatusCode processBitCorrect(const TCS::InputTOBArray &input, Count &count) override final
Definition:
jEmMultiplicity.cxx:58
TCS::DataArrayImpl::begin
iterator begin()
Definition:
DataArrayImpl.h:40
TCS::Count
Definition:
L1Topo/L1TopoInterfaces/L1TopoInterfaces/Count.h:20
jEmMultiplicity.h
getThreshold
CP::CorrectionCode getThreshold(Int_t &threshold, const std::string &trigger)
Definition:
MuonTriggerSFRootCoreTest.cxx:48
TCS::jEmTOBArray
Definition:
jEmTOBArray.h:19
Exception.h
GlobalSim::isocut
bool isocut(const std::string &threshold, const unsigned int bit)
Definition:
isocut.cxx:10
TCS::CountingAlg
Definition:
CountingAlg.h:25
TCS::StatusCode
Definition:
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15
TCS::jEmMultiplicity::initialize
virtual StatusCode initialize() override
Definition:
jEmMultiplicity.cxx:41
Generated on Thu Nov 7 2024 21:17:47 for ATLAS Offline Software by
1.8.18