001 #include "GaudiKernel/ToolFactory.h"
002 #include "GaudiKernel/SmartDataPtr.h"
003 #include "GaudiKernel/IDataProviderSvc.h"
004
005
006 #include "EventInfo/EventInfo.h"
007 #include "EventInfo/EventType.h"
008 #include "EventInfo/EventID.h"
009
010 #include "TrkMeasurementBase/MeasurementBase.h"
011
012 #include "Particle/TrackParticle.h"
013
014 #include "TrkTrackSummary/TrackSummary.h"
015
016
017 #include "muonEvent/MuonContainer.h"
018 #include "TrkTrack/Track.h"
019 #include "STACOToolsInterfaces/IStacoEDMHelper.h"
020
021
022 #include "STACOTools/StacoDumpCombinedMuonContainerTool.h"
023 #include "StacoMuonQualityWordHelper.h"
024
025 StacoDumpCombinedMuonContainerTool::StacoDumpCombinedMuonContainerTool(const std::string& t,
026 const std::string& n,
027 const IInterface* p ):AthAlgTool(t,n,p),
028 p_OwnEDMHelper ( "StacoEDMHelper/ConfiguredStacoEDMHelper" )
029 {
030
031 declareInterface<IStacoDumpCombinedMuonContainerTool>(this);
032
033 declareProperty("StacoEDMHelper" , p_OwnEDMHelper ) ;
034
035 }
036
037 StacoDumpCombinedMuonContainerTool::~StacoDumpCombinedMuonContainerTool(){}
038
039
040 StatusCode StacoDumpCombinedMuonContainerTool::initialize(){
041
042 StatusCode sc = StatusCode::SUCCESS;
043
044 sc = AthAlgTool::initialize();
045 if ( sc.isFailure() ) {
046 msg(MSG::FATAL) << " AthAlgTool::initialize() failed" << endreq;
047 return( StatusCode::FAILURE );
048 }
049
050
051
052 if ( p_OwnEDMHelper.retrieve().isFailure() ) {
053 msg(MSG::FATAL) << "Failed to retrieve tool " << p_OwnEDMHelper << endreq;
054 return StatusCode::FAILURE;
055 }
056 msg(MSG::INFO) << "Retrieved tool " << p_OwnEDMHelper << endreq;
057
058
059 return StatusCode::SUCCESS;
060
061 }
062
063 StatusCode StacoDumpCombinedMuonContainerTool::DoDump(
064 std::string MuonContainerLocation,
065 std::ofstream* pOutFile
066 ){
067
068 p_OutCurrent = pOutFile ;
069 StatusCode sc = dump_Container(MuonContainerLocation);
070 if (sc.isFailure()) msg(MSG::WARNING) << "dump_Container failed " << endreq;
071
072 return StatusCode::SUCCESS;
073
074 }
075 StatusCode StacoDumpCombinedMuonContainerTool::DoDump(
076 const Analysis::MuonContainer* pCombinedMuonContainer,
077 std::ofstream* pOutFile
078 ){
079
080 p_OutCurrent = pOutFile ;
081 StatusCode sc = dump_Container(pCombinedMuonContainer);
082 if (sc.isFailure()) msg(MSG::WARNING) << "dump_Container(pCombinedMuonContainer) failed " << endreq;
083
084 return StatusCode::SUCCESS;
085
086 }
087
088
089 StatusCode StacoDumpCombinedMuonContainerTool::dump_Container(
090 std::string ContainerName
091 ){
092
093 StatusCode sc = StatusCode::SUCCESS;
094
095 const Analysis::MuonContainer* pCombinedMuonContainer ;
096 sc = evtStore()->retrieve(pCombinedMuonContainer, ContainerName);
097 if (sc.isFailure()) {
098 msg(MSG::WARNING) << " pCombinedMuonContainer not found at " << ContainerName << endreq;
099 return StatusCode::SUCCESS;
100 }
101
102 sc = dump_Container(pCombinedMuonContainer);
103 if (sc.isFailure()) {
104 msg(MSG::WARNING) << " dump_Container(pCombinedMuonContainer) failed " << endreq;
105 return StatusCode::SUCCESS;
106 }
107
108 return StatusCode::SUCCESS;
109
110 }
111
112 StatusCode StacoDumpCombinedMuonContainerTool::dump_Container(
113 const Analysis::MuonContainer* pCombinedMuonContainer
114 ){
115
116 StatusCode sc = StatusCode::SUCCESS;
117
118 if (!pCombinedMuonContainer) {
119 msg(MSG::WARNING) << " pCombinedMuonContainer null " << endreq;
120 return StatusCode::SUCCESS;
121 }
122
123 const DataHandle<EventInfo> TheEventInfo;
124 sc = evtStore()->retrieve(TheEventInfo);
125 if ( sc.isFailure() ) {
126 msg(MSG::WARNING) << " retrieve TheEventInfo failed" << endreq;
127 return StatusCode::SUCCESS;
128 }
129
130 *p_OutCurrent
131 << " "
132 <<std::endl;
133 *p_OutCurrent
134 << "* For the event : "
135 << TheEventInfo->event_ID()->event_number()
136 << std::endl;
137
138 int Kounter = 0 ;
139 for (Analysis::MuonContainer::const_iterator it = pCombinedMuonContainer->begin(); it!=pCombinedMuonContainer->end(); ++it){
140
141 Kounter = Kounter + 1 ;
142 *p_OutCurrent
143 << " "
144 <<std::endl;
145 *p_OutCurrent
146 << "* Track number "
147 << Kounter
148 <<std::endl;
149
150
151 bool TemphasMuonSpectrometerTrackParticle = false ;
152 if ( (*it)->muonSpectrometerTrackParticle() ) TemphasMuonSpectrometerTrackParticle = true ;
153
154 *p_OutCurrent << "############################ " << std::endl;
155 *p_OutCurrent << "##### Combined Muon ##### " << std::endl;
156 *p_OutCurrent << "############################ " << std::endl;
157 *p_OutCurrent << "pt : " << std::setw(12)<<std::setprecision(5)<< 1./(*it)->iPt() << std::endl;
158 *p_OutCurrent << "cot(theta) : " << std::setw(12)<<std::setprecision(5)<< (*it)->cotTh() << std::endl;
159 *p_OutCurrent << "phi : " << std::setw(12)<<std::setprecision(5)<< (*it)->phi() << std::endl;
160 *p_OutCurrent << "mass : " << std::setw(12)<<std::setprecision(5)<< (*it)->m() << std::endl;
161 *p_OutCurrent << "Param. energy loss and his error "
162 << std::setw(12)<<std::setprecision(5)<< (*it)->energyLoss().first
163 << " , "
164 << std::setw(12)<<std::setprecision(5)<< (*it)->energyLoss().second
165 << std::endl;
166 *p_OutCurrent << "caloEnergyLoss() "
167 << std::setw(12)<<std::setprecision(5)<< (*it)->caloEnergyLoss()->deltaE()
168 << " , "
169 << std::setw(12)<<std::setprecision(5)<< (*it)->caloEnergyLoss()->sigmaDeltaE()
170 << std::endl;
171 *p_OutCurrent << "Has InDet TrackParticle ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->hasInDetTrackParticle()<< std::endl;
172
173
174 *p_OutCurrent << "Has MS TrackParticle ? : " << std::setw(12)<<std::setprecision(5)<< TemphasMuonSpectrometerTrackParticle << std::endl;
175
176 *p_OutCurrent << "Has Extrapolated TrackParticle ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->hasMuonExtrapolatedTrackParticle()<< std::endl;
177 *p_OutCurrent << "Has Combined TrackParticle ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->hasCombinedMuonTrackParticle()<< std::endl;
178
179
180 *p_OutCurrent << " author () ? : " << std::setw(12) << (*it)->author () << std::endl;
181
182 *p_OutCurrent << "bestMatch ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->bestMatch () << std::endl;
183 *p_OutCurrent << "isCorrected ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isCorrected () << std::endl;
184 *p_OutCurrent << "isCombinedMuon ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isCombinedMuon () << std::endl;
185 *p_OutCurrent << "isStandAloneMuon ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isStandAloneMuon () << std::endl;
186 *p_OutCurrent << "isLowPtReconstructedMuon ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isLowPtReconstructedMuon () << std::endl;
187 *p_OutCurrent << "hasCombinedMuon ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->hasCombinedMuon () << std::endl;
188 *p_OutCurrent << "hasInDetTrackParticle ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->hasInDetTrackParticle () << std::endl;
189 *p_OutCurrent << "hasMuonExtrapolatedTrackParticle ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->hasMuonExtrapolatedTrackParticle () << std::endl;
190 *p_OutCurrent << "hasInnerExtrapolatedTrackParticle ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->hasInnerExtrapolatedTrackParticle ()<< std::endl;
191 *p_OutCurrent << "hasCombinedMuonTrackParticle ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->hasCombinedMuonTrackParticle () << std::endl;
192 *p_OutCurrent << "hasCluster ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->hasCluster () << std::endl;
193 *p_OutCurrent << "isHighPt ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isHighPt () << std::endl;
194 *p_OutCurrent << "isLowPt ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isLowPt () << std::endl;
195 *p_OutCurrent << "isCaloMuonId ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isCaloMuonId () << std::endl;
196
197 *p_OutCurrent << "matchChi2 () : " << std::setw(12)<<std::setprecision(5)<< (*it)->matchChi2 () << std::endl;
198 *p_OutCurrent << "matchChi2OverDoF () : " << std::setw(12)<<std::setprecision(5)<< (*it)->matchChi2OverDoF () << std::endl;
199 *p_OutCurrent << "fitChi2 () : " << std::setw(12)<<std::setprecision(5)<< (*it)->fitChi2 () << std::endl;
200 *p_OutCurrent << "fitChi2OverDoF () : " << std::setw(12)<<std::setprecision(5)<< (*it)->fitChi2OverDoF () << std::endl;
201
202 *p_OutCurrent << "fitNumberDoF () : " << std::setw(12) << (*it)->fitNumberDoF () << std::endl;
203 *p_OutCurrent << "matchNumberDoF () : " << std::setw(12) << (*it)->matchNumberDoF () << std::endl;
204
205 *p_OutCurrent << " numberOfBLayerHits () : " << std::setw(12) << (*it)-> numberOfBLayerHits () << std::endl;
206 *p_OutCurrent << " numberOfPixelHits () : " << std::setw(12) << (*it)-> numberOfPixelHits () << std::endl;
207 *p_OutCurrent << " numberOfSCTHits () : " << std::setw(12) << (*it)-> numberOfSCTHits () << std::endl;
208 *p_OutCurrent << " numberOfTRTHits () : " << std::setw(12) << (*it)-> numberOfTRTHits () << std::endl;
209 *p_OutCurrent << " numberOfTRTHighThresholdHits () : " << std::setw(12) << (*it)-> numberOfTRTHighThresholdHits () << std::endl;
210 *p_OutCurrent << " numberOfBLayerSharedHits () : " << std::setw(12) << (*it)-> numberOfBLayerSharedHits () << std::endl;
211 *p_OutCurrent << " numberOfPixelSharedHits () : " << std::setw(12) << (*it)-> numberOfPixelSharedHits () << std::endl;
212 *p_OutCurrent << " numberOfPixelHoles () : " << std::setw(12) << (*it)-> numberOfPixelHoles () << std::endl;
213 *p_OutCurrent << " numberOfSCTSharedHits () : " << std::setw(12) << (*it)-> numberOfSCTSharedHits () << std::endl;
214 *p_OutCurrent << " numberOfSCTHoles () : " << std::setw(12) << (*it)-> numberOfSCTHoles () << std::endl;
215 *p_OutCurrent << " numberOfTRTOutliers () : " << std::setw(12) << (*it)-> numberOfTRTOutliers () << std::endl;
216 *p_OutCurrent << " numberOfTRTHighThresholdOutliers () : " << std::setw(12) << (*it)-> numberOfTRTHighThresholdOutliers () << std::endl;
217 *p_OutCurrent << " numberOfMDTHits () : " << std::setw(12) << (*it)-> numberOfMDTHits () << std::endl;
218 *p_OutCurrent << " numberOfMDTHoles () : " << std::setw(12) << (*it)-> numberOfMDTHoles () << std::endl;
219 *p_OutCurrent << " numberOfCSCEtaHits () : " << std::setw(12) << (*it)-> numberOfCSCEtaHits () << std::endl;
220 *p_OutCurrent << " numberOfCSCEtaHoles () : " << std::setw(12) << (*it)-> numberOfCSCEtaHoles () << std::endl;
221 *p_OutCurrent << " numberOfCSCPhiHits () : " << std::setw(12) << (*it)-> numberOfCSCPhiHits () << std::endl;
222 *p_OutCurrent << " numberOfCSCPhiHoles () : " << std::setw(12) << (*it)-> numberOfCSCPhiHoles () << std::endl;
223 *p_OutCurrent << " numberOfRPCEtaHits () : " << std::setw(12) << (*it)-> numberOfRPCEtaHits () << std::endl;
224 *p_OutCurrent << " numberOfRPCEtaHoles () : " << std::setw(12) << (*it)-> numberOfRPCEtaHoles () << std::endl;
225 *p_OutCurrent << " numberOfRPCPhiHits () : " << std::setw(12) << (*it)-> numberOfRPCPhiHits () << std::endl;
226 *p_OutCurrent << " numberOfRPCPhiHoles () : " << std::setw(12) << (*it)-> numberOfRPCPhiHoles () << std::endl;
227 *p_OutCurrent << " numberOfTGCEtaHits () : " << std::setw(12) << (*it)-> numberOfTGCEtaHits () << std::endl;
228 *p_OutCurrent << " numberOfTGCEtaHoles () : " << std::setw(12) << (*it)-> numberOfTGCEtaHoles () << std::endl;
229 *p_OutCurrent << " numberOfTGCPhiHits () : " << std::setw(12) << (*it)-> numberOfTGCPhiHits () << std::endl;
230 *p_OutCurrent << " numberOfTGCPhiHoles () : " << std::setw(12) << (*it)-> numberOfTGCPhiHoles () << std::endl;
231 *p_OutCurrent << " numberOfGangedPixels () : " << std::setw(12) << (*it)-> numberOfGangedPixels () << std::endl;
232 *p_OutCurrent << " numberOfOutliersOnTrack () : " << std::setw(12) << (*it)-> numberOfOutliersOnTrack () << std::endl;
233 *p_OutCurrent << " numberOfTrackSummaryTypes () : " << std::setw(12) << (*it)-> numberOfTrackSummaryTypes () << std::endl;
234
235 *p_OutCurrent << "segmentDeltaEta () : " << std::setw(12)<<std::setprecision(5)<< (*it)->segmentDeltaEta () << std::endl;
236 *p_OutCurrent << "segmentDeltaPhi () : " << std::setw(12)<<std::setprecision(5)<< (*it)->segmentDeltaPhi () << std::endl;
237 *p_OutCurrent << "segmentChi2OverDoF () : " << std::setw(12)<<std::setprecision(5)<< (*it)->segmentChi2OverDoF () << std::endl;
238 *p_OutCurrent << "annBarrel () : " << std::setw(12)<<std::setprecision(5)<< (*it)->annBarrel () << std::endl;
239 *p_OutCurrent << "annEndCap () : " << std::setw(12)<<std::setprecision(5)<< (*it)->annEndCap () << std::endl;
240 *p_OutCurrent << "innAngle () : " << std::setw(12)<<std::setprecision(5)<< (*it)->innAngle () << std::endl;
241 *p_OutCurrent << "midAngle () : " << std::setw(12)<<std::setprecision(5)<< (*it)->midAngle () << std::endl;
242 *p_OutCurrent << "t0 () : " << std::setw(12)<<std::setprecision(5)<< (*it)->t0 () << std::endl;
243 *p_OutCurrent << "beta () : " << std::setw(12)<<std::setprecision(5)<< (*it)->beta () << std::endl;
244
245 *p_OutCurrent << "alsoFoundByLowPt ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->alsoFoundByLowPt () << std::endl;
246 *p_OutCurrent << "alsoFoundByCaloMuonId ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->alsoFoundByCaloMuonId () << std::endl;
247 *p_OutCurrent << "caloMuonAlsoFoundByMuonReco ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->caloMuonAlsoFoundByMuonReco () << std::endl;
248
249 *p_OutCurrent << "isMuonLikelihood ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isMuonLikelihood () << std::endl;
250 *p_OutCurrent << "isLoose ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isLoose () << std::endl;
251 *p_OutCurrent << "isMedium ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isMedium () << std::endl;
252 *p_OutCurrent << "isTight ? : " << std::setw(12)<<std::setprecision(5)<< (*it)->isTight () << std::endl;
253 *p_OutCurrent << "isLoose2 ? : " << std::setw(12)<<std::setprecision(5)<<((*it)->isMuon()).isLoose () << std::endl;
254 *p_OutCurrent << "isMedium2 ? : " << std::setw(12)<<std::setprecision(5)<<((*it)->isMuon()).isMedium () << std::endl;
255 *p_OutCurrent << "isTight2 ? : " << std::setw(12)<<std::setprecision(5)<<((*it)->isMuon()).isTight () << std::endl;
256 *p_OutCurrent << "qualityWord ? : " << std::setw(12)<<std::setprecision(5)<<((*it)->isMuon()).qualityWord () << std::endl;
257
258 StacoMuonQualityWordHelper aMuonQualityWordHelper ;
259 for( int Item =15 ; Item >= 0 ; Item--){
260 *p_OutCurrent << " " ;
261 *p_OutCurrent << std::setw(2) <<Item <<std::setw(1) <<"|" ;
262 }
263 *p_OutCurrent << std::endl;
264 *p_OutCurrent << "AsString ? : " << std::setw(48)<< aMuonQualityWordHelper.AsString((*it)->isMuon()) << std::endl;
265
266 *p_OutCurrent << " numberOfSegments () : " << std::setw(12) << (*it)-> numberOfSegments () << std::endl;
267 for (unsigned int index=0; index<((*it)->numberOfSegments()); index++){
268 const Trk::Segment* pSegment = (*it)->muonSegment(index) ;
269 *p_OutCurrent
270 << "* Segment number "
271 << index
272 <<std::endl;
273 *p_OutCurrent
274 << "Segment Station Name "
275 << " " << p_OwnEDMHelper->SegmentAssociatedStationName(pSegment)
276 <<std::endl;
277 *p_OutCurrent
278 << "Fit Quality "
279 << " " << std::setw(12)<<std::setprecision(5) << p_OwnEDMHelper->GetfitQuality(pSegment)
280 <<std::endl;
281 *p_OutCurrent << "Nber of Digits " << " " << p_OwnEDMHelper->GetNberOfDigi(pSegment) <<std::endl;
282 *p_OutCurrent << "Nber of Digits MDT " << " " << p_OwnEDMHelper->GetNberOfDigiMDT (pSegment) <<std::endl;
283 *p_OutCurrent << "Nber of Digits RPC " << " " << p_OwnEDMHelper->GetNberOfDigiRPC (pSegment) <<std::endl;
284 *p_OutCurrent << "Nber of Digits TGC " << " " << p_OwnEDMHelper->GetNberOfDigiTGC (pSegment) <<std::endl;
285 *p_OutCurrent << "Nber of Digits CSC " << " " << p_OwnEDMHelper->GetNberOfDigiCSC (pSegment) <<std::endl;
286
287 sc = p_OwnEDMHelper->dump_TrkSegment(pSegment,p_OutCurrent);
288 if (sc.isFailure()) msg(MSG::WARNING) << "dump_TrkSegment failed" << endreq;
289 *p_OutCurrent << "* Its digits are:"<<std::endl;
290 sc = p_OwnEDMHelper->dump_TrkSegmentDigits(pSegment,p_OutCurrent);
291 if (sc.isFailure()) msg(MSG::WARNING) << "dump_TrkSegmentDigits failed" << endreq;
292 *p_OutCurrent << "* Its holes are:"<<std::endl;
293 sc = p_OwnEDMHelper->dump_TrkSegmentHoles(pSegment,p_OutCurrent);
294 if (sc.isFailure()) msg(MSG::WARNING) << "dump_TrkSegmentDigits failed" << endreq;
295 }
296
297 *p_OutCurrent << "parameter(MuonParameters::etcone10) : " << std::setw(12)<<std::setprecision(5)<< (*it)->parameter(MuonParameters::etcone10) << std::endl;
298 *p_OutCurrent << "parameter(MuonParameters::etcone20) : " << std::setw(12)<<std::setprecision(5)<< (*it)->parameter(MuonParameters::etcone20) << std::endl;
299 *p_OutCurrent << "parameter(MuonParameters::etcone30) : " << std::setw(12)<<std::setprecision(5)<< (*it)->parameter(MuonParameters::etcone30) << std::endl;
300 *p_OutCurrent << "parameter(MuonParameters::etcone40) : " << std::setw(12)<<std::setprecision(5)<< (*it)->parameter(MuonParameters::etcone40) << std::endl;
301 *p_OutCurrent << "parameter(MuonParameters::nucone10) : " << std::setw(12)<<std::setprecision(5)<< (*it)->parameter(MuonParameters::nucone10) << std::endl;
302 *p_OutCurrent << "parameter(MuonParameters::nucone20) : " << std::setw(12)<<std::setprecision(5)<< (*it)->parameter(MuonParameters::nucone20) << std::endl;
303 *p_OutCurrent << "parameter(MuonParameters::nucone30) : " << std::setw(12)<<std::setprecision(5)<< (*it)->parameter(MuonParameters::nucone30) << std::endl;
304 *p_OutCurrent << "parameter(MuonParameters::nucone40) : " << std::setw(12)<<std::setprecision(5)<< (*it)->parameter(MuonParameters::nucone40) << std::endl;
305
306 *p_OutCurrent << "associatedEtaDigits().size() : " << std::setw(12) <<((*it)->associatedEtaDigits()).size() << std::endl;
307 for (unsigned int index=0; index<((*it)->associatedEtaDigits()).size(); index++){
308 *p_OutCurrent << "associatedEtaDigits() : "
309 << std::setw(12) <<index
310 << std::setw(12) <<((*it)->associatedEtaDigits())[index]
311 << std::endl;
312 }
313 *p_OutCurrent << "associatedPhiDigits().size() : " << std::setw(12) <<((*it)->associatedPhiDigits()).size() << std::endl;
314 for (unsigned int index=0; index<((*it)->associatedPhiDigits()).size(); index++){
315 *p_OutCurrent << "associatedPhiDigits() : "
316 << std::setw(12) <<index
317 << std::setw(12) <<((*it)->associatedPhiDigits())[index]
318 << std::endl;
319 }
320 *p_OutCurrent << "segmentEtaDigits().size() : " << std::setw(12) <<((*it)->segmentEtaDigits()).size() << std::endl;
321 for (unsigned int index=0; index<((*it)->segmentEtaDigits()).size(); index++){
322 *p_OutCurrent << "segmentEtaDigits() : "
323 << std::setw(12) <<index
324 << std::setw(12) <<((*it)->segmentEtaDigits())[index]
325 << std::endl;
326 }
327 *p_OutCurrent << "segmentPhiDigits().size() : " << std::setw(12) <<((*it)->segmentPhiDigits()).size() << std::endl;
328 for (unsigned int index=0; index<((*it)->segmentPhiDigits()).size(); index++){
329 *p_OutCurrent << "segmentPhiDigits() : "
330 << std::setw(12) <<index
331 << std::setw(12) <<((*it)->segmentPhiDigits())[index]
332 << std::endl;
333 }
334
335 *p_OutCurrent << "################################################# " << std::endl;
336 *p_OutCurrent << "##### TrackParticle and Trk::Track Pointers ##### " << std::endl;
337 *p_OutCurrent << "################################################# " << std::endl;
338 if ((*it)->hasInDetTrackParticle()){
339 const Rec::TrackParticle* idtp = (*it)->inDetTrackParticle();
340 *p_OutCurrent << " -------------------------- " << std::endl;
341 *p_OutCurrent << " --- InDet TrackParticle--- " << std::endl;
342 *p_OutCurrent << " -------------------------- " << std::endl;
343 *p_OutCurrent << " -----TrackSummary--------- " << std::endl;
344 if (idtp->trackSummary()) {
345 *p_OutCurrent <<*(idtp->trackSummary()) << std::endl;
346 }else{
347 *p_OutCurrent << " (idtp->trackSummary()) is 0 " << std::endl;
348 }
349
350 *p_OutCurrent << " -----InDet Trk::Track----- " << std::endl;
351 const Trk::Track* idtr = idtp->originalTrack();
352 summariseTrack(idtr);
353 }else{
354 *p_OutCurrent << " ----- DOES NOT HAVE INDET POINTER ----- " << std::endl;
355 }
356
357
358 if(TemphasMuonSpectrometerTrackParticle){
359 const Rec::TrackParticle* mstp = (*it)->muonSpectrometerTrackParticle() ;
360 *p_OutCurrent << " ------------------------------------- " << std::endl;
361 *p_OutCurrent << " --- MuonSpectormeter TrackParticle--- " << std::endl;
362 *p_OutCurrent << " ------------------------------------- " << std::endl;
363 *p_OutCurrent << " -----TrackSummary--------- " << std::endl;
364 if (mstp->trackSummary()) {
365 *p_OutCurrent <<*(mstp->trackSummary())<<std::endl;
366 }else{
367 *p_OutCurrent <<"(mstp->trackSummary()) is 0 "<<std::endl;
368 }
369
370 *p_OutCurrent << " --- MuonSpectormeter Trk::Track --- " <<std::endl;
371 const Trk::Track* mstr = mstp->originalTrack();
372 summariseTrack(mstr);
373 }else{
374 *p_OutCurrent << " ----- DOES NOT HAVE MUON SPEC. POINTER ----- " << std::endl;
375 }
376
377 if( (*it)->hasMuonExtrapolatedTrackParticle() ){
378 const Rec::TrackParticle* satp = (*it)->muonExtrapolatedTrackParticle();
379 *p_OutCurrent << " -------------------------------------- " << std::endl;
380 *p_OutCurrent << " --- Muon Extrapolated TrackParticle--- " << std::endl;
381 *p_OutCurrent << " -------------------------------------- " << std::endl;
382 *p_OutCurrent << " -----TrackSummary--------- " << std::endl;
383 if (satp->trackSummary()) {
384 *p_OutCurrent << *(satp->trackSummary()) << std::endl;
385 }else{
386 *p_OutCurrent << "(satp->trackSummary()) is 0 " << std::endl;
387 }
388
389 *p_OutCurrent << " ---- Muon Extrapolated Trk::Track ---- "<< std::endl;
390 const Trk::Track* satr = satp->originalTrack();
391 summariseTrack(satr);
392 }else{
393 *p_OutCurrent << " ----- DOES NOT HAVE MUON EXTRAP. POINTER ----- " << std::endl;
394 }
395
396 if( (*it)->hasCombinedMuonTrackParticle() ){
397 const Rec::TrackParticle* cbtp = (*it)->combinedMuonTrackParticle();
398 *p_OutCurrent << " --- Muon Combined TrackParticle--- " <<std::endl;
399 if (cbtp->trackSummary()){
400 *p_OutCurrent <<*(cbtp->trackSummary()) <<std::endl;
401 }else{
402 *p_OutCurrent <<"(cbtp->trackSummary()) is 0" <<std::endl;
403 }
404
405 *p_OutCurrent << " --- Muon Combined Trk::Track--- " <<std::endl;
406 const Trk::Track* cbtr = cbtp->originalTrack();
407 summariseTrack(cbtr);
408 }else{
409 *p_OutCurrent << " ----- DOES NOT HAVE MUON COMB. POINTER ----- " <<std::endl;
410 }
411
412 }
413
414 return StatusCode::SUCCESS;
415
416 }
417
418
419 StatusCode StacoDumpCombinedMuonContainerTool::finalize(){return StatusCode::SUCCESS;}
420
421 void StacoDumpCombinedMuonContainerTool::summariseTrack(const Trk::Track* track){
422
423 *p_OutCurrent << "--------- Track summary ---------- " << std::endl;
424
425
426 *p_OutCurrent << "AUTHOR " << (track->info()).dumpInfo()<< std::endl;
427
428 if (track->fitQuality()!=0)
429 *p_OutCurrent << "Has chi2 " << track->fitQuality()->chiSquared()<< " and " <<track->fitQuality()->numberDoF()<<" degrees of freedom"<<std::endl;
430
431 if (track->trackParameters()!=0)
432 *p_OutCurrent << "Has " << track->trackParameters()->size() << " tracks parameter(s)"<<std::endl;
433
434 if (track->perigeeParameters()!=0)
435 *p_OutCurrent << "Has perigee of (d0,z0,phi,theta,q/p) = ("
436 <<std::setw(12)<<std::setprecision(5)<<track->perigeeParameters()->parameters()[Trk::d0] <<", "
437 <<std::setw(12)<<std::setprecision(5)<<track->perigeeParameters()->parameters()[Trk::z0] <<", "
438 <<std::setw(12)<<std::setprecision(5)<<track->perigeeParameters()->parameters()[Trk::phi0] <<", "
439 <<std::setw(12)<<std::setprecision(5)<<track->perigeeParameters()->parameters()[Trk::theta] <<", "
440 <<std::setw(12)<<std::setprecision(5)<<track->perigeeParameters()->parameters()[Trk::qOverP]<<")"
441 <<std::endl;
442
443 if (track->measurementsOnTrack()!=0)
444 *p_OutCurrent << "Has " << track->measurementsOnTrack()->size()<< " RIO_OnTrack(s)"<<std::endl;
445
446 if (track->trackStateOnSurfaces()!=0)
447 *p_OutCurrent << "Has " << track->trackStateOnSurfaces()->size()<< " TrackStateOnSurface(s)"<<std::endl;
448
449 return;
450
451 }
| 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.
|
|