CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/Alignment/CommonAlignmentProducer/interface/AlignmentTwoBodyDecayTrackSelector.h

Go to the documentation of this file.
00001 
00002 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentTwoBodyDecayTrackSelector_h
00003 #define Alignment_CommonAlignmentAlgorithm_AlignmentTwoBodyDecayTrackSelector_h
00004 
00005 //Framework
00006 #include "FWCore/Utilities/interface/InputTag.h"
00007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00008 //STL
00009 #include <vector>
00010 // forward declaration:
00011 namespace edm {class Track;}
00012 namespace reco {class Event;}
00013 
00014 class AlignmentTwoBodyDecayTrackSelector
00015 {
00016  public:
00017 
00018   typedef std::vector<const reco::Track*> Tracks; 
00019 
00021   AlignmentTwoBodyDecayTrackSelector(const edm::ParameterSet & cfg);
00022 
00024   ~AlignmentTwoBodyDecayTrackSelector();
00025 
00027   Tracks select(const Tracks& tracks, const edm::Event& iEvent);
00028 
00029   bool useThisFilter();
00030  private:
00032   Tracks checkMass(const Tracks& cands)const;
00034   Tracks checkMETMass(const Tracks& cands,const edm::Event& iEvent)const;
00036   Tracks checkCharge(const Tracks& cands)const;
00038   Tracks checkAcoplanarity(const Tracks& cands)const;
00040   Tracks checkMETAcoplanarity(const Tracks& cands,const edm::Event& iEvent)const; 
00042 
00043   //settings from conigfile
00044   bool theMassrangeSwitch;
00045   bool theChargeSwitch;
00046   bool theMissingETSwitch;
00047   bool theAcoplanarityFilterSwitch;
00048   //inv mass Cut
00049   double theMinMass;
00050   double theMaxMass;
00051   double theDaughterMass;
00052   //charge filter
00053   int theCharge;
00054   bool theUnsignedSwitch;
00055   //missing ET Filter
00056   edm::InputTag theMissingETSource;
00057   //acoplanarity Filter
00058   double theAcoplanarDistance;
00059   //helpers
00061   void printTracks(const Tracks& col) const;
00062 };
00063 
00064 #endif
00065