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

# Content
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