1 |
paus |
1.2 |
//--------------------------------------------------------------------------------------------------
|
2 |
paus |
1.3 |
// $Id: DCASig.h,v 1.2 2012/03/28 12:15:34 paus Exp $
|
3 |
paus |
1.2 |
//
|
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 |
pharris |
1.1 |
#ifndef MITANA_DATATREE_DCASIG_H
|
12 |
|
|
#define MITANA_DATATREE_DCASIG_H
|
13 |
|
|
|
14 |
|
|
#include "MitAna/DataTree/interface/Electron.h"
|
15 |
|
|
#include "MitAna/DataTree/interface/Muon.h"
|
16 |
|
|
#include "MitAna/DataTree/interface/PFTau.h"
|
17 |
|
|
#include "MitAna/DataCont/interface/Ref.h"
|
18 |
|
|
#include "MitAna/DataTree/interface/DataObject.h"
|
19 |
|
|
|
20 |
|
|
namespace mithep
|
21 |
|
|
{
|
22 |
|
|
class DCASig : public DataObject
|
23 |
|
|
{
|
24 |
|
|
public:
|
25 |
|
|
DCASig() {}
|
26 |
|
|
enum EDCAType {
|
27 |
|
|
eETau, //ETau
|
28 |
|
|
eMuTau, //MuTau
|
29 |
|
|
eEMu, //EMu
|
30 |
|
|
eEE , //EE
|
31 |
|
|
eMuMu, //Mu Mu
|
32 |
|
|
eTauTau //Tau Tau
|
33 |
|
|
};
|
34 |
paus |
1.2 |
|
35 |
pharris |
1.1 |
Double_t DCASig3D() const {return fDCA3D /fDCA3DErr; }
|
36 |
|
|
Double_t DCASig2D() const {return fDCA2D /fDCA2DErr; }
|
37 |
|
|
Double_t DCASig3DRPhi() const {return fDCA3DRPhi/fDCA3DRPhiErr; }
|
38 |
|
|
Double_t DCASig2DRPhi() const {return fDCA2DRPhi/fDCA2DRPhiErr; }
|
39 |
|
|
|
40 |
|
|
Double_t DCA3D() const {return fDCA3D; }
|
41 |
|
|
Double_t DCA2D() const {return fDCA2D; }
|
42 |
|
|
Double_t DCA3DRPhi() const {return fDCA3DRPhi; }
|
43 |
|
|
Double_t DCA2DRPhi() const {return fDCA2DRPhi; }
|
44 |
|
|
|
45 |
|
|
Double_t DCA3DErr() const {return fDCA3DErr; }
|
46 |
|
|
Double_t DCA2DErr() const {return fDCA2DErr; }
|
47 |
|
|
Double_t DCA3DRPhiErr() const {return fDCA3DRPhiErr; }
|
48 |
|
|
Double_t DCA2DRPhiErr() const {return fDCA2DRPhiErr; }
|
49 |
|
|
|
50 |
|
|
const PFTau *GetTau() const {return fTauRef.Obj();}
|
51 |
|
|
const Electron *GetElectron() const {return fElectronRef.Obj();}
|
52 |
|
|
const Muon *GetMuon() const {return fMuonRef.Obj();}
|
53 |
|
|
const PFTau *Get2ndTau() const {return f2ndTauRef.Obj();}
|
54 |
|
|
const Electron *Get2ndElectron() const {return f2ndElectronRef.Obj();}
|
55 |
|
|
const Muon *Get2ndMuon() const {return f2ndMuonRef.Obj();}
|
56 |
|
|
EDCAType Type() const {return fDCAType;}
|
57 |
|
|
|
58 |
paus |
1.2 |
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 |
paus |
1.3 |
void Mark(UInt_t i=1) const;
|
76 |
pharris |
1.1 |
|
77 |
|
|
protected:
|
78 |
|
|
|
79 |
paus |
1.2 |
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 |
pharris |
1.1 |
|
90 |
|
|
Ref<PFTau> fTauRef; // Tau reference
|
91 |
|
|
Ref<Electron> fElectronRef; // Electron reference
|
92 |
|
|
Ref<Muon> fMuonRef; // Muon reference
|
93 |
|
|
Ref<PFTau> f2ndTauRef; // Tau reference
|
94 |
|
|
Ref<Electron> f2ndElectronRef; // Electron reference
|
95 |
|
|
Ref<Muon> f2ndMuonRef; // Muon reference
|
96 |
paus |
1.2 |
|
97 |
|
|
ClassDef(DCASig,1) // DCA Significance reference
|
98 |
|
|
};
|
99 |
|
|
}
|
100 |
|
|
|
101 |
|
|
//--------------------------------------------------------------------------------------------------
|
102 |
paus |
1.3 |
inline void mithep::DCASig::Mark(UInt_t ib) const
|
103 |
paus |
1.2 |
{
|
104 |
|
|
// mark myself
|
105 |
paus |
1.3 |
mithep::DataObject::Mark(ib);
|
106 |
paus |
1.2 |
// mark my dependencies if they are there
|
107 |
paus |
1.3 |
GetTau() ->Mark(ib);
|
108 |
|
|
GetElectron() ->Mark(ib);
|
109 |
|
|
GetMuon() ->Mark(ib);
|
110 |
|
|
Get2ndTau() ->Mark(ib);
|
111 |
|
|
Get2ndElectron()->Mark(ib);
|
112 |
|
|
Get2ndMuon() ->Mark(ib);
|
113 |
pharris |
1.1 |
}
|
114 |
|
|
#endif
|