CMS 3D CMS Logo

JetVertexMain Class Reference

#include <JetMETCorrections/JetVertexAssociation/interface/JetVertexMain.h>

List of all members.

Public Member Functions

 JetVertexMain (const edm::ParameterSet &parameters)
std::pair< double, boolMain (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


Detailed Description

Definition at line 15 of file JetVertexMain.h.


Constructor & Destructor Documentation

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]

Definition at line 21 of file JetVertexMain.h.

00021 {};


Member Function Documentation

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 }


Member Data Documentation

int JetVertexMain::Algo [private]

Definition at line 36 of file JetVertexMain.h.

double JetVertexMain::cone_size [private]

Definition at line 35 of file JetVertexMain.h.

Referenced by JetVertexMain(), and Main().

double JetVertexMain::cutDeltaZ [private]

Definition at line 33 of file JetVertexMain.h.

Referenced by JetVertexMain(), and Main().

double JetVertexMain::cutSigmaZ [private]

Definition at line 32 of file JetVertexMain.h.

Referenced by JetVertexMain(), and Main().

std::string JetVertexMain::cutType [private]

Definition at line 37 of file JetVertexMain.h.

Referenced by JetVertexMain(), and Main().

bool JetVertexMain::discriminator [private]

Definition at line 38 of file JetVertexMain.h.

Referenced by Main().

double JetVertexMain::threshold [private]

Definition at line 34 of file JetVertexMain.h.

Referenced by JetVertexMain(), and Main().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:26:14 2009 for CMSSW by  doxygen 1.5.4