ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/ForwardAnalysis/Utilities/src/TrackAnalysisSelector.cc
Revision: 1.1
Committed: Thu Aug 25 19:10:01 2011 UTC (13 years, 8 months ago) by antoniov
Content type: text/plain
Branch: MAIN
CVS Tags: V01-01-01, V01-01-00, antoniov-forwardAnalysis-09Jul2012-v1, antoniov-forwardAnalysis-29Jun2012-v1, V01-00-00, antoniov-utilities-11Jun2012-v1, antoniov-forwardAnalysis-Oct072011-v1, sfonseca_10_04_2011, antoniov-forwardAnalysis-Sep182011-v1, antoniov-forwardAnalysis-Sep102011-v1, sfonseca_08_26_2011
Log Message:
moving plugins to ForwardAnalysis

File Contents

# User Rev Content
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