39TChain *
getChain(
int argc,
char* argv[],
const char *chainName =
"CollectionTree");
41int main(
int argc,
char* argv[] ) {
46 auto chain =
getChain(argc, argv,
"CollectionTree");
47 if (chain ==
nullptr) {
75 size_t nEntries = chain->GetEntries();
76 for (
size_t entry = 0; entry < nEntries; entry++) {
78 event.getEntry(entry);
79 std::cout <<
" :: Entry :: " << entry << std::endl;
84 if ( event.retrieve(electronCont,
"Electrons").isSuccess() ){
85 std::cout <<
"The electron size is : " << electronCont->
size() << std::endl;
87 std::cout <<
"----------------- CaloRings info ------------------- " << std::endl;
88 std::cout <<
"isAvailable is : " << ringsReader.isAvailable(*
electron) << std::endl;
89 std::cout <<
"(eta,phi) is : (" <<
electron->eta() <<
"," <<
electron->phi() <<
") | cluster pt is : " <<
electron->caloCluster()->pt() << std::endl;
90 if ( ringsReader.isAvailable(*
electron) ) {
93 std::cout <<
"The vectorEL size is : " << caloRingsELVec.size() << std::endl;
95 if ( clRingsEL.isValid() ) {
96 (*clRingsEL)->print(std::cout);
98 std::cout <<
"Retrieved invalid link!" << std::endl;
102 std::cout <<
"The vector size is : " <<
vec.size() << std::endl;
104 std::cout <<
"----------------- Testing cluster ------------------- " << std::endl;
108 std::cout <<
"Loose Decision is: " << std::boolalpha
109 << dec << std::noboolalpha << std::endl;
112 std::cout <<
"Medium Decision is: " << std::boolalpha
113 << dec << std::noboolalpha << std::endl;
116 std::cout <<
"Tight Decision is: " << std::boolalpha
117 << dec << std::noboolalpha << std::endl;
119 float output = looseOutput( *
electron );
120 std::cout <<
"Loose Output is: " << output << std::endl;
123 std::cout <<
"Medium Output is: " << output << std::endl;
126 std::cout <<
"Tight Output is: " << output << std::endl;
130 std::cout <<
"Could not retrieve electrons container" << std::endl;
133 std::cout <<
"----------------- Reading directly from ElectronCaloRings ------------------- " << std::endl;
135 if ( event.retrieve(electronCaloRings,
"ElectronCaloRings").isSuccess() ){
138 rings->print(std::cout);
141 std::cout <<
"ElectronCaloRings. nao funciona" << std::endl;
145 auto metaChain =
getChain(argc, argv,
"MetaData");
147 std::cout <<
"MetaEvent:" << std::endl;
156 size_t nEntriesMeta = metaChain->GetEntries();
157 for (
size_t entry = 0; entry < nEntriesMeta; entry++) {
159 std::cout <<
" :: Entry :: " << entry <<
"/" << nEntriesMeta << std::endl;
160 std::cout <<
"----------------- Reading RingSetConfs ------------------- " << std::endl;
161 if ( metaEvent.
retrieve(electronRingSetConf,
"ElectronRingSetsConf").isSuccess() ){
164 ringsConf->print(std::cout);
166 std::cout <<
"----------------- Printing its RawConfCollection ------------------- " << std::endl;
170 }
catch (
const std::runtime_error &
e) {
171 std::cout <<
"Coudln't read RingSetConfs, reason: " <<
e.what() << std::endl;
174 std::cout <<
"ElectronRingSetsConf not available." << std::endl;
176 if ( metaEvent.
retrieve(photonRingSetConf,
"PhotonRingSetsConf").isSuccess() ){
179 ringsConf->print(std::cout);
181 std::cout <<
"----------------- Printing its RawConfCollection ------------------- " << std::endl;
185 }
catch (
const std::runtime_error &
e) {
186 std::cout <<
"Coudln't read RingSetConfs, reason: " <<
e.what() << std::endl;
189 std::cout <<
"PhotonRingSetsConf not available." << std::endl;
193 std::cout <<
"before close " << std::endl;
198 std::cout <<
"Finishing..." << std::endl;
201TChain *
getChain(
int argc,
char* argv[],
const char *chainName)
208 auto chain =
new TChain( chainName );
209 for (
int i = 1; i < argc; i++) {
std::vector< size_t > vec
#define RETURN_CHECK(CONTEXT, EXP)
Helper macro for checking return codes in a compact form in the code.
size_type size() const noexcept
Returns the number of elements in the collection.
ElementLink implementation for ROOT usage.
SG::ConstAccessor< T, ALLOC > ConstAccessor
Helper class to provide constant type-safe access to aux data.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
StatusCode retrieve(const T *&obj, const std::string &key)
Retrieve either an input or an output object from the event.
std::vector< RawConf > RawConfCollection
typedef The raw configuration structure data holder
static void print(const RawConf &raw, std::ostream &stream)
Prints rawConf.
static void getRawConfCol(RawConfCollection &rawConfCol, const RingSetConfContainer_v1 *container)
Retrieve RawConfCollection from RingSetConf container.
Tool for accessing xAOD files outside of Athena.
@ kClassAccess
Access auxiliary data using the aux containers.
StatusCode readFrom(::TFile *file, bool useTreeCache=true, std::string_view treeName=EVENT_TREE_NAME)
Connect the object to a new input file.
::Int_t getEntry(::Long64_t entry, ::Int_t getall=0)
Function loading a given entry of the input TTree.
TChain * getChain(int argc, char *argv[], const char *chainName="CollectionTree")
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
StatusCode Init(const char *appname)
Function initialising ROOT/PyROOT for using the ATLAS EDM.
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
RingSetConf_v1 RingSetConf
Definition of the current "RingSetConf version".
EventInfo_v1 EventInfo
Definition of the latest event info version.
std::vector< ElementLink< CaloRingsContainer > > CaloRingsLinks
ElementLink type pointing at such objects.
CaloRings_v1 CaloRings
Definition of the current "CaloRings version".
const caloRingsReader_t & getCaloRingsReader()
Get CaloRings accessor with read only permissions.
RingSetConfContainer_v1 RingSetConfContainer
Definition of the current "RingSetConf container version".
CaloRingsContainer_v1 CaloRingsContainer
Definition of the current "CaloRings container version".
Electron_v1 Electron
Definition of the current "egamma version".