ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/IPHCalignment2/Alignment/TwoBodyDecay/interface/TwoBodyDecayEstimator.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_TwoBodyDecayEstimator_h
2     #define Alignment_TwoBodyDecay_TwoBodyDecayEstimator_h
3    
4     #include "Alignment/TwoBodyDecay/interface/TwoBodyDecay.h"
5     #include "Alignment/TwoBodyDecay/interface/TwoBodyDecayVirtualMeasurement.h"
6    
7     #include "RecoVertex/VertexTools/interface/PerigeeLinearizedTrackState.h"
8     #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
9    
10     #include "FWCore/ParameterSet/interface/ParameterSet.h"
11    
12     /** Class TwoBodyDecayEstimator estimates the decay parameters and the corresponding error
13     * matrix (see TwoBodyDecayParameter) from two linearized tracks, and an hypothesis for the
14     * primary particle's mass and width as well as the mass of the secondary particles. It utilizes
15     * a robust M-estimator.
16     *
17     * /author Edmund Widl
18     */
19    
20     class TwoBodyDecayEstimator
21     {
22    
23     public:
24    
25     typedef PerigeeLinearizedTrackState::RefCountedLinearizedTrackState RefCountedLinearizedTrackState;
26    
27     TwoBodyDecayEstimator( const edm::ParameterSet & config );
28     virtual ~TwoBodyDecayEstimator( void ) {}
29    
30     virtual TwoBodyDecay estimate( const std::vector< RefCountedLinearizedTrackState > & linTracks,
31     const TwoBodyDecayParameters & linearizationPoint,
32     const TwoBodyDecayVirtualMeasurement & vm ) const;
33    
34     inline const int ndf( void ) const { return theNdf; }
35     inline const AlgebraicVector& pulls( void ) const { return thePulls; }
36    
37     virtual TwoBodyDecayEstimator* clone( void ) const { return new TwoBodyDecayEstimator( *this ); }
38    
39     protected:
40    
41     virtual bool constructMatrices( const std::vector< RefCountedLinearizedTrackState > & linTracks,
42     const TwoBodyDecayParameters & linearizationPoint,
43     const TwoBodyDecayVirtualMeasurement & vm,
44     AlgebraicVector & vecM, AlgebraicSymMatrix & matG, AlgebraicMatrix & matA ) const;
45    
46     private:
47    
48     bool checkValues( const AlgebraicVector & vec ) const;
49    
50     double theRobustificationConstant;
51     double theMaxIterDiff;
52     int theMaxIterations;
53     bool theUseInvariantMass;
54    
55     mutable int theNdf;
56     mutable AlgebraicVector thePulls;
57    
58     };
59    
60    
61     #endif