ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerEmbedWeight.cc
Revision: 1.5
Committed: Thu Jul 11 14:00:41 2013 UTC (11 years, 9 months ago) by pharris
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_032, HEAD
Changes since 1.4: +34 -32 lines
Error occurred while calculating annotation data.
Log Message:
added info to embedded

File Contents

# Content
1 // $Id: FillerEmbedWeight.cc,v 1.4 2013/05/06 18:27:49 pharris Exp $
2
3 #include "MitProd/TreeFiller/interface/FillerEmbedWeight.h"
4 #include "MitAna/DataTree/interface/Names.h"
5 #include "MitAna/DataTree/interface/EmbedWeightCol.h"
6 #include "MitProd/ObjectService/interface/ObjectService.h"
7 #include "SimDataFormats/GeneratorProducts/interface/GenFilterInfo.h"
8
9 using namespace std;
10 using namespace edm;
11 using namespace mithep;
12
13 //--------------------------------------------------------------------------------------------------
14 FillerEmbedWeight::FillerEmbedWeight(const ParameterSet &cfg, const char *name, bool active) :
15 BaseFiller(cfg,name,active),
16 edmName_ (Conf().getUntrackedParameter<string>("edmName" ,"generator_weight")),
17 edmSpinnerName_(Conf().getUntrackedParameter<string>("edmSpinnerName","TauSpinnerRec")),
18 edmMuEffName_ (Conf().getUntrackedParameter<string>("edmMuEffName" ,"ZmumuEvtSelEffCorrWeightProducer")),
19 edmMuRadName_ (Conf().getUntrackedParameter<string>("edmMuRadName" ,"muonRadiationCorrWeightProducer")),
20 edmKineReweightGenName_ (Conf().getUntrackedParameter<string>("edmKineReweightGenName" ,"embeddingKineReweightGENembedding")),
21 edmKineReweightRecName_ (Conf().getUntrackedParameter<string>("edmKineReweightRecName" ,"embeddingKineReweightRECembedding")),
22
23 genInfo_(Conf().getUntrackedParameter<bool> ("useGenInfo","True")),
24 recHit_ (Conf().getUntrackedParameter<bool> ("useRecHit","True")),
25 useMuRad_ (Conf().getUntrackedParameter<bool> ("useMuonRad","True")),
26 mitName_(Conf().getUntrackedParameter<string>("mitName",Names::gkEmbedWeightBrn)),
27 embedWeight_(new mithep::EmbedWeightArr)
28 {
29 // Constructor.
30 }
31
32 //--------------------------------------------------------------------------------------------------
33 FillerEmbedWeight::~FillerEmbedWeight()
34 {
35 // Destructor.
36
37 delete embedWeight_;
38 }
39
40 //--------------------------------------------------------------------------------------------------
41 void FillerEmbedWeight::BookDataBlock(TreeWriter &tws)
42 {
43 // Add mets branch to tree.
44
45 tws.AddBranch(mitName_,&embedWeight_);
46 OS()->add<mithep::EmbedWeightArr>(embedWeight_,mitName_);
47 }
48
49 //--------------------------------------------------------------------------------------------------
50 void FillerEmbedWeight::FillDataBlock(const edm::Event &event,
51 const edm::EventSetup &setup)
52 {
53 // Fill missing energy from edm collection into our collection.
54 embedWeight_->Delete();
55
56 double inEmbedWeightValue = 1;
57 double inSpinnerWeightValue = 1;
58 double inSpinnerFlipWeightValue = 1;
59 double inSpinnerPlusWeightValue = 1;
60 double inSpinnerMinusWeightValue = 1;
61 double inMuEffWeightValue = 1;
62 double inMuEffWeightUpValue = 1;
63 double inMuEffWeightDownValue = 1;
64 double inMuRadWeightValue = 1;
65 double inMuRadWeightUpValue = 1;
66 double inMuRadWeightDownValue = 1;
67 double inGenTau2PtVsGenTau1PtGenValue = 1;
68 double inGenTau2EtaVsGenTau1EtaGenValue = 1;
69 double inDiTauMassVsGenDiTauPtGenValue = 1;
70 double inGenTau2PtVsGenTau1PtRecValue = 1;
71 double inGenTau2EtaVsGenTau1EtaRecValue= 1;
72 double inDiTauMassVsGenDiTauPtRecValue = 1;
73
74 if(!genInfo_) {
75 Handle<double> hEmbedWeight;
76 event.getByLabel(edm::InputTag(edmName_,"weight","EmbeddedRECO"),hEmbedWeight);
77 inEmbedWeightValue = *(hEmbedWeight.product());
78 } else {
79 edm::Handle<GenFilterInfo> hGenFilterInfo;
80 event.getByLabel(edm::InputTag(edmName_, "minVisPtFilter", "EmbeddedRECO"), hGenFilterInfo);
81 inEmbedWeightValue = hGenFilterInfo->filterEfficiency();
82 }
83 if(recHit_) {
84 Handle<double> hSpinnerWeight;
85 event.getByLabel(edm::InputTag(edmSpinnerName_,"TauSpinnerWT","EmbeddedSPIN"),hSpinnerWeight);
86 inSpinnerWeightValue = *(hSpinnerWeight.product());
87
88 Handle<double> hSpinnerWeightFlip;
89 event.getByLabel(edm::InputTag(edmSpinnerName_,"TauSpinnerWTFlip","EmbeddedSPIN"),hSpinnerWeightFlip);
90 inSpinnerFlipWeightValue = *(hSpinnerWeightFlip.product());
91
92 Handle<double> hSpinnerWeightMinus;
93 event.getByLabel(edm::InputTag(edmSpinnerName_,"TauSpinnerWThplus","EmbeddedSPIN"),hSpinnerWeightMinus);
94 inSpinnerMinusWeightValue = *(hSpinnerWeightMinus.product());
95
96 Handle<double> hSpinnerWeightPlus;
97 event.getByLabel(edm::InputTag(edmSpinnerName_,"TauSpinnerWThminus","EmbeddedSPIN"),hSpinnerWeightPlus);
98 inSpinnerPlusWeightValue = *(hSpinnerWeightPlus.product());
99
100 Handle<double> hMuEffWeight;
101 event.getByLabel(edm::InputTag(edmMuEffName_,"weight","EmbeddedRECO"),hMuEffWeight);
102 inMuEffWeightValue = *(hMuEffWeight.product());
103
104 Handle<double> hMuEffWeightUp;
105 event.getByLabel(edm::InputTag(edmMuEffName_,"weightUp","EmbeddedRECO"),hMuEffWeightUp);
106 inMuEffWeightUpValue = *(hMuEffWeightUp.product());
107
108 Handle<double> hMuEffWeightDown;
109 event.getByLabel(edm::InputTag(edmMuEffName_,"weightDown","EmbeddedRECO"),hMuEffWeightDown);
110 inMuEffWeightDownValue = *(hMuEffWeightDown.product());
111
112 if(useMuRad_) {
113 Handle<double> hMuRadWeight;
114 event.getByLabel(edm::InputTag(edmMuRadName_,"weight","EmbeddedRECO"),hMuRadWeight);
115 inMuRadWeightValue = *(hMuRadWeight.product());
116
117 Handle<double> hMuRadWeightUp;
118 event.getByLabel(edm::InputTag(edmMuRadName_,"weightUp","EmbeddedRECO"),hMuRadWeightUp);
119 inMuRadWeightUpValue = *(hMuRadWeightUp.product());
120
121 Handle<double> hMuRadWeightDown;
122 event.getByLabel(edm::InputTag(edmMuRadName_,"weightDown","EmbeddedRECO"),hMuRadWeightDown);
123 inMuRadWeightDownValue = *(hMuRadWeightDown.product());
124 }
125 Handle<double> hGenTau2PtVsGenTau1PtGen;
126 event.getByLabel(edm::InputTag(edmKineReweightGenName_,"genTau2PtVsGenTau1Pt"),hGenTau2PtVsGenTau1PtGen);
127 inGenTau2PtVsGenTau1PtGenValue = *(hGenTau2PtVsGenTau1PtGen.product());
128
129 Handle<double> hGenTau2EtaVsGenTau1EtaGen;
130 event.getByLabel(edm::InputTag(edmKineReweightGenName_,"genTau2EtaVsGenTau1Eta"),hGenTau2EtaVsGenTau1EtaGen);
131 inGenTau2EtaVsGenTau1EtaGenValue = *(hGenTau2EtaVsGenTau1EtaGen.product());
132
133 Handle<double> hDiTauMassVsGenDiTauPtGen;
134 event.getByLabel(edm::InputTag(edmKineReweightGenName_,"genDiTauMassVsGenDiTauPt"),hDiTauMassVsGenDiTauPtGen);
135 inDiTauMassVsGenDiTauPtGenValue = *(hDiTauMassVsGenDiTauPtGen.product());
136
137 Handle<double> hGenTau2PtVsGenTau1PtRec;
138 event.getByLabel(edm::InputTag(edmKineReweightRecName_,"genTau2PtVsGenTau1Pt"),hGenTau2PtVsGenTau1PtRec);
139 inGenTau2PtVsGenTau1PtRecValue = *(hGenTau2PtVsGenTau1PtRec.product());
140
141 Handle<double> hGenTau2EtaVsGenTau1EtaRec;
142 event.getByLabel(edm::InputTag(edmKineReweightRecName_,"genTau2EtaVsGenTau1Eta"),hGenTau2EtaVsGenTau1EtaRec);
143 inGenTau2EtaVsGenTau1EtaRecValue = *(hGenTau2EtaVsGenTau1EtaRec.product());
144
145 Handle<double> hDiTauMassVsGenDiTauPtRec;
146 event.getByLabel(edm::InputTag(edmKineReweightRecName_,"genDiTauMassVsGenDiTauPt"),hDiTauMassVsGenDiTauPtRec);
147 inDiTauMassVsGenDiTauPtRecValue = *(hDiTauMassVsGenDiTauPtRec.product());
148 }
149 const double inEmbedWeight = inEmbedWeightValue;
150 const double inSpinnerWeight = inSpinnerWeightValue;
151 const double inSpinnerFlipWeight = inSpinnerFlipWeightValue;
152 const double inSpinnerPlusWeight = inSpinnerPlusWeightValue;
153 const double inSpinnerMinusWeight = inSpinnerMinusWeightValue;
154 const double inMuEffWeight = inMuEffWeightValue;
155 const double inMuEffWeightUp = inMuEffWeightUpValue;
156 const double inMuEffWeightDown = inMuEffWeightDownValue;
157 const double inMuRadWeight = inMuRadWeightValue;
158 const double inMuRadWeightUp = inMuRadWeightUpValue;
159 const double inMuRadWeightDown = inMuRadWeightDownValue;
160 const double inGenTau2PtVsGenTau1PtGen = inGenTau2PtVsGenTau1PtGenValue;
161 const double inGenTau2EtaVsGenTau1EtaGen = inGenTau2EtaVsGenTau1EtaGenValue;
162 const double inDiTauMassVsGenDiTauPtGen = inDiTauMassVsGenDiTauPtGenValue;
163 const double inGenTau2PtVsGenTau1PtRec = inGenTau2PtVsGenTau1PtRecValue;
164 const double inGenTau2EtaVsGenTau1EtaRec = inGenTau2EtaVsGenTau1EtaRecValue;
165 const double inDiTauMassVsGenDiTauPtRec = inDiTauMassVsGenDiTauPtRecValue;
166
167 mithep::EmbedWeight *embedWeight = embedWeight_->Allocate();
168 new (embedWeight) mithep::EmbedWeight();
169
170 embedWeight->SetGenWeight (inEmbedWeight);
171 embedWeight->SetSpinnerWeight (inSpinnerWeight);
172 embedWeight->SetSpinnerFlipWeight (inSpinnerFlipWeight);
173 embedWeight->SetSpinnerPlusWeight (inSpinnerPlusWeight);
174 embedWeight->SetSpinnerMinusWeight (inSpinnerMinusWeight);
175 embedWeight->SetMuEffWeight (inMuEffWeight);
176 embedWeight->SetMuEffWeightUp (inMuEffWeightUp);
177 embedWeight->SetMuEffWeightDown (inMuEffWeightDown);
178 embedWeight->SetMuRadWeight (inMuRadWeight);
179 embedWeight->SetMuRadWeightUp (inMuRadWeightUp);
180 embedWeight->SetMuRadWeightDown (inMuRadWeightDown);
181 embedWeight->SetGenTau2VsGenTau1PtGen (inGenTau2PtVsGenTau1PtGen);
182 embedWeight->SetGenTau2VsGenTau1EtaGen (inGenTau2EtaVsGenTau1EtaGen);
183 embedWeight->SetDiTauMassVsGenDiTauPtGen (inDiTauMassVsGenDiTauPtGen);
184 embedWeight->SetGenTau2VsGenTau1PtRec (inGenTau2PtVsGenTau1PtRec);
185 embedWeight->SetGenTau2VsGenTau1EtaRec (inGenTau2EtaVsGenTau1EtaRec);
186 embedWeight->SetDiTauMassVsGenDiTauPtRec (inDiTauMassVsGenDiTauPtRec);
187 if(recHit_) embedWeight->SetWeight();
188 embedWeight_->Trim();
189 }