CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10/src/PhysicsTools/KinFitter/interface/TSLToyGen.h

Go to the documentation of this file.
00001 #ifndef TSLToyGen_hh
00002 #define TSLToyGen_hh
00003 
00004 #include <vector>
00005 #include "TObject.h"
00006 #include "TObjArray.h"
00007 #include "PhysicsTools/KinFitter/interface/TKinFitter.h"
00008 #include "TVector3.h"
00009 
00010 class TAbsFitParticle;
00011 
00012 class TSLToyGen : public TObject {
00013 
00014 public :
00015 
00016   TSLToyGen( const TAbsFitParticle* bReco, const TAbsFitParticle* lepton, const TAbsFitParticle* X, const TAbsFitParticle* neutrino);
00017   virtual ~TSLToyGen();
00018   Bool_t doToyExperiments( Int_t nbExperiments = 1000 );
00019 
00020   TH1D* _histStatus;
00021   TH1D* _histNIter;
00022   TH1D* _histPChi2;
00023   TH1D* _histChi2;
00024 
00025   TH1D* _histMBrecoTrue;
00026   TH1D* _histMBrecoSmear; 
00027   TH1D* _histMBrecoFit; 
00028   TH1D* _histMXTrue;
00029   TH1D* _histMXSmear;
00030   TH1D* _histMXFit;
00031   TH1D* _histMXlnuTrue;
00032   TH1D* _histMXlnuSmear;
00033   TH1D* _histMXlnuFit;
00034 
00035   TObjArray _histsParTrue;
00036   TObjArray _histsParSmear;
00037   TObjArray _histsParFit;
00038 
00039   TObjArray _histsPull1;
00040   TObjArray _histsError1;
00041   TObjArray _histsDiff1;
00042   TObjArray _histsPull2;
00043   TObjArray _histsError2;
00044   TObjArray _histsDiff2;
00045   
00046   void setprintPartIni(Bool_t value) { _printPartIni = value; }
00047   void setprintConsIni(Bool_t value) { _printConsIni = value; }
00048   void setprintSmearedPartBefore(Bool_t value) { _printSmearedPartBefore = value; }
00049   void setprintPartAfter(Bool_t value) { _printPartAfter = value; } 
00050   void setprintConsBefore(Bool_t value) { _printConsBefore = value; }
00051   void setprintConsAfter(Bool_t value) { _printConsAfter = value; }
00052 
00053   void setMassConstraint(Bool_t value) { _withMassConstraint = value; }
00054   void setMPDGCons(Bool_t value) { _withMPDGCons = value; }
00055   void setCheckConstraintsTruth(Bool_t value) { _doCheckConstraintsTruth = value; }
00056 
00057 protected:
00058 
00059   void smearParticles();
00060 
00061   void createHists();
00062 
00063   void fillPull1();
00064   void fillPull2();
00065   void fillPar();
00066   void fillM();
00067 
00068 private :
00069   
00070   std::vector<TAbsFitParticle*> _inimeasParticles;    // vector that contains all true measured particles
00071   std::vector<TAbsFitParticle*> _iniunmeasParticles;  // vector that contains all true unmeasured particles
00072   std::vector<TAbsFitParticle*> _measParticles;    // vector that contains all smeared measured particles
00073   std::vector<TAbsFitParticle*> _unmeasParticles;  // vector that contains all smeared unmeasured particles
00074   TVector3 _Y4S;
00075   
00076   TAbsFitParticle* _iniBreco;
00077   TAbsFitParticle* _iniLepton;
00078   TAbsFitParticle* _iniX;
00079   TAbsFitParticle* _iniNeutrino;
00080   TAbsFitParticle* _breco;
00081   TAbsFitParticle* _lepton;
00082   TAbsFitParticle* _X;
00083   TAbsFitParticle* _neutrino;
00084 
00085   Bool_t _printPartIni;
00086   Bool_t _printConsIni;
00087   Bool_t _printSmearedPartBefore ;
00088   Bool_t _printConsBefore;
00089   Bool_t _printConsAfter;
00090   Bool_t _printPartAfter;
00091   Bool_t _withMassConstraint;
00092   Bool_t _withMPDGCons;
00093   Bool_t _doCheckConstraintsTruth;
00094 
00095 };
00096 
00097 #endif