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

# User Rev Content
1 bendavid 1.5 // $Id: FillerPFTaus.cc,v 1.4 2009/09/25 08:42:51 loizides Exp $
2 bendavid 1.1
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 loizides 1.3 #include "MitAna/DataTree/interface/Names.h"
8     #include "MitAna/DataTree/interface/PFTauCol.h"
9     #include "MitProd/ObjectService/interface/ObjectService.h"
10 bendavid 1.1
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 bendavid 1.5 void FillerPFTaus::BookDataBlock(TreeWriter &tws)
41 bendavid 1.1 {
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 loizides 1.2 const edm::EventSetup &setup)
69 bendavid 1.1 {
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 loizides 1.2 // electron preid track reference
116 bendavid 1.1 if (inTau->electronPreIDTrack().isNonnull())
117     tau->SetElectronTrack(trackMap_->GetMit(refToPtr(inTau->electronPreIDTrack())));
118     }
119    
120     const reco::PFTauTagInfo *tagInfo = inTau->pfTauTagInfoRef().get();
121    
122 loizides 1.2 // add source calojet reference
123 bendavid 1.1 if (jetMap_) {
124     tau->SetPFJet(jetMap_->GetMit(refToPtr(tagInfo->pfjetRef())));
125     }
126    
127 loizides 1.2 // add pf candidate references
128 bendavid 1.1 if (pfCandMap_) {
129     if (inTau->leadPFCand().isNonnull())
130     tau->SetLeadPFCand(pfCandMap_->GetMit(refToPtr(inTau->leadPFCand())));
131    
132 loizides 1.2 if (inTau->leadPFChargedHadrCand().isNonnull()) {
133     const mithep::PFCandidate *pfc =
134     pfCandMap_->GetMit(refToPtr(inTau->leadPFChargedHadrCand()));
135     tau->SetLeadChargedHadronPFCand(pfc);
136     }
137 bendavid 1.1
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     }