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 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
14 //@@ Constructor
15 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
16 ALIPlane::ALIPlane( const CLHEP::Hep3Vector& point, const CLHEP::Hep3Vector& normal )
17 : _point(point)
18 {
19  _normal = normal * (1. / normal.mag());
20  if (ALIUtils::debug >= 5) {
21  ALIUtils::dump3v( _point, " Created ALIplane: point");
22  ALIUtils::dump3v( _normal, " Created ALIPlane: normal");
23  }
24 }
25 
26 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
27 //@@ Project a std::vector onto this plane:
28 //@@ Project on normal to plane and substract this projection to vec
29 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
30 CLHEP::Hep3Vector ALIPlane::project( const CLHEP::Hep3Vector& vec )
31 {
32  //---------- Project vec on normal to plane
33  ALIdouble proj = vec.dot(_normal) * (1. / vec.mag() );
34  //---------- Substract this projection to vec
35  CLHEP::Hep3Vector vecproj = vec - (proj * _normal);
36  //- ALIUtils::dump3v( _normal, "plane _normal");
37  //- std::cout << " proj on normal " << proj << std::endl;
38  //- ALIUtils::dump3v( vec , "std::vector");
39  return vecproj;
40 }
41 
42 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
43 //@@ Project a std::vector onto this plane:
44 //@@ Project on normal to plane and substract this projection to vec
45 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
46 ALILine ALIPlane::lineProject( const CLHEP::Hep3Vector& vec )
47 {
48  //---------- Project vec on normal to plane
49  ALIdouble proj = vec.dot(_normal) * (1. / vec.mag() );
50  //---------- Substract this projection to vec
51  CLHEP::Hep3Vector vecproj = vec - (proj * _normal);
52  //- ALIUtils::dump3v( _normal, "plane _normal");
53  //- std::cout << " proj on normal " << proj << std::endl;
54  //- ALIUtils::dump3v( vec , "std::vector");
55  return ALILine( this->_point, vecproj );
56 }
57 
long double ALIdouble
Definition: CocoaGlobals.h:11
CLHEP::Hep3Vector _normal
Definition: ALIPlane.h:28
static ALIint debug
Definition: ALIUtils.h:36
CLHEP::Hep3Vector _point
Definition: ALIPlane.h:24
CLHEP::Hep3Vector project(const CLHEP::Hep3Vector &vec)
Definition: ALIPlane.cc:30
static void dump3v(const CLHEP::Hep3Vector &vec, const std::string &msg)
Definition: ALIUtils.cc:61
ALILine lineProject(const CLHEP::Hep3Vector &vec)
Definition: ALIPlane.cc:46
ALIPlane(const CLHEP::Hep3Vector &point, const CLHEP::Hep3Vector &normal)
Definition: ALIPlane.cc:16
*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