Commit c6f27d4b authored by Atlas-Software Librarian's avatar Atlas-Software Librarian Committed by Graeme Stewart
Browse files

'CMakeLists.txt' (TRT_SegmentsToTrack-01-00-02)

parent a7f5c408
################################################################################
# Package: TRT_SegmentsToTrack
################################################################################
# Declare the package name:
atlas_subdir( TRT_SegmentsToTrack )
# Declare the package's dependencies:
atlas_depends_on_subdirs( PUBLIC
Control/AthenaBaseComps
GaudiKernel
PRIVATE
DetectorDescription/AtlasDetDescr
DetectorDescription/GeoPrimitives
DetectorDescription/Identifier
Event/EventPrimitives
InnerDetector/InDetDetDescr/InDetIdentifier
InnerDetector/InDetRecEvent/InDetPrepRawData
InnerDetector/InDetRecEvent/InDetRIO_OnTrack
Tracking/TrkDetDescr/TrkSurfaces
Tracking/TrkEvent/TrkEventUtils
Tracking/TrkEvent/TrkParameters
Tracking/TrkEvent/TrkPseudoMeasurementOnTrack
Tracking/TrkEvent/TrkRIO_OnTrack
Tracking/TrkEvent/TrkSegment
Tracking/TrkEvent/TrkTrack
Tracking/TrkEvent/TrkTruthData
Tracking/TrkExtrapolation/TrkExInterfaces
Tracking/TrkFitter/TrkFitterInterfaces )
# External dependencies:
find_package( Eigen )
# Component(s) in the package:
atlas_add_component( TRT_SegmentsToTrack
src/*.cxx
src/components/*.cxx
INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS}
LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaBaseComps GaudiKernel AtlasDetDescr GeoPrimitives Identifier EventPrimitives InDetIdentifier InDetPrepRawData InDetRIO_OnTrack TrkSurfaces TrkEventUtils TrkParameters TrkPseudoMeasurementOnTrack TrkRIO_OnTrack TrkSegment TrkTrack TrkTruthData TrkExInterfaces TrkFitterInterfaces )
# Install files from the package:
atlas_install_headers( TRT_SegmentsToTrack )
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef TRT_SEGMENTSTOTRACK_H
#define TRT_SEGMENTSTOTRACK_H
//======================================================
//
// Algorithm for creating Tracks out of TrackSegments
// by feeding them through a TrackFitter
//
// Author: Christian Schmitt <Christian.Schmitt@cern.ch>
//
//=======================================================
#include "AthenaBaseComps/AthAlgorithm.h"
#include "GaudiKernel/ToolHandle.h"
class PRD_MultiTruthCollection;
class AtlasDetectorID;
class TRT_ID;
namespace Trk {
class ITrackFitter;
class IExtrapolator;
class Track;
class Segment;
}
namespace InDet{
class TRT_DriftCircle;
}
/** @class TRT_SegmentsToTrack
Algorithm that creates Tracks out of TrackSegments by feeding them
to a TrackFitter
@author Christian.Schmitt@Cern.ch
*/
namespace InDet
{
class TRT_SegmentsToTrack : public AthAlgorithm
{
public:
TRT_SegmentsToTrack(const std::string& name, ISvcLocator* pSvcLocator);
~TRT_SegmentsToTrack();
StatusCode initialize();
StatusCode execute();
StatusCode finalize();
private:
int getNumberReal(const InDet::TRT_DriftCircle*); //!< Get the number of truth particles associated with this hit
double getRealFraction(const Trk::Segment *segment); //!< Get the fraction of truth hits on this segment
double getRealFractionTRT(const Trk::Track *track); //!< Get the fraction of truth TRT hits on this Track
double getNoiseProbability(const Trk::Track *track); //!< Get the fraction of noise TRT hits on this Track
int nTRTHits(const Trk::Track *track); //!< Count number of TRT Hits on track
int nHTHits(const Trk::Track *track); //!< Count number of TRT HT Hits on track
bool validateTrack(const Trk::Track *track); //!< Check that this track has the right properties (moves towards positive z and radially inwards)
void combineSegments(void);
std::string m_inputSegmentCollectionName; //!< Name of the TrackSegment Collection to read in
std::string m_outputTrackCollectionName; //!< Name of the TrackCollection to write out
ToolHandle<Trk::ITrackFitter> m_trackFitter; //!< The TrackFitter
ToolHandle<Trk::IExtrapolator> m_extrapolator; //!< The Extrapolator
double m_noiseCut; //!< All tracks with a TRT Noise fraction larger than this variable will be thrown away
int m_minTRTHits; //!< All tracks with less Hits (after the track fit) will be thrown away
const AtlasDetectorID* m_idHelper; //<! Detector ID helper
const TRT_ID* m_trtid ;
std::string m_multiTruthCollectionTRTName; //!< Name of the TRT MultiTruthCollection
int m_nTracksReal; //!< Counter for real reconstructed Tracks
int m_nTracksFake; //!< Counter for fake reconstructed Track
double m_noiseratio; //!< average percentage of noise in real tracks
int m_events; //!< Event counter
std::map<int,int> m_MapReal; //!< Map of hits and real tracks
std::map<int,int> m_MapFake; //!< Map of hits and fake tracks
bool m_materialEffects; //!< Flag to switch on Material Effects in the Fitter
bool m_outlierRemoval; //!< Flag to switch on the outlier removal in the track fitter
bool m_combineSegments; //!< Try to combine segments from Barrel and Endcap
std::string m_barrelSegments; //!< Name of Barrel segment collection
std::string m_endcapSegments; //!< Name of Endcap segment collection
std::string m_BECCollectionName; //!< Name of the combined (TRT Barrel+EC) TrackCollection to write out
std::string m_dummy;
bool m_dummy_bool;
const PRD_MultiTruthCollection *m_truthCollectionTRT; //!< Truth information for the TRT
int m_n_combined_fit;
};
}
#endif
package TRT_SegmentsToTrack
author Christian Schmitt <Christian.Schmitt@cern.ch>
private
use TrkParameters TrkParameters-* Tracking/TrkEvent
use TrkTrack TrkTrack-* Tracking/TrkEvent
use TrkRIO_OnTrack TrkRIO_OnTrack-* Tracking/TrkEvent
use TrkFitterInterfaces TrkFitterInterfaces-* Tracking/TrkFitter
use TrkExInterfaces TrkExInterfaces-* Tracking/TrkExtrapolation
use TrkSegment TrkSegment-* Tracking/TrkEvent
use TrkTruthData TrkTruthData-* Tracking/TrkEvent
use InDetPrepRawData InDetPrepRawData-* InnerDetector/InDetRecEvent
use TrkEventUtils TrkEventUtils-* Tracking/TrkEvent
use InDetRIO_OnTrack InDetRIO_OnTrack-* InnerDetector/InDetRecEvent
use TrkSurfaces TrkSurfaces-* Tracking/TrkDetDescr
use TrkPseudoMeasurementOnTrack TrkPseudoMeasurementOnTrack-* Tracking/TrkEvent
use AtlasDetDescr AtlasDetDescr-* DetectorDescription
use Identifier Identifier-* DetectorDescription
use InDetIdentifier InDetIdentifier-* InnerDetector/InDetDetDescr
use GeoPrimitives GeoPrimitives-* DetectorDescription
use EventPrimitives EventPrimitives-* Event
public
use AtlasPolicy AtlasPolicy-*
use AthenaBaseComps AthenaBaseComps-* Control
use GaudiInterface GaudiInterface-* External
library TRT_SegmentsToTrack *.cxx components/*.cxx
apply_pattern component_library
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
/**
@mainpage Segment to track converter for Cosmics
@section IntroductionTRT_SegmentsToTrack Introduction
This package converts TRT segments into full tracks by feeding them into a TrackFitter. At the same time,
it can try to combine the TRT segment with a Si only track to produce combined tracks.
Another functionality has been introduced for the TRT calibration: the algorithm can (if selected via jobOptions) try to perform
the eventphase correction and the per wheel t0 correction (TRT endcap).
@author Christian.Schmitt@cern.ch
@section requirementsTRT_SegmentsToTrack Requirements
@include requirements
*/
#include "GaudiKernel/DeclareFactoryEntries.h"
#include "TRT_SegmentsToTrack/TRT_SegmentsToTrack.h"
DECLARE_NAMESPACE_ALGORITHM_FACTORY( InDet, TRT_SegmentsToTrack )
DECLARE_FACTORY_ENTRIES( TRT_SegmentsToTrack ){
DECLARE_NAMESPACE_ALGORITHM( InDet, TRT_SegmentsToTrack )
}
#include "GaudiKernel/LoadFactoryEntries.h"
LOAD_FACTORY_ENTRIES( TRT_SegmentsToTrack )
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment