Belle II Software  release-05-02-19
AnalyzingAlgorithmResiduals.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jakob Lettenbichler *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 // tracking:
13 #include <tracking/trackFindingVXD/analyzingTools/algorithms/AnalyzingAlgorithmBase.h>
14 
15 // root:
16 #include <TMath.h>
17 
18 namespace Belle2 {
28  template <class DataType, class TCInfoType, class VectorType>
29  class AnalyzingAlgorithmResidualPX : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
30  public:
32  AnalyzingAlgorithmResidualPX() : AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>
33  (AlgoritmType::AnalyzingAlgorithmResidualPX) {}
34 
36  DataType calcData(const TCInfoType& aTC) override
37  {
39  return tcs.refTC->momSeed.X() - tcs.testTC->momSeed.X();
40  }
41  };
42 
43 
44 
46  template <class DataType, class TCInfoType, class VectorType>
47  class AnalyzingAlgorithmResidualPY : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
48  public:
51  (AlgoritmType::AnalyzingAlgorithmResidualPY) {}
52 
54  DataType calcData(const TCInfoType& aTC) override
55  {
57  return tcs.refTC->momSeed.Y() - tcs.testTC->momSeed.Y();
58  }
59  };
60 
61 
62 
64  template <class DataType, class TCInfoType, class VectorType>
65  class AnalyzingAlgorithmResidualPZ : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
66  public:
69  (AlgoritmType::AnalyzingAlgorithmResidualPZ) {}
70 
72  DataType calcData(const TCInfoType& aTC) override
73  {
75  return tcs.refTC->momSeed.Z() - tcs.testTC->momSeed.Z();
76  }
77  };
78 
79 
80 
82  template <class DataType, class TCInfoType, class VectorType>
83  class AnalyzingAlgorithmResidualPT : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
84  public:
87  (AlgoritmType::AnalyzingAlgorithmResidualPT) {}
88 
90  DataType calcData(const TCInfoType& aTC) override
91  {
93  return tcs.refTC->momSeed.Perp() - tcs.testTC->momSeed.Perp();
94  }
95  };
96 
97 
98 
100  template <class DataType, class TCInfoType, class VectorType>
101  class AnalyzingAlgorithmResidualP : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
102  public:
105  (AlgoritmType::AnalyzingAlgorithmResidualP) {}
106 
108  DataType calcData(const TCInfoType& aTC) override
109  {
111  return tcs.refTC->momSeed.Mag() - tcs.testTC->momSeed.Mag();
112  }
113  };
114 
115 
116 
118  template <class DataType, class TCInfoType, class VectorType>
119  class AnalyzingAlgorithmResidualPTheta : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
120  public:
123  (AlgoritmType::AnalyzingAlgorithmResidualPTheta) {}
124 
126  DataType calcData(const TCInfoType& aTC) override
127  {
129  return tcs.refTC->momSeed.Theta() * 180.*TMath::InvPi() - tcs.testTC->momSeed.Theta() * 180.*TMath::InvPi();
130  }
131  };
132 
133 
134 
136  template <class DataType, class TCInfoType, class VectorType>
137  class AnalyzingAlgorithmResidualPPhi : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
138  public:
141  (AlgoritmType::AnalyzingAlgorithmResidualPPhi) {}
142 
144  DataType calcData(const TCInfoType& aTC) override
145  {
147  return tcs.refTC->momSeed.Phi() * 180.*TMath::InvPi() - tcs.testTC->momSeed.Phi() * 180.*TMath::InvPi();
148  }
149  };
150 
151 
152 
154  template <class DataType, class TCInfoType, class VectorType>
155  class AnalyzingAlgorithmResidualPAngle : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
156  public:
159  (AlgoritmType::AnalyzingAlgorithmResidualPAngle) {}
160 
162  DataType calcData(const TCInfoType& aTC) override
163  {
165  return tcs.testTC->momSeed.Angle(tcs.refTC->momSeed) * 180.*TMath::InvPi();
166  }
167  };
168 
169 
170 
172  template <class DataType, class TCInfoType, class VectorType>
173  class AnalyzingAlgorithmResidualPTAngle : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
174  public:
177  (AlgoritmType::AnalyzingAlgorithmResidualPTAngle) {}
178 
180  DataType calcData(const TCInfoType& aTC) override
181  {
183  VectorType refMom = tcs.refTC->momSeed;
184  refMom.SetZ(0.);
185  VectorType testMom = tcs.testTC->momSeed;
186  testMom.SetZ(0.);
187  return testMom.Angle(refMom) * 180.*TMath::InvPi();
188  }
189  };
190 
191 
192 
194  template <class DataType, class TCInfoType, class VectorType>
195  class AnalyzingAlgorithmResidualPosition : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
196  public:
198  AnalyzingAlgorithmResidualPosition() : AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType>
199  (AlgoritmType::AnalyzingAlgorithmResidualPosition) {}
200 
202  DataType calcData(const TCInfoType& aTC) override
203  {
205  return (tcs.refTC->posSeed - tcs.testTC->posSeed).Mag();
206  }
207  };
208 
209 
210 
212  template <class DataType, class TCInfoType, class VectorType>
213  class AnalyzingAlgorithmResidualPositionXY : public AnalyzingAlgorithmBase<DataType, TCInfoType, VectorType> {
214  public:
217  (AlgoritmType::AnalyzingAlgorithmResidualPositionXY) {}
218 
220  DataType calcData(const TCInfoType& aTC) override
221  {
223  return (tcs.refTC->posSeed - tcs.testTC->posSeed).Perp();
224  }
225  };
226 
228 }
Belle2::AnalyzingAlgorithmResidualPAngle
Class for storing an algorithm determining the residual (ref-test) of momentum in its angle (directio...
Definition: AnalyzingAlgorithmResiduals.h:163
Belle2::AnalyzingAlgorithmResidualPY::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of momentum in Y
Definition: AnalyzingAlgorithmResiduals.h:62
Belle2::AnalyzingAlgorithmBase::AnalyzingAlgorithmBase
AnalyzingAlgorithmBase()
constructor
Definition: AnalyzingAlgorithmBase.h:129
Belle2::AnalyzingAlgorithmResidualPosition::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of the seed position in 3D
Definition: AnalyzingAlgorithmResiduals.h:210
Belle2::AnalyzingAlgorithmResidualPZ
Class for storing an algorithm determining the residual (ref-test) of momentum in Z.
Definition: AnalyzingAlgorithmResiduals.h:73
Belle2::AnalyzingAlgorithmResidualP::AnalyzingAlgorithmResidualP
AnalyzingAlgorithmResidualP()
constructor
Definition: AnalyzingAlgorithmResiduals.h:112
Belle2::AnalyzingAlgorithmResidualP
Class for storing an algorithm determining the residual (ref-test) of momentum in |p|.
Definition: AnalyzingAlgorithmResiduals.h:109
Belle2::AnalyzingAlgorithmResidualPosition::AnalyzingAlgorithmResidualPosition
AnalyzingAlgorithmResidualPosition()
constructor
Definition: AnalyzingAlgorithmResiduals.h:206
Belle2::AnalyzingAlgorithmResidualPAngle::AnalyzingAlgorithmResidualPAngle
AnalyzingAlgorithmResidualPAngle()
constructor
Definition: AnalyzingAlgorithmResiduals.h:166
Belle2::AnalyzingAlgorithmResidualPX::AnalyzingAlgorithmResidualPX
AnalyzingAlgorithmResidualPX()
constructor
Definition: AnalyzingAlgorithmResiduals.h:40
Belle2::AnalyzingAlgorithmResidualPT::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of momentum in pT
Definition: AnalyzingAlgorithmResiduals.h:98
Belle2::AnalyzingAlgorithmResidualPY
Class for storing an algorithm determining the residual (ref-test) of momentum in Y.
Definition: AnalyzingAlgorithmResiduals.h:55
Belle2::AnalyzingAlgorithmResidualPositionXY::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of the seed position in XY (=r)
Definition: AnalyzingAlgorithmResiduals.h:228
Belle2::AnalyzingAlgorithmResidualPTheta::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of momentum in theta (in degrees)
Definition: AnalyzingAlgorithmResiduals.h:134
Belle2::AnalyzingAlgorithmResidualPTAngle::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of pT in angle (transverse direction residual in degrees)
Definition: AnalyzingAlgorithmResiduals.h:188
Belle2::AnalyzingAlgorithmResidualP::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of momentum in |p|
Definition: AnalyzingAlgorithmResiduals.h:116
Belle2::AnalyzingAlgorithmResidualPZ::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of momentum in Z
Definition: AnalyzingAlgorithmResiduals.h:80
Belle2::AnalyzingAlgorithmResidualPTAngle
Class for storing an algorithm determining the residual (ref-test) of pT in angle (transverse directi...
Definition: AnalyzingAlgorithmResiduals.h:181
Belle2::AnalyzingAlgorithmResidualPZ::AnalyzingAlgorithmResidualPZ
AnalyzingAlgorithmResidualPZ()
constructor
Definition: AnalyzingAlgorithmResiduals.h:76
Belle2::AnalyzingAlgorithmBase::chooseCorrectPairOfTCs
virtual const TcPair chooseCorrectPairOfTCs(const TCInfoType &aTC) const
makes sure that TcPair.refTC and .testTC are correctly set - throws exeption if there are problems
Definition: AnalyzingAlgorithmBase.h:110
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::AnalyzingAlgorithmResidualPY::AnalyzingAlgorithmResidualPY
AnalyzingAlgorithmResidualPY()
constructor
Definition: AnalyzingAlgorithmResiduals.h:58
Belle2::AnalyzingAlgorithmResidualPPhi::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of momentum in phi (in degrees)
Definition: AnalyzingAlgorithmResiduals.h:152
Belle2::AnalyzingAlgorithmResidualPX::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of momentum in X
Definition: AnalyzingAlgorithmResiduals.h:44
Belle2::AnalyzingAlgorithmResidualPTAngle::AnalyzingAlgorithmResidualPTAngle
AnalyzingAlgorithmResidualPTAngle()
constructor
Definition: AnalyzingAlgorithmResiduals.h:184
Belle2::AnalyzingAlgorithmResidualPositionXY
Class for storing an algorithm determining the residual (ref-test) of the seed position in XY (=r)
Definition: AnalyzingAlgorithmResiduals.h:221
Belle2::AnalyzingAlgorithmResidualPT
Class for storing an algorithm determining the residual (ref-test) of momentum in pT.
Definition: AnalyzingAlgorithmResiduals.h:91
Belle2::AnalyzingAlgorithmResidualPAngle::calcData
DataType calcData(const TCInfoType &aTC) override
returns the residual (ref-test) of momentum in its angle (direction residual in degrees)
Definition: AnalyzingAlgorithmResiduals.h:170
Belle2::AnalyzingAlgorithmResidualPPhi
Class for storing an algorithm determining the residual (ref-test) of momentum in phi (in degrees)
Definition: AnalyzingAlgorithmResiduals.h:145
Belle2::AnalyzingAlgorithmResidualPositionXY::AnalyzingAlgorithmResidualPositionXY
AnalyzingAlgorithmResidualPositionXY()
constructor
Definition: AnalyzingAlgorithmResiduals.h:224
Belle2::AnalyzingAlgorithmBase
Base class for storing an algorithm determining the data one wants to have.
Definition: AnalyzingAlgorithmBase.h:41
Belle2::AnalyzingAlgorithmResidualPTheta
Class for storing an algorithm determining the residual (ref-test) of momentum in theta (in degrees)
Definition: AnalyzingAlgorithmResiduals.h:127
Belle2::AnalyzingAlgorithmResidualPT::AnalyzingAlgorithmResidualPT
AnalyzingAlgorithmResidualPT()
constructor
Definition: AnalyzingAlgorithmResiduals.h:94
Belle2::AnalyzingAlgorithmResidualPTheta::AnalyzingAlgorithmResidualPTheta
AnalyzingAlgorithmResidualPTheta()
constructor
Definition: AnalyzingAlgorithmResiduals.h:130
Belle2::AnalyzingAlgorithmResidualPPhi::AnalyzingAlgorithmResidualPPhi
AnalyzingAlgorithmResidualPPhi()
constructor
Definition: AnalyzingAlgorithmResiduals.h:148