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 Member Functions | Private Attributes
MuonAlignmentPreFilter Class Reference
Inheritance diagram for MuonAlignmentPreFilter:
edm::EDFilter edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 MuonAlignmentPreFilter (const edm::ParameterSet &)
 
 ~MuonAlignmentPreFilter ()
 
- Public Member Functions inherited from edm::EDFilter
 EDFilter ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDFilter ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

virtual void beginJob () override
 
virtual void endJob () override
 
virtual bool filter (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

bool m_allowTIDTEC
 
double m_maxTrackEta
 
int m_minCSCHits
 
int m_minDTHits
 
int m_minTrackerHits
 
double m_minTrackEta
 
double m_minTrackP
 
double m_minTrackPt
 
edm::InputTag m_tracksTag
 

Additional Inherited Members

- Public Types inherited from edm::EDFilter
typedef EDFilter ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDFilter
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Description: pre-select events that are worth considering in muon alignment

$Id:$

Definition at line 31 of file MuonAlignmentPreFilter.cc.

Constructor & Destructor Documentation

MuonAlignmentPreFilter::MuonAlignmentPreFilter ( const edm::ParameterSet cfg)
explicit

Definition at line 56 of file MuonAlignmentPreFilter.cc.

57  : m_tracksTag(cfg.getParameter<edm::InputTag>("tracksTag"))
58  , m_minTrackPt(cfg.getParameter<double>("minTrackPt"))
59  , m_minTrackP(cfg.getParameter<double>("minTrackP"))
60  , m_allowTIDTEC(cfg.getParameter<bool>("allowTIDTEC"))
61  , m_minTrackerHits(cfg.getParameter<int>("minTrackerHits"))
62  , m_minDTHits(cfg.getParameter<int>("minDTHits"))
63  , m_minCSCHits(cfg.getParameter<int>("minCSCHits"))
64  , m_minTrackEta(cfg.getParameter<double>("minTrackEta"))
65  , m_maxTrackEta(cfg.getParameter<double>("maxTrackEta"))
66 {}
T getParameter(std::string const &) const
MuonAlignmentPreFilter::~MuonAlignmentPreFilter ( )
inline

Definition at line 35 of file MuonAlignmentPreFilter.cc.

35 {}

Member Function Documentation

virtual void MuonAlignmentPreFilter::beginJob ( void  )
inlineoverrideprivatevirtual

Reimplemented from edm::EDFilter.

Definition at line 38 of file MuonAlignmentPreFilter.cc.

38 {}
virtual void MuonAlignmentPreFilter::endJob ( void  )
inlineoverrideprivatevirtual

Reimplemented from edm::EDFilter.

Definition at line 40 of file MuonAlignmentPreFilter.cc.

40 {}
bool MuonAlignmentPreFilter::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::EDFilter.

Definition at line 70 of file MuonAlignmentPreFilter.cc.

References MuonSubdetId::CSC, MuonSubdetId::DT, reco::TrackBase::eta(), edm::Event::getByLabel(), m_allowTIDTEC, m_maxTrackEta, m_minCSCHits, m_minDTHits, m_minTrackerHits, m_minTrackEta, m_minTrackP, m_minTrackPt, m_tracksTag, DetId::Muon, reco::TrackBase::p(), reco::TrackBase::pt(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), StripSubdetector::TEC, StripSubdetector::TID, and DetId::Tracker.

Referenced by Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::filter(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::find(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::setDataAccessor(), and Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::switchCenterView().

71 {
73  iEvent.getByLabel(m_tracksTag, trackColl);
74 
75  // check if there's at least one interesting track:
76 
77  for (reco::TrackCollection::const_iterator it = trackColl->begin(); it != trackColl->end(); it++)
78  {
79  int tracker_numHits = 0;
80  bool contains_TIDTEC = false;
81  int dt_numHits = 0;
82  int csc_numHits = 0;
83 
84  const reco::Track* track = &(*it);
85 
86  if (track->pt() < m_minTrackPt || track->p() < m_minTrackP) continue;
87  if (track->eta() < m_minTrackEta || track->eta() > m_maxTrackEta ) continue;
88 
89  for (trackingRecHit_iterator hit = track->recHitsBegin(); hit != track->recHitsEnd(); ++hit)
90  {
91  DetId id = (*hit)->geographicalId();
92  if (id.det() == DetId::Tracker)
93  {
94  tracker_numHits++;
95  if (id.subdetId() == StripSubdetector::TID || id.subdetId() == StripSubdetector::TEC) contains_TIDTEC = true;
96  }
97 
98  if ( id.det() == DetId::Muon && id.subdetId() == MuonSubdetId::DT ) dt_numHits++;
99  if ( id.det() == DetId::Muon && id.subdetId() == MuonSubdetId::CSC ) csc_numHits++;
100  }
101 
102  if (( m_allowTIDTEC || !contains_TIDTEC ) &&
103  m_minTrackerHits <= tracker_numHits &&
104  ( m_minDTHits <= dt_numHits || m_minCSCHits <= csc_numHits ) ) return true;
105  }
106  return false;
107 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:602
static const int CSC
Definition: MuonSubdetId.h:13
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:638
double pt() const
track transverse momentum
Definition: TrackBase.h:608
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:104
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:420
Definition: DetId.h:18
static const int DT
Definition: MuonSubdetId.h:12
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:109

Member Data Documentation

bool MuonAlignmentPreFilter::m_allowTIDTEC
private

Definition at line 47 of file MuonAlignmentPreFilter.cc.

Referenced by filter().

double MuonAlignmentPreFilter::m_maxTrackEta
private

Definition at line 52 of file MuonAlignmentPreFilter.cc.

Referenced by filter().

int MuonAlignmentPreFilter::m_minCSCHits
private

Definition at line 50 of file MuonAlignmentPreFilter.cc.

Referenced by filter().

int MuonAlignmentPreFilter::m_minDTHits
private

Definition at line 49 of file MuonAlignmentPreFilter.cc.

Referenced by filter().

int MuonAlignmentPreFilter::m_minTrackerHits
private

Definition at line 48 of file MuonAlignmentPreFilter.cc.

Referenced by filter().

double MuonAlignmentPreFilter::m_minTrackEta
private

Definition at line 51 of file MuonAlignmentPreFilter.cc.

Referenced by filter().

double MuonAlignmentPreFilter::m_minTrackP
private

Definition at line 46 of file MuonAlignmentPreFilter.cc.

Referenced by filter().

double MuonAlignmentPreFilter::m_minTrackPt
private

Definition at line 45 of file MuonAlignmentPreFilter.cc.

Referenced by filter().

edm::InputTag MuonAlignmentPreFilter::m_tracksTag
private

Definition at line 44 of file MuonAlignmentPreFilter.cc.

Referenced by filter().