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");
50 result =
event.readFrom(
file );
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));
129 xAOD::Vertex::Decorator<InDetVertexTruthMatchUtils::VertexMatchType> matchTypeDecor(
"VertexMatchType");
132 for(
auto vxit : *vxContainer ) {
133 h_cat->Fill( matchTypeDecor( *vxit ) );
HardScatterType classifyHardScatter(const xAOD::VertexContainer &vxContainer)