File indexing completed on 2025-08-03 08:12:32
0001 #ifndef __TRACKPROJECTORPlaneECAL_H_
0002 #define __TRACKPROJECTORPlaneECAL_H_
0003
0004
0005
0006 #include <trackbase_historic/SvtxTrack.h>
0007 #include <trackbase_historic/SvtxTrackMap.h>
0008 #include <trackbase_historic/SvtxTrack_FastSim.h>
0009
0010 #include <string>
0011 #include <memory>
0012
0013
0014 class PHCompositeNode;
0015 class PHFieldUtility;
0016 class SvtxTrack;
0017 class SvtxTrackState;
0018 class RawCluster;
0019 class SvtxTrackMap;
0020
0021 namespace PHGenFit{
0022 class Fitter;
0023 }
0024
0025 namespace genfit{
0026 class MeasuredStateOnPlane;
0027 }
0028
0029 class TrackProjectorPlaneECAL {
0030
0031 public:
0032
0033 enum PROJECTION_SURFACE {SPHERE, CYLINDER, PLANEXY, PLANE_CYLINDER};
0034 enum PROJECTION_DETECTOR{EEMC, CEMC, FEMC};
0035
0036 TrackProjectorPlaneECAL( PHCompositeNode* topNode );
0037
0038 bool get_projected_position( SvtxTrack_FastSim * track, RawCluster* cluster, double arr_pos[3], const PROJECTION_SURFACE surf, const float surface_par );
0039
0040 bool get_projected_momentum( SvtxTrack_FastSim * track, RawCluster* cluster, double arr_mom[3], const PROJECTION_SURFACE surf, const float surface_par );
0041
0042 SvtxTrack_FastSim * get_best_track( SvtxTrackMap * trackmap, RawCluster* cluster);
0043
0044 SvtxTrackState * get_best_state( SvtxTrack_FastSim * track, RawCluster* cluster);
0045
0046 char get_detector();
0047
0048 SvtxTrackState* project_track( SvtxTrack_FastSim * track, RawCluster* cluster, const PROJECTION_SURFACE surf, const float surface_par );
0049
0050 void set_detector( char c );
0051
0052 char get_detector_from_cluster( RawCluster* cluster);
0053 private:
0054
0055 PHGenFit::Fitter * _fitter;
0056 enum PROJECTION_DETECTOR detector;
0057
0058 };
0059
0060 #endif