Skip to content
Snippets Groups Projects
Commit 156d5864 authored by Valentina Cairo's avatar Valentina Cairo Committed by Graeme Stewart
Browse files

modified jobOptions (SCTExtension-00-00-02)

parent 9573cc8c
No related branches found
No related tags found
No related merge requests found
Showing
with 369 additions and 0 deletions
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef SCTEtensionAlg_H
#define SCTExtensionAlg_H
#include "AthenaBaseComps/AthAlgorithm.h"
class SCTExtensionAlg:public AthAlgorithm {
public:
SCTExtensionAlg (const std::string& name, ISvcLocator* pSvcLocator);
StatusCode initialize();
StatusCode execute();
StatusCode finalize();
};
#endif
include $(CMTROOT)/src/Makefile.header
include $(CMTROOT)/src/constituents.make
# echo "cleanup SCTExtension SCTExtension-r652903 in /afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance"
if ( $?CMTROOT == 0 ) then
setenv CMTROOT /cvmfs/atlas.cern.ch/repo/sw/software/x86_64-slc6-gcc48-opt/20.0.0/CMT/v1r25p20140131
endif
source ${CMTROOT}/mgr/setup.csh
set cmtSCTExtensiontempfile=`${CMTROOT}/${CMTBIN}/cmt.exe -quiet build temporary_name`
if $status != 0 then
set cmtSCTExtensiontempfile=/tmp/cmt.$$
endif
${CMTROOT}/${CMTBIN}/cmt.exe cleanup -csh -pack=SCTExtension -version=SCTExtension-r652903 -path=/afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance -quiet -without_version_directory $* >${cmtSCTExtensiontempfile}
if ( $status != 0 ) then
echo "${CMTROOT}/${CMTBIN}/cmt.exe cleanup -csh -pack=SCTExtension -version=SCTExtension-r652903 -path=/afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance -quiet -without_version_directory $* >${cmtSCTExtensiontempfile}"
set cmtcleanupstatus=2
/bin/rm -f ${cmtSCTExtensiontempfile}
unset cmtSCTExtensiontempfile
exit $cmtcleanupstatus
endif
set cmtcleanupstatus=0
source ${cmtSCTExtensiontempfile}
if ( $status != 0 ) then
set cmtcleanupstatus=2
endif
/bin/rm -f ${cmtSCTExtensiontempfile}
unset cmtSCTExtensiontempfile
exit $cmtcleanupstatus
# echo "cleanup SCTExtension SCTExtension-r652903 in /afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance"
if test "${CMTROOT}" = ""; then
CMTROOT=/cvmfs/atlas.cern.ch/repo/sw/software/x86_64-slc6-gcc48-opt/20.0.0/CMT/v1r25p20140131; export CMTROOT
fi
. ${CMTROOT}/mgr/setup.sh
cmtSCTExtensiontempfile=`${CMTROOT}/${CMTBIN}/cmt.exe -quiet build temporary_name`
if test ! $? = 0 ; then cmtSCTExtensiontempfile=/tmp/cmt.$$; fi
${CMTROOT}/${CMTBIN}/cmt.exe cleanup -sh -pack=SCTExtension -version=SCTExtension-r652903 -path=/afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance -quiet -without_version_directory $* >${cmtSCTExtensiontempfile}
if test $? != 0 ; then
echo >&2 "${CMTROOT}/${CMTBIN}/cmt.exe cleanup -sh -pack=SCTExtension -version=SCTExtension-r652903 -path=/afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance -quiet -without_version_directory $* >${cmtSCTExtensiontempfile}"
cmtcleanupstatus=2
/bin/rm -f ${cmtSCTExtensiontempfile}
unset cmtSCTExtensiontempfile
return $cmtcleanupstatus
fi
cmtcleanupstatus=0
. ${cmtSCTExtensiontempfile}
if test $? != 0 ; then
cmtcleanupstatus=2
fi
/bin/rm -f ${cmtSCTExtensiontempfile}
unset cmtSCTExtensiontempfile
return $cmtcleanupstatus
(i__main__
LogFile
p0
(dp1
S'_installed_files'
p2
(dp3
S'../../../../../../../../../cvmfs/atlas.cern.ch/repo/sw/software/x86_64-slc6-gcc47-opt/19.3.0/GAUDI/v25r3p1/GaudiPolicy/cmt/fragments/__init__.py'
p4
S'../../InstallArea/python/SCTExtension/__init__.py'
p5
sS'../../../SCTExtension/x86_64-slc6-gcc47-opt/libSCTExtension.so.debug'
p6
S'../../InstallArea/x86_64-slc6-gcc47-opt/lib/libSCTExtension.so.debug'
p7
sS'../../../SCTExtension/x86_64-slc6-gcc47-opt/libSCTExtension.so'
p8
S'../../InstallArea/x86_64-slc6-gcc47-opt/lib/libSCTExtension.so'
p9
sS'../../SCTExtension/genConf/SCTExtension'
p10
(dp11
S'../../../SCTExtension/genConf/SCTExtension/SCTExtensionConf.py'
p12
S'../../InstallArea/python/SCTExtension/SCTExtensionConf.py'
p13
sssb.
\ No newline at end of file
package SCTExtension
## author Valentina Cairo <valentina.maria.cairo@cern.ch>
private
#use xAODEventInfo xAODEventInfo-* Event/xAOD
use xAODTracking xAODTracking-* Event/xAOD
use TrkTrack TrkTrack-* Tracking/TrkEvent
use TrkMeasurementBase TrkMeasurementBase-* Tracking/TrkEvent
use InDetPrepRawData InDetPrepRawData-* InnerDetector/InDetRecEvent
use InDetRIO_OnTrack InDetRIO_OnTrack-* InnerDetector/InDetRecEvent
public
use AtlasPolicy AtlasPolicy-*
use GaudiInterface GaudiInterface-* External
use AthenaBaseComps AthenaBaseComps-* Control
# Declare the library:
library SCTExtension *.cxx components/*.cxx
apply_pattern component_library
# Install the jobOptions:
apply_pattern declare_joboptions files=*.py
# echo "setup SCTExtension SCTExtension-r652903 in /afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance"
if ( $?CMTROOT == 0 ) then
setenv CMTROOT /cvmfs/atlas.cern.ch/repo/sw/software/x86_64-slc6-gcc48-opt/20.0.0/CMT/v1r25p20140131
endif
source ${CMTROOT}/mgr/setup.csh
set cmtSCTExtensiontempfile=`${CMTROOT}/${CMTBIN}/cmt.exe -quiet build temporary_name`
if $status != 0 then
set cmtSCTExtensiontempfile=/tmp/cmt.$$
endif
${CMTROOT}/${CMTBIN}/cmt.exe setup -csh -pack=SCTExtension -version=SCTExtension-r652903 -path=/afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance -quiet -without_version_directory -no_cleanup $* >${cmtSCTExtensiontempfile}
if ( $status != 0 ) then
echo "${CMTROOT}/${CMTBIN}/cmt.exe setup -csh -pack=SCTExtension -version=SCTExtension-r652903 -path=/afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance -quiet -without_version_directory -no_cleanup $* >${cmtSCTExtensiontempfile}"
set cmtsetupstatus=2
/bin/rm -f ${cmtSCTExtensiontempfile}
unset cmtSCTExtensiontempfile
exit $cmtsetupstatus
endif
set cmtsetupstatus=0
source ${cmtSCTExtensiontempfile}
if ( $status != 0 ) then
set cmtsetupstatus=2
endif
/bin/rm -f ${cmtSCTExtensiontempfile}
unset cmtSCTExtensiontempfile
exit $cmtsetupstatus
# echo "setup SCTExtension SCTExtension-r652903 in /afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance"
if test "${CMTROOT}" = ""; then
CMTROOT=/cvmfs/atlas.cern.ch/repo/sw/software/x86_64-slc6-gcc48-opt/20.0.0/CMT/v1r25p20140131; export CMTROOT
fi
. ${CMTROOT}/mgr/setup.sh
cmtSCTExtensiontempfile=`${CMTROOT}/${CMTBIN}/cmt.exe -quiet build temporary_name`
if test ! $? = 0 ; then cmtSCTExtensiontempfile=/tmp/cmt.$$; fi
${CMTROOT}/${CMTBIN}/cmt.exe setup -sh -pack=SCTExtension -version=SCTExtension-r652903 -path=/afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance -quiet -without_version_directory -no_cleanup $* >${cmtSCTExtensiontempfile}
if test $? != 0 ; then
echo >&2 "${CMTROOT}/${CMTBIN}/cmt.exe setup -sh -pack=SCTExtension -version=SCTExtension-r652903 -path=/afs/cern.ch/user/v/vcairo/WorkVMM/Material/testPackage_20/InnerDetector/InDetPerformance -quiet -without_version_directory -no_cleanup $* >${cmtSCTExtensiontempfile}"
cmtsetupstatus=2
/bin/rm -f ${cmtSCTExtensiontempfile}
unset cmtSCTExtensiontempfile
return $cmtsetupstatus
fi
cmtsetupstatus=0
. ${cmtSCTExtensiontempfile}
if test $? != 0 ; then
cmtsetupstatus=2
fi
/bin/rm -f ${cmtSCTExtensiontempfile}
unset cmtSCTExtensiontempfile
return $cmtsetupstatus
SCTExtension-r652903
#--------------------------------------------------------------
# Private Application Configuration options
#--------------------------------------------------------------
# Full job is a list of algorithms
from AthenaCommon.AlgSequence import AlgSequence
job = AlgSequence()
# Add top algorithms to be run
from SCTExtension.SCTExtensionConf import SCTExtensionAlg
SCTExtension = SCTExtensionAlg( "SCTExtensionAlg" ) # 1 alg, named "MyNewPackage"
print SCTExtension
job += SCTExtension
#--------------------------------------------------------------
# Set output level threshold (DEBUG, INFO, WARNING, ERROR, FATAL)
#--------------------------------------------------------------
SCTExtension.OutputLevel = INFO
#--------------------------------------------------------------
# Event related parameters
#--------------------------------------------------------------
# Number of events to be processed (default is 10)
#theApp.EvtMax = 1
#=================================
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#include "SCTExtension/SCTExtensionAlg.h"
#include "GaudiKernel/MsgStream.h"
#include "xAODTracking/TrackParticleContainer.h"
#include "TrkTrack/Track.h"
#include "InDetPrepRawData/PixelCluster.h"
#include "TrkMeasurementBase/MeasurementBase.h"
#include "InDetRIO_OnTrack/PixelClusterOnTrack.h"
/////////////////////////////////////////////////////////////////////////////
SCTExtensionAlg::SCTExtensionAlg(const std::string& name, ISvcLocator* pSvcLocator) :
AthAlgorithm(name, pSvcLocator)
{
// Properties go here
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
StatusCode SCTExtensionAlg::initialize(){
ATH_MSG_INFO ("initialize()");
return StatusCode::SUCCESS;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
StatusCode SCTExtensionAlg::execute() {
const std::string pixelTracklets="InDetPixelTrackParticles";
const std::string tracks="InDetTrackParticles";
StatusCode sc;
const xAOD::TrackParticleContainer* tracklets;
const xAOD::TrackParticleContainer* trks;
sc=evtStore()->retrieve(tracklets,pixelTracklets);
if (sc.isFailure())
{
ATH_MSG_ERROR("Could not retrieve pixel tracklets");
return StatusCode::FAILURE;
}
sc=evtStore()->retrieve(trks,tracks);
if (sc.isFailure())
{
ATH_MSG_ERROR("Could not retrieve tracks");
return StatusCode::FAILURE;
}
xAOD::TrackParticleContainer::const_iterator mytracklet;
int n_tracks=0;
int n_tracklets=0;
for (mytracklet = tracklets->begin(); mytracklet != tracklets->end(); mytracklet++) // Loop over tracklets
{
n_tracklets++;
int nSharedHits=0;
xAOD::TrackParticle* trackletParticle = const_cast<xAOD::TrackParticle*>(*mytracklet);
const Trk::Track* tracklet = trackletParticle->track();
if(!tracklet)
return StatusCode::FAILURE;
std::vector<const InDet::PixelCluster*> tracklet_pixelClusters;
const DataVector<const Trk::MeasurementBase>* tracklet_measurements = tracklet->measurementsOnTrack();
for ( auto tracklet_measurement : *tracklet_measurements )
{
// find out if it is a pixel hit
const InDet::PixelClusterOnTrack* pixelClusterOnTracklet = dynamic_cast<const InDet::PixelClusterOnTrack*>(tracklet_measurement);
if( pixelClusterOnTracklet )
{
//Go back to the original pixel cluster
const InDet::PixelCluster* tracklet_pixelCluster = dynamic_cast<const InDet::PixelCluster*>( pixelClusterOnTracklet->prepRawData() );
if( tracklet_pixelCluster )
{
// This is the pixel cluster that you would like to check if it contained in the other tracklet.
// to avoid doing this loop multiple time then would store these is a vector
tracklet_pixelClusters.push_back(tracklet_pixelCluster);
}
} // End: tracklet_PixelCluster
} // End: tracklet_Measurements
xAOD::TrackParticleContainer::const_iterator mytrack;
for (mytrack = trks->begin(); mytrack != trks->end(); mytrack++) // Loop over tracks for each tracklet
{
n_tracks++;
xAOD::TrackParticle* trackParticle = const_cast<xAOD::TrackParticle*>(*mytrack);
const Trk::Track* track = trackParticle->track();
if(!track)
return StatusCode::FAILURE;
std::vector<const InDet::PixelCluster*> pixelClusters;
const DataVector<const Trk::MeasurementBase>* measurements = track->measurementsOnTrack();
for ( auto measurement : *measurements )
{
// find out if it is a pixel hit
const InDet::PixelClusterOnTrack* pixelClusterOnTrack = dynamic_cast<const InDet::PixelClusterOnTrack*>(measurement);
if( pixelClusterOnTrack )
{
//Go back to the original pixel cluster
const InDet::PixelCluster* pixelCluster = dynamic_cast<const InDet::PixelCluster*>( pixelClusterOnTrack->prepRawData() );
if( pixelCluster )
{
// This is the pixel cluster that you would like to check if it contained in the other track.
// to avoid doing this loop multiple time then would store these is a vector
pixelClusters.push_back(pixelCluster);
}
} // End: PixelCluster
} // End: Measurements
int n_corr=0;
for (unsigned int i = 0; i < pixelClusters.size(); i++)
{
if ( std::find(tracklet_pixelClusters.begin(),tracklet_pixelClusters.end(),pixelClusters[i]) != tracklet_pixelClusters.end() )
n_corr++;
}
if (n_corr>0)
{
nSharedHits=n_corr;
//std::cout<< "=========>>>>>>>>n_corr>0!!!!!!!! n_corr=" << n_corr << std::endl;
ElementLink< xAOD:: TrackParticleContainer > eLink( *trks, trackParticle->index());
eLink.toPersistent();
(*mytracklet)->auxdecor< ElementLink< xAOD:: TrackParticleContainer > >("MatchedTrackLink") = eLink;
break; //??? how many n_corr?
}
} // End: Loop over tracks for each tracklet
(*mytracklet)->auxdecor<int>("MatchedTrackSharedHits") = nSharedHits;
} // End: Loop over tracklets
if (n_tracks==0 || n_tracklets==0) std::cout<< "=========>>>>>>>>n_tracklets=" << n_tracklets << " =========>>>>>>>>n_tracks="<< n_tracks << std::endl;
ATH_MSG_DEBUG ("Your new package and algorithm are successfully executing");
return StatusCode::SUCCESS;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
StatusCode SCTExtensionAlg::finalize() {
ATH_MSG_INFO ("finalize()");
return StatusCode::SUCCESS;
}
#include "SCTExtension/SCTExtensionAlg.h"
#include "GaudiKernel/DeclareFactoryEntries.h"
DECLARE_ALGORITHM_FACTORY( SCTExtensionAlg )
DECLARE_FACTORY_ENTRIES(SCTExtension) {
DECLARE_ALGORITHM( SCTExtensionAlg )
}
#include "GaudiKernel/LoadFactoryEntries.h"
LOAD_FACTORY_ENTRIES(SCTExtension)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment