Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

TrueTracksCreator.h

Go to the documentation of this file.
00001 #ifndef TRACKIDEALPR_TRUETRACKSCREATOR_H
00002 #define TRACKIDEALPR_TRUETRACKSCREATOR_H 1
00003 
00004 // Include files
00005 // -------------
00006 // from Gaudi
00007 #include "GaudiAlg/GaudiAlgorithm.h"
00008 
00009 // from TrackEvent
00010 #include "Event/Track.h"
00011 
00012 // from TrackFitEvent
00013 #include "Event/TrackFunctor.h"
00014 
00015 // from XxxAssociators
00016 #include "OTAssociators/OTTime2MCHitAsct.h"
00017 #include "ITAssociators/ITCluster2MCParticleAsct.h"
00018 #include "VeloAssociators/VeloCluster2MCParticleAsct.h"
00019 
00020 // from TrackInterfaces
00021 #include "TrackInterfaces/IStateCreator.h"
00022 #include "TrackInterfaces/ITrackSelector.h"
00023 //#include "Event/ITrackFitter.h"
00024 
00025 // Forward declarations
00026 class DeOTDetector;
00027 class DeSTDetector;
00028 class DeVelo;
00029 
00063 class TrueTracksCreator: public GaudiAlgorithm {
00064 
00065 public:
00066 
00068   TrueTracksCreator( const std::string& name, ISvcLocator* pSvcLocator );
00069 
00070   virtual ~TrueTracksCreator( );      
00071 
00072   virtual StatusCode initialize();    
00073   virtual StatusCode execute   ();    
00074   virtual StatusCode finalize  ();    
00075 
00076   void sortMeasurements( Track* track ) {
00077     std::sort( track->measurements().begin(),
00078                track->measurements().end(),
00079                TrackFunctor::increasingByZ<Measurement>() );
00080   };
00081 
00082 private:
00084   StatusCode registerTracks( Tracks* tracksCont );
00085 
00087   StatusCode addOTTimes( OTTimes* times,
00088                          MCParticle* mcPart,
00089                          Track* track );
00090 
00092   StatusCode addITClusters( MCParticle* mcPart, Track* track );
00093 
00095   StatusCode addVeloClusters( MCParticle* mcPart, Track* track );
00096 
00098   StatusCode initializeState( double z, Track* track, MCParticle* mcPart );
00099 
00101   StatusCode deleteStates( Track* track );
00102 
00103   // MC associators
00104   OTTime2MCHitAsct::IAsct*           m_otTim2MCHit;
00105   ITCluster2MCParticleAsct::IAsct*   m_itClus2MCP;
00106   VeloCluster2MCParticleAsct::IAsct* m_veloClus2MCP;
00107 
00108   // Geometry information
00109   DeOTDetector* m_otTracker;       
00110   DeSTDetector* m_itTracker;       
00111   DeVelo*       m_velo;            
00112   std::string   m_otTrackerPath;   
00113   std::string   m_itTrackerPath;   
00114   std::string   m_veloPath;        
00115 
00116   // Interfaces
00117   ITrackSelector* m_trackSelector;     
00118   IStateCreator*  m_stateCreator;      
00119 //  ITrackFitter*  m_tracksFitter;       ///< General fitter tool
00120 //  ITrackFitter*  m_veloTracksFitter;   ///< Fitter tool for velo and veloBack
00121 //  ITrackFitter*  m_veloTTTracksFitter; ///< Fitter tool for veloTT
00122 //  ITrackFitter*  m_seedTracksFitter;   ///< Fitter tool for seeds
00123 
00124   // job options
00125   bool m_addOTTimes;      
00126   bool m_addITClusters;   
00127   bool m_addVeloClusters; 
00128   bool m_initState;       
00129   bool m_fitTracks;       
00130   bool m_upstream;        
00131   bool m_trueStatesAtMeas;
00132   std::string m_tracksTESPath;    
00133   std::string m_relationTable;    
00134   int m_minNHits;         
00135   double m_errorX2;       
00136   double m_errorY2;       
00137   double m_errorTx2;      
00138   double m_errorTy2;      
00139   double m_errorP;        
00140 };
00141 
00142 #endif // TRACKIDEALPR_TRUETRACKSCREATOR_H

Generated on Fri May 27 13:59:37 2005 for New Track Event Model by doxygen 1.4.1