CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/DetectorDescription/ExprAlgo/interface/AlgoImpl.h

Go to the documentation of this file.
00001 #ifndef ExpAlgo_AlgoImpl_h
00002 #define ExpAlgo_AlgoImpl_h
00003 
00004 #include "DetectorDescription/Base/interface/DDRotationMatrix.h"
00005 #include "DetectorDescription/Base/interface/DDTranslation.h"
00006 #include "DetectorDescription/Base/interface/DDAlgoPar.h"
00007 #include <string>
00008 
00009 
00010 class AlgoPos;
00011 
00013 
00019 class AlgoImpl 
00020 { 
00021   friend class AlgoPos;
00022 public:
00024   AlgoImpl(AlgoPos*, std::string label);
00025   
00026 protected:  
00027   virtual ~AlgoImpl();
00028   
00030 
00034   virtual DD3Vector translation() = 0;
00035   
00037 
00041   virtual DDRotationMatrix rotation() = 0;
00042     
00044 
00062   virtual bool checkParameters() = 0;
00063   
00065 
00079   void terminate();
00080   
00082 
00089   virtual int copyno() const;
00090   
00092 
00107   virtual void checkTermination();
00108    
00110   static std::string d2s(double x);
00111  
00112   parS_type & ParS_; 
00113   parE_type & ParE_;
00114   const int & start_;
00115   const int & end_; 
00116   const int & incr_;
00117   const int & curr_;
00118   const int & count_;
00119   bool & terminate_;
00120   std::string & err_;
00121   std::string label_;
00122 };
00123 
00124 #endif