HHKinFit2::HHKinFitMasterSingleHiggs::HHKinFitMasterSingleHiggs(TLorentzVector const& tauvis1, TLorentzVector const& tauvis2, TVector2 const& met, TMatrixD const& met_cov, bool istruth, TLorentzVector const& higgsgen) :m_MET_COV(TMatrixD(4,4)) { m_tauvis1 = HHLorentzVector(tauvis1.Px(), tauvis1.Py(), tauvis1.Pz(), tauvis1.E()); m_tauvis2 = HHLorentzVector(tauvis2.Px(), tauvis2.Py(), tauvis2.Pz(), tauvis2.E()); m_tauvis1.SetMkeepE(1.77682); m_tauvis2.SetMkeepE(1.77682); m_MET = met; m_MET_COV = met_cov; m_chi2_best = pow(10,10); m_bestHypo = 0; // if (istruth){ // TRandom3 r(0); // // HHLorentzVector recoil; // if(heavyhiggsgen != NULL){ // Double_t pxRecoil = r.Gaus(-(heavyhiggsgen->Px() ), 10.0); // Double_t pyRecoil = r.Gaus(-(heavyhiggsgen->Py() ), 10.0); // // recoil = HHLorentzVector(pxRecoil, pyRecoil, 0, // sqrt(pxRecoil*pxRecoil+pyRecoil*pyRecoil)); // } // else{ // recoil = HHLorentzVector(0,0,0,0); // std::cout << "WARNING! Truthinput mode active but no Heavy Higgs gen-information given! Setting Recoil to Zero!" << std::endl; // } // // TMatrixD recoilCov(2,2); // recoilCov(0,0)=100; recoilCov(0,1)=0; // recoilCov(1,0)=0; recoilCov(1,1)=100; // // HHLorentzVector recoHH = m_bjet1 + m_bjet2 + m_tauvis1 + m_tauvis2 + recoil; // m_MET = TVector2(-recoHH.Px(), -recoHH.Py() ); // // m_MET_COV = TMatrixD(2,2); // m_MET_COV = recoilCov + bjet1Cov + bjet2Cov; // // } }
HHKinFit2::HHLorentzVector HHKinFit2::HHLorentzVector::operator-() const { return(HHLorentzVector(-this->Px(), -this->Py(), -this->Pz(), -this->E() ) ); }
HHKinFit2::HHFitObjectMET::HHFitObjectMET(TVector2 const& v,TVector2 const& vfit) :HHFitObject(HHLorentzVector(v.X(),v.Y(),0,sqrt(v.X()*v.X()+v.Y()*v.Y()))){ this->setFit4Vector(HHLorentzVector(vfit.X(),vfit.Y(),0,sqrt(vfit.X()*vfit.X()+vfit.Y()*vfit.Y()))); }
HHKinFit2::HHLorentzVector HHKinFit2::HHLorentzVector::operator-(HHLorentzVector const& rhs) const{ return(HHLorentzVector(this->Px()-rhs.Px(),this->Py()-rhs.Py(),this->Pz()-rhs.Pz(),this->E()-rhs.E())); }