Go to the documentation of this file.00001 #ifndef TFitConstraintEp_hh
00002 #define TFitConstraintEp_hh
00003
00004 #include "PhysicsTools/KinFitter/interface/TAbsFitConstraint.h"
00005 #include "PhysicsTools/KinFitter/interface/TAbsFitParticle.h"
00006 #include "TMatrixD.h"
00007 #include <vector>
00008
00009 class TFitConstraintEp: public TAbsFitConstraint {
00010
00011 public :
00012
00013 enum component {
00014 pX,
00015 pY,
00016 pZ,
00017 E
00018 };
00019
00020 TFitConstraintEp( );
00021
00022 TFitConstraintEp( std::vector<TAbsFitParticle*>* particles,
00023 TFitConstraintEp::component thecomponent,
00024 Double_t constraint = 0.);
00025
00026 TFitConstraintEp( const TString &name, const TString &title,
00027 std::vector<TAbsFitParticle*>* particles,
00028 TFitConstraintEp::component thecomponent,
00029 Double_t constraint = 0.);
00030 virtual ~TFitConstraintEp();
00031
00032 void addParticle( TAbsFitParticle* particle );
00033 void addParticles( TAbsFitParticle* p1, TAbsFitParticle* p2 = 0, TAbsFitParticle* p3 = 0, TAbsFitParticle* p4 = 0,
00034 TAbsFitParticle* p5 = 0, TAbsFitParticle* p6 = 0, TAbsFitParticle* p7 = 0, TAbsFitParticle* p8 = 0,
00035 TAbsFitParticle* p9 = 0, TAbsFitParticle* p10 = 0);
00036
00037
00038
00039 virtual TMatrixD* getDerivative( TAbsFitParticle* particle );
00040 virtual Double_t getInitValue();
00041 virtual Double_t getCurrentValue();
00042
00043 virtual TString getInfoString();
00044 virtual void print();
00045
00046 protected :
00047
00048
00049 private:
00050 std::vector<TAbsFitParticle*> _particles;
00051 Double_t _constraint;
00052 TFitConstraintEp::component _component;
00053
00054 };
00055
00056 #endif