ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/ForwardAnalysis/Utilities/src/TrackAnalysisSelector.cc
Revision: 1.2
Committed: Sat Nov 24 00:52:13 2012 UTC (12 years, 5 months ago) by dmf
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +10 -2 lines
Log Message:
Defense.

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