APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
ParticleIdPlugins.h
Go to the documentation of this file.
1 /*
3  *
4  * ParticleIdPlugins.h header template automatically generated by a class generator
5  * Creation date : lun. oct. 17 2016
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 PARTICLEIDPLUGINS_H
30 #define PARTICLEIDPLUGINS_H
31 
32 #include "Plugins/ParticleIdPlugin.h"
33 #include "Pandora/PandoraInputTypes.h"
34 
35 namespace april_content
36 {
41  {
42  public:
47  {
48  public:
53 
54  pandora::InputUInt m_maxForwardPseudoLayer;
55  pandora::InputUInt m_minPseudoLayerNHits;
56  pandora::InputFloat m_minFitHitDistanceFine;
57  pandora::InputFloat m_minFitHitDistanceCoarse;
58  pandora::InputUInt m_minNInteractingLayers;
59  pandora::InputFloat m_lowEnergyClusterCut;
60  };
61 
70  static pandora::StatusCode GetStartingPseudoLayer(const pandora::Pandora &pandora, const pandora::Cluster *const pCluster,
71  const StartingLayerSettings &settings, unsigned int &startingPseudoLayer);
72 
73  static pandora::StatusCode GetClusterVolume(const pandora::Cluster *const pCluster, float& clusterVolume);
74  };
75 
76  //------------------------------------------------------------------------------------------------------------------------------------------
77 
82 {
83 public:
84 
88  class APRILEmShowerId : public pandora::ParticleIdPlugin
89  {
90  public:
95 
96  bool IsMatch(const pandora::Cluster *const pCluster) const;
97  bool IsMatch(const pandora::ParticleFlowObject *const pPfo) const;
98  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
99 
103  const pandora::CartesianVector GetEnergyWeightedCentroid(const pandora::Cluster *const pCluster, const unsigned int innerPseudoLayer,
104  const unsigned int outerPseudoLayer) const;
105 
106  static void SetRecord(bool canRecord);
107 
108  private:
109  ParticleIdHelper::StartingLayerSettings m_startingLayerSettings;
110  unsigned int m_maxStartPseudoLayer;
111  unsigned int m_maxPseudoLayerExtension;
112  float m_maxAngleWithOrigin;
113  float m_maxHadronicEnergyFraction;
114  unsigned int m_minOuterEcalPseudoLayerEnergyCut;
115  float m_maxOuterEcalEnergyFraction;
116 
117  static bool m_canRecord;
118  };
119 
120  //------------------------------------------------------------------------------------------------------------------------------------------
121  //------------------------------------------------------------------------------------------------------------------------------------------
122 
126  class APRILPhotonId : public pandora::ParticleIdPlugin
127  {
128  public:
129  bool IsMatch(const pandora::Cluster *const pCluster) const;
130  bool IsMatch(const pandora::ParticleFlowObject *const pPfo) const;
131 
132  static void SetRecord(bool canRecord);
133  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
134 
135  private:
136  static bool m_canRecord;
137  };
138 
139  //------------------------------------------------------------------------------------------------------------------------------------------
140  //------------------------------------------------------------------------------------------------------------------------------------------
141 
145  class APRILElectronId : public pandora::ParticleIdPlugin
146  {
147  public:
148  bool IsMatch(const pandora::Cluster *const pCluster) const;
149  bool IsMatch(const pandora::ParticleFlowObject *const pPfo) const;
150  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
151  };
152 
153  //------------------------------------------------------------------------------------------------------------------------------------------
154  //------------------------------------------------------------------------------------------------------------------------------------------
155 
159  class APRILMuonId : public pandora::ParticleIdPlugin
160  {
161  public:
165  APRILMuonId();
166 
167  bool IsMatch(const pandora::Cluster *const pCluster) const;
168  bool IsMatch(const pandora::ParticleFlowObject *const pPfo) const;
169  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
170 
171  private:
172  float m_lowMomentumMuonCut;
173  unsigned int m_maxNCaloHitsInPseudoLayerFine;
174  unsigned int m_maxNCaloHitsInPseudoLayerCoarse;
175  unsigned int m_maxNHighDensityPseudoLayer;
176  unsigned int m_minEcalPseudoLayers;
177  unsigned int m_minEcalLayers;
178  unsigned int m_minHcalPseudoLayers;
179  unsigned int m_minHcalLayers;
180  };
181 };
182 
183 }
184 
185 #endif // PARTICLEIDPLUGINS_H
APRILMuonId()
Default constructor.
Definition: ParticleIdPlugins.cc:608
APRILPhotonId class.
Definition: ParticleIdPlugins.h:126
APRILEmShowerId()
Default constructor.
Definition: ParticleIdPlugins.cc:274
ParticleIdHelper class.
Definition: ParticleIdPlugins.h:40
StartingLayerSettings class.
Definition: ParticleIdPlugins.h:46
LCParticleIdPlugins class.
Definition: ParticleIdPlugins.h:81
APRILEmShowerId class.
Definition: ParticleIdPlugins.h:88
APRILElectronId class.
Definition: ParticleIdPlugins.h:145
APRILMuonId class.
Definition: ParticleIdPlugins.h:159
static pandora::StatusCode GetStartingPseudoLayer(const pandora::Pandora &pandora, const pandora::Cluster *const pCluster, const StartingLayerSettings &settings, unsigned int &startingPseudoLayer)
Get the starting pseudo layer of the target cluster.
Definition: ParticleIdPlugins.cc:52
StartingLayerSettings()
Default constructor.
Definition: ParticleIdPlugins.cc:39