ATLAS Offline Software
Loading...
Searching...
No Matches
EL::UnitTestSkim Class Reference

#include <UnitTestSkim.h>

Inheritance diagram for EL::UnitTestSkim:
Collaboration diagram for EL::UnitTestSkim:

Public Member Functions

void testInvariant () const
 effects: test the invariant of this object guarantee: no-fail
 UnitTestSkim ()
 effects: standard default constructor guarantee: strong failures: out of memory I
IWorkerwk () const
 description: the worker that is controlling us guarantee: no-fail
void book (const TH1 &hist)
 book the given histogram
TH1 * hist (const std::string &name) const
 get the histogram with the given name
asg::SgTEventevtStore () const
 get the (main) event store for this algorithm
virtual const std::string & name () const
MsgStream & msg () const
 messaging interface
MsgStream & msg (int level) const
 the message stream for this object, configured for the given level
bool msgLvl (int lvl) const
 whether we are configured to print messages at the given level
void setMsgLevel (int level)
 set the message level for the message stream for this object

Private Member Functions

virtual StatusCode changeInput (bool firstFile)
 effects: do all changes to work with a new input file, e.g.
virtual StatusCode initialize ()
 effects: do everything that needs to be done before running the algorithm, e.g.
virtual StatusCode execute ()
 effects: process the next event guarantee: basic failures: algorithm dependent rationale: the virtual part of Algorithm::process
 ClassDef (UnitTestSkim, 1)
virtual StatusCode setupJob (Job &job)
 effects: give the algorithm a chance to intialize the job with anything this algorithm needs.
virtual StatusCode fileExecute ()
 effects: do all the processing that needs to be done once per file
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
virtual StatusCode histInitialize ()
 effects: this is a pre-initialization routine that is called before changeInput is called.
virtual StatusCode postExecute ()
 effects: do the post-processing for the event guarantee: basic failures: algorithm dependent rationale: this is mainly used for specialized services that need to get input from subsequent algorithms before filling their event data
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
virtual StatusCode histFinalize ()
 effects: this is a post-initialization routine that is called after finalize has been called.
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.
void sysSetupJob (Job &job)
 effects: give the algorithm a chance to intialize the job with anything this algorithm needs.

Private Attributes

NTupleSvcm_skim
 description: the output algorithm we use
Int_t el_n
 description: the member we read into
Int_t el_n2
 description: the member we write from
IWorkerm_wk
asg::SgTEventm_evtStorePtr = nullptr
 the value of evtStore
asg::SgTEvent m_evtStore
 when configured, the object returned by evtStore
MsgStream * m_msg = nullptr
 the message stream, if it has been instantiated
std::string m_msgName
 the algorithm name for which the message stream has been instantiated
int m_msgLevel = 3
 the message level configured
std::string m_nameCache
 the cache for name

Detailed Description

Definition at line 30 of file UnitTestSkim.h.

Constructor & Destructor Documentation

◆ UnitTestSkim()

EL::UnitTestSkim::UnitTestSkim ( )

effects: standard default constructor guarantee: strong failures: out of memory I

Definition at line 40 of file UnitTestSkim.cxx.

42 {
43 RCU_NEW_INVARIANT (this);
44 }
#define RCU_NEW_INVARIANT(x)
Definition Assert.h:233

Member Function Documentation

◆ book()

void EL::Algorithm::book ( const TH1 & hist)
inherited

book the given histogram

Guarantee
strong
Failures
histogram booking error

◆ changeInput()

StatusCode EL::UnitTestSkim::changeInput ( bool firstFile)
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.

Definition at line 48 of file UnitTestSkim.cxx.

50 {
52 wk()->tree()->SetBranchAddress ("el_n", &el_n);
53 return StatusCode::SUCCESS;
54 }
#define RCU_CHANGE_INVARIANT(x)
Definition Assert.h:231
IWorker * wk() const
description: the worker that is controlling us guarantee: no-fail
virtual TTree * tree() const =0
description: the tree we are running on guarantee: no-fail
Int_t el_n
description: the member we read into

◆ ClassDef()

EL::UnitTestSkim::ClassDef ( UnitTestSkim ,
1  )
private

◆ endOfFile()

virtual StatusCode EL::Algorithm::endOfFile ( )
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.

◆ evtStore()

asg::SgTEvent * EL::Algorithm::evtStore ( ) const
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.

Guarantee
strong
Failures
out of memory I
job not configured for xAODs

◆ execute()

StatusCode EL::UnitTestSkim::execute ( )
privatevirtual

effects: process the next event guarantee: basic failures: algorithm dependent rationale: the virtual part of Algorithm::process

Reimplemented from EL::Algorithm.

Definition at line 71 of file UnitTestSkim.cxx.

73 {
75
76 wk()->tree()->GetEntry (wk()->treeEntry());
77 el_n2 = el_n * el_n;
78
79 return StatusCode::SUCCESS;
80 }
Int_t el_n2
description: the member we write from

◆ fileExecute()

virtual StatusCode EL::Algorithm::fileExecute ( )
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::MetricsSvc, EL::UnitTestAlg1, EL::UnitTestAlg, and EL::UnitTestAlgXAOD.

◆ finalize()

virtual StatusCode EL::Algorithm::finalize ( )
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.

