CMS 3D CMS Logo

DQMTauProducer.cc
Go to the documentation of this file.
3 //
4 // class decleration
5 //
6 
7 
9 {
10  trackIsolatedJets_ = consumes<reco::IsolatedTauTagInfoCollection>(iConfig.getParameter<edm::InputTag>("TrackIsoJets"));
11  matchingCone_ = iConfig.getParameter<double>("MatchingCone");
12  signalCone_ = iConfig.getParameter<double>("SignalCone");
13  ptMin_ = iConfig.getParameter<double>("MinPtTracks");
14 
15  isolationCone_ = iConfig.getParameter<double>("IsolationCone");
16  produces<reco::HLTTauCollection>();
17 }
18 
20 
22 {
23 
24  using namespace reco;
25  using namespace edm;
26  using namespace std;
27 
28 
29  HLTTauCollection * jetCollection = new HLTTauCollection;
30 
31 
33  iEvent.getByToken(trackIsolatedJets_, tauL25Jets );
34 
35 
36  IsolatedTauTagInfoCollection tau = *(tauL25Jets.product());
37 
38 
39  float eta_, phi_, pt_;
40  float ptLeadTk=0.;
41  int trackIsolation=1000.;
42  int nTracks=1000.;
43 
44  for(unsigned int i=0; i<tau.size();i++)
45  {
46  JetTracksAssociationRef jetTracks = tau[i].jtaRef();
47  math::XYZVector jetDir(jetTracks->first->px(),jetTracks->first->py(),jetTracks->first->pz());
48  eta_ = jetDir.eta();
49  phi_ = jetDir.phi();
50  pt_ = jetTracks->first->pt();
51 
52  const TrackRef leadTk = tau[i].leadingSignalTrack(jetDir,matchingCone_, 1.);
53  if(!leadTk)
54  {}else{
55  trackIsolation = (int)tau[i].discriminator(jetDir,matchingCone_, signalCone_, isolationCone_,1.,1.,0);
56  ptLeadTk = (*leadTk).pt();
57  nTracks = (tau[i].tracksInCone((*leadTk).momentum(), isolationCone_, ptMin_ )).size() - (tau[i].tracksInCone((*leadTk).momentum(), signalCone_, ptMin_ )).size();
58  }
59  HLTTau pippo(eta_,phi_,pt_,-1,trackIsolation,ptLeadTk,trackIsolation,ptLeadTk);
60  pippo.setNL25TrackIsolation(nTracks);
61  pippo.setNL3TrackIsolation(nTracks);
62  jetCollection->push_back(pippo);
63 
64  }
65 
66 
67  std::unique_ptr<reco::HLTTauCollection> selectedTaus(jetCollection);
68 
69  iEvent.put(std::move(selectedTaus));
70 
71 
72 
73 
74 }
T getParameter(std::string const &) const
const unsigned int nTracks(const reco::Vertex &sv)
DQMTauProducer(const edm::ParameterSet &)
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:127
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:508
edm::EDGetTokenT< reco::IsolatedTauTagInfoCollection > trackIsolatedJets_
double isolationCone_
selectedTaus
====================================== Taus
int iEvent
Definition: GenABIO.cc:230
double matchingCone_
void setNL25TrackIsolation(int nTracks)
Definition: HLTTau.h:60
std::vector< IsolatedTauTagInfo > IsolatedTauTagInfoCollection
std::vector< HLTTau > HLTTauCollection
collection of HLTTau objects
Definition: HLTTauFwd.h:9
void produce(edm::Event &, const edm::EventSetup &) override
T const * product() const
Definition: Handle.h:81
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
~DQMTauProducer() override
void setNL3TrackIsolation(int nTracks)
Definition: HLTTau.h:61
fixed size matrix
HLT enums.
def move(src, dest)
Definition: eostools.py:510