g4tools  5.4.0
vfind
Go to the documentation of this file.
1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
2 // See the file tools.license for terms.
3 
4 #ifndef tools_vfind
5 #define tools_vfind
6 
7 #include <vector>
8 #include <string>
9 
10 namespace tools {
11 
12 template <class T>
13 inline T* find_named(const std::vector<T*>& a_vec,const std::string& a_name) {
14  typedef typename std::vector<T*>::const_iterator it_t;
15  it_t it;
16  for(it=a_vec.begin();it!=a_vec.end();++it) {
17  if((*it)->name()==a_name) return *it;
18  }
19  return 0;
20 }
21 
22 template <class T>
23 inline const T* find_obj_named(const std::vector<T>& a_vec,const std::string& a_name) { //used in hep/pdgs.
24  typedef typename std::vector<T>::const_iterator it_t;
25  it_t it;
26  for(it=a_vec.begin();it!=a_vec.end();++it) {
27  if((*it).name()==a_name) return &(*it);
28  }
29  return 0;
30 }
31 template <class T>
32 inline T* find_obj_named(std::vector<T>& a_vec,const std::string& a_name) { //used in hep/pdgs.
33  typedef typename std::vector<T>::iterator it_t;
34  it_t it;
35  for(it=a_vec.begin();it!=a_vec.end();++it) {
36  if((*it).name()==a_name) return &(*it);
37  }
38  return 0;
39 }
40 
41 }
42 
43 #include "touplow"
44 
45 namespace tools {
46 
47 template <class T>
48 inline T* find_named_case_insensitive(const std::vector<T*>& a_vec,const std::string& a_name) {
49  std::string low_a_name = a_name;
50  tolowercase(low_a_name);
51  std::string low_name;
52  typedef typename std::vector<T*>::const_iterator it_t;
53  it_t it;
54  for(it=a_vec.begin();it!=a_vec.end();++it) {
55  low_name = (*it)->name();
56  tolowercase(low_name);
57  if(low_name==low_a_name) return *it;
58  }
59  return 0;
60 }
61 
62 }
63 
64 #endif
tools::find_named_case_insensitive
T * find_named_case_insensitive(const std::vector< T * > &a_vec, const std::string &a_name)
Definition: vfind:48
tools::find_named
T * find_named(const std::vector< T * > &a_vec, const std::string &a_name)
Definition: vfind:13
touplow
tools::tolowercase
void tolowercase(std::string &a_string)
Definition: touplow:11
tools::find_obj_named
const T * find_obj_named(const std::vector< T > &a_vec, const std::string &a_name)
Definition: vfind:23
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26