Go to the documentation of this file.00001 #ifndef Alignment_TwoBodyDecay_TwoBodyDecayVirtualMeasurement_h
00002 #define Alignment_TwoBodyDecay_TwoBodyDecayVirtualMeasurement_h
00003
00004 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00005 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h"
00006 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00007
00017 class TwoBodyDecayVirtualMeasurement
00018 {
00019
00020 public:
00021
00022 TwoBodyDecayVirtualMeasurement( const double primaryMass,
00023 const double primaryWidth,
00024 const double secondaryMass,
00025 const AlgebraicVector& beamSpot,
00026 const AlgebraicSymMatrix& beamSpotError ) :
00027 thePrimaryMass( primaryMass ),
00028 thePrimaryWidth( primaryWidth ),
00029 theSecondaryMass( secondaryMass ),
00030 theBeamSpot( beamSpot ),
00031 theBeamSpotError( beamSpotError ) {}
00032
00033 TwoBodyDecayVirtualMeasurement( const double primaryMass,
00034 const double primaryWidth,
00035 const double secondaryMass,
00036 const GlobalPoint& beamSpot,
00037 const GlobalError& beamSpotError ) :
00038 thePrimaryMass( primaryMass ),
00039 thePrimaryWidth( primaryWidth ),
00040 theSecondaryMass( secondaryMass ),
00041 theBeamSpot( convertGlobalPoint( beamSpot ) ),
00042 theBeamSpotError( beamSpotError.matrix() ) {}
00043
00044 TwoBodyDecayVirtualMeasurement( void ) :
00045 thePrimaryMass( 0. ),
00046 thePrimaryWidth( 0. ),
00047 theSecondaryMass( 0. ),
00048 theBeamSpot( AlgebraicVector() ),
00049 theBeamSpotError( AlgebraicSymMatrix() ) {}
00050
00051 inline const double primaryMass( void ) const { return thePrimaryMass; }
00052 inline const double primaryWidth( void ) const { return thePrimaryWidth; }
00053 inline const double secondaryMass( void ) const { return theSecondaryMass; }
00054
00055 inline const AlgebraicVector& beamSpot( void ) const { return theBeamSpot; }
00056 inline const AlgebraicSymMatrix& beamSpotError( void ) const { return theBeamSpotError; }
00057
00058 private:
00059
00060 inline const AlgebraicVector convertGlobalPoint( const GlobalPoint & gp ) const
00061 { AlgebraicVector v(3); v(1)=gp.x(); v(2)=gp.y(); v(3)=gp.z(); return v; }
00062
00063 double thePrimaryMass;
00064 double thePrimaryWidth;
00065 double theSecondaryMass;
00066
00067 AlgebraicVector theBeamSpot;
00068 AlgebraicSymMatrix theBeamSpotError;
00069
00070 };
00071
00072 #endif