CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/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 #include <DataFormats/TrackReco/interface/TrackFwd.h>
00012 #include <DataFormats/METReco/interface/CaloMETFwd.h>
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   bool checkCharge(const reco::Track* trk1,const reco::Track* trk2 = 0)const;
00038   bool checkAcoplanarity(const reco::Track* trk1,const reco::Track* trk2)const;
00040   bool checkMETAcoplanarity(const reco::Track* trk,const reco::CaloMET* met)const; 
00041 
00043 
00044   //settings from conigfile
00045   bool theMassrangeSwitch;
00046   bool theChargeSwitch;
00047   bool theMissingETSwitch;
00048   bool theAcoplanarityFilterSwitch;
00049   //inv mass Cut
00050   double theMinMass;
00051   double theMaxMass;
00052   double theDaughterMass;
00053   unsigned int theCandNumber;
00054   //charge filter
00055   int theCharge;
00056   bool theUnsignedSwitch;
00057   //missing ET Filter
00058   edm::InputTag theMissingETSource;
00059   //acoplanarity Filter
00060   double theAcoplanarDistance;
00061   //helpers
00063   void printTracks(const Tracks& col) const;
00064 };
00065 
00066 #endif
00067