ATLAS Offline Software
Loading...
Searching...
No Matches
HiggsTruthCategoryTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5/*
6 * Dual-use tool interface for Rivet routine for classifying MC events according to the Higgs template cross section categories
7 * Authors: Jim Lacey (Carleton University)
8 * <james.lacey@cern.ch,jlacey@physics.carleton.ca>
9 */
10
11#ifndef TRUTHRIVETTOOLS_HIGGSTRUTHCATEGORYTOOL_H
12#define TRUTHRIVETTOOLS_HIGGSTRUTHCATEGORYTOOL_H 1
13
15#include "Rivet/AnalysisHandler.hh"
17
18// To avoid coflict of UNUSED macro of
19// Control/CxxUtils/CxxUtils/unused.h and Rivet/Tools/Utils.hh
20#ifdef UNUSED
21#undef UNUSED
22#endif // UNUSED
23
24// Base classes
25#include "AsgTools/AsgTool.h"
27
28// Return type (non-pointer)
29// Note: the Template XSec Defs *depends* on having included
30// the TLorentzVector header *before* it is included -- it
31// uses the include guard from TLorentzVector to decide
32// what is available
33#include "TLorentzVector.h"
35
36#include "AtlasHepMC/GenEvent.h"
37
38// System include(s).
39#include <memory>
40
42: public asg::AsgTool,
43 public virtual IHiggsTruthCategoryTool
44{
45 public:
47 HiggsTruthCategoryTool( const std::string& name );
48
49 public:
50 std::unique_ptr<Rivet::AnalysisHandler> m_rivetAnaHandler;
52 virtual StatusCode initialize() override;
53 StatusCode finalize () override;
54 HTXS::HiggsClassification* getHiggsTruthCategoryObject(const HepMC::GenEvent& HepMCEvent, const HTXS::HiggsProdMode prodMode) const override;
55 private:
56 mutable std::atomic_flag m_isInitialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT;
58};
59
60#endif //> !HIGGSTRUTHCLASSIFIER_HIGGSTRUTHCATEGORYTOOL_H
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Define macros for attributes used to control the static checker.
StatusCode finalize() override
Rivet::HiggsTemplateCrossSections * m_higgsTemplateCrossSections
HTXS::HiggsClassification * getHiggsTruthCategoryObject(const HepMC::GenEvent &HepMCEvent, const HTXS::HiggsProdMode prodMode) const override
std::unique_ptr< Rivet::AnalysisHandler > m_rivetAnaHandler
std::atomic_flag m_isInitialized ATLAS_THREAD_SAFE
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
HiggsTruthCategoryTool(const std::string &name)
Rivet routine for classifying MC events according to the Higgs template cross section categories.
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
HiggsProdMode
Higgs production modes, corresponding to input sample.