◆ hasName()

virtual bool EL::Algorithm::hasName ( const std::string & name) const
privatevirtualinherited

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 in EL::NTupleSvc.

◆ hist()

TH1 * EL::Algorithm::hist ( const std::string & name) const
inherited

get the histogram with the given name

Guarantee
strong
Failures
histogram not found

◆ histFinalize()

virtual StatusCode EL::Algorithm::histFinalize ( )
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::MetricsSvc, EL::UnitTestAlg1, EL::UnitTestAlg, and EL::UnitTestAlgXAOD.

◆ histInitialize()

virtual StatusCode EL::Algorithm::histInitialize ( )
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::MetricsSvc, EL::UnitTestAlg1, EL::UnitTestAlg, EL::UnitTestAlgXAOD, and EL::VomsProxySvc.

◆ initialize()

StatusCode EL::UnitTestSkim::initialize ( )
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.

Definition at line 58 of file UnitTestSkim.cxx.

60 {
62
63 m_skim = getNTupleSvc (wk(), "output");
64 m_skim->tree()->Branch ("el_n2", &el_n2, "el_n2/I");
65
66 return StatusCode::SUCCESS;
67 }
NTupleSvc * m_skim
description: the output algorithm we use
NTupleSvc * getNTupleSvc(IWorker *worker, const std::string &outputStream, const std::string &treeName="")
effects: get the skimming algorithm for the given output for this worker guarantee: strong failures: ...

◆ msg() [1/2]

MsgStream & EL::Algorithm::msg ( ) const
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

Guarantee
strong
Failures
code not compiled with AsgTools support

◆ msg() [2/2]

MsgStream & EL::Algorithm::msg ( int level) const
inherited

the message stream for this object, configured for the given level

Guarantee
strong
Failures
code not compiled with AsgTools support

◆ msgLvl()

bool EL::Algorithm::msgLvl ( int lvl) const
inherited

whether we are configured to print messages at the given level

Guarantee
no-fail

◆ name()

virtual const std::string & EL::Algorithm::name ( ) const
virtualinherited

◆ postExecute()

virtual StatusCode EL::Algorithm::postExecute ( )
privatevirtualinherited

effects: do the post-processing for the event guarantee: basic failures: algorithm dependent rationale: this is mainly used for specialized services that need to get input from subsequent algorithms before filling their event data

Reimplemented in EL::NTupleSvc.

◆ setMsgLevel()

void EL::Algorithm::setMsgLevel ( int level)
inherited

set the message level for the message stream for this object

Guarantee
no-fail

◆ setupJob()

virtual StatusCode EL::Algorithm::setupJob ( Job & job)
privatevirtualinherited

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 in EL::AlgSelect, EL::DuplicateChecker, EL::NTupleSvc, EL::UnitTestAlg1, EL::UnitTestAlg, EL::UnitTestAlgXAOD, EL::VomsProxySvc, MD::AlgCFlow, and MD::AlgHist.

◆ sysSetupJob()

void EL::Algorithm::sysSetupJob ( Job & job)
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.

◆ testInvariant()

void EL::UnitTestSkim::testInvariant ( ) const

effects: test the invariant of this object guarantee: no-fail

Definition at line 32 of file UnitTestSkim.cxx.

34 {
35 RCU_INVARIANT (this != 0);
36 }
#define RCU_INVARIANT(x)
Definition Assert.h:201

◆ wk()

IWorker * EL::Algorithm::wk ( ) const
inherited

description: the worker that is controlling us guarantee: no-fail

Member Data Documentation

◆ el_n

Int_t EL::UnitTestSkim::el_n
private

description: the member we read into

Definition at line 96 of file UnitTestSkim.h.

◆ el_n2

Int_t EL::UnitTestSkim::el_n2
private

description: the member we write from

Definition at line 100 of file UnitTestSkim.h.

◆ m_evtStore

asg::SgTEvent EL::Algorithm::m_evtStore
mutableprivateinherited

when configured, the object returned by evtStore

Definition at line 329 of file Algorithm.h.

◆ m_evtStorePtr

asg::SgTEvent* EL::Algorithm::m_evtStorePtr = nullptr
mutableprivateinherited

the value of evtStore

Definition at line 325 of file Algorithm.h.

◆ m_msg

MsgStream* EL::Algorithm::m_msg = nullptr
mutableprivateinherited

the message stream, if it has been instantiated

Definition at line 333 of file Algorithm.h.

◆ m_msgLevel

int EL::Algorithm::m_msgLevel = 3
privateinherited

the message level configured

Definition at line 342 of file Algorithm.h.

◆ m_msgName

std::string EL::Algorithm::m_msgName
mutableprivateinherited

the algorithm name for which the message stream has been instantiated

Definition at line 338 of file Algorithm.h.

◆ m_nameCache

std::string EL::Algorithm::m_nameCache
mutableprivateinherited

the cache for name

Definition at line 346 of file Algorithm.h.

◆ m_skim

NTupleSvc* EL::UnitTestSkim::m_skim
private

description: the output algorithm we use

Definition at line 92 of file UnitTestSkim.h.

◆ m_wk

IWorker* EL::Algorithm::m_wk
privateinherited

Definition at line 321 of file Algorithm.h.


The documentation for this class was generated from the following files: