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

TrackSelector.h

Go to the documentation of this file.
00001 #ifndef TRACKTOOLS_TRACKSELECTOR_H 
00002 #define TRACKTOOLS_TRACKSELECTOR_H 1
00003 
00004 // from Gaudi
00005 #include "GaudiAlg/GaudiTool.h"
00006 
00007 // Event
00008 #include "Event/MCParticle.h"
00009 #include "Event/Track.h"
00010 
00011 // local
00012 #include "TrackTools/ITrackSelector.h"
00013 
00014 // Forward declarations
00015 class ITrackReconstructible;
00016 
00044 class TrackSelector : public GaudiTool, virtual public ITrackSelector
00045 {
00046 public:
00047 
00049   enum ETrackType { unknown=0, velo=1, seed=2, longtrack=3, 
00050                     upstream=4, downstream=5, veloBack=6 }; 
00051 
00053   TrackSelector( const std::string& type, 
00054                  const std::string& name,
00055                  const IInterface* parent );
00056 
00058   virtual ~TrackSelector( ); 
00059 
00061   virtual StatusCode initialize();
00062 
00064   virtual StatusCode finalize();
00065 
00070   virtual bool select( Track* track ) const;
00071 
00076   virtual bool select( MCParticle* mcParticle );
00077 
00082   virtual bool selectTrackType( Track* track ) const;
00083 
00088   virtual bool selectTrackType( MCParticle* mcParticle );
00089 
00094   virtual int getTrackType( Track* track ) const;
00095 
00100   virtual int getTrackType( MCParticle* mcPart );
00101 
00107   virtual StatusCode setTrackType( const int tracktype, 
00108                                    Track*& track ) const;
00109 
00115   virtual StatusCode setTrackType( MCParticle* mcPart,
00116                                    Track*& track );
00117 
00118 protected:
00119 
00120 private:
00121 
00122   // Acceptance/reconstructible tool
00123   ITrackReconstructible* m_mcParticleJudge; 
00124 
00125   // Store previously calculated values
00126   ETrackType m_previousTrackType;   
00127   MCParticle* m_previousMCParticle; 
00128 
00129   // job options
00130   bool m_uniqueFlag;                
00131   bool m_errorFlag;                 
00132   double m_minP;                    
00133   double m_maxP;                    
00134   std::vector<int> m_tracktypes;    
00135 
00136   std::string m_mcParticleJudgeName;
00137 
00138 };
00139 #endif // TRACKTOOLS_TRACKSELECTOR_H 

Generated on Wed May 4 11:52:35 2005 for New Track Event Model by doxygen 1.4.1