ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Anghel/macros/interface/MatrixMethod.h
Revision: 1.1
Committed: Fri Jan 29 23:09:14 2010 UTC (15 years, 3 months ago) by anghel
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Log Message:
Revision 29Jan2010

File Contents

# User Rev Content
1 anghel 1.1 #include <iostream>
2     #include <vector>
3     #include "TMath.h"
4     #include <string>
5     #include <fstream>
6     #include <vector>
7    
8    
9     struct genInfo {
10     genInfo(){nTight = 0; nLooseMinTight = 0;}
11     int nTight;
12     int nLooseMinTight;
13     };
14    
15     struct sampleInfo {
16     sampleInfo() {
17     epsS = 0;
18     DepsS = 0;
19     MCinfo = genInfo();
20     }
21     double epsS;
22     double DepsS;
23     genInfo MCinfo;
24     };
25    
26     struct outInfo {
27     outInfo(){nSig = 0; nBkg = 0; errSig = 0; errBkg = 0;}
28     double nSig;
29     double nBkg;
30     double errSig;
31     double errBkg;
32     };
33    
34     // The function for calculating teh quantities and their errors
35     // N1 = loose minus tight ; N2 = tight
36     outInfo mxCalculate(int N1, int N2, double epsSig, double DepsSig ,double epsBkg ,double DepsBkg){
37     double a = 0.0;
38     double b = 0.0;
39     double c = 0.0;
40     double d = 0.0;
41     double e = 0.0;
42     double f = 0.0;
43     double g = 0.0;
44     double h = 0.0;
45     double DN1 = 0.0;
46     double DN2 = 0.0;
47    
48     outInfo output;
49    
50     a = epsBkg*((epsBkg*(N1+N2))-N2)/((epsSig-epsBkg)*(epsSig-epsBkg));
51     b = epsSig*(N2-(epsSig*(N1+N2)))/((epsSig-epsBkg)*(epsSig-epsBkg));
52     c = -epsSig*epsBkg/(epsSig-epsBkg);
53     d = epsSig*(1-epsBkg)/(epsSig-epsBkg);
54     e = epsBkg*(N2-(epsBkg*(N1+N2)))/((epsSig-epsBkg)*(epsSig-epsBkg));
55     f = epsSig*((epsSig*(N1+N2))-N2)/((epsSig-epsBkg)*(epsSig-epsBkg));
56     g = epsBkg*epsSig/(epsSig-epsBkg);
57     h = epsBkg*(epsSig-1)/(epsSig-epsBkg);
58    
59     DN1 = sqrt(N1);
60     DN2 = sqrt(N2);
61    
62     output.nSig = epsSig*(N2-(epsBkg*(N1+N2)))/(epsSig-epsBkg);
63     output.nBkg = epsBkg*((epsSig*(N1+N2))-N2)/(epsSig-epsBkg);
64     output.errSig = sqrt((a*a*DepsSig*DepsSig)+(b*b*DepsBkg*DepsBkg)+(c*c*DN1*DN1)+(d*d*DN2*DN2));
65     output.errBkg = sqrt((e*e*DepsSig*DepsSig)+(f*f*DepsBkg*DepsBkg)+(g*g*DN1*DN1)+(h*h*DN2*DN2));
66    
67     return output;
68     }
69    
70    
71