#include <MCNNpid.h>
Public Member Functions | |
| MCNNpid () | |
| MCNNpid (const Char_t *pdffilename) | |
| MCNNpid (Char_t mode_in[], const Char_t *pdffilename) | |
| ~MCNNpid () | |
| Double_t | GetMCNNpid (NueAnaReader *nueana) |
| Double_t | GetMCNNpid (NueRecord *nuerec) |
| void | Setycut (Float_t y_cut_in) |
Private Attributes | |
| PDFReader * | pdfreader |
| Bool_t | Dof |
| Bool_t | Doq |
| Bool_t | Doy |
| Bool_t | Domfqm |
| Int_t | minbestmatches |
|
|
Definition at line 13 of file MCNNpid.cxx. References Dof, Domfqm, Doq, Doy, minbestmatches, and pdfreader. 00013 {
00014
00015 //Default mode
00016 Dof=true;
00017 Doq=false;
00018 Doy=true;
00019 Domfqm=true;
00020
00021 //since pdfreader not set it won't even attempt to calculate pid; will just return -1 in GetMCNNpid method
00022 pdfreader=NULL;
00023 minbestmatches=50;
00024
00025 }
|
|
|
Definition at line 27 of file MCNNpid.cxx. References Dof, Domfqm, Doq, Doy, and pdfreader. 00027 {
00028
00029 //Default mode
00030 Dof=true;
00031 Doq=false;
00032 Doy=true;
00033 Domfqm=true;
00034
00035 //-->file
00036 pdfreader = new PDFReader(pdffilename);
00037
00038 }
|
|
||||||||||||
|
Definition at line 40 of file MCNNpid.cxx. References Dof, Domfqm, Doq, Doy, and pdfreader. 00040 {
00041
00042 string mode=mode_in;
00043 if(mode.find("f")!=string::npos){
00044 Dof=true;
00045 }
00046 if(mode.find("q")!=string::npos){
00047 Doq=true;
00048 }
00049 if(mode.find("y")!=string::npos){
00050 Doy=true;
00051 }
00052 if(mode.find("m")!=string::npos){
00053 Domfqm=true;
00054 }
00055
00056 //Default file
00057 pdfreader = new PDFReader(pdffilename);
00058
00059 }
|
|
|
Definition at line 61 of file MCNNpid.cxx. 00061 {}
|
|
|
Definition at line 66 of file MCNNpid.cxx. References MCNNVars::bestmatches, Dof, Domfqm, Doq, Doy, PDFReader::GetInt_f_bg(), PDFReader::GetInt_f_sig(), PDFReader::GetProb_f_bg(), PDFReader::GetProb_f_sig(), PDFReader::GetProb_mfqm_bg(), PDFReader::GetProb_mfqm_sig(), PDFReader::GetProb_q_bg(), PDFReader::GetProb_q_sig(), PDFReader::GetProb_y_bg(), PDFReader::GetProb_y_sig(), NueRecord::mcnnv, and pdfreader. 00066 {
00067
00068 Double_t prob_f_sig = 1.;
00069 Double_t prob_f_bg = 1.;
00070 Double_t prob_q_sig = 1.;
00071 Double_t prob_q_bg = 1.;
00072 Double_t prob_y_sig = 1.;
00073 Double_t prob_y_bg = 1.;
00074 Double_t prob_mfqm_sig = 1.;
00075 Double_t prob_mfqm_bg = 1.;
00076
00077 Double_t mcnnpid=-1;
00078
00079 if(pdfreader!=NULL && nuerec->mcnnv.bestmatches>0){
00080 if(Dof==true){
00081 prob_f_sig = pdfreader->GetProb_f_sig(nuerec);
00082 prob_f_bg = pdfreader->GetProb_f_bg(nuerec);
00083
00084 }
00085 if(Doq==true){
00086 prob_q_sig = pdfreader->GetProb_q_sig(nuerec);
00087 prob_q_bg = pdfreader->GetProb_q_bg(nuerec);
00088 }
00089 if(Doy==true){
00090 prob_y_sig = pdfreader->GetProb_y_sig(nuerec);
00091 prob_y_bg = pdfreader->GetProb_y_bg(nuerec);
00092 }
00093 if(Domfqm==true){
00094 prob_mfqm_sig = pdfreader->GetProb_mfqm_sig(nuerec);
00095 prob_mfqm_bg = pdfreader->GetProb_mfqm_bg(nuerec);
00096
00097 }
00098
00099 Double_t prob_sig=prob_f_sig*prob_q_sig*prob_y_sig*prob_mfqm_sig;
00100 Double_t prob_bg=prob_f_bg*prob_q_bg*prob_y_bg*prob_mfqm_bg;
00101 Double_t int_sig=pdfreader->GetInt_f_sig(nuerec);
00102 Double_t int_bg=pdfreader->GetInt_f_bg(nuerec);
00103
00104 Bool_t not_in_bound=false;//<--when the energy is out of range of the PDFs we will return default value (-1)
00105
00106 if(int_sig>0){
00107 prob_sig=prob_sig*1./(int_sig*int_sig);
00108 }
00109 else not_in_bound=true;
00110 if(int_bg>0){
00111 prob_bg=prob_bg*1./(int_bg*int_bg);
00112 } else not_in_bound=true;
00113
00114 if(not_in_bound==false){
00115 mcnnpid=prob_sig/(prob_sig+prob_bg);
00116 }
00117 }
00118
00119 return mcnnpid;
00120
00121 }
|
|
|
Definition at line 124 of file MCNNpid.cxx. References MCNNVars::bestmatches, Dof, Domfqm, Doq, Doy, PDFReader::GetInt_f_bg(), PDFReader::GetInt_f_sig(), PDFReader::GetProb_f_bg(), PDFReader::GetProb_f_sig(), PDFReader::GetProb_mfqm_bg(), PDFReader::GetProb_mfqm_sig(), PDFReader::GetProb_q_bg(), PDFReader::GetProb_q_sig(), PDFReader::GetProb_y_bg(), PDFReader::GetProb_y_sig(), NueRecord::mcnnv, NueAnaReader::nuerecord, and pdfreader. Referenced by MCNNFiller::FillMCNN(). 00124 {
00125
00126 Double_t prob_f_sig = 1.;
00127 Double_t prob_f_bg = 1.;
00128 Double_t prob_q_sig = 1.;
00129 Double_t prob_q_bg = 1.;
00130 Double_t prob_y_sig = 1.;
00131 Double_t prob_y_bg = 1.;
00132 Double_t prob_mfqm_sig = 1.;
00133 Double_t prob_mfqm_bg = 1.;
00134
00135 Double_t mcnnpid=-1;
00136
00137 if(pdfreader!=NULL && nueana->nuerecord->mcnnv.bestmatches>0){
00138 if(Dof==true){
00139 //cout << "Estoy en Dof" << endl;//tmp
00140 //cout << "f y Ereco " << nueana->GetfracCC() << "," << nueana->nuerecord->srevent.phNueGeV << endl;//tmp
00141 prob_f_sig = pdfreader->GetProb_f_sig(nueana);
00142 prob_f_bg = pdfreader->GetProb_f_bg(nueana);
00143 //cout << "Prob sig y bg " << prob_f_sig << "," << prob_f_bg << endl;//tmp
00144 }
00145 if(Doq==true){
00146 //cout << "Estoy en Doq" << endl;//tmp
00147 //cout << "q y Ereco " << nueana->nuerecord->mcnnv.qtot << "," << nueana->nuerecord->srevent.phNueGeV << endl;//tmp
00148 prob_q_sig = pdfreader->GetProb_q_sig(nueana);
00149 prob_q_bg = pdfreader->GetProb_q_bg(nueana);
00150 //cout << "Prob sig y bg " << prob_q_sig << "," << prob_q_bg << endl;//tmp
00151 }
00152 if(Doy==true){
00153 //cout << "Estoy en Doy" << endl;//tmp
00154 //cout << "y y Ereco " << nueana->Getymean() << "," << nueana->nuerecord->srevent.phNueGeV << endl;//tmp
00155 prob_y_sig = pdfreader->GetProb_y_sig(nueana);
00156 prob_y_bg = pdfreader->GetProb_y_bg(nueana);
00157 //cout << "Prob sig y bg " << prob_y_sig << "," << prob_y_bg << endl;//tmp
00158 }
00159 if(Domfqm==true){
00160 //cout << "Estoy en Domfqm" << endl;//tmp
00161 //cout << "mfqm y Ereco " << nueana->GetMeanFracQMatched() << "," << nueana->nuerecord->srevent.phNueGeV << endl;//tmp
00162 prob_mfqm_sig = pdfreader->GetProb_mfqm_sig(nueana);
00163 prob_mfqm_bg = pdfreader->GetProb_mfqm_bg(nueana);
00164 //cout << "Prob sig y bg " << prob_mfqm_sig << "," << prob_mfqm_bg << endl;//tmp
00165 }
00166
00167 Double_t prob_sig=prob_f_sig*prob_q_sig*prob_y_sig*prob_mfqm_sig;
00168 Double_t prob_bg=prob_f_bg*prob_q_bg*prob_y_bg*prob_mfqm_bg;
00169 Double_t int_sig=pdfreader->GetInt_f_sig(nueana);
00170 Double_t int_bg=pdfreader->GetInt_f_bg(nueana);
00171
00172 Bool_t not_in_bound=false;//<--when the energy is out of range of the PDFs we will return default value (-1)
00173
00174 if(int_sig>0){
00175 prob_sig=prob_sig*1./(int_sig*int_sig);
00176 }
00177 else not_in_bound=true;
00178 if(int_bg>0){
00179 prob_bg=prob_bg*1./(int_bg*int_bg);
00180 } else not_in_bound=true;
00181
00182 if(not_in_bound==false){
00183 mcnnpid=prob_sig/(prob_sig+prob_bg);
00184 }
00185 }
00186
00187 return mcnnpid;
00188
00189 }
|
|
|
Definition at line 192 of file MCNNpid.cxx. References pdfreader, and PDFReader::Setycut(). Referenced by MCNNFiller::Setycut().
|
|
|
Definition at line 38 of file MCNNpid.h. Referenced by GetMCNNpid(), and MCNNpid(). |
|
|
Definition at line 41 of file MCNNpid.h. Referenced by GetMCNNpid(), and MCNNpid(). |
|
|
Definition at line 39 of file MCNNpid.h. Referenced by GetMCNNpid(), and MCNNpid(). |
|
|
Definition at line 40 of file MCNNpid.h. Referenced by GetMCNNpid(), and MCNNpid(). |
|
|
Definition at line 42 of file MCNNpid.h. Referenced by MCNNpid(). |
|
|
Definition at line 37 of file MCNNpid.h. Referenced by GetMCNNpid(), MCNNpid(), and Setycut(). |
1.3.9.1