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 TRACKMCTOOLS_TRUESTATECREATOR_H
00002 #define TRACKMCTOOLS_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 TrackInterfacces
00021 #include "TrackInterfaces/ITrackExtrapolator.h"
00022 #include "TrackInterfaces/IStateCreator.h"
00023 
00024 class State;
00025 
00044 class TrueStateCreator: public GaudiTool,
00045                         virtual public IStateCreator {
00046 public:
00048   typedef IAssociator<MCParticle, MCHit>     MCHitAsct;
00049   typedef IAssociator<MCParticle, MCVeloHit> MCVeloHitAsct;
00050 
00052   TrueStateCreator( const std::string& type,
00053                     const std::string& name,
00054                     const IInterface* parent );
00055 
00057   virtual ~TrueStateCreator();
00058 
00060   virtual StatusCode initialize();
00061 
00069   virtual StatusCode createState( const MCParticle* mcPart,
00070                                   double zRec,
00071                                   State*& pState ) const;
00072 
00079   virtual StatusCode createStateVertex( const MCParticle* mcPart,
00080                                         State*& pState ) const;
00081 private:
00082   
00084   double qOverP( const MCParticle* mcPart ) const;
00085 
00086   DeVelo* m_velo;                 
00087 
00088   MCVeloHitAsct* m_p2VeloHitAsct; 
00089   MCHitAsct*     m_p2ITHitAsct;   
00090   MCHitAsct*     m_p2OTHitAsct;   
00091 
00092   ITrackExtrapolator* m_extrapolator; 
00093 
00094   // Job options:
00095   std::string m_p2VeloHitAsctName; 
00096   std::string m_p2ITHitAsctName;   
00097   std::string m_p2OTHitAsctName;   
00098   std::string m_extrapolatorName;  
00099   double m_eX2;                    
00100   double m_eY2;                    
00101   double m_eTx2;                   
00102   double m_eTy2;                   
00103   double m_eP;                     
00104 };
00105 
00106 
00107 #endif // TRACKMCTOOLS_TRUESTATECREATOR_H

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