1 |
#ifndef TrajectoryAtValidHit_H
|
2 |
#define TrajectoryAtValidHit_H
|
3 |
|
4 |
// Class to hold the trajectory information at an invalid hit
|
5 |
// For matched layers, the invalid hit on the trajectory is located
|
6 |
// on the matched surface. To compare with rechits propagate the
|
7 |
// information to the actual sensor surface for rphi or stereo
|
8 |
|
9 |
#include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
|
10 |
#include "DataFormats/GeometryCommonDetAlgo/interface/MeasurementError.h"
|
11 |
#include "DataFormats/GeometryCommonDetAlgo/interface/MeasurementVector.h"
|
12 |
#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
|
13 |
#include "TrackingTools/GeomPropagators/interface/AnalyticalPropagator.h"
|
14 |
|
15 |
class Topology;
|
16 |
class TransientTrackingRecHit;
|
17 |
class StripTopology;
|
18 |
class PixelTopology;
|
19 |
class TrajectoryAtValidHit {
|
20 |
public:
|
21 |
|
22 |
TrajectoryAtValidHit( const TrajectoryMeasurement&,
|
23 |
const TrackerGeometry * tracker,
|
24 |
const Propagator& propagator,
|
25 |
const uint mono = 0);
|
26 |
|
27 |
double localX() const;
|
28 |
double localY() const;
|
29 |
double localErrorX() const;
|
30 |
double localErrorY() const;
|
31 |
|
32 |
double localDxDz() const;
|
33 |
double localDyDz() const;
|
34 |
|
35 |
double localZ() const;
|
36 |
|
37 |
double globalX() const;
|
38 |
double globalY() const;
|
39 |
double globalZ() const;
|
40 |
|
41 |
uint monodet_id() const;
|
42 |
bool withinAcceptance() const;
|
43 |
|
44 |
bool isDoubleSided(uint iidd) const;
|
45 |
TrajectoryStateOnSurface tsos() const;
|
46 |
|
47 |
private:
|
48 |
|
49 |
TrajectoryStateOnSurface theCombinedPredictedState;
|
50 |
float locX,locY, locZ;
|
51 |
float locXError, locYError;
|
52 |
float locDxDz, locDyDz;
|
53 |
float globX, globY, globZ;
|
54 |
uint iidd;
|
55 |
bool acceptance;
|
56 |
|
57 |
ConstReferenceCountingPointer<TransientTrackingRecHit> theHit;
|
58 |
};
|
59 |
|
60 |
#endif
|