ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerPFTaus.cc
Revision: 1.5
Committed: Thu Mar 18 20:21:01 2010 UTC (15 years, 1 month ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, Mit_016, Mit_015b, Mit_015a, Mit_015, Mit_014e, Mit_014d, Mit_014c, Mit_014b, Mit_014a, Mit_014, Mit_014pre3, Mit_014pre2, Mit_014pre1, Mit_013d, Mit_013c, Mit_013b, Mit_013a, Mit_013
Changes since 1.4: +2 -2 lines
Log Message:
Fix beginrun,beginjob mess

File Contents

# Content
1 // $Id: FillerPFTaus.cc,v 1.4 2009/09/25 08:42:51 loizides Exp $
2
3 #include "MitProd/TreeFiller/interface/FillerPFTaus.h"
4 #include "DataFormats/Common/interface/RefToPtr.h"
5 #include "DataFormats/TauReco/interface/PFTau.h"
6 #include "DataFormats/TauReco/interface/PFTauFwd.h"
7 #include "MitAna/DataTree/interface/Names.h"
8 #include "MitAna/DataTree/interface/PFTauCol.h"
9 #include "MitProd/ObjectService/interface/ObjectService.h"
10
11 using namespace std;
12 using namespace edm;
13 using namespace mithep;
14
15 //--------------------------------------------------------------------------------------------------
16 FillerPFTaus::FillerPFTaus(const ParameterSet &cfg, const char *name, bool active) :
17 BaseFiller(cfg,name,active),
18 edmName_(Conf().getUntrackedParameter<string>("edmName","")),
19 mitName_(Conf().getUntrackedParameter<string>("mitName",Names::gkPFTauBrn)),
20 trackMapName_(Conf().getUntrackedParameter<string>("trackMapName","TracksMapName")),
21 jetMapName_(Conf().getUntrackedParameter<string>("jetMapName","JetMapName")),
22 pfCandMapName_(Conf().getUntrackedParameter<string>("pfCandMapName","")),
23 trackMap_(0),
24 jetMap_(0),
25 pfCandMap_(0),
26 taus_(new mithep::PFTauArr(16))
27 {
28 // Constructor.
29 }
30
31 //--------------------------------------------------------------------------------------------------
32 FillerPFTaus::~FillerPFTaus()
33 {
34 // Destructor.
35
36 delete taus_;
37 }
38
39 //--------------------------------------------------------------------------------------------------
40 void FillerPFTaus::BookDataBlock(TreeWriter &tws)
41 {
42 // Add taus branch to tree.
43
44 tws.AddBranch(mitName_,&taus_);
45 OS()->add<mithep::PFTauArr>(taus_,mitName_);
46
47 if (!trackMapName_.empty()) {
48 trackMap_ = OS()->get<TrackMap>(trackMapName_);
49 if (trackMap_)
50 AddBranchDep(mitName_, trackMap_->GetBrName());
51 }
52
53 if (!jetMapName_.empty()) {
54 jetMap_ = OS()->get<PFJetMap>(jetMapName_);
55 if (jetMap_)
56 AddBranchDep(mitName_, jetMap_->GetBrName());
57 }
58
59 if (!pfCandMapName_.empty()) {
60 pfCandMap_ = OS()->get<PFCandidateMap>(pfCandMapName_);
61 if (pfCandMap_)
62 AddBranchDep(mitName_, pfCandMap_->GetBrName());
63 }
64 }
65
66 //--------------------------------------------------------------------------------------------------
67 void FillerPFTaus::FillDataBlock(const edm::Event &event,
68 const edm::EventSetup &setup)
69 {
70 // Fill taus from edm collection into our collection.
71
72 taus_->Delete();
73
74 // handle for the tau collection
75 Handle<reco::PFTauCollection> hTauProduct;
76 GetProduct(edmName_, hTauProduct, event);
77
78 const reco::PFTauCollection inTaus = *(hTauProduct.product());
79 // loop through all taus
80 for (reco::PFTauCollection::const_iterator inTau = inTaus.begin();
81 inTau != inTaus.end(); ++inTau) {
82
83 reco::PFTauRef tauRef(hTauProduct, inTau - inTaus.begin());
84
85 mithep::PFTau *tau = taus_->Allocate();
86 new (tau) mithep::PFTau(inTau->px(),
87 inTau->py(),
88 inTau->pz(),
89 inTau->energy());
90
91 tau->SetMomAlt(inTau->alternatLorentzVect().x(),
92 inTau->alternatLorentzVect().y(),
93 inTau->alternatLorentzVect().z(),
94 inTau->alternatLorentzVect().e());
95
96 // fill pftau-specific quantities
97 tau->SetBremRecoveryEOverP(inTau->bremsRecoveryEOverPLead());
98 tau->SetCaloCompatibility(inTau->caloComp());
99 tau->SetECalStripSumEOverP(inTau->ecalStripSumEOverPLead());
100 tau->SetEMFraction(inTau->emFraction());
101 tau->SetElectronPreIDDecision(inTau->electronPreIDDecision());
102 tau->SetElectronPreIDOutput(inTau->electronPreIDOutput());
103 tau->SetHCal3x3EOverP(inTau->hcal3x3OverPLead());
104 tau->SetHCalMaxEOverP(inTau->hcalMaxOverPLead());
105 tau->SetHCalTotalEOverP(inTau->hcalTotOverPLead());
106 tau->SetIsoChargedHadronPtSum(inTau->isolationPFChargedHadrCandsPtSum());
107 tau->SetIsoGammaEtSum(inTau->isolationPFGammaCandsEtSum());
108 tau->SetLeadPFCandSignD0Sig(inTau->leadPFChargedHadrCandsignedSipt());
109 tau->SetMaxHCalPFClusterEt(inTau->maximumHCALPFClusterEt());
110 tau->SetMuonDecision(inTau->muonDecision());
111 tau->SetSegmentCompatibility(inTau->segComp());
112
113 // add track references
114 if (trackMap_) {
115 // electron preid track reference
116 if (inTau->electronPreIDTrack().isNonnull())
117 tau->SetElectronTrack(trackMap_->GetMit(refToPtr(inTau->electronPreIDTrack())));
118 }
119
120 const reco::PFTauTagInfo *tagInfo = inTau->pfTauTagInfoRef().get();
121
122 // add source calojet reference
123 if (jetMap_) {
124 tau->SetPFJet(jetMap_->GetMit(refToPtr(tagInfo->pfjetRef())));
125 }
126
127 // add pf candidate references
128 if (pfCandMap_) {
129 if (inTau->leadPFCand().isNonnull())
130 tau->SetLeadPFCand(pfCandMap_->GetMit(refToPtr(inTau->leadPFCand())));
131
132 if (inTau->leadPFChargedHadrCand().isNonnull()) {
133 const mithep::PFCandidate *pfc =
134 pfCandMap_->GetMit(refToPtr(inTau->leadPFChargedHadrCand()));
135 tau->SetLeadChargedHadronPFCand(pfc);
136 }
137
138 if (inTau->leadPFNeutralCand().isNonnull())
139 tau->SetLeadNeutralPFCand(pfCandMap_->GetMit(refToPtr(inTau->leadPFNeutralCand())));
140
141 for (uint i=0; i<inTau->signalPFCands().size(); ++i) {
142 const PFCandidate *signalCand = pfCandMap_->GetMit(refToPtr(inTau->signalPFCands().at(i)));
143 tau->AddSignalPFCand(signalCand);
144 }
145
146 for (uint i=0; i<inTau->isolationPFCands().size(); ++i) {
147 const PFCandidate *isoCand = pfCandMap_->GetMit(refToPtr(inTau->isolationPFCands().at(i)));
148 tau->AddIsoPFCand(isoCand);
149 }
150 }
151 }
152 taus_->Trim();
153 }