1 |
+ |
//-------------------------------------------------------------------------------------------------- |
2 |
+ |
// $Id$ |
3 |
+ |
// |
4 |
+ |
// DCA Significance |
5 |
+ |
// |
6 |
+ |
// This class holds information about the significance of the DCA for various particle assumptions. |
7 |
+ |
// |
8 |
+ |
// Authors: ?.?, C.Paus |
9 |
+ |
//-------------------------------------------------------------------------------------------------- |
10 |
+ |
|
11 |
|
#ifndef MITANA_DATATREE_DCASIG_H |
12 |
|
#define MITANA_DATATREE_DCASIG_H |
13 |
|
|
31 |
|
eMuMu, //Mu Mu |
32 |
|
eTauTau //Tau Tau |
33 |
|
}; |
34 |
< |
|
34 |
> |
|
35 |
|
Double_t DCASig3D() const {return fDCA3D /fDCA3DErr; } |
36 |
|
Double_t DCASig2D() const {return fDCA2D /fDCA2DErr; } |
37 |
|
Double_t DCASig3DRPhi() const {return fDCA3DRPhi/fDCA3DRPhiErr; } |
55 |
|
const Muon *Get2ndMuon() const {return f2ndMuonRef.Obj();} |
56 |
|
EDCAType Type() const {return fDCAType;} |
57 |
|
|
58 |
< |
void SetDCA2D (Double_t value) { fDCA2D = value; } |
59 |
< |
void SetDCA3D (Double_t value) { fDCA3D = value; } |
60 |
< |
void SetDCA2DRPhi (Double_t value) { fDCA2DRPhi = value; } |
61 |
< |
void SetDCA3DRPhi (Double_t value) { fDCA3DRPhi = value; } |
62 |
< |
void SetDCA2DErr (Double_t value) { fDCA2DErr = value; } |
63 |
< |
void SetDCA3DErr (Double_t value) { fDCA3DErr = value; } |
64 |
< |
void SetDCA2DRPhiErr(Double_t value) { fDCA2DRPhiErr = value; } |
65 |
< |
void SetDCA3DRPhiErr(Double_t value) { fDCA3DRPhiErr = value; } |
66 |
< |
void SetTau (const mithep::PFTau *iTau , |
67 |
< |
Bool_t i2nd=false) { i2nd ? f2ndTauRef = iTau : fTauRef = iTau; } |
68 |
< |
void SetElectron (const mithep::Electron *iElectron, |
69 |
< |
Bool_t i2nd=false) { i2nd ? f2ndElectronRef = iElectron : fElectronRef = iElectron; } |
70 |
< |
void SetMuon (const mithep::Muon *iMuon , |
71 |
< |
Bool_t i2nd=false) { i2nd ? f2ndMuonRef = iMuon : fMuonRef = iMuon; } |
72 |
< |
void SetType (EDCAType value) { fDCAType = value; } |
58 |
> |
void SetDCA2D (Double_t v) { fDCA2D = v; } |
59 |
> |
void SetDCA3D (Double_t v) { fDCA3D = v; } |
60 |
> |
void SetDCA2DRPhi (Double_t v) { fDCA2DRPhi = v; } |
61 |
> |
void SetDCA3DRPhi (Double_t v) { fDCA3DRPhi = v; } |
62 |
> |
void SetDCA2DErr (Double_t v) { fDCA2DErr = v; } |
63 |
> |
void SetDCA3DErr (Double_t v) { fDCA3DErr = v; } |
64 |
> |
void SetDCA2DRPhiErr(Double_t v) { fDCA2DRPhiErr = v; } |
65 |
> |
void SetDCA3DRPhiErr(Double_t v) { fDCA3DRPhiErr = v; } |
66 |
> |
void SetTau (const mithep::PFTau*iTau, Bool_t i2nd=false) |
67 |
> |
{ i2nd ? f2ndTauRef = iTau : fTauRef = iTau; } |
68 |
> |
void SetElectron (const mithep::Electron *iElectron, Bool_t i2nd=false) |
69 |
> |
{ i2nd ? f2ndElectronRef = iElectron : fElectronRef = iElectron; } |
70 |
> |
void SetMuon (const mithep::Muon *iMuon, Bool_t i2nd=false) |
71 |
> |
{ i2nd ? f2ndMuonRef = iMuon : fMuonRef = iMuon; } |
72 |
> |
void SetType (EDCAType v) { fDCAType = v; } |
73 |
> |
|
74 |
> |
// Some structural tools |
75 |
> |
void Mark() const; |
76 |
|
|
77 |
|
protected: |
78 |
|
|
79 |
< |
EDCAType fDCAType; // Lepton pair type |
80 |
< |
Double_t fDCA3D; // 3D xy Distance of closest approach Unc |
81 |
< |
Double_t fDCA2D; // 2D xy Distance of closest approach Unc |
82 |
< |
Double_t fDCA3DRPhi; // 3D RPhi Distance of closest approach Unc |
83 |
< |
Double_t fDCA2DRPhi; // 2D RPhi Distance of closest approach Unc |
84 |
< |
|
85 |
< |
Double_t fDCA3DErr; // 3D xy Distance of closest approach Unc |
86 |
< |
Double_t fDCA2DErr; // 2D xy Distance of closest approach Unc |
87 |
< |
Double_t fDCA3DRPhiErr; // 3D RPhi Distance of closest approach Unc |
88 |
< |
Double_t fDCA2DRPhiErr; // 2D RPhi Distance of closest approach Unc |
79 |
> |
EDCAType fDCAType; // Lepton pair type |
80 |
> |
Double_t fDCA3D; // 3D xy Distance of closest approach Unc |
81 |
> |
Double_t fDCA2D; // 2D xy Distance of closest approach Unc |
82 |
> |
Double_t fDCA3DRPhi; // 3D RPhi Distance of closest approach Unc |
83 |
> |
Double_t fDCA2DRPhi; // 2D RPhi Distance of closest approach Unc |
84 |
> |
|
85 |
> |
Double_t fDCA3DErr; // 3D xy Distance of closest approach Unc |
86 |
> |
Double_t fDCA2DErr; // 2D xy Distance of closest approach Unc |
87 |
> |
Double_t fDCA3DRPhiErr; // 3D RPhi Distance of closest approach Unc |
88 |
> |
Double_t fDCA2DRPhiErr; // 2D RPhi Distance of closest approach Unc |
89 |
|
|
90 |
|
Ref<PFTau> fTauRef; // Tau reference |
91 |
|
Ref<Electron> fElectronRef; // Electron reference |
93 |
|
Ref<PFTau> f2ndTauRef; // Tau reference |
94 |
|
Ref<Electron> f2ndElectronRef; // Electron reference |
95 |
|
Ref<Muon> f2ndMuonRef; // Muon reference |
96 |
< |
ClassDef(DCASig,1) // DCA Significance reference |
97 |
< |
}; |
96 |
> |
|
97 |
> |
ClassDef(DCASig,1) // DCA Significance reference |
98 |
> |
}; |
99 |
> |
} |
100 |
> |
|
101 |
> |
//-------------------------------------------------------------------------------------------------- |
102 |
> |
inline void mithep::DCASig::Mark() const |
103 |
> |
{ |
104 |
> |
// mark myself |
105 |
> |
mithep::DataObject::Mark(); |
106 |
> |
// mark my dependencies if they are there |
107 |
> |
GetTau()->Mark(); |
108 |
> |
GetElectron()->Mark(); |
109 |
> |
GetMuon()->Mark(); |
110 |
> |
Get2ndTau()->Mark(); |
111 |
> |
Get2ndElectron()->Mark(); |
112 |
> |
Get2ndMuon()->Mark(); |
113 |
|
} |
114 |
|
#endif |