24 std::cout <<
"Error: in PFFilter: collections_.size()!=min_.size()" << std::endl;
30 std::cout <<
"Error: in PFFilter: collections_.size()!=max_.size()" << std::endl;
36 std::cout <<
"Error: in PFFilter: collections_.size()!=min_.size()" << std::endl;
42 std::cout <<
"Error: in PFFilter: collections_.size()!=min_.size()" << std::endl;
48 std::cout <<
"Error: in PFFilter: collections_.size()!=variables_.size()" << std::endl;
69 for (
unsigned int varc = 0; varc <
collections_.size(); ++varc) {
74 const unsigned int minuspos =
collections_[varc].find(
"-");
85 bool isVar1 = iEvent.
getByLabel(collection1, var1_hnd);
87 std::cout <<
"Warning : no " << collection1 <<
" in input !" << std::endl;
95 coll_var1 = var10->
et();
97 coll_var1 = var10->
phi();
99 coll_var1 = var10->
eta();
109 bool isVar2 = iEvent.
getByLabel(collection2, var2_hnd);
111 std::cout <<
"Warning : no " << collection2 <<
" in input !" << std::endl;
119 coll_var2 = var20->
et();
121 coll_var2 = var20->
phi();
123 coll_var2 = var20->
eta();
134 double delta = coll_var1 - coll_var2;
136 if (coll_var1 >
M_PI)
137 coll_var1 -= ceil((coll_var1 -
M_PI) / (2 *
M_PI)) * 2 *
M_PI;
138 if (coll_var1 <= -
M_PI)
139 coll_var1 += ceil((coll_var1 +
M_PI) / (-2. *
M_PI)) * 2. *
M_PI;
140 if (coll_var2 >
M_PI)
141 coll_var2 -= ceil((coll_var2 -
M_PI) / (2 *
M_PI)) * 2 *
M_PI;
142 if (coll_var2 <= -
M_PI)
143 coll_var2 += ceil((coll_var2 +
M_PI) / (-2. *
M_PI)) * 2 *
M_PI;
145 double deltaphi = -999.0;
146 if (fabs(coll_var1 - coll_var2) <
M_PI) {
147 deltaphi = (coll_var1 - coll_var2);
149 if ((coll_var1 - coll_var2) > 0.0) {
150 deltaphi = (2 *
M_PI - fabs(coll_var1 - coll_var2));
152 deltaphi = -(2 *
M_PI - fabs(coll_var1 - coll_var2));
160 if (delta >
max_[varc] && delta <
min_[varc])
183 coll_var = var00->
et();
185 coll_var = var00->
phi();
187 coll_var = var00->
eta();
198 if (coll_var >
max_[varc] && coll_var <
min_[varc])
T getParameter(std::string const &) const
std::vector< std::string > collections_
bool filter(edm::Event &, const edm::EventSetup &) override
std::vector< std::string > variables_
std::vector< double > max_
std::vector< int > doMin_
virtual double et() const =0
transverse energy
std::vector< double > min_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::vector< int > doMax_
virtual double eta() const =0
momentum pseudorapidity
T const * product() const
virtual double phi() const =0
momentum azimuthal angle
PFFilter(const edm::ParameterSet &)