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
00032
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