1 |
#ifndef MITANA_DATATREE_DCASIG_H
|
2 |
#define MITANA_DATATREE_DCASIG_H
|
3 |
|
4 |
#include "MitAna/DataTree/interface/Electron.h"
|
5 |
#include "MitAna/DataTree/interface/Muon.h"
|
6 |
#include "MitAna/DataTree/interface/PFTau.h"
|
7 |
#include "MitAna/DataCont/interface/Ref.h"
|
8 |
#include "MitAna/DataTree/interface/DataObject.h"
|
9 |
|
10 |
namespace mithep
|
11 |
{
|
12 |
class DCASig : public DataObject
|
13 |
{
|
14 |
public:
|
15 |
DCASig() {}
|
16 |
enum EDCAType {
|
17 |
eETau, //ETau
|
18 |
eMuTau, //MuTau
|
19 |
eEMu, //EMu
|
20 |
eEE , //EE
|
21 |
eMuMu, //Mu Mu
|
22 |
eTauTau //Tau Tau
|
23 |
};
|
24 |
|
25 |
Double_t DCASig3D() const {return fDCA3D /fDCA3DErr; }
|
26 |
Double_t DCASig2D() const {return fDCA2D /fDCA2DErr; }
|
27 |
Double_t DCASig3DRPhi() const {return fDCA3DRPhi/fDCA3DRPhiErr; }
|
28 |
Double_t DCASig2DRPhi() const {return fDCA2DRPhi/fDCA2DRPhiErr; }
|
29 |
|
30 |
Double_t DCA3D() const {return fDCA3D; }
|
31 |
Double_t DCA2D() const {return fDCA2D; }
|
32 |
Double_t DCA3DRPhi() const {return fDCA3DRPhi; }
|
33 |
Double_t DCA2DRPhi() const {return fDCA2DRPhi; }
|
34 |
|
35 |
Double_t DCA3DErr() const {return fDCA3DErr; }
|
36 |
Double_t DCA2DErr() const {return fDCA2DErr; }
|
37 |
Double_t DCA3DRPhiErr() const {return fDCA3DRPhiErr; }
|
38 |
Double_t DCA2DRPhiErr() const {return fDCA2DRPhiErr; }
|
39 |
|
40 |
const PFTau *GetTau() const {return fTauRef.Obj();}
|
41 |
const Electron *GetElectron() const {return fElectronRef.Obj();}
|
42 |
const Muon *GetMuon() const {return fMuonRef.Obj();}
|
43 |
const PFTau *Get2ndTau() const {return f2ndTauRef.Obj();}
|
44 |
const Electron *Get2ndElectron() const {return f2ndElectronRef.Obj();}
|
45 |
const Muon *Get2ndMuon() const {return f2ndMuonRef.Obj();}
|
46 |
EDCAType Type() const {return fDCAType;}
|
47 |
|
48 |
void SetDCA2D (Double_t value) { fDCA2D = value; }
|
49 |
void SetDCA3D (Double_t value) { fDCA3D = value; }
|
50 |
void SetDCA2DRPhi (Double_t value) { fDCA2DRPhi = value; }
|
51 |
void SetDCA3DRPhi (Double_t value) { fDCA3DRPhi = value; }
|
52 |
void SetDCA2DErr (Double_t value) { fDCA2DErr = value; }
|
53 |
void SetDCA3DErr (Double_t value) { fDCA3DErr = value; }
|
54 |
void SetDCA2DRPhiErr(Double_t value) { fDCA2DRPhiErr = value; }
|
55 |
void SetDCA3DRPhiErr(Double_t value) { fDCA3DRPhiErr = value; }
|
56 |
void SetTau (const mithep::PFTau *iTau ,
|
57 |
Bool_t i2nd=false) { i2nd ? f2ndTauRef = iTau : fTauRef = iTau; }
|
58 |
void SetElectron (const mithep::Electron *iElectron,
|
59 |
Bool_t i2nd=false) { i2nd ? f2ndElectronRef = iElectron : fElectronRef = iElectron; }
|
60 |
void SetMuon (const mithep::Muon *iMuon ,
|
61 |
Bool_t i2nd=false) { i2nd ? f2ndMuonRef = iMuon : fMuonRef = iMuon; }
|
62 |
void SetType (EDCAType value) { fDCAType = value; }
|
63 |
|
64 |
protected:
|
65 |
|
66 |
EDCAType fDCAType; // Lepton pair type
|
67 |
Double_t fDCA3D; // 3D xy Distance of closest approach Unc
|
68 |
Double_t fDCA2D; // 2D xy Distance of closest approach Unc
|
69 |
Double_t fDCA3DRPhi; // 3D RPhi Distance of closest approach Unc
|
70 |
Double_t fDCA2DRPhi; // 2D RPhi Distance of closest approach Unc
|
71 |
|
72 |
Double_t fDCA3DErr; // 3D xy Distance of closest approach Unc
|
73 |
Double_t fDCA2DErr; // 2D xy Distance of closest approach Unc
|
74 |
Double_t fDCA3DRPhiErr; // 3D RPhi Distance of closest approach Unc
|
75 |
Double_t fDCA2DRPhiErr; // 2D RPhi Distance of closest approach Unc
|
76 |
|
77 |
Ref<PFTau> fTauRef; // Tau reference
|
78 |
Ref<Electron> fElectronRef; // Electron reference
|
79 |
Ref<Muon> fMuonRef; // Muon reference
|
80 |
Ref<PFTau> f2ndTauRef; // Tau reference
|
81 |
Ref<Electron> f2ndElectronRef; // Electron reference
|
82 |
Ref<Muon> f2ndMuonRef; // Muon reference
|
83 |
ClassDef(DCASig,1) // DCA Significance reference
|
84 |
};
|
85 |
}
|
86 |
#endif
|