APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
APRILPseudoLayerPlugin.h
Go to the documentation of this file.
1 /*
3  *
4  * APRILPseudoLayerPlugin.h header template automatically generated by a class generator
5  * Creation date : sam. mars 21 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 John Marshall
25  */
26 
27 
28 #ifndef APRILPSEUDOLAYERPLUGIN_H
29 #define APRILPSEUDOLAYERPLUGIN_H 1
30 
31 #include "Pandora/PandoraInputTypes.h"
32 
33 #include "Plugins/PseudoLayerPlugin.h"
34 
35 namespace april_content
36 {
37 
41 class APRILPseudoLayerPlugin : public pandora::PseudoLayerPlugin
42 {
43 public:
48 
49 private:
50  pandora::StatusCode Initialize();
51 public:
52  unsigned int GetPseudoLayer(const pandora::CartesianVector &positionVector) const;
53  unsigned int GetPseudoLayerAtIp() const;
54 private:
66  pandora::StatusCode GetPseudoLayer(const float rCoordinate, const float zCoordinate, const float rCorrection, const float zCorrection,
67  const float barrelInnerR, const float endCapInnerZ, unsigned int &pseudoLayer) const;
68 
69  typedef std::vector<float> LayerPositionList;
70 
78  pandora::StatusCode FindMatchingLayer(const float position, const LayerPositionList &layerPositionList, unsigned int &layer) const;
79 
83  void StoreLayerPositions();
84 
91  void StoreLayerPositions(const pandora::SubDetector &subDetector, LayerPositionList &LayerPositionList);
92 
97 
101  void StorePolygonAngles();
102 
107 
108  typedef std::vector< std::pair<float, float> > AngleVector;
109 
119  float GetMaximumRadius(const AngleVector &angleVector, const float x, const float y) const;
120 
128  void FillAngleVector(const unsigned int symmetryOrder, const float phi0, AngleVector &angleVector) const;
129 
130  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
131 
132 private:
133  LayerPositionList m_barrelLayerPositions;
134  LayerPositionList m_endCapLayerPositions;
137 
142 
147 
150 
152 };
153 
154 //------------------------------------------------------------------------------------------------------------------------------------------
155 
156 inline unsigned int APRILPseudoLayerPlugin::GetPseudoLayerAtIp() const
157 {
158  const unsigned int pseudoLayerAtIp(this->GetPseudoLayer(pandora::CartesianVector(0.f, 0.f, 0.f)));
159  return pseudoLayerAtIp;
160 }
161 
162 } // namespace lc_content
163 
164 #endif // #ifndef LC_PSEUDO_LAYER_PLUGIN_H
float m_rCorrection
Barrel/endcap overlap r correction.
Definition: APRILPseudoLayerPlugin.h:143
void FillAngleVector(const unsigned int symmetryOrder, const float phi0, AngleVector &angleVector) const
Fill a vector with sine/cosine values for relevant polygon angles.
Definition: APRILPseudoLayerPlugin.cc:302
bool m_useCoordinateCorrections
Whether to use coordinate correction in intermediate regions.
Definition: APRILPseudoLayerPlugin.h:151
float m_barrelInnerR
Barrel inner radius.
Definition: APRILPseudoLayerPlugin.h:138
void StoreOverlapCorrectionDetails()
Store all details revelevant to barrel/endcap overlap corrections upon initialization.
Definition: APRILPseudoLayerPlugin.cc:260
void StoreLayerPositions()
Store all revelevant barrel and endcap layer positions upon initialization.
Definition: APRILPseudoLayerPlugin.cc:173
float m_zCorrection
Barrel/endcap overlap z correction.
Definition: APRILPseudoLayerPlugin.h:144
AngleVector m_muonBarrelAngleVector
The muon barrel angle vector.
Definition: APRILPseudoLayerPlugin.h:136
APRILPseudoLayerPlugin class.
Definition: APRILPseudoLayerPlugin.h:41
pandora::StatusCode FindMatchingLayer(const float position, const LayerPositionList &layerPositionList, unsigned int &layer) const
Find the layer number corresponding to a specified position, via reference to a specified layer posit...
Definition: APRILPseudoLayerPlugin.cc:141
float m_barrelInnerRMuon
Muon barrel inner radius.
Definition: APRILPseudoLayerPlugin.h:140
float m_zCorrectionMuon
Muon barrel/endcap overlap z correction.
Definition: APRILPseudoLayerPlugin.h:146
float m_barrelEdgeR
Extremal barrel r coordinate.
Definition: APRILPseudoLayerPlugin.h:148
float GetMaximumRadius(const AngleVector &angleVector, const float x, const float y) const
Get the maximum polygon radius, with reference to cached sine/cosine values for relevant polygon angl...
Definition: APRILPseudoLayerPlugin.cc:283
float m_rCorrectionMuon
Muon barrel/endcap overlap r correction.
Definition: APRILPseudoLayerPlugin.h:145
AngleVector m_eCalBarrelAngleVector
The ecal barrel angle vector.
Definition: APRILPseudoLayerPlugin.h:135
LayerPositionList m_endCapLayerPositions
List of endcap layer positions.
Definition: APRILPseudoLayerPlugin.h:134
void StoreDetectorOuterEdge()
Store positions of barrel and endcap outer edges upon initialization.
Definition: APRILPseudoLayerPlugin.cc:222
float m_endCapInnerZMuon
Muon endcap inner z position.
Definition: APRILPseudoLayerPlugin.h:141
float m_endCapEdgeZ
Extremal endcap z coordinate.
Definition: APRILPseudoLayerPlugin.h:149
LayerPositionList m_barrelLayerPositions
List of barrel layer positions.
Definition: APRILPseudoLayerPlugin.h:133
APRILPseudoLayerPlugin()
Default constructor.
Definition: APRILPseudoLayerPlugin.cc:34
float m_endCapInnerZ
Endcap inner z position.
Definition: APRILPseudoLayerPlugin.h:139
void StorePolygonAngles()
Store sine and cosine of angles used to project hit positions onto polygonal calorimeter surfaces upo...
Definition: APRILPseudoLayerPlugin.cc:247