APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
ClosebySeedMergingAlgorithm.h
Go to the documentation of this file.
1 /*
3  *
4  * ClosebySeedMergingAlgorithm.h header template automatically generated by a class generator
5  * Creation date : jeu. avr. 23 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 CLOSEBYSEEDMERGINGALGORITHM_H
30 #define CLOSEBYSEEDMERGINGALGORITHM_H
31 
32 #include "Pandora/Algorithm.h"
33 #include "Pandora/PandoraInputTypes.h"
34 
35 namespace april_content
36 {
37 
38 class CaloHit;
39 
43 class ClosebySeedMergingAlgorithm : public pandora::Algorithm
44 {
45 public:
49  class Factory : public pandora::AlgorithmFactory
50  {
51  public:
52  pandora::Algorithm *CreateAlgorithm() const;
53  };
54 
55 private:
56  pandora::StatusCode Run();
57  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
58 
59  typedef std::map<const CaloHit *, const pandora::Cluster *> CaloHitSeedToClusterMap;
60 
64  pandora::StatusCode FindMergeCandidateClusters(const pandora::ClusterList *const pClusterList, CaloHitSeedToClusterMap &caloHitSeedToClusterMap) const;
65 
69  pandora::StatusCode MergeCloseBySeedClusters(CaloHitSeedToClusterMap &caloHitSeedToClusterMap) const;
70 
74  pandora::StatusCode ReplaceClusterEntryInSeedMap(const pandora::Cluster *const pClusterToReplace, const pandora::Cluster *const pClusterReplacement,
75  CaloHitSeedToClusterMap &caloHitSeedToClusterMap) const;
76 
77  bool m_discriminateSeedLeafHits;
78  unsigned int m_maxSeedPseudoLayerDifference;
79  float m_maxSeedDistanceFine;
80  float m_maxSeedDistanceCoarse;
81  float m_maxSeedTransverseDistanceFine;
82  float m_maxSeedTransverseDistanceCoarse;
83  bool m_mergeECalSeedClusters;
84  bool m_mergeHCalSeedClusters;
85 };
86 
87 //------------------------------------------------------------------------------------------------------------------------------------------
88 
89 inline pandora::Algorithm *ClosebySeedMergingAlgorithm::Factory::CreateAlgorithm() const
90 {
91  return new ClosebySeedMergingAlgorithm();
92 }
93 
94 }
95 
96 #endif // CLOSEBYSEEDMERGINGALGORITHM_H
ClosebySeedMergingAlgorithm class.
Definition: ClosebySeedMergingAlgorithm.h:43
Factory class for instantiating algorithm.
Definition: ClosebySeedMergingAlgorithm.h:49