ra4_draw  4bd0201e3d922d42bd545d4b045ed44db33454a4
Namespaces | Functions
functions.cpp File Reference
#include "core/functions.hpp"
#include "TVector2.h"
#include "core/utilities.hpp"

Go to the source code of this file.

Namespaces

 Functions
 

Functions

const NamedFunc Functions::n_isr_match ("n_isr_match", NISRMatch)
 
const NamedFunc Functions::njets_weights_ttisr ("njets_weights_ttisr", [](const Baby &b){return NJetsWeights_ttISR(b, false);})
 
const NamedFunc Functions::njets_weights_visr ("njets_weights_visr", NJetsWeights_vISR)
 
const NamedFunc Functions::min_dphi_lep_met ("min_dphi_lep_met", [](const Baby &b) -> NamedFunc::ScalarType{double phi1, eta1, phi2, eta2;DileptonAngles(b, eta1, phi1, eta2, phi2);double dphi1=fabs(TVector2::Phi_mpi_pi(phi1-b.met_phi()));double dphi2=fabs(TVector2::Phi_mpi_pi(phi2-b.met_phi()));if(phi1!=-999 &&phi2!=-999){return std::min(dphi1, dphi2);}else if(phi1!=-999 &&phi2==-999){return dphi1;}else if(phi1==-999 &&phi2!=-999){return dphi2;}return-1;})
 
const NamedFunc Functions::max_dphi_lep_met ("max_dphi_lep_met", [](const Baby &b) -> NamedFunc::ScalarType{double phi1, eta1, phi2, eta2;DileptonAngles(b, eta1, phi1, eta2, phi2);double dphi1=fabs(TVector2::Phi_mpi_pi(phi1-b.met_phi()));double dphi2=fabs(TVector2::Phi_mpi_pi(phi2-b.met_phi()));if(phi1!=-999 &&phi2!=-999){return std::max(dphi1, dphi2);}else if(phi1!=-999 &&phi2==-999){return dphi1;}else if(phi1==-999 &&phi2!=-999){return dphi2;}return-1;})
 
const NamedFunc Functions::min_dphi_lep_jet ("min_dphi_lep_jet", [](const Baby &b) ->NamedFunc::ScalarType{double phi1, eta1, phi2, eta2;DileptonAngles(b, eta1, phi1, eta2, phi2);double minphi=-1.;for(size_t ijet=0;ijet< b.jets_pt() ->size();++ijet){if(!IsGoodJet(b, ijet)) continue;double dphi1=fabs(TVector2::Phi_mpi_pi(phi1-b.jets_phi() ->at(ijet)));double dphi2=fabs(TVector2::Phi_mpi_pi(phi2-b.jets_phi() ->at(ijet)));double thisdphi=-1;if(phi1!=-999 &&phi2!=-999){thisdphi=std::min(dphi1, dphi2);}else if(phi1!=-999 &&phi2==-999){thisdphi=dphi1;}else if(phi1==-999 &&phi2!=-999){thisdphi=dphi2;}if(minphi< 0.||thisdphi< minphi){minphi=thisdphi;}}return minphi;})
 
const NamedFunc Functions::max_dphi_lep_jet ("max_dphi_lep_jet", [](const Baby &b) ->NamedFunc::ScalarType{double phi1, eta1, phi2, eta2;DileptonAngles(b, eta1, phi1, eta2, phi2);double maxphi=-1.;for(size_t ijet=0;ijet< b.jets_pt() ->size();++ijet){if(!IsGoodJet(b, ijet)) continue;double dphi1=fabs(TVector2::Phi_mpi_pi(phi1-b.jets_phi() ->at(ijet)));double dphi2=fabs(TVector2::Phi_mpi_pi(phi2-b.jets_phi() ->at(ijet)));double thisdphi=-1;if(phi1!=-999 &&phi2!=-999){thisdphi=std::max(dphi1, dphi2);}else if(phi1!=-999 &&phi2==-999){thisdphi=dphi1;}else if(phi1==-999 &&phi2!=-999){thisdphi=dphi2;}if(maxphi< 0.||thisdphi > maxphi){maxphi=thisdphi;}}return maxphi;})
 
const NamedFunc Functions::min_dphi_met_jet ("min_dphi_met_jet", [](const Baby &b) ->NamedFunc::ScalarType{double minphi=-1.;for(size_t ijet=0;ijet< b.jets_pt() ->size();++ijet){if(!IsGoodJet(b, ijet)) continue;double thisdphi=fabs(TVector2::Phi_mpi_pi(b.met_phi()-b.jets_phi() ->at(ijet)));if(minphi< 0.||thisdphi< minphi){minphi=thisdphi;}}return minphi;})
 
const NamedFunc Functions::max_dphi_met_jet ("max_dphi_met_jet", [](const Baby &b) ->NamedFunc::ScalarType{double maxphi=-1.;for(size_t ijet=0;ijet< b.jets_pt() ->size();++ijet){if(!IsGoodJet(b, ijet)) continue;double thisdphi=fabs(TVector2::Phi_mpi_pi(b.met_phi()-b.jets_phi() ->at(ijet)));if(maxphi< 0.||thisdphi > maxphi){maxphi=thisdphi;}}return maxphi;})
 
const NamedFunc Functions::min_dr_lep_jet ("min_dr_lep_jet", [](const Baby &b) ->NamedFunc::ScalarType{double phi1, eta1, phi2, eta2;DileptonAngles(b, eta1, phi1, eta2, phi2);double minr=-1.;for(size_t ijet=0;ijet< b.jets_pt() ->size();++ijet){if(!IsGoodJet(b, ijet)) continue;double dr1=hypot(TVector2::Phi_mpi_pi(phi1-b.jets_phi() ->at(ijet)), eta2-eta1);double dr2=hypot(TVector2::Phi_mpi_pi(phi2-b.jets_phi() ->at(ijet)), eta2-eta1);double thisdr=-1;if(phi1!=-999 &&phi2!=-999){thisdr=std::min(dr1, dr2);}else if(phi1!=-999 &&phi2==-999){thisdr=dr1;}else if(phi1==-999 &&phi2!=-999){thisdr=dr2;}if(minr< 0.||thisdr< minr){minr=thisdr;}}return minr;})
 
const NamedFunc Functions::max_dr_lep_jet ("max_dr_lep_jet", [](const Baby &b) ->NamedFunc::ScalarType{double phi1, eta1, phi2, eta2;DileptonAngles(b, eta1, phi1, eta2, phi2);double maxr=-1.;for(size_t ijet=0;ijet< b.jets_pt() ->size();++ijet){if(!IsGoodJet(b, ijet)) continue;double dr1=hypot(TVector2::Phi_mpi_pi(phi1-b.jets_phi() ->at(ijet)), eta2-eta1);double dr2=hypot(TVector2::Phi_mpi_pi(phi2-b.jets_phi() ->at(ijet)), eta2-eta1);double thisdr=-1;if(phi1!=-999 &&phi2!=-999){thisdr=std::max(dr1, dr2);}else if(phi1!=-999 &&phi2==-999){thisdr=dr1;}else if(phi1==-999 &&phi2!=-999){thisdr=dr2;}if(maxr< 0.||thisdr > maxr){maxr=thisdr;}}return maxr;})
 
bool Functions::IsGoodJet (const Baby &b, size_t ijet)
 
bool Functions::IsGoodElectron (const Baby &b, size_t iel)
 
bool Functions::IsGoodMuon (const Baby &b, size_t imu)
 
bool Functions::IsGoodTrack (const Baby &b, size_t itk)
 
NamedFunc::ScalarType Functions::NJetsWeights_ttISR (const Baby &b, bool use_baby_nisr)
 
NamedFunc::ScalarType Functions::NJetsWeights_vISR (const Baby &b)
 
int Functions::NISRMatch (const Baby &b)
 
void Functions::DileptonAngles (const Baby &b, NamedFunc::ScalarType &eta1, NamedFunc::ScalarType &phi1, NamedFunc::ScalarType &eta2, NamedFunc::ScalarType &phi2)