// $Id$ // // File: DDetectorMatches_factory.h // Created: Tue Aug 9 14:29:24 EST 2011 // Creator: pmatt (on Linux ifarml6 2.6.18-128.el5 x86_64) // #ifndef _DDetectorMatches_ #define _DDetectorMatches_ #include #include #include #include #include #include #include using namespace std; //only one object per event class DDetectorMatches : public JObject { public: JOBJECT_PUBLIC(DDetectorMatches); class DShowerMatchParams { public: double dx; //the distance the track traveled through the detector system up to the shower position double dFlightTime; //flight time from DTrackTimeBased::position() to the shower double dFlightTimeVariance; double dPathLength; //path length from DTrackTimeBased::position() to the shower double dDOCAToShower; //DOCA of track to shower }; class DHitMatchParams { public: double dEdx; //dE/dx; dE: the energy lost by the track, dx: the distance the track traveled through the detector system double dFlightTime; //flight time from DTrackTimeBased::position() to the shower double dFlightTimeVariance; double dPathLength; //path length from DTrackTimeBased::position() to the hit double dDOCAToHit; //DOCA of track to hit }; private: //for each track, stores the information about each match map > > dTrackBCALMatchParams; map > > dTrackFCALMatchParams; map > > dTrackTOFMatchParams; map > > dTrackSCMatchParams; //reverse-direction maps of the above (match params are the same objects) map > > dBCALTrackMatchParams; map > > dFCALTrackMatchParams; map > > dTOFTrackMatchParams; map > > dSCTrackMatchParams; //correlations between: (the flight time from a given detector system hit/shower to DTrackTimeBased::position()), and the momentum at DTrackTimeBased::position() //Note that it is assumed that these correlations will not change between the different objects of each type map > dFlightTimePCorrelations; //for BDT: help to determine if a shower is neutral or not map dBCALShowerDistanceToNearestTrack; map dFCALShowerDistanceToNearestTrack; }; #endif // _DDetectorMatches_