Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:23:31

0001 #ifndef IsolationUtils_PropagateToCal_h
0002 #define IsolationUtils_PropagateToCal_h
0003 /* \class PropagateToCal
0004  *
0005  * \author Christian Autermann, U Hamburg
0006  *
0007  * class extrapolats a charged particle to the calorimeter surface 
0008  * using the SteppingHelixPropagator.
0009  *
0010  */
0011 #include <algorithm>
0012 #include <vector>
0013 #include "MagneticField/Engine/interface/MagneticField.h"
0014 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0015 #include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h"
0016 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0017 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
0018 #include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h"
0019 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0020 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
0021 #include "DataFormats/GeometrySurface/interface/Plane.h"
0022 #include "DataFormats/GeometrySurface/interface/Cylinder.h"
0023 
0024 class MagneticField;
0025 
0026 class PropagateToCal {
0027 public:
0028   PropagateToCal();
0029   ~PropagateToCal();
0030   PropagateToCal(double radius, double minZ, double maxZ, bool theIgnoreMaterial);
0031   bool propagate(const GlobalPoint& vertex, GlobalVector& Cand, int charge, const MagneticField* bField) const;
0032 
0033 private:
0034   bool theIgnoreMaterial_;       /// whether or not propagation should ignore material
0035   double radius_, maxZ_, minZ_;  /// Cylinder defining the inner surface of the calorimeter
0036 };
0037 
0038 #endif