#ifndef _L1AlgoInputSettings_h #define _L1AlgoInputSettings_h #include "CbmL1Def.h" #include "L1MaterialInfo.h" #include #include #include #include using std::istream; class L1AlgoInputSettings{ public: L1AlgoInputSettings():fGeo(10000),fRadThick(0) { }; ~L1AlgoInputSettings() { }; void SetSettings( const std::vector& geo ); const std::vector GetSettings() const { return fGeo; } bool ReadSettingsFromFile(const std::string work_dir, const int iVerbose); /// redefine new\delete for use alignment memmory void *operator new(size_t size, void *ptr) { return ::operator new(size, ptr);} void *operator new[](size_t size, void *ptr) { return ::operator new(size, ptr);} void *operator new(size_t size) { return _mm_malloc(size, 16); } void *operator new[](size_t size) { return _mm_malloc(size, 16); } void operator delete(void *ptr, size_t) { _mm_free(ptr); } void operator delete[](void *ptr, size_t) { _mm_free(ptr); } L1AlgoInputSettings( const L1AlgoInputSettings& a); const L1AlgoInputSettings& operator=( const L1AlgoInputSettings& a); std::vector GetRadThickTable() const { return fRadThick; } private: static istream& eatwhite(istream& is); // skip spaces /// read data from geo_algo.txt std::vector fGeo; // buffer for read geo data std::vector fRadThick; // material for each station } _fvecalignment; #endif // #ifndef _L1AlgoInputSettings_h