ATLAS Offline Software
xAODTMetaBranch.cxx
Go to the documentation of this file.
1 //
2 // Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 //
4 
5 // Local include(s):
9 
11 
13  const std::type_info& ti,
14  const char* brName, const char* brType )
15  : ::TBranchObject(),
16  m_event( &event ), m_ti( &ti ), m_object( nullptr ) {
17 
18  // Now that the object is established in memory, let's initialise it:
19  Init( &parent, 0, brName, brType, &m_object, 32000, 0, -1, kTRUE );
20 }
21 
32 ::Int_t xAODTMetaBranch::GetEntry( ::Long64_t entry, ::Int_t /*getall*/ ) {
33 
34  // Check if the branch is active:
35  if( TestBit( kDoNotProcess ) ) {
36  return 0;
37  }
38 
39  // Check whether we already have the requested entry:
40  if( fReadEntry == entry ) {
41  return 1;
42  }
43 
44  // Load the requested file:
45  if( m_event->getFile( entry ) < 0 ) {
46  Error( "GetEntry",
47  XAOD_MESSAGE( "Problems with loading entry/file %lld" ), entry );
48  return -1;
49  }
50 
51  // Update the internal pointer:
52  m_object = m_event->getInputObject( GetName(), *m_ti, kFALSE, kTRUE );
53  if( ! m_object ) {
54  Error( "GetEntry",
55  XAOD_MESSAGE( "Failed to read variable of type \"%s\" with "
56  "key \"%s\"" ),
57  GetClassName(), GetName() );
58  return -1;
59  }
60 
61  // We were successful:
62  fReadEntry = entry;
63  return 1;
64 }
65 
73 ::TClass* xAODTMetaBranch::IsA() const {
74 
76 }
xAODTMetaBranch::GetEntry
virtual ::Int_t GetEntry(::Long64_t entry, ::Int_t getall)
Function getting the current entry/file for this branch.
Definition: xAODTMetaBranch.cxx:32
xAODTMetaBranch::IsA
virtual ::TClass * IsA() const
Function returning the type of ::TBranchObject.
Definition: xAODTMetaBranch.cxx:73
checkxAOD.brName
brName
Definition: Tools/PyUtils/bin/checkxAOD.py:113
xAODTMetaBranch::m_object
const void * m_object
Pointer to the object read in using TEvent.
Definition: xAODTMetaBranch.h:51
IsA
#define IsA
Declare the TObject style functions.
Definition: xAODTEventBranch.h:59
xAOD::TEvent::getInputObject
const void * getInputObject(SG::sgkey_t key, const std::type_info &ti, bool silent=false) override
Function for retrieving an input object in a non-template way.
Definition: Control/xAODRootAccess/Root/TEvent.cxx:1938
xAOD::TEvent::getFile
::Int_t getFile(::Long64_t file, ::Int_t getall=0)
Load the first event for a given file from the input TChain.
Definition: Control/xAODRootAccess/Root/TEvent.cxx:1472
XAOD_MESSAGE
#define XAOD_MESSAGE(MESSAGE)
Simple macro for printing error/verbose messages.
Definition: Control/xAODRootAccess/xAODRootAccess/tools/Message.h:19
xAODTMetaBranch::m_event
xAOD::TEvent * m_event
Pointer to the TEvent object reading the persistent tree.
Definition: xAODTMetaBranch.h:47
xAODTMetaBranch
Specialised class for browsing xAOD metadata interface objects in ROOT.
Definition: xAODTMetaBranch.h:27
xAODTMetaBranch::xAODTMetaBranch
xAODTMetaBranch(::TTree &parent, xAOD::TEvent &event, const std::type_info &ti, const char *brName, const char *brType)
Constructor with all the needed parameters.
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
Message.h
TEvent.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
xAODTMetaBranch.h
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
xAODTMetaBranch::m_ti
const std::type_info * m_ti
The type of the object that needs to be read.
Definition: xAODTMetaBranch.h:49
L1Topo::Error
Error
The different types of error that can be flagged in the L1TopoRDO.
Definition: Error.h:16
ClassImp
ClassImp(xAODTMetaBranch) xAODTMetaBranch
Definition: xAODTMetaBranch.cxx:10
xAOD::TEvent
Tool for accessing xAOD files outside of Athena.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:81
xAOD::Init
StatusCode Init(const char *appname)
Function initialising ROOT/PyROOT for using the ATLAS EDM.
Definition: Init.cxx:31