#include <JetMETCorrections/JetVertexAssociation/interface/JetVertexMain.h>
Public Member Functions | |
JetVertexMain (const edm::ParameterSet ¶meters) | |
std::pair< double, bool > | Main (const reco::CaloJet &jet, edm::Handle< reco::TrackCollection > tracks, double SIGNAL_V_Z, double SIGNAL_V_Z_Error) |
~JetVertexMain () | |
Private Member Functions | |
double | DeltaR (double eta1, double eta2, double phi1, double phi2) |
double | Track_Pt (double px, double py) |
Private Attributes | |
int | Algo |
double | cone_size |
double | cutDeltaZ |
double | cutSigmaZ |
std::string | cutType |
bool | discriminator |
double | threshold |
Definition at line 15 of file JetVertexMain.h.
JetVertexMain::JetVertexMain | ( | const edm::ParameterSet & | parameters | ) |
Definition at line 12 of file JetVertexMain.cc.
References cone_size, cutDeltaZ, cutSigmaZ, cutType, edm::ParameterSet::getParameter(), and threshold.
00012 { 00013 00014 cutSigmaZ = parameters.getParameter<double>("JV_sigmaZ"); 00015 cutDeltaZ = parameters.getParameter<double>("JV_deltaZ"); 00016 threshold = parameters.getParameter<double>("JV_alpha_threshold"); 00017 cone_size = parameters.getParameter<double>("JV_cone_size"); 00018 Algo = parameters.getParameter<int>("JV_type_Algo"); 00019 cutType = parameters.getParameter<std::string>("JV_cutType"); 00020 00021 }
JetVertexMain::~JetVertexMain | ( | ) | [inline] |
double JetVertexMain::DeltaR | ( | double | eta1, | |
double | eta2, | |||
double | phi1, | |||
double | phi2 | |||
) | [private] |
Definition at line 89 of file JetVertexMain.cc.
References funct::sqrt().
Referenced by Main().
00089 { 00090 00091 double dphi = fabs(phi1-phi2); 00092 if(dphi > M_PI) dphi = 2*M_PI - dphi; 00093 double deta = fabs(eta1-eta2); 00094 return sqrt(dphi*dphi + deta*deta); 00095 00096 }
std::pair< double, bool > JetVertexMain::Main | ( | const reco::CaloJet & | jet, | |
edm::Handle< reco::TrackCollection > | tracks, | |||
double | SIGNAL_V_Z, | |||
double | SIGNAL_V_Z_Error | |||
) |
Definition at line 24 of file JetVertexMain.cc.
References cone_size, GenMuonPlsPt100GeV_cfg::cout, cutDeltaZ, cutSigmaZ, cutType, DeltaR(), discriminator, lat::endl(), reco::Particle::et(), reco::Particle::eta(), reco::Particle::phi(), funct::sqrt(), threshold, track, and Track_Pt().
00025 { 00026 00027 std::pair<double, bool> parameter; 00028 00029 double jet_et = jet.et(); 00030 double jet_phi = jet.phi(); 00031 double jet_eta = jet.eta(); 00032 00033 // cout<<"JET: "<<jet_et<<endl; 00034 double Pt_jets_X = 0. ; 00035 double Pt_jets_Y = 0. ; 00036 double Pt_jets_X_tot = 0. ; 00037 double Pt_jets_Y_tot = 0. ; 00038 00039 TrackCollection::const_iterator track = tracks->begin (); 00040 00041 if (tracks->size() > 0 ) { 00042 for (; track != tracks->end (); track++) { 00043 double Vertex_Z = track->vz(); 00044 double Vertex_Z_Error = track->dzError(); 00045 double track_eta = track->eta(); 00046 double track_phi = track->phi(); 00047 00048 if (DeltaR(track_eta,jet_eta, track_phi, jet_phi) < cone_size) { 00049 00050 double DeltaZ = Vertex_Z-signal_vert_Z; 00051 double DeltaZ_Error = sqrt((Vertex_Z_Error*Vertex_Z_Error)+(signal_vert_z_error*signal_vert_z_error)); 00052 Pt_jets_X_tot += track->px(); 00053 Pt_jets_Y_tot += track->py(); 00054 if (cutType == "sig") discriminator = (fabs(DeltaZ)/DeltaZ_Error) <= cutSigmaZ; 00055 else discriminator = fabs(DeltaZ) < cutDeltaZ; 00056 00057 if (discriminator){ 00058 00059 Pt_jets_X += track->px(); 00060 Pt_jets_Y += track->py(); 00061 00062 } 00063 00064 } 00065 } 00066 } 00067 double Var = -1; 00068 00069 if (Algo == 1) Var = Track_Pt(Pt_jets_X, Pt_jets_Y)/jet_et; 00070 else if (Algo == 2) { 00071 if (Track_Pt(Pt_jets_X_tot, Pt_jets_Y_tot)!=0) Var = Track_Pt(Pt_jets_X, Pt_jets_Y)/Track_Pt(Pt_jets_X_tot, Pt_jets_Y_tot); 00072 else std::cout << "[Jets] JetVertexAssociation: Warning! problems for Algo = 2: possible division by zero .." << std::endl; 00073 } 00074 else { 00075 00076 Var = Track_Pt(Pt_jets_X, Pt_jets_Y)/jet_et; 00077 std::cout << "[Jets] JetVertexAssociation: Warning! Algo = " << Algo << " not found; using Algo = 1" << std::endl; 00078 } 00079 00080 // cout<<"Var = "<<Var<<endl; 00081 00082 if (Var >= threshold) parameter = std::pair<double, bool>(Var, true); 00083 else parameter = std::pair<double, bool>(Var, false); 00084 00085 return parameter; 00086 00087 }
double JetVertexMain::Track_Pt | ( | double | px, | |
double | py | |||
) | [private] |
Definition at line 98 of file JetVertexMain.cc.
References funct::sqrt().
Referenced by Main().
00098 { 00099 00100 return sqrt(px*px+py*py); 00101 00102 }
int JetVertexMain::Algo [private] |
Definition at line 36 of file JetVertexMain.h.
double JetVertexMain::cone_size [private] |
double JetVertexMain::cutDeltaZ [private] |
double JetVertexMain::cutSigmaZ [private] |
std::string JetVertexMain::cutType [private] |
bool JetVertexMain::discriminator [private] |
double JetVertexMain::threshold [private] |