ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerCaloTaus.cc
Revision: 1.7
Committed: Thu Mar 18 20:21:00 2010 UTC (15 years, 1 month ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_032, Mit_031, Mit_025c_branch2, Mit_025c_branch1, Mit_030, Mit_029c, Mit_029b, Mit_030_pre1, Mit_029a, Mit_029, Mit_029_pre1, Mit_028a, Mit_025c_branch0, Mit_028, Mit_027a, Mit_027, Mit_026, Mit_025e, Mit_025d, Mit_025c, Mit_025b, Mit_025a, Mit_025, Mit_025pre2, Mit_024b, Mit_025pre1, Mit_024a, Mit_024, Mit_023, Mit_022a, Mit_022, Mit_020d, TMit_020d, Mit_020c, Mit_021, Mit_021pre2, Mit_021pre1, Mit_020b, Mit_020a, Mit_020, Mit_020pre1, Mit_018, 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, HEAD
Branch point for: Mit_025c_branch
Changes since 1.6: +2 -2 lines
Log Message:
Fix beginrun,beginjob mess

File Contents

# User Rev Content
1 bendavid 1.7 // $Id: FillerCaloTaus.cc,v 1.6 2009/09/25 08:42:50 loizides Exp $
2 bendavid 1.1
3     #include "MitProd/TreeFiller/interface/FillerCaloTaus.h"
4     #include "DataFormats/Common/interface/RefToPtr.h"
5     #include "DataFormats/TauReco/interface/CaloTau.h"
6     #include "DataFormats/TauReco/interface/CaloTauFwd.h"
7 loizides 1.4 #include "MitAna/DataTree/interface/CaloTauCol.h"
8     #include "MitAna/DataTree/interface/Names.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     FillerCaloTaus::FillerCaloTaus(const ParameterSet &cfg, const char *name, bool active) :
17     BaseFiller(cfg,name,active),
18     edmName_(Conf().getUntrackedParameter<string>("edmName","recoCaloTaus:iterativeCone5CaloTaus")),
19     mitName_(Conf().getUntrackedParameter<string>("mitName",Names::gkCaloTauBrn)),
20     trackMapName_(Conf().getUntrackedParameter<string>("trackMapName","TracksMapName")),
21     jetMapName_(Conf().getUntrackedParameter<string>("jetMapName","JetMapName")),
22     barrelBCMapName_(Conf().getUntrackedParameter<string>("barrelBCMapName","")),
23     endcapBCMapName_(Conf().getUntrackedParameter<string>("endcapBCMapName","")),
24     trackMap_(0),
25     jetMap_(0),
26     barrelBCMap_(0),
27     endcapBCMap_(0),
28     taus_(new mithep::CaloTauArr(16))
29     {
30     // Constructor.
31     }
32    
33     //--------------------------------------------------------------------------------------------------
34     FillerCaloTaus::~FillerCaloTaus()
35     {
36     // Destructor.
37    
38     delete taus_;
39     }
40    
41     //--------------------------------------------------------------------------------------------------
42 bendavid 1.7 void FillerCaloTaus::BookDataBlock(TreeWriter &tws)
43 bendavid 1.1 {
44     // Add taus branch to tree.
45    
46     tws.AddBranch(mitName_,&taus_);
47     OS()->add<mithep::CaloTauArr>(taus_,mitName_);
48    
49     if (!trackMapName_.empty()) {
50     trackMap_ = OS()->get<TrackMap>(trackMapName_);
51     if (trackMap_)
52     AddBranchDep(mitName_, trackMap_->GetBrName());
53     }
54    
55     if (!jetMapName_.empty()) {
56     jetMap_ = OS()->get<CaloJetMap>(jetMapName_);
57     if (jetMap_)
58     AddBranchDep(mitName_, jetMap_->GetBrName());
59     }
60    
61     if (!barrelBCMapName_.empty()) {
62     barrelBCMap_ = OS()->get<BasicClusterMap>(barrelBCMapName_);
63     if (barrelBCMap_)
64     AddBranchDep(mitName_, barrelBCMap_->GetBrName());
65     }
66    
67     if (!endcapBCMapName_.empty()) {
68     endcapBCMap_ = OS()->get<BasicClusterMap>(endcapBCMapName_);
69     if (endcapBCMap_)
70     AddBranchDep(mitName_, endcapBCMap_->GetBrName());
71     }
72     }
73    
74     //--------------------------------------------------------------------------------------------------
75     void FillerCaloTaus::FillDataBlock(const edm::Event &event,
76     const edm::EventSetup &setup)
77     {
78     // Fill taus from edm collection into our collection.
79    
80     taus_->Delete();
81    
82     // handle for the tau collection
83     Handle<reco::CaloTauCollection> hTauProduct;
84     GetProduct(edmName_, hTauProduct, event);
85    
86     const reco::CaloTauCollection inTaus = *(hTauProduct.product());
87     // loop through all taus
88     for (reco::CaloTauCollection::const_iterator inTau = inTaus.begin();
89     inTau != inTaus.end(); ++inTau) {
90    
91     reco::CaloTauRef tauRef(hTauProduct, inTau - inTaus.begin());
92    
93     mithep::CaloTau *tau = taus_->Allocate();
94     new (tau) mithep::CaloTau(inTau->px(),
95 loizides 1.3 inTau->py(),
96     inTau->pz(),
97     inTau->energy());
98 bendavid 1.1
99     tau->SetMomAlt(inTau->alternatLorentzVect().x(),
100     inTau->alternatLorentzVect().y(),
101     inTau->alternatLorentzVect().z(),
102     inTau->alternatLorentzVect().e());
103    
104     // fill calotau-specific quantities
105     tau->SetLeadTrackSignD0Sig(inTau->leadTracksignedSipt());
106     tau->SetLeadTrack3x3HCalEt(inTau->leadTrackHCAL3x3hitsEtSum());
107     tau->SetLeadTrack3x3HCalDEta(inTau->leadTrackHCAL3x3hottesthitDEta());
108     tau->SetSignalTracksMass(inTau->signalTracksInvariantMass());
109     tau->SetTracksMass(inTau->TracksInvariantMass());
110     tau->SetIsoTrackPtSum(inTau->isolationTracksPtSum());
111     tau->SetIsoECalEtSum(inTau->isolationECALhitsEtSum());
112     tau->SetMaxHCalHitEt(inTau->maximumHCALhitEt());
113    
114     // add track references
115     if (trackMap_) {
116 loizides 1.2 // lead track reference
117 bendavid 1.1 if (inTau->leadTrack().isNonnull())
118     tau->SetLeadTrack(trackMap_->GetMit(refToPtr(inTau->leadTrack())));
119    
120 loizides 1.2 // signal tracks
121 bendavid 1.1 for (uint i=0; i<inTau->signalTracks().size(); ++i) {
122     const Track *signalTrack = trackMap_->GetMit(refToPtr(inTau->signalTracks().at(i)));
123     tau->AddSignalTrack(signalTrack);
124     }
125    
126 loizides 1.2 // isolation tracks
127 bendavid 1.1 for (uint i=0; i<inTau->isolationTracks().size(); ++i) {
128     const Track *isoTrack = trackMap_->GetMit(refToPtr(inTau->isolationTracks().at(i)));
129     tau->AddIsoTrack(isoTrack);
130     }
131     }
132    
133     const reco::CaloTauTagInfo *tagInfo = inTau->caloTauTagInfoRef().get();
134    
135 loizides 1.2 // add source calojet reference
136 bendavid 1.1 if (jetMap_) {
137     tau->SetCaloJet(jetMap_->GetMit(refToPtr(tagInfo->calojetRef())));
138     }
139    
140 loizides 1.2 // add neutral basic cluster references
141 bendavid 1.1 if (barrelBCMap_ && endcapBCMap_) {
142     for (uint i=0; i<tagInfo->neutralECALBasicClusters().size(); ++i) {
143     reco::BasicClusterRef clusterRef = tagInfo->neutralECALBasicClusters().at(i);
144 bendavid 1.5 if ( barrelBCMap_->HasMit(refToPtr(clusterRef)) )
145     tau->AddNeutralBC(barrelBCMap_->GetMit(refToPtr(clusterRef)));
146     else if ( endcapBCMap_->HasMit(refToPtr(clusterRef)) )
147     tau->AddNeutralBC(endcapBCMap_->GetMit(refToPtr(clusterRef)));
148 bendavid 1.1 else throw edm::Exception(edm::errors::Configuration, "FillerCaloTaus:FillDataBlock()\n")
149     << "Error! Basic Cluster reference in unmapped collection " << edmName_ << endl;
150     }
151     }
152     }
153     taus_->Trim();
154     }