CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/Alignment/MillePedeAlignmentAlgorithm/src/PedeReader.h

Go to the documentation of this file.
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