ROOT logo

// @(#)root/mathcore:$Id: PtEtaPhiE4D.h 31938 2009-12-18 14:49:38Z moneta $
// Authors: W. Brown, M. Fischler, L. Moneta    2005  

/**********************************************************************
*                                                                    *
* Copyright (c) 2005 , LCG ROOT FNAL MathLib Team                    *
*                                                                    *
*                                                                    *
**********************************************************************/

// Header file for class PtEtaPhiE4D
// 
// Created by: fischler at Wed Jul 20 2005
//   based on CylindricalEta4D by moneta
// 
// Last update: $Id: PtEtaPhiE4D.h 31938 2009-12-18 14:49:38Z moneta $
// 
#ifndef ROOT_Math_GenVector_PtEtaPhiE4D 
#define ROOT_Math_GenVector_PtEtaPhiE4D  1

#ifndef ROOT_Math_Math
#include "Math/Math.h"
#endif

#ifndef ROOT_Math_GenVector_etaMax
#include "Math/GenVector/etaMax.h"
#endif

#ifndef ROOT_Math_GenVector_GenVector_exception 
#include "Math/GenVector/GenVector_exception.h"
#endif



//#define TRACE_CE
#ifdef TRACE_CE
#include <iostream>
#endif



namespace ROOT {   

namespace Math { 
       
//__________________________________________________________________________________________
/** 
    Class describing a 4D cylindrical coordinate system
    using Pt , Phi, Eta and E (or rho, phi, eta , T) 
    The metric used is (-,-,-,+). 
    Phi is restricted to be in the range [-PI,PI)
    
    @ingroup GenVector
*/ 

template <class ScalarType> 
class PtEtaPhiE4D { 

public : 

   typedef ScalarType Scalar;

   // --------- Constructors ---------------

   /**
      Default constructor gives zero 4-vector  
   */
   PtEtaPhiE4D() : fPt(0), fEta(0), fPhi(0), fE(0) { }

   /**
      Constructor  from pt, eta, phi, e values
   */
   PtEtaPhiE4D(Scalar pt, Scalar eta, Scalar phi, Scalar e) : 
      fPt(pt), fEta(eta), fPhi(phi), fE(e) { Restrict(); }

   /**
      Generic constructor from any 4D coordinate system implementing 
      Pt(), Eta(), Phi() and E()  
   */ 
   template <class CoordSystem > 
   explicit PtEtaPhiE4D(const CoordSystem & c) : 
      fPt(c.Pt()), fEta(c.Eta()), fPhi(c.Phi()), fE(c.E())  { }

   // for g++  3.2 and 3.4 on 32 bits found that the compiler generated copy ctor and assignment are much slower 
   // so we decided to re-implement them ( there is no no need to have them with g++4)

   /**
      copy constructor
    */
   PtEtaPhiE4D(const PtEtaPhiE4D & v) : 
      fPt(v.fPt), fEta(v.fEta), fPhi(v.fPhi), fE(v.fE) { }
      
   /**
      assignment operator 
    */
   PtEtaPhiE4D & operator = (const PtEtaPhiE4D & v) { 
      fPt  = v.fPt;  
      fEta = v.fEta;  
      fPhi = v.fPhi;  
      fE   = v.fE;
      return *this;
   }


   /**
      Set internal data based on an array of 4 Scalar numbers
   */ 
   void SetCoordinates( const Scalar src[] ) 
   { fPt=src[0]; fEta=src[1]; fPhi=src[2]; fE=src[3]; Restrict(); }

   /**
      get internal data into an array of 4 Scalar numbers
   */ 
   void GetCoordinates( Scalar dest[] ) const 
   { dest[0] = fPt; dest[1] = fEta; dest[2] = fPhi; dest[3] = fE; }

   /**
      Set internal data based on 4 Scalar numbers
   */ 
   void SetCoordinates(Scalar pt, Scalar eta, Scalar phi, Scalar e) 
   { fPt=pt; fEta = eta; fPhi = phi; fE = e; Restrict(); }

