ATLAS Offline Software
Loading...
Searching...
No Matches
Muon::MuonValidationBlockBase Struct Reference

base class for ntuple block The class can handle float and integer block and supports sub blocks. More...

#include <MuonInsideOutValidationNtuple.h>

Inherited by Muon::MuonInsideOutValidationNtuple, Muon::MuonValidationCandidateBlock, Muon::MuonValidationHitBlock, Muon::MuonValidationHoughBlock, Muon::MuonValidationIdBlock, Muon::MuonValidationResidualBlock, Muon::MuonValidationSegmentBlock, Muon::MuonValidationTimeBlock, Muon::MuonValidationTrackBlock, Muon::MuonValidationTrackParticleBlock, and Muon::MuonValidationTruthBlock.

Collaboration diagram for Muon::MuonValidationBlockBase:

Public Types

typedef std::pair< std::reference_wrapper< std::vector< int > * >, std::string > IntBlock
typedef std::pair< std::reference_wrapper< std::vector< unsigned int > * >, std::string > UnsignedIntBlock
typedef std::pair< std::reference_wrapper< std::vector< float > * >, std::string > FloatBlock
typedef std::pair< MuonValidationBlockBase *, std::string > SubBlock

Public Member Functions

virtual ~MuonValidationBlockBase ()
void addBlock (std::vector< int > *&block, std::string name)
void addBlock (std::vector< unsigned int > *&block, std::string name)
void addBlock (std::vector< float > *&block, std::string name)
void addBlock (MuonValidationBlockBase *block, std::string name)
void init (const std::string &prefix, TTree *, bool write=true)
void clear ()

Public Attributes

std::vector< IntBlockintBlocks
std::vector< UnsignedIntBlockunsignedIntBlocks
std::vector< FloatBlockfloatBlocks
std::vector< SubBlocksubBlocks

Detailed Description

base class for ntuple block The class can handle float and integer block and supports sub blocks.

Internally it caches the blocks in vectors which it uses to operate on them.

Users should add all content they want in the ntuple in the constructor of they concrete classes.

Definition at line 26 of file MuonInsideOutValidationNtuple.h.

Member Typedef Documentation

◆ FloatBlock

typedef std::pair<std::reference_wrapper<std::vector<float>*>,std::string> Muon::MuonValidationBlockBase::FloatBlock

Definition at line 30 of file MuonInsideOutValidationNtuple.h.

◆ IntBlock

typedef std::pair<std::reference_wrapper<std::vector<int>*>,std::string> Muon::MuonValidationBlockBase::IntBlock

Definition at line 28 of file MuonInsideOutValidationNtuple.h.

◆ SubBlock

Definition at line 31 of file MuonInsideOutValidationNtuple.h.

◆ UnsignedIntBlock

typedef std::pair<std::reference_wrapper<std::vector<unsigned int>*>,std::string> Muon::MuonValidationBlockBase::UnsignedIntBlock

Definition at line 29 of file MuonInsideOutValidationNtuple.h.

Constructor & Destructor Documentation

◆ ~MuonValidationBlockBase()

Muon::MuonValidationBlockBase::~MuonValidationBlockBase ( )
virtual

Definition at line 20 of file MuonInsideOutValidationNtuple.cxx.

20 {
21 // delete entries
22 //for( auto entry : intBlocks ) delete entry.first.get();
23 //for( auto entry : floatBlocks ) delete entry.first.get();
24 }

Member Function Documentation

◆ addBlock() [1/4]

void Muon::MuonValidationBlockBase::addBlock ( MuonValidationBlockBase * block,
std::string name )
inline

Definition at line 40 of file MuonInsideOutValidationNtuple.h.

40{ subBlocks.push_back( SubBlock(block,name) ); }
std::pair< MuonValidationBlockBase *, std::string > SubBlock

◆ addBlock() [2/4]

void Muon::MuonValidationBlockBase::addBlock ( std::vector< float > *& block,
std::string name )
inline

Definition at line 39 of file MuonInsideOutValidationNtuple.h.

39{ block=nullptr; floatBlocks.push_back( FloatBlock(block,name) ); }
std::pair< std::reference_wrapper< std::vector< float > * >, std::string > FloatBlock

◆ addBlock() [3/4]

void Muon::MuonValidationBlockBase::addBlock ( std::vector< int > *& block,
std::string name )
inline

Definition at line 37 of file MuonInsideOutValidationNtuple.h.

37{ block=nullptr; intBlocks.push_back( IntBlock(block,name) ); }
std::pair< std::reference_wrapper< std::vector< int > * >, std::string > IntBlock

◆ addBlock() [4/4]

void Muon::MuonValidationBlockBase::addBlock ( std::vector< unsigned int > *& block,
std::string name )
inline

Definition at line 38 of file MuonInsideOutValidationNtuple.h.

38{ block=nullptr; unsignedIntBlocks.push_back( UnsignedIntBlock(block,name) ); }
std::pair< std::reference_wrapper< std::vector< unsigned int > * >, std::string > UnsignedIntBlock
std::vector< UnsignedIntBlock > unsignedIntBlocks

◆ clear()

void Muon::MuonValidationBlockBase::clear ( )

Definition at line 10 of file MuonInsideOutValidationNtuple.cxx.

10 {
11
12 // clear entries
13 for( const auto& entry : intBlocks ) entry.first.get()->clear();
14 for( const auto& entry : unsignedIntBlocks ) entry.first.get()->clear();
15 for( const auto& entry : floatBlocks ) entry.first.get()->clear();
16 for( auto entry : subBlocks ) entry.first->clear();
17
18 }

◆ init()

void Muon::MuonValidationBlockBase::init ( const std::string & prefix,
TTree * tree,
bool write = true )

Definition at line 28 of file MuonInsideOutValidationNtuple.cxx.

28 {
29
30
31 for( const auto& entry : intBlocks ) {
32 if( tree ){
33 if( write ){
34 entry.first.get() = new std::vector<int>();
35 tree->Branch( (prefix + entry.second).c_str(), entry.first.get());
36 }else{
37 tree->SetBranchAddress( (prefix + entry.second).c_str(), &entry.first.get());
38 }
39 }
40 }
41
42 for( const auto& entry : unsignedIntBlocks ) {
43 if( tree ){
44 if( write ){
45 entry.first.get() = new std::vector<unsigned int>();
46 tree->Branch( (prefix + entry.second).c_str(), entry.first.get());
47 }else{
48 tree->SetBranchAddress( (prefix + entry.second).c_str(), &entry.first.get());
49 }
50 }
51 }
52
53 for( const auto& entry : floatBlocks ) {
54 if( tree ){
55 if( write ){
56 entry.first.get() = new std::vector<float>();
57 tree->Branch( (prefix + entry.second).c_str(), entry.first.get());
58 }else{
59 tree->SetBranchAddress( (prefix + entry.second).c_str(), &entry.first.get());
60 }
61 }
62 }
63
64 for( auto entry : subBlocks ) {
65 entry.first->init(prefix + entry.second, tree, write );
66 }
67
68 }
TChain * tree

Member Data Documentation

◆ floatBlocks

std::vector< FloatBlock > Muon::MuonValidationBlockBase::floatBlocks

Definition at line 45 of file MuonInsideOutValidationNtuple.h.

◆ intBlocks

std::vector< IntBlock > Muon::MuonValidationBlockBase::intBlocks

Definition at line 43 of file MuonInsideOutValidationNtuple.h.

◆ subBlocks

std::vector< SubBlock > Muon::MuonValidationBlockBase::subBlocks

Definition at line 46 of file MuonInsideOutValidationNtuple.h.

◆ unsignedIntBlocks

std::vector< UnsignedIntBlock > Muon::MuonValidationBlockBase::unsignedIntBlocks

Definition at line 44 of file MuonInsideOutValidationNtuple.h.


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