Main Page
Namespaces
Classes
Package Documentation
RecoTracker
DebugTools
interface
GetTrackTrajInfo.h
Go to the documentation of this file.
1
#ifndef RecoTracker_DebugTools_GetTrackTrajInfo_H
2
#define RecoTracker_DebugTools_GetTrackTrajInfo_H
3
4
/*
5
* Determine the track trajectory and detLayer at each layer that the track produces a hit in.
6
* This info can then be used to get the coordinates and momentum vector of the track at each of these
7
* layers etc.
8
*
9
* Call function analyze() for each track you are interested in. See comments below for that function.
10
* From the "result" that it returns, you can do things such as result.detTSOS.globalPosition(),
11
* to get the estimated position at which the track intercepts the layer.
12
*
13
* N.B. This information is obtained by extrapolating the track trajectory from its point of closest
14
* approach to the beam-line. It is therefore approximate, and should not be used for hit resolution
15
* studies.
16
* If you are using RECO, you can get more precise results by refitting the track instead of using this
17
* class. However, this class will work even on AOD.
18
*
19
* N.B. Your _cfg.py must load RecoTracker.Configuration.RecoTracker_cff to use this.
20
*
21
* Author: Ian Tomalin
22
* Date: Oct. 2011
23
*/
24
25
#include <memory>
26
#include "
FWCore/Framework/interface/Frameworkfwd.h
"
27
#include "
FWCore/Framework/interface/Event.h
"
28
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
29
#include "
FWCore/Framework/interface/ESHandle.h
"
30
31
#include "
FWCore/Framework/interface/EventSetup.h
"
32
#include "
DataFormats/TrackReco/interface/Track.h
"
33
#include "
TrackingTools/TransientTrack/interface/TransientTrackBuilder.h
"
34
#include "
TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h
"
35
36
#include <vector>
37
38
class
DetLayer
;
39
40
class
GetTrackTrajInfo
{
41
42
public
:
43
44
// Used to return results.
45
struct
Result
{
46
// If this is false, the information in the struct for this hit is invalid, as the track trajectory
47
// did not cross this layer. (Should only happen in very rare cases).
48
bool
valid
;
49
// If this is false, then although the track trajectory intercepted the layer, it did not intercept
50
// a sensor inside the layer. (Can happen rarely, if the track scattered, for example).
51
// If it is false, the detTSOS is evaluated at the intercept with the layer, not with the sensor,
52
// so will be slightly less accurate.
53
bool
accurate
;
54
// This is the DetLayer returned by GeometricSearchTracker.
55
// You can cast it into a specific type, such as BarrelDetLayer, before using it.
56
const
DetLayer
*
detLayer
;
57
// This is the track trajectory evaluated at the sensor. You can use it to get the coordinates
58
// where the track crosses the sensor and its momentum vector at that point.
59
TrajectoryStateOnSurface
detTSOS
;
60
};
61
62
GetTrackTrajInfo
() {}
63
64
~GetTrackTrajInfo
() {}
65
66
// For each hit on the track, return the information listed in the struct Result above.
67
// (See comments for struct Results).
68
// There is a one-to-one correspondence between this vector and the hits returned by track::hitPattern().
69
// i.e. They are ordered by the order in which the track crossed them.
70
std::vector<Result>
analyze
(
const
edm::EventSetup
& iSetup,
const
reco::Track
&
track
);
71
72
private
:
73
// Create map indicating r/z values of all layers/disks.
74
void
init
(
const
edm::EventSetup
& iSetup);
75
76
private
:
77
// Makes TransientTracks needed for vertex fitting.
78
edm::ESHandle<TransientTrackBuilder>
trkTool_
;
79
};
80
81
#endif
TransientTrackBuilder.h
GetTrackTrajInfo::GetTrackTrajInfo
GetTrackTrajInfo()
Definition:
GetTrackTrajInfo.h:62
GetTrackTrajInfo::init
void init(const edm::EventSetup &iSetup)
Event.h
EventSetup.h
TrajectoryStateOnSurface
Definition:
TrajectoryStateOnSurface.h:17
GetTrackTrajInfo
Definition:
GetTrackTrajInfo.h:40
Frameworkfwd.h
ParameterSet.h
GetTrackTrajInfo::~GetTrackTrajInfo
~GetTrackTrajInfo()
Definition:
GetTrackTrajInfo.h:64
GetTrackTrajInfo::Result::detLayer
const DetLayer * detLayer
Definition:
GetTrackTrajInfo.h:56
edm::ESHandle< TransientTrackBuilder >
GetTrackTrajInfo::Result::accurate
bool accurate
Definition:
GetTrackTrajInfo.h:53
ESHandle.h
GetTrackTrajInfo::trkTool_
edm::ESHandle< TransientTrackBuilder > trkTool_
Definition:
GetTrackTrajInfo.h:78
GetTrackTrajInfo::Result::detTSOS
TrajectoryStateOnSurface detTSOS
Definition:
GetTrackTrajInfo.h:59
edm::EventSetup
Definition:
EventSetup.h:44
DetLayer
Definition:
DetLayer.h:21
GetTrackTrajInfo::analyze
std::vector< Result > analyze(const edm::EventSetup &iSetup, const reco::Track &track)
Definition:
GetTrackTrajInfo.cc:25
HiIsolationCommonParameters_cff.track
track
Definition:
HiIsolationCommonParameters_cff.py:9
reco::Track
Definition:
Track.h:28
TrajectoryStateOnSurface.h
GetTrackTrajInfo::Result
Definition:
GetTrackTrajInfo.h:45
GetTrackTrajInfo::Result::valid
bool valid
Definition:
GetTrackTrajInfo.h:48
Track.h
Generated for CMSSW Reference Manual by
1.8.11