CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/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 
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 #include "DetectorDescription/Base/interface/DDTranslation.h"
00011 
00012 class DDAlgo;
00013 class AlgoPos;
00014 
00015 std::ostream & operator<<(std::ostream &, const DDAlgo &);
00016 
00017 class DDAlgo : public DDBase<DDName,AlgoPos*>
00018 {
00019 friend DDAlgo DDalgo(const DDName &, AlgoPos*);
00020 friend std::ostream & operator<<(std::ostream &, const DDAlgo &);
00021 
00022 public:
00023   DDAlgo();
00024   
00025   DDAlgo(const DDName & name);
00026   
00028   void setParameters(int start, int end, int incr,
00029                     const parS_type &, const parE_type &);
00030   
00031   /* completenes and consistency check for algorithm parameters */
00032   //bool checkParameters() const;
00033   
00035   DDTranslation translation();
00036   
00038   DDRotationMatrix rotation();
00039   
00041   int copyno() const;
00042   
00044   std::string label() const;
00045   
00048   void next();
00049   
00051   bool go() const;
00052   
00054   int start() const;
00055   
00057   int end() const;
00058   
00060   int incr() const;
00061   
00063   const parS_type & parS() const;
00064   
00066   const parE_type & parE() const;
00067   
00068 private:  
00069   DDAlgo(const DDName &, AlgoPos*);
00070   
00071 };
00072 
00074 DDAlgo DDalgo(const DDName &, AlgoPos*);
00075 #endif