1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #ifndef COMMON_HPP
- #define COMMON_HPP
- #include <cmath>
- template<typename A, typename B>
- float displacement(const A& a, const B& b){
- return std::sqrt(pow(a.x-b.x, 2) +
- pow(a.y-b.y, 2) +
- pow(a.z-b.z, 2));
- }
- template<typename T>
- float rho(const T& t){
- return std::sqrt(pow(t.x,2)+pow(t.y,2));
- }
- float pseudorapidity(float z, float r){
- float theta = atan2(r, z);
- return -log(tan(theta/2.0));
- }
- float pseudorapidity(float x, float y, float z){
- float r = sqrt(x*x + y*y);
- return pseudorapidity(z, r);
- }
- template<typename T>
- float pseudorapidity(const T &t){
- return pseudorapidity(t.x, t.y, t.z);
- }
- float pseudorapidityP(float px, float py, float pz){
- float p_mag = sqrt(px*px + py*py + pz*pz);
- return 0.5*log((p_mag+pz)/(p_mag-pz));
- }
- template<typename T>
- float pseudorapidityP(const T &t){
- return pseudorapidityP(t.px, t.py, t.pz);
- }
- #endif // COMMON_HPP
|