1 |
antoniov |
1.1 |
#include "ForwardAnalysis/Utilities/interface/TrackAnalysisSelector.h"
|
2 |
|
|
|
3 |
|
|
#include "DataFormats/Common/interface/Handle.h"
|
4 |
|
|
#include "FWCore/Framework/interface/Event.h"
|
5 |
|
|
#include "FWCore/ParameterSet/interface/ParameterSet.h"
|
6 |
|
|
|
7 |
|
|
#include "DataFormats/TrackReco/interface/TrackFwd.h"
|
8 |
|
|
#include "DataFormats/TrackReco/interface/Track.h"
|
9 |
|
|
#include "DataFormats/VertexReco/interface/VertexFwd.h"
|
10 |
|
|
#include "DataFormats/VertexReco/interface/Vertex.h"
|
11 |
|
|
|
12 |
|
|
namespace forwardAnalysis {
|
13 |
|
|
|
14 |
|
|
using namespace reco;
|
15 |
|
|
|
16 |
|
|
TrackAnalysisSelector::TrackAnalysisSelector(const edm::ParameterSet& pset):
|
17 |
|
|
vertexTag_(pset.getParameter<edm::InputTag>("vertexTag")),
|
18 |
|
|
ptMin_(pset.getParameter<double>("ptMin")),
|
19 |
|
|
etaMin_(pset.getParameter<double>("etaMin")),
|
20 |
|
|
etaMax_(pset.getParameter<double>("etaMax")),
|
21 |
|
|
dxySigMax_(pset.getParameter<double>("dxySigMax")),
|
22 |
|
|
dzSigMax_(pset.getParameter<double>("dzSigMax")),
|
23 |
|
|
sigPtMax_(pset.getParameter<double>("sigPtMax")) {
|
24 |
|
|
|
25 |
|
|
quality_ = TrackBase::qualityByName( pset.getParameter<std::string>("quality") );
|
26 |
|
|
}
|
27 |
|
|
|
28 |
|
|
TrackAnalysisSelector::~TrackAnalysisSelector() {}
|
29 |
|
|
|
30 |
|
|
bool TrackAnalysisSelector::operator()(const Track& track, const edm::Event& event) const {
|
31 |
|
|
edm::Handle<edm::View<Vertex> > vertexCollectionH;
|
32 |
|
|
event.getByLabel(vertexTag_,vertexCollectionH);
|
33 |
|
|
const Vertex& primaryVertex = *(vertexCollectionH->begin());
|
34 |
|
|
|
35 |
|
|
double dxySig = track.dxy(primaryVertex.position())/track.dxyError();
|
36 |
|
|
double dzSig = track.dz(primaryVertex.position())/track.dzError();
|
37 |
|
|
double sigPtRel = track.ptError()/track.pt();
|
38 |
|
|
|
39 |
|
|
bool accept = ( track.pt() > ptMin_ &&
|
40 |
|
|
track.eta() > etaMin_ && track.eta() < etaMax_ &&
|
41 |
|
|
track.quality(quality_) &&
|
42 |
|
|
dxySig < dxySigMax_ &&
|
43 |
|
|
dzSig < dzSigMax_ &&
|
44 |
|
|
sigPtRel < sigPtMax_);
|
45 |
|
|
|
46 |
|
|
return accept;
|
47 |
|
|
}
|
48 |
|
|
|
49 |
|
|
} // namespace
|