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

File Contents

# User Rev Content
1 bendavid 1.1 //--------------------------------------------------------------------------------------------------
2 paus 1.5 // $Id: CaloTau.h,v 1.4 2012/03/28 12:15:34 paus Exp $
3 bendavid 1.1 //
4     // CaloTau
5     //
6 loizides 1.2 // This class holds information about reconstructed Taus based on calorimeter towers,
7     // ecal basic clusters, and tracks.
8 bendavid 1.1 //
9     // Authors: J.Bendavid
10     //--------------------------------------------------------------------------------------------------
11    
12     #ifndef MITANA_DATATREE_CALOTAU_H
13     #define MITANA_DATATREE_CALOTAU_H
14    
15     #include "MitAna/DataTree/interface/Tau.h"
16     #include "MitAna/DataCont/interface/RefArray.h"
17     #include "MitAna/DataCont/interface/Ref.h"
18     #include "MitAna/DataTree/interface/Track.h"
19     #include "MitAna/DataTree/interface/BasicCluster.h"
20     #include "MitAna/DataTree/interface/CaloJet.h"
21    
22     namespace mithep
23     {
24     class CaloTau : public Tau
25     {
26     public:
27 loizides 1.2 CaloTau() : fLeadTrackSignD0Sig(0), fLeadTrack3x3HCalEt(0),
28 bendavid 1.1 fLeadTrack3x3HCalDEta(0), fSignalTracksMass(0),
29     fTracksMass(0), fIsoTrackPtSum(0), fIsoECalEtSum(0),
30     fMaxHCalHitEt(0) {}
31     CaloTau(Double_t px, Double_t py, Double_t pz, Double_t e) :
32     Tau(px,py,pz,e),
33 loizides 1.2 fLeadTrackSignD0Sig(0), fLeadTrack3x3HCalEt(0),
34 bendavid 1.1 fLeadTrack3x3HCalDEta(0), fSignalTracksMass(0),
35     fTracksMass(0), fIsoTrackPtSum(0), fIsoECalEtSum(0),
36     fMaxHCalHitEt(0) {}
37    
38 loizides 1.3 void AddIsoTrack(const Track *t) { fIsoTracks.Add(t); }
39     void AddNeutralBC(const BasicCluster *c) { fNeutralBCs.Add(c); }
40     void AddSignalTrack(const Track *t)
41     { ClearCharge(); fSignalTracks.Add(t); }
42     Double_t IsoECalEtSum() const { return fIsoECalEtSum; }
43     const Track *IsoTrack(UInt_t i) const { return fIsoTracks.At(i); }
44     Double_t IsoTrackPtSum() const { return fIsoTrackPtSum; }
45     const Track *LeadTrack() const { return fLeadTrack.Obj(); }
46     Double_t LeadTrack3x3HCalEt() const { return fLeadTrack3x3HCalEt; }
47     Double_t LeadTrack3x3HCalDEta() const { return fLeadTrack3x3HCalDEta; }
48     Double_t LeadTrackSignedD0Sig() const { return fLeadTrackSignD0Sig; }
49     Double_t MaxHCalHitEt() const { return fMaxHCalHitEt; }
50     UInt_t NIsoTracks() const { return fIsoTracks.Entries(); }
51     const BasicCluster *NeutralBC(UInt_t i) const { return fNeutralBCs.At(i); }
52     UInt_t NNeutralBCs() const { return fNeutralBCs.Entries(); }
53     UInt_t NSignalTracks() const { return fSignalTracks.Entries(); }
54     EObjType ObjType() const { return kCaloTau; }
55     void SetCaloJet(const CaloJet *j) { fCaloJet = j; }
56     void SetIsoECalEtSum(Double_t x) { fIsoECalEtSum = x; }
57     void SetIsoTrackPtSum(Double_t x) { fIsoTrackPtSum = x; }
58     void SetLeadTrack(const Track *t) { fLeadTrack = t; }
59     void SetLeadTrack3x3HCalDEta(Double_t x) { fLeadTrack3x3HCalDEta = x; }
60     void SetLeadTrack3x3HCalEt(Double_t x) { fLeadTrack3x3HCalEt = x; }
61     void SetLeadTrackSignD0Sig(Double_t x) { fLeadTrackSignD0Sig = x; }
62     void SetMaxHCalHitEt(Double_t x) { fMaxHCalHitEt = x; }
63     void SetSignalTracksMass(Double_t x) { fSignalTracksMass = x; }
64     void SetTracksMass(Double_t x) { fTracksMass = x; }
65     const Track *SignalTrack(UInt_t i) const { return fSignalTracks.At(i); }
66     Double_t SignalTracksMass() const { return fSignalTracksMass; }
67     const CaloJet *SourceCaloJet() const { return fCaloJet.Obj(); }
68     const Jet *SourceJet() const { return SourceCaloJet(); }
69     Double_t TracksMass() const { return fTracksMass; }
70 bendavid 1.1
71 paus 1.4 // Some structural tools
72 paus 1.5 void Mark(UInt_t i = 1) const;
73 paus 1.4
74 bendavid 1.1 protected:
75 loizides 1.3 Double_t GetCharge() const;
76 bendavid 1.1
77 loizides 1.3 Double32_t fLeadTrackSignD0Sig; //[0,0,14]signed leading track D0 significance
78     Double32_t fLeadTrack3x3HCalEt; //[0,0,14]hcal 3x3 calo tower et around lead trk
79     Double32_t fLeadTrack3x3HCalDEta; //[0,0,14]abs(delta eta) between lead track
80     // and hottest hcal rec hit in 3x3 region
81     Double32_t fSignalTracksMass; //[0,0,14]invariant mass of signal tracks
82     Double32_t fTracksMass; //[0,0,14]invariant mass of signal + iso tracks
83     Double32_t fIsoTrackPtSum; //[0,0,14]sum pt of tracks in isolation annulus
84     Double32_t fIsoECalEtSum; //[0,0,14]sum et of ecal rechits in iso annulus
85     Double32_t fMaxHCalHitEt; //[0,0,14]et of largest et hcal rechit
86     Ref<Track> fLeadTrack; //leading track in signal cone
87     Ref<CaloJet> fCaloJet; //original reconstructed calo jet
88     RefArray<Track> fSignalTracks; //tracks in signal cone
89     RefArray<Track> fIsoTracks; //tracks in isolation annulus
90     RefArray<BasicCluster> fNeutralBCs; //neutral Ecal basic clusters
91 bendavid 1.1
92     ClassDef(CaloTau, 1) // CaloTau class
93     };
94     }
95 loizides 1.3
96     //--------------------------------------------------------------------------------------------------
97 paus 1.5 inline void mithep::CaloTau::Mark(UInt_t ib) const
98 paus 1.4 {
99     // mark myself
100 paus 1.5 mithep::DataObject::Mark(ib);
101 paus 1.4 // mark my dependencies if they are there
102 paus 1.5 if (fLeadTrack.IsValid())
103     fLeadTrack.Obj()->Mark(ib);
104     if (fCaloJet.IsValid())
105     fCaloJet.Obj()->Mark(ib);
106     // arrays
107     fSignalTracks.Mark(ib);
108     fIsoTracks .Mark(ib);
109     fNeutralBCs .Mark(ib);
110 paus 1.4 }
111    
112     //--------------------------------------------------------------------------------------------------
113 loizides 1.3 inline Double_t mithep::CaloTau::GetCharge() const
114     {
115     // Get charge from signal tracks.
116    
117     Double_t sumq = 0;
118     for (UInt_t i=0; i<fSignalTracks.Entries(); ++i) {
119     sumq += fSignalTracks.At(i)->Charge();
120     }
121     return sumq;
122     }
123 bendavid 1.1 #endif