19 |
|
|
20 |
|
AnaMuonDistribution::AnaMuonDistribution(const edm::ParameterSet& cfg) |
21 |
|
: ptMin( cfg.getParameter<double>("ptMin") ), |
22 |
+ |
etaMax (cfg.getParameter<double>("etaMax") ), |
23 |
|
minNumberOfMatchedStations( cfg.getParameter<unsigned int>("minNumberOfMatchedStations") ), |
24 |
|
minNumberRpcHits( cfg.getParameter<uint>("minNumberRpcHits") ), |
25 |
< |
minNumberDtCscHits( cfg.getParameter<unsigned int>("minNumberDtCscHits") ) |
25 |
> |
minNumberDtCscHits( cfg.getParameter<unsigned int>("minNumberDtCscHits") ), |
26 |
> |
requireAnyMuon(cfg.getParameter<bool>("requireAnyMuon")), |
27 |
> |
requireUnique(cfg.getParameter<bool>("requireUnique")), |
28 |
> |
requireOnlyOne(cfg.getParameter<bool>("requireOnlyOne")), |
29 |
> |
requireGlobal(cfg.getParameter<bool>("requireGlobal")), |
30 |
> |
requireInner(cfg.getParameter<bool>("requireInner")), |
31 |
> |
requireOuter(cfg.getParameter<bool>("requireOuter")) |
32 |
|
{ } |
33 |
|
|
34 |
|
void AnaMuonDistribution::init(TObjArray& histos) |
45 |
|
|
46 |
|
bool AnaMuonDistribution::filter(const MuonObj *muon) |
47 |
|
{ |
48 |
+ |
// std::cout << *muon << std::endl; |
49 |
+ |
if (requireAnyMuon && (muon->nAllMuons==0)) return false; |
50 |
+ |
if (requireOnlyOne && (!muon->nAllMuons==1)) return false; |
51 |
+ |
if (requireUnique && !muon->isUnique) return false; |
52 |
+ |
if (requireGlobal && !muon->isGlobal()) return false; |
53 |
+ |
if (requireInner && !muon->isTracker()) return false; |
54 |
+ |
if (requireOuter && !muon->isOuter()) return false; |
55 |
|
if (muon->pt() < ptMin) return false; |
56 |
+ |
if (fabs(muon->eta()) > etaMax) return false; |
57 |
|
if (muon->nMatchedStations < minNumberOfMatchedStations) return false; |
58 |
|
if (muon->nRPCHits < minNumberRpcHits) return false; |
59 |
|
if (muon->nDTHits + muon->nCSCHits < minNumberDtCscHits) return false; |