ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/DCASig.h
Revision: 1.3
Committed: Thu Mar 29 23:41:55 2012 UTC (13 years, 1 month ago) by paus
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_028, Mit_027a, Mit_027, Mit_026, Mit_025e
Changes since 1.2: +10 -10 lines
Log Message:
Version with working skimming and last 4.4 tag.

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: DCASig.h,v 1.2 2012/03/28 12:15:34 paus Exp $
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
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
35 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 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(UInt_t i=1) 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
89
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
97 ClassDef(DCASig,1) // DCA Significance reference
98 };
99 }
100
101 //--------------------------------------------------------------------------------------------------
102 inline void mithep::DCASig::Mark(UInt_t ib) const
103 {
104 // mark myself
105 mithep::DataObject::Mark(ib);
106 // mark my dependencies if they are there
107 GetTau() ->Mark(ib);
108 GetElectron() ->Mark(ib);
109 GetMuon() ->Mark(ib);
110 Get2ndTau() ->Mark(ib);
111 Get2ndElectron()->Mark(ib);
112 Get2ndMuon() ->Mark(ib);
113 }
114 #endif