CMS 3D CMS Logo

TFitParticleMCCart Class Reference

#include <PhysicsTools/KinFitter/interface/TFitParticleMCCart.h>

Inheritance diagram for TFitParticleMCCart:

TAbsFitParticle

List of all members.

Public Member Functions

virtual TLorentzVector * calc4Vec (const TMatrixD *params)
virtual TAbsFitParticleclone (TString newname="") const
virtual TMatrixD * getDerivative ()
void setIni4Vec (const TVector3 *p, Double_t M)
virtual void setIni4Vec (const TLorentzVector *pini)
 TFitParticleMCCart (const TString &name, const TString &title, TVector3 *p, Double_t M, const TMatrixD *theCovMatrix)
 TFitParticleMCCart (TVector3 *p, Double_t M, const TMatrixD *theCovMatrix)
 TFitParticleMCCart (const TFitParticleMCCart &fitParticle)
 TFitParticleMCCart ()
virtual TMatrixD * transform (const TLorentzVector &vec)
virtual ~TFitParticleMCCart ()

Protected Member Functions

void init (TVector3 *p, Double_t M, const TMatrixD *theCovMatrix)


Detailed Description

Definition at line 9 of file TFitParticleMCCart.h.


Constructor & Destructor Documentation

TFitParticleMCCart::TFitParticleMCCart (  ) 

Referenced by clone().

TFitParticleMCCart::TFitParticleMCCart ( const TFitParticleMCCart fitParticle  ) 

Definition at line 36 of file TFitParticleMCCart.cc.

References TAbsFitParticle::_covMatrix, TAbsFitParticle::_iniparameters, TAbsFitParticle::_nPar, TAbsFitParticle::_parameters, TAbsFitParticle::_pcurr, TAbsFitParticle::_pini, TAbsFitParticle::_u1, TAbsFitParticle::_u2, and TAbsFitParticle::_u3.

00037   :TAbsFitParticle( fitParticle.GetName(), fitParticle.GetTitle() )
00038 {
00039 
00040   _nPar = fitParticle._nPar;
00041   _u1 = fitParticle._u1;
00042   _u2 = fitParticle._u2;
00043   _u3 = fitParticle._u3;
00044   _covMatrix.ResizeTo(  fitParticle._covMatrix );
00045   _covMatrix = fitParticle._covMatrix;
00046   _iniparameters.ResizeTo( fitParticle._iniparameters );
00047   _iniparameters = fitParticle._iniparameters;
00048   _parameters.ResizeTo( fitParticle._parameters );
00049   _parameters = fitParticle._parameters;
00050   _pini = fitParticle._pini;
00051   _pcurr = fitParticle._pcurr;
00052 
00053 }

TFitParticleMCCart::TFitParticleMCCart ( TVector3 *  p,
Double_t  M,
const TMatrixD *  theCovMatrix 
)

Definition at line 55 of file TFitParticleMCCart.cc.

References init().

00056   :TAbsFitParticle()
00057 { 
00058   init(p, M, theCovMatrix);
00059 }

TFitParticleMCCart::TFitParticleMCCart ( const TString &  name,
const TString &  title,
TVector3 *  p,
Double_t  M,
const TMatrixD *  theCovMatrix 
)

Definition at line 61 of file TFitParticleMCCart.cc.

References init().

00063   :TAbsFitParticle(name, title)
00064 { 
00065   init(p, M, theCovMatrix);
00066 }

TFitParticleMCCart::~TFitParticleMCCart (  )  [virtual]

Definition at line 80 of file TFitParticleMCCart.cc.

00080                                         {
00081 
00082 }


Member Function Documentation

TLorentzVector * TFitParticleMCCart::calc4Vec ( const TMatrixD *  params  )  [virtual]

Implements TAbsFitParticle.

Definition at line 97 of file TFitParticleMCCart.cc.

References TAbsFitParticle::_nPar, TAbsFitParticle::_pini, and X.

00097                                                                      {
00098   // Calculates a 4vector corresponding to the given
00099   // parameter values
00100 
00101   if (params == 0) {
00102     return 0;
00103   }
00104 
00105   if ( params->GetNcols() != 1 || params->GetNrows() !=_nPar ) {
00106     edm::LogError ("WrongMatrixSize")
00107       << GetName() << "::calc4Vec - Parameter matrix has wrong size.";
00108     return 0;
00109   }
00110   
00111   Double_t X = (*params)(0,0);
00112   Double_t Y = (*params)(1,0); 
00113   Double_t Z = (*params)(2,0); 
00114   Double_t E = TMath::Sqrt(  X*X + Y*Y + Z*Z + _pini.M2() );
00115 
00116   TLorentzVector* vec = new TLorentzVector( X, Y, Z, E );
00117   return vec;
00118 
00119 }

TAbsFitParticle * TFitParticleMCCart::clone ( TString  newname = ""  )  const [virtual]

Implements TAbsFitParticle.

Definition at line 68 of file TFitParticleMCCart.cc.

References TFitParticleMCCart().

00068                                                                   {
00069   // Returns a copy of itself
00070 
00071   TAbsFitParticle* myclone = new TFitParticleMCCart( *this );
00072   if ( newname.Length() > 0 ) myclone->SetName(newname);
00073   return myclone;
00074 
00075 }

TMatrixD * TFitParticleMCCart::getDerivative (  )  [virtual]

Implements TAbsFitParticle.

Definition at line 166 of file TFitParticleMCCart.cc.

References TAbsFitParticle::_parameters, and TAbsFitParticle::_pcurr.

00166                                             {
00167   // returns derivative dP/dy with P=(p,E) and y=(px, py, pz) 
00168   // the free parameters of the fit. The columns of the matrix contain 
00169   // (dP/dpx, dP/dpy, ...).
00170 
00171   TMatrixD* DerivativeMatrix = new TMatrixD(4,3);
00172   (*DerivativeMatrix) *= 0.;
00173 
00174   //1st column: dP/dx
00175   (*DerivativeMatrix)(0,0) =  1.;
00176   (*DerivativeMatrix)(1,0) =  0.;
00177   (*DerivativeMatrix)(2,0) =  0.;
00178   (*DerivativeMatrix)(3,0) = _parameters(0,0)/_pcurr.E();
00179 
00180   //2nd column: dP/dy
00181   (*DerivativeMatrix)(0,1) = 0.;
00182   (*DerivativeMatrix)(1,1) = 1.;
00183   (*DerivativeMatrix)(2,1) = 0.;
00184   (*DerivativeMatrix)(3,1) = _parameters(1,0)/_pcurr.E();
00185 
00186   //3rd column: dP/dz
00187   (*DerivativeMatrix)(0,2) = 0.;
00188   (*DerivativeMatrix)(1,2) = 0.;
00189   (*DerivativeMatrix)(2,2) = 1.;
00190   (*DerivativeMatrix)(3,2) = _parameters(2,0)/_pcurr.E();
00191 
00192   return DerivativeMatrix;  
00193 
00194 }

void TFitParticleMCCart::init ( TVector3 *  p,
Double_t  M,
const TMatrixD *  theCovMatrix 
) [protected]

Definition at line 88 of file TFitParticleMCCart.cc.

References TAbsFitParticle::_nPar, TAbsFitParticle::setCovMatrix(), and setIni4Vec().

Referenced by TFitParticleMCCart().

00088                                                                                    {
00089 
00090   _nPar = 3;
00091   setIni4Vec(p, M);
00092   setCovMatrix(theCovMatrix);
00093   
00094 }

void TFitParticleMCCart::setIni4Vec ( const TVector3 *  p,
Double_t  M 
)

Definition at line 130 of file TFitParticleMCCart.cc.

References TAbsFitParticle::_iniparameters, TAbsFitParticle::_nPar, TAbsFitParticle::_parameters, TAbsFitParticle::_pcurr, TAbsFitParticle::_pini, TAbsFitParticle::_u1, TAbsFitParticle::_u2, and TAbsFitParticle::_u3.

00130                                                                  {
00131   // Set the initial 4vector. Will also set the 
00132   // inital parameter values
00133 
00134   if ( p == 0 ) {
00135 
00136     _iniparameters.ResizeTo(_nPar,1);
00137     _iniparameters(0,0) = 0.;
00138     _iniparameters(1,0) = 0.;
00139     _iniparameters(2,0) = 0.;
00140     _parameters.ResizeTo(_nPar,1);
00141     _parameters = _iniparameters;
00142 
00143     _pini.SetXYZM( 0., 0., 0., M);
00144     _pcurr = _pini;
00145 
00146   } else {
00147 
00148     _iniparameters.ResizeTo(_nPar,1);
00149     _iniparameters(0,0) = p->x();
00150     _iniparameters(1,0) = p->y();
00151     _iniparameters(2,0) = p->z();
00152     _parameters.ResizeTo(_nPar,1);
00153     _parameters = _iniparameters;
00154 
00155     _pini.SetXYZM( p->x(), p->y(), p->z(), M);
00156     _pcurr = _pini;
00157 
00158     _u1.SetXYZ( 1., 0., 0. );
00159     _u2.SetXYZ( 0., 1., 0. );
00160     _u3.SetXYZ( 0., 0., 1. );
00161   
00162   }
00163 
00164 }

void TFitParticleMCCart::setIni4Vec ( const TLorentzVector *  pini  )  [virtual]

Implements TAbsFitParticle.

Definition at line 121 of file TFitParticleMCCart.cc.

References muonGeometry::TVector3().

Referenced by init().

00121                                                               {
00122   // Set the initial 4vector. Will also set the 
00123   // inital parameter values 
00124 
00125   TVector3 vec( pini->Vect() );
00126   setIni4Vec( &vec, pini->M() );
00127 
00128 }

TMatrixD * TFitParticleMCCart::transform ( const TLorentzVector &  vec  )  [virtual]

Implements TAbsFitParticle.

Definition at line 196 of file TFitParticleMCCart.cc.

References TAbsFitParticle::_nPar, and muonGeometry::TVector3().

00196                                                                  {
00197   // Returns the parameters corresponding to the given 
00198   // 4vector
00199 
00200   TVector3 vec3( vec.Vect() );
00201 
00202   // retrieve parameters
00203   TMatrixD* tparams = new TMatrixD( _nPar, 1 );
00204   (*tparams)(0,0) = vec3.x();
00205   (*tparams)(1,0) = vec3.y();
00206   (*tparams)(2,0) = vec3.z();
00207 
00208   return tparams;
00209 
00210 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:33:23 2009 for CMSSW by  doxygen 1.5.4