24int main(
int argc,
char* argv[] ) {
26 using namespace asg::msgUserCode;
32 Error(
APP_NAME,
"No file name argument" );
45 const char * fileName = argv[1];
46 Info(
APP_NAME,
"Opening file: %s", fileName );
47 TFile *
file =
new TFile(fileName,
"READ");
52 Error(
APP_NAME,
"Failed to have TEvent read file");
59 Long64_t
entries =
event.getEntries();
61 const Long64_t e = atoll( argv[2] );
70 matchTool.
msg().setLevel( MSG::DEBUG );
71 ATH_CHECK( matchTool.setProperty(
"trackMatchProb", 0.7 ) );
72 ATH_CHECK( matchTool.setProperty(
"vertexMatchWeight", 0.7 ) );
75 TFile
fout(
"output.root",
"RECREATE");
79 TH1F * h_cat =
new TH1F(
"vertexMatchTypes",
"Number of vertices of each type",4,-0.5,3.5);
80 h_cat->GetXaxis()->SetBinLabel(1,
"Matched");
81 h_cat->GetXaxis()->SetBinLabel(2,
"Merged");
82 h_cat->GetXaxis()->SetBinLabel(3,
"Split");
83 h_cat->GetXaxis()->SetBinLabel(4,
"Fake");
87 TH1F * h_cat_hs =
new TH1F(
"vertexTypes_hardScatter",
"Number of events of each type",5,-0.5,4.5);
88 h_cat_hs->GetXaxis()->SetBinLabel(1,
"Clean");
89 h_cat_hs->GetXaxis()->SetBinLabel(2,
"Low PU");
90 h_cat_hs->GetXaxis()->SetBinLabel(3,
"High PU");
91 h_cat_hs->GetXaxis()->SetBinLabel(4,
"Split");
92 h_cat_hs->GetXaxis()->SetBinLabel(5,
"No match");
95 for( Long64_t entry = 0; entry <
entries; ++entry ) {
97 event.getEntry( entry );
100 result =
event.retrieve( ei,
"EventInfo" );
102 Error(
APP_NAME,
"Failed to retrieve EventInfo on entry %i",
static_cast<int>(entry));
106 if( entry % 100 == 0 ) {
108 "===Start event %i, run %i; %i events processed so far===",
111 static_cast<int>( entry ) );
116 result =
event.retrieve( vxContainer,
"PrimaryVertices" );
118 Error(
APP_NAME,
"Failed to retrieve PrimaryVertices on entry %i",
static_cast<int>(entry));
124 Error(
APP_NAME,
"Bad status from matching tool on entry %i",
static_cast<int>(entry));
132 for(
auto vxit : *vxContainer ) {
133 h_cat->Fill( matchTypeDecor( *vxit ) );
#define ATH_CHECK
Evaluate an expression and check for errors.
Class for vertex truth matching.
virtual StatusCode matchVertices(const xAOD::VertexContainer &vxContainer) const override
virtual StatusCode initialize() override final
Dummy implementation of the initialisation function.
SG::Decorator< T, ALLOC > Decorator
class to provide type-safe access to aux data.
uint32_t runNumber() const
The current event's run number.
uint64_t eventNumber() const
The current event's event number.
Tool for accessing xAOD files outside of Athena.
@ kClassAccess
Access auxiliary data using the aux containers.
A relatively simple transient store for objects created in analysis.
HardScatterType classifyHardScatter(const xAOD::VertexContainer &vxContainer)
StatusCode Init(const char *appname)
Function initialising ROOT/PyROOT for using the ATLAS EDM.
EventInfo_v1 EventInfo
Definition of the latest event info version.
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".