ATLAS Offline Software
Loading...
Searching...
No Matches
gLJetMultiplicity.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 * gLJetMultiplicity
6 *
7 * @brief algorithm that computes the multiplicity for a specified list and ET threshold
8 * line 1: 0 or 1, line 1 and 2 : 2 or more, uses 2 bits
9 *
10 * @param NumberLeading largeR jets, MinET
11**********************************/
12
13#include <cmath>
14
18
21
22REGISTER_ALG_TCS(gLJetMultiplicity)
23
24using namespace std;
25
26
28{
29
30
31 setNumberOutputBits(12); //To-Do: Make this flexible to addapt to the menu. Each counting requires more than one bit
32
33}
34
36
37
40
42
43 // book histograms
44 std::string hname_accept = "gLJetMultiplicity_accept_EtaPt_"+m_threshold->name();
45 bookHistMult(m_histAccept, hname_accept, "Mult_"+m_threshold->name(), "#eta#times40", "E_{t} [GeV]", 200, -200, 200, 600, 0, 600);
46
47 hname_accept = "gLJetMultiplicity_accept_counts_"+m_threshold->name();
48 bookHistMult(m_histAccept, hname_accept, "Mult_"+m_threshold->name(), "counts", 15, 0, 15);
49
51
52}
53
54
57 Count & count)
58
59{
60 return process(input, count);
61}
62
65 Count & count )
66{
67
68 // Grab the threshold and cast it into the right type
69 const auto& gLJThr = dynamic_cast<const TrigConf::L1Threshold_gLJ &>(*m_threshold);
70
71 // Grab inputs
72 const gLJetTOBArray & gjets = dynamic_cast<const gLJetTOBArray&>(input);
73
74 int counting = 0;
75
76 // loop over input TOBs
77 for(gLJetTOBArray::const_iterator gjet = gjets.begin();
78 gjet != gjets.end();
79 ++gjet ) {
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 = (*gjet)->Et() > gLJThr.thrValue100MeV((*gjet)->eta()/4);
83
84 if (passed) {
85 counting++;
86 fillHist2D( m_histAccept[0], (*gjet)->eta(), (*gjet)->EtDouble() );
87 }
88
89 }
90
91 fillHist1D( m_histAccept[1], counting);
92
93 // Pass counting to TCS::Count object - output bits are composed there
94 count.setSizeCount(counting);
95
97
98}
#define REGISTER_ALG_TCS(CLASS)
Definition AlgFactory.h:62
bool passed(DecisionID id, const DecisionIDContainer &)
checks if required decision ID is in the set of IDs in the container
CP::CorrectionCode getThreshold(Int_t &threshold, const std::string &trigger)
const std::string & name() const
void fillHist1D(const std::string &histName, double x)
void bookHistMult(std::vector< std::string > &regName, const std::string &name, const std::string &title, const std::string &xtitle, const int binx, const int xmin, const int xmax)
void fillHist2D(const std::string &histName, double x, double y)
std::vector< std::string > m_histAccept
Definition CountingAlg.h:51
CountingAlg(const std::string &name)
Definition CountingAlg.h:28
void setNumberOutputBits(unsigned int numberOutputBits)
Definition CountingAlg.h:41
data_t::const_iterator const_iterator
virtual StatusCode process(const TCS::InputTOBArray &input, Count &count) override final
gLJetMultiplicity(const std::string &name)
virtual StatusCode initialize() override
virtual StatusCode processBitCorrect(const TCS::InputTOBArray &input, Count &count) override final
TrigConf::L1Threshold const * m_threshold
const std::string process
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146
STL namespace.