Report problems to ATLAS LXR Team (with time and IP address indicated)

The LXR Cross Referencer

source navigation ]
diff markup ]
identifier search ]
general search ]
 
 
Architecture: linux ]
Version: head ] [ nightly ] [ GaudiDev ]
  Links to LXR source navigation pages for stable releases [ 12.*.* ]   [ 13.*.* ]   [ 14.*.* ]   [ 15.*.* ] 

001 #include "GaudiKernel/ToolFactory.h"
002 #include "GaudiKernel/SmartDataPtr.h"
003 #include "GaudiKernel/IDataProviderSvc.h"
004 
005 //----------------------------------------------------------------//
006 #include "TrkToolInterfaces/ITrackParticleCreatorTool.h"
007 #include "Particle/TrackParticle.h"
008 #include "VxVertex/VxContainer.h"
009 
010 /////////////////////////////////////////////////////////
011 #include "STACOTools/StacoToParticleTool.h"
012 
013 //----------------------------------------------------------------//
014 #include "STACOEvent/StacoObject.h"
015 
016 StacoToParticleTool::StacoToParticleTool(const std::string& t, 
017                                             const std::string& n,
018                                             const IInterface*  p ):AthAlgTool(t,n,p),
019 p_ITrackParticleCreatorTool("Trk::TrackParticleCreatorTool/StacoParticleCreatorTool")                                            
020 {
021   declareInterface<IStacoToParticleTool>(this);
022   declareProperty("ITrackParticleCreatorTool", p_ITrackParticleCreatorTool);
023 }
024 
025 StacoToParticleTool::~StacoToParticleTool(){}
026 
027 // Initialize
028 StatusCode StacoToParticleTool::initialize() {
029 
030   StatusCode sc = StatusCode::SUCCESS;
031 
032   msg(MSG::INFO) << "Initialisation started     " << endreq;
033 
034   sc = AthAlgTool::initialize(); 
035   if ( sc.isFailure() ) {
036     msg(MSG::FATAL) << " AthAlgTool::initialize() failed" << endreq;
037     return( StatusCode::FAILURE );
038   }
039 
040 //Get p_ITrackParticleCreatorTool
041   if ( p_ITrackParticleCreatorTool.retrieve().isFailure() ) {
042     msg(MSG::FATAL) << "Failed to retrieve tool " << p_ITrackParticleCreatorTool << endreq;
043     return StatusCode::FAILURE;
044   }
045   msg(MSG::INFO) << "Retrieved tool " << p_ITrackParticleCreatorTool << endreq;
046 
047   msg(MSG::INFO) << "Initialisation ended     " << endreq;
048 
049   return StatusCode::SUCCESS;
050 
051 }
052 
053 StatusCode StacoToParticleTool::finalize(){return StatusCode::SUCCESS;}
054 
055 // Convert
056 Rec::TrackParticle* StacoToParticleTool::convert(
057                                const StacoObject*       pStacoObject,
058                                const TrackCollection*   pTrackCollection,
059                                const VxContainer*       pVxContainer   ,
060                                const Trk::Track*        pTrack
061 ){
062 
063   if ( pVxContainer != 0 ){
064     const Rec::TrackParticle* muIdetTrackPart = pStacoObject->MuIdet();
065     if ( muIdetTrackPart != 0 ){
066       const Trk::VxCandidate* pVxCandidate = muIdetTrackPart->reconstructedVertex();
067       if ( pVxCandidate != 0 ){
068         return convertBase(
069                            pTrackCollection,
070                            pTrack, 
071                            pVxContainer,
072                            muIdetTrackPart->reconstructedVertex(), 
073                            muIdetTrackPart->particleOriginType() 
074                           );
075       }
076     }
077   }
078 
079   return convertBase(
080                      pTrackCollection,
081                      pTrack
082                     );
083 
084 }
085 
086 Rec::TrackParticle* StacoToParticleTool::convertBase(
087                                    const TrackCollection*   pTrackCollection,
088                                    const Trk::Track*        pTrack,
089                                    const VxContainer*       pVxContainer  ,
090                                    const Trk::VxCandidate*  pVxCandidate,
091                                    Trk::TrackParticleOrigin aTrackParticleOrigin
092 ){
093 
094   Rec::TrackParticle* pTrackParticle =  
095     p_ITrackParticleCreatorTool->createParticle(pTrack, pVxCandidate, aTrackParticleOrigin);
096 
097   const  Trk::Track* pTrackOfpTrackParticle = pTrackParticle->originalTrack();
098   double ThePX = ((pTrackOfpTrackParticle->perigeeParameters())->momentum()).x() ;
099   double ThePY = ((pTrackOfpTrackParticle->perigeeParameters())->momentum()).y() ;
100   double ThePZ = ((pTrackOfpTrackParticle->perigeeParameters())->momentum()).z() ;
101   double TheMuonMass  = 105.659 ;
102   double TheE  = sqrt( (TheMuonMass*TheMuonMass)+(ThePX*ThePX)+(ThePY*ThePY)+(ThePZ*ThePZ) );
103   pTrackParticle->setE(TheE);
104   
105   pTrackParticle->setStorableObject(pTrackCollection);
106 
107   if ( pVxContainer != 0 ) pTrackParticle->setStorableObject(pVxContainer);
108 
109   return pTrackParticle;
110   
111 }

source navigation ] diff markup ] identifier search ] general search ]

Due to the LXR bug, the updates fail sometimes to remove references to deleted files. The Saturday's full rebuilds fix these problems
This page was automatically generated by the LXR engine. Valid HTML 4.01!