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

TrueStateCreator.h

Go to the documentation of this file.
00001 #ifndef TRACKTOOLS_TRUESTATECREATOR_H
00002 #define TRACKTOOLS_TRUESTATECREATOR_H 1
00003 
00004 // Include files
00005 // -------------
00006 // from Gaudi
00007 #include "GaudiAlg/GaudiTool.h"
00008 
00009 // from Event
00010 #include "Event/MCParticle.h"
00011 #include "Event/MCHit.h"
00012 #include "Event/MCVeloHit.h"
00013 
00014 // from Det
00015 #include "VeloDet/DeVelo.h"
00016 
00017 // from LHCbKernel
00018 #include "Relations/IAssociator.h" 
00019 
00020 // from LHChInterfacces
00021 #include "Tools/ITrackExtrapolator.h"
00022 
00023 // from TrackTools
00024 #include "TrackTools/IStateCreator.h"
00025 
00026 class State;
00027 
00046 class TrueStateCreator: public GaudiTool,
00047                         virtual public IStateCreator {
00048 public:
00050   typedef IAssociator<MCParticle, MCHit>     MCHitAsct;
00051   typedef IAssociator<MCParticle, MCVeloHit> MCVeloHitAsct;
00052 
00054   TrueStateCreator( const std::string& type,
00055                     const std::string& name,
00056                     const IInterface* parent );
00057 
00059   virtual ~TrueStateCreator();
00060 
00062   virtual StatusCode initialize();
00063 
00071   virtual StatusCode createState( const MCParticle* mcPart,
00072                                   double zRec,
00073                                   State*& pState ) const;
00074 
00081   virtual StatusCode createStateVertex( const MCParticle* mcPart,
00082                                         State*& pState ) const;
00083 private:
00084   
00086   double qOverP( const MCParticle* mcPart ) const;
00087 
00088   DeVelo* m_velo;                 
00089 
00090   MCVeloHitAsct* m_p2VeloHitAsct; 
00091   MCHitAsct*     m_p2ITHitAsct;   
00092   MCHitAsct*     m_p2OTHitAsct;   
00093 
00094   ITrackExtrapolator* m_extrapolator; 
00095 
00096   // Job options:
00097   std::string m_p2VeloHitAsctName; 
00098   std::string m_p2ITHitAsctName;   
00099   std::string m_p2OTHitAsctName;   
00100   std::string m_extrapolatorName;  
00101   double m_eX2;                    
00102   double m_eY2;                    
00103   double m_eTx2;                   
00104   double m_eTy2;                   
00105   double m_eP;                     
00106 };
00107 
00108 
00109 #endif // TRACKTOOLS_TRUESTATECREATOR_H

Generated on Thu Apr 7 22:43:27 2005 for New Track Event Model by doxygen 1.4.1