1 |
loizides |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
ksung |
1.5 |
// $Id: Met.h,v 1.4 2008/09/10 03:33:27 loizides 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.5 |
virtual Double_t Charge() const { return 0; }
|
27 |
|
|
virtual Double_t E() const { return Pt();}
|
28 |
|
|
virtual Double_t Eta() const { return Mom().Eta();}
|
29 |
|
|
virtual Double_t Mass() const { return TMath::Sqrt(Mom().M2()); }
|
30 |
|
|
virtual FourVector Mom() const { return FourVector(fMex,fMey,0,Pt()); }
|
31 |
|
|
virtual Double_t Phi() const { return TMath::ATan2(fMey,fMex); }
|
32 |
|
|
virtual Double_t Pt() const { return TMath::Sqrt(fMex*fMex+fMey*fMey);}
|
33 |
|
|
virtual Double_t Px() const { return fMex;}
|
34 |
|
|
virtual Double_t Py() const { return fMey;}
|
35 |
|
|
virtual Double_t Pz() const { return 0; }
|
36 |
|
|
virtual Double_t P() const { return Pt(); }
|
37 |
loizides |
1.2 |
|
38 |
ksung |
1.5 |
virtual Double_t SumEt() const { return fSumEt; }
|
39 |
|
|
virtual Double_t MetSig() const { return fMetSig; }
|
40 |
|
|
virtual Double_t E_longitudinal() const { return fElongit; }
|
41 |
|
|
|
42 |
|
|
virtual const std::vector<Double_t> Dmex() const { return fDmex; }
|
43 |
|
|
virtual const std::vector<Double_t> Dmey() const { return fDmey; }
|
44 |
|
|
virtual const std::vector<Double_t> DSumEt() const { return fDSumEt; }
|
45 |
|
|
|
46 |
|
|
virtual void SetSumEt(Double_t x) { fSumEt = x; }
|
47 |
|
|
virtual void SetE_longitudinal(Double_t x) { fElongit = x; }
|
48 |
|
|
virtual void SetMetSig(Double_t x) { fMetSig = x; }
|
49 |
|
|
virtual void PushCorrectionX(Double_t x) { fDmex.push_back(x); }
|
50 |
|
|
virtual void PushCorrectionY(Double_t x) { fDmey.push_back(x); }
|
51 |
|
|
virtual void PushCorrectionSumEt(Double_t x) { fDSumEt.push_back(x); }
|
52 |
|
|
|
53 |
loizides |
1.2 |
protected:
|
54 |
ksung |
1.5 |
Double_t fMex; // x-component
|
55 |
|
|
Double_t fMey; // y-component
|
56 |
|
|
Double_t fSumEt; // scalar sum of ET over all objects
|
57 |
|
|
Double_t fMetSig; // MET Significance = MET / sqrt(SumET)
|
58 |
|
|
Double_t fElongit; // z-comp. of vector E sum over all inputs
|
59 |
|
|
std::vector<Double_t> fDmex; // vector of all corr. applied to MEx
|
60 |
|
|
std::vector<Double_t> fDmey; // vector of all corr. applied to MEy
|
61 |
|
|
std::vector<Double_t> fDSumEt; // vector of all corr. applied to SumET
|
62 |
loizides |
1.2 |
|
63 |
|
|
ClassDef(Met, 1) // Missing Et class
|
64 |
loizides |
1.1 |
};
|
65 |
|
|
}
|
66 |
|
|
#endif
|