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