ATLAS Offline Software
TopxAODAlg.h
Go to the documentation of this file.
1 #ifndef TOPANALYSIS_TOPXAODALG_H_
2 #define TOPANALYSIS_TOPXAODALG_H_
3 
4 /*
5  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
6  */
7 
9 
10 #include "AsgTools/ToolHandle.h"
17 #include <memory>
18 
19 class TFile;
20 
21 namespace PMGTools {
22 class IPMGTruthWeightTool;
23 }
24 
25 namespace top {
26 
27 class TopConfig;
28 class ConfigurationSettings;
29 class TopToolStore;
30 class EventCleaningSelection;
31 class ObjectCollectionMaker;
32 class ParticleLevelLoader;
33 class CalcTtbarPartonHistory;
34 class PDFScaleFactorCalculator;
35 class TopEventMaker;
36 class ScaleFactorCalculator;
37 class TopObjectSelection;
38 
39 class TopxAODAlg final : public EL::AnaAlgorithm {
40 public:
41  TopxAODAlg(const std::string &name, ISvcLocator *pSvcLocator);
42  StatusCode initialize() override;
43  StatusCode beginInputFile() override;
44  StatusCode execute() override;
45  StatusCode endInputFile() override;
46  StatusCode finalize() override;
47 
48 private:
49  std::shared_ptr<ConfigurationSettings> m_settings{nullptr};
50  std::shared_ptr<TopConfig> m_config{nullptr};
51  ToolHandle<top::TopToolStore> m_topTools;
52  ToolHandle<top::EventCleaningSelection> m_eventCleaning;
53  ToolHandle<top::ObjectCollectionMaker> m_systObjMaker;
54  ToolHandle<top::TopObjectSelection> m_objectSelection;
55  std::unique_ptr<top::EventSelectionManager> m_eventSelectionManager;
56  std::unique_ptr<top::AnalysisTrackingHelper> m_tracker;
57  ToolHandle<top::ParticleLevelLoader> m_particleLevelLoader;
58  ToolHandle<top::CalcTtbarPartonHistory> m_topPartonHistory;
59  ToolHandle<top::PDFScaleFactorCalculator> m_PDF_SF;
60  ToolHandle<top::TopEventMaker> m_topEventMaker;
61  ToolHandle<top::ScaleFactorCalculator> m_topScaleFactors;
62  std::unique_ptr<top::EventSaverBase> m_eventSaver;
63  ToolHandle<PMGTools::IPMGTruthWeightTool> m_pmg_weightTool{"PMGTruthWeightTool"};
64 
65  unsigned int m_doPerfStats = 0u;
66  TFile *m_outputFile = nullptr;
67  TTree *m_sumPdfWeights = nullptr;
68  std::unordered_map<std::string, std::unique_ptr<std::vector<float>>> m_totalEventsPdfWeighted;
69  bool m_pdfMetadataExists = false;
72  ULong64_t m_totalEvents = 0;
73  ULong64_t m_totalEventsInFiles = 0;
74  TTree *m_sumWeights = nullptr;
75  bool m_recalc_LHE3 = false;
77  std::vector<std::string> m_names_LHE3;
78  std::vector<double> m_totalEventsWeighted_LHE3; // having doubles is necessary in case of
79  // re-calculation of the sum
80  std::vector<double> m_totalEventsWeighted_LHE3_temp; // having doubles is necessary in case of
81  // re-calculation of the sum
82  unsigned int m_entry = 0u;
83  unsigned int m_firstEvent = 0u;
84  unsigned int m_totalYieldSoFar = 0u;
85  unsigned int m_eventSavedReco = 0u;
86  unsigned int m_eventSavedRecoLoose = 0u;
87  unsigned int m_eventSavedTruth = 0u;
88  unsigned int m_eventSavedParticle = 0u;
89  bool m_isFirst = true;
90 
91  unsigned int m_DSID;
92  int m_isAFII;
93  std::unordered_map<std::string, std::vector<std::string>> m_boostedTaggersSFSysNames;
94 
96  std::string m_configPath{""};
97  std::string m_libraryNames{""};
98  std::string m_derivationStream{""};
99  bool m_crashOnMetaDataFail{true}; // if true, crash if metadata broken
100  std::string m_streamName{"output"};
101  unsigned int m_FTAGMapIndex;
103  std::string m_year;
104 };
105 
106 } // namespace top
107 
108 #endif
top::TopxAODAlg::m_eventSavedRecoLoose
unsigned int m_eventSavedRecoLoose
Definition: TopxAODAlg.h:86
CutBookkeeper.h
top
TopConfig A simple configuration that is NOT a singleton.
Definition: AnalysisTrackingHelper.cxx:58
top::TopxAODAlg::m_particleLevelLoader
ToolHandle< top::ParticleLevelLoader > m_particleLevelLoader
Definition: TopxAODAlg.h:57
top::TopxAODAlg::m_recalculateNominalWeightSum
bool m_recalculateNominalWeightSum
Definition: TopxAODAlg.h:76
SampleXsection.h
top::TopxAODAlg::m_eventSavedParticle
unsigned int m_eventSavedParticle
Definition: TopxAODAlg.h:88
top::TopxAODAlg::initialize
StatusCode initialize() override
Definition: TopxAODAlg.cxx:39
top::TopxAODAlg::m_topScaleFactors
ToolHandle< top::ScaleFactorCalculator > m_topScaleFactors
Definition: TopxAODAlg.h:61
top::TopxAODAlg::m_systObjMaker
ToolHandle< top::ObjectCollectionMaker > m_systObjMaker
Definition: TopxAODAlg.h:53
top::TopxAODAlg::m_boostedTaggersSFSysNames
std::unordered_map< std::string, std::vector< std::string > > m_boostedTaggersSFSysNames
Definition: TopxAODAlg.h:93
top::TopxAODAlg::m_totalYieldSoFar
unsigned int m_totalYieldSoFar
Definition: TopxAODAlg.h:84
top::TopxAODAlg::beginInputFile
StatusCode beginInputFile() override
Definition: TopxAODAlg.cxx:232
EventSaverBase.h
top::TopxAODAlg::m_totalEvents
ULong64_t m_totalEvents
Definition: TopxAODAlg.h:72
top::TopxAODAlg::m_tracker
std::unique_ptr< top::AnalysisTrackingHelper > m_tracker
Definition: TopxAODAlg.h:56
top::TopxAODAlg::m_showeringAlgo
SampleXsection::showering m_showeringAlgo
Definition: TopxAODAlg.h:102
top::TopxAODAlg::m_totalEventsPdfWeighted
std::unordered_map< std::string, std::unique_ptr< std::vector< float > > > m_totalEventsPdfWeighted
Definition: TopxAODAlg.h:68
top::TopxAODAlg::m_eventSavedReco
unsigned int m_eventSavedReco
Definition: TopxAODAlg.h:85
top::TopxAODAlg::m_totalEventsWeighted_LHE3
std::vector< double > m_totalEventsWeighted_LHE3
Definition: TopxAODAlg.h:78
SampleXsection::showering
showering
Definition: SampleXsection.h:21
top::TopxAODAlg::m_settings
std::shared_ptr< ConfigurationSettings > m_settings
Definition: TopxAODAlg.h:49
top::TopxAODAlg::m_eventCleaning
ToolHandle< top::EventCleaningSelection > m_eventCleaning
Definition: TopxAODAlg.h:52
top::TopxAODAlg::m_recalc_LHE3
bool m_recalc_LHE3
Definition: TopxAODAlg.h:75
top::TopxAODAlg::m_isAFII
int m_isAFII
Definition: TopxAODAlg.h:92
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
top::TopxAODAlg::m_topTools
ToolHandle< top::TopToolStore > m_topTools
Definition: TopxAODAlg.h:51
top::TopxAODAlg::m_year
std::string m_year
Definition: TopxAODAlg.h:103
top::TopxAODAlg::endInputFile
StatusCode endInputFile() override
Definition: TopxAODAlg.cxx:656
AnaAlgorithm.h
top::TopxAODAlg::m_sumWeights
TTree * m_sumWeights
Definition: TopxAODAlg.h:74
EventSelectionManager.h
top::TopxAODAlg::m_totalEventsWeighted_LHE3_temp
std::vector< double > m_totalEventsWeighted_LHE3_temp
Definition: TopxAODAlg.h:80
EL::AnaAlgorithm
the (new) base class for EventLoop algorithms
Definition: AnaAlgorithm.h:73
top::TopxAODAlg::m_entry
unsigned int m_entry
Definition: TopxAODAlg.h:82
top::TopxAODAlg::m_FTAGMapIndex
unsigned int m_FTAGMapIndex
Definition: TopxAODAlg.h:101
top::TopxAODAlg::m_DSID
unsigned int m_DSID
Definition: TopxAODAlg.h:91
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
top::TopxAODAlg::m_streamName
std::string m_streamName
Definition: TopxAODAlg.h:100
PMGTools
Tool providing sample cross-sections and k-factors etc.
Definition: AnalysisCommon/PMGTools/PMGTools/IPMGCrossSectionTool.h:15
top::TopxAODAlg::TopxAODAlg
TopxAODAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TopxAODAlg.cxx:22
top::TopxAODAlg::m_firstEvent
unsigned int m_firstEvent
Definition: TopxAODAlg.h:83
CutBookkeeperContainer.h
top::TopxAODAlg::m_PDF_SF
ToolHandle< top::PDFScaleFactorCalculator > m_PDF_SF
Definition: TopxAODAlg.h:59
top::TopxAODAlg::m_doPerfStats
unsigned int m_doPerfStats
Definition: TopxAODAlg.h:65
top::TopxAODAlg::m_names_LHE3
std::vector< std::string > m_names_LHE3
Definition: TopxAODAlg.h:77
top::TopxAODAlg::execute
StatusCode execute() override
Definition: TopxAODAlg.cxx:349
AnalysisTrackingHelper.h
top::TopxAODAlg::m_objectSelection
ToolHandle< top::TopObjectSelection > m_objectSelection
Definition: TopxAODAlg.h:54
top::TopxAODAlg::m_outputFile
TFile * m_outputFile
Definition: TopxAODAlg.h:66
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
top::TopxAODAlg::m_crashOnMetaDataFail
bool m_crashOnMetaDataFail
Definition: TopxAODAlg.h:99
top::TopxAODAlg::m_totalEventsInFiles
ULong64_t m_totalEventsInFiles
Definition: TopxAODAlg.h:73
top::TopxAODAlg::m_totalEventsWeighted_temp
double m_totalEventsWeighted_temp
Definition: TopxAODAlg.h:71
top::TopxAODAlg::m_eventSavedTruth
unsigned int m_eventSavedTruth
Definition: TopxAODAlg.h:87
top::TopxAODAlg::m_eventSelectionManager
std::unique_ptr< top::EventSelectionManager > m_eventSelectionManager
Definition: TopxAODAlg.h:55
top::TopxAODAlg::m_eventSaver
std::unique_ptr< top::EventSaverBase > m_eventSaver
Definition: TopxAODAlg.h:62
top::TopxAODAlg::finalize
StatusCode finalize() override
Definition: TopxAODAlg.cxx:733
top::TopxAODAlg::m_totalEventsWeighted
double m_totalEventsWeighted
Definition: TopxAODAlg.h:70
top::TopxAODAlg::m_derivationStream
std::string m_derivationStream
Definition: TopxAODAlg.h:98
top::TopxAODAlg::m_isFirst
bool m_isFirst
Definition: TopxAODAlg.h:89
top::TopxAODAlg::m_pmg_weightTool
ToolHandle< PMGTools::IPMGTruthWeightTool > m_pmg_weightTool
Definition: TopxAODAlg.h:63
top::TopxAODAlg::m_pdfMetadataExists
bool m_pdfMetadataExists
Definition: TopxAODAlg.h:69
top::TopxAODAlg::m_topEventMaker
ToolHandle< top::TopEventMaker > m_topEventMaker
Definition: TopxAODAlg.h:60
top::TopxAODAlg::m_topPartonHistory
ToolHandle< top::CalcTtbarPartonHistory > m_topPartonHistory
Definition: TopxAODAlg.h:58
ToolHandle.h
top::TopxAODAlg::m_sumPdfWeights
TTree * m_sumPdfWeights
Definition: TopxAODAlg.h:67
top::TopxAODAlg::m_libraryNames
std::string m_libraryNames
Definition: TopxAODAlg.h:97
top::TopxAODAlg
Definition: TopxAODAlg.h:39
top::TopxAODAlg::m_configPath
std::string m_configPath
properties
Definition: TopxAODAlg.h:96
top::TopxAODAlg::m_config
std::shared_ptr< TopConfig > m_config
Definition: TopxAODAlg.h:50