CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch12/src/Alignment/TwoBodyDecay/interface/TwoBodyDecayVirtualMeasurement.h

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