ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
L1Topo
L1TopoAlgorithms
Root
jTauMultiplicity.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
/*********************************
5
* jTauMultiplicity.cpp
6
* Created by Carlos Moreno on 05/06/20.
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
16
17
#include "
L1TopoAlgorithms/jTauMultiplicity.h
"
18
#include "
L1TopoCommon/Exception.h
"
19
#include "
L1TopoInterfaces/Count.h
"
20
21
#include "
L1TopoEvent/TOBArray.h
"
22
#include "
L1TopoEvent/jTauTOBArray.h
"
23
24
#include "
TrigConfData/L1ThrExtraInfo.h
"
25
#include <cmath>
26
REGISTER_ALG_TCS
(jTauMultiplicity)
27
28
using namespace
std
;
29
30
31
TCS::jTauMultiplicity::jTauMultiplicity
(
const
std::string &
name
) :
CountingAlg
(
name
)
32
{
33
setNumberOutputBits
(12);
//To-Do: Make this flexible to adapt to the menu. Each counting requires more than one bit
34
}
35
36
TCS::jTauMultiplicity::~jTauMultiplicity
(){}
37
38
39
TCS::StatusCode
40
TCS::jTauMultiplicity::initialize
() {
41
m_threshold
=
dynamic_cast<
const
TrigConf::L1Threshold_jTAU
*
>
(
getThreshold
());
42
if
(not
m_threshold
){
43
return
StatusCode::FAILURE
;
44
}
45
m_extraInfo
=
m_threshold
->getExtraInfo();
46
47
// book histograms
48
std::string hname_accept =
"jTauMultiplicity_accept_EtaPt_"
+
m_threshold
->name();
49
bookHistMult
(
m_histAccept
, hname_accept,
"Mult_"
+
m_threshold
->name(),
"#eta#times40"
,
"E_{t} [GeV]"
, 200, -200, 200, 100, 0, 100);
50
51
hname_accept =
"jTauMultiplicity_accept_counts_"
+
m_threshold
->name();
52
bookHistMult
(
m_histAccept
, hname_accept,
"Mult_"
+
m_threshold
->name(),
"counts"
, 15, 0, 15);
53
54
return
StatusCode::SUCCESS
;
55
56
}
57
58
59
TCS::StatusCode
60
TCS::jTauMultiplicity::processBitCorrect
(
const
TCS::InputTOBArray
& input,
61
Count
&
count
)
62
63
{
64
return
process
(input,
count
);
65
}
66
67
TCS::StatusCode
68
TCS::jTauMultiplicity::process
(
const
TCS::InputTOBArray
& input,
69
Count
&
count
)
70
{
71
// Grab inputs
72
const
jTauTOBArray
& jtaus =
dynamic_cast<
const
jTauTOBArray
&
>
(input);
73
74
int
counting = 0;
75
76
// loop over input TOBs
77
for
(
jTauTOBArray::const_iterator
jtau = jtaus.
begin
();
78
jtau != jtaus.
end
();
79
++jtau ) {
80
81
// 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.
82
bool
passed
= (*jtau)->Et() >
m_threshold
->thrValue100MeV((*jtau)->eta()/4);
83
84
if
(!
checkIsolation
(*jtau))
continue
;
85
86
if
(
passed
) {
87
counting++;
88
fillHist2D
(
m_histAccept
[0], (*jtau)->eta(), (*jtau)->EtDouble() );
89
}
90
91
}
92
93
fillHist1D
(
m_histAccept
[1], counting);
94
95
// Pass counting to TCS::Count object - output bits are composed there
96
count
.setSizeCount(counting);
97
98
return
TCS::StatusCode::SUCCESS
;
99
100
}
101
102
bool
103
TCS::jTauMultiplicity::checkIsolation
(
const
TCS::jTauTOB
* jtau)
const
{
104
if
(
m_threshold
->isolation() == WP::NONE)
return
true
;
105
auto
iso_wp =
m_extraInfo
->isolation(
m_threshold
->isolation(), jtau->
etaDouble
());
106
return
jtau->
EtIso
()*1024 < jtau->
Et
()*iso_wp.isolation_fw();
107
}
108
REGISTER_ALG_TCS
#define REGISTER_ALG_TCS(CLASS)
Definition
AlgFactory.h:62
Count.h
L1ThrExtraInfo.h
passed
bool passed(DecisionID id, const DecisionIDContainer &)
checks if required decision ID is in the set of IDs in the container
Definition
TrigCompositeUtilsRoot.cxx:118
getThreshold
CP::CorrectionCode getThreshold(Int_t &threshold, const std::string &trigger)
Definition
MuonTriggerSFRootCoreTest.cxx:44
TOBArray.h
Exception.h
TCS::ConfigurableAlg::name
const std::string & name() const
Definition
ConfigurableAlg.h:49
TCS::ConfigurableAlg::fillHist1D
void fillHist1D(const std::string &histName, double x)
Definition
ConfigurableAlg.cxx:470
TCS::ConfigurableAlg::bookHistMult
void bookHistMult(std::vector< std::string > ®Name, const std::string &name, const std::string &title, const std::string &xtitle, const int binx, const int xmin, const int xmax)
Definition
ConfigurableAlg.cxx:341
TCS::ConfigurableAlg::fillHist2D
void fillHist2D(const std::string &histName, double x, double y)
Definition
ConfigurableAlg.cxx:474
TCS::Count
Definition
Count.h:20
TCS::CountingAlg::m_histAccept
std::vector< std::string > m_histAccept
Definition
CountingAlg.h:51
TCS::CountingAlg::CountingAlg
CountingAlg(const std::string &name)
Definition
CountingAlg.h:28
TCS::CountingAlg::setNumberOutputBits
void setNumberOutputBits(unsigned int numberOutputBits)
Definition
CountingAlg.h:41
TCS::DataArrayImpl::begin
iterator begin()
Definition
DataArrayImpl.h:40
TCS::DataArrayImpl< jTauTOB >::const_iterator
data_t::const_iterator const_iterator
Definition
DataArrayImpl.h:18
TCS::DataArrayImpl::end
iterator end()
Definition
DataArrayImpl.h:43
TCS::InputTOBArray
Definition
InputTOBArray.h:15
TCS::StatusCode
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15
TCS::StatusCode::SUCCESS
@ SUCCESS
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
TCS::StatusCode::FAILURE
@ FAILURE
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
TCS::jTauMultiplicity::process
virtual StatusCode process(const TCS::InputTOBArray &input, Count &count) override final
Definition
jTauMultiplicity.cxx:68
TCS::jTauMultiplicity::m_threshold
TrigConf::L1Threshold_jTAU const * m_threshold
Definition
jTauMultiplicity.h:35
TCS::jTauMultiplicity::m_extraInfo
std::shared_ptr< TrigConf::L1ThrExtraInfo_jTAU > m_extraInfo
Definition
jTauMultiplicity.h:36
TCS::jTauMultiplicity::initialize
virtual StatusCode initialize() override
Definition
jTauMultiplicity.cxx:40
TCS::jTauMultiplicity::jTauMultiplicity
jTauMultiplicity(const std::string &name)
Definition
jTauMultiplicity.cxx:31
TCS::jTauMultiplicity::~jTauMultiplicity
virtual ~jTauMultiplicity()
Definition
jTauMultiplicity.cxx:36
TCS::jTauMultiplicity::checkIsolation
bool checkIsolation(const TCS::jTauTOB *jtau) const
Definition
jTauMultiplicity.cxx:103
TCS::jTauMultiplicity::processBitCorrect
virtual StatusCode processBitCorrect(const TCS::InputTOBArray &input, Count &count) override final
Definition
jTauMultiplicity.cxx:60
TCS::jTauTOBArray
Definition
jTauTOBArray.h:19
TCS::jTauTOB
Definition
jTauTOB.h:19
TCS::jTauTOB::etaDouble
double etaDouble() const
Definition
jTauTOB.h:40
TCS::jTauTOB::EtIso
unsigned int EtIso() const
Definition
jTauTOB.h:43
TCS::jTauTOB::Et
unsigned int Et() const
Definition
jTauTOB.h:35
TrigConf::L1Threshold_jTAU
Definition
L1Threshold.h:239
process
const std::string process
Definition
fbtTestBasics.cxx:76
count
int count(std::string s, const std::string ®x)
count how many occurances of a regx are in a string
Definition
hcg.cxx:148
jTauMultiplicity.h
jTauTOBArray.h
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.17.0