CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DDAlgo.cc
Go to the documentation of this file.
3 
4 //DDBase<DDName,AlgoPos*>::StoreT::pointer_type
5 // DDBase<DDName,AlgoPos*>::StoreT::instance_ = 0;
6 
7 std::ostream & operator<<(std::ostream & os, const DDAlgo & algo)
8 {
10  if (defined.first) {
11  os << *(defined.first) << " ";
12  if (defined.second) {
13  algo.rep().stream(os);
14  }
15  else {
16  os << "* algorithm not defined * ";
17  }
18  }
19  else {
20  os << "* algorithm not declared * ";
21  }
22  return os;
23 
24 }
25 
26 
28 { }
29 
30 
32 {
33  prep_ = StoreT::instance().create(name);
34 }
35 
36 
38 
39 {
40  prep_ = StoreT::instance().create(name,a);
41 }
42 
43 
44 
45 void DDAlgo::setParameters(int start, int end, int incr,
46  const parS_type & ps, const parE_type & pe)
47 {
48  rep().setParameters(start, end, incr, ps, pe);
49 }
50 
51 
52 int DDAlgo::start() const
53 {
54  return rep().start();
55 }
56 
57 int DDAlgo::end() const
58 {
59  return rep().end();
60 }
61 
62 int DDAlgo::incr() const
63 {
64  return rep().incr();
65 }
66 
67 const parS_type & DDAlgo::parS() const
68 {
69  return rep().parS();
70 }
71 
72 const parE_type & DDAlgo::parE() const
73 {
74  return rep().parE();
75 }
76 
77 
79 {
80  return rep().translation();
81 }
82 
83 
85 {
86  return rep().rotation();
87 }
88 
89 
90 int DDAlgo::copyno() const
91 {
92  return rep().copyno();
93 }
94 
95 
96 #include <cstdio>
97 std::string DDAlgo::label() const
98 {
99  char buffer [50];
100  /*int n =*/ sprintf(buffer,"%d",copyno());
101  return std::string(buffer);
102 }
103 
104 
106 {
107  rep().next();
108 }
109 
110 
111 bool DDAlgo::go() const
112 {
113  return rep().go();
114 }
115 
116 // friend, factory function
118 {
119  return DDAlgo(n,a);
120 }
121 
122 
123 // void DDAlgo::clear()
124 // {
125 // StoreT::instance().clear();
126 // }
Definition: DDBase.h:18
int start() const
Definition: DDAlgo.cc:52
const DDI::rep_traits< N, C >::reference rep() const
Definition: DDBase.h:95
void next()
Definition: DDAlgo.cc:105
def_type isDefined() const
Definition: DDBase.h:121
class for algorithmic positioning, represents an algorithm
Definition: AlgoPos.h:27
DDAlgo()
Definition: DDAlgo.cc:27
const parS_type & parS() const
Definition: DDAlgo.cc:67
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:18
Definition: DDAlgo.h:21
const parE_type & parE() const
Definition: DDAlgo.cc:72
bool go() const
Definition: DDAlgo.cc:111
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
DDAlgo DDalgo(const DDName &, AlgoPos *)
Definition: DDAlgo.cc:117
static value_type & instance()
int copyno() const
Definition: DDAlgo.cc:90
DDRotationMatrix rotation()
Definition: DDAlgo.cc:84
std::map< std::string, std::vector< std::string > > parS_type
Definition: DDAlgoPar.h:9
#define end
Definition: vmac.h:38
int incr() const
Definition: DDAlgo.cc:62
double a
Definition: hdecay.h:121
std::string label() const
Definition: DDAlgo.cc:97
DDTranslation translation()
Definition: DDAlgo.cc:78
void setParameters(int start, int end, int incr, const parS_type &, const parE_type &)
Definition: DDAlgo.cc:45
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
std::map< std::string, std::vector< double > > parE_type
Definition: DDAlgoPar.h:12
int end() const
Definition: DDAlgo.cc:57