ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbbAnalysis/VHbbDataFormats/interface/VHbbCandidate.h
Revision: 1.12.2.3
Committed: Wed Nov 28 02:48:02 2012 UTC (12 years, 5 months ago) by ntran
Content type: text/plain
Branch: hbbsubstructDevPostHCP
CVS Tags: hbbsubstructDev_11, hbbsubstructDev_10, hbbsubstructDev_9, hbbsubstructDev_8, hbbsubstructDev_7
Changes since 1.12.2.2: +2 -1 lines
Log Message:
move substructure tools to a new area

File Contents

# User Rev Content
1 tboccali 1.1 #ifndef VHbbCandidate__H
2     #define VHbbCandidate__H
3    
4     #include <TLorentzVector.h>
5     #include <TVector2.h>
6     #include <vector>
7    
8     #include "VHbbAnalysis/VHbbDataFormats/interface/VHbbEvent.h"
9    
10     class VHbbCandidate {
11     public:
12 arizzi 1.7 //Zmumu = 0
13     //Zee = 1
14     //Wmun = 2
15     //Wen = 3
16     //Znn = 4
17    
18     enum CandidateType{Zmumu, Zee, Wmun, Wen, Znn, UNKNOWN};
19 tboccali 1.1
20     VHbbCandidate(){candidateType=UNKNOWN;}
21    
22     class VectorCandidate {
23     public:
24 arizzi 1.10 VectorCandidate() : firstLepton(99999),secondLepton(99999) {}
25 arizzi 1.8 double Mt(CandidateType candidateType) const {
26 arizzi 1.6 if(candidateType==Wen)
27     {
28     float ptl=electrons[0].p4.Pt();
29     float met=mets[0].p4.Pt();
30     float et=ptl+met;
31     return sqrt(et*et - p4.Pt()*p4.Pt() );
32     }
33     if(candidateType==Wmun)
34     {
35     float ptl=muons[0].p4.Pt();
36     float met=mets[0].p4.Pt();
37     float et=ptl+met;
38     return sqrt(et*et - p4.Pt()*p4.Pt() );
39     }
40     return 0;
41     }
42 tboccali 1.4 TLorentzVector p4;
43 tboccali 1.1 std::vector<VHbbEvent::MuonInfo> muons;
44     std::vector<VHbbEvent::ElectronInfo> electrons;
45     std::vector<VHbbEvent::TauInfo> taus;
46     std::vector<VHbbEvent::METInfo> mets;
47    
48 tboccali 1.9 unsigned int firstLepton,secondLepton;
49    
50 tboccali 1.1 };
51    
52     class HiggsCandidate {
53     public:
54 tboccali 1.4 TLorentzVector p4;
55 tboccali 1.1 std::vector<VHbbEvent::SimpleJet> jets;
56 arizzi 1.12 bool HiggsFlag;
57 tboccali 1.1 float deltaTheta;
58 tboccali 1.2 std::vector <float> helicities;
59 tboccali 1.3 public:
60 tboccali 1.1 VHbbEvent::SimpleJet& firstJet(){return jets[0];}
61     VHbbEvent::SimpleJet& secondJet(){return jets[1];}
62     };
63    
64 dlopes 1.11 class FatHiggsCandidate {
65     public:
66     TLorentzVector p4;
67     std::vector<VHbbEvent::SimpleJet> jets;
68     bool FatHiggsFlag;
69     int subjetsSize;
70     float deltaTheta;
71     std::vector <float> helicities;
72     public:
73     VHbbEvent::SimpleJet& firstJet(){return jets[0];}
74     VHbbEvent::SimpleJet& secondJet(){return jets[1];}
75     };
76 ntran 1.12.2.1
77     // *****************************
78     // added by Nhan
79 ntran 1.12.2.2 class FatHiggsCandidateFJ3 {
80 ntran 1.12.2.1 public:
81    
82     TLorentzVector p4;
83 ntran 1.12.2.2 bool FatHiggsFJ3Flag;
84    
85     TLorentzVector p4_pr;
86     TLorentzVector p4_ft;
87     TLorentzVector p4_tr;
88     TLorentzVector area_pr;
89     TLorentzVector area_ft;
90     TLorentzVector area_tr;
91 ntran 1.12.2.1
92     float tau1;
93     float tau2;
94     float tau3;
95     float tau4;
96 ntran 1.12.2.3 float qjetVol;
97    
98 ntran 1.12.2.2 // mdft matching
99     bool matchedMDFTCandidate;
100     TLorentzVector matchedMDFTCandidate_p4;
101     std::vector< TLorentzVector > subjets_mdft_p4;
102     std::vector< TLorentzVector > subjets_mdft_csv;
103    
104     std::vector< TLorentzVector > subjets_pr_p4;
105     std::vector< TLorentzVector > subjets_pr_csv;
106    
107     std::vector< TLorentzVector > subjets_ft_p4;
108     std::vector< TLorentzVector > subjets_ft_csv;
109    
110 ntran 1.12.2.1
111     public:
112     TLorentzVector getp4(){ return p4; }
113     };
114     // *****************************
115    
116 tboccali 1.1 void setCandidateType (CandidateType c){candidateType = c;}
117 arizzi 1.8
118    
119     double deltaPhi() const {
120     return V.p4.DeltaPhi(H.p4);
121     }
122    
123     double Mt() const {
124     return V.Mt(candidateType);
125     }
126 tboccali 1.1
127 arizzi 1.8 int additionalLeptons() const {
128     int expectedLeptons = 0;
129     if( candidateType == Wmun || candidateType == Wen) expectedLeptons =1;
130     if( candidateType == Zmumu || candidateType == Zee) expectedLeptons =2;
131    
132     return ( V.muons.size() + V.electrons.size() - expectedLeptons);
133    
134     }
135    
136 tboccali 1.1 public:
137 tboccali 1.4 TLorentzVector p4(){return V.p4+H.p4;}
138 tboccali 1.1 CandidateType candidateType;
139     HiggsCandidate H;
140 dlopes 1.11 FatHiggsCandidate FatH;
141 ntran 1.12.2.2 FatHiggsCandidateFJ3 FatHFJ3;
142 tboccali 1.1 VectorCandidate V;
143     std::vector<VHbbEvent::SimpleJet> additionalJets;
144 arizzi 1.12 std::vector<VHbbEvent::SimpleJet> additionalJetsFat;
145 tboccali 1.1 };
146    
147    
148     #endif