ATLAS Offline Software
|
#include <NTupleSvc.h>
Classes | |
struct | CopyInfo |
description: the information we need for copying branches More... | |
struct | WhiteInfo |
description: the information we need for whiteboard variables More... | |
Public Member Functions | |
void | testInvariant () const |
effects: test the invariant of this object guarantee: no-fail More... | |
NTupleSvc (const std::string &val_outputName="output") | |
effects: standard constructor guarantee: strong failures: out of memory I requires: !val_outputName.empty() More... | |
~NTupleSvc () | |
effects: standard destructor guarantee: no-fail More... | |
void | copyBranch (const std::string &name) |
effects: add another branch to copy. More... | |
void | copyBranchList (const std::string &fileName) |
effects: read a list of branches to copy from a file. More... | |
void | addWhiteFloat (const std::string &varName) |
effects: add a float from the whiteboard guarantee: strong failures: out of memory II More... | |
void | addWhiteArray (const std::string &varName) |
effects: add an array from the whiteboard guarantee: strong failures: out of memory II More... | |
TTree * | tree () const |
returns: the tree we are writing out guarantee: no-fail requires(soft): initialize() has been called postcondition: result != 0 More... | |
bool | getFilterPassed () const |
returns: whether the current event will be taken guarantee: no-fail More... | |
void | setFilterPassed (bool passed=true) |
effects: take the current event if passed is set, otherwise perform a no-op guarantee: no-fail More... | |
const std::string & | treeName () const |
description: the name of the tree, or the empty string to use the name of the input tree guarantee: no-fail / strong failures: out of memory II More... | |
void | treeName (const std::string &val_treeName) |
virtual const char * | GetName () const |
effects: return the name of this algorithm guarantee: no-fail More... | |
IWorker * | wk () const |
description: the worker that is controlling us guarantee: no-fail More... | |
void | book (const TH1 &hist) |
book the given histogram More... | |
TH1 * | hist (const std::string &name) const |
get the histogram with the given name More... | |
asg::SgTEvent * | evtStore () const |
get the (main) event store for this algorithm More... | |
virtual const std::string & | name () const |
Private Types | |
typedef std::set< std::string >::iterator | m_copyBranchesIter |
typedef std::set< std::string >::iterator | m_whiteFloatIter |
typedef std::set< std::string >::iterator | m_whiteArrayIter |
typedef std::vector< CopyInfo >::iterator | copyInfoMIter |
typedef std::vector< WhiteInfo >::iterator | whiteInfoMIter |
Private Member Functions | |
virtual StatusCode | setupJob (Job &job) |
effects: give the algorithm a chance to intialize the job with anything this algorithm needs. More... | |
virtual StatusCode | changeInput (bool firstFile) |
effects: do all changes to work with a new input file, e.g. More... | |
virtual StatusCode | initialize () |
effects: do everything that needs to be done before running the algorithm, e.g. More... | |
virtual StatusCode | execute () |
effects: process the next event guarantee: basic failures: algorithm dependent rationale: the virtual part of Algorithm::process More... | |
virtual StatusCode | postExecute () |
effects: do the post-processing for the event guarantee: basic failures: algorithm dependent rationale: the virtual part of Algorithm::process rationale: this is mainly used for specialized services that need to get input from subsequent algorithms before filling their event data More... | |
virtual bool | hasName (const std::string &name) const |
returns: whether this algorithm has the given name guarantee: basic failures: algorithm dependent rationale: this is to allow an algorithm to be known by multiple names. More... | |
void | initBranches () |
effects: create all the branches when called for the first time guarantee: basic, may create some failures: out of memory III failures: branch not found More... | |
void | findBranches (std::set< std::string > &branchList) |
effects: find the branches in the input tree guarantee: basic, may create some failures: out of memory III failures: branch not found More... | |
void | initOutput (const std::string &branchName) |
effects: create the branch in the output tree guarantee: basic, may create some failures: out of memory II failures: branch not found failures: branch not copyable rationale: it is safe to call this function for branches that are already configured, since this function can call itself recursively. More... | |
void | initOutput (const std::set< std::string > &branchList) |
effects: create the branches in the output tree guarantee: basic, may create some failures: out of memory II failures: branch not found failures: branch not copyable More... | |
void | copyInput () |
effects: copy the input branches to the output branches guarantee: basic, may copy some failures: out of memory III More... | |
ClassDef (NTupleSvc, 1) | |
virtual StatusCode | fileExecute () |
effects: do all the processing that needs to be done once per file More... | |
virtual StatusCode | endOfFile () |
effects: do the post-processing for each input file guarantee: basic failures: algorithm dependent rationale: this is mainly used for specialized services that need to save partial results for each input file More... | |
virtual StatusCode | histInitialize () |
effects: this is a pre-initialization routine that is called before changeInput is called. More... | |
virtual StatusCode | finalize () |
effects: do everything that needs to be done after completing work on this worker guarantee: basic failures: algorithm dependent rationale: currently there is no use foreseen, but this routine is provided regardless More... | |
virtual StatusCode | histFinalize () |
effects: this is a post-initialization routine that is called after finalize has been called. More... | |
void | sysSetupJob (Job &job) |
effects: give the algorithm a chance to intialize the job with anything this algorithm needs. More... | |
Private Attributes | |
std::string | m_outputName |
description: the name of the output stream More... | |
std::string | m_treeName |
description: the name of the output tree More... | |
std::string | m_tree_title |
description: the title of the output tree More... | |
std::set< std::string > | m_copyBranches |
description: the list of branches we copy More... | |
std::set< std::string > | m_whiteFloat |
description: the list of whiteboard floats we copy More... | |
std::set< std::string > | m_whiteArray |
description: the list of whiteboard arrays we copy More... | |
TFile * | m_file |
description: the file we are writing out More... | |
TTree * | m_tree |
description: the tree we are writing out More... | |
bool | m_initialized |
description: whether we initialized the tree we are writing out More... | |
bool | m_taken |
description: whether we take the current event More... | |
bool | m_connected |
description: whether our output branches are properly connected to the input tree More... | |
WhiteBoardSvc * | m_whiteboard |
description: the white board service, if we are using it More... | |
std::vector< CopyInfo > | m_copyInfo |
std::vector< WhiteInfo > | m_whiteInfo |
IWorker * | m_wk |
asg::SgTEvent * | m_evtStorePtr = nullptr |
the value of evtStore More... | |
asg::SgTEvent | m_evtStore |
when configured, the object returned by evtStore More... | |
MsgStream * | m_msg = nullptr |
the message stream, if it has been instantiated More... | |
std::string | m_msgName |
the algorithm name for which the message stream has been instantiated More... | |
int | m_msgLevel = 3 |
the message level configured More... | |
std::string | m_nameCache |
the cache for name More... | |
Definition at line 48 of file NTupleSvc.h.
|
private |
Definition at line 289 of file NTupleSvc.h.
|
private |
Definition at line 231 of file NTupleSvc.h.
|
private |
Definition at line 241 of file NTupleSvc.h.
|
private |
Definition at line 236 of file NTupleSvc.h.
|
private |
Definition at line 313 of file NTupleSvc.h.
EL::NTupleSvc::NTupleSvc | ( | const std::string & | val_outputName = "output" | ) |
effects: standard constructor guarantee: strong failures: out of memory I requires: !val_outputName.empty()
EL::NTupleSvc::~NTupleSvc | ( | ) |
effects: standard destructor guarantee: no-fail
void EL::NTupleSvc::addWhiteArray | ( | const std::string & | varName | ) |
effects: add an array from the whiteboard guarantee: strong failures: out of memory II
void EL::NTupleSvc::addWhiteFloat | ( | const std::string & | varName | ) |
effects: add a float from the whiteboard guarantee: strong failures: out of memory II
|
inherited |
book the given histogram
|
privatevirtual |
effects: do all changes to work with a new input file, e.g.
set new branch addresses. if firstFile is set, this method is called just before init() is called guarantee: basic failures: algorithm dependent
Reimplemented from EL::Algorithm.
|
private |
void EL::NTupleSvc::copyBranch | ( | const std::string & | name | ) |
effects: add another branch to copy.
allows use of regular expressions guarantee: strong failures: out of memory II
void EL::NTupleSvc::copyBranchList | ( | const std::string & | fileName | ) |
effects: read a list of branches to copy from a file.
allows use of regular expressions inside the file. leading and trailing spaces are ignored. lines starting with # are ignored. guarantee: strong failures: out of memory III failures: i/o errors
|
private |
effects: copy the input branches to the output branches guarantee: basic, may copy some failures: out of memory III
|
privatevirtualinherited |
effects: do the post-processing for each input file guarantee: basic failures: algorithm dependent rationale: this is mainly used for specialized services that need to save partial results for each input file
Reimplemented in EL::MetricsSvc.
|
inherited |
get the (main) event store for this algorithm
This is mostly to mirror the method of the same name in AthAlgorithm, allowing to make the tutorial instructions more dual-use.
|
privatevirtual |
effects: process the next event guarantee: basic failures: algorithm dependent rationale: the virtual part of Algorithm::process
Reimplemented from EL::Algorithm.
|
privatevirtualinherited |
effects: do all the processing that needs to be done once per file
Warning: The user should not expect this to be called at any particular point in execution. If a file is split between multiple jobs this will be called in only one of these jobs, and not the others. It usually gets called before the first event in a file, but that is not guaranteed and relying on this is a bug. Take a look at changeInput if you want something that is guaranteed to be executed at the beginning of each input file.
Warning: The execution order of changeInput and fileExecute is currently unspecified.
guarantee: basic failures: algorithm dependent rationale: this is to read per-file accounting data, e.g. the list of lumi-blocks processed
Reimplemented in EL::UnitTestAlg1, EL::UnitTestAlg, EL::UnitTestAlgXAOD, and EL::MetricsSvc.
|
privatevirtualinherited |
effects: do everything that needs to be done after completing work on this worker guarantee: basic failures: algorithm dependent rationale: currently there is no use foreseen, but this routine is provided regardless
Reimplemented in EL::UnitTestAlg1, EL::UnitTestAlg, and EL::UnitTestAlgXAOD.
|
private |
effects: find the branches in the input tree guarantee: basic, may create some failures: out of memory III failures: branch not found
bool EL::NTupleSvc::getFilterPassed | ( | ) | const |
returns: whether the current event will be taken guarantee: no-fail
|
virtual |
effects: return the name of this algorithm guarantee: no-fail
|
privatevirtual |
returns: whether this algorithm has the given name guarantee: basic failures: algorithm dependent rationale: this is to allow an algorithm to be known by multiple names.
this is needed for NTupleSvc, so that it can be located with and without the output tree name.
Reimplemented from EL::Algorithm.
|
inherited |
get the histogram with the given name
|
privatevirtualinherited |
effects: this is a post-initialization routine that is called after finalize has been called.
guarantee: basic failures: algorithm dependent rationale: unlike finalize(), this method is called all the time, even on empty input files.
Reimplemented in EL::UnitTestAlg1, EL::UnitTestAlg, EL::UnitTestAlgXAOD, and EL::MetricsSvc.
|
privatevirtualinherited |
effects: this is a pre-initialization routine that is called before changeInput is called.
guarantee: basic failures: algorithm dependent rationale: unlike initialize(), this method is called all the time, even on empty input files. so you should create any histograms or n-tuples here that subsequent code expects
Reimplemented in EL::UnitTestAlg1, EL::UnitTestAlg, EL::UnitTestAlgXAOD, EL::MetricsSvc, and EL::VomsProxySvc.
|
private |
effects: create all the branches when called for the first time guarantee: basic, may create some failures: out of memory III failures: branch not found
|
privatevirtual |
effects: do everything that needs to be done before running the algorithm, e.g.
create output n-tuples and histograms. this method is called only once right after changeInput(true) is called guarantee: basic failures: algorithm dependent rationale: in principle all this work could be done on changeInput(true). However, providing this method should make it easier for the user to set up all his outputs and to do so only once.
Reimplemented from EL::Algorithm.
|
private |
effects: create the branches in the output tree guarantee: basic, may create some failures: out of memory II failures: branch not found failures: branch not copyable
|
private |
effects: create the branch in the output tree guarantee: basic, may create some failures: out of memory II failures: branch not found failures: branch not copyable rationale: it is safe to call this function for branches that are already configured, since this function can call itself recursively.
|
inherited |
messaging interface
this is the interface to work with the standard messaging macros from AsgTools. Instead of enums I pass ints, so that I can avoid the include dependency (forward declarations are only allowed for enum classes AFAIK).
the standard message stream for this object
|
inherited |
the message stream for this object, configured for the given level
|
inherited |
whether we are configured to print messages at the given level
|
virtualinherited |
|
privatevirtual |
effects: do the post-processing for the event guarantee: basic failures: algorithm dependent rationale: the virtual part of Algorithm::process rationale: this is mainly used for specialized services that need to get input from subsequent algorithms before filling their event data
Reimplemented from EL::Algorithm.
void EL::NTupleSvc::setFilterPassed | ( | bool | passed = true | ) |
effects: take the current event if passed is set, otherwise perform a no-op guarantee: no-fail
|
inherited |
set the message level for the message stream for this object
|
privatevirtual |
effects: give the algorithm a chance to intialize the job with anything this algorithm needs.
this method is automatically called before the algorithm is actually added to the job. guarantee: basic failures: algorithm dependent rationale: this is currently used to give algorithms a chance to register their output datasets, but can also be used for other stuff.
Reimplemented from EL::Algorithm.
|
privateinherited |
effects: give the algorithm a chance to intialize the job with anything this algorithm needs.
this method is automatically called before the algorithm is actually added to the job. guarantee: basic failures: algorithm dependent rationale: this is currently used to give algorithms a chance to register their output datasets, but can also be used for other stuff.
void EL::NTupleSvc::testInvariant | ( | ) | const |
effects: test the invariant of this object guarantee: no-fail
TTree* EL::NTupleSvc::tree | ( | ) | const |
returns: the tree we are writing out guarantee: no-fail requires(soft): initialize() has been called postcondition: result != 0
const std::string& EL::NTupleSvc::treeName | ( | ) | const |
description: the name of the tree, or the empty string to use the name of the input tree guarantee: no-fail / strong failures: out of memory II
void EL::NTupleSvc::treeName | ( | const std::string & | val_treeName | ) |
|
inherited |
description: the worker that is controlling us guarantee: no-fail
|
private |
description: whether our output branches are properly connected to the input tree
Definition at line 262 of file NTupleSvc.h.
|
private |
description: the list of branches we copy
Definition at line 230 of file NTupleSvc.h.
|
private |
Definition at line 288 of file NTupleSvc.h.
|
mutableprivateinherited |
when configured, the object returned by evtStore
Definition at line 329 of file Algorithm.h.
|
mutableprivateinherited |
the value of evtStore
Definition at line 325 of file Algorithm.h.
|
private |
description: the file we are writing out
Definition at line 245 of file NTupleSvc.h.
|
private |
description: whether we initialized the tree we are writing out
Definition at line 253 of file NTupleSvc.h.
|
mutableprivateinherited |
the message stream, if it has been instantiated
Definition at line 333 of file Algorithm.h.
|
privateinherited |
the message level configured
Definition at line 342 of file Algorithm.h.
|
mutableprivateinherited |
the algorithm name for which the message stream has been instantiated
Definition at line 338 of file Algorithm.h.
|
mutableprivateinherited |
the cache for name
Definition at line 346 of file Algorithm.h.
|
private |
description: the name of the output stream
Definition at line 218 of file NTupleSvc.h.
|
private |
description: whether we take the current event
Definition at line 257 of file NTupleSvc.h.
|
private |
description: the tree we are writing out
Definition at line 249 of file NTupleSvc.h.
|
private |
description: the title of the output tree
Definition at line 226 of file NTupleSvc.h.
|
private |
description: the name of the output tree
Definition at line 222 of file NTupleSvc.h.
|
private |
description: the list of whiteboard arrays we copy
Definition at line 240 of file NTupleSvc.h.
|
private |
description: the white board service, if we are using it
Definition at line 266 of file NTupleSvc.h.
|
private |
description: the list of whiteboard floats we copy
Definition at line 235 of file NTupleSvc.h.
|
private |
Definition at line 312 of file NTupleSvc.h.
|
privateinherited |
Definition at line 321 of file Algorithm.h.