ATLAS Offline Software
Loading...
Searching...
No Matches
ObjectCutFlowHistAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
7
8
9#ifndef ASG_ANALYSIS_ALGORITHMS__OBJECT_CUT_FLOW_HIST_ALG_H
10#define ASG_ANALYSIS_ALGORITHMS__OBJECT_CUT_FLOW_HIST_ALG_H
11
19
20namespace CP
21{
23
25 {
27 public:
29 StatusCode initialize () override;
30 StatusCode execute () override;
31
32
34 private:
36
38 private:
40 this, "input", "", "the input particle container to run on"};
41
43 private:
45 this, "preselection", "", "the preselection to apply"};
46
48 private:
49 Gaudi::Property<std::string> m_histPattern {this, "histPattern", "cutflow_%SYS%", "the pattern for histogram names"};
50
52 private:
53 ServiceHandle<ISelectionNameSvc> m_selectionNameSvc {"SelectionNameSvc", "ObjectCutFlowHistAlg"};
54
56 private:
57 Gaudi::Property<std::string> m_histTitle {this, "histTitle", "object cut flow", "title for the created histograms"};
58
60 private:
62 this, "selections", {}, "the inputs to the object cutflow"};
63
65 private:
66 Gaudi::Property<bool> m_forceCutSequence {this, "forceCutSequence", false, "force cut sequence and do not accept if previous cuts failed"};
67
70 private:
71 unsigned m_allCutsNum = 0;
72
74 private:
75 std::unordered_map<CP::SystematicSet,TH1*> m_hist;
76
78 private:
79 std::vector<std::string> m_labels;
80 };
81}
82
83#endif
an algorithm for dumping the object-level cutflow
std::vector< std::string > m_labels
histogram bin labels
SysReadSelectionHandleArray m_selections
the input object selections for which to create a cutflow
unsigned m_allCutsNum
the total number of cuts configured (needed to configure histograms)
Gaudi::Property< bool > m_forceCutSequence
force cut sequence
SysReadHandle< xAOD::IParticleContainer > m_inputHandle
the particle collection we run on
Gaudi::Property< std::string > m_histTitle
the histogram title to use
StatusCode execute() override
SysReadSelectionHandle m_preselection
the preselection we apply to our input
ServiceHandle< ISelectionNameSvc > m_selectionNameSvc
the selection name service
SysListHandle m_systematicsList
the systematics list we run
std::unordered_map< CP::SystematicSet, TH1 * > m_hist
the created histograms
StatusCode initialize() override
Gaudi::Property< std::string > m_histPattern
the pattern for histogram names
a class managing the property to configure the list of systematics to process
a data handle for reading systematics varied input data
a data handle for reading systematically varied selection properties from objects
the (new) base class for EventLoop algorithms
AnaAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor with parameters
Select isolated Photons, Electrons and Muons.
SysHandleArray< SysReadSelectionHandle > SysReadSelectionHandleArray