13 #include <tracking/trackFindingVXD/analyzingTools/algorithms/AnalyzingAlgorithmBase.h>
28 template <
class DataType,
class TCInfoType,
class VectorType>
29 class AnalyzingAlgorithmResidualPX :
public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
36 DataType
calcData(
const TCInfoType& aTC)
override
39 return tcs.refTC->momSeed.X() - tcs.testTC->momSeed.X();
46 template <
class DataType,
class TCInfoType,
class VectorType>
51 (AlgoritmType::AnalyzingAlgorithmResidualPY) {}
54 DataType
calcData(
const TCInfoType& aTC)
override
57 return tcs.refTC->momSeed.Y() - tcs.testTC->momSeed.Y();
64 template <
class DataType,
class TCInfoType,
class VectorType>
69 (AlgoritmType::AnalyzingAlgorithmResidualPZ) {}
72 DataType
calcData(
const TCInfoType& aTC)
override
75 return tcs.refTC->momSeed.Z() - tcs.testTC->momSeed.Z();
82 template <
class DataType,
class TCInfoType,
class VectorType>
87 (AlgoritmType::AnalyzingAlgorithmResidualPT) {}
90 DataType
calcData(
const TCInfoType& aTC)
override
93 return tcs.refTC->momSeed.Perp() - tcs.testTC->momSeed.Perp();
100 template <
class DataType,
class TCInfoType,
class VectorType>
105 (AlgoritmType::AnalyzingAlgorithmResidualP) {}
108 DataType
calcData(
const TCInfoType& aTC)
override
111 return tcs.refTC->momSeed.Mag() - tcs.testTC->momSeed.Mag();
118 template <
class DataType,
class TCInfoType,
class VectorType>
123 (AlgoritmType::AnalyzingAlgorithmResidualPTheta) {}
126 DataType
calcData(
const TCInfoType& aTC)
override
129 return tcs.refTC->momSeed.Theta() * 180.*TMath::InvPi() - tcs.testTC->momSeed.Theta() * 180.*TMath::InvPi();
136 template <
class DataType,
class TCInfoType,
class VectorType>
141 (AlgoritmType::AnalyzingAlgorithmResidualPPhi) {}
144 DataType
calcData(
const TCInfoType& aTC)
override
147 return tcs.refTC->momSeed.Phi() * 180.*TMath::InvPi() - tcs.testTC->momSeed.Phi() * 180.*TMath::InvPi();
154 template <
class DataType,
class TCInfoType,
class VectorType>
159 (AlgoritmType::AnalyzingAlgorithmResidualPAngle) {}
162 DataType
calcData(
const TCInfoType& aTC)
override
165 return tcs.testTC->momSeed.Angle(tcs.refTC->momSeed) * 180.*TMath::InvPi();
172 template <
class DataType,
class TCInfoType,
class VectorType>
177 (AlgoritmType::AnalyzingAlgorithmResidualPTAngle) {}
180 DataType
calcData(
const TCInfoType& aTC)
override
183 VectorType refMom = tcs.refTC->momSeed;
185 VectorType testMom = tcs.testTC->momSeed;
187 return testMom.Angle(refMom) * 180.*TMath::InvPi();
194 template <
class DataType,
class TCInfoType,
class VectorType>
195 class AnalyzingAlgorithmResidualPosition :
public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
199 (AlgoritmType::AnalyzingAlgorithmResidualPosition) {}
202 DataType
calcData(
const TCInfoType& aTC)
override
205 return (tcs.refTC->posSeed - tcs.testTC->posSeed).Mag();
212 template <
class DataType,
class TCInfoType,
class VectorType>
217 (AlgoritmType::AnalyzingAlgorithmResidualPositionXY) {}
220 DataType
calcData(
const TCInfoType& aTC)
override
223 return (tcs.refTC->posSeed - tcs.testTC->posSeed).Perp();