1 #ifndef TRACKWISECLUSTERS_H
2 #define TRACKWISECLUSTERS_H 1
10 #include "EVENT/LCIO.h"
11 #include "EVENT/LCCollection.h"
12 #include "EVENT/SimCalorimeterHit.h"
13 #include "EVENT/CalorimeterHit.h"
14 #include "EVENT/Track.h"
15 #include "IMPL/CalorimeterHitImpl.h"
16 #include "IMPL/ClusterImpl.h"
17 #include "IMPL/LCCollectionVec.h"
18 #include "CaloHitExtended.h"
19 #include "ClusterExtended.h"
20 #include "TrackExtended.h"
22 #include "ClusterShapes.h"
23 #include "CalorimeterHitWithAttributes.h"
26 #include <marlin/Global.h>
27 #include <gear/GEAR.h>
28 #include <gear/CalorimeterParameters.h>
32 #include <MarlinCED.h>
37 std::vector<float> distanceTrackBack;
38 std::vector<float> stepTrackBack;
39 std::vector<float> resolutionParameter;
40 std::vector<float> distanceMergeForward;
41 float distanceToTrackSeed;
42 float distanceToDefineDirection;
43 float resolutionToMerge;
44 int nhit_merge_forward;
46 int typeOfGenericDistance;
52 int nScanToMergeForward;
87 TrackwiseClusters(
const std::vector<CalorimeterHitWithAttributes*> calorimeterHitsWithAttributes,
const std::vector<float> startPoint,
88 const float pathLengthOnHelixOfStartPoint,
const float distanceToHelixOfStartPoint,
const std::vector<float> startDirection,
90 TrackwiseClusters(
const std::vector<CalorimeterHitWithAttributes*> calorimeterHitsWithAttributes,
const float* startPoint,
91 const float pathLengthOnHelixOfStartPoint,
const float distanceToHelixOfStartPoint,
const float* startDirection,
97 std::vector<ClusterImpl*> doClustering();
107 std::vector<float> _distanceTrackBack;
108 std::vector<float> _stepTrackBack;
109 std::vector<float> _resolutionParameter;
110 std::vector<float> _distanceMergeForward;
111 float _distanceToTrackSeed;
112 float _distanceToDefineDirection;
113 float _resolutionToMerge;
114 int _nhit_merge_forward;
117 int _typeOfGenericDistance;
120 int _doMergingForward;
121 int _displayClusters;
123 int _nScanToMergeForward;
125 ClusterExtendedVec _allSuperClusters;
126 ClusterExtendedVec _allClusters;
127 CaloHitExtendedVec _allHits;
144 float _thetaofendcap;
146 float _weightForReso;
147 float _weightForDist;
154 float _xmax_in_distance;
155 float _xmin_in_distance;
162 std::vector<CalorimeterHitWithAttributes*> _calorimeterHitsWithAttributes;
163 std::vector<float> _startPoint;
164 float _pathLengthOnHelixOfStartPoint;
165 float _distanceToHelixOfStartPoint;
166 std::vector<float> _startDirection;
168 void initialiseCollections();
171 void BubbleSort(CaloHitExtendedVec& input);
172 float DistanceBetweenPoints(
float* x1,
float* x2);
173 void DisplayClusters(ClusterExtendedVec clusterVec);
174 void GlobalSorting();
175 void GlobalClustering();
176 std::vector<ClusterImpl*> CreateClusterCollection(ClusterExtendedVec clusterVec);
178 void mergeLowMultiplicity();
180 void propertiesForAll();
Class extending native LCIO class Cluster.
Definition: ClusterExtended.h:28
Definition: CalorimeterHitWithAttributes.h:11
Definition: TrackwiseClusters.h:57
Class extending native LCIO class CalorimeterHit.
Definition: CaloHitExtended.h:20
Definition: TrackwiseClusters.h:83
Definition: TrackwiseClusters.h:35