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

'CMakeLists.txt' (InDetSegmentDriftCircleAssValidation-00-01-06)

parent c7c1eb9d
################################################################################
# Package: InDetSegmentDriftCircleAssValidation
################################################################################
# Declare the package name:
atlas_subdir( InDetSegmentDriftCircleAssValidation )
# Declare the package's dependencies:
atlas_depends_on_subdirs( PUBLIC
Control/AthenaBaseComps
GaudiKernel
InnerDetector/InDetRecEvent/InDetPrepRawData
Tracking/TrkEvent/TrkSegment
Tracking/TrkEvent/TrkTruthData
PRIVATE
InnerDetector/InDetRecEvent/InDetRIO_OnTrack
Tracking/TrkEvent/TrkPseudoMeasurementOnTrack
Tracking/TrkEvent/TrkTrack )
# External dependencies:
find_package( HepMC )
find_package( HepPDT )
# Component(s) in the package:
atlas_add_component( InDetSegmentDriftCircleAssValidation
src/*.cxx
src/components/*.cxx
INCLUDE_DIRS ${HEPPDT_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
LINK_LIBRARIES ${HEPPDT_LIBRARIES} ${HEPMC_LIBRARIES} AthenaBaseComps GaudiKernel InDetPrepRawData TrkSegment TrkTruthData InDetRIO_OnTrack TrkPseudoMeasurementOnTrack TrkTrack )
# Install files from the package:
atlas_install_headers( InDetSegmentDriftCircleAssValidation )
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef SegmentDriftCircleAssValidation_H
#define SegmentDriftCircleAssValidation_H
#include <string>
#include <map>
#include "AthenaBaseComps/AthAlgorithm.h"
#include "InDetPrepRawData/TRT_DriftCircleContainer.h"
#include "HepMC/GenParticle.h"
#include "HepPDT/ParticleDataTable.hh"
#include "TrkTruthData/PRD_MultiTruthCollection.h"
///Needed for the TRT track segments
#include "TrkSegment/SegmentCollection.h"
//Drift circle
#include "InDetPrepRawData/TRT_DriftCircle.h"
namespace InDet {
// Class-algorithm for track cluster association validation
//
class SegmentDriftCircleAssValidation : public AthAlgorithm
{
///////////////////////////////////////////////////////////////////
// Public methods:
///////////////////////////////////////////////////////////////////
public:
///////////////////////////////////////////////////////////////////
// Standard Algotithm methods
///////////////////////////////////////////////////////////////////
SegmentDriftCircleAssValidation(const std::string &name, ISvcLocator *pSvcLocator);
virtual ~SegmentDriftCircleAssValidation() {}
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_outputlevel ;
int m_nprint ;
const Trk::SegmentCollection *m_origColTracks ;
std::string m_origtracklocation ;
std::vector<const PRD_MultiTruthCollection*> m_prdCollectionVector ;
const HepPDT::ParticleDataTable* m_particleDataTable ;
const TRT_DriftCircleContainer *m_trtcontainer ;
std::string m_PRDTruthNameTRT ;
std::string m_circlesTRTname ;
double m_pTmin ;
double m_tcut ;
double m_rapcut ;
int m_dccut ;
double m_rmin ;
double m_rmax ;
int m_events ;
int m_ncircles ;
std::multimap<int,const Trk::PrepRawData*> m_kinecircle ;
std::list<int> m_allBarcodes ;
int m_nqsegments ;
std::list<int> m_particles ;
std::multimap<int,int> m_allParticles ;
std::multimap<int,int> m_tracks ;
std::multimap<const HepMC::GenParticle*, int> m_genPars ;
int m_efficiency[5] ;
///////////////////////////////////////////////////////////////////
// Protected methods
///////////////////////////////////////////////////////////////////
void newCirclesEvent ();
void tracksComparison ();
void efficiencyReconstruction();
int QualityTracksSelection ();
std::list<int> kine(const InDet::TRT_DriftCircle*);
std::list<PRD_MultiTruthCollection::const_iterator>
kinpart(const InDet::TRT_DriftCircle*);
bool isTheSameStrawElement(int,const Trk::PrepRawData*);
std::list<PRD_MultiTruthCollection::const_iterator>
findTruth (const InDet::TRT_DriftCircle* ,bool& );
MsgStream& dumptools(MsgStream& out) const;
MsgStream& dumpevent(MsgStream& out) const;
};
MsgStream& operator << (MsgStream& ,const SegmentDriftCircleAssValidation&);
std::ostream& operator << (std::ostream&,const SegmentDriftCircleAssValidation&);
}
#endif // SegmentDriftCircleAssValidation_H
package InDetSegmentDriftCircleAssValidation
author Thomas Koffas <Thomas.Koffas@cern.ch>
private
use InDetRIO_OnTrack InDetRIO_OnTrack-* InnerDetector/InDetRecEvent
use TrkTrack TrkTrack-* Tracking/TrkEvent
use TrkPseudoMeasurementOnTrack TrkPseudoMeasurementOnTrack-* Tracking/TrkEvent
public
use AtlasPolicy AtlasPolicy-*
use GaudiInterface GaudiInterface-* External
use AthenaBaseComps AthenaBaseComps-* Control
use AtlasHepMC AtlasHepMC-* External
use InDetPrepRawData InDetPrepRawData-* InnerDetector/InDetRecEvent
use TrkTruthData TrkTruthData-* Tracking/TrkEvent
use TrkSegment TrkSegment-* Tracking/TrkEvent
use HepPDT v* LCG_Interfaces
library InDetSegmentDriftCircleAssValidation *.cxx components/*.cxx
apply_pattern component_library
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
/**
@mainpage InDetSegmentDriftCircleAssValidation
@author Thomas.Koffas@cern.ch
@section InDetSegmentDriftCircleAssValidationIntro Introduction
This is an algorithm used to associate TRT segments to truth particle
segments in order to provide an efficiency estimation. The association
is done on a hit-by-hit basis.
@section InDetSegmentDriftCircleAssValidationDescription Description
This algorithm performs the following tasks:
1. Loads the reconstructed TRT segments, the container of the truth
associated TRT PRDs and the container of all the reconstructed TRT
drift circles.
2. Loops over all the reconstructed TRT drift circles and using their
associated truth particle, creates all truth particles track segments
inside the TRT. Cuts on pT, eta, origin of truth particle and minimum
number of drit circles, all configurable via job options, are applied
in order to select the reconstructable truth TRT track segments. These
are stored in a multimap. The rea possibility of a TRT drift circle
been shared by more than one truth particle is taken into account.
3. Then loops over the reconstructed TRT segments and extracts the drift
circles from each one of them. These are used to decide on what truth
particle to associate to the reconstructed track. A minimum number of
correct hits, again configurable via the job options, is required in
order for the assignment to be valid.
4. By comparing the results of setps 2,3 above an efficiency is computed.
@section InDetSegmentDriftCircleAssValidationContents Algorithm Contents
The InDetSegmentDriftCircleAssValidation contains the following classes/files:
- InDetSegmentDriftCircleAssValidation.cxx...Main class that does the truth association and computes an efficiency.
@section InDetSegmentDriftCircleAssValidationPackages Used Packages
@htmlinclude used_packages.html
@section InDetSegmentDriftCircleAssValidationReq Requirements file
@include requirements
*/
#include "GaudiKernel/DeclareFactoryEntries.h"
#include "InDetSegmentDriftCircleAssValidation/SegmentDriftCircleAssValidation.h"
DECLARE_NAMESPACE_ALGORITHM_FACTORY(InDet, SegmentDriftCircleAssValidation )
DECLARE_FACTORY_ENTRIES( InDetSegmentDriftCircleAssValidation )
{
DECLARE_NAMESPACE_ALGORITHM(InDet, SegmentDriftCircleAssValidation )
}
#include "GaudiKernel/LoadFactoryEntries.h"
LOAD_FACTORY_ENTRIES(InDetSegmentDriftCircleAssValidation)
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