Go to the documentation of this file.00001 #include "DetectorDescription/Core/interface/DDAlgo.h"
00002 #include "DetectorDescription/ExprAlgo/interface/AlgoPos.h"
00003
00004
00005
00006
00007 std::ostream & operator<<(std::ostream & os, const DDAlgo & algo)
00008 {
00009 DDBase<DDName,AlgoPos*>::def_type defined(algo.isDefined());
00010 if (defined.first) {
00011 os << *(defined.first) << " ";
00012 if (defined.second) {
00013 algo.rep().stream(os);
00014 }
00015 else {
00016 os << "* algorithm not defined * ";
00017 }
00018 }
00019 else {
00020 os << "* algorithm not declared * ";
00021 }
00022 return os;
00023
00024 }
00025
00026
00027 DDAlgo::DDAlgo() : DDBase<DDName,AlgoPos*>()
00028 { }
00029
00030
00031 DDAlgo::DDAlgo(const DDName & name) : DDBase<DDName,AlgoPos*>()
00032 {
00033 prep_ = StoreT::instance().create(name);
00034 }
00035
00036
00037 DDAlgo::DDAlgo(const DDName & name, AlgoPos * a) : DDBase<DDName,AlgoPos*>()
00038
00039 {
00040 prep_ = StoreT::instance().create(name,a);
00041 }
00042
00043
00044
00045 void DDAlgo::setParameters(int start, int end, int incr,
00046 const parS_type & ps, const parE_type & pe)
00047 {
00048 rep().setParameters(start, end, incr, ps, pe);
00049 }
00050
00051
00052 int DDAlgo::start() const
00053 {
00054 return rep().start();
00055 }
00056
00057 int DDAlgo::end() const
00058 {
00059 return rep().end();
00060 }
00061
00062 int DDAlgo::incr() const
00063 {
00064 return rep().incr();
00065 }
00066
00067 const parS_type & DDAlgo::parS() const
00068 {
00069 return rep().parS();
00070 }
00071
00072 const parE_type & DDAlgo::parE() const
00073 {
00074 return rep().parE();
00075 }
00076
00077
00078 DDTranslation DDAlgo::translation()
00079 {
00080 return rep().translation();
00081 }
00082
00083
00084 DDRotationMatrix DDAlgo::rotation()
00085 {
00086 return rep().rotation();
00087 }
00088
00089
00090 int DDAlgo::copyno() const
00091 {
00092 return rep().copyno();
00093 }
00094
00095
00096 #include <cstdio>
00097 std::string DDAlgo::label() const
00098 {
00099 char buffer [50];
00100 sprintf(buffer,"%d",copyno());
00101 return std::string(buffer);
00102 }
00103
00104
00105 void DDAlgo::next()
00106 {
00107 rep().next();
00108 }
00109
00110
00111 bool DDAlgo::go() const
00112 {
00113 return rep().go();
00114 }
00115
00116
00117 DDAlgo DDalgo(const DDName & n, AlgoPos * a)
00118 {
00119 return DDAlgo(n,a);
00120 }
00121
00122
00123
00124
00125
00126