CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
global_linear_1 Class Reference

#include <global_linear.h>

Inheritance diagram for global_linear_1:
AlgoImpl

Public Member Functions

bool checkParameters ()
 subclass must check the supplied parameters ParE_, ParS_ More...
 
 global_linear_1 (AlgoPos *, std::string label)
 
DDRotationMatrix rotation ()
 subclass must calculate a rotation matrix More...
 
void stream (std::ostream &) const
 
DDTranslation translation ()
 subclass must calculate a translation std::vector More...
 
 ~global_linear_1 ()
 
- Public Member Functions inherited from AlgoImpl
 AlgoImpl (AlgoPos *, std::string label)
 subclass must provide a similar constructor and call this one More...
 

Additional Inherited Members

- Protected Member Functions inherited from AlgoImpl
virtual void checkTermination ()
 for algorithms with incr_==0 the algorithm must check whether to terminate More...
 
virtual int copyno () const
 copy-number calculation More...
 
void terminate ()
 stop the current iteration of the algorithm (for incr_==0 types of algorithms) More...
 
virtual ~AlgoImpl ()
 
- Static Protected Member Functions inherited from AlgoImpl
static std::string d2s (double x)
 ahh, converts a double into a std::string ... yet another one of this kind! More...
 
- Protected Attributes inherited from AlgoImpl
const int & count_
 
const int & curr_
 
const int & end_
 
std::string & err_
 
const int & incr_
 
std::string label_
 
parE_typeParE_
 
parS_typeParS_
 
const int & start_
 
bool & terminate_
 

Detailed Description

Definition at line 66 of file global_linear.h.

Constructor & Destructor Documentation

global_linear_1::global_linear_1 ( AlgoPos a,
std::string  label 
)

Definition at line 97 of file global_linear.cc.

98  : AlgoImpl(a,label)
99 { }
AlgoImpl(AlgoPos *, std::string label)
subclass must provide a similar constructor and call this one
Definition: AlgoImpl.cc:6
global_linear_1::~global_linear_1 ( )

Definition at line 101 of file global_linear.cc.

102 { }

Member Function Documentation

bool global_linear_1::checkParameters ( )
virtual

subclass must check the supplied parameters ParE_, ParS_

whether they are correct and should select this paricular algorithm.

If the parameters are correct by should not select this particular algorithm, checkParamters must return false otherwise true.

The std::string err_ is to be used to be extended with error information in case any errors have been detected. Error information must be attached to err_ because of the possibility of already contained error information.

In case of errors: If an DDException is thrown by the algorithm implementation, further processing of any other implementations of the algorithm will be stopped. If no exception is thrown, checkParamters must return false. It's preferable not to throw an exception in case of errors. The algorithm implementation will throw if all checkParamters() of all registered algorithm implementations have returned false.

Implements AlgoImpl.

Definition at line 104 of file global_linear.cc.

References AlgoImpl::err_, AlgoImpl::ParE_, query::result, and findQualityFiles::size.

105 {
106 
107  /* besides the automatic generated checking for the input params,
108  we have to decide, whether the params are correct and should
109  select this implementation
110  */
111 
112  bool result = true;
113 
114  // check for valid delta-value
115  if (ParE_["delta"][0] == 0.) {
116  err_ += "\tdelta must not be 0\n";
117  result = false;
118  }
119 
120  // check for presence of base
121  if (ParE_["base"].size()) {
122  result = false; // don't select this implementation, because base is present
123  }
124 
125  return result;
126 
127 }
parE_type & ParE_
Definition: AlgoImpl.h:113
std::string & err_
Definition: AlgoImpl.h:120
tuple result
Definition: query.py:137
tuple size
Write out results.
DDRotationMatrix global_linear_1::rotation ( )
virtual

subclass must calculate a rotation matrix

depending on the current position curr_ in the range [start_,end_,incr_] and the user supplied parameters ParE_, ParS_

Implements AlgoImpl.

Definition at line 149 of file global_linear.cc.

150 {
151 
152  // there are no rotations involved in this algorithm.
153  // simply returns the unit matrix.
154  return DDRotationMatrix();
155 
156 }
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
void global_linear_1::stream ( std::ostream &  os) const

Definition at line 164 of file global_linear.cc.

165 {
166  os << "global_linear_0::stream(): not implemented.";
167 }
DDTranslation global_linear_1::translation ( )
virtual

subclass must calculate a translation std::vector

depending on the current position curr_ in the range [start_,end_,incr_] and the user supplied parameters ParE_, ParS_

Implements AlgoImpl.

Definition at line 130 of file global_linear.cc.

References funct::cos(), AlgoImpl::curr_, delta, evf::evtn::offset(), AlgoImpl::ParE_, phi, funct::sin(), and theta().

131 {
132 
133  // we can safely fetch all parameters, because they
134  // have been checked already ...
135  double theta = ParE_["theta"][0]/rad;
136  double phi = ParE_["phi"][0]/rad;
137  double offset = ParE_["offset"][0];
138  double delta = ParE_["delta"][0];
139 
140  DDTranslation direction( sin(theta)*cos(phi),
141  sin(theta)*sin(phi),
142  cos(theta) );
143 
144  return (offset + double(curr_)*delta)*direction;
145 
146 }
dbl * delta
Definition: mlp_gen.cc:36
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Theta< T > theta() const
parE_type & ParE_
Definition: AlgoImpl.h:113
const int & curr_
Definition: AlgoImpl.h:117
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
unsigned int offset(bool)
Definition: DDAxes.h:10