CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ElementsInEllipse.h
Go to the documentation of this file.
1 #ifndef ElementsInEllipse_h
2 #define ElementsInEllipse_h
3 
6 #include <utility>
7 
8 template <typename T, typename C>
10  public:
13 
14  const std::pair<std::vector<edm::Ptr<C> >, std::vector<edm::Ptr<C> > > operator()(const T& axis, double rPhi, double rEta, const std::vector<edm::Ptr<C> >& elements)const{
15  std::vector<edm::Ptr<C> > elementsInEllipse;
16  std::vector<edm::Ptr<C> > elementsOutEllipse;
17  for(typename std::vector<edm::Ptr<C> >::const_iterator element = elements.begin(); element != elements.end(); ++element){
18  double distance = ellipse(axis, (*element)->momentum(), rPhi, rEta);
19  if(distance <= 1.)elementsInEllipse.push_back(*element);
20  else elementsOutEllipse.push_back(*element);
21  }
22  std::pair<std::vector<edm::Ptr<C> >, std::vector<edm::Ptr<C> > > theInOutPair(elementsInEllipse, elementsOutEllipse);
23  return theInOutPair;
24  }
25  };
26 #endif
const std::pair< std::vector< edm::Ptr< C > >, std::vector< edm::Ptr< C > > > operator()(const T &axis, double rPhi, double rEta, const std::vector< edm::Ptr< C > > &elements) const
dictionary elements
double ellipse(const T1 &t1, const T2 &t2, double rPhi, double rEta)
Definition: Ellipse.h:9
long double T