13 #include <framework/logging/Logger.h>
16 #include<tracking/trackFindingVXD/analyzingTools/AlgoritmType.h>
17 #include <tracking/trackFindingVXD/analyzingTools/algorithms/AnalyzingAlgorithmBase.h>
18 #include <tracking/trackFindingVXD/analyzingTools/algorithms/AnalyzingAlgorithmResiduals.h>
19 #include <tracking/trackFindingVXD/analyzingTools/algorithms/AnalyzingAlgorithmValues.h>
20 #include <tracking/trackFindingVXD/analyzingTools/algorithms/AnalyzingAlgorithmClusterBased.h>
35 template <
class DataType,
class TCInfoType,
class VectorType>
39 if (algorithmID == AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>())
40 {
return new AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>(); }
42 if (algorithmID == AnalyzingAlgorithmResidualPX<DataType, TCInfoType, VectorType>())
43 {
return new AnalyzingAlgorithmResidualPX<DataType, TCInfoType, VectorType>(); }
48 if (algorithmID == AnalyzingAlgorithmResidualPZ<DataType, TCInfoType, VectorType>())
49 {
return new AnalyzingAlgorithmResidualPZ<DataType, TCInfoType, VectorType>(); }
51 if (algorithmID == AnalyzingAlgorithmResidualPT<DataType, TCInfoType, VectorType>())
52 {
return new AnalyzingAlgorithmResidualPT<DataType, TCInfoType, VectorType>(); }
54 if (algorithmID == AnalyzingAlgorithmResidualP<DataType, TCInfoType, VectorType>())
55 {
return new AnalyzingAlgorithmResidualP<DataType, TCInfoType, VectorType>(); }
57 if (algorithmID == AnalyzingAlgorithmResidualPTheta<DataType, TCInfoType, VectorType>())
58 {
return new AnalyzingAlgorithmResidualPTheta<DataType, TCInfoType, VectorType>(); }
60 if (algorithmID == AnalyzingAlgorithmResidualPPhi<DataType, TCInfoType, VectorType>())
61 {
return new AnalyzingAlgorithmResidualPPhi<DataType, TCInfoType, VectorType>(); }
63 if (algorithmID == AnalyzingAlgorithmResidualPAngle<DataType, TCInfoType, VectorType>())
64 {
return new AnalyzingAlgorithmResidualPAngle<DataType, TCInfoType, VectorType>(); }
66 if (algorithmID == AnalyzingAlgorithmResidualPTAngle<DataType, TCInfoType, VectorType>())
67 {
return new AnalyzingAlgorithmResidualPTAngle<DataType, TCInfoType, VectorType>(); }
69 if (algorithmID == AnalyzingAlgorithmResidualPosition<DataType, TCInfoType, VectorType>())
70 {
return new AnalyzingAlgorithmResidualPosition<DataType, TCInfoType, VectorType>(); }
72 if (algorithmID == AnalyzingAlgorithmResidualPositionXY<DataType, TCInfoType, VectorType>())
73 {
return new AnalyzingAlgorithmResidualPositionXY<DataType, TCInfoType, VectorType>(); }
77 if (algorithmID == AnalyzingAlgorithmValuePX<DataType, TCInfoType, VectorType>())
78 {
return new AnalyzingAlgorithmValuePX<DataType, TCInfoType, VectorType>(); }
80 if (algorithmID == AnalyzingAlgorithmValuePY<DataType, TCInfoType, VectorType>())
81 {
return new AnalyzingAlgorithmValuePY<DataType, TCInfoType, VectorType>(); }
83 if (algorithmID == AnalyzingAlgorithmValuePZ<DataType, TCInfoType, VectorType>())
84 {
return new AnalyzingAlgorithmValuePZ<DataType, TCInfoType, VectorType>(); }
86 if (algorithmID == AnalyzingAlgorithmValuePT<DataType, TCInfoType, VectorType>())
87 {
return new AnalyzingAlgorithmValuePT<DataType, TCInfoType, VectorType>(); }
89 if (algorithmID == AnalyzingAlgorithmValueP<DataType, TCInfoType, VectorType>())
90 {
return new AnalyzingAlgorithmValueP<DataType, TCInfoType, VectorType>(); }
92 if (algorithmID == AnalyzingAlgorithmValuePTheta<DataType, TCInfoType, VectorType>())
93 {
return new AnalyzingAlgorithmValuePTheta<DataType, TCInfoType, VectorType>(); }
95 if (algorithmID == AnalyzingAlgorithmValuePPhi<DataType, TCInfoType, VectorType>())
96 {
return new AnalyzingAlgorithmValuePPhi<DataType, TCInfoType, VectorType>(); }
98 if (algorithmID == AnalyzingAlgorithmValueDistSeed2IP<DataType, TCInfoType, VectorType>())
99 {
return new AnalyzingAlgorithmValueDistSeed2IP<DataType, TCInfoType, VectorType>(); }
101 if (algorithmID == AnalyzingAlgorithmValueDistSeed2IPXY<DataType, TCInfoType, VectorType>())
102 {
return new AnalyzingAlgorithmValueDistSeed2IPXY<DataType, TCInfoType, VectorType>(); }
104 if (algorithmID == AnalyzingAlgorithmValueDistSeed2IPZ<DataType, TCInfoType, VectorType>())
105 {
return new AnalyzingAlgorithmValueDistSeed2IPZ<DataType, TCInfoType, VectorType>(); }
107 if (algorithmID == AnalyzingAlgorithmValueQI<DataType, TCInfoType, VectorType>())
108 {
return new AnalyzingAlgorithmValueQI<DataType, TCInfoType, VectorType>(); }
115 " is no algorithm of double type but of another (valid) category. Please use the correct factory for your purpose. Returning non-functioning base-class instead!");
118 " is not known, returning non-functioning base-class instead!");
121 return new AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>();
130 template <
class DataType,
class TCInfoType,
class VectorType>
134 if (algorithmID == AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>())
135 {
return new AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>(); }
137 if (algorithmID == AnalyzingAlgorithmLostUClusters<DataType, TCInfoType, VectorType>())
138 {
return new AnalyzingAlgorithmLostUClusters<DataType, TCInfoType, VectorType>(); }
143 if (algorithmID == AnalyzingAlgorithmTotalUClusters<DataType, TCInfoType, VectorType>())
144 {
return new AnalyzingAlgorithmTotalUClusters<DataType, TCInfoType, VectorType>(); }
146 if (algorithmID == AnalyzingAlgorithmTotalVClusters<DataType, TCInfoType, VectorType>())
147 {
return new AnalyzingAlgorithmTotalVClusters<DataType, TCInfoType, VectorType>(); }
154 " is no algorithm of int type but of another (valid) category. Please use the correct factory for your purpose. Returning non-functioning base-class instead!");
157 " is not known, returning non-functioning base-class instead!");
160 return new AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>();
169 template <
class DataType,
class TCInfoType,
class VectorType>
173 if (algorithmID == AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>())
174 {
return new AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>(); }
176 if (algorithmID == AnalyzingAlgorithmLostUEDep<DataType, TCInfoType, VectorType>())
177 {
return new AnalyzingAlgorithmLostUEDep<DataType, TCInfoType, VectorType>(); }
182 if (algorithmID == AnalyzingAlgorithmTotalUEDep<DataType, TCInfoType, VectorType>())
183 {
return new AnalyzingAlgorithmTotalUEDep<DataType, TCInfoType, VectorType>(); }
185 if (algorithmID == AnalyzingAlgorithmTotalVEDep<DataType, TCInfoType, VectorType>())
186 {
return new AnalyzingAlgorithmTotalVEDep<DataType, TCInfoType, VectorType>(); }
194 " is no algorithm of vector<double> type but of another (valid) category. Please use the correct factory for your purpose. Returning non-functioning base-class instead!");
197 " is not known, returning non-functioning base-class instead!");
200 return new AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>();