Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/g4tools/include/tools/wroot/base_pntuple

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/g4tools/include/tools/wroot/base_pntuple (Version 11.3.0) and /externals/g4tools/include/tools/wroot/base_pntuple (Version 11.0.p3,)


  1 // Copyright (C) 2010, Guy Barrand. All rights    
  2 // See the file tools.license for terms.          
  3                                                   
  4 #ifndef tools_wroot_base_pntuple                  
  5 #define tools_wroot_base_pntuple                  
  6                                                   
  7 // pntuple = for parallel ntupling.               
  8                                                   
  9 #include "branch_element"                         
 10 #include "icol"                                   
 11                                                   
 12 #include "../vfind"                               
 13                                                   
 14 #ifdef TOOLS_MEM                                  
 15 #include "../mem"                                 
 16 #endif                                            
 17                                                   
 18 namespace tools {                                 
 19 namespace wroot {                                 
 20                                                   
 21 class base_pntuple {                              
 22 #ifdef TOOLS_MEM                                  
 23   static const std::string& s_class() {           
 24     static const std::string s_v("tools::wroot    
 25     return s_v;                                   
 26   }                                               
 27 #endif                                            
 28 public:                                           
 29                                                   
 30 #include "columns.icc"                            
 31                                                   
 32 public:                                           
 33   base_pntuple(std::ostream& a_out,seek a_seek    
 34   :m_out(a_out)                                   
 35   ,m_seek_directory(a_seek_directory)             
 36   ,m_name(a_name)                                 
 37   ,m_title(a_title)                               
 38   {                                               
 39 #ifdef TOOLS_MEM                                  
 40     mem::increment(s_class().c_str());            
 41 #endif                                            
 42   }                                               
 43                                                   
 44   virtual ~base_pntuple() {                       
 45     safe_clear<icol>(m_cols);                     
 46 #ifdef TOOLS_MEM                                  
 47     mem::decrement(s_class().c_str());            
 48 #endif                                            
 49   }                                               
 50 protected:                                        
 51   base_pntuple(const base_pntuple& a_from):m_o    
 52 #ifdef TOOLS_MEM                                  
 53     mem::increment(s_class().c_str());            
 54 #endif                                            
 55   }                                               
 56   base_pntuple& operator=(const base_pntuple&)    
 57 public:                                           
 58   const std::vector<icol*>& columns() const {r    
 59                                                   
 60   template <class T>                              
 61   column_ref<T>* find_column_ref(const std::st    
 62     icol* col = find_named<icol>(m_cols,a_name    
 63     if(!col) return 0;                            
 64     return id_cast<icol, column_ref<T> >(*col)    
 65   }                                               
 66                                                   
 67   template <class T>                              
 68   column<T>* find_column(const std::string& a_    
 69     icol* col = find_named<icol>(m_cols,a_name    
 70     if(!col) return 0;                            
 71     return id_cast<icol, column<T> >(*col);       
 72   }                                               
 73                                                   
 74   column_string_ref* find_column_string_ref(co    
 75     icol* col = find_named<icol>(m_cols,a_name    
 76     if(!col) return 0;                            
 77     return id_cast<icol, column_string_ref >(*    
 78   }                                               
 79                                                   
 80   column_string* find_column_string(const std:    
 81     icol* col = find_named<icol>(m_cols,a_name    
 82     if(!col) return 0;                            
 83     return id_cast<icol, column_string >(*col)    
 84   }                                               
 85                                                   
 86   template <class T>                              
 87   std_vector_column_ref<T>* find_column_vector    
 88     icol* col = find_named<icol>(m_cols,a_name    
 89     if(!col) return 0;                            
 90     return id_cast<icol, std_vector_column_ref    
 91   }                                               
 92                                                   
 93   template <class T>                              
 94   std_vector_column<T>* find_column_vector(con    
 95     icol* col = find_named<icol>(m_cols,a_name    
 96     if(!col) return 0;                            
 97     return id_cast<icol, std_vector_column<T>     
 98   }                                               
 99                                                   
100   column_vector_string_ref* find_column_vector    
101     icol* col = find_named<icol>(m_cols,a_name    
102     if(!col) return 0;                            
103     return id_cast<icol, column_vector_string_    
104   }                                               
105                                                   
106   column_vector_string* find_column_vector_str    
107     icol* col = find_named<icol>(m_cols,a_name    
108     if(!col) return 0;                            
109     return id_cast<icol, column_vector_string     
110   }                                               
111                                                   
112   void print_columns(std::ostream& a_out) {       
113     a_out << "for ntuple named " << sout(m_nam    
114     tools_vforit(icol*,m_cols,it) {               
115       a_out << " " << (*it)->name() << std::en    
116     }                                             
117   }                                               
118                                                   
119   //void set_basket_size(uint32 a_size) {tools    
120                                                   
121 protected:                                        
122   std::ostream& m_out;                            
123   seek m_seek_directory;                          
124   std::string m_name;                             
125   std::string m_title;                            
126   std::vector<icol*> m_cols;                      
127 };                                                
128                                                   
129 }}                                                
130                                                   
131 #endif