1 |
auterman |
1.1 |
#ifndef IsolationUtils_PropagateToCal_h
|
2 |
|
|
#define IsolationUtils_PropagateToCal_h
|
3 |
|
|
|
4 |
|
|
#include <algorithm>
|
5 |
|
|
#include <vector>
|
6 |
|
|
#include "PhysicsTools/Utilities/interface/Math.h"
|
7 |
|
|
#include "MagneticField/Engine/interface/MagneticField.h"
|
8 |
|
|
#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
|
9 |
|
|
#include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h"
|
10 |
|
|
#include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
|
11 |
|
|
#include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
|
12 |
|
|
#include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h"
|
13 |
|
|
#include "DataFormats/GeometryVector/interface/GlobalPoint.h"
|
14 |
|
|
#include "DataFormats/GeometryVector/interface/GlobalVector.h"
|
15 |
|
|
#include "DataFormats/GeometrySurface/interface/Plane.h"
|
16 |
|
|
#include "DataFormats/GeometrySurface/interface/Cylinder.h"
|
17 |
|
|
|
18 |
|
|
class MagneticField;
|
19 |
|
|
|
20 |
|
|
class PropagateToCal {
|
21 |
|
|
public:
|
22 |
|
|
PropagateToCal();
|
23 |
|
|
~PropagateToCal();
|
24 |
|
|
PropagateToCal(double radius, double minZ, double maxZ, bool theIgnoreMaterial);
|
25 |
|
|
bool propagate(const GlobalPoint& vertex,
|
26 |
|
|
GlobalVector& Cand, int charge,
|
27 |
|
|
const MagneticField * bField) const;
|
28 |
|
|
|
29 |
|
|
private:
|
30 |
|
|
bool theIgnoreMaterial_; /// whether or not propagation should ignore material
|
31 |
|
|
double radius_, maxZ_, minZ_; /// Cylinder defining the inner surface of the calorimeter
|
32 |
|
|
};
|
33 |
|
|
|
34 |
|
|
#endif
|