001 #include "GaudiKernel/ToolFactory.h"
002 #include "GaudiKernel/SmartDataPtr.h"
003 #include "GaudiKernel/IDataProviderSvc.h"
004
005
006 #include "muonEvent/Muon.h"
007
008
009 #include "muonEvent/MuonContainer.h"
010
011 #include "Particle/TrackParticle.h"
012 #include "Particle/TrackParticleContainer.h"
013
014 #include "TrkParameters/MeasuredPerigee.h"
015
016 #include "VxVertex/VxContainer.h"
017
018
019 #include "STACOTools/UpdateStacoContainersTool.h"
020
021
022 #include "STACOEvent/StacoObject.h"
023 #include "STACOEvent/StacoContainer.h"
024
025 #include "STACOToolsInterfaces/IStacoToTrackTool.h"
026 #include "STACOToolsInterfaces/IStacoEDMHelper.h"
027 #include "STACOToolsInterfaces/IStacoToParticleTool.h"
028 #include "STACOToolsInterfaces/IStacoToCombinedMuonTool.h"
029
030 UpdateStacoContainersTool::UpdateStacoContainersTool(const std::string& t,
031 const std::string& n,
032 const IInterface* p ):AthAlgTool(t,n,p),
033 p_OwnEDMHelper ( "StacoEDMHelper/ConfiguredStacoEDMHelper" ) ,
034 p_IStacoToTrackTool ( "Trk::StacoToTrackTool/ConfiguredStacoToTrackTool" ) ,
035 p_IStacoToParticleTool ( "StacoToParticleTool/ConfiguredStacoToParticleTool" ) ,
036 p_IStacoToCombinedMuonTool ( "StacoToCombinedMuonTool/ConfiguredStacoToCombinedMuonTool" )
037 {
038
039 declareInterface<IUpdateStacoContainersTool>(this);
040
041 declareProperty("StacoEDMHelper" , p_OwnEDMHelper ) ;
042 declareProperty("StacoToTrackTool" , p_IStacoToTrackTool ) ;
043 declareProperty("StacoToParticleTool" , p_IStacoToParticleTool ) ;
044 declareProperty("StacoToCombinedMuonTool" , p_IStacoToCombinedMuonTool ) ;
045
046 }
047
048 UpdateStacoContainersTool::~UpdateStacoContainersTool(){}
049
050
051 StatusCode UpdateStacoContainersTool::initialize() {
052
053 StatusCode sc = StatusCode::SUCCESS;
054
055 msg(MSG::INFO) << "Initialisation started " << endreq;
056
057 sc = AthAlgTool::initialize();
058 if ( sc.isFailure() ) {
059 msg(MSG::FATAL) << " AthAlgTool::initialize() failed" << endreq;
060 return( StatusCode::FAILURE );
061 }
062
063
064
065 if ( p_OwnEDMHelper.retrieve().isFailure() ) {
066 msg(MSG::FATAL) << "Failed to retrieve tool " << p_OwnEDMHelper << endreq;
067 return StatusCode::FAILURE;
068 }
069 msg(MSG::INFO) << "Retrieved tool " << p_OwnEDMHelper << endreq;
070
071
072
073 if ( p_IStacoToTrackTool.retrieve().isFailure() ) {
074 msg(MSG::FATAL) << "Failed to retrieve tool " << p_IStacoToTrackTool << endreq;
075 return StatusCode::FAILURE;
076 }
077 msg(MSG::INFO) << "Retrieved tool " << p_IStacoToTrackTool << endreq;
078
079
080
081 if ( p_IStacoToParticleTool.retrieve().isFailure() ) {
082 msg(MSG::FATAL) << "Failed to retrieve tool " << p_IStacoToParticleTool << endreq;
083 return StatusCode::FAILURE;
084 }
085 msg(MSG::INFO) << "Retrieved tool " << p_IStacoToParticleTool << endreq;
086
087
088
089 if ( p_IStacoToCombinedMuonTool.retrieve().isFailure() ) {
090 msg(MSG::FATAL) << "Failed to retrieve tool " << p_IStacoToCombinedMuonTool << endreq;
091 return StatusCode::FAILURE;
092 }
093 msg(MSG::INFO) << "Retrieved tool " << p_IStacoToCombinedMuonTool << endreq;
094
095
096 msg(MSG::INFO) << "Initialisation ended " << endreq;
097
098 return StatusCode::SUCCESS;
099
100 }
101
102 void UpdateStacoContainersTool::UpdateContainers(
103 StacoObject* pStacoObject,
104 const Rec::TrackParticleContainer* pTrackParticleContainerID ,
105 const VxContainer* pVxContainer ,
106 const Rec::TrackParticleContainer* pTrackParticleContainerMS ,
107 const Rec::TrackParticleContainer* pTrackParticleContainerMSOnly ,
108 StacoContainer* pStacoContainer ,
109 TrackCollection* pTrackCollectionSTACO ,
110 Rec::TrackParticleContainer* pTrackParticleContainerSTACO ,
111 Analysis::MuonContainer* pCombinedMuonContainerSTACO
112 ){
113
114
115 if (pStacoContainer==0) return;
116 if (pStacoObject==0) return;
117 pStacoContainer->push_back(pStacoObject);
118
119
120 if (pTrackCollectionSTACO==0) return;
121 Trk::Track* pTrackSTACO
122 = p_IStacoToTrackTool->convert(
123 *pStacoObject
124 );
125 if (pTrackSTACO==0) return ;
126 pTrackCollectionSTACO->push_back(pTrackSTACO);
127
128
129 if (pTrackParticleContainerSTACO==0) return;
130 Rec::TrackParticle* pTrackParticleSTACO
131 = p_IStacoToParticleTool->convert(
132 pStacoObject,
133 pTrackCollectionSTACO,
134 pVxContainer,
135 pTrackSTACO
136 );
137 if (pTrackParticleSTACO==0) return ;
138 pTrackParticleContainerSTACO->push_back(pTrackParticleSTACO);
139
140
141 if (pCombinedMuonContainerSTACO==0) return;
142 Analysis::Muon* pCombinedMuonSTACO
143 = p_IStacoToCombinedMuonTool->convert(
144 pStacoObject,
145 pTrackParticleContainerID ,
146 pTrackParticleContainerMS ,
147 pTrackParticleContainerMSOnly ,
148 pTrackParticleContainerSTACO ,
149 pTrackParticleSTACO
150 );
151 if (pCombinedMuonSTACO==0) return ;
152 pCombinedMuonContainerSTACO->push_back(pCombinedMuonSTACO);
153
154 }
155
156 StatusCode UpdateStacoContainersTool::finalize(){return StatusCode::SUCCESS;}
157
| 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.
|
|