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")), |
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 |
|
{ |
53 |
|
// Fill missing energy from edm collection into our collection. |
54 |
|
embedWeight_->Delete(); |
55 |
|
|
56 |
< |
double inEmbedWeightValue = 0; |
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); |
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; |
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(inEmbedWeight); |
169 |
< |
//embedWeight->SetWeight(inEmbedWeight); |
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 |
|
} |