CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/DetectorDescription/Core/interface/DDAlgo.h

Go to the documentation of this file.
00001 #ifndef DDAlgo_h
00002 #define DDAlgo_h
00003 
00004 #include <iostream>
00005 //#include "DetectorDescription/Core/interface/DDRegistered.h"
00006 #include "DetectorDescription/Core/interface/DDTransform.h"
00007 #include "DetectorDescription/Base/interface/DDAlgoPar.h"
00008 #include "DetectorDescription/Core/interface/DDName.h"
00009 #include "DetectorDescription/Core/interface/DDBase.h"
00010 
00011 // Let's take AlgoPos to be the implementation class of DDAlgo-interface
00012 //#include "DetectorDescription/ExprAlgo/interface/AlgoPos.h"
00013 #include "DetectorDescription/Base/interface/DDTranslation.h"
00014 
00015 class DDAlgo;
00016 class AlgoPos;
00017 //namespace DDI { class DDAlgoPos; }
00018 
00019 std::ostream & operator<<(std::ostream &, const DDAlgo &);
00020 
00021 class DDAlgo : public DDBase<DDName,AlgoPos*>
00022 {
00023 friend DDAlgo DDalgo(const DDName &, AlgoPos*);
00024 friend std::ostream & operator<<(std::ostream &, const DDAlgo &);
00025 
00026 public:
00027   DDAlgo();
00028   
00029   DDAlgo(const DDName & name);
00030   
00032   void setParameters(int start, int end, int incr,
00033                     const parS_type &, const parE_type &);
00034   
00035   /* completenes and consistency check for algorithm parameters */
00036   //bool checkParameters() const;
00037   
00039   DDTranslation translation();
00040   
00042   DDRotationMatrix rotation();
00043   
00045   int copyno() const;
00046   
00048   std::string label() const;
00049   
00052   void next();
00053   
00055   bool go() const;
00056   
00058   int start() const;
00059   
00061   int end() const;
00062   
00064   int incr() const;
00065   
00067   const parS_type & parS() const;
00068   
00070   const parE_type & parE() const;
00071   
00072 /*   static void clear(); */
00073 private:  
00074   DDAlgo(const DDName &, AlgoPos*);
00075   
00076 };
00077 
00079 DDAlgo DDalgo(const DDName &, AlgoPos*);
00080 #endif