#include <RecoEgamma/EgammaTools/interface/ConversionLikelihoodCalculator.h>
Public Member Functions | |
double | calculateLikelihood (reco::ConversionRef conversion) |
ConversionLikelihoodCalculator () | |
void | setWeightsFile (const char *weightsFile) |
Private Attributes | |
float | log_abs_cot_theta_ |
float | log_abs_delta_phi_ |
float | log_chi2_max_pt_ |
float | log_chi2_min_pt_ |
float | log_e_over_p_ |
TMVA::Reader * | reader_ |
Definition at line 9 of file ConversionLikelihoodCalculator.h.
ConversionLikelihoodCalculator::ConversionLikelihoodCalculator | ( | ) |
Definition at line 4 of file ConversionLikelihoodCalculator.cc.
References log_abs_cot_theta_, log_abs_delta_phi_, log_chi2_max_pt_, log_chi2_min_pt_, log_e_over_p_, and reader_.
00005 { 00006 reader_ = new TMVA::Reader(); 00007 00008 reader_->AddVariable("log(e_over_p)", &log_e_over_p_); 00009 reader_->AddVariable("log(abs(cot_theta))", &log_abs_cot_theta_); 00010 reader_->AddVariable("log(abs(delta_phi))", &log_abs_delta_phi_); 00011 reader_->AddVariable("log(chi2_max_pt)", &log_chi2_max_pt_); 00012 reader_->AddVariable("log(chi2_min_pt)", &log_chi2_min_pt_); 00013 00014 }
double ConversionLikelihoodCalculator::calculateLikelihood | ( | reco::ConversionRef | conversion | ) |
Definition at line 21 of file ConversionLikelihoodCalculator.cc.
References kinem::delta_phi(), funct::log(), log_abs_cot_theta_, log_abs_delta_phi_, log_chi2_max_pt_, log_chi2_min_pt_, log_e_over_p_, pi, and reader_.
Referenced by PhotonProducer::solveAmbiguity().
00022 { 00023 if (conversion->nTracks() != 2) return -1.; 00024 00025 log_e_over_p_ = log(conversion->EoverP()); 00026 00027 log_abs_cot_theta_ = log(fabs(conversion->pairCotThetaSeparation())); 00028 00029 double delta_phi = conversion->tracks()[0]->innerMomentum().phi()-conversion->tracks()[1]->innerMomentum().phi(); 00030 double pi = 3.14159265; 00031 // phi normalization 00032 while (delta_phi > pi) delta_phi -= 2*pi; 00033 while (delta_phi < -pi) delta_phi += 2*pi; 00034 log_abs_delta_phi_ = log(fabs(delta_phi)); 00035 00036 double chi2_1 = conversion->tracks()[0]->normalizedChi2(); 00037 double pt_1 = conversion->tracks()[0]->pt(); 00038 00039 double chi2_2 = conversion->tracks()[1]->normalizedChi2(); 00040 double pt_2 = conversion->tracks()[1]->pt(); 00041 00042 double chi2_max_pt=chi2_1; 00043 double chi2_min_pt=chi2_2; 00044 00045 if (pt_2 > pt_1) { 00046 chi2_max_pt=chi2_2; 00047 chi2_min_pt=chi2_1; 00048 } 00049 00050 log_chi2_max_pt_ = log(chi2_max_pt); 00051 log_chi2_min_pt_ = log(chi2_min_pt); 00052 00053 return reader_->EvaluateMVA("Likelihood"); 00054 }
void ConversionLikelihoodCalculator::setWeightsFile | ( | const char * | weightsFile | ) |
Definition at line 16 of file ConversionLikelihoodCalculator.cc.
References reader_.
Referenced by PhotonProducer::beginJob().
00017 { 00018 reader_->BookMVA("Likelihood", weightsFile); 00019 }
float ConversionLikelihoodCalculator::log_abs_cot_theta_ [private] |
Definition at line 20 of file ConversionLikelihoodCalculator.h.
Referenced by calculateLikelihood(), and ConversionLikelihoodCalculator().
float ConversionLikelihoodCalculator::log_abs_delta_phi_ [private] |
Definition at line 21 of file ConversionLikelihoodCalculator.h.
Referenced by calculateLikelihood(), and ConversionLikelihoodCalculator().
float ConversionLikelihoodCalculator::log_chi2_max_pt_ [private] |
Definition at line 22 of file ConversionLikelihoodCalculator.h.
Referenced by calculateLikelihood(), and ConversionLikelihoodCalculator().
float ConversionLikelihoodCalculator::log_chi2_min_pt_ [private] |
Definition at line 23 of file ConversionLikelihoodCalculator.h.
Referenced by calculateLikelihood(), and ConversionLikelihoodCalculator().
float ConversionLikelihoodCalculator::log_e_over_p_ [private] |
Definition at line 19 of file ConversionLikelihoodCalculator.h.
Referenced by calculateLikelihood(), and ConversionLikelihoodCalculator().
TMVA::Reader* ConversionLikelihoodCalculator::reader_ [private] |
Definition at line 18 of file ConversionLikelihoodCalculator.h.
Referenced by calculateLikelihood(), ConversionLikelihoodCalculator(), and setWeightsFile().