00001 #ifndef MILLEPEDEPEDEREADER_H 00002 #define MILLEPEDEPEDEREADER_H 00003 00016 #include <fstream> 00017 #include <vector> 00018 00019 class PedeSteerer; 00020 class PedeLabeler; 00021 class Alignable; 00022 class AlignmentParameters; 00023 00024 namespace edm { 00025 class ParameterSet; 00026 } 00027 00028 /*************************************** 00029 ****************************************/ 00030 class PedeReader 00031 { 00032 public: 00033 PedeReader(const edm::ParameterSet &config, const PedeSteerer &steerer, 00034 const PedeLabeler &labels); 00036 ~PedeReader() {} 00039 bool read(std::vector<Alignable*> &alignables, bool setUserVars); 00042 template<class T> 00043 bool readIfSameLine(std::ifstream &aStream, T &outValue) const; 00046 Alignable* setParameter(unsigned int paramLabel, unsigned int bufLength, float *buf, 00047 bool setUserVars) const; 00050 AlignmentParameters* checkAliParams(Alignable *alignable, bool createUserVars) const; 00051 private: 00052 // PedeReader() {} // no default ctr. 00053 00054 std::ifstream myPedeResult; 00055 const PedeSteerer &mySteerer; 00056 const PedeLabeler &myLabels; 00057 00058 static const unsigned int myMaxNumValPerParam; 00059 }; 00060 00061 #endif