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
|