test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 
80 #include "TMatrixTBase.h"
81 #include "TMatrixD.h"
82 #include "TVectorD.h"
83 
84 namespace metsig{
86  public:
89 
90  const void addSignifMatrix(const TMatrixD &input);
91  const void setSignifMatrix(const TMatrixD &input,const double &met_r, const double &met_phi, const double &met_set);
92  const double significance(double& met_r, double& met_phi, double& met_set);
93  const void addObjects(const std::vector<metsig::SigInputObj>& EventVec);
94  const void subtractObjects(const std::vector<metsig::SigInputObj>& EventVec);
95  TMatrixD getSignifMatrix() const {return signifmatrix_;}
96  // const std::vector<metsig::SigInputObj> eventVec(){return eventVec_;}
97  private:
98  void rotateMatrix( Double_t theta, TMatrixD &v);
99 
100  // std::vector<metsig::SigInputObj> eventVec_;
101  TMatrixD signifmatrix_;
102  // workers:
103  double set_worker_;
104  double xmet_;
105  double ymet_;
106  };
107 }
108 
109 #endif
const void addObjects(const std::vector< metsig::SigInputObj > &EventVec)
void rotateMatrix(Double_t theta, TMatrixD &v)
const double significance(double &met_r, double &met_phi, double &met_set)
Geom::Theta< T > theta() const
const void subtractObjects(const std::vector< metsig::SigInputObj > &EventVec)
static std::string const input
Definition: EdmProvDump.cc:44
TMatrixD getSignifMatrix() const
const void addSignifMatrix(const TMatrixD &input)
const void setSignifMatrix(const TMatrixD &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 ...