ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
top::TreeFilter Class Reference

#include <TreeFilter.h>

Collaboration diagram for top::TreeFilter:

Public Member Functions

 TreeFilter ()
 
 TreeFilter (const std::string &longstring)
 
void init (const std::string &longstring)
 
bool filterTree (const std::string &treename) const
 

Private Attributes

std::vector< std::string > m_vecFilters
 

Detailed Description

Definition at line 13 of file TreeFilter.h.

Constructor & Destructor Documentation

◆ TreeFilter() [1/2]

top::TreeFilter::TreeFilter ( )

Definition at line 15 of file TreeFilter.cxx.

15 {}

◆ TreeFilter() [2/2]

top::TreeFilter::TreeFilter ( const std::string &  longstring)

Definition at line 17 of file TreeFilter.cxx.

17  {
18  init(longstring);
19  }

Member Function Documentation

◆ filterTree()

bool top::TreeFilter::filterTree ( const std::string &  treename) const

Definition at line 40 of file TreeFilter.cxx.

40  {
41 
42  for (const std::string& filter : m_vecFilters) {
43  // check for a match
44  std::smatch match;
45  std::regex_search(treename, match, std::regex("^"+filter));
46  if (!match.empty()) return false;
47  }
48 
49 
50  return true;
51  }

◆ init()

void top::TreeFilter::init ( const std::string &  longstring)

Definition at line 21 of file TreeFilter.cxx.

21  {
22  std::vector<std::string> helpvec_str;
23  tokenize(longstring, helpvec_str, ",");
24 
25  m_vecFilters.clear();
26  for (const std::string& x : helpvec_str) {
27  std::istringstream isstr(x);
28  std::copy(std::istream_iterator<std::string>(isstr),
29  std::istream_iterator<std::string>(), std::back_inserter(m_vecFilters));
30  }
31 
32  for (std::string& filter : m_vecFilters) {
33  // replace "*" with ".*"
34  filter = regex_replace(filter, std::regex("\\*"), ".*");
35  }
36 
37 
38  }

Member Data Documentation

◆ m_vecFilters

std::vector<std::string> top::TreeFilter::m_vecFilters
private

Definition at line 15 of file TreeFilter.h.


The documentation for this class was generated from the following files:
top::tokenize
void tokenize(const std::string &input, Container &output, const std::string &delimiters=" ", bool trim_empty=false)
Tokenize an input string using a set of delimiters.
Definition: Tokenize.h:24
x
#define x
covarianceTool.filter
filter
Definition: covarianceTool.py:514
PrepareReferenceFile.regex
regex
Definition: PrepareReferenceFile.py:43
top::TreeFilter::init
void init(const std::string &longstring)
Definition: TreeFilter.cxx:21
top::TreeFilter::m_vecFilters
std::vector< std::string > m_vecFilters
Definition: TreeFilter.h:15
calibdata.copy
bool copy
Definition: calibdata.py:27
match
bool match(std::string s1, std::string s2)
match the individual directories of two strings
Definition: hcg.cxx:356