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

# User Rev Content
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