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