CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
significanceAlgo.h
Go to the documentation of this file.
1 #ifndef SIGMET_ASIGNIFICANCE_H
2 #define SIGMET_ASIGNIFICANCE_H
3 // -*- C++ -*-
4 //
5 // Package: METAlgorithms
6 // Class: SigInputObj
7 //
25 //
26 // Original Author: Kyle Story, Freya Blekman (Cornell University)
27 // Created: Fri Apr 18 11:58:33 CEST 2008
28 //
29 //
30 
31 //
32 // Purpose:
33 //
34 // This subroutine takes in a vector of type SigInputObj that includes
35 // all of the physics objects in the event. It then calculates
36 // the log significance of the MET of the event.
37 //
38 // The Significance (S) is defined as:
39 // ln(S) = 1/2 Chisq_0
40 // where Chisq_0 is the value of Chi squared at MET=0.
41 //
42 //
43 //
44 // Revision history
45 //
46 // Revision 1.2 2009/10/21 11:27:11 fblekman
47 // merged version with cvs head - includes new interfaces for MET significance to make it possible to correct MET objects later and also correct the signficance.
48 //
49 // Revision 1.1 2008/04/18 10:12:55 fblekman
50 // First implementation (very preliminary) of missing ET significance algorithm.
51 // This code is currently still heavily under development so please bear with us.
52 //
53 // cheers,
54 //
55 // Freya (for the Cornell MET significance group)
56 //
57 // Revision 1.2 2008/03/26 17:52:19 kstory
58 // Tower Based Algorithm. significanceAlgo now using matrix operations.
59 //
60 // Revision 1.1.1.1 2008/02/29 22:25:02 kstory
61 // Tower-Based Algorithm
62 //
63 // Revision 1.2 2008/02/13 13:14:37 fblekman
64 // updated version with electrons
65 //
66 // Revision 1.3 2007/12/07 00:20:10 kstory
67 // MET phi was changed to have a range of [-pi, pi]
68 //
69 // Revision 1.2 2007/11/30 22:02:33 kstory
70 // Changed the arguments to allow calculation of the total MET and the MET_phi.
71 //
72 //
73 
74 #include <vector>
75 #include <string>
76 #include <iostream>
77 #include <sstream>
78 
81 #include "TMatrixTBase.h"
82 #include "TMatrixD.h"
83 #include "TVectorD.h"
84 
85 namespace metsig {
87  public:
90 
91  const void addSignifMatrix(const reco::METCovMatrix& input);
92  const void setSignifMatrix(const reco::METCovMatrix& input,
93  const double& met_r,
94  const double& met_phi,
95  const double& met_set);
96  const double significance(double& met_r, double& met_phi, double& met_set);
97  const void addObjects(const std::vector<metsig::SigInputObj>& EventVec);
98  const void subtractObjects(const std::vector<metsig::SigInputObj>& EventVec);
100  // const std::vector<metsig::SigInputObj> eventVec(){return eventVec_;}
101  private:
102  //void rotateMatrix( Double_t theta, reco::METCovMatrix &v);
103 
104  // std::vector<metsig::SigInputObj> eventVec_;
106  // workers:
107  double set_worker_;
108  double xmet_;
109  double ymet_;
110  };
111 } // namespace metsig
112 
113 #endif
const void addObjects(const std::vector< metsig::SigInputObj > &EventVec)
const double significance(double &met_r, double &met_phi, double &met_set)
ROOT::Math::SMatrix< double, 2 > METCovMatrix
Definition: MET.h:39
const void setSignifMatrix(const reco::METCovMatrix &input, const double &met_r, const double &met_phi, const double &met_set)
reset the signficance matrix (this is the most likely case), so that the vector sum can be continued ...
reco::METCovMatrix signifmatrix_
const void subtractObjects(const std::vector< metsig::SigInputObj > &EventVec)
static std::string const input
Definition: EdmProvDump.cc:47
std::vector< Event > EventVec
Definition: Event.h:71
const void addSignifMatrix(const reco::METCovMatrix &input)
reco::METCovMatrix getSignifMatrix() const