Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MCNNpid Class Reference

#include <MCNNpid.h>

List of all members.

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

PDFReaderpdfreader
Bool_t Dof
Bool_t Doq
Bool_t Doy
Bool_t Domfqm
Int_t minbestmatches


Constructor & Destructor Documentation

MCNNpid::MCNNpid  ) 
 

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 }

MCNNpid::MCNNpid const Char_t *  pdffilename  ) 
 

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 }

MCNNpid::MCNNpid Char_t  mode_in[],
const Char_t *  pdffilename
 

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 }

MCNNpid::~MCNNpid  ) 
 

Definition at line 61 of file MCNNpid.cxx.

00061 {}


Member Function Documentation

Double_t MCNNpid::GetMCNNpid NueRecord nuerec  ) 
 

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 }

Double_t MCNNpid::GetMCNNpid NueAnaReader nueana  ) 
 

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 }

void MCNNpid::Setycut Float_t  y_cut_in  ) 
 

Definition at line 192 of file MCNNpid.cxx.

References pdfreader, and PDFReader::Setycut().

Referenced by MCNNFiller::Setycut().

00192                                      {
00193 
00194   if(pdfreader!=NULL){
00195     pdfreader->Setycut(y_cut_in);
00196   }
00197 
00198 }


Member Data Documentation

Bool_t MCNNpid::Dof [private]
 

Definition at line 38 of file MCNNpid.h.

Referenced by GetMCNNpid(), and MCNNpid().

Bool_t MCNNpid::Domfqm [private]
 

Definition at line 41 of file MCNNpid.h.

Referenced by GetMCNNpid(), and MCNNpid().

Bool_t MCNNpid::Doq [private]
 

Definition at line 39 of file MCNNpid.h.

Referenced by GetMCNNpid(), and MCNNpid().

Bool_t MCNNpid::Doy [private]
 

Definition at line 40 of file MCNNpid.h.

Referenced by GetMCNNpid(), and MCNNpid().

Int_t MCNNpid::minbestmatches [private]
 

Definition at line 42 of file MCNNpid.h.

Referenced by MCNNpid().

PDFReader* MCNNpid::pdfreader [private]
 

Definition at line 37 of file MCNNpid.h.

Referenced by GetMCNNpid(), MCNNpid(), and Setycut().


The documentation for this class was generated from the following files:
Generated on Mon Feb 15 11:09:31 2010 for loon by  doxygen 1.3.9.1