APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
GeometryHelper.h
Go to the documentation of this file.
1 /*
3  *
4  * GeometryHelper.h header template automatically generated by a class generator
5  * Creation date : jeu. avr. 9 2015
6  *
7  * This file is part of APRILContent libraries.
8  *
9  * APRILContent is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  * based upon these libraries are permitted. Any copy of these libraries
14  * must include this copyright notice.
15  *
16  * APRILContent is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with APRILContent. If not, see <http://www.gnu.org/licenses/>.
23  *
24  * @author Remi Ete
25  * @copyright CNRS , IPNL
26  */
27 
28 
29 #ifndef GEOMETRYHELPER_H
30 #define GEOMETRYHELPER_H
31 
32 #include "Pandora/PandoraInternal.h"
33 #include "Pandora/Pandora.h"
34 #include "Pandora/StatusCodes.h"
35 #include "Objects/CartesianVector.h"
36 #include "Pandora/PandoraEnumeratedTypes.h"
37 
38 namespace april_content
39 {
40 
45 {
46 public:
56  static pandora::StatusCode GetClosestDistanceBetweenLines(const pandora::CartesianVector &point1, const pandora::CartesianVector &direction1,
57  const pandora::CartesianVector &point2, const pandora::CartesianVector &direction2, float &distance);
58 
67  static pandora::StatusCode GetClosestDistanceToLine(const pandora::CartesianVector &point1, const pandora::CartesianVector &direction1,
68  const pandora::CartesianVector &point2, float &impactParameter);
69 
78  static pandora::StatusCode GetProjectionOnLine(const pandora::CartesianVector &linePoint, const pandora::CartesianVector &direction,
79  const pandora::CartesianVector &point, pandora::CartesianVector &projection);
80 
91  static pandora::StatusCode GetCrossingPointsBetweenLines(const pandora::CartesianVector &point1, const pandora::CartesianVector &direction1,
92  const pandora::CartesianVector &point2, const pandora::CartesianVector &direction2,
93  pandora::CartesianVector &crossingPoint1, pandora::CartesianVector &crossingPoint2);
94 
108  static pandora::StatusCode GetLinePlaneCrossingPoint(const pandora::CartesianVector &linePoint, const pandora::CartesianVector &lineDirection,
109  float planeA, float planeB, float planeC, float planeD, pandora::CartesianVector &crossingPoint);
110 
117  static pandora::StatusCode GetECalHCalEndCapGapSize(const pandora::Pandora &pandora, float &gapSize);
118 
125  static pandora::StatusCode GetECalHCalBarrelGapSize(const pandora::Pandora &pandora, float &gapSize);
126 
133  static pandora::StatusCode GetTrackerECalEndCapGapSize(const pandora::Pandora &pandora, float &gapSize);
134 
141  static pandora::StatusCode GetTrackerECalBarrelGapSize(const pandora::Pandora &pandora, float &gapSize);
142 
151  static pandora::StatusCode GetEndcapGapSeparation(const pandora::Pandora &pandora, const pandora::CaloHit *const pEcalCaloHit,
152  const pandora::CaloHit *const pHcalCaloHit, float &gapSeparation);
153 
162  static pandora::StatusCode GetBarrelGapSeparation(const pandora::Pandora &pandora, const pandora::CaloHit *const pEcalCaloHit,
163  const pandora::CaloHit *const pHcalCaloHit, float &gapSeparation);
164 
173  static pandora::StatusCode GetOuterNormaleVector(const pandora::Pandora &pandora, pandora::SubDetectorType type, const pandora::CartesianVector &point,
174  pandora::CartesianVector &normaleVector);
175 
184  static pandora::StatusCode GetInnerNormaleVector(const pandora::Pandora &pandora, pandora::SubDetectorType type, const pandora::CartesianVector &point,
185  pandora::CartesianVector &normaleVector);
186 
194  static pandora::StatusCode GetProjectionOnHelix(const pandora::Helix &helix, const pandora::CartesianVector &point, pandora::CartesianVector &projection);
195 
203  static pandora::StatusCode GetDistanceToHelix(const pandora::Helix &helix, const pandora::CartesianVector &point, float &distanceToHelix);
204 };
205 
206 }
207 
208 #endif // GEOMETRYHELPER_H
static pandora::StatusCode GetECalHCalBarrelGapSize(const pandora::Pandora &pandora, float &gapSize)
Get the gap size between the ECal barrel and the HCal barrel.
Definition: GeometryHelper.cc:183
static pandora::StatusCode GetProjectionOnLine(const pandora::CartesianVector &linePoint, const pandora::CartesianVector &direction, const pandora::CartesianVector &point, pandora::CartesianVector &projection)
Get the projection of a point on the line.
Definition: GeometryHelper.cc:98
static pandora::StatusCode GetClosestDistanceBetweenLines(const pandora::CartesianVector &point1, const pandora::CartesianVector &direction1, const pandora::CartesianVector &point2, const pandora::CartesianVector &direction2, float &distance)
Get the closest distance between the two lines.
Definition: GeometryHelper.cc:39
static pandora::StatusCode GetDistanceToHelix(const pandora::Helix &helix, const pandora::CartesianVector &point, float &distanceToHelix)
Get the distance between a point and the helix.
Definition: GeometryHelper.cc:413
GeometryHelper class.
Definition: GeometryHelper.h:44
static pandora::StatusCode GetTrackerECalBarrelGapSize(const pandora::Pandora &pandora, float &gapSize)
Get the gap size between the tracker and ECal barrel.
Definition: GeometryHelper.cc:213
static pandora::StatusCode GetClosestDistanceToLine(const pandora::CartesianVector &point1, const pandora::CartesianVector &direction1, const pandora::CartesianVector &point2, float &impactParameter)
Get the closest distance between a point and a line.
Definition: GeometryHelper.cc:77
static pandora::StatusCode GetBarrelGapSeparation(const pandora::Pandora &pandora, const pandora::CaloHit *const pEcalCaloHit, const pandora::CaloHit *const pHcalCaloHit, float &gapSeparation)
Get the gap separation in the barrel region between two calo hits.
Definition: GeometryHelper.cc:268
static pandora::StatusCode GetEndcapGapSeparation(const pandora::Pandora &pandora, const pandora::CaloHit *const pEcalCaloHit, const pandora::CaloHit *const pHcalCaloHit, float &gapSeparation)
Get the gap separation in the end cap region between two calo hits.
Definition: GeometryHelper.cc:228
static pandora::StatusCode GetProjectionOnHelix(const pandora::Helix &helix, const pandora::CartesianVector &point, pandora::CartesianVector &projection)
Get the projection of a point on the helix.
Definition: GeometryHelper.cc:383
static pandora::StatusCode GetOuterNormaleVector(const pandora::Pandora &pandora, pandora::SubDetectorType type, const pandora::CartesianVector &point, pandora::CartesianVector &normaleVector)
Get the normale vector at outer detector face in the phi region where the point is contained...
Definition: GeometryHelper.cc:313
static pandora::StatusCode GetECalHCalEndCapGapSize(const pandora::Pandora &pandora, float &gapSize)
Get the gap size between the ECal end cap and the HCal end cap.
Definition: GeometryHelper.cc:168
static pandora::StatusCode GetInnerNormaleVector(const pandora::Pandora &pandora, pandora::SubDetectorType type, const pandora::CartesianVector &point, pandora::CartesianVector &normaleVector)
Get the normale vector at inner detector face in the phi region where the point is contained...
Definition: GeometryHelper.cc:348
static pandora::StatusCode GetTrackerECalEndCapGapSize(const pandora::Pandora &pandora, float &gapSize)
Get the gap size between the tracker and ECal end cap.
Definition: GeometryHelper.cc:198
static pandora::StatusCode GetCrossingPointsBetweenLines(const pandora::CartesianVector &point1, const pandora::CartesianVector &direction1, const pandora::CartesianVector &point2, const pandora::CartesianVector &direction2, pandora::CartesianVector &crossingPoint1, pandora::CartesianVector &crossingPoint2)
Get the two crossing points of two lines at the closest distance approach.
Definition: GeometryHelper.cc:115
static pandora::StatusCode GetLinePlaneCrossingPoint(const pandora::CartesianVector &linePoint, const pandora::CartesianVector &lineDirection, float planeA, float planeB, float planeC, float planeD, pandora::CartesianVector &crossingPoint)
Get the crossing point between a line and a plane in space. The equation plane is defined as : ...
Definition: GeometryHelper.cc:146