CMS 3D CMS Logo

ALIPlane.cc
Go to the documentation of this file.
1 // COCOA class implementation file
2 //Id: ALIPlane.cc
3 //CAT: Fit
4 //
5 // History: v1.0
6 // Pedro Arce
7 
11 
12 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
13 //@@ Constructor
14 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
15 ALIPlane::ALIPlane(const CLHEP::Hep3Vector& point, const CLHEP::Hep3Vector& normal) : _point(point) {
16  _normal = normal * (1. / normal.mag());
17  if (ALIUtils::debug >= 5) {
18  ALIUtils::dump3v(_point, " Created ALIplane: point");
19  ALIUtils::dump3v(_normal, " Created ALIPlane: normal");
20  }
21 }
22 
23 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
24 //@@ Project a std::vector onto this plane:
25 //@@ Project on normal to plane and substract this projection to vec
26 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
27 CLHEP::Hep3Vector ALIPlane::project(const CLHEP::Hep3Vector& vec) {
28  //---------- Project vec on normal to plane
29  ALIdouble proj = vec.dot(_normal) * (1. / vec.mag());
30  //---------- Substract this projection to vec
31  CLHEP::Hep3Vector vecproj = vec - (proj * _normal);
32  //- ALIUtils::dump3v( _normal, "plane _normal");
33  //- std::cout << " proj on normal " << proj << std::endl;
34  //- ALIUtils::dump3v( vec , "std::vector");
35  return vecproj;
36 }
37 
38 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
39 //@@ Project a std::vector onto this plane:
40 //@@ Project on normal to plane and substract this projection to vec
41 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
42 ALILine ALIPlane::lineProject(const CLHEP::Hep3Vector& vec) {
43  //---------- Project vec on normal to plane
44  ALIdouble proj = vec.dot(_normal) * (1. / vec.mag());
45  //---------- Substract this projection to vec
46  CLHEP::Hep3Vector vecproj = vec - (proj * _normal);
47  //- ALIUtils::dump3v( _normal, "plane _normal");
48  //- std::cout << " proj on normal " << proj << std::endl;
49  //- ALIUtils::dump3v( vec , "std::vector");
50  return ALILine(this->_point, vecproj);
51 }
long double ALIdouble
Definition: CocoaGlobals.h:11
CLHEP::Hep3Vector _normal
Definition: ALIPlane.h:27
static ALIint debug
Definition: ALIUtils.h:34
CLHEP::Hep3Vector _point
Definition: ALIPlane.h:23
CLHEP::Hep3Vector project(const CLHEP::Hep3Vector &vec)
Definition: ALIPlane.cc:27
static void dump3v(const CLHEP::Hep3Vector &vec, const std::string &msg)
Definition: ALIUtils.cc:58
ALILine lineProject(const CLHEP::Hep3Vector &vec)
Definition: ALIPlane.cc:42
ALIPlane(const CLHEP::Hep3Vector &point, const CLHEP::Hep3Vector &normal)
Definition: ALIPlane.cc:15
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
const CLHEP::Hep3Vector & normal() const
Definition: ALIPlane.h:23