1 |
#include "UserCode/L1RpcTriggerAnalysis/interface/BestSimulatedMuonFinder.h"
|
2 |
|
3 |
#include "FWCore/Framework/interface/Event.h"
|
4 |
#include "FWCore/Framework/interface/EventSetup.h"
|
5 |
#include "DataFormats/Common/interface/Handle.h"
|
6 |
#include "FWCore/Framework/interface/ESHandle.h"
|
7 |
#include "FWCore/ParameterSet/interface/ParameterSet.h"
|
8 |
|
9 |
#include "SimDataFormats/Track/interface/SimTrack.h"
|
10 |
#include "SimDataFormats/Vertex/interface/SimVertex.h"
|
11 |
#include "SimDataFormats/Track/interface/SimTrackContainer.h"
|
12 |
#include "SimDataFormats/Vertex/interface/SimVertexContainer.h"
|
13 |
|
14 |
const SimTrack * BestSimulatedMuonFinder::result(const edm::Event &ev, const edm::EventSetup &es)
|
15 |
{
|
16 |
const SimTrack * result = 0;
|
17 |
edm::Handle<edm::SimTrackContainer> simTks;
|
18 |
ev.getByLabel("g4SimHits",simTks);
|
19 |
|
20 |
//edm::Handle<edm::SimVertexContainer> simVc;
|
21 |
//ev.getByLabel("g4SimHits", simVc);
|
22 |
//std::vector<SimVertex> mySimVertices = *(simVc.product());
|
23 |
|
24 |
for (std::vector<SimTrack>::const_iterator it=simTks->begin(); it< simTks->end(); it++) {
|
25 |
const SimTrack & aTrack = *it;
|
26 |
if ( !(aTrack.type() == 13 || aTrack.type() == -13) )continue;
|
27 |
if ( !result || aTrack.momentum().pt() > result->momentum().pt()) result = &aTrack;
|
28 |
}
|
29 |
return result;
|
30 |
}
|