CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2_patch1/src/PhysicsTools/IsolationAlgos/interface/PropagateToCal.h

Go to the documentation of this file.
00001 #ifndef IsolationUtils_PropagateToCal_h
00002 #define IsolationUtils_PropagateToCal_h
00003 /* \class PropagateToCal
00004  *
00005  * \author Christian Autermann, U Hamburg
00006  *
00007  * class extrapolats a charged particle to the calorimeter surface 
00008  * using the SteppingHelixPropagator.
00009  *
00010  */
00011 #include <algorithm>
00012 #include <vector>
00013 #include "MagneticField/Engine/interface/MagneticField.h"
00014 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
00015 #include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h"
00016 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00017 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
00018 #include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h"
00019 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00020 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00021 #include "DataFormats/GeometrySurface/interface/Plane.h"
00022 #include "DataFormats/GeometrySurface/interface/Cylinder.h"
00023 
00024 class MagneticField;
00025 
00026 class PropagateToCal {
00027 public:
00028   PropagateToCal();
00029   ~PropagateToCal();
00030   PropagateToCal(double radius, double minZ, double maxZ, bool theIgnoreMaterial);
00031   bool propagate(const GlobalPoint& vertex, 
00032                  GlobalVector& Cand, int charge,
00033                  const MagneticField * bField) const;
00034 
00035 private:
00036   bool   theIgnoreMaterial_;    
00037   double radius_, maxZ_, minZ_; 
00038 };
00039 
00040 #endif