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
00011
00012
00013 #include "DetectorDescription/Base/interface/DDTranslation.h"
00014
00015 class DDAlgo;
00016 class AlgoPos;
00017
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
00036
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
00073 private:
00074 DDAlgo(const DDName &, AlgoPos*);
00075
00076 };
00077
00079 DDAlgo DDalgo(const DDName &, AlgoPos*);
00080 #endif