   /**
      get internal data into 4 Scalar numbers
   */ 
   void 
   GetCoordinates(Scalar& pt, Scalar & eta, Scalar & phi, Scalar& e) const 
   { pt=fPt; eta=fEta; phi = fPhi; e = fE; }

   // --------- Coordinates and Coordinate-like Scalar properties -------------

   // 4-D Cylindrical eta coordinate accessors  

   Scalar Pt()  const { return fPt;  }
   Scalar Eta() const { return fEta; }
   Scalar Phi() const { return fPhi; }
   Scalar E()   const { return fE;   }

   Scalar Perp()const { return Pt(); }
   Scalar Rho() const { return Pt(); }
   Scalar T()   const { return E();  }
  
   // other coordinate representation

   Scalar Px() const { return fPt*cos(fPhi);}
   Scalar X () const { return Px();         }
   Scalar Py() const { return fPt*sin(fPhi);}
   Scalar Y () const { return Py();         }
   Scalar Pz() const {
      return fPt >   0 ? fPt*std::sinh(fEta)     : 
         fEta == 0 ? 0                       :
         fEta >  0 ? fEta - etaMax<Scalar>() :
         fEta + etaMax<Scalar>() ; 
   }
   Scalar Z () const { return Pz(); }

   /** 
       magnitude of momentum
   */
   Scalar P() const { 
      return  fPt  > 0                 ?  fPt*std::cosh(fEta)       :
         fEta >  etaMax<Scalar>() ?  fEta - etaMax<Scalar>()   :
         fEta < -etaMax<Scalar>() ? -fEta - etaMax<Scalar>()   :
         0                         ; 
   }
   Scalar R() const { return P(); }

   /** 
       squared magnitude of spatial components (momentum squared)
   */
   Scalar P2() const { Scalar p = P(); return p*p; }

   /**
      vector magnitude squared (or mass squared)
   */
   Scalar M2() const { Scalar p = P(); return fE*fE - p*p; }
   Scalar Mag2() const { return M2(); } 

   /**
      invariant mass 
   */
   Scalar M() const    { 
      Scalar mm = M2();
      if (mm >= 0) {
         return std::sqrt(mm);
      } else {
         GenVector::Throw ("PtEtaPhiE4D::M() - Tachyonic:\n"
                           "    Pt and Eta give P such that P^2 > E^2, so the mass would be imaginary");
         return -std::sqrt(-mm);
      }
   }
   Scalar Mag() const    { return M(); }

   /** 
       transverse spatial component squared  
   */
   Scalar Pt2()   const { return fPt*fPt;}
   Scalar Perp2() const { return Pt2();  }

   /** 
       transverse mass squared
   */
   Scalar Mt2() const {  Scalar pz = Pz(); return fE*fE  - pz*pz; } 

   /**
      transverse mass
   */
   Scalar Mt() const { 
      Scalar mm = Mt2();
      if (mm >= 0) {
         return std::sqrt(mm);
      } else {
         GenVector::Throw ("PtEtaPhiE4D::Mt() - Tachyonic:\n"
                           "    Pt and Eta give Pz such that Pz^2 > E^2, so the mass would be imaginary");
         return -std::sqrt(-mm);
      }
   } 

   /**
      transverse energy
   */
   /**
      transverse energy
   */
   Scalar Et() const { 
      return fE / std::cosh(fEta); // faster using eta
   }

   /** 
       transverse energy squared
   */
   Scalar Et2() const { Scalar et = Et(); return et*et; }


private:
   inline static Scalar pi() { return M_PI; } 
   inline void Restrict() {
      if ( fPhi <= -pi() || fPhi > pi() ) 
         fPhi = fPhi - std::floor( fPhi/(2*pi()) +.5 ) * 2*pi();
      return;
   } 
public:

   /**
      polar angle
   */
   Scalar Theta() const {
      if (fPt  >  0) return 2* std::atan( exp( - fEta ) );
      if (fEta >= 0) return 0;
      return pi();
   }

   // --------- Set Coordinates of this system  ---------------

   /**
      set Pt value 
   */
   void SetPt( Scalar  pt) { 
      fPt = pt; 
   }
   /**
      set eta value 
   */
   void SetEta( Scalar  eta) { 
      fEta = eta; 
   }
   /**
      set phi value 
   */
   void SetPhi( Scalar  phi) { 
      fPhi = phi; 
      Restrict();
   }
   /**
      set E value 
   */
   void SetE( Scalar  e) { 
      fE = e; 
   }

   /** 
       set values using cartesian coordinate system  
   */
   void SetPxPyPzE(Scalar px, Scalar py, Scalar pz, Scalar e);


   // ------ Manipulations -------------

   /**
      negate the 4-vector
   */
   void Negate( ) { 
      fPhi = ( fPhi > 0 ? fPhi - pi() : fPhi + pi()  );
      fEta = - fEta; 
      fE = - fE; 
   }

   /**
      Scale coordinate values by a scalar quantity a
   */
   void Scale( Scalar a) { 
      if (a < 0) {
         Negate(); a = -a;
      }
      fPt *= a; 
      fE  *= a; 
   }

   /**
      Assignment from a generic coordinate system implementing 
      Pt(), Eta(), Phi() and E()  
   */ 
   template <class CoordSystem > 
   PtEtaPhiE4D & operator = (const CoordSystem & c) { 
      fPt  = c.Pt(); 
      fEta = c.Eta();
      fPhi = c.Phi(); 
      fE   = c.E(); 
      return *this;
   }

   /**
      Exact equality
   */  
   bool operator == (const PtEtaPhiE4D & rhs) const {
      return fPt == rhs.fPt && fEta == rhs.fEta 
         && fPhi == rhs.fPhi && fE == rhs.fE;
   }
   bool operator != (const PtEtaPhiE4D & rhs) const {return !(operator==(rhs));}

   // ============= Compatibility secition ==================

   // The following make this coordinate system look enough like a CLHEP
   // vector that an assignment member template can work with either
   Scalar x() const { return X(); }
   Scalar y() const { return Y(); }
   Scalar z() const { return Z(); } 
   Scalar t() const { return E(); } 



#if defined(__MAKECINT__) || defined(G__DICTIONARY) 

   // ====== Set member functions for coordinates in other systems =======

   void SetPx(Scalar px);  

   void SetPy(Scalar py);

   void SetPz(Scalar pz);

   void SetM(Scalar m);


#endif

private:

   ScalarType fPt;
   ScalarType fEta;
   ScalarType fPhi;
   ScalarType fE; 

};    
    
    
} // end namespace Math  
} // end namespace ROOT



// move implementations here to avoid circle dependencies
#ifndef ROOT_Math_GenVector_PxPyPzE4D 
#include "Math/GenVector/PxPyPzE4D.h"
#endif
#if defined(__MAKECINT__) || defined(G__DICTIONARY) 
#ifndef ROOT_Math_GenVector_PtEtaPhiM4D 
#include "Math/GenVector/PtEtaPhiM4D.h"
#endif
#endif

namespace ROOT { 

namespace Math { 

template <class ScalarType>  
inline void PtEtaPhiE4D<ScalarType>::SetPxPyPzE(Scalar px, Scalar py, Scalar pz, Scalar e) {  
   *this = PxPyPzE4D<Scalar> (px, py, pz, e);
}


#if defined(__MAKECINT__) || defined(G__DICTIONARY) 
     
  // ====== Set member functions for coordinates in other systems =======

template <class ScalarType>  
inline void PtEtaPhiE4D<ScalarType>::SetPx(Scalar px) {  
   GenVector_exception e("PtEtaPhiE4D::SetPx() is not supposed to be called");
   throw e;
   PxPyPzE4D<Scalar> v(*this); v.SetPx(px); *this = PtEtaPhiE4D<Scalar>(v);
}
template <class ScalarType>  
inline void PtEtaPhiE4D<ScalarType>::SetPy(Scalar py) {  
   GenVector_exception e("PtEtaPhiE4D::SetPx() is not supposed to be called");
   throw e;
   PxPyPzE4D<Scalar> v(*this); v.SetPy(py); *this = PtEtaPhiE4D<Scalar>(v);
}
template <class ScalarType>  
inline void PtEtaPhiE4D<ScalarType>::SetPz(Scalar pz) {  
   GenVector_exception e("PtEtaPhiE4D::SetPx() is not supposed to be called");
   throw e;
   PxPyPzE4D<Scalar> v(*this); v.SetPz(pz); *this = PtEtaPhiE4D<Scalar>(v);
}
template <class ScalarType>  
inline void PtEtaPhiE4D<ScalarType>::SetM(Scalar m) {  
   GenVector_exception e("PtEtaPhiE4D::SetM() is not supposed to be called");
   throw e;
   PtEtaPhiM4D<Scalar> v(*this); v.SetM(m); 
   *this = PtEtaPhiE4D<Scalar>(v);
}

#endif  // endif __MAKE__CINT || G__DICTIONARY

} // end namespace Math

} // end namespace ROOT




#endif // ROOT_Math_GenVector_PtEtaPhiE4D 

 PtEtaPhiE4D.h:1
 PtEtaPhiE4D.h:2
 PtEtaPhiE4D.h:3
 PtEtaPhiE4D.h:4
 PtEtaPhiE4D.h:5
 PtEtaPhiE4D.h:6
 PtEtaPhiE4D.h:7
 PtEtaPhiE4D.h:8
 PtEtaPhiE4D.h:9
 PtEtaPhiE4D.h:10
 PtEtaPhiE4D.h:11
 PtEtaPhiE4D.h:12
 PtEtaPhiE4D.h:13
 PtEtaPhiE4D.h:14
 PtEtaPhiE4D.h:15
 PtEtaPhiE4D.h:16
 PtEtaPhiE4D.h:17
 PtEtaPhiE4D.h:18
 PtEtaPhiE4D.h:19
 PtEtaPhiE4D.h:20
 PtEtaPhiE4D.h:21
 PtEtaPhiE4D.h:22
 PtEtaPhiE4D.h:23
 PtEtaPhiE4D.h:24
 PtEtaPhiE4D.h:25
 PtEtaPhiE4D.h:26
 PtEtaPhiE4D.h:27
 PtEtaPhiE4D.h:28
 PtEtaPhiE4D.h:29
 PtEtaPhiE4D.h:30
 PtEtaPhiE4D.h:31
 PtEtaPhiE4D.h:32
 PtEtaPhiE4D.h:33
 PtEtaPhiE4D.h:34
 PtEtaPhiE4D.h:35
 PtEtaPhiE4D.h:36
 PtEtaPhiE4D.h:37
 PtEtaPhiE4D.h:38
 PtEtaPhiE4D.h:39
 PtEtaPhiE4D.h:40
 PtEtaPhiE4D.h:41
 PtEtaPhiE4D.h:42
 PtEtaPhiE4D.h:43
 PtEtaPhiE4D.h:44
 PtEtaPhiE4D.h:45
 PtEtaPhiE4D.h:46
 PtEtaPhiE4D.h:47
 PtEtaPhiE4D.h:48
 PtEtaPhiE4D.h:49
 PtEtaPhiE4D.h:50
 PtEtaPhiE4D.h:51
 PtEtaPhiE4D.h:52
 PtEtaPhiE4D.h:53
 PtEtaPhiE4D.h:54
 PtEtaPhiE4D.h:55
 PtEtaPhiE4D.h:56
 PtEtaPhiE4D.h:57
 PtEtaPhiE4D.h:58
 PtEtaPhiE4D.h:59
 PtEtaPhiE4D.h:60
 PtEtaPhiE4D.h:61
 PtEtaPhiE4D.h:62
 PtEtaPhiE4D.h:63
 PtEtaPhiE4D.h:64
 PtEtaPhiE4D.h:65
 PtEtaPhiE4D.h:66
 PtEtaPhiE4D.h:67
 PtEtaPhiE4D.h:68
 PtEtaPhiE4D.h:69
 PtEtaPhiE4D.h:70
 PtEtaPhiE4D.h:71
 PtEtaPhiE4D.h:72
 PtEtaPhiE4D.h:73
 PtEtaPhiE4D.h:74
 PtEtaPhiE4D.h:75
 PtEtaPhiE4D.h:76
 PtEtaPhiE4D.h:77
 PtEtaPhiE4D.h:78
 PtEtaPhiE4D.h:79
 PtEtaPhiE4D.h:80
 PtEtaPhiE4D.h:81
 PtEtaPhiE4D.h:82
 PtEtaPhiE4D.h:83
 PtEtaPhiE4D.h:84
 PtEtaPhiE4D.h:85
 PtEtaPhiE4D.h:86
 PtEtaPhiE4D.h:87
 PtEtaPhiE4D.h:88
 PtEtaPhiE4D.h:89
 PtEtaPhiE4D.h:90
 PtEtaPhiE4D.h:91
 PtEtaPhiE4D.h:92
 PtEtaPhiE4D.h:93
 PtEtaPhiE4D.h:94
 PtEtaPhiE4D.h:95
 PtEtaPhiE4D.h:96
 PtEtaPhiE4D.h:97
 PtEtaPhiE4D.h:98
 PtEtaPhiE4D.h:99
 PtEtaPhiE4D.h:100
 PtEtaPhiE4D.h:101
 PtEtaPhiE4D.h:102
 PtEtaPhiE4D.h:103
 PtEtaPhiE4D.h:104
 PtEtaPhiE4D.h:105
 PtEtaPhiE4D.h:106
 PtEtaPhiE4D.h:107
 PtEtaPhiE4D.h:108
 PtEtaPhiE4D.h:109
 PtEtaPhiE4D.h:110
 PtEtaPhiE4D.h:111
 PtEtaPhiE4D.h:112
 PtEtaPhiE4D.h:113
 PtEtaPhiE4D.h:114
 PtEtaPhiE4D.h:115
 PtEtaPhiE4D.h:116
 PtEtaPhiE4D.h:117
 PtEtaPhiE4D.h:118
 PtEtaPhiE4D.h:119
 PtEtaPhiE4D.h:120
 PtEtaPhiE4D.h:121
 PtEtaPhiE4D.h:122
 PtEtaPhiE4D.h:123
 PtEtaPhiE4D.h:124
 PtEtaPhiE4D.h:125
 PtEtaPhiE4D.h:126
 PtEtaPhiE4D.h:127
 PtEtaPhiE4D.h:128
 PtEtaPhiE4D.h:129
 PtEtaPhiE4D.h:130
 PtEtaPhiE4D.h:131
 PtEtaPhiE4D.h:132
 PtEtaPhiE4D.h:133
 PtEtaPhiE4D.h:134
 PtEtaPhiE4D.h:135
 PtEtaPhiE4D.h:136
 PtEtaPhiE4D.h:137
 PtEtaPhiE4D.h:138
 PtEtaPhiE4D.h:139
 PtEtaPhiE4D.h:140
 PtEtaPhiE4D.h:141
 PtEtaPhiE4D.h:142
 PtEtaPhiE4D.h:143
 PtEtaPhiE4D.h:144
 PtEtaPhiE4D.h:145
 PtEtaPhiE4D.h:146
 PtEtaPhiE4D.h:147
 PtEtaPhiE4D.h:148
 PtEtaPhiE4D.h:149
 PtEtaPhiE4D.h:150
 PtEtaPhiE4D.h:151
 PtEtaPhiE4D.h:152
 PtEtaPhiE4D.h:153
 PtEtaPhiE4D.h:154
 PtEtaPhiE4D.h:155
 PtEtaPhiE4D.h:156
 PtEtaPhiE4D.h:157
 PtEtaPhiE4D.h:158
 PtEtaPhiE4D.h:159
 PtEtaPhiE4D.h:160
 PtEtaPhiE4D.h:161
 PtEtaPhiE4D.h:162
 PtEtaPhiE4D.h:163
 PtEtaPhiE4D.h:164
 PtEtaPhiE4D.h:165
 PtEtaPhiE4D.h:166
 PtEtaPhiE4D.h:167
 PtEtaPhiE4D.h:168
 PtEtaPhiE4D.h:169
 PtEtaPhiE4D.h:170
 PtEtaPhiE4D.h:171
 PtEtaPhiE4D.h:172
 PtEtaPhiE4D.h:173
 PtEtaPhiE4D.h:174
 PtEtaPhiE4D.h:175
 PtEtaPhiE4D.h:176
 PtEtaPhiE4D.h:177
 PtEtaPhiE4D.h:178
 PtEtaPhiE4D.h:179
 PtEtaPhiE4D.h:180
 PtEtaPhiE4D.h:181
 PtEtaPhiE4D.h:182
 PtEtaPhiE4D.h:183
 PtEtaPhiE4D.h:184
 PtEtaPhiE4D.h:185
 PtEtaPhiE4D.h:186
 PtEtaPhiE4D.h:187
 PtEtaPhiE4D.h:188
 PtEtaPhiE4D.h:189
 PtEtaPhiE4D.h:190
 PtEtaPhiE4D.h:191
 PtEtaPhiE4D.h:192
 PtEtaPhiE4D.h:193
 PtEtaPhiE4D.h:194
 PtEtaPhiE4D.h:195
 PtEtaPhiE4D.h:196
 PtEtaPhiE4D.h:197
 PtEtaPhiE4D.h:198
 PtEtaPhiE4D.h:199
 PtEtaPhiE4D.h:200
 PtEtaPhiE4D.h:201
 PtEtaPhiE4D.h:202
 PtEtaPhiE4D.h:203
 PtEtaPhiE4D.h:204
 PtEtaPhiE4D.h:205
 PtEtaPhiE4D.h:206
 PtEtaPhiE4D.h:207
 PtEtaPhiE4D.h:208
 PtEtaPhiE4D.h:209
 PtEtaPhiE4D.h:210
 PtEtaPhiE4D.h:211
 PtEtaPhiE4D.h:212
 PtEtaPhiE4D.h:213
 PtEtaPhiE4D.h:214
 PtEtaPhiE4D.h:215
 PtEtaPhiE4D.h:216
 PtEtaPhiE4D.h:217
 PtEtaPhiE4D.h:218
 PtEtaPhiE4D.h:219
 PtEtaPhiE4D.h:220
 PtEtaPhiE4D.h:221
 PtEtaPhiE4D.h:222
 PtEtaPhiE4D.h:223
 PtEtaPhiE4D.h:224
 PtEtaPhiE4D.h:225
 PtEtaPhiE4D.h:226
 PtEtaPhiE4D.h:227
 PtEtaPhiE4D.h:228
 PtEtaPhiE4D.h:229
 PtEtaPhiE4D.h:230
 PtEtaPhiE4D.h:231
 PtEtaPhiE4D.h:232
 PtEtaPhiE4D.h:233
 PtEtaPhiE4D.h:234
 PtEtaPhiE4D.h:235
 PtEtaPhiE4D.h:236
 PtEtaPhiE4D.h:237
 PtEtaPhiE4D.h:238
 PtEtaPhiE4D.h:239
 PtEtaPhiE4D.h:240
 PtEtaPhiE4D.h:241
 PtEtaPhiE4D.h:242
 PtEtaPhiE4D.h:243
 PtEtaPhiE4D.h:244
 PtEtaPhiE4D.h:245
 PtEtaPhiE4D.h:246
 PtEtaPhiE4D.h:247
 PtEtaPhiE4D.h:248
 PtEtaPhiE4D.h:249
 PtEtaPhiE4D.h:250
 PtEtaPhiE4D.h:251
 PtEtaPhiE4D.h:252
 PtEtaPhiE4D.h:253
 PtEtaPhiE4D.h:254
 PtEtaPhiE4D.h:255
 PtEtaPhiE4D.h:256
 PtEtaPhiE4D.h:257
 PtEtaPhiE4D.h:258
 PtEtaPhiE4D.h:259
 PtEtaPhiE4D.h:260
 PtEtaPhiE4D.h:261
 PtEtaPhiE4D.h:262
 PtEtaPhiE4D.h:263
 PtEtaPhiE4D.h:264
 PtEtaPhiE4D.h:265
 PtEtaPhiE4D.h:266
 PtEtaPhiE4D.h:267
 PtEtaPhiE4D.h:268
 PtEtaPhiE4D.h:269
 PtEtaPhiE4D.h:270
 PtEtaPhiE4D.h:271
 PtEtaPhiE4D.h:272
 PtEtaPhiE4D.h:273
 PtEtaPhiE4D.h:274
 PtEtaPhiE4D.h:275
 PtEtaPhiE4D.h:276
 PtEtaPhiE4D.h:277
 PtEtaPhiE4D.h:278
 PtEtaPhiE4D.h:279
 PtEtaPhiE4D.h:280
 PtEtaPhiE4D.h:281
 PtEtaPhiE4D.h:282
 PtEtaPhiE4D.h:283
 PtEtaPhiE4D.h:284
 PtEtaPhiE4D.h:285
 PtEtaPhiE4D.h:286
 PtEtaPhiE4D.h:287
 PtEtaPhiE4D.h:288
 PtEtaPhiE4D.h:289
 PtEtaPhiE4D.h:290
 PtEtaPhiE4D.h:291
 PtEtaPhiE4D.h:292
 PtEtaPhiE4D.h:293
 PtEtaPhiE4D.h:294
 PtEtaPhiE4D.h:295
 PtEtaPhiE4D.h:296
 PtEtaPhiE4D.h:297
 PtEtaPhiE4D.h:298
 PtEtaPhiE4D.h:299
 PtEtaPhiE4D.h:300
 PtEtaPhiE4D.h:301
 PtEtaPhiE4D.h:302
 PtEtaPhiE4D.h:303
 PtEtaPhiE4D.h:304
 PtEtaPhiE4D.h:305
 PtEtaPhiE4D.h:306
 PtEtaPhiE4D.h:307
 PtEtaPhiE4D.h:308
 PtEtaPhiE4D.h:309
 PtEtaPhiE4D.h:310
 PtEtaPhiE4D.h:311
 PtEtaPhiE4D.h:312
 PtEtaPhiE4D.h:313
 PtEtaPhiE4D.h:314
 PtEtaPhiE4D.h:315
 PtEtaPhiE4D.h:316
 PtEtaPhiE4D.h:317
 PtEtaPhiE4D.h:318
 PtEtaPhiE4D.h:319
 PtEtaPhiE4D.h:320
 PtEtaPhiE4D.h:321
 PtEtaPhiE4D.h:322
 PtEtaPhiE4D.h:323
 PtEtaPhiE4D.h:324
 PtEtaPhiE4D.h:325
 PtEtaPhiE4D.h:326
 PtEtaPhiE4D.h:327
 PtEtaPhiE4D.h:328
 PtEtaPhiE4D.h:329
 PtEtaPhiE4D.h:330
 PtEtaPhiE4D.h:331
 PtEtaPhiE4D.h:332
 PtEtaPhiE4D.h:333
 PtEtaPhiE4D.h:334
 PtEtaPhiE4D.h:335
 PtEtaPhiE4D.h:336
 PtEtaPhiE4D.h:337
 PtEtaPhiE4D.h:338
 PtEtaPhiE4D.h:339
 PtEtaPhiE4D.h:340
 PtEtaPhiE4D.h:341
 PtEtaPhiE4D.h:342
 PtEtaPhiE4D.h:343
 PtEtaPhiE4D.h:344
 PtEtaPhiE4D.h:345
 PtEtaPhiE4D.h:346
 PtEtaPhiE4D.h:347
 PtEtaPhiE4D.h:348
 PtEtaPhiE4D.h:349
 PtEtaPhiE4D.h:350
 PtEtaPhiE4D.h:351
 PtEtaPhiE4D.h:352
 PtEtaPhiE4D.h:353
 PtEtaPhiE4D.h:354
 PtEtaPhiE4D.h:355
 PtEtaPhiE4D.h:356
 PtEtaPhiE4D.h:357
 PtEtaPhiE4D.h:358
 PtEtaPhiE4D.h:359
 PtEtaPhiE4D.h:360
 PtEtaPhiE4D.h:361
 PtEtaPhiE4D.h:362
 PtEtaPhiE4D.h:363
 PtEtaPhiE4D.h:364
 PtEtaPhiE4D.h:365
 PtEtaPhiE4D.h:366
 PtEtaPhiE4D.h:367
 PtEtaPhiE4D.h:368
 PtEtaPhiE4D.h:369
 PtEtaPhiE4D.h:370
 PtEtaPhiE4D.h:371
 PtEtaPhiE4D.h:372
 PtEtaPhiE4D.h:373
 PtEtaPhiE4D.h:374
 PtEtaPhiE4D.h:375
 PtEtaPhiE4D.h:376
 PtEtaPhiE4D.h:377
 PtEtaPhiE4D.h:378
 PtEtaPhiE4D.h:379
 PtEtaPhiE4D.h:380
 PtEtaPhiE4D.h:381
 PtEtaPhiE4D.h:382
 PtEtaPhiE4D.h:383
 PtEtaPhiE4D.h:384
 PtEtaPhiE4D.h:385
 PtEtaPhiE4D.h:386
 PtEtaPhiE4D.h:387
 PtEtaPhiE4D.h:388
 PtEtaPhiE4D.h:389
 PtEtaPhiE4D.h:390
 PtEtaPhiE4D.h:391
 PtEtaPhiE4D.h:392
 PtEtaPhiE4D.h:393
 PtEtaPhiE4D.h:394
 PtEtaPhiE4D.h:395
 PtEtaPhiE4D.h:396
 PtEtaPhiE4D.h:397
 PtEtaPhiE4D.h:398
 PtEtaPhiE4D.h:399
 PtEtaPhiE4D.h:400
 PtEtaPhiE4D.h:401
 PtEtaPhiE4D.h:402
 PtEtaPhiE4D.h:403
 PtEtaPhiE4D.h:404
 PtEtaPhiE4D.h:405
 PtEtaPhiE4D.h:406
 PtEtaPhiE4D.h:407
 PtEtaPhiE4D.h:408
 PtEtaPhiE4D.h:409
 PtEtaPhiE4D.h:410
 PtEtaPhiE4D.h:411
 PtEtaPhiE4D.h:412
 PtEtaPhiE4D.h:413
 PtEtaPhiE4D.h:414
 PtEtaPhiE4D.h:415
 PtEtaPhiE4D.h:416
 PtEtaPhiE4D.h:417
 PtEtaPhiE4D.h:418
 PtEtaPhiE4D.h:419
 PtEtaPhiE4D.h:420
 PtEtaPhiE4D.h:421
 PtEtaPhiE4D.h:422
 PtEtaPhiE4D.h:423
 PtEtaPhiE4D.h:424
 PtEtaPhiE4D.h:425
 PtEtaPhiE4D.h:426
 PtEtaPhiE4D.h:427
 PtEtaPhiE4D.h:428
 PtEtaPhiE4D.h:429
 PtEtaPhiE4D.h:430
 PtEtaPhiE4D.h:431
 PtEtaPhiE4D.h:432
 PtEtaPhiE4D.h:433