ATLAS Offline Software
TrigBtagValidationTest.cxx
Go to the documentation of this file.
1 /*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 namespace Trig {
8 
10  ISvcLocator* pSvcLocator )
11  : AthAlgorithm(name, pSvcLocator)
12 {}
13 
15  ATH_MSG_INFO("Initializing " << name() );
16 
17  ATH_CHECK( m_histSvc.retrieve() );
18  ATH_CHECK( m_trigDec.retrieve() );
19 
20  m_h_tdtpass = new TH1F( "h_tdtpass", "h_tdtpass", m_emulatedChains.size(), 0, m_emulatedChains.size());
21  m_h_tbetpass = new TH1F( "h_tbetpass", "h_tbetpass", m_emulatedChains.size(), 0, m_emulatedChains.size());
22  m_h_miss = new TH1F( "h_miss", "h_miss", m_emulatedChains.size(), 0, m_emulatedChains.size());
23  m_h_falsepositive = new TH1F( "h_falsepositive", "h_falsepositive", m_emulatedChains.size(), 0, m_emulatedChains.size());
24  ATH_CHECK( m_histSvc->regHist("/VALIDATION/h_tdtpass", m_h_tdtpass) );
25  ATH_CHECK( m_histSvc->regHist("/VALIDATION/h_tbetpass", m_h_tbetpass) );
26  ATH_CHECK( m_histSvc->regHist("/VALIDATION/h_miss", m_h_miss) );
27  ATH_CHECK( m_histSvc->regHist("/VALIDATION/h_falsepositive", m_h_falsepositive) );
28 
29  for(unsigned int i = 1; i <= m_emulatedChains.size(); i++) {
30  m_h_tdtpass->GetXaxis()->SetBinLabel(i, m_emulatedChains[i-1].c_str());
31  m_h_miss->GetXaxis()->SetBinLabel(i, m_emulatedChains[i-1].c_str());
32  m_h_falsepositive->GetXaxis()->SetBinLabel(i, m_emulatedChains[i-1].c_str());
33  }
34 
35  return StatusCode::SUCCESS;
36 }
37 
39 {
40  ATH_MSG_DEBUG("Executing " << name() );
41  const auto& emulCtx = m_emulationTool->populateJetManagersTriggerObjects();
42  int chain_idx = 0;
43  for(const auto& chain: m_emulatedChains) {
44  bool tbet_pass = m_emulationTool->isPassed(chain, emulCtx);
45  bool tdt_pass = m_trigDec->isPassed(chain);
46  ATH_MSG_DEBUG( chain << " TDT:" << (tdt_pass ? "PASS":"NO") << " TBET:" << (tbet_pass ? "PASS":"NO"));
47 
48  m_h_tdtpass->Fill( tdt_pass ? chain_idx +.5 : -1 );
49  m_h_tbetpass->Fill( tbet_pass ? chain_idx +.5 : -1 );
50  m_h_miss->Fill( (tdt_pass && !tbet_pass) ? chain_idx +.5 : -1 );
51  m_h_falsepositive->Fill( (!tdt_pass && tbet_pass) ? chain_idx +.5 : -1 );
52 
53  chain_idx++;
54  }
55 
56  return StatusCode::SUCCESS;
57 }
58 
59 } // namespace
Trig::TrigBtagValidationTest::m_h_tdtpass
TH1F * m_h_tdtpass
Definition: TrigBtagValidationTest.h:41
Trig::TrigBtagValidationTest::m_trigDec
PublicToolHandle< Trig::TrigDecisionTool > m_trigDec
Definition: TrigBtagValidationTest.h:37
runLayerRecalibration.chain
chain
Definition: runLayerRecalibration.py:175
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trig
The common trigger namespace for trigger analysis tools.
Definition: CaloTowerVecMon.h:44
Trig::TrigBtagValidationTest::initialize
virtual StatusCode initialize() override
Athena algorithm's Hooks.
Definition: TrigBtagValidationTest.cxx:14
Trig::TrigBtagValidationTest::m_emulationTool
ToolHandle< Trig::ITrigBtagEmulationTool > m_emulationTool
Definition: TrigBtagValidationTest.h:36
Trig::TrigBtagValidationTest::m_h_falsepositive
TH1F * m_h_falsepositive
Definition: TrigBtagValidationTest.h:44
Trig::TrigBtagValidationTest::execute
virtual StatusCode execute() override
Definition: TrigBtagValidationTest.cxx:38
Trig::TrigBtagValidationTest::TrigBtagValidationTest
TrigBtagValidationTest(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Definition: TrigBtagValidationTest.cxx:9
lumiFormat.i
int i
Definition: lumiFormat.py:92
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Trig::TrigBtagValidationTest::m_histSvc
ServiceHandle< ITHistSvc > m_histSvc
Definition: TrigBtagValidationTest.h:35
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Trig::TrigBtagValidationTest::m_emulatedChains
Gaudi::Property< std::vector< std::string > > m_emulatedChains
Definition: TrigBtagValidationTest.h:39
AthAlgorithm
Definition: AthAlgorithm.h:47
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trig::TrigBtagValidationTest::m_h_tbetpass
TH1F * m_h_tbetpass
Definition: TrigBtagValidationTest.h:42
Trig::TrigBtagValidationTest::m_h_miss
TH1F * m_h_miss
Definition: TrigBtagValidationTest.h:43
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
TrigBtagValidationTest.h