ATLAS Offline Software
Functions
test-jet-links.cxx File Reference
#include "xAODRootAccess/Init.h"
#include "xAODRootAccess/tools/ReturnCheck.h"
#include "xAODRootAccess/TEvent.h"
#include "xAODJet/JetContainer.h"
#include "AsgMessaging/MessageCheck.h"
#include "TFile.h"
#include "TTree.h"
#include "TError.h"
Include dependency graph for test-jet-links.cxx:

Go to the source code of this file.

Functions

int main ATLAS_NOT_THREAD_SAFE (int argc, char *argv[])
 

Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

int main ATLAS_NOT_THREAD_SAFE ( int  argc,
char *  argv[] 
)

Definition at line 14 of file test-jet-links.cxx.

14  {
15 
16  ANA_CHECK_SET_TYPE (int);
17  using namespace asg::msgUserCode;
19 
20  if (argc != 4) {
21  std::cerr << "usage: " << argv[0] << ": <DAOD> <parent jet collection> <associated collection>"
22  << std::endl;
23  return 1;
24  }
25  std::string file = argv[1];
26  std::string jets_name = argv[2];
27  std::string linked_jets_name = argv[3];
28 
29  // The name of the application:
30  const std::string APP_NAME = "JetLinksTestDumper";
31 
32  // Set up the environment:
33  ANA_CHECK( xAOD::Init() );
34 
35  // Set up the event object:
37 
38  // Open the file:
39  std::unique_ptr<TFile> ifile(TFile::Open(file.c_str(), "READ"));
40  if ( ! ifile.get() || ifile->IsZombie()) {
41  std::cerr << "Couldn't open file: " << file << std::endl;
42  return 1;
43  }
44 
45  // Connect the event object to it:
46  ANA_CHECK( event.readFrom(ifile.get()) );
47 
48  unsigned long long nbad = 0;
49  unsigned long long ngood = 0;
50  unsigned long long entries = event.getEntries();
51  for (unsigned long long entry = 0; entry < entries; ++entry) {
52  // Load the event:
53  if (event.getEntry(entry) < 0) {
54  std::cerr << "Couldn't load entry " << entry << " from file"
55  << file << std::endl;
56  return 1;
57  }
58  const xAOD::JetContainer *jets = nullptr;
59  ANA_CHECK( event.retrieve(jets, jets_name) );
60  for (const xAOD::Jet *const jet : *jets) {
61  std::vector<const xAOD::Jet*> linked_jets;
62  if (!jet->getAssociatedObjects<xAOD::Jet>(linked_jets_name, linked_jets)){
63  nbad++;
64  } else {
65  ngood++;
66  }
67  }
68  }
69  std::cout << "JetLinksTestDumper Summary: found " << nbad << " out of " << nbad + ngood <<" large-R jets with no valid links to associated track-jets " << std::endl;
70  return nbad > 0;
71 }
ANA_CHECK
#define ANA_CHECK(EXP)
check whether the given expression was successful
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:324
xAOD::TEvent::kClassAccess
@ kClassAccess
Access auxiliary data using the aux containers.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:100
POOL::TEvent::readFrom
StatusCode readFrom(TFile *file)
Definition: PhysicsAnalysis/POOLRootAccess/src/TEvent.cxx:133
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
POOL::TEvent::getEntry
int getEntry(long entry)
Definition: PhysicsAnalysis/POOLRootAccess/src/TEvent.cxx:185
LArCellNtuple.argv
argv
Definition: LArCellNtuple.py:152
Analysis::kError
@ kError
Definition: CalibrationDataVariables.h:60
APP_NAME
#define APP_NAME
Definition: BoostedXbbTag.cxx:23
file
TFile * file
Definition: tile_monitor.h:29
DQHistogramMergeRegExp.argc
argc
Definition: DQHistogramMergeRegExp.py:20
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
gErrorIgnoreLevel
int gErrorIgnoreLevel
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
ANA_CHECK_SET_TYPE
#define ANA_CHECK_SET_TYPE(TYPE)
set the type for ANA_CHECK to report failures
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:314
POOL::TEvent::retrieve
StatusCode retrieve(const T *&obj)
Definition: PhysicsAnalysis/POOLRootAccess/POOLRootAccess/TEvent.h:74
entries
double entries
Definition: listroot.cxx:49
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
LArCellNtuple.ifile
string ifile
Definition: LArCellNtuple.py:133
xAOD::TEvent
Tool for accessing xAOD files outside of Athena.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:84
xAOD::Init
StatusCode Init(const char *appname)
Function initialising ROOT/PyROOT for using the ATLAS EDM.
Definition: Init.cxx:31