]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/MUON/OnlineAnalysis/AliHLTMUONCalculations.cxx
Moving files to their proper location and fixing them up.
[u/mrichter/AliRoot.git] / HLT / MUON / OnlineAnalysis / AliHLTMUONCalculations.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17
18 ////////////////////////////////////////////////////////////////////////////////
19 //
20 // Author: Artur Szostak
21 // Email:  artur@alice.phy.uct.ac.za | artursz@iafrica.com
22 //
23 ////////////////////////////////////////////////////////////////////////////////
24
25 #include "AliHLTMUONCalculations.h"
26 #include <cmath>
27
28
29 AliHLTFloat32_t AliHLTMUONCalculateSignedPt(
30                 register AliHLTFloat32_t x1,
31                 register AliHLTFloat32_t y1, register AliHLTFloat32_t y2,
32                 register AliHLTFloat32_t z1, register AliHLTFloat32_t z2,
33                 AliHLTFloat32_t& p
34         )
35 {
36         register AliHLTFloat32_t qBL = 3.0;
37         register AliHLTFloat32_t zf = 975.0;
38         AliHLTFloat32_t thetaTimesZf = - (y1*z2 - y2*z1) / (z2-z1);
39         AliHLTFloat32_t xf = x1 * zf / z1;
40         AliHLTFloat32_t yf = y2 - ((y2-y1) * (z2-zf)) / (z2-z1);
41
42         AliHLTFloat32_t pDivZf = (qBL * 0.3 / thetaTimesZf);
43         p = (AliHLTFloat32_t) fabs( pDivZf * zf );
44         
45         // Note: the 0.3 is a conversion factor to GeV. it is 1e9 / c where c is
46         // the speed of light.
47         AliHLTFloat32_t pt = pDivZf * sqrt(xf*xf+yf*yf);
48         return pt;
49 };
50
51
52 AliHLTFloat32_t AliHLTMUONCalculateSignedPt(
53                 register AliHLTFloat32_t x1,
54                 register AliHLTFloat32_t y1, register AliHLTFloat32_t y2,
55                 register AliHLTFloat32_t z1, register AliHLTFloat32_t z2,
56                 register AliHLTFloat32_t zf, register AliHLTFloat32_t qBL,
57                 AliHLTFloat32_t& p
58         )
59 {
60         AliHLTFloat32_t thetaTimesZf = - (y1*z2 - y2*z1) / (z2-z1);
61         AliHLTFloat32_t xf = x1 * zf / z1;
62         AliHLTFloat32_t yf = y2 - ((y2-y1) * (z2-zf)) / (z2-z1);
63
64         AliHLTFloat32_t pDivZf = (qBL * 0.3 / thetaTimesZf);
65         p = (AliHLTFloat32_t) fabs( pDivZf * zf );
66
67         // Note: the 0.3 is a conversion factor to GeV. it is 1e9 / c where c is
68         // the speed of light.
69         AliHLTFloat32_t pt = pDivZf * sqrt(xf*xf+yf*yf);
70         return pt;
71 };
72
73
74 AliHLTFloat32_t AliHLTMUONCalculateSignedPt(
75                 register AliHLTFloat32_t x1,
76                 register AliHLTFloat32_t y1, register AliHLTFloat32_t y2,
77                 register AliHLTFloat32_t z1, register AliHLTFloat32_t z2
78         )
79 {
80         register AliHLTFloat32_t qBL = 3.0;
81         register AliHLTFloat32_t zf = 975.0;
82         AliHLTFloat32_t thetaTimesZf = - (y1*z2 - y2*z1) / (z2-z1);
83         AliHLTFloat32_t xf = x1 * zf / z1;
84         AliHLTFloat32_t yf = y2 - ((y2-y1) * (z2-zf)) / (z2-z1);
85
86         // Note: the 0.3 is a conversion factor to GeV. it is 1e9 / c where c is
87         // the speed of light.
88         AliHLTFloat32_t pt = (qBL * 0.3 / thetaTimesZf) * sqrt(xf*xf+yf*yf);
89         return pt;
90 };
91
92
93 AliHLTFloat32_t AliHLTMUONCalculateSignedPt(
94                 register AliHLTFloat32_t x1,
95                 register AliHLTFloat32_t y1, register AliHLTFloat32_t y2,
96                 register AliHLTFloat32_t z1, register AliHLTFloat32_t z2,
97                 register AliHLTFloat32_t zf, register AliHLTFloat32_t qBL
98         )
99 {
100         AliHLTFloat32_t thetaTimesZf = - (y1*z2 - y2*z1) / (z2-z1);
101         AliHLTFloat32_t xf = x1 * zf / z1;
102         AliHLTFloat32_t yf = y2 - ((y2-y1) * (z2-zf)) / (z2-z1);
103
104         // Note: the 0.3 is a conversion factor to GeV. it is 1e9 / c where c is
105         // the speed of light.
106         AliHLTFloat32_t pt = (qBL * 0.3 / thetaTimesZf) * sqrt(xf*xf+yf*yf);
107         return pt;
108 };
109
110
111 AliHLTFloat32_t AliHLTMUONCalculatePt(
112                 register AliHLTFloat32_t x1,
113                 register AliHLTFloat32_t y1, register AliHLTFloat32_t y2,
114                 register AliHLTFloat32_t z1, register AliHLTFloat32_t z2
115         )
116 {
117         return (AliHLTFloat32_t) fabs(AliHLTMUONCalculateSignedPt(x1, y1, y2, z1, z2));
118 };
119
120
121 AliHLTFloat32_t AliHLTMUONCalculatePt(
122                 register AliHLTFloat32_t x1,
123                 register AliHLTFloat32_t y1, register AliHLTFloat32_t y2,
124                 register AliHLTFloat32_t z1, register AliHLTFloat32_t z2,
125                 register AliHLTFloat32_t zf, register AliHLTFloat32_t qBL
126         )
127 {
128         return (AliHLTFloat32_t) fabs(AliHLTMUONCalculateSignedPt(x1, y1, y2, z1, z2, zf, qBL));
129 };
130