00001 #ifndef SIGMET_ASIGNIFICANCE_H 00002 #define SIGMET_ASIGNIFICANCE_H 00003 // -*- C++ -*- 00004 // 00005 // Package: METAlgorithms 00006 // Class: SigInputObj 00007 // 00025 // 00026 // Original Author: Kyle Story, Freya Blekman (Cornell University) 00027 // Created: Fri Apr 18 11:58:33 CEST 2008 00028 // $Id: significanceAlgo.h,v 1.1 2008/04/18 10:12:55 fblekman Exp $ 00029 // 00030 // 00031 00032 // 00033 // Purpose: 00034 // 00035 // This subroutine takes in a vector of type SigInputObj that includes 00036 // all of the physics objects in the event. It then calculates 00037 // the log significance of the MET of the event. 00038 // 00039 // The Significance (S) is defined as: 00040 // ln(S) = 1/2 Chisq_0 00041 // where Chisq_0 is the value of Chi squared at MET=0. 00042 // 00043 // 00044 // $Id: significanceAlgo.h,v 1.1 2008/04/18 10:12:55 fblekman Exp $ 00045 // 00046 // Revision history 00047 // 00048 // $Log: significanceAlgo.h,v $ 00049 // Revision 1.1 2008/04/18 10:12:55 fblekman 00050 // First implementation (very preliminary) of missing ET significance algorithm. 00051 // This code is currently still heavily under development so please bear with us. 00052 // 00053 // cheers, 00054 // 00055 // Freya (for the Cornell MET significance group) 00056 // 00057 // Revision 1.2 2008/03/26 17:52:19 kstory 00058 // Tower Based Algorithm. significanceAlgo now using matrix operations. 00059 // 00060 // Revision 1.1.1.1 2008/02/29 22:25:02 kstory 00061 // Tower-Based Algorithm 00062 // 00063 // Revision 1.2 2008/02/13 13:14:37 fblekman 00064 // updated version with electrons 00065 // 00066 // Revision 1.3 2007/12/07 00:20:10 kstory 00067 // MET phi was changed to have a range of [-pi, pi] 00068 // 00069 // Revision 1.2 2007/11/30 22:02:33 kstory 00070 // Changed the arguments to allow calculation of the total MET and the MET_phi. 00071 // 00072 // 00073 00074 #include <vector> 00075 #include <string> 00076 #include <iostream> 00077 #include <sstream> 00078 00079 #include "RecoMET/METAlgorithms/interface/SigInputObj.h" 00080 #include "TMatrixTBase.h" 00081 #include "TMatrixD.h" 00082 #include "TVectorD.h" 00083 00084 namespace metsig{ 00085 //double chisq( double x, double y, double X0, double Y0, double rho, double sigma_x, double sigma_y); 00086 void rotateMatrix( Double_t theta, TMatrixD &v); 00087 double ASignificance(const std::vector<metsig::SigInputObj>& EventVec, double& met_r, double& met_phi, double& met_set); 00088 } 00089 00090 #endif