Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/clhep/include/CLHEP/Vector/BoostY.h

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/clhep/include/CLHEP/Vector/BoostY.h (Version 11.3.0) and /externals/clhep/include/CLHEP/Vector/BoostY.h (Version 9.3.p2)


  1 // -*- C++ -*-                                      1 
  2 //                                                
  3 // This file is a part of the CLHEP - a Class     
  4 //                                                
  5 // This is the definition of the HepBoostY cla    
  6 // Lorentz transformations which are pure boos    
  7 // objects of the HepLorentzVector class.         
  8 //                                                
  9 // HepLorentzRotation is a concrete implementa    
 10 //                                                
 11 // .SS See Also                                   
 12 // RotationInterfaces.h                           
 13 // LorentzVector.h LorentzRotation.h              
 14 // Boost.h                                        
 15 //                                                
 16 // .SS Author                                     
 17 // Mark Fischler                                  
 18                                                   
 19 #ifndef HEP_BOOSTY_H                              
 20 #define HEP_BOOSTY_H                              
 21                                                   
 22 #include "CLHEP/Vector/RotationInterfaces.h"      
 23 #include "CLHEP/Vector/LorentzVector.h"           
 24                                                   
 25 namespace CLHEP  {                                
 26                                                   
 27 // Declarations of classes and global methods     
 28 class HepBoostY;                                  
 29 inline HepBoostY inverseOf ( const HepBoostY &    
 30 class HepBoost;                                   
 31 class HepRotation;                                
 32                                                   
 33 /**                                               
 34  * @author                                        
 35  * @ingroup vector                                
 36  */                                               
 37 class HepBoostY {                                 
 38                                                   
 39 public:                                           
 40                                                   
 41   // ----------  Constructors and Assignment:     
 42                                                   
 43   inline HepBoostY();                             
 44   // Default constructor. Gives a boost of 0.     
 45                                                   
 46   inline HepBoostY(const HepBoostY & b);          
 47   inline HepBoostY(HepBoostY && b) = default;     
 48   // Copy and move constructors.                  
 49                                                   
 50   inline HepBoostY & operator = (const HepBoos    
 51   inline HepBoostY & operator = (HepBoostY &&     
 52   // Copy and move assignment operators.          
 53                                                   
 54          HepBoostY & set (double beta);           
 55   inline HepBoostY       (double beta);           
 56   // Constructor from beta                        
 57                                                   
 58   // ----------  Accessors:                       
 59                                                   
 60   inline double  beta()  const;                   
 61   inline double  gamma() const;                   
 62   inline Hep3Vector boostVector() const;          
 63   inline Hep3Vector getDirection() const;         
 64                                                   
 65   inline double xx() const;                       
 66   inline double xy() const;                       
 67   inline double xz() const;                       
 68   inline double xt() const;                       
 69   inline double yx() const;                       
 70   inline double yy() const;                       
 71   inline double yz() const;                       
 72   inline double yt() const;                       
 73   inline double zx() const;                       
 74   inline double zy() const;                       
 75   inline double zz() const;                       
 76   inline double zt() const;                       
 77   inline double tx() const;                       
 78   inline double ty() const;                       
 79   inline double tz() const;                       
 80   inline double tt() const;                       
 81   // Elements of the matrix.                      
 82                                                   
 83   inline HepLorentzVector col1() const;           
 84   inline HepLorentzVector col2() const;           
 85   inline HepLorentzVector col3() const;           
 86   inline HepLorentzVector col4() const;           
 87   // orthosymplectic column vectors               
 88                                                   
 89   inline HepLorentzVector row1() const;           
 90   inline HepLorentzVector row2() const;           
 91   inline HepLorentzVector row3() const;           
 92   inline HepLorentzVector row4() const;           
 93   // orthosymplectic row vectors                  
 94                                                   
 95   HepRep4x4 rep4x4() const;                       
 96   //   4x4 representation:                        
 97                                                   
 98   HepRep4x4Symmetric rep4x4Symmetric() const;     
 99   //   Symmetric 4x4 representation.              
100                                                   
101                                                   
102   // ----------  Decomposition:                   
103                                                   
104   void decompose (HepRotation  & rotation, Hep    
105   void decompose (HepAxisAngle & rotation, Hep    
106   // Find R and B such that L = R*B -- trivial    
107                                                   
108   void decompose (HepBoost  & boost, HepRotati    
109   void decompose (Hep3Vector & boost, HepAxisA    
110   // Find R and B such that L = B*R -- trivial    
111                                                   
112   // ----------  Comparisons:                     
113                                                   
114   inline int compare( const HepBoostY & b  ) c    
115   // Dictionary-order comparison, in order of     
116   // Used in operator<, >, <=, >=                 
117                                                   
118   inline bool operator == (const HepBoostY & b    
119   inline bool operator != (const HepBoostY & b    
120   inline bool operator <= (const HepBoostY & b    
121   inline bool operator >= (const HepBoostY & b    
122   inline bool operator <  (const HepBoostY & b    
123   inline bool operator >  (const HepBoostY & b    
124   // Comparisons.                                 
125                                                   
126   inline bool isIdentity() const;                 
127   // Returns true if a null boost.                
128                                                   
129   inline  double distance2( const HepBoostY &     
130       double distance2( const HepBoost & b ) c    
131   // Defined as the distance2 between the vect    
132                                                   
133   double distance2( const HepRotation & r  ) c    
134   double distance2( const HepLorentzRotation &    
135   // Decompose lt = B*R; add norm2 to distance    
136                                                   
137   inline double howNear(   const HepBoostY & b    
138   inline double howNear(   const HepBoost  & b    
139   inline double howNear(   const HepRotation &    
140   inline double howNear(   const HepLorentzRot    
141                                                   
142   inline bool isNear(   const HepBoostY & b,      
143              double epsilon=Hep4RotationInterf    
144   inline bool isNear(   const HepBoost & b,       
145              double epsilon=Hep4RotationInterf    
146   bool isNear(   const HepRotation & r,           
147              double epsilon=Hep4RotationInterf    
148   bool isNear(   const HepLorentzRotation & lt    
149              double epsilon=Hep4RotationInterf    
150                                                   
151   // ----------  Properties:                      
152                                                   
153   inline double norm2() const;                    
154   // distance2 (IDENTITY), which is beta^2 * g    
155                                                   
156   void rectify();                                 
157   // sets according to the stored beta            
158                                                   
159   // ---------- Application:                      
160                                                   
161   inline HepLorentzVector operator()( const He    
162   // Transform a Lorentz Vector.                  
163                                                   
164   inline HepLorentzVector operator* ( const He    
165   // Multiplication with a Lorentz Vector.        
166                                                   
167   // ---------- Operations in the group of 4-R    
168                                                   
169   HepBoostY   operator * (const HepBoostY & b)    
170   HepLorentzRotation operator * (const HepBoos    
171   HepLorentzRotation operator * (const HepRota    
172   HepLorentzRotation operator * (const HepLore    
173   // Product of two Lorentz Rotations (this) *    
174   // Notice that the product of two pure boost    
175   // is no longer a pure boost.                   
176                                                   
177   inline HepBoostY inverse() const;               
178   // Return the inverse.                          
179                                                   
180   inline friend HepBoostY inverseOf ( const He    
181   // global methods to invert.                    
182                                                   
183   inline HepBoostY & invert();                    
184   // Inverts the Boost matrix.                    
185                                                   
186   // ---------- I/O:                              
187                                                   
188   std::ostream & print( std::ostream & os ) co    
189   // Output form is BOOSTY (beta=..., gamma=..    
190                                                   
191   // ---------- Tolerance                         
192                                                   
193   static inline double getTolerance();            
194   static inline double setTolerance(double tol    
195                                                   
196 protected:                                        
197                                                   
198   inline HepLorentzVector vectorMultiplication    
199                                         ( cons    
200   // Multiplication with a Lorentz Vector.        
201                                                   
202   HepLorentzRotation matrixMultiplication (con    
203   HepLorentzRotation matrixMultiplication (con    
204                                                   
205   inline HepBoostY (double beta, double gamma)    
206                                                   
207   double  beta_;                                  
208   double  gamma_;                                 
209                                                   
210 };  // HepBoostY                                  
211                                                   
212 inline                                            
213 std::ostream & operator <<                        
214   ( std::ostream & os, const HepBoostY& b ) {r    
215                                                   
216 }  // namespace CLHEP                             
217                                                   
218 #include "CLHEP/Vector/BoostY.icc"                
219                                                   
220 #endif /* HEP_BOOSTY_H */                         
221