31 std::cout <<
"Error: in PFMETFilter: collections_.size()!=min_.size()" << std::endl;
37 std::cout <<
"Error: in PFMETFilter: collections_.size()!=max_.size()" << std::endl;
43 std::cout <<
"Error: in PFMETFilter: collections_.size()!=min_.size()" << std::endl;
49 std::cout <<
"Error: in PFMETFilter: collections_.size()!=min_.size()" << std::endl;
55 std::cout <<
"Error: in PFMETFilter: collections_.size()!=variables_.size()" << std::endl;
76 for (
unsigned int varc = 0; varc <
collections_.size(); ++varc) {
81 const unsigned int minuspos =
collections_[varc].find(
"-");
92 bool isVar1 = iEvent.
getByLabel(collection1, var1_hnd);
94 std::cout <<
"Warning : no " << collection1 <<
" in input !" << std::endl;
102 coll_var1 = var10->
et();
104 coll_var1 = var10->
phi();
106 coll_var1 = var10->
eta();
116 bool isVar2 = iEvent.
getByLabel(collection2, var2_hnd);
118 std::cout <<
"Warning : no " << collection2 <<
" in input !" << std::endl;
126 coll_var2 = var20->
et();
128 coll_var2 = var20->
phi();
130 coll_var2 = var20->
eta();
141 double delta = coll_var1 - coll_var2;
143 if (coll_var1 >
M_PI)
144 coll_var1 -= ceil((coll_var1 -
M_PI) / (2 *
M_PI)) * 2 *
M_PI;
145 if (coll_var1 <= -
M_PI)
146 coll_var1 += ceil((coll_var1 +
M_PI) / (-2. *
M_PI)) * 2. *
M_PI;
147 if (coll_var2 >
M_PI)
148 coll_var2 -= ceil((coll_var2 -
M_PI) / (2 *
M_PI)) * 2 *
M_PI;
149 if (coll_var2 <= -
M_PI)
150 coll_var2 += ceil((coll_var2 +
M_PI) / (-2. *
M_PI)) * 2 *
M_PI;
152 double deltaphi = -999.0;
153 if (fabs(coll_var1 - coll_var2) <
M_PI) {
154 deltaphi = (coll_var1 - coll_var2);
156 if ((coll_var1 - coll_var2) > 0.0) {
157 deltaphi = (2 *
M_PI - fabs(coll_var1 - coll_var2));
159 deltaphi = -(2 *
M_PI - fabs(coll_var1 - coll_var2));
167 if (delta >
max_[varc] && delta <
min_[varc])
190 coll_var = var00->
et();
192 coll_var = var00->
phi();
194 coll_var = var00->
eta();
203 truevar0 = truevar0_hnd.
product();
206 const double DeltaMEX = var00->
px() - truevar00->
px();
207 const double DeltaMEY = var00->
py() - truevar00->
py();
208 const double cutvalc =
sqrt(DeltaMEX * DeltaMEX + DeltaMEY * DeltaMEY);
210 const double SETc = met->
sumEt();
215 std::cout <<
"DeltaMET = " << var00->
et() - truevar00->
et() << std::endl;
216 std::cout <<
"trueSET = " << SETc << std::endl;
217 std::cout <<
"pfMET = " << var00->
et() << std::endl;
218 std::cout <<
"trueMET = " << truevar00->
et() << std::endl;
219 std::cout <<
"DeltaMEX = " << DeltaMEX << std::endl;
220 std::cout <<
"DeltaMEY = " << DeltaMEY << std::endl;
221 std::cout <<
"cutvalc = " << cutvalc << std::endl;
222 std::cout <<
"sigmac = " << sigmac << std::endl;
223 std::cout <<
"cutvalc/sigmac = " << cutvalc / sigmac << std::endl;
227 if (
verbose_ && (var00->
et() - truevar00->
et()) > 300.0) {
228 std::cout <<
"EVENT NOT KEPT:" << std::endl;
229 std::cout <<
"DeltaMET = " << var00->
et() - truevar00->
et() << std::endl;
230 std::cout <<
"SETc = " << SETc << std::endl;
231 std::cout <<
"pfMET = " << var00->
et() << std::endl;
232 std::cout <<
"trueMET = " << truevar00->
et() << std::endl;
233 std::cout <<
"DeltaMEX = " << DeltaMEX << std::endl;
234 std::cout <<
"DeltaMEY = " << DeltaMEY << std::endl;
235 std::cout <<
"cutvalc = " << cutvalc << std::endl;
236 std::cout <<
"sigmac = " << sigmac << std::endl;
237 std::cout <<
"cutvalc/sigmac = " << cutvalc / sigmac << std::endl;
251 if (coll_var >
max_[varc] && coll_var <
min_[varc])
T getParameter(std::string const &) const
std::vector< double > max_
std::vector< double > min_
PFMETFilter(const edm::ParameterSet &)
std::vector< int > doMax_
bool filter(edm::Event &, const edm::EventSetup &) override
virtual double et() const =0
transverse energy
virtual double py() const =0
y coordinate of momentum vector
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
virtual double eta() const =0
momentum pseudorapidity
std::vector< std::string > collections_
T const * product() const
std::vector< int > doMin_
virtual double px() const =0
x coordinate of momentum vector
virtual double phi() const =0
momentum azimuthal angle
std::vector< std::string > variables_