1 |
loizides |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
loizides |
1.7 |
// $Id: Met.h,v 1.6 2008/09/16 22:04:59 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 |
loizides |
1.7 |
Met(Double_t mex, Double_t mey) :
|
24 |
|
|
fMex(mex), fMey(mey), fSumEt(0), fMetSig(0), fElongit(0), fDmex(0), fDmey(0),
|
25 |
|
|
fDSumEt(0), fMaxEtInEmTowers(0), fMaxEtInHadTowers(0), fEtFractionHadronic(0),
|
26 |
|
|
fEmEtFraction(0), fHadEtInHB(0), fHadEtInHO(0), fHadEtInHE(0), fHadEtInHF(0),
|
27 |
|
|
fEmEtInEB(0), fEmEtInEE(0), fEmEtInHF(0), fCaloSumEtInpHF(0), fCaloSumEtInmHF(0),
|
28 |
|
|
fCaloMetInmHF(0), fCaloMetPhiInpHF(0), fCaloMetPhiInmHF(0) { SetClearBit(); }
|
29 |
loizides |
1.1 |
~Met() {}
|
30 |
|
|
|
31 |
loizides |
1.7 |
Double_t Charge() const { return 0; }
|
32 |
|
|
Double_t E() const { return Pt();}
|
33 |
|
|
Double_t Eta() const { return Mom().Eta();}
|
34 |
|
|
Double_t Mass() const { return TMath::Sqrt(Mom().M2()); }
|
35 |
|
|
FourVector Mom() const { return FourVector(fMex,fMey,0,Pt()); }
|
36 |
|
|
Double_t Phi() const { return TMath::ATan2(fMey,fMex); }
|
37 |
|
|
Double_t Pt() const { return TMath::Sqrt(fMex*fMex+fMey*fMey);}
|
38 |
|
|
Double_t Px() const { return fMex;}
|
39 |
|
|
Double_t Py() const { return fMey;}
|
40 |
|
|
Double_t Pz() const { return 0; }
|
41 |
|
|
Double_t P() const { return Pt(); }
|
42 |
|
|
Double_t SumEt() const { return fSumEt; }
|
43 |
|
|
Double_t MetSig() const { return fMetSig; }
|
44 |
|
|
Double_t E_longitudinal() const { return fElongit; }
|
45 |
|
|
const std::vector<Double_t> &Dmex() const { return fDmex; }
|
46 |
|
|
const std::vector<Double_t> &Dmey() const { return fDmey; }
|
47 |
|
|
const std::vector<Double_t> &DSumEt() const { return fDSumEt; }
|
48 |
|
|
Double_t MaxEtInEmTowers() const { return fMaxEtInEmTowers; }
|
49 |
|
|
Double_t MaxEtInHadTowers() const { return fMaxEtInHadTowers; }
|
50 |
|
|
Double_t EtFractionHadronic() const { return fEtFractionHadronic; }
|
51 |
|
|
Double_t EmEtFraction() const { return fEmEtFraction; }
|
52 |
|
|
Double_t HadEtInHB() const { return fHadEtInHB; }
|
53 |
|
|
Double_t HadEtInHO() const { return fHadEtInHO; }
|
54 |
|
|
Double_t HadEtInHE() const { return fHadEtInHE; }
|
55 |
|
|
Double_t HadEtInHF() const { return fHadEtInHF; }
|
56 |
|
|
Double_t EmEtInEB() const { return fEmEtInEB; }
|
57 |
|
|
Double_t EmEtInEE() const { return fEmEtInEE; }
|
58 |
|
|
Double_t EmEtInHF() const { return fEmEtInHF; }
|
59 |
|
|
Double_t CaloSumEtInpHF() const { return fCaloSumEtInpHF; }
|
60 |
|
|
Double_t CaloSumEtInmHF() const { return fCaloSumEtInmHF; }
|
61 |
|
|
Double_t CaloMetInpHF() const { return fCaloMetInpHF; }
|
62 |
|
|
Double_t CaloMetInmHF() const { return fCaloMetInmHF; }
|
63 |
|
|
Double_t CaloMetPhiInpHF() const { return fCaloMetPhiInpHF; }
|
64 |
|
|
Double_t CaloMetPhiInmHF() const { return fCaloMetPhiInmHF; }
|
65 |
|
|
void SetSumEt(Double_t x) { fSumEt = x; }
|
66 |
|
|
void SetE_longitudinal(Double_t x) { fElongit = x; }
|
67 |
|
|
void SetMetSig(Double_t x) { fMetSig = x; }
|
68 |
|
|
void PushCorrectionX(Double_t x) { fDmex.push_back(x); }
|
69 |
|
|
void PushCorrectionY(Double_t x) { fDmey.push_back(x); }
|
70 |
|
|
void PushCorrectionSumEt(Double_t x) { fDSumEt.push_back(x); }
|
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 |
loizides |
1.7 |
void Clear(Option_t * /*option*/ ="");
|
91 |
|
|
|
92 |
|
|
Double_t fMex; //x-component
|
93 |
|
|
Double_t fMey; //y-component
|
94 |
|
|
Double_t fSumEt; //scalar sum of ET over all objects
|
95 |
|
|
Double_t fMetSig; //MET Significance = MET / sqrt(SumET)
|
96 |
|
|
Double_t fElongit; //z-comp. of vector E sum over all inputs
|
97 |
|
|
std::vector<Double_t> fDmex; //vector of all corr. applied to MEx
|
98 |
|
|
std::vector<Double_t> fDmey; //vector of all corr. applied to MEy
|
99 |
|
|
std::vector<Double_t> fDSumEt; //vector of all corr. applied to SumET
|
100 |
|
|
Double_t fMaxEtInEmTowers; //max ET deposited in ECAL towers
|
101 |
|
|
Double_t fMaxEtInHadTowers; //max ET deposited in HCAL towers
|
102 |
|
|
Double_t fEtFractionHadronic; //event hadronic scaler ET fraction
|
103 |
|
|
Double_t fEmEtFraction; //event electromagnetic scalar ET fraction
|
104 |
|
|
Double_t fHadEtInHB; //event hadronic scalar ET in HB
|
105 |
|
|
Double_t fHadEtInHO; //event hadronic scalar ET in HO
|
106 |
|
|
Double_t fHadEtInHE; //event hadronic scalar ET in HE
|
107 |
|
|
Double_t fHadEtInHF; //event hadronic scalar ET in HF
|
108 |
|
|
Double_t fEmEtInEB; //event electromagnetic scalar ET in EB
|
109 |
|
|
Double_t fEmEtInEE; //event electromagnetic scalar ET in EE
|
110 |
|
|
Double_t fEmEtInHF; //event electromagnetic scalar ET from HF
|
111 |
|
|
Double_t fCaloSumEtInpHF; //SumET in HF+
|
112 |
|
|
Double_t fCaloSumEtInmHF; //SumET in HF-
|
113 |
|
|
Double_t fCaloMetInpHF; //MET in HF+
|
114 |
|
|
Double_t fCaloMetInmHF; //MET in HF-
|
115 |
|
|
Double_t fCaloMetPhiInpHF; //MET-phi in HF+
|
116 |
|
|
Double_t fCaloMetPhiInmHF; //MET-phi in HF-
|
117 |
ksung |
1.6 |
|
118 |
loizides |
1.2 |
ClassDef(Met, 1) // Missing Et class
|
119 |
loizides |
1.1 |
};
|
120 |
|
|
}
|
121 |
loizides |
1.7 |
|
122 |
|
|
inline void mithep::Met::Clear(Option_t *)
|
123 |
|
|
{
|
124 |
|
|
// Clear by deleting the std::vectors.
|
125 |
|
|
|
126 |
|
|
fDmex.~vector<Double_t>();
|
127 |
|
|
fDmey.~vector<Double_t>();
|
128 |
|
|
fDSumEt.~vector<Double_t>();
|
129 |
|
|
}
|
130 |
|
|
|
131 |
loizides |
1.1 |
#endif
|