Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef TrajectoryStateTransform_H
0002 #define TrajectoryStateTransform_H
0003 
0004 #include "DataFormats/TrajectoryState/interface/PTrajectoryStateOnDet.h"
0005 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0006 #include "DataFormats/L1TrackTrigger/interface/TTTrack.h"
0007 #include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
0008 
0009 class TrajectoryStateOnSurface;
0010 class FreeTrajectoryState;
0011 class TrackingGeometry;
0012 class Surface;
0013 class MagneticField;
0014 
0015 namespace trajectoryStateTransform {
0016 
0017   PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface& ts, unsigned int detid);
0018 
0019   TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet& ts,
0020                                           const Surface* surface,
0021                                           const MagneticField* field);
0022 
0023   /// Construct a FreeTrajectoryState from the reco::Track innermost or outermost state,
0024   /// does not require access to tracking geometry
0025   FreeTrajectoryState initialFreeState(const reco::Track& tk, const MagneticField* field, bool withErr = true);
0026   FreeTrajectoryState initialFreeStateL1TTrack(const TTTrack<Ref_Phase2TrackerDigi_>& tk,
0027                                                const MagneticField* field,
0028                                                bool withErr = false);
0029 
0030   FreeTrajectoryState innerFreeState(const reco::Track& tk, const MagneticField* field, bool withErr = true);
0031   FreeTrajectoryState outerFreeState(const reco::Track& tk, const MagneticField* field, bool withErr = true);
0032 
0033   /// Construct a TrajectoryStateOnSurface from the reco::Track innermost or outermost state,
0034   /// requires access to tracking geometry
0035   TrajectoryStateOnSurface innerStateOnSurface(const reco::Track& tk,
0036                                                const TrackingGeometry& geom,
0037                                                const MagneticField* field,
0038                                                bool withErr = true);
0039   TrajectoryStateOnSurface outerStateOnSurface(const reco::Track& tk,
0040                                                const TrackingGeometry& geom,
0041                                                const MagneticField* field,
0042                                                bool withErr = true);
0043 
0044 }  // namespace trajectoryStateTransform
0045 
0046 // backward compatibility
0047 struct TrajectoryStateTransform {};
0048 
0049 #endif