#include <vector>
#include <map>
#include <string>
#include <functional>
#include <iosfwd>
#include <cmath>
#include "Identifier/Identifier.h"
#include "AthenaKernel/CLASS_DEF.h"
Go to the source code of this file.
◆ operator<<()
| std::ostream & operator<< |
( |
std::ostream & | os, |
|
|
const FloatArrayStore & | store ) |
Definition at line 39 of file FloatArrayStore.cxx.
39 {
40 os <<
store.tag() << std::endl ;
41
42
43 std::map<int, std::vector<Identifier> > indextoidentmap ;
44 for(auto it : store)
45 indextoidentmap[
it.second].push_back(
it.first) ;
46
47 os << indextoidentmap.size() << std::endl ;
48
49
50 for( std::map<
int, std::vector<Identifier> >
::const_iterator it = indextoidentmap.begin() ;
51 it != indextoidentmap.end(); ++it) {
52 os <<
it->second.size() <<
" " ;
53 for(
auto vit :
it->second)
55 const std::vector<float>&
data =
store[
it->second.front()] ;
60 }
62}
char data[hepevt_bytes_allocation_ATLAS]
◆ operator>>()
Definition at line 64 of file FloatArrayStore.cxx.
64 {
70 std::vector<float>
data(0) ;
71 constexpr int maxLines=2000000;
72 constexpr int maxSize=2000000;
73 int nlines ;
74 is >> nlines ;
75 if ((nlines>=0) and (nlines<maxLines)) {
76 for(int iline = 0; iline <nlines; ++iline) {
77 int size ;
78 is >> size ;
79 if ((size>=0) and (size<maxSize)){
82 }
83 else {
85 log << MSG::ERROR <<
"size of identifier is incorrect" <<
endmsg;
86 return is;
87 }
88 is >> size ;
89 if ((size>=0) and (size<maxSize)){
91 for(
int i=0; i<size; ++i) is >> (
data[
i]) ;
92 }
93 else {
95 log << MSG::ERROR <<
"size of data is incorrect" <<
endmsg;
96 return is;
97 }
102 }
103 }
104 return is ;
105}
class FloatArrayStore Access and manipulate an indexed storage of float vectors
IMessageSvc * getMessageSvc(bool quiet=false)
std::vector< Identifier > identifiers(const InDetSimDataCollection &coll)