27 using std::runtime_error;
31 using namespace hippodraw;
73 vector < string > labels;
74 vector < double > values;
75 m_file -> fillColumnNames ( labels );
76 unsigned int size = labels.size ();
77 for (
unsigned int i = 0; i <
size; i++ ) {
78 const string & label = labels [i];
84 m_dups.push_back ( label );
100 return m_file -> getNumberOfRows ();
108 return dc ->
size ();
117 vector < intptr_t >
shape;
121 std::size_t
size = data_column ->
size ();
122 vector < double > &
data = data_column -> getData ();
123 data.resize ( size );
124 int status =
m_file -> fillDoubleVectorFromColumn ( data, column );
164 if ( data.empty () ) {
172 const vector < double > &
179 const vector < double > &
data = dc -> getData ();
180 if ( data.empty () ) {
188 const std::vector < double > &
205 bool isValid =
true;;
208 if ( data.empty () ) {
211 if ( status != 0 ) isValid =
false;
214 range.
setRange ( data.begin(), data.end() );
224 string what (
"FitsNTuple: The column label `" );
226 what +=
"' already exists in this DataSource.";
227 throw runtime_error ( what );
234 const std::vector < double > &
column )
236 unsigned int size = column.size ();
237 const vector < intptr_t >
shape ( 1, size );
239 return addColumn ( label, column, shape );
247 const std::vector < double > &
column,
248 const std::vector < intptr_t > &
shape )
254 column.empty() == false ) {
255 unsigned int old_size =
rows ();
256 unsigned int new_size = shape[0];
258 if ( old_size != 0 && old_size != new_size ) {
259 string what (
"FitsNTuple Attempt to add a column whose size"
260 " is not equal to other columns." );
261 throw runtime_error ( what );
267 if ( column.empty () == false ) {
281 int size = data.size();
282 const vector < intptr_t >
shape ( 1, size );
290 const std::vector < double > &
data,
291 const std::vector < intptr_t > &
shape )
294 if ( index >= size ) {
295 string what (
"FitsNTuple: Attempt to replace column " );
297 what +=
" with only ";
299 what +=
" columns in data source.";
300 throw runtime_error ( what );
303 unsigned int new_size = data.size ();
304 if ( size != 0 && size != new_size ) {
306 (
"FitsNTuple: Attempt to replace column with one whose "
307 "size is not equal to other columns." );
308 throw runtime_error ( what );
311 vector < double > & pvec = dc -> getData ();
312 pvec.resize ( new_size );
313 std::copy ( data.begin(), data.end (), pvec.begin () );
322 const std::vector < double > &
data,
323 const std::vector < intptr_t > &
shape )
325 unsigned int index =
indexOf ( label );
337 const vector < unsigned int > &