APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
TrackDrivenSeedingTool.h
Go to the documentation of this file.
1 /*
3  *
4  * TrackDrivenSeedingTool.h header template automatically generated by a class generator
5  * Creation date : mer. f�vr. 24 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 TRACKDRIVENSEEDINGTOOL_H
30 #define TRACKDRIVENSEEDINGTOOL_H
31 
33 
34 namespace april_content
35 {
36 
37 class CaloHit;
38 class Connector;
39 
40 typedef std::map<const pandora::Track* const, pandora::CaloHitVector> TrackCaloHitVector;
41 
46 {
47 public:
51  class Factory : public pandora::AlgorithmToolFactory
52  {
53  public:
54  pandora::AlgorithmTool *CreateAlgorithmTool() const;
55  };
56 
60  ~TrackDrivenSeedingTool() { /* nop */ }
61 
68  pandora::StatusCode Process(const pandora::Algorithm &algorithm, const pandora::CaloHitList *const pCaloHitList = nullptr);
69 
75  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
76 
77  static inline TrackCaloHitVector& GetTrackAndInitCaloHits() { return m_trackHitVector; }
78 
79 private:
89  pandora::StatusCode FindInitialCaloHits(const pandora::Algorithm &algorithm, const pandora::Track *pTrack, const pandora::OrderedCaloHitList& orderedCaloHitList,
90  pandora::CaloHitVector &caloHitVector);
91 
92  const pandora::CartesianVector GetFromHitDirection(const april_content::CaloHit *const pCaloHit);
93 
102  pandora::StatusCode ConnectCaloHits(const pandora::Algorithm &algorithm, const pandora::Track *pTrack,
103  pandora::CaloHitVector &caloHitVector);
104 
105  void CheckInitialTrackHit() const;
106 
107  void CleanTrackInitHitsAssociation(const pandora::Algorithm &algorithm) const;
108 
109  bool IsSiblingTrack(const pandora::Track *const trackA, const pandora::Track *const trackB) const;
110 
111 
112 private:
113  float m_initialHitSearchRange;
114  float m_hitSearchRangeFine;
115  float m_hitSearchRangeCoarse;
116  float m_hitSearchRangeAtBoundary;
117  unsigned int m_maxInitialPseudoLayer;
118  float m_maxInitialTrackDistance;
119  float m_maxInitialTrackAngle;
120 
121  float m_maxConnectionPseudoLayer;
122  float m_maxTransverseDistanceFine;
123  float m_maxTransverseDistanceCoarse;
124  float m_maxDistanceToTrackFine;
125  float m_maxDistanceToTrackCoarse;
126 
127  bool m_shouldUseIsolatedHits;
128  unsigned int m_connectorCreationStage;
129 
130  static TrackCaloHitVector m_trackHitVector;
131 };
132 
133 //------------------------------------------------------------------------------------------------------------------------------------------
134 
135 inline pandora::AlgorithmTool *TrackDrivenSeedingTool::Factory::CreateAlgorithmTool() const
136 {
137  return new TrackDrivenSeedingTool();
138 }
139 
140 }
141 
142 #endif // TRACKDRIVENSEEDINGTOOL_H
pandora::StatusCode Process(const pandora::Algorithm &algorithm, const pandora::CaloHitList *const pCaloHitList=nullptr)
Seed connectors from the calo hit list.
Definition: TrackDrivenSeedingTool.cc:50
TrackDrivenSeedingTool class.
Definition: TrackDrivenSeedingTool.h:45
CaloHit class.
Definition: CaloHit.h:52
~TrackDrivenSeedingTool()
Destructor.
Definition: TrackDrivenSeedingTool.h:60
Factory class for instantiating algorithm tool.
Definition: TrackDrivenSeedingTool.h:51
pandora::StatusCode ConnectCaloHits(const pandora::Algorithm &algorithm, const pandora::Track *pTrack, pandora::CaloHitVector &caloHitVector)
Find and connect calo hits from the ones found close to the track extrapolation.
Definition: TrackDrivenSeedingTool.cc:402
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read settings from the xml handle.
Definition: TrackDrivenSeedingTool.cc:583
pandora::StatusCode FindInitialCaloHits(const pandora::Algorithm &algorithm, const pandora::Track *pTrack, const pandora::OrderedCaloHitList &orderedCaloHitList, pandora::CaloHitVector &caloHitVector)
Find the initial calo hits close to track extrapolation.
Definition: TrackDrivenSeedingTool.cc:324
ConnectorAlgorithmTool class.
Definition: ConnectorAlgorithmTool.h:41