// $Id$ // // File: DParticleID.h // Created: Mon Feb 28 13:47:49 EST 2011 // Creator: staylor (on Linux ifarml1 2.6.18-128.el5 x86_64) // #ifndef _DParticleID_ #define _DParticleID_ #include #include #include #include "HDGEOMETRY/DRootGeom.h" #include #include //#include #include #include #include #include #include class DTrackTimeBased; class DCDCTrackHit; class DParticleID:public jana::JObject{ public: JOBJECT_PUBLIC(DParticleID); // Constructor and destructor DParticleID(JEventLoop *loop); // require JEventLoop in constructor virtual ~DParticleID(); class dedx_t{ public: dedx_t(double dE,double dx, double p):dE(dE),dx(dx),p(p){dEdx = dE/dx;} double dE; // energy loss in layer double dx; // path length in layer double dEdx; // ratio dE/dx double p; // momentum at this dE/dx measurement }; virtual jerror_t GetdEdxChiSq(const DTrackTimeBased *track,double &dEdx, unsigned int &num,double &chi2)=0; double GetdEdxSigma(double num_hits,double p,double mass, double mean_path_length); double GetMostProbabledEdx(double p,double mass,double dx); jerror_t GetdEdx(const DTrackTimeBased *track,vector&dEdx_list); jerror_t CalcdEdxHit(const DVector3 &mom, const DVector3 &pos, const DCDCTrackHit *hit, pair &dedx); jerror_t GroupTracks(vector &tracks, vector >&grouped_tracks); jerror_t MatchToTOF(const DReferenceTrajectory *rt, DTrackFitter::fit_type_t fit_type, vector&tof_points, double &tproj, unsigned int &tof_match_id); jerror_t MatchToBCAL(const DReferenceTrajectory *rt, DTrackFitter::fit_type_t fit_type, vector&bcal_showers, double &tproj,unsigned int &bcal_match_id); jerror_t MatchToFCAL(const DReferenceTrajectory *rt, DTrackFitter::fit_type_t fit_type, vector&fcal_showers, double &tproj,unsigned int &fcal_match_id, double &dmin); jerror_t MatchToSC(const DReferenceTrajectory *rt, DTrackFitter::fit_type_t fit_type, vector&sc_hits, double &tproj,unsigned int &sc_match_id); private: //< DGeometry pointer used to access materials through calibDB maps for eloss const DRootGeom *RootGeom; int DEBUG_LEVEL; // Prohibit default constructor DParticleID(); // gas material properties double mKRhoZoverAGas,mRhoZoverAGas,mLnIGas; const DGeometry *geom; // start counter geometry parameters double sc_leg_tcor; double sc_angle_cor; vectorsc_pos; vectorsc_norm; }; #endif // _DParticleID_