Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
atlas
athena
Commits
62fc6fb5
Commit
62fc6fb5
authored
Sep 30, 2013
by
Nicholas Styles
Committed by
Graeme Stewart
Sep 19, 2014
Browse files
migrate to Eigen/new Track EDM (TRT_SeededTrackFinder-01-00-00)
parent
da179f39
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/TRT_SeededTrackFinder/TRT_SeededTrackFinder.h
0 → 100755
View file @
62fc6fb5
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
/**********************************************************************************
Header file for class TRT_SeededTrackFinder
(c) ATLAS Detector software
Algorithm for Trk::Track production in SCT and Pixels
Version 1.0: 04/12/2006
Authors : Thomas Koffas, Markus Elsing
email : Thomas.Koffas@cern.ch
**********************************************************************************/
#ifndef TRT_SeededTrackFinder_H
#define TRT_SeededTrackFinder_H
#include <string>
#include "AthenaBaseComps/AthAlgorithm.h"
#include "GaudiKernel/ToolHandle.h"
#include "GaudiKernel/ServiceHandle.h"
#include "InDetRecToolInterfaces/ITRT_SeededTrackFinder.h"
///Track Collection to store the tracks
#include "TrkTrack/TrackCollection.h"
///Needed for the TRT track segments
#include "TrkSegment/SegmentCollection.h"
///Needed for the track refitter
#include "TrkFitterInterfaces/ITrackFitter.h"
///Needed for the TRT extension tool
#include "InDetRecToolInterfaces/ITRT_TrackExtensionTool.h"
#include "TrkExInterfaces/IExtrapolator.h"
#include "InDetBeamSpotService/IBeamCondSvc.h"
class
MsgStream
;
namespace
InDet
{
/**
@class TRT_SeededTrackFinder
InDet::TRT_SeededTrackFinde is an algorithm which produces tracks
moving outside-in in the Inner Detector.
*/
class
TRT_SeededTrackFinder
:
public
AthAlgorithm
{
///////////////////////////////////////////////////////////////////
// Public methods:
///////////////////////////////////////////////////////////////////
public:
///////////////////////////////////////////////////////////////////
/** Standard Algotithm methods */
///////////////////////////////////////////////////////////////////
TRT_SeededTrackFinder
(
const
std
::
string
&
name
,
ISvcLocator
*
pSvcLocator
);
virtual
~
TRT_SeededTrackFinder
()
{}
StatusCode
initialize
();
StatusCode
execute
();
StatusCode
finalize
();
///////////////////////////////////////////////////////////////////
/** Print internal tool parameters and status */
///////////////////////////////////////////////////////////////////
MsgStream
&
dump
(
MsgStream
&
out
)
const
;
std
::
ostream
&
dump
(
std
::
ostream
&
out
)
const
;
protected:
///////////////////////////////////////////////////////////////////
/* Protected data */
///////////////////////////////////////////////////////////////////
int
m_nprint
;
int
m_ntracks
;
/** Number of tracks found */
std
::
string
m_inseglocation
;
/** Name of input TRT segments location */
std
::
string
m_outtracklocation
;
/** Name of output tracks location */
bool
m_doRefit
;
/** Do final careful refit of tracks */
bool
m_doExtension
;
/** Find the TRT extension of the Si track segment */
bool
m_rejectShortExten
;
/** use extension only if better than original track */
bool
m_doStat
;
/** Statistics of final tracks */
bool
m_saveTRT
;
/** Output stand-alone TRT segments */
int
m_MaxSegNum
;
/** Maximum number of segments to be handled */
unsigned
int
m_minTRTonSegment
;
/** Minimum number of TRT hits on segment */
unsigned
int
m_minTRTonly
;
/** Minimum number of TRT hits on TRT only */
ToolHandle
<
ITRT_SeededTrackFinder
>
m_trackmaker
;
/** Track maker tool */
ToolHandle
<
Trk
::
ITrackFitter
>
m_fitterTool
;
/** Refitting tool */
ToolHandle
<
ITRT_TrackExtensionTool
>
m_trtExtension
;
/** TRT track extension tool */
const
Trk
::
SegmentCollection
*
m_Segments
;
/** TRT segments to use */
ToolHandle
<
Trk
::
IExtrapolator
>
m_extrapolator
;
//!< the extrapoator
ServiceHandle
<
IBeamCondSvc
>
m_iBeamCondSvc
;
//!< pointer to the beam condition service
bool
m_SiExtensionCuts
;
//!< enable cuts after Si segment finding
double
m_minPt
;
//!< minimal Pt cut
double
m_maxEta
;
//!< maximal Eta cut
double
m_maxRPhiImp
;
//!< maximal RPhi impact parameter cut
double
m_maxZImp
;
//!< maximal z impact parameter cut
/** Global Counters for final algorithm statistics */
int
m_nTrtSeg
;
/** Number of TRT segments to be investigated per event */
int
m_nTrtFailSel
;
/** Number of TRT segments failing input selection */
int
m_nTrtSegGood
;
/** Number of TRT segments that will be investigated per event */
int
m_nTrtLimit
;
/** Number of TRT segments lost in busy events */
int
m_nTrtNoSiExt
;
/** Number of TRT segments not extended in Si */
int
m_nExtCut
;
/** Number of Si extensions failing cuts */
int
m_nBckTrkTrt
;
/** Number of back tracks found without a Si extension per event */
int
m_nTrtExtCalls
;
/** Number of times the TRT extension is called */
int
m_nTrtExt
;
/** Number of good TRT extensions */
int
m_nTrtExtBad
;
/** Number of shorter TRT extensions */
int
m_nTrtExtFail
;
/** Number of failed TRT extensions */
int
m_nBckTrkSi
;
/** Number of back tracks found with Si extension per event */
int
m_nBckTrk
;
/** Number of back tracks found with or without Si extension per event */
int
m_nTrtSegTotal
;
/** Total number of TRT segments to be investigated */
int
m_nTrtFailSelTotal
;
/** Total number of TRT segments failing input selection */
int
m_nTrtSegGoodTotal
;
/** Total number of TRT segments that will be investigated */
int
m_nTrtLimitTotal
;
/** Total number of TRT segments lost in busy events */
int
m_nTrtNoSiExtTotal
;
/** Total number of TRT segments not extended in Si */
int
m_nExtCutTotal
;
/** Total number of Si extensions failing cuts */
int
m_nBckTrkTrtTotal
;
/** Total number of back tracks found without a Si extension */
int
m_nTrtExtCallsTotal
;
/** Total number of times the TRT extension is called */
int
m_nTrtExtTotal
;
/** Total number of good TRT extensions */
int
m_nTrtExtBadTotal
;
/** Total number of shorter TRT extensions */
int
m_nTrtExtFailTotal
;
/** Total number of failed TRT extensions */
int
m_nBckTrkSiTotal
;
/** Total number of back tracks found with Si extension */
int
m_nBckTrkTotal
;
/** Total number of back tracks found with or without Si extension */
///////////////////////////////////////////////////////////////////
/** Protected methods */
///////////////////////////////////////////////////////////////////
/** Merge a TRT track segment and a Si track component into one global ID track */
Trk
::
Track
*
mergeSegments
(
const
Trk
::
Track
&
,
const
Trk
::
TrackSegment
&
);
/** Merge a TRT track extension and a Si track component into one global ID track */
Trk
::
Track
*
mergeExtension
(
const
Trk
::
Track
&
,
std
::
vector
<
const
Trk
::
MeasurementBase
*>&
);
/** Transform a TRT track segment into a track */
Trk
::
Track
*
segToTrack
(
const
Trk
::
TrackSegment
&
);
/** Do some statistics analysis at the end of each event */
StatusCode
Analyze
(
TrackCollection
*
);
MsgStream
&
dumptools
(
MsgStream
&
out
)
const
;
MsgStream
&
dumpevent
(
MsgStream
&
out
)
const
;
};
MsgStream
&
operator
<<
(
MsgStream
&
,
const
TRT_SeededTrackFinder
&
);
std
::
ostream
&
operator
<<
(
std
::
ostream
&
,
const
TRT_SeededTrackFinder
&
);
}
#endif // TRT_SeededTrackFinder_H
InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/cmt/requirements
0 → 100755
View file @
62fc6fb5
package
TRT_SeededTrackFinder
author
Thomas
Koffas
<
Thomas
.
Koffas
@
cern
.
ch
>
private
use
TrkPseudoMeasurementOnTrack
TrkPseudoMeasurementOnTrack
-*
Tracking
/
TrkEvent
use
TrkEventPrimitives
TrkEventPrimitives
-*
Tracking
/
TrkEvent
use
InDetRIO_OnTrack
InDetRIO_OnTrack
-*
InnerDetector
/
InDetRecEvent
public
use
AtlasPolicy
AtlasPolicy
-*
use
GaudiInterface
GaudiInterface
-*
External
use
AthenaBaseComps
AthenaBaseComps
-*
Control
use
TrkTrack
TrkTrack
-*
Tracking
/
TrkEvent
use
TrkSegment
TrkSegment
-*
Tracking
/
TrkEvent
use
TrkFitterInterfaces
TrkFitterInterfaces
-*
Tracking
/
TrkFitter
use
InDetRecToolInterfaces
InDetRecToolInterfaces
-*
InnerDetector
/
InDetRecTools
use
TrkExInterfaces
TrkExInterfaces
-*
Tracking
/
TrkExtrapolation
use
InDetBeamSpotService
InDetBeamSpotService
-*
InnerDetector
/
InDetConditions
library
TRT_SeededTrackFinder
*.
cxx
components
/*.
cxx
apply_pattern
component_library
InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/doc/mainpage.h
0 → 100755
View file @
62fc6fb5
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
/**
@mainpage TRT_SeededTrackFinder
@author Thomas.Koffas@cern.ch
@section TRT_SeededTrackFinderIntro Introduction
This is the algorithm for driving the back tracking through the Si part of the ID.
The input are TRT track segments and the output are global ID tracks.
@section TRT_SeededTrackFinderDescription Description
This algorithm performs the following tasks:
1. Loops over the input TRT track segments and for each it calls the Si extension finder.
Only Segments with more than 9 drift circles will be investigated.
2. Each of the Si extensions found is then merged with the TRT segment to
form a global ID track with a pseudomeasurement added at the end of the Si part
if the number of Si clusters is less than 4.
3. If no Si extension is found, the TRT track segment only is transformed into a track.
A pseudo-measurment is added at the beginning.This is optional and the default setting
is false for now. It can be set via the job options.
4. There is the option, set via job options, of refitting all the new tracks with/without Si
extension. The track fitter can be specified via the job options.
5. Finally there is also the option of doing some detailed track statistics at the end of each
event, set again via the job options. Some global statistics, such as the total number of
tracks found, the number of TRT segments, the number of tracks with and without a Si
component, will be output in any case.
@section TRT_SeededTrackFinderTools Used Tools
This algorithm uses the ITRT_SeededTrackFinderTool, ITrackFitter tools.
@section TRT_SeededTrackFinderContents Algorithm Contents
The TRT_SeededTrackFinder contains the following classes/files:
- TRT_SeededTrackFinder.cxx...Main class calling all the necessary tools and producing the ouput track collection.
@section TRT_SeededTrackFinderPackages Used Packages
@htmlinclude used_packages.html
@section TRT_SeededTrackFinderReq Requirements file
@include requirements
*/
InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx
0 → 100755
View file @
62fc6fb5
This diff is collapsed.
Click to expand it.
InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/components/TRT_SeededTrackFinder_entries.cxx
0 → 100755
View file @
62fc6fb5
#include "GaudiKernel/DeclareFactoryEntries.h"
#include "TRT_SeededTrackFinder/TRT_SeededTrackFinder.h"
using
namespace
InDet
;
DECLARE_ALGORITHM_FACTORY
(
TRT_SeededTrackFinder
)
DECLARE_FACTORY_ENTRIES
(
TRT_SeededTrackFinder
)
{
DECLARE_ALGORITHM
(
TRT_SeededTrackFinder
)
}
InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/components/TRT_SeededTrackFinder_load.cxx
0 → 100755
View file @
62fc6fb5
#include "GaudiKernel/LoadFactoryEntries.h"
LOAD_FACTORY_ENTRIES
(
TRT_SeededTrackFinder
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment