ATLAS Offline Software
Public Types | Public Member Functions | Public Attributes | List of all members
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) ); }

◆ 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) ); }

◆ 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) ); }

◆ 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) ); }

◆ 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  }

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:
Muon::MuonValidationBlockBase::floatBlocks
std::vector< FloatBlock > floatBlocks
Definition: MuonInsideOutValidationNtuple.h:45
Muon::MuonValidationBlockBase::UnsignedIntBlock
std::pair< std::reference_wrapper< std::vector< unsigned int > * >, std::string > UnsignedIntBlock
Definition: MuonInsideOutValidationNtuple.h:29
tree
TChain * tree
Definition: tile_monitor.h:30
Muon::MuonValidationBlockBase::intBlocks
std::vector< IntBlock > intBlocks
Definition: MuonInsideOutValidationNtuple.h:43
Muon::MuonValidationBlockBase::IntBlock
std::pair< std::reference_wrapper< std::vector< int > * >, std::string > IntBlock
Definition: MuonInsideOutValidationNtuple.h:28
Muon::MuonValidationBlockBase::SubBlock
std::pair< MuonValidationBlockBase *, std::string > SubBlock
Definition: MuonInsideOutValidationNtuple.h:31
Muon::MuonValidationBlockBase::unsignedIntBlocks
std::vector< UnsignedIntBlock > unsignedIntBlocks
Definition: MuonInsideOutValidationNtuple.h:44
Muon::MuonValidationBlockBase::subBlocks
std::vector< SubBlock > subBlocks
Definition: MuonInsideOutValidationNtuple.h:46
Muon::MuonValidationBlockBase::FloatBlock
std::pair< std::reference_wrapper< std::vector< float > * >, std::string > FloatBlock
Definition: MuonInsideOutValidationNtuple.h:30
python.ByteStreamConfig.write
def write
Definition: Event/ByteStreamCnvSvc/python/ByteStreamConfig.py:248
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192