1 |
loizides |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
ksung |
1.6 |
// $Id: Met.h,v 1.5 2008/09/10 17:04:38 ksung Exp $
|
3 |
loizides |
1.1 |
//
|
4 |
|
|
// Met
|
5 |
|
|
//
|
6 |
|
|
// Details to be worked out...
|
7 |
|
|
//
|
8 |
|
|
// Authors: C.Loizides
|
9 |
|
|
//--------------------------------------------------------------------------------------------------
|
10 |
|
|
|
11 |
loizides |
1.4 |
#ifndef MITANA_DATATREE_MET_H
|
12 |
|
|
#define MITANA_DATATREE_MET_H
|
13 |
loizides |
1.1 |
|
14 |
|
|
#include "MitAna/DataTree/interface/Particle.h"
|
15 |
|
|
#include "MitAna/DataTree/interface/Track.h"
|
16 |
|
|
|
17 |
|
|
namespace mithep
|
18 |
|
|
{
|
19 |
|
|
class Met : public Particle
|
20 |
|
|
{
|
21 |
|
|
public:
|
22 |
ksung |
1.5 |
Met() : fMex(0), fMey(0) {}
|
23 |
|
|
Met(Double_t mex, Double_t mey) : fMex(mex), fMey(mey) {}
|
24 |
loizides |
1.1 |
~Met() {}
|
25 |
|
|
|
26 |
ksung |
1.6 |
Double_t Charge() const { return 0; }
|
27 |
|
|
Double_t E() const { return Pt();}
|
28 |
|
|
Double_t Eta() const { return Mom().Eta();}
|
29 |
|
|
Double_t Mass() const { return TMath::Sqrt(Mom().M2()); }
|
30 |
|
|
FourVector Mom() const { return FourVector(fMex,fMey,0,Pt()); }
|
31 |
|
|
Double_t Phi() const { return TMath::ATan2(fMey,fMex); }
|
32 |
|
|
Double_t Pt() const { return TMath::Sqrt(fMex*fMex+fMey*fMey);}
|
33 |
|
|
Double_t Px() const { return fMex;}
|
34 |
|
|
Double_t Py() const { return fMey;}
|
35 |
|
|
Double_t Pz() const { return 0; }
|
36 |
|
|
Double_t P() const { return Pt(); }
|
37 |
loizides |
1.2 |
|
38 |
ksung |
1.6 |
Double_t SumEt() const { return fSumEt; }
|
39 |
|
|
Double_t MetSig() const { return fMetSig; }
|
40 |
|
|
Double_t E_longitudinal() const { return fElongit; }
|
41 |
ksung |
1.5 |
|
42 |
ksung |
1.6 |
const std::vector<Double_t> Dmex() const { return fDmex; }
|
43 |
|
|
const std::vector<Double_t> Dmey() const { return fDmey; }
|
44 |
|
|
const std::vector<Double_t> DSumEt() const { return fDSumEt; }
|
45 |
ksung |
1.5 |
|
46 |
ksung |
1.6 |
Double_t MaxEtInEmTowers() const { return fMaxEtInEmTowers; }
|
47 |
|
|
Double_t MaxEtInHadTowers() const { return fMaxEtInHadTowers; }
|
48 |
|
|
Double_t EtFractionHadronic() const { return fEtFractionHadronic; }
|
49 |
|
|
Double_t EmEtFraction() const { return fEmEtFraction; }
|
50 |
|
|
Double_t HadEtInHB() const { return fHadEtInHB; }
|
51 |
|
|
Double_t HadEtInHO() const { return fHadEtInHO; }
|
52 |
|
|
Double_t HadEtInHE() const { return fHadEtInHE; }
|
53 |
|
|
Double_t HadEtInHF() const { return fHadEtInHF; }
|
54 |
|
|
Double_t EmEtInEB() const { return fEmEtInEB; }
|
55 |
|
|
Double_t EmEtInEE() const { return fEmEtInEE; }
|
56 |
|
|
Double_t EmEtInHF() const { return fEmEtInHF; }
|
57 |
|
|
Double_t CaloSumEtInpHF() const { return fCaloSumEtInpHF; }
|
58 |
|
|
Double_t CaloSumEtInmHF() const { return fCaloSumEtInmHF; }
|
59 |
|
|
Double_t CaloMetInpHF() const { return fCaloMetInpHF; }
|
60 |
|
|
Double_t CaloMetInmHF() const { return fCaloMetInmHF; }
|
61 |
|
|
Double_t CaloMetPhiInpHF() const { return fCaloMetPhiInpHF; }
|
62 |
|
|
Double_t CaloMetPhiInmHF() const { return fCaloMetPhiInmHF; }
|
63 |
|
|
|
64 |
|
|
void SetSumEt(Double_t x) { fSumEt = x; }
|
65 |
|
|
void SetE_longitudinal(Double_t x) { fElongit = x; }
|
66 |
|
|
void SetMetSig(Double_t x) { fMetSig = x; }
|
67 |
|
|
void PushCorrectionX(Double_t x) { fDmex.push_back(x); }
|
68 |
|
|
void PushCorrectionY(Double_t x) { fDmey.push_back(x); }
|
69 |
|
|
void PushCorrectionSumEt(Double_t x) { fDSumEt.push_back(x); }
|
70 |
|
|
|
71 |
|
|
void SetMaxEtInEmTowers(Double_t x) { fMaxEtInEmTowers = x; }
|
72 |
|
|
void SetMaxEtInHadTowers(Double_t x) { fMaxEtInHadTowers = x; }
|
73 |
|
|
void SetEtFractionHadronic(Double_t x) { fEtFractionHadronic = x; }
|
74 |
|
|
void SetEmEtFraction(Double_t x) { fEmEtFraction = x; }
|
75 |
|
|
void SetHadEtInHB(Double_t x) { fHadEtInHB = x; }
|
76 |
|
|
void SetHadEtInHO(Double_t x) { fHadEtInHO = x; }
|
77 |
|
|
void SetHadEtInHE(Double_t x) { fHadEtInHE = x; }
|
78 |
|
|
void SetHadEtInHF(Double_t x) { fHadEtInHF = x; }
|
79 |
|
|
void SetEmEtInEB(Double_t x) { fEmEtInEB = x; }
|
80 |
|
|
void SetEmEtInEE(Double_t x) { fEmEtInEE = x; }
|
81 |
|
|
void SetEmEtInHF(Double_t x) { fEmEtInHF = x; }
|
82 |
|
|
void SetCaloSumEtInpHF(Double_t x) { fCaloSumEtInpHF = x; }
|
83 |
|
|
void SetCaloSumEtInmHF(Double_t x) { fCaloSumEtInmHF = x; }
|
84 |
|
|
void SetCaloMetInpHF(Double_t x) { fCaloMetInpHF = x; }
|
85 |
|
|
void SetCaloMetInmHF(Double_t x) { fCaloMetInmHF = x; }
|
86 |
|
|
void SetCaloMetPhiInpHF(Double_t x) { fCaloMetPhiInpHF = x; }
|
87 |
|
|
void SetCaloMetPhiInmHF(Double_t x) { fCaloMetPhiInmHF = x; }
|
88 |
ksung |
1.5 |
|
89 |
loizides |
1.2 |
protected:
|
90 |
ksung |
1.6 |
Double_t fMex; // x-component
|
91 |
|
|
Double_t fMey; // y-component
|
92 |
|
|
Double_t fSumEt; // scalar sum of ET over all objects
|
93 |
|
|
Double_t fMetSig; // MET Significance = MET / sqrt(SumET)
|
94 |
|
|
Double_t fElongit; // z-comp. of vector E sum over all inputs
|
95 |
|
|
std::vector<Double_t> fDmex; // vector of all corr. applied to MEx
|
96 |
|
|
std::vector<Double_t> fDmey; // vector of all corr. applied to MEy
|
97 |
|
|
std::vector<Double_t> fDSumEt; // vector of all corr. applied to SumET
|
98 |
loizides |
1.2 |
|
99 |
ksung |
1.6 |
Double_t fMaxEtInEmTowers; // max ET deposited in ECAL towers
|
100 |
|
|
Double_t fMaxEtInHadTowers; // max ET deposited in HCAL towers
|
101 |
|
|
Double_t fEtFractionHadronic; // event hadronic scaler ET fraction
|
102 |
|
|
Double_t fEmEtFraction; // event electromagnetic scalar ET fraction
|
103 |
|
|
Double_t fHadEtInHB; // event hadronic scalar ET in HB
|
104 |
|
|
Double_t fHadEtInHO; // event hadronic scalar ET in HO
|
105 |
|
|
Double_t fHadEtInHE; // event hadronic scalar ET in HE
|
106 |
|
|
Double_t fHadEtInHF; // event hadronic scalar ET in HF
|
107 |
|
|
Double_t fEmEtInEB; // event electromagnetic scalar ET in EB
|
108 |
|
|
Double_t fEmEtInEE; // event electromagnetic scalar ET in EE
|
109 |
|
|
Double_t fEmEtInHF; // event electromagnetic scalar ET from HF
|
110 |
|
|
Double_t fCaloSumEtInpHF; // SumET in HF+
|
111 |
|
|
Double_t fCaloSumEtInmHF; // SumET in HF-
|
112 |
|
|
Double_t fCaloMetInpHF; // MET in HF+
|
113 |
|
|
Double_t fCaloMetInmHF; // MET in HF-
|
114 |
|
|
Double_t fCaloMetPhiInpHF; // MET-phi in HF+
|
115 |
|
|
Double_t fCaloMetPhiInmHF; // MET-phi in HF-
|
116 |
|
|
|
117 |
loizides |
1.2 |
ClassDef(Met, 1) // Missing Et class
|
118 |
loizides |
1.1 |
};
|
119 |
|
|
}
|
120 |
|
|
#endif
|