CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
egHLT::EgTagProbeCut< T > Struct Template Reference

#include <EgHLTDQMCut.h>

Inheritance diagram for egHLT::EgTagProbeCut< T >:
egHLT::EgHLTDQMCut< T >

Public Member Functions

EgHLTDQMCut< T > * clone () const
 
 EgTagProbeCut (int probeCutCode, int(T::*probeCutCodeFunc)() const, int tagCutCode, int(OffEle::*tagCutCodeFunc)() const, float minMass=81., float maxMass=101.)
 
bool pass (const T &obj, const OffEvt &evt) const
 
 ~EgTagProbeCut ()
 
- Public Member Functions inherited from egHLT::EgHLTDQMCut< T >
 EgHLTDQMCut ()
 
virtual ~EgHLTDQMCut ()
 

Private Attributes

float maxMass_
 
float minMass_
 
int probeCutCode_
 
int(T::* probeCutCodeFunc_ )() const
 
int tagCutCode_
 
int(OffEle::* tagCutCodeFunc_ )() const
 

Additional Inherited Members

- Protected Member Functions inherited from egHLT::EgHLTDQMCut< T >
 EgHLTDQMCut (const EgHLTDQMCut &rhs)
 

Detailed Description

template<class T>
struct egHLT::EgTagProbeCut< T >

Definition at line 253 of file EgHLTDQMCut.h.

Constructor & Destructor Documentation

template<class T >
egHLT::EgTagProbeCut< T >::EgTagProbeCut ( int  probeCutCode,
int(T::*)() const  probeCutCodeFunc,
int  tagCutCode,
int(OffEle::*)() const  tagCutCodeFunc,
float  minMass = 81.,
float  maxMass = 101. 
)
inline

Definition at line 262 of file EgHLTDQMCut.h.

Referenced by egHLT::EgTagProbeCut< T >::clone().

262 :probeCutCode_(probeCutCode),probeCutCodeFunc_(probeCutCodeFunc),tagCutCode_(tagCutCode),tagCutCodeFunc_(tagCutCodeFunc),minMass_(minMass),maxMass_(maxMass){}
int(OffEle::* tagCutCodeFunc_)() const
Definition: EgHLTDQMCut.h:258
int(T::* probeCutCodeFunc_)() const
Definition: EgHLTDQMCut.h:256
template<class T >
egHLT::EgTagProbeCut< T >::~EgTagProbeCut ( )
inline

Definition at line 263 of file EgHLTDQMCut.h.

263 {}

Member Function Documentation

template<class T >
EgHLTDQMCut<T>* egHLT::EgTagProbeCut< T >::clone ( void  ) const
inlinevirtual

Implements egHLT::EgHLTDQMCut< T >.

Definition at line 266 of file EgHLTDQMCut.h.

References egHLT::EgTagProbeCut< T >::EgTagProbeCut().

266 {return new EgTagProbeCut(*this);}
EgTagProbeCut(int probeCutCode, int(T::*probeCutCodeFunc)() const, int tagCutCode, int(OffEle::*tagCutCodeFunc)() const, float minMass=81., float maxMass=101.)
Definition: EgHLTDQMCut.h:262
template<class T >
bool egHLT::EgTagProbeCut< T >::pass ( const T obj,
const OffEvt evt 
) const
virtual

Implements egHLT::EgHLTDQMCut< T >.

Definition at line 269 of file EgHLTDQMCut.h.

References reco::deltaR2(), egHLT::OffEvt::eles(), mag(), NULL, and egHLT::OffEle::p4().

270  {
271  int nrTags=0;
272  const OffEle* tagEle=NULL;
273  const std::vector<OffEle>& eles = evt.eles();
274  //we are looking for an *additional* tag
275  for(size_t eleNr=0;eleNr<eles.size();eleNr++){
276  if( ((eles[eleNr].*tagCutCodeFunc_)() & tagCutCode_)==0x0){
277  //now a check that the tag is not the same as the probe
278  if(reco::deltaR2(obj.eta(),obj.phi(),eles[eleNr].eta(),eles[eleNr].phi())>0.1*0.1){//not in a cone of 0.1 of probe object
279  nrTags++;
280  tagEle = &eles[eleNr];
281  }
282  }
283  }
284  if(nrTags==1){ //we are requiring one and only one additional tag (the obj is automatically excluded from the tag list)
285  if(((obj.*probeCutCodeFunc_)() & probeCutCode_)==0x0){ //passes probe requirements, lets check the mass
286  float mass = (obj.p4()+tagEle->p4()).mag();
287  if(mass>minMass_ && mass<maxMass_) return true; //mass requirements
288  }
289  }
290  return false;
291  }
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
#define NULL
Definition: scimark2.h:8
int(OffEle::* tagCutCodeFunc_)() const
Definition: EgHLTDQMCut.h:258
int(T::* probeCutCodeFunc_)() const
Definition: EgHLTDQMCut.h:256
double deltaR2(const T1 &t1, const T2 &t2)
Definition: deltaR.h:36

Member Data Documentation

template<class T >
float egHLT::EgTagProbeCut< T >::maxMass_
private

Definition at line 260 of file EgHLTDQMCut.h.

template<class T >
float egHLT::EgTagProbeCut< T >::minMass_
private

Definition at line 259 of file EgHLTDQMCut.h.

template<class T >
int egHLT::EgTagProbeCut< T >::probeCutCode_
private

Definition at line 255 of file EgHLTDQMCut.h.

template<class T >
int(T::* egHLT::EgTagProbeCut< T >::probeCutCodeFunc_)() const
private

Definition at line 256 of file EgHLTDQMCut.h.

template<class T >
int egHLT::EgTagProbeCut< T >::tagCutCode_
private

Definition at line 257 of file EgHLTDQMCut.h.

template<class T >
int(OffEle::* egHLT::EgTagProbeCut< T >::tagCutCodeFunc_)() const
private

Definition at line 258 of file EgHLTDQMCut.h.