ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/IPHCalignment2/Alignment/TwoBodyDecay/interface/TwoBodyDecayVirtualMeasurement.h
Revision: 1.1
Committed: Fri Nov 25 17:10:51 2011 UTC (13 years, 5 months ago) by econte
Content type: text/plain
Branch: MAIN
CVS Tags: TBD2011, TBD_2011, HEAD
Log Message:
TwoBodyDecay modif

File Contents

# User Rev Content
1 econte 1.1 #ifndef Alignment_TwoBodyDecay_TwoBodyDecayVirtualMeasurement_h
2     #define Alignment_TwoBodyDecay_TwoBodyDecayVirtualMeasurement_h
3    
4     #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
5     #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h"
6     #include "DataFormats/Math/interface/Point3D.h"
7     //#include "DataFormats/GeometryVector/interface/GlobalPoint.h"
8     #include "DataFormats/BeamSpot/interface/BeamSpot.h"
9    
10     /** /class TwoBodyDecayVirtualMeasurement
11     *
12     * Container-class for the virtual measurements (beam profile, mass-constraint) included
13     * into the estimation of the properties of two-body decays (see TwoBodyDecayEstimator).
14     *
15     * /author Edmund Widl
16     */
17    
18    
19     class TwoBodyDecayVirtualMeasurement
20     {
21    
22     public:
23    
24     TwoBodyDecayVirtualMeasurement( const double primaryMass,
25     const double primaryWidth,
26     const double secondaryMass,
27     const reco::BeamSpot& beamSpot ) :
28     thePrimaryMass( primaryMass ),
29     thePrimaryWidth( primaryWidth ),
30     theSecondaryMass( secondaryMass ),
31     theBeamSpot( beamSpot ) {}
32    
33     TwoBodyDecayVirtualMeasurement( const TwoBodyDecayVirtualMeasurement & other ) :
34     thePrimaryMass( other.thePrimaryMass ),
35     thePrimaryWidth( other.thePrimaryWidth ),
36     theSecondaryMass( other.theSecondaryMass ),
37     theBeamSpot( other.theBeamSpot ) {}
38    
39     inline const double & primaryMass( void ) const { return thePrimaryMass; }
40     inline const double & primaryWidth( void ) const { return thePrimaryWidth; }
41     inline const double & secondaryMass( void ) const { return theSecondaryMass; }
42    
43     inline const reco::BeamSpot & beamSpot( void ) const { return theBeamSpot; }
44     inline const AlgebraicVector beamSpotPosition( void ) const { return convertXYZPoint( theBeamSpot.position() ); }
45     inline const AlgebraicSymMatrix beamSpotError( void ) const { return extractBeamSpotError(); }
46    
47     private:
48    
49     inline const AlgebraicVector convertXYZPoint( const math::XYZPoint & p ) const
50     { AlgebraicVector v(3); v(1)=p.x(); v(2)=p.y(); v(3)=p.z(); return v; }
51    
52     inline const AlgebraicSymMatrix extractBeamSpotError() const
53     { AlgebraicSymMatrix bse(3,0); bse[0][0] = theBeamSpot.BeamWidthX(); bse[1][1] = theBeamSpot.BeamWidthY(); bse[2][2] = theBeamSpot.sigmaZ(); return bse; }
54    
55     const double & thePrimaryMass;
56     const double & thePrimaryWidth;
57     const double & theSecondaryMass;
58     const reco::BeamSpot & theBeamSpot;
59    
60     };
61    
62     #endif