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

# Content
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