diff --git a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/CMakeLists.txt deleted file mode 100644 index 6318c0d4550f0f08381f7e5b64fa7eb27d7d1f9b..0000000000000000000000000000000000000000 --- a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/CMakeLists.txt +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Package: TrigL2SiTrackFinder -################################################################################ - -# Declare the package name: -atlas_subdir( TrigL2SiTrackFinder ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/IRegionSelector - GaudiKernel - Tracking/TrkEvent/TrkTrack - Trigger/TrigEvent/TrigInDetEvent - Trigger/TrigEvent/TrigSteeringEvent - Trigger/TrigSteer/TrigInterfaces - InnerDetector/InDetConditions/BeamSpotConditionsData - PRIVATE - Control/CxxUtils - Control/StoreGate - InnerDetector/InDetDetDescr/InDetIdentifier - InnerDetector/InDetRecEvent/InDetPrepRawData - InnerDetector/InDetRecEvent/InDetRIO_OnTrack - Tracking/TrkTools/TrkToolInterfaces - Trigger/TrigTools/TrigInDetRecoTools - Trigger/TrigTools/TrigInDetToolInterfaces - Trigger/TrigTools/TrigSiSpacePointTool - Trigger/TrigTools/TrigTimeAlgs ) - -# External dependencies: -find_package( tdaq-common ) - -# Component(s) in the package: -atlas_add_component( TrigL2SiTrackFinder - src/*.cxx - src/components/*.cxx - INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} IRegionSelector GaudiKernel TrkTrack TrigInDetEvent TrigSteeringEvent TrigInterfacesLib StoreGateLib SGtests InDetIdentifier InDetPrepRawData InDetRIO_OnTrack TrkToolInterfaces TrigTimeAlgsLib ) - -# Install files from the package: -atlas_install_headers( TrigL2SiTrackFinder ) -atlas_install_python_modules( python/*.py ) - diff --git a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/TrigL2SiTrackFinder/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/TrigL2SiTrackFinder/ATLAS_CHECK_THREAD_SAFETY deleted file mode 100644 index 4b0632a32dfa03d4bcf4419526310dbaf1b4c5d0..0000000000000000000000000000000000000000 --- a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/TrigL2SiTrackFinder/ATLAS_CHECK_THREAD_SAFETY +++ /dev/null @@ -1 +0,0 @@ -Trigger/TrigAlgorithms/TrigL2SiTrackFinder diff --git a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/TrigL2SiTrackFinder/TrigL2SiTrackFinder.h b/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/TrigL2SiTrackFinder/TrigL2SiTrackFinder.h deleted file mode 100755 index 76521384fbe89ea78cbb7bdbb8a270d7a55faa4f..0000000000000000000000000000000000000000 --- a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/TrigL2SiTrackFinder/TrigL2SiTrackFinder.h +++ /dev/null @@ -1,327 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -//////////////////////////////////////////////////////////////////////////////// -// -// filename: TrigL2SiTrackFinder.h -// -// Description: a part of L2STAR project -// -// date: 20/07/2010 -// -// ------------------------------- -// ATLAS Collaboration -//////////////////////////////////////////////////////////////////////////////// - -#ifndef TRIGL2SITRACKFINDER_TRIGL2SITRACKFINDER_H -#define TRIGL2SITRACKFINDER_TRIGL2SITRACKFINDER_H - -#include<string> -#include<vector> -#include<algorithm> - -#include "GaudiKernel/ToolHandle.h" -#include "TrigInterfaces/FexAlgo.h" -#include "TrigInDetEvent/TrigSiSpacePoint.h" -#include "TrigInDetEvent/TrigSiSpacePointCollection.h" -#include "TrigInDetEvent/TrigInDetTrackCollection.h" -#include "TrigSteeringEvent/TrigRoiDescriptor.h" - -#include "TrkTrack/TrackCollection.h" -#include "TrkTrack/Track.h" - -#include "IRegionSelector/RoiUtil.h" -#include "BeamSpotConditionsData/BeamSpotData.h" - -class ISpacePointProvider; -class ITrigInDetTrackFitter; -class ITrigTRT_TrackExtensionTool; -class ITrigL2ResidualCalculator; -class IRegSelSvc; -class EventID; -class ITrigL2PattRecoStrategy; -class SCT_ID; -class PixelID; -class IRoiDescriptor; - -namespace Trk { - class ITrackSummaryTool; -} - - -/// just until we can change the TrigRoiDescriptor header -// bool roiContainsZed( const IRoiDescriptor& roi, double _z, double _r ); -// bool roiContains( const IRoiDescriptor& roi, double z, double r, double phi); - - -class TrigL2SiTrackFinder : public HLT::FexAlgo -{ - - class BaseSpacePointFilter { - public: - BaseSpacePointFilter(std::vector<const TrigSiSpacePoint*>& vec) : m_vec(vec){}; - virtual ~BaseSpacePointFilter(){}; - virtual void operator()(const TrigSiSpacePoint*) = 0; - int vectorSize() { - return m_vec.size(); - } - protected: - std::vector<const TrigSiSpacePoint*>& m_vec; - }; - - class FullScanFilter : public BaseSpacePointFilter { - public: - FullScanFilter(std::vector<const TrigSiSpacePoint*>& vec) : BaseSpacePointFilter(vec) {}; - virtual void operator()(const TrigSiSpacePoint* p) { - m_vec.push_back(p); - } - }; - - class StandardRoI_Filter : public BaseSpacePointFilter { - public: - StandardRoI_Filter(std::vector<const TrigSiSpacePoint*>& vec, double min, double max) : BaseSpacePointFilter(vec), - m_roiPhiMin(min), m_roiPhiMax(max) {}; - virtual void operator()(const TrigSiSpacePoint* p) { - // std::cout<<"r="<<p->r()<<" orig r="<<p->original_r()<<" phi="<<p->phi()<<" orig phi="<<p->original_phi()<<std::endl; - if( p->original_phi() > m_roiPhiMin && p->original_phi() < m_roiPhiMax) m_vec.push_back(p); - } - private: - double m_roiPhiMin, m_roiPhiMax; - }; - - class BoundaryRoI_Filter : public BaseSpacePointFilter { - public: - BoundaryRoI_Filter(std::vector<const TrigSiSpacePoint*>& vec, double min, double max) : BaseSpacePointFilter(vec), - m_roiPhiMin(min), m_roiPhiMax(max) {}; - virtual void operator()(const TrigSiSpacePoint* p) { - //std::cout<<"*r="<<p->r()<<" orig r="<<p->original_r()<<" phi="<<p->phi()<<" orig phi="<<p->original_phi()<<std::endl; - if( p->original_phi() > m_roiPhiMin || p->original_phi() < m_roiPhiMax) m_vec.push_back(p); - } - private: - double m_roiPhiMin, m_roiPhiMax; - }; - - - - - class RoI_Filter : public BaseSpacePointFilter { - public: - RoI_Filter(std::vector<const TrigSiSpacePoint*>& vec, const IRoiDescriptor* roi ) - : BaseSpacePointFilter(vec), - m_roi(roi) { } - virtual void operator()(const TrigSiSpacePoint* p) { - /// this is a hack for filtering in phi *and* r-z, but only until - /// we are allowed to modify the *RoiDescriptor headers - if( RoiUtil::contains( *m_roi, p->z(), p->original_r(), p->original_phi() ) ) m_vec.push_back(p); - /// filter on phi only for the time being - // if( m_roi->containsPhi( p->original_phi() ) ) m_vec.push_back(p); - } - private: - const IRoiDescriptor* m_roi; - }; - - - - - template < typename T> class SpacePointSelector { - public: - SpacePointSelector(T& t) : m_filter(t), m_pIDC(nullptr) {}; - SpacePointSelector() = delete; - ~SpacePointSelector(){}; - void operator() (int id) { - TrigSiSpacePointContainer::const_iterator collIt = m_pIDC->indexFind(id); - if(collIt!=m_pIDC->end()) { - std::for_each((*collIt)->begin(),(*collIt)->end(),m_filter); - } - } - int select(const TrigSiSpacePointContainer* p, const std::vector<int>& idVec) { - m_pIDC=p; - int ret = m_filter.vectorSize(); - std::for_each(idVec.begin(),idVec.end(),*this); - return m_filter.vectorSize()-ret; - } - - private: - T& m_filter; - const TrigSiSpacePointContainer* m_pIDC; - }; - - - - public: - - TrigL2SiTrackFinder(const std::string& name, ISvcLocator* pSvcLocator); - ~TrigL2SiTrackFinder(); - - HLT::ErrorCode hltInitialize(); - HLT::ErrorCode hltFinalize(); - HLT::ErrorCode hltStart(); - - HLT::ErrorCode hltExecute(const HLT::TriggerElement* inputTE, - HLT::TriggerElement* outputTE); - - private: - - // AlgTools and Services - - ToolHandle<ISpacePointProvider> m_spacePointProvider; - ToolHandle<ITrigInDetTrackFitter> m_trigInDetTrackFitter; - ToolHandle<ITrigTRT_TrackExtensionTool> m_trigTRT_TrackExtensionTool; - ToolHandle<ITrigL2ResidualCalculator> m_trigL2ResidualCalculator; - - - ToolHandle<ITrigL2PattRecoStrategy> m_recoStrategy; - ToolHandle< Trk::ITrackSummaryTool > m_trackSummaryTool; - const PixelID* m_pixelId; - const SCT_ID* m_sctId; - - - // Control flags - - bool m_useBeamSpot; - bool m_fullScanMode; - bool m_vertexSeededMode; - bool m_doTrackFit; - bool m_doShift;//must be m_doCosmic ? - bool m_doTRTpropagation; - bool m_printDiagnosticMessages; - bool m_adjustLayerThreshold; - bool m_doResMonitoring; - bool m_attachVertices; - - // Cuts - - int m_minHits; - - // RoI parameters - - //bool m_generateRoI; - bool m_useRoiDescriptorWidths; - double m_etaHalfWidth; - double m_phiHalfWidth; - - // RoI features - - // Names of IDCs with input data - - std::string m_pixelSpContName, m_sctSpContName; - - // IDCs with input data - - const TrigSiSpacePointContainer* m_pixelSpacePointsContainer; - const TrigSiSpacePointContainer* m_sctSpacePointsContainer; - - // Internal representation of input data, for example vector of SPs - - std::vector< const TrigSiSpacePoint* > m_filteredSpacePoints; - - // Reconstructed tracks - - TrigInDetTrackCollection* m_recoTracks; - TrackCollection* m_recoTrkTracks; - - std::string m_regionSelectorName; - IRegSelSvc* m_regionSelector; - - SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }; - - // Data members for monitoring - - float m_nStraw_TRT; - float m_nTR_TRT; - int m_ntracks; - int m_nPixSPsInRoI; // Total number of (filtered) pixel SPs in the RoI - int m_nSCTSPsInRoI; // Total number of (filtered) SCT SPs in the RoI - int m_currentStage; // The last stage reached during the processing of a given RoI - - int m_roi_nSPs; - - double m_roiPhi, m_roiEta; - double m_roiPhiWidth, m_roiEtaWidth; - - int m_nZvertices; //Total number of z-vertices used by patt.reco strategy - std::vector<float> m_zVertices; //vector with reconstructed z-vertex positions - - std::vector<double> m_a0beam; - std::vector<double> m_trkdPhi0, m_trkdEta; - - std::vector<double> m_sp_x, m_sp_y, m_sp_z, m_sp_r; - - std::vector<double> m_pixResPhiBarrel; - std::vector<double> m_pixResEtaBarrel; - std::vector<double> m_pixPullPhiBarrel; - std::vector<double> m_pixPullEtaBarrel; - std::vector<double> m_sctResBarrel; - std::vector<double> m_sctPullBarrel; - std::vector<double> m_pixResPhiEC; - std::vector<double> m_pixResEtaEC; - std::vector<double> m_pixPullPhiEC; - std::vector<double> m_pixPullEtaEC; - std::vector<double> m_sctResEC; - std::vector<double> m_sctPullEC; - - std::vector<int> m_dataErrors; - std::vector<int> m_pixelDataErrors; - std::vector<int> m_sctDataErrors; - std::vector<int> m_trtDataErrors; - - // Monitoring member functions - - static inline double monPt(const TrigInDetTrack *t){return t->param()->pT(); } - static inline double monA0(const TrigInDetTrack *t){return t->param()->a0(); } - static inline double monZ0(const TrigInDetTrack *t){return t->param()->z0(); } - static inline double monPhi0(const TrigInDetTrack *t){return t->param()->phi0();} - static inline double monEta(const TrigInDetTrack *t){return t->param()->eta(); } - static inline double monNHit_Si(const TrigInDetTrack *t){return t->siSpacePoints()->size();} - static inline double monChi2(const TrigInDetTrack *t){return (t->chi2()>9e7)?-9.9:t->chi2();} - - // Timers - - TrigTimer* m_SpacePointReaderTimer; - TrigTimer* m_PatternRecoTimer; - TrigTimer* m_TrackFitterTimer; - TrigTimer* m_TrtExtensionTimer; - - // Other member functions - - // void storeInfo(double, HLT::TriggerElement*); - - HLT::ErrorCode retrieveSpacePointsContainers(); - - void setup_detector_mask(const EventID*); - void convertToTrkTrack(const TrigInDetTrackCollection* oldTracks, - TrackCollection* fittedTracks) const; - int findMissingLayers(const double& , const double&, const double& , const double&); - int findMissingLayers(const TrigRoiDescriptor* roi); - void runResidualMonitoring(const TrigInDetTrack*); - - // Internal bookkeeping - - std::string m_instanceName, m_attachedFeatureName,m_attachedFeatureName2, - m_outputCollectionSuffix; - - unsigned int m_l1Id; - unsigned int m_countTotalEvents; - unsigned int m_countTotalRoI; - unsigned int m_countRoIwithEnoughHits; - unsigned int m_countRoIwithTracks; - - // Masking stuff - there might be a better place for these ... - - BooleanProperty m_check_detector_mask; - BooleanProperty m_detector_mask_on_event; - - bool m_detector_mask_not_checked; - bool m_hasPixelBarrel, m_hasPixelDisk, m_hasPixelBLayer; - bool m_hasSCTBarrelA, m_hasSCTEndcapA; - bool m_hasSCTBarrelC, m_hasSCTEndcapC; - - //Only print roi warning message once per event - bool m_roiWidthWarning=false; - bool m_roiForIDWarning=false; - -}; - -#endif // TRIGL2SITRACKFINDER_TRIGL2SITRACKFINDER_H - diff --git a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/python/TrigL2SiTrackFinder_Config.py b/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/python/TrigL2SiTrackFinder_Config.py deleted file mode 100755 index 105651860d001ad7610d9f3ae5a6678aaf521fbc..0000000000000000000000000000000000000000 --- a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/python/TrigL2SiTrackFinder_Config.py +++ /dev/null @@ -1,618 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -from TrigL2SiTrackFinder.TrigL2SiTrackFinderConf import TrigL2SiTrackFinder - -from TrigOnlineSpacePointTool.TrigOnlineSpacePointTool_Config import ConfiguredOnlineSpacePointProviderTool -from TrigTRT_TrackExtensionTool.TrigTRT_TrackExtensionToolConf import TrigTRT_TrackExtensionTool -from TrigTRT_TrackExtensionTool.TrigTRT_TrackExtensionTool_Config import TrigTRT_TrackExtensionTool_eGamma -from TrigInDetTrackFitter.TrigInDetTrackFitterConf import TrigInDetTrackFitter -from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig -from TrigInDetTrackFitter.TrigInDetTrackFitterConf import TrigL2ResidualCalculator - -from TrigInDetRecoTools.TrigInDetRecoTools_Config import TrigL2PattRecoStrategyFactory -from TriggerJobOpts.TriggerFlags import TriggerFlags - -strFactory = TrigL2PattRecoStrategyFactory() - -from AthenaCommon.AppMgr import ToolSvc - -ospTool = ConfiguredOnlineSpacePointProviderTool(doBS=TriggerFlags.doTransientByteStream()) -trtTool = TrigTRT_TrackExtensionTool(OfflineClusters=False, PtCut=2500.0) -trackFitter = TrigInDetTrackFitter(OfflineClusters=False) -resCalc = TrigL2ResidualCalculator(OfflineClusters=False) - -ToolSvc += ospTool -ToolSvc += trtTool -ToolSvc += trackFitter -ToolSvc += resCalc - -from TrigMonitorBase.TrigGenericMonitoringToolConfig import defineHistogram, TrigGenericMonitoringToolConfig - -#Monitoring -class TrigL2SiTrackFinder_CommonMonitoring(TrigGenericMonitoringToolConfig): - def __init__ (self, name="TrigL2SiTrackFinder_OnlineMonitoring"): - super(TrigL2SiTrackFinder_CommonMonitoring, self).__init__(name) - def addSPHistograms(self): - self.Histograms += [ defineHistogram('roi_nSPsPIX', - type='TH1F', - title="Number of Pixel SPs", - xbins = 500, xmin=-0.5, xmax=4999.5)] - self.Histograms += [ defineHistogram('roi_nSPsSCT', - type='TH1F', - title="Number of SCT SPs", - xbins = 500, xmin=-0.5, xmax=4999.5)] - self.Histograms += [ defineHistogram('roi_eta', - type='TH1F', - title="Eta of the input RoI", - xbins = 100, xmin=-5, xmax=5)] - self.Histograms += [ defineHistogram('roi_phi', - type='TH1F', - title="Phi of the input RoI", - xbins = 100, xmin=-3.2, xmax=3.2)] - self.Histograms += [ defineHistogram('roi_phiWidth', - type='TH1F', - title="Phi width of the input RoI", - xbins = 100, xmin=0, xmax=6.4)] - self.Histograms += [ defineHistogram('roi_etaWidth', - type='TH1F', - title="Eta width of the input RoI", - xbins = 100, xmin=0, xmax=5)] - def addDataErrorHistograms(self): - self.Histograms += [ defineHistogram('roi_lastStageExecuted', - type='TH1F', - title="Last Step Successfully Executed", - xbins = 8 , xmin=-0.5, xmax=7.5, - labels='Start : GetRoI : GetSPs : MissingLayers : ZFinder : Groups : TrackFit : Extend2TRT' ) ] - self.Histograms += [ defineHistogram('dataErrors', - type='TH1F', - title="Data Errors", - xbins = 4 , xmin=0., xmax=4., - labels='SP_Abort : SP_Recoverable : TRT_Abort : TRT_Recoverable' ) ] - # SCT Errors are defined in : InnerDetector/InDetConditions/SCT_ConditionsData/SCT_ConditionsData/SCT_ByteStreamErrors.h - self.Histograms += [ defineHistogram('dataErrors_SCT', - type='TH1F', - title="SCT Data Errors", - xbins = 14 , xmin=0., xmax=14, - labels='SCT_Decoding : SCT_TimeOut : SCT_BCID : SCT_LVL1ID : SCT_Preamble : SCT_Formatter : SCT_Trailer : SCT_TrailerOverFlow : SCT_HeaderTrailerLimit : SCT_ABCD : SCT_Raw : SCT_MaskedLink : SCT_RODClockError : SCT_TruncatedROD' ) ] - # PIX Errors are defined in : InnerDetector/InDetConditions/PixelConditionsServices/PixelConditionsServices/IPixelByteStreamErrorsSvc.h - self.Histograms += [ defineHistogram('dataErrors_PIX', - type='TH1F', - title="Pixel Data Errors", - xbins = 9 , xmin=0., xmax=9., - labels='PIX_TimeOut : PIX_BCID : PIX_LVL1ID : PIX_Preamble : PIX_Trailer : PIX_Flagged : PIX_DisabledFE : PIX_TruncatedROD : PIX_Decoding')] - # TRT Errors are defined in : InnerDetector/InDetConditions/TRT_ConditionsServices/src/TRT_ByteStream_ConditionsSvc.cxx - self.Histograms += [ defineHistogram('dataErrors_TRT', - type='TH1F', - title="TRT Data Errors", - xbins = 6 , xmin=0., xmax=6., - labels='TRT_LVL1ID : TRT_BCID : TRT_MISSING : TRT_ERROR : TRT_SID : TRT_ROB')] - def addSiTimingHistograms(self,nbin,min,max): - self.Histograms += [ defineHistogram('time_SiDataRegSel', - type='TH1F', - title="RegSel Time Pixel and SCT", - xbins = nbin , xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_SiDataTotal', - type='TH1F', - title="SiDataPreparation Total", - xbins = nbin , xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_PIXSPFormation', - type='TH1F', - title="SP formation time Pixel", - xbins = nbin , xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_SCTSPFormation', - type='TH1F', - title="SP formation time SCT", - xbins = nbin , xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_PIXBStoClusters', - type='TH1F', - title="BS-to-Clusters Pixel", - xbins = nbin , xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_SCTBStoClusters', - type='TH1F', - title="BS-to-Clusters SCT", - xbins = nbin , xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('roi_nSPs , time_PattRecoOnly', - type='TH2F', - title="PattReco time vs nSPs", - xbins = 200 , xmin=0.0, xmax=3000.0, - ybins = 100 , ymin=0.0, ymax=200.0)] - self.Histograms += [ defineHistogram('roi_nTracks , time_PattRecoOnly', - type='TH2F', - title="PattReco time vs nTracks", - xbins = 50 , xmin=0.0, xmax=200.0, - ybins = 100 , ymin=0.0, ymax=200.0)] - self.Histograms += [ defineHistogram('roi_nZvertices , time_PattRecoOnly', - type='TH2F', - title="PattReco time vs nZvertices", - xbins = 10 , xmin=-0.5, xmax=9.5, - ybins = 200 , ymin=0.0, ymax=100.0)] - self.Histograms += [ defineHistogram('roi_zVertices', - type='TH1F', - title="ZFinder Vertices", - xbins = 401, xmin=-200, xmax=200)] - self.Histograms += [ defineHistogram('time_PattRecoOnly', - type='TH1F', - title="Pure PattReco time", - xbins = nbin , xmin=0.0, xmax=200.0)] - - def addTRTTimingHistograms(self,nbin,min,max): - self.Histograms += [ defineHistogram('time_TRTDataPrep', - type='TH1F', - title="TRT DataPrep total time", - xbins = nbin, xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_TRTBStoDC', - type='TH1F', - title="BS-to-DriftCircles TRT", - xbins = nbin, xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_TRTRobProv', - type='TH1F', - title="RobDataProvider time TRT", - xbins = nbin , xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_TRTDataTotal', - type='TH1F', - title="TRT DataProvider Time", - xbins = nbin, xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_TRTRobPreload', - type='TH1F', - title="TRT RobPreloader Time", - xbins = nbin, xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_TRTRoads', - type='TH1F', - title="TRT Roads", - xbins = nbin , xmin=min, xmax=max)] - self.Histograms += [ defineHistogram('time_TRTPDAF', - type='TH1F', - title="TRT PDAF Tracking", - xbins = nbin , xmin=min, xmax=max)] - def addTrackHistograms(self): - self.Histograms += [ defineHistogram('trk_nSiHits', - type='TH1F', - title="Total number of Silicon Hits per Track", - xbins = 20, xmin=-0.5, xmax=19.5)] - self.Histograms += [ defineHistogram('trk_nPIXHits', - type='TH1F', - title="Number of Pixel Hits per Track", - xbins = 10, xmin=-0.5, xmax=9.5)] - self.Histograms += [ defineHistogram('trk_nSCTHits', - type='TH1F', - title="Number of SCT Hits per Track", - xbins = 10, xmin=-0.5, xmax=9.5)] - self.Histograms += [ defineHistogram('trk_nTRTHits', - type='TH1F', - title="Number of TRT Hits per Track", - xbins = 100, xmin=-0.5, xmax=99.5)] - self.Histograms += [ defineHistogram('trk_nTRTStraws', - type='TH1F', - title="NStraw_TRT", - xbins = 100, xmin=-0.5, xmax=99.5)] - self.Histograms += [ defineHistogram('trk_chi2dof', - type='TH1F', - title="ChiSqd / nDoF", - xbins = 100, xmin=0.0, xmax=5)] - self.Histograms += [ defineHistogram('trk_pt', - type='TH1F', - title="pt", - xbins = 100, xmin=0.0, xmax=40000)] - self.Histograms += [ defineHistogram('trk_phi0', - type='TH1F', - title="phi", - xbins = 100, xmin=-3.2, xmax=3.2)] - self.Histograms += [ defineHistogram('trk_eta', - type='TH1F', - title="eta", - xbins = 100, xmin=-5, xmax=5)] - self.Histograms += [ defineHistogram('trk_dPhi0', - type='TH1F', - title="dphi", - xbins = 160, xmin=-0.8, xmax=0.8)] - self.Histograms += [ defineHistogram('trk_dEta', - type='TH1F', - title="deta", - xbins = 160, xmin=-0.8, xmax=0.8)] - - self.Histograms += [ defineHistogram('roi_nZvertices', - type='TH1F', - title="ZFinder Number of Vertices", - xbins = 10, xmin=-0.5, xmax=9.5)] - - self.Histograms += [ defineHistogram('sp_x , sp_y', - type='TH2F', - title="Spacepoints-on-track xy", - xbins = 200 , xmin=-600.0, xmax=600.0, - ybins = 200 , ymin=-600.0, ymax=600.0)] - - self.Histograms += [ defineHistogram('sp_z , sp_r', - type='TH2F', - title="Spacepoints-on-track rz", - xbins = 400 , xmin=-2800.0, xmax=2800.0, - ybins = 100 , ymin=0.0, ymax=600.0)] - -# self.Histograms += [ defineHistogram('roi_ZvrtxPos', -# type='TH1F', -# title="Z Position of Vertex", -# xbins = 100, xmin=-400., xmax=400.)] -# self.Histograms += [ defineHistogram('roi_SPxShift', -# type='TH1F', -# title="x-shift applied to SPs", -# xbins = 100, xmin=-1000., xmax=1000.)] - - def addResidualHistograms(self): - self.Histograms += [ defineHistogram('hit_PIXBarrelPhiResidual', - type='TH1F', - title="Pixel Barrel hit-track phi residual", - xbins = 100, xmin=-0.5, xmax=0.5)] - self.Histograms += [ defineHistogram('hit_PIXBarrelEtaResidual', - type='TH1F', - title="Pixel Barrel hit-track eta residual", - xbins = 100, xmin=-1.0, xmax=1.0)] - self.Histograms += [ defineHistogram('hit_PIXBarrelPhiPull', - type='TH1F', - title="Pixel Barrel hit-track phi pull", - xbins = 100, xmin=-5., xmax=5.)] - self.Histograms += [ defineHistogram('hit_PIXBarrelEtaPull', - type='TH1F', - title="Pixel Barrel hit-track eta pull", - xbins = 100, xmin=-5., xmax=5.)] - self.Histograms += [ defineHistogram('hit_SCTBarrelResidual', - type='TH1F', - title="SCT Barrel hit-track residual", - xbins = 100, xmin=-0.5, xmax=0.5)] - self.Histograms += [ defineHistogram('hit_SCTBarrelPull', - type='TH1F', - title="SCT Barrel hit-track pull", - xbins = 100, xmin=-5., xmax=5.)] - self.Histograms += [ defineHistogram('hit_PIXEndCapPhiResidual', - type='TH1F', - title="Pixel EC hit-track phi residual", - xbins = 100, xmin=-0.5, xmax=0.5)] - self.Histograms += [ defineHistogram('hit_PIXEndCapEtaResidual', - type='TH1F', - title="Pixel EC hit-track eta residual", - xbins = 100, xmin=-1.0, xmax=1.0)] - self.Histograms += [ defineHistogram('hit_PIXEndCapPhiPull', - type='TH1F', - title="Pixel EC hit-track phi pull", - xbins = 100, xmin=-5., xmax=5.)] - self.Histograms += [ defineHistogram('hit_PIXEndCapEtaPull', - type='TH1F', - title="Pixel EC hit-track eta pull", - xbins = 100, xmin=-5., xmax=5.)] - self.Histograms += [ defineHistogram('hit_SCTEndCapResidual', - type='TH1F', - title="SCT EC hit-track residual", - xbins = 100, xmin=-1.0, xmax=1.0)] - self.Histograms += [ defineHistogram('hit_SCTEndCapPull', - type='TH1F', - title="SCT EC hit-track pull", - xbins = 100, xmin=-5., xmax=5.)] - -class TrigL2SiTrackFinder_OnlineMonitoring(TrigL2SiTrackFinder_CommonMonitoring): - def __init__ (self, name="TrigL2SiTrackFinder_OnlineMonitoring", resHistos=False): - super(TrigL2SiTrackFinder_OnlineMonitoring, self).__init__(name) - self.defineTarget("Online") - self.addSPHistograms() - self.addDataErrorHistograms() -# self.addSiTimingHistograms(250,0.,250.) -# self.addTRTTimingHistograms(250,0.,100.) - self.addTrackHistograms() - - if resHistos : - self.addResidualHistograms() - self.Histograms += [ defineHistogram('trk_a0', - type='TH1F', - title="a0", - xbins = 200, xmin=-10, xmax=10)] - self.Histograms += [ defineHistogram('trk_a0beam', - type='TH1F', - title="a0beam", - xbins = 200, xmin=-10, xmax=10)] - self.Histograms += [ defineHistogram('trk_z0', - type='TH1F', - title="z0", - xbins = 200, xmin=-400, xmax=400)] - self.Histograms += [ defineHistogram('roi_nTracks', - type='TH1F', - title="Number of Tracks", - xbins = 100, xmin=-0.5, xmax=99.5)] - - -class TrigL2SiTrackFinder_ValidationMonitoring(TrigL2SiTrackFinder_CommonMonitoring): - def __init__ (self, name="TrigL2SiTrackFinder_ValidationMonitoring", resHistos=False): - super(TrigL2SiTrackFinder_ValidationMonitoring, self).__init__(name) - self.defineTarget("Validation") - self.addSPHistograms() - self.addDataErrorHistograms() - self.addSiTimingHistograms(150,0.,150.) - self.addTRTTimingHistograms(250,0.,100.) - self.addTrackHistograms() - - if resHistos : - self.addResidualHistograms() - self.Histograms += [ defineHistogram('trk_a0', - type='TH1F', - title="a0", - xbins = 200, xmin=-10, xmax=10)] - self.Histograms += [ defineHistogram('trk_a0beam', - type='TH1F', - title="a0beam", - xbins = 200, xmin=-10, xmax=10)] - self.Histograms += [ defineHistogram('trk_z0', - type='TH1F', - title="z0", - xbins = 200, xmin=-400, xmax=400)] - self.Histograms += [ defineHistogram('roi_nTracks', - type='TH1F', - title="Number of Tracks", - xbins = 200, xmin=-0.5, xmax=199.5)] - - -#Cosmic Monitoring -class TrigL2SiTrackFinder_Cosmic_Monitoring(TrigL2SiTrackFinder_CommonMonitoring): - def __init__ (self, name="TrigL2SiTrackFinder_Cosmic_Monitoring", resHistos=False): - super(TrigL2SiTrackFinder_Cosmic_Monitoring, self).__init__(name) - self.defineTarget("Cosmic") - self.addSPHistograms() - self.addDataErrorHistograms() - self.addSiTimingHistograms(250,0.,50.) - self.addTRTTimingHistograms(250,0.,100.) - self.addTrackHistograms() - - if resHistos : - self.addResidualHistograms() - self.Histograms += [ defineHistogram('trk_a0', - type='TH1F', - title="a0", - xbins = 100, xmin=-300, xmax=300)] - self.Histograms += [ defineHistogram('trk_a0beam', - type='TH1F', - title="a0beam", - xbins = 100, xmin=-300, xmax=300)] - self.Histograms += [ defineHistogram('trk_z0', - type='TH1F', - title="z0", - xbins = 100, xmin=-800, xmax=800)] - self.Histograms += [ defineHistogram('roi_nTracks', - type='TH1F', - title="Number of Tracks", - xbins = 100, xmin=-0.5, xmax=99.5)] - - - - -class TrigL2SiTrackFinderBase(TrigL2SiTrackFinder): - __slots__ = [] - def __init__(self, instName, strName, phiHalfWidth = 0.1, etaHalfWidth = 0.1, doTRT = True, doRes = False, doTrackFit = True, doBrem = False ): - - name = "TrigL2SiTrackFinder_"+instName+strName - if doBrem : - name += "_Brem" - TrigL2SiTrackFinder.__init__(self,name) - - self.SpacePointProviderTool=ospTool - if instName=="FullScan" or instName=="BeamSpot" or instName=="FullScan_ZF_Only" : - self.FullScanMode = True - else : - self.FullScanMode = False - - self.phiHalfWidth = phiHalfWidth - self.etaHalfWidth = etaHalfWidth - self.MinHits = 5 - self.PrintDiagnosticMessages = False - self.doTrackFit = doTrackFit - self.doTRTpropagation = doTRT - self.useRoiDescriptorWidths = True - if instName=="Bphysics" : - self.useRoiDescriptorWidths = False - - self.OutputCollectionSuffix=instName - - self.attachVertices=False - if instName=="FullScan_ZF_Only" and strName=='A' : - self.attachVertices = True - - from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigFastTrackSummaryTool - self.TrackSummaryTool = InDetTrigFastTrackSummaryTool - - from AthenaCommon.AppMgr import ToolSvc - - strategy = strFactory.createStrategy(instName, strName, phiHalfWidth, etaHalfWidth) - ToolSvc += strategy - self.RecoStrategy = strategy - - if doBrem : - trtBrTool = TrigTRT_TrackExtensionTool_eGamma() - ToolSvc += trtBrTool - self.TrigTRT_TrackExtensionTool=trtBrTool - else : - self.TrigTRT_TrackExtensionTool=trtTool - - self.TrigInDetTrackFitter = trackFitter - self.TrigL2ResidualCalculator = resCalc - self.doResMonitoring = doRes - timeHist = TrigTimeHistToolConfig("Time") - timeHist.TimerHistLimits = [0,2000] - self.AthenaMonTools = [ TrigL2SiTrackFinder_ValidationMonitoring("TrigL2SiTrackFinder_ValidationMonitoring",self.doResMonitoring), - TrigL2SiTrackFinder_OnlineMonitoring("TrigL2SiTrackFinder_OnlineMonitoring",self.doResMonitoring), - timeHist ] - - - -class TrigL2SiTrackFinder_MuonA(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_MuonA"): - TrigL2SiTrackFinderBase.__init__(self, "Muon", "A", 0.1, 0.1, True, False, True) - - -class TrigL2SiTrackFinder_MuonB(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_MuonB"): - TrigL2SiTrackFinderBase.__init__(self, "Muon", "B", 0.1, 0.1, True, False, True) - - -class TrigL2SiTrackFinder_MuonC(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_MuonC"): - TrigL2SiTrackFinderBase.__init__(self, "Muon", "C", 0.1, 0.1, True, False, True) - - -class TrigL2SiTrackFinder_eGammaA(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_eGammaA"): - TrigL2SiTrackFinderBase.__init__(self, "eGamma", "A", 0.1, 0.1, True, False, True) - - -class TrigL2SiTrackFinder_eGammaB(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_eGammaB"): - TrigL2SiTrackFinderBase.__init__(self, "eGamma", "B", 0.1, 0.1, True, False, True) - - -class TrigL2SiTrackFinder_eGammaC(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_eGammaC"): - TrigL2SiTrackFinderBase.__init__(self, "eGamma", "C", 0.1, 0.1, True, False, True) - - -class TrigL2SiTrackFinder_eGammaA_Brem(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_eGammaA_Brem"): - TrigL2SiTrackFinderBase.__init__(self, "eGamma", "A", 0.1, 0.1, True, False, True, True) - -class TrigL2SiTrackFinder_JetA(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_JetA"): - TrigL2SiTrackFinderBase.__init__(self, "Jet", "A", 0.2, 0.2, True, False, True) - - -class TrigL2SiTrackFinder_JetB(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_JetB"): - TrigL2SiTrackFinderBase.__init__(self, "Jet", "B", 0.2, 0.2, True, False, True) - - -class TrigL2SiTrackFinder_JetC(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_JetC"): - TrigL2SiTrackFinderBase.__init__(self, "Jet", "C", 0.2, 0.2, True, False, True) - - -class TrigL2SiTrackFinder_TauA(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_TauA"): - TrigL2SiTrackFinderBase.__init__(self, "Tau", "A", 0.3, 0.3, True, False, True) - - -class TrigL2SiTrackFinder_TauB(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_TauB"): - TrigL2SiTrackFinderBase.__init__(self, "Tau", "B", 0.3, 0.3, True, False, True) - - -class TrigL2SiTrackFinder_TauC(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_TauC"): - TrigL2SiTrackFinderBase.__init__(self, "Tau", "C", 0.3, 0.3, True, False, True) - -class TrigL2SiTrackFinder_muonIsoA(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_muonIsoA"): - TrigL2SiTrackFinderBase.__init__(self, "muonIso", "A", 0.2, 0.2, True, False, True) - - -class TrigL2SiTrackFinder_muonIsoB(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_muonIsoB"): - TrigL2SiTrackFinderBase.__init__(self, "muonIso", "B", 0.2, 0.2, True, False, True) - - -class TrigL2SiTrackFinder_muonIsoC(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_muonIsoC"): - TrigL2SiTrackFinderBase.__init__(self, "muonIso", "C", 0.2, 0.2, True, False, True) - - -class TrigL2SiTrackFinder_BphysicsA(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_BphysicsA"): - TrigL2SiTrackFinderBase.__init__(self, "Bphysics", "A", 0.75, 0.75, True, False, True) - - -class TrigL2SiTrackFinder_BphysicsB(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_BphysicsB"): - TrigL2SiTrackFinderBase.__init__(self, "Bphysics", "B", 0.75, 0.75, True, False, True) - - -class TrigL2SiTrackFinder_BphysicsC(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_BphysicsC"): - TrigL2SiTrackFinderBase.__init__(self, "Bphysics", "C", 0.75, 0.75, True, False, True) - - -class TrigL2SiTrackFinder_FullScanA(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_FullScanA"): - TrigL2SiTrackFinderBase.__init__(self,"FullScan", "A", 3.14159265358, 3.0, True, False, True) - - -class TrigL2SiTrackFinder_FullScanB(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_FullScanB"): - TrigL2SiTrackFinderBase.__init__(self,"FullScan", "B", 3.14159265358, 3.0, True, False, True) - -class TrigL2SiTrackFinder_FullScanC(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_FullScanC"): - TrigL2SiTrackFinderBase.__init__(self,"FullScan", "C", 3.14159265358, 3.0, True, False, True) - - -class TrigL2SiTrackFinder_FullScan_ZF_OnlyA(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_FullScan_ZF_OnlyA"): - TrigL2SiTrackFinderBase.__init__(self,"FullScan_ZF_Only", "A", 3.14159265358, 3.0, False, False, False) - - -class TrigL2SiTrackFinder_BeamSpotA(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_BeamSpotA"): - TrigL2SiTrackFinderBase.__init__(self,"BeamSpot", "A", 3.14159265358, 3.0, False, False, True) - - -class TrigL2SiTrackFinder_BeamSpotB(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_BeamSpotB"): - TrigL2SiTrackFinderBase.__init__(self,"BeamSpot", "B", 3.14159265358, 3.0, False, False, True) - -class TrigL2SiTrackFinder_BeamSpotC(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_BeamSpotC"): - TrigL2SiTrackFinderBase.__init__(self,"BeamSpot", "C", 3.14159265358, 3.0, False, False, True) - - -#--- experimental 2-step tau reconstruction -class TrigL2SiTrackFinder_TauCoreB(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_TauCoreB"): - TrigL2SiTrackFinderBase.__init__(self, "TauCore", "B", 0.2, 0.2, True, False, True) - self.OutputCollectionSuffix="TauCoreB" - -class TrigL2SiTrackFinder_TauIsoB(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_TauIsoB"): - TrigL2SiTrackFinderBase.__init__(self, "TauIso", "B", 0.3, 0.3, True, False, True) - self.VertexSeededMode = True - - -#----------------- instances for FTK studies ----------------------------------------------------- - -class TrigL2SiTrackFinder_BeamSpotF(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_BeamSpotF"): - TrigL2SiTrackFinderBase.__init__(self,"BeamSpot", "F", 3.14159265358, 3.0, False, False, False) - -class TrigL2SiTrackFinder_FullScanF(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_FullScanF"): - TrigL2SiTrackFinderBase.__init__(self,"FullScan", "F", 3.14159265358, 3.0, False, False, False) - - -class TrigL2SiTrackFinder_muonIsoF(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_muonIsoF"): - TrigL2SiTrackFinderBase.__init__(self, "muonIso", "F", 0.2, 0.2, False, False, False) - -class TrigL2SiTrackFinder_MuonF(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_MuonF"): - TrigL2SiTrackFinderBase.__init__(self, "Muon", "F", 0.1, 0.1, False, False, False) - -class TrigL2SiTrackFinder_eGammaF(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_eGammaF"): - TrigL2SiTrackFinderBase.__init__(self, "eGamma", "F", 0.1, 0.1, False, False, False) - - -class TrigL2SiTrackFinder_TauF(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_TauF"): - TrigL2SiTrackFinderBase.__init__(self, "Tau", "F", 0.3, 0.3, False, False, False) - - -class TrigL2SiTrackFinder_JetF(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_JetF"): - TrigL2SiTrackFinderBase.__init__(self, "Jet", "F", 0.2, 0.2, False, False, False) - - -class TrigL2SiTrackFinder_BphysicsF(TrigL2SiTrackFinderBase): - def __init__(self, name = "TrigL2SiTrackFinder_BphysicsF"): - TrigL2SiTrackFinderBase.__init__(self, "Bphysics", "F", 0.75, 0.75, False, False, False) - -#------------------------------------------------------------------------------------------------- - - diff --git a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/src/TrigL2SiTrackFinder.cxx b/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/src/TrigL2SiTrackFinder.cxx deleted file mode 100755 index 610ba40b20c4ccb3f13040f3f1619fe8dc275891..0000000000000000000000000000000000000000 --- a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/src/TrigL2SiTrackFinder.cxx +++ /dev/null @@ -1,1113 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -//////////////////////////////////////////////////////////////////////////////// -// TrigL2SiTrackFinder.cxx -// ------------------------------- -// ATLAS Collaboration -// -// package created 19/07/2010 by Dmitry Emeliyanov (see ChangeLog for more details) -// -//////////////////////////////////////////////////////////////////////////////// - -#include <cmath> -#include <iostream> -#include <algorithm> - -#include "GaudiKernel/MsgStream.h" -#include "CxxUtils/phihelper.h" - -#include "TrigTimeAlgs/TrigTimerSvc.h" - -#include "TrigInDetEvent/TrigVertex.h" -#include "TrigInDetEvent/TrigVertexCollection.h" -#include "TrigInDetEvent/TrigInDetTrack.h" -#include "TrigInDetEvent/TrigInDetTrackCollection.h" -#include "TrigInDetEvent/TrigInDetTrackFitPar.h" -#include "TrigSiSpacePointTool/ISpacePointProvider.h" - -#include "TrigInDetToolInterfaces/ITrigInDetTrackFitter.h" -#include "TrigInDetToolInterfaces/ITrigTRT_TrackExtensionTool.h" -#include "TrigInDetToolInterfaces/TrigL2HitResidual.h" -#include "TrigInDetToolInterfaces/ITrigL2ResidualCalculator.h" - -#include "TrigInDetRecoTools/ITrigL2PattRecoStrategy.h" - -#include "TrkToolInterfaces/ITrackSummaryTool.h" -#include "InDetPrepRawData/SCT_Cluster.h" -#include "InDetPrepRawData/PixelCluster.h" -#include "InDetRIO_OnTrack/SCT_ClusterOnTrack.h" -#include "InDetRIO_OnTrack/PixelClusterOnTrack.h" -#include "InDetIdentifier/SCT_ID.h" -#include "InDetIdentifier/PixelID.h" - -#include "IRegionSelector/IRegSelSvc.h" - - -#include "TrigL2SiTrackFinder/TrigL2SiTrackFinder.h" - -template <class SRC> -inline const DataVector<TrigInDetTrack>** dvec_cast(SRC** ptr) { - return (const DataVector<TrigInDetTrack>**)(ptr); -} - -TrigL2SiTrackFinder::TrigL2SiTrackFinder(const std::string& name, ISvcLocator* pSvcLocator) : - - HLT::FexAlgo(name, pSvcLocator), - - m_spacePointProvider("OnlineSpacePointProviderTool"), - m_trigInDetTrackFitter("TrigInDetTrackFitter"), - m_trigTRT_TrackExtensionTool("TrigTRT_TrackExtensionTool"), - m_trigL2ResidualCalculator("TrigL2ResidualCalculator"), - m_recoStrategy("TrigL2PattRecoStrategyC"), - - m_useBeamSpot(true), - m_doTrackFit(true), - m_doShift(false), - //m_generateRoI(false), - m_useRoiDescriptorWidths(false), - m_pixelSpacePointsContainer(nullptr), - m_sctSpacePointsContainer(nullptr), - m_ntracks(0), - m_nPixSPsInRoI(0), - m_nSCTSPsInRoI(0), - m_currentStage(-1), - m_attachedFeatureName(""), - m_attachedFeatureName2("") - -{ - declareProperty( "etaHalfWidth", m_etaHalfWidth = 0.1); - declareProperty( "phiHalfWidth", m_phiHalfWidth = 0.1); - declareProperty( "FullScanMode", m_fullScanMode = false); - declareProperty( "VertexSeededMode", m_vertexSeededMode = false); - //declareProperty( "GenerateRoI", m_generateRoI = false); - declareProperty( "useRoiDescriptorWidths", m_useRoiDescriptorWidths = false); - - declareProperty( "PixelSP_ContainerName", m_pixelSpContName = "TrigPixelSpacePoints" ); - declareProperty( "SCT_SP_ContainerName", m_sctSpContName = "TrigSCT_SpacePoints" ); - - declareProperty( "RegionSelectorService", m_regionSelectorName = "RegSelSvc" ); - declareProperty( "SpacePointProviderTool", m_spacePointProvider ); - declareProperty( "TrigInDetTrackFitter", m_trigInDetTrackFitter ); - declareProperty( "TrigTRT_TrackExtensionTool", m_trigTRT_TrackExtensionTool); - declareProperty( "TrigL2ResidualCalculator", m_trigL2ResidualCalculator); - - declareProperty( "RecoStrategy",m_recoStrategy); - - declareProperty( "MinHits", m_minHits = 5 ); - // declareProperty( "TrkTrackCollName", m_TrkTrackCollName = "L2STAR_Tracks"); - - declareProperty( "OutputCollectionSuffix",m_outputCollectionSuffix = ""); - - declareProperty( "PrintDiagnosticMessages", m_printDiagnosticMessages = false ); - - - declareProperty("TrackSummaryTool", m_trackSummaryTool); - // declareProperty( "TrueVertexLocation", m_trueVertexLocation = "TrueTrigVertexColl" ); - // declareProperty( "TrigToTrkTrackConvertorTool",m_convertorTool); - // declareProperty( "trackConvertorMode", m_trackConvertorMode = 1 ); - - declareProperty( "UseBeamSpot", m_useBeamSpot = true); - - declareProperty( "doTrackFit", m_doTrackFit = true ); - declareProperty( "doTRTpropagation", m_doTRTpropagation = true ); - declareProperty( "doResMonitoring", m_doResMonitoring = false); - declareProperty( "attachVertices", m_attachVertices = false); - /*declareProperty( "AdjustLayerThreshold", m_adjustLayerThreshold = false ); - declareProperty( "DetMaskCheck", m_check_detector_mask = false); - declareProperty( "DetMaskCheckOnEvent", m_detector_mask_on_event = false);*/ - - - - m_countTotalEvents=0; - m_countTotalRoI=0; - m_countRoIwithEnoughHits=0; - m_countRoIwithTracks=0; - m_l1Id=99999999; - - m_recoTracks=NULL; - - // declare monitoring histograms - - - declareMonitoredCollection("trk_pt", *dvec_cast(&m_recoTracks), &monPt); - declareMonitoredCollection("trk_a0", *dvec_cast(&m_recoTracks), &monA0); - declareMonitoredCollection("trk_z0", *dvec_cast(&m_recoTracks), &monZ0); - declareMonitoredCollection("trk_phi0", *dvec_cast(&m_recoTracks), &monPhi0); - declareMonitoredCollection("trk_eta", *dvec_cast(&m_recoTracks), &monEta); - declareMonitoredCollection("trk_chi2dof", *dvec_cast(&m_recoTracks), &monChi2); - declareMonitoredCollection("trk_nSiHits", *dvec_cast(&m_recoTracks), &monNHit_Si); - declareMonitoredCollection("trk_nPIXHits", *dvec_cast(&m_recoTracks), &TrigInDetTrack::NPixelSpacePoints); - declareMonitoredCollection("trk_nSCTHits", *dvec_cast(&m_recoTracks), &TrigInDetTrack::NSCT_SpacePoints); - declareMonitoredCollection("trk_nTRTHits", *dvec_cast(&m_recoTracks), &TrigInDetTrack::NTRHits); - declareMonitoredCollection("trk_nTRTStraws", *dvec_cast(&m_recoTracks), &TrigInDetTrack::NStrawHits); - declareMonitoredStdContainer("trk_a0beam",m_a0beam); - declareMonitoredStdContainer("trk_dPhi0",m_trkdPhi0); - declareMonitoredStdContainer("trk_dEta" ,m_trkdEta); - - declareMonitoredStdContainer("sp_x" ,m_sp_x); - declareMonitoredStdContainer("sp_y" ,m_sp_y); - declareMonitoredStdContainer("sp_z" ,m_sp_z); - declareMonitoredStdContainer("sp_r" ,m_sp_r); - - declareMonitoredStdContainer("hit_PIXBarrelPhiResidual",m_pixResPhiBarrel); - declareMonitoredStdContainer("hit_PIXBarrelEtaResidual",m_pixResEtaBarrel); - declareMonitoredStdContainer("hit_PIXBarrelPhiPull", m_pixPullPhiBarrel); - declareMonitoredStdContainer("hit_PIXBarrelEtaPull", m_pixPullEtaBarrel); - declareMonitoredStdContainer("hit_SCTBarrelResidual", m_sctResBarrel); - declareMonitoredStdContainer("hit_SCTBarrelPull", m_sctPullBarrel); - declareMonitoredStdContainer("hit_PIXEndCapPhiResidual",m_pixResPhiEC); - declareMonitoredStdContainer("hit_PIXEndCapEtaResidual",m_pixResEtaEC); - declareMonitoredStdContainer("hit_PIXEndCapPhiPull", m_pixPullPhiEC); - declareMonitoredStdContainer("hit_PIXEndCapEtaPull", m_pixPullEtaEC); - declareMonitoredStdContainer("hit_SCTEndCapResidual", m_sctResEC); - declareMonitoredStdContainer("hit_SCTEndCapPull", m_sctPullEC); - - declareMonitoredStdContainer("dataErrors_SCT", m_sctDataErrors); - declareMonitoredStdContainer("dataErrors_PIX", m_pixelDataErrors); - declareMonitoredStdContainer("dataErrors_TRT", m_trtDataErrors); - declareMonitoredStdContainer("dataErrors", m_dataErrors); - declareMonitoredVariable("roi_nTracks",m_ntracks); - declareMonitoredVariable("roi_nSPsPIX",m_nPixSPsInRoI); - declareMonitoredVariable("roi_nSPsSCT",m_nSCTSPsInRoI); - declareMonitoredVariable("roi_lastStageExecuted",m_currentStage); - declareMonitoredVariable("roi_eta", m_roiEta); - declareMonitoredVariable("roi_etaWidth", m_roiEtaWidth); - declareMonitoredVariable("roi_phi", m_roiPhi); - declareMonitoredVariable("roi_phiWidth", m_roiPhiWidth); - declareMonitoredVariable("roi_nSPs", m_roi_nSPs); - - // Z-vertexing - declareMonitoredVariable("roi_nZvertices",m_nZvertices); - declareMonitoredStdContainer("roi_zVertices",m_zVertices); -} - -//-------------------------------------------------------------------------- - -TrigL2SiTrackFinder::~TrigL2SiTrackFinder() {} - -//----------------------------------------------------------------------- - -HLT::ErrorCode TrigL2SiTrackFinder::hltInitialize() { - - msg() << MSG::INFO << "TrigL2SiTrackFinder::initialize() " << PACKAGE_VERSION << endmsg; - - StatusCode sc = StatusCode::FAILURE; - - if (m_printDiagnosticMessages) - msg() << MSG::WARNING << "TrigL2SiTrackFinder Diagnostic Messages enabled - this will give many messages per event to std::cout !!" - << endmsg; - - sc = m_spacePointProvider.retrieve(); - if ( sc.isFailure() ) { - msg() << MSG::FATAL << "Unable to locate SpacePointProviderTool " << m_spacePointProvider << endmsg; - return HLT::BAD_JOB_SETUP; - } - - sc = m_trigInDetTrackFitter.retrieve(); - if ( sc.isFailure() ) { - msg() << MSG::FATAL << "Unable to locate TrackFitter tool " << m_trigInDetTrackFitter << endmsg; - return HLT::BAD_JOB_SETUP; - } - - if(m_doTRTpropagation) { - sc = m_trigTRT_TrackExtensionTool.retrieve(); - if ( sc.isFailure() ) { - msg() << MSG::FATAL <<"Unable to locate TRT track extension tool " << m_trigTRT_TrackExtensionTool << endmsg; - return HLT::BAD_JOB_SETUP; - } - } - - sc = m_trigL2ResidualCalculator.retrieve(); - if ( sc.isFailure() ) { - msg() << MSG::FATAL <<"Unable to locate Residual calculator tool " << m_trigL2ResidualCalculator << endmsg; - return HLT::BAD_JOB_SETUP; - } - - sc = m_recoStrategy.retrieve(); - if ( sc.isFailure() ) { - msg() << MSG::FATAL <<"Unable to locate Reconstruction Tool " << m_recoStrategy << endmsg; - return HLT::BAD_JOB_SETUP; - } - - if (detStore()->retrieve(m_pixelId, "PixelID").isFailure()) { - msg() << MSG::ERROR << "Could not get Pixel ID helper" << endmsg; - return HLT::BAD_JOB_SETUP; - } - if (detStore()->retrieve(m_sctId, "SCT_ID").isFailure()) { - msg() << MSG::ERROR << "Could not get SCT ID helper" << endmsg; - return HLT::BAD_JOB_SETUP; - } - - - /*if ( m_adjustLayerThreshold ) { - msg() << MSG::INFO << "will adjust layer threshold depending on disabled modules" << endmsg; - sc = serviceLocator()->service( m_regionSelectorName, m_regionSelector); - if ( sc.isFailure() ) { - msg() << MSG::FATAL << "Unable to retrieve RegionSelector Service " << m_regionSelectorName << endmsg; - return HLT::BAD_JOB_SETUP; - }; - } - - m_detector_mask_not_checked = m_check_detector_mask; - - m_hasPixelBLayer = true; - m_hasPixelBarrel = true; m_hasPixelDisk = true; - m_hasSCTBarrelA = true; m_hasSCTEndcapA = true; - m_hasSCTBarrelC = true; m_hasSCTEndcapC = true;*/ - - declareMonitoredObject("time_TRTDataPrep",m_trigTRT_TrackExtensionTool.operator*(),&ITrigTRT_TrackExtensionTool::getTRTTotalTime); - declareMonitoredObject("time_TRTBStoDC",m_trigTRT_TrackExtensionTool.operator*(),&ITrigTRT_TrackExtensionTool::getTRTTrtCnvTime); - declareMonitoredObject("time_TRTRobProv",m_trigTRT_TrackExtensionTool.operator*(),&ITrigTRT_TrackExtensionTool::getTRTRobProvTime); - declareMonitoredObject("time_TRTDataTotal",m_trigTRT_TrackExtensionTool.operator*(),&ITrigTRT_TrackExtensionTool::getTRT_DataProviderTime); - declareMonitoredObject("time_TRTRobPreload",m_trigTRT_TrackExtensionTool.operator*(),&ITrigTRT_TrackExtensionTool::getTRT_RobPreloaderTime); - declareMonitoredObject("time_TRTRoads",m_trigTRT_TrackExtensionTool.operator*(),&ITrigTRT_TrackExtensionTool::getTRT_RoadBuilderTime); - declareMonitoredObject("time_TRTPDAF",m_trigTRT_TrackExtensionTool.operator*(),&ITrigTRT_TrackExtensionTool::getTRT_PDAF_TrackingTime); - declareMonitoredObject("time_PIXBStoClusters",m_spacePointProvider.operator*(),&ISpacePointProvider::getBStoClustersTimingPixel); - declareMonitoredObject("time_SCTBStoClusters",m_spacePointProvider.operator*(),&ISpacePointProvider::getBStoClustersTimingSCT); - declareMonitoredObject("time_PIXSPFormation",m_spacePointProvider.operator*(),&ISpacePointProvider::getSPformationTimingPixel); - declareMonitoredObject("time_SCTSPFormation",m_spacePointProvider.operator*(),&ISpacePointProvider::getSPformationTimingSCT); - declareMonitoredObject("time_SiDataRegSel",m_spacePointProvider.operator*(),&ISpacePointProvider::getRegSelTiming); - declareMonitoredObject("time_SiDataTotal",m_spacePointProvider.operator*(),&ISpacePointProvider::getTotalTiming); - - declareMonitoredObject("time_PattRecoOnly",m_recoStrategy.operator*(),&ITrigL2PattRecoStrategy::getTimingA); - // add some timers: - - if ( timerSvc() ) { - m_SpacePointReaderTimer = addTimer("SpacePointReader"); - m_PatternRecoTimer = addTimer("PattReco","PattReco_nSP"); - m_TrackFitterTimer = addTimer("TrackFitter","TrackFitter_nTracks"); - m_TrtExtensionTimer = addTimer("TrtExtension", "TrtExtension_nTracks"); - } - - msg() << MSG::INFO << " TrigL2SiTrackFinder : MinHits set to " << m_minHits << endmsg; - - if (m_useBeamSpot) { - if(m_beamSpotKey.initialize().isFailure()) return HLT::BAD_JOB_SETUP; - } - - if ( m_outputCollectionSuffix != "" ) { - m_attachedFeatureName = std::string("TrigL2SiTrackFinder_") + m_outputCollectionSuffix; - m_attachedFeatureName2 = std::string("TrigL2SiTrackFinder_TrkTrack_") + m_outputCollectionSuffix; - - } - else { - std::string namestr = name(); - std::transform(namestr.begin(), namestr.end(), - namestr.begin(), (int(*)(int)) std::tolower); - if ( namestr.find("cosmic") == std::string::npos ) { - m_attachedFeatureName = name(); - m_attachedFeatureName2 = m_attachedFeatureName; - m_attachedFeatureName2.append("_TrkTrack"); - } - else { - m_attachedFeatureName = std::string("TrigL2SiTrackFinder"); - m_attachedFeatureName2 = std::string("TrigL2SiTrackFinder_TrkTrack"); - } - } - msg() << MSG::DEBUG << " Features recorded with Key " << m_attachedFeatureName << endmsg; - msg() << MSG::DEBUG << " Features recorded with Key " << m_attachedFeatureName2 << endmsg; - - sc= m_trackSummaryTool.retrieve(); - if(sc.isFailure()) { - msg() << MSG::ERROR << "unable to locate track summary tool" << endmsg; - return HLT::BAD_JOB_SETUP; - } - - - - msg() << MSG::DEBUG << " Initialized successfully" << endmsg; - return HLT::OK; -} - - -//------------------------------------------------------------------------- - -HLT::ErrorCode TrigL2SiTrackFinder::hltStart() -{ - // Reset warnings to make them reproducible on stop/start - m_roiForIDWarning = false; - m_roiWidthWarning = false; - return HLT::OK; -} - -//------------------------------------------------------------------------- - -HLT::ErrorCode TrigL2SiTrackFinder::hltExecute(const HLT::TriggerElement* inputTE, - HLT::TriggerElement* outputTE) { - - m_ntracks = 0; - m_recoTracks=nullptr; - m_recoTrkTracks=nullptr; - m_dataErrors.clear(); - m_pixelDataErrors.clear(); - m_sctDataErrors.clear(); - m_trtDataErrors.clear(); - m_a0beam.clear(); - m_trkdPhi0.clear(); - m_trkdEta.clear(); - - m_sp_x.clear();m_sp_y.clear();m_sp_z.clear();m_sp_r.clear(); - - m_zVertices.clear(); - - m_pixResPhiBarrel.clear(); - m_pixResEtaBarrel.clear(); - m_pixPullPhiBarrel.clear(); - m_pixPullEtaBarrel.clear(); - m_sctResBarrel.clear(); - m_sctPullBarrel.clear(); - m_pixResPhiEC.clear(); - m_pixResEtaEC.clear(); - m_pixPullPhiEC.clear(); - m_pixPullEtaEC.clear(); - m_sctResEC.clear(); - m_sctPullEC.clear(); - - m_nPixSPsInRoI=0; - m_nSCTSPsInRoI=0; - m_currentStage=0; - m_roi_nSPs=0; - m_nZvertices=0; - - if (msgLvl() <= MSG::DEBUG) msg() << MSG::DEBUG << "TrigL2SiTrackFinder::execHLTAlgorithm()" << endmsg; - - // 1. Event information, masking update - - // get the run and event no. - /*const EventInfo* pEventInfo; - unsigned int IdRun=0; - unsigned int IdEvent=0; - if ( store()->retrieve(pEventInfo).isFailure() ) { - if(m_detector_mask_not_checked && m_detector_mask_on_event) { - msg() << MSG::ERROR << "Could not find EventInfo object for detector mask info" << endmsg; - return HLT::SG_ERROR; - } - // if we are not interested in the detector mask, this is a minor problem. - if (msgLvl() <= MSG::DEBUG) msg() << MSG::DEBUG << "Failed to get EventInfo " << endmsg; - } - else { - IdRun = pEventInfo->event_ID()->run_number(); - IdEvent = pEventInfo->event_ID()->event_number(); - if (msgLvl() <= MSG::DEBUG) msg() << MSG::DEBUG << " Run " << IdRun << " Event " << IdEvent << endmsg; - if(m_detector_mask_not_checked && m_detector_mask_on_event) - setup_detector_mask(pEventInfo->event_ID()); - }*/ - - // Retrieve vertexing information if needed - const TrigVertexCollection* vertexCollection = NULL; - if(m_vertexSeededMode) { - //HLT::ErrorCode status = getFeature(inputTE, vertexCollection,""); - // - //NOTE the inputTE vs outputTE difference - the feature is assumed to come from the same step in the sequence - HLT::ErrorCode status = getFeature(outputTE, vertexCollection); - if(status != HLT::OK) return status; - if(vertexCollection==NULL) return HLT::ERROR; - } - - - // FullScan and RoI split here - - StatusCode scOSP=StatusCode::SUCCESS; - std::vector<int> listOfPixIds; - std::vector<int> listOfSctIds; - m_currentStage = 1; - - m_recoTracks = new TrigInDetTrackCollection; - - if(m_fullScanMode) // full-scan strategy - { - // 4. Data retrieval and spacepoint acceptance test(s) - - m_filteredSpacePoints.clear(); - - if ( timerSvc() ) m_SpacePointReaderTimer->start(); - - scOSP=m_spacePointProvider->fillCollections(true,true,listOfPixIds,listOfSctIds); - - if(scOSP.isRecoverable()||scOSP.isSuccess()) { - - HLT::ErrorCode code = retrieveSpacePointsContainers(); - if (code != HLT::OK) { - if ( timerSvc() ) m_SpacePointReaderTimer->stop(); - delete m_recoTracks; - m_recoTracks=NULL; - return code; - } - - FullScanFilter filter(m_filteredSpacePoints); - SpacePointSelector<FullScanFilter> selector(filter); - - m_nPixSPsInRoI=selector.select(m_pixelSpacePointsContainer,listOfPixIds); - m_nSCTSPsInRoI=selector.select(m_sctSpacePointsContainer,listOfSctIds); - - m_roi_nSPs = m_filteredSpacePoints.size(); - - if ( timerSvc() ) m_SpacePointReaderTimer->stop(); - if ( timerSvc() ) m_PatternRecoTimer->start(); - - HLT::ErrorCode hltCode; - if(!m_vertexSeededMode) - hltCode = m_recoStrategy->findTracks(m_filteredSpacePoints, - nullptr, - m_recoTracks); - else - hltCode = m_recoStrategy->findTracks(m_filteredSpacePoints, - vertexCollection, - m_recoTracks); - - if ( timerSvc() ) m_PatternRecoTimer->propVal( m_recoTracks->size() ); - if ( timerSvc() ) m_PatternRecoTimer->stop(); - - if (hltCode != HLT::OK) { - delete m_recoTracks; - m_recoTracks=nullptr; - return hltCode; - } - - } - else if ( timerSvc() ) m_SpacePointReaderTimer->stop(); - } - else // RoI-guided strategy - { - const IRoiDescriptor* internalRoI;// will be used for all pattern recognition tools in RoI-guided mode - - // 2. RoI preparation/update - - const TrigRoiDescriptor* roi = nullptr; - if( getFeature(inputTE, roi, "forID") != HLT::OK || roi == nullptr ) { - if (!m_roiForIDWarning) { - ATH_MSG_INFO("REGTEST / using ordinary RoI ( no forID RoI found ) "); - m_roiForIDWarning = true; - } - getFeature(inputTE, roi); - } - if ( roi==nullptr ) { - msg() << MSG::WARNING << "REGTEST / Failed to find RoiDescriptor " << endmsg; - delete m_recoTracks; - m_recoTracks=nullptr; - return HLT::NAV_ERROR; - } - internalRoI = roi; - - // Important: copy constructor of TrigRoiDescriptor does not exist - compiler - // generates the ctor for us, but the - // automatically generated ctor does not check roi phi/eta/zed ranges - // We may want to implement the copy constructor properly. Until then... - // check validity of internalRoI - - m_roiEta = internalRoI->eta(); - m_roiEtaWidth = internalRoI->etaPlus() - internalRoI->etaMinus(); - m_roiPhi = internalRoI->phi(); - m_roiPhiWidth = CxxUtils::wrapToPi(internalRoI->phiPlus() - internalRoI->phiMinus()); - - if(msgLvl()<=MSG::DEBUG) { - msg() << MSG::DEBUG << "REGTEST / RoI: " << *roi << endmsg; - } - m_countTotalRoI++; - if(roi->etaMinus()== roi->etaPlus() || roi->phiMinus()== roi->phiPlus()){// use values from configurable - if (!m_roiWidthWarning) { - msg() << MSG::WARNING << "REGTEST / RoI width not set properly" << " " << *roi << endmsg; - m_roiWidthWarning=true; - } - TrigRoiDescriptor* newroi = new TrigRoiDescriptor( m_roiEta, m_roiEta-m_etaHalfWidth, m_roiEta+m_etaHalfWidth, - m_roiPhi, m_roiPhi-m_phiHalfWidth, m_roiPhi+m_phiHalfWidth ); - attachFeature( outputTE, newroi ); - internalRoI = newroi; - } - - - // 4. Data retrieval and spacepoint acceptance test(s) - //retrieve input spacepoints using internalRoI - - m_filteredSpacePoints.clear(); - - if ( timerSvc() ) m_SpacePointReaderTimer->start(); - - scOSP=m_spacePointProvider->fillCollections(*internalRoI,true,true,listOfPixIds,listOfSctIds); - - if(scOSP.isRecoverable()||scOSP.isSuccess()) { - - HLT::ErrorCode code = retrieveSpacePointsContainers(); - if (code != HLT::OK) { - if ( timerSvc() ) m_SpacePointReaderTimer->stop(); - delete m_recoTracks; - m_recoTracks=NULL; - return code; - } - - /// filter the spacepoints according to the RoI - RoI_Filter filter( m_filteredSpacePoints, internalRoI ); - SpacePointSelector<RoI_Filter> selector(filter); - m_nPixSPsInRoI=selector.select(m_pixelSpacePointsContainer,listOfPixIds); - m_nSCTSPsInRoI=selector.select(m_sctSpacePointsContainer,listOfSctIds); - - - m_roi_nSPs = m_filteredSpacePoints.size(); - - - - /** Debug info. */ - if(msgLvl()<=MSG::DEBUG) { - msg() << MSG::DEBUG << "SEED DATA ACCESS: found " << m_filteredSpacePoints.size() << " space points" << endmsg; - } - - if ( timerSvc() ) m_SpacePointReaderTimer->stop(); - - // do the rest of RoI-guided pattern recognition - - if ( timerSvc() ) m_PatternRecoTimer->start(); - - HLT::ErrorCode hltCode; - if(!m_vertexSeededMode) - hltCode = m_recoStrategy->findTracks(m_filteredSpacePoints, - *internalRoI, - NULL, - m_recoTracks); - else - hltCode = m_recoStrategy->findTracks(m_filteredSpacePoints, - *internalRoI, - vertexCollection, - m_recoTracks); - - if ( timerSvc() ) m_PatternRecoTimer->propVal( m_recoTracks->size() ); - if ( timerSvc() ) m_PatternRecoTimer->stop(); - - if (hltCode != HLT::OK) { - delete m_recoTracks; - m_recoTracks=NULL; - return hltCode; - } - } - else if ( timerSvc() ) m_SpacePointReaderTimer->stop(); - } - - if(scOSP.isRecoverable()) { - m_dataErrors.push_back(1); - const std::vector<int>* errVect = m_spacePointProvider->fillPixelDataErrors(); - std::copy(errVect->begin(),errVect->end(),std::back_inserter(m_pixelDataErrors)); - errVect = m_spacePointProvider->fillSCT_DataErrors(); - std::copy(errVect->begin(),errVect->end(),std::back_inserter(m_sctDataErrors)); - } - else if(scOSP.isFailure()) { - msg() << MSG::WARNING << "SpacePoint formation failed " << endmsg; - m_dataErrors.push_back(0); - delete m_recoTracks; - m_recoTracks=NULL; - return HLT::ErrorCode(HLT::Action::ABORT_CHAIN, HLT::Reason::CORRUPTED_ROD); - } - - if(scOSP.isRecoverable()||scOSP.isSuccess()) { - if (msgLvl() <= MSG::DEBUG) msg() << MSG::DEBUG << "Modules hit in RoI: PIX = " << listOfPixIds.size() - << " , SCT = " << listOfSctIds.size() - << endmsg; - } - - if( m_roi_nSPs >= m_minHits ) { - if (msgLvl() <= MSG::DEBUG) msg() << MSG::DEBUG << "REGTEST / Found " << m_roi_nSPs << " space points." << endmsg; - m_countRoIwithEnoughHits++; - } - else { - if (msgLvl() <= MSG::DEBUG) msg() << MSG::DEBUG << "No tracks found - too few hits in ROI to run " << m_roi_nSPs << endmsg; - HLT::ErrorCode code = attachFeature(outputTE, new TrigInDetTrackCollection, m_attachedFeatureName); - - if ( code != HLT::OK ) { - msg() << MSG::ERROR << "REGTEST/ Write into outputTE failed" << endmsg; - delete m_recoTracks; - m_recoTracks=NULL; - return code; - } - - code = attachFeature(outputTE, new TrackCollection, m_attachedFeatureName2); - if ( code != HLT::OK ) { - return code; - } - } - - m_currentStage = 2; - - // 5. missing layers determination - // int missing_layers = findMissingLayers(roiEtaMin,roiEtaMax,roiPhiMin,roiPhiMax); - //int missing_layers = findMissingLayers(internalRoI); - - // 6. Extract the beamspot shift - double shiftx(0), shifty(0); - if (!m_doShift && m_useBeamSpot) { - SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey }; - const Amg::Vector3D &vertex = beamSpotHandle->beamPos(); - if (msgLvl() <= MSG::DEBUG) - msg() << MSG::DEBUG << "Beam spot position " << vertex << endmsg; - double xVTX = vertex.x(); - double yVTX = vertex.y(); - double zVTX = vertex.z(); - double tiltXZ = beamSpotHandle->beamTilt(0); - double tiltYZ = beamSpotHandle->beamTilt(1); - shiftx = xVTX - tiltXZ*zVTX;//correction for tilt - shifty = yVTX - tiltYZ*zVTX;//correction for tilt - - if (msgLvl() <= MSG::DEBUG) - msg() << MSG::DEBUG << "Center position: " << shiftx <<" "<< shifty << endmsg; - } - - // 7. actual pattern recognition, for example - // m_recoTracks=pattRecoTool->findTracks(m_filteredSpacePoints) - // or - // StatusCode pattRecSC = pattRecoTool->findTracks(m_filteredSpacePoints, m_recoTracks) - // or - // if(doShift) { or maybe add a special flag doCosmic ? - - - // 7a. run shifter (for cosmic reco) and - // 7b. pattRecoTool - - // m_recoTracks=NULL; - // if(m_recoTracks->empty()) { - // delete m_recoTracks; - // m_recoTracks=NULL; - // } - - /* - if ( timerSvc() ) { - if (m_recoTracks!=NULL) - m_PatternRecoTimer->propVal( m_recoTracks->size() ); - else - m_PatternRecoTimer->propVal(0); - m_PatternRecoTimer->stop(); - } - */ - - if( m_recoTracks->empty() ) { - if (msgLvl() <= MSG::DEBUG) msg() << MSG::DEBUG << "REGTEST / No tracks reconstructed" << endmsg; - if (m_printDiagnosticMessages) std::cout << "TrigL2SiTrackFinder DIAGNOSTIC: No tracks reconstructed" << std::endl; - // StatusCode sc = m_EventData2XML->execute(); - } - - //monitor Z-vertexing - - m_recoStrategy->getZvertices(m_zVertices); - m_nZvertices=m_zVertices.size(); - msg() << MSG::VERBOSE << "vertices.size(): " << m_zVertices << endmsg; - if(msgLvl() <= MSG::VERBOSE) { - for (auto vertex : m_zVertices) { - msg() << MSG::VERBOSE << "vertex " << vertex << endmsg; - } - } - - //monitor number of tracks - m_ntracks=m_recoTracks->size(); - if (msgLvl() <= MSG::DEBUG) msg() << MSG::DEBUG - << "REGTEST / Found " << m_recoTracks->size() - << " tracks. Proceeding to track fitter." << endmsg; - if (m_printDiagnosticMessages) std::cout << "TrigL2SiTrackFinder DIAGNOSTIC " << " Found " << m_recoTracks->size() - << " tracks. Proceeding to track fitter." << std::endl; - if( !m_recoTracks->empty() ) - m_countRoIwithTracks++; - - if ( timerSvc() ) m_TrackFitterTimer->start(); - - if(m_doTrackFit) { - - m_trigInDetTrackFitter->fit( m_recoTracks); - - } - - ///////////// fill vectors of quantities to be monitored - // a0 wrt beam spot - for(TrigInDetTrackCollection::iterator trackIt = m_recoTracks->begin();trackIt != m_recoTracks->end();++trackIt) { - double a0 = (*trackIt)->param()->a0(); - double phi0 = (*trackIt)->param()->phi0(); - m_a0beam.push_back(a0+shiftx*sin(phi0)-shifty*cos(phi0)); - double dPhi0 = phi0 - m_roiPhi; - if ( dPhi0> 2*M_PI ) dPhi0 -= 2*M_PI; - if ( dPhi0<-2*M_PI ) dPhi0 += 2*M_PI; - m_trkdPhi0.push_back(dPhi0); - m_trkdEta.push_back((*trackIt)->param()->eta() - m_roiEta); - - for(std::vector<const TrigSiSpacePoint*>::iterator spIt = (*trackIt)->siSpacePoints()->begin();spIt!=(*trackIt)->siSpacePoints()->end();++spIt) { - m_sp_x.push_back((*spIt)->original_x()); - m_sp_y.push_back((*spIt)->original_y()); - m_sp_z.push_back((*spIt)->z()); - m_sp_r.push_back((*spIt)->r()); - } - - //zVTX = m_zPosition; // precise calculation using vertex z, not the beamspot cond service - not needed - } - - // hit residuals - if (m_doResMonitoring) { - for(TrigInDetTrackCollection::iterator trackIt = m_recoTracks->begin();trackIt != m_recoTracks->end();++trackIt) - runResidualMonitoring(*trackIt); - } // if doResMonitoring - - if ( timerSvc() ) { - m_TrackFitterTimer->propVal( m_recoTracks->size() ); - m_TrackFitterTimer->stop(); - } - - m_currentStage = 6; - - if(m_doTRTpropagation) { - if ( timerSvc() ) m_TrtExtensionTimer->start(); - StatusCode sc=m_trigTRT_TrackExtensionTool->propagate(m_recoTracks); - if ( timerSvc() ) { - m_TrtExtensionTimer->propVal(m_recoTracks->size() ); - m_TrtExtensionTimer->stop(); - } - if(sc.isRecoverable()) { - m_dataErrors.push_back(3); - const std::vector<int>* errVect = m_trigTRT_TrackExtensionTool->fillTRT_DataErrors(); - std::copy(errVect->begin(),errVect->end(),std::back_inserter(m_trtDataErrors)); - } - else if(sc.isFailure()) { - msg() << MSG::WARNING <<"Bad TRT data"<<endmsg; - m_dataErrors.push_back(2); - delete m_recoTracks; - m_recoTracks=NULL; - return HLT::ErrorCode(HLT::Action::ABORT_CHAIN, HLT::Reason::CORRUPTED_ROD); - } - } - m_currentStage = 7; - - if ( msgLvl() <= MSG::DEBUG || m_printDiagnosticMessages) { - if (msgLvl() <= MSG::DEBUG) msg() << MSG::DEBUG << "REGTEST / Reconstructed " << m_recoTracks->size() << " tracks " << endmsg; - if (m_printDiagnosticMessages) std::cout << "TrigL2SiTrackFinder DIAGNOSTIC " << " Reconstructed " << m_recoTracks->size() << " tracks " << std::endl; - TrigInDetTrackCollection::iterator track = m_recoTracks->begin(); - TrigInDetTrackCollection::iterator lastTrack = m_recoTracks->end(); - - for(; track !=lastTrack; track++) { - - msg() << MSG::DEBUG << "REGTEST / track nstraw/ntr/phi0/pt/eta/d0/z0/chi2: " << - (*track)->NStrawHits() << " / " << - (*track)->NTRHits() << " / " << - (*track)->param()->phi0() << " / " << - (*track)->param()->pT() << " / " << - (*track)->param()->eta() << " / " << - (*track)->param()->a0() << " / " << - (*track)->param()->z0() << " / " << - (*track)->chi2() << endmsg; - - if (m_printDiagnosticMessages) std::cout << "TrigL2SiTrackFinder DIAGNOSTIC " << " track nstraw/ntr/phi0/pt/eta/d0/z0/chi2: " << - (*track)->NStrawHits() << " / " << - (*track)->NTRHits() << " / " << - (*track)->param()->phi0() << " / " << - (*track)->param()->pT() << " / " << - (*track)->param()->eta() << " / " << - (*track)->param()->a0() << " / " << - (*track)->param()->z0() << " / " << - (*track)->chi2() << std::endl; - } - } - // Store RoI ID - /* - if (m_generateRoI) { - m_recoTracks->RoI_ID (-2); - } else { - m_recoTracks->RoI_ID (roiDescr.roiId()); - } - */ - - HLT::ErrorCode code = attachFeature(outputTE, m_recoTracks, m_attachedFeatureName); - - if ( code != HLT::OK ) { - msg() << MSG::ERROR << "REGTEST/ Write into outputTE failed" << endmsg; - delete m_recoTracks; - m_recoTracks=NULL; - return code; - } - - m_recoTrkTracks = new TrackCollection; - convertToTrkTrack(m_recoTracks, m_recoTrkTracks); - //make track summary - for (auto track = m_recoTrkTracks->begin(); track!=m_recoTrkTracks->end(); ++track) { - ATH_MSG_VERBOSE("Updating fitted track: " << **track); - m_trackSummaryTool->updateTrack(**track); - } - code = attachFeature(outputTE, m_recoTrkTracks, m_attachedFeatureName2); - //msg() << MSG::INFO << "Number of converted tracks: " << m_recoTrkTracks->size() << endmsg; - - //if (m_recoTrkTracks->size()!=m_recoTracks->size()) { - // msg() << MSG::INFO << "Mismatch " << endmsg; - // msg() << MSG::INFO << "Number of original tracks: " << m_recoTracks->size() << endmsg; - // msg() << MSG::INFO << "Number of converted tracks: " << m_recoTrkTracks->size() << endmsg; - //} - - - if ( code != HLT::OK ) { - msg() << MSG::ERROR << "REGTEST/ Write into outputTE failed" << endmsg; - delete m_recoTrkTracks; - m_recoTrkTracks=NULL; - return code; - } - - if(m_attachVertices) {//create and attach TrigVertexCollection - TrigVertexCollection* zVertColl = new TrigVertexCollection; - for(std::vector<float>::iterator it=m_zVertices.begin();it!=m_zVertices.end();++it) { - - float zv = (*it); - if(zv<-999.0) {//no vertex, in fact - continue; - } - - zVertColl->push_back(new TrigVertex(zv)); - } - HLT::ErrorCode code = attachFeature(outputTE,zVertColl, m_attachedFeatureName); - if ( code != HLT::OK ) { - msg() << MSG::ERROR << "REGTEST/ Write into outputTE failed" << endmsg; - delete zVertColl; - return code; - } - } - - return HLT::OK; -} - -//--------------------------------------------------------------------------- - -HLT::ErrorCode TrigL2SiTrackFinder::hltFinalize() -{ -#ifdef IDSCANDUMP - // finish up ntpl - if ( mWriteFlag ) { - // write out last event - if ( mWriteCounter ) mTree->Fill(); - mFile->Write(); - mFile->Close(); - } -#endif - - msg() << MSG::INFO << "=========================================================" << endmsg; - msg() << MSG::INFO << "TrigL2SiTrackFinder::finalize() - TrigL2SiTrackFinder Statistics: " << endmsg; - msg() << MSG::INFO << "Events processed: " << m_countTotalEvents << endmsg; - msg() << MSG::INFO << "RoI processed: " << m_countTotalRoI << endmsg; - msg() << MSG::INFO << "RoI with enough SPs : " << m_countRoIwithEnoughHits << endmsg; - msg() << MSG::INFO << "RoI with Track(s) Total/goodZvertex/badZvertex: " << m_countRoIwithTracks << endmsg; - msg() << MSG::INFO << "=========================================================" << endmsg; - - return HLT::OK; -} - -//------------------------------------------------------------------------- -/* - void TrigL2SiTrackFinder::storeInfo(double zPosition, HLT::TriggerElement* outputTE) - { - TrigVertexCollection* zinfo = new TrigVertexCollection(); - TrigVertex* zvert = new TrigVertex( zPosition ); - zinfo->push_back(zvert); - - HLT::ErrorCode code = attachFeature(outputTE, zinfo, m_attachedFeatureName); - if (code != HLT::OK) msg() << MSG::ERROR << "zinfo Write into outputTE failed" << endmsg; - } -*/ - -HLT::ErrorCode TrigL2SiTrackFinder::retrieveSpacePointsContainers() { - - - StatusCode sc=store()->retrieve(m_pixelSpacePointsContainer,m_pixelSpContName); - if(sc.isFailure()) { - msg() << MSG::WARNING << "Trig SP Pixel container " <<m_pixelSpContName <<" not found"<<endmsg; - return HLT::TOOL_FAILURE; - } - sc=store()->retrieve(m_sctSpacePointsContainer,m_sctSpContName); - if(sc.isFailure()) { - msg() << MSG::WARNING << "Trig SP SCT container " <<m_sctSpContName <<" not found"<<endmsg; - return HLT::TOOL_FAILURE; - } - - return HLT::OK; - -} - - -void TrigL2SiTrackFinder::runResidualMonitoring(const TrigInDetTrack* pT) { - // <---- add track preselection here : pT, nHits, etc. - //bool goodTrack = (*trackIt)->param()->pT()>1000. && ((*trackIt)->NPixelSpacePoints()+(*trackIt)->NSCT_SpacePoints())>2; - // tighter selection for unbiased residuals - bool goodTrack = std::fabs(pT->param()->pT())>1000. && (pT->NPixelSpacePoints()+pT->NSCT_SpacePoints())>3 && pT->NSCT_SpacePoints()>0 ; - if(!goodTrack) return; - - std::vector<TrigL2HitResidual> vResid; - vResid.clear(); - StatusCode scRes = m_trigL2ResidualCalculator->getUnbiassedResiduals(pT,vResid); - if(!scRes.isSuccess()) return; - - for(std::vector<TrigL2HitResidual>::iterator it=vResid.begin();it!=vResid.end();++it) { - //msg() << MSG::INFO << (*it) << endmsg; - switch(it->regionId()) { - case Region::PixBarrel : - m_pixResPhiBarrel.push_back(it->phiResidual()); - m_pixPullPhiBarrel.push_back(it->phiPull()); - m_pixResEtaBarrel.push_back(it->etaResidual()); - m_pixPullEtaBarrel.push_back(it->etaPull()); - break; - case Region::PixEndcap : - m_pixResPhiEC.push_back(it->phiResidual()); - m_pixPullPhiEC.push_back(it->phiPull()); - m_pixResEtaEC.push_back(it->etaResidual()); - m_pixPullEtaEC.push_back(it->etaPull()); - break; - case Region::SctBarrel : - m_sctResBarrel.push_back(it->phiResidual()); - m_sctPullBarrel.push_back(it->phiPull()); - break; - case Region::SctEndcap : - m_sctResEC.push_back(it->phiResidual()); - m_sctPullEC.push_back(it->phiPull()); - break; - case Region::IBL : - break; - case Region::Undefined : - break; - default : - break; - } - } -} - -void TrigL2SiTrackFinder::convertToTrkTrack(const TrigInDetTrackCollection* oldTracks, - TrackCollection* newTracks) const { - - newTracks->reserve(oldTracks->size()); - double Gk[5][5]; - int nTracks=0; - - TrigInDetTrackCollection::const_iterator trIt = oldTracks->begin(); - TrigInDetTrackCollection::const_iterator lastIt = oldTracks->end(); - - - for(; trIt !=lastIt; trIt++) - { - nTracks++; - float phi0=CxxUtils::wrapToPi((*trIt)->param()->phi0()); - float theta=2.0*atan(exp(-(*trIt)->param()->eta())); - float pT = (*trIt)->param()->pT(); - - if((*trIt)->param()->cov()==nullptr) { - //Track failed fit, skip it - continue; - } - int idx=0; - for(int i=0;i<5;i++) { - for(int j=i;j<5;j++) { - Gk[j][i]=Gk[i][j]=(*(*trIt)->param()->cov())[idx]; - idx++; - } - } - float A = -2*sin(0.5*theta)*cos(0.5*theta); //== d(theta) / d(eta) - float B = tan(theta)/pT; //== d(theta) / d(pT) - float C = -sin(theta)/pT; //== d(qOverp / d(pT) - AmgSymMatrix(5)* pCV = new AmgSymMatrix(5); - (*pCV).fillSymmetric(0, 0, Gk[0][0]); - (*pCV).fillSymmetric(0, 1, Gk[2][0]); - (*pCV).fillSymmetric(0, 2, Gk[1][0]); - (*pCV).fillSymmetric(0, 3, A*Gk[3][0] + B*Gk[4][0]); - (*pCV).fillSymmetric(0, 4, C*Gk[4][0]); - (*pCV).fillSymmetric(1, 1, Gk[2][2]); - (*pCV).fillSymmetric(1, 2, Gk[2][1]); - (*pCV).fillSymmetric(1, 3, A*Gk[3][2] + B*Gk[4][2]); - (*pCV).fillSymmetric(1, 4, C*Gk[4][2]); - (*pCV).fillSymmetric(2, 2, Gk[1][1]); - (*pCV).fillSymmetric(2, 3, A*Gk[3][1] + B*Gk[4][1]); - (*pCV).fillSymmetric(2, 4, C*Gk[4][1]); - (*pCV).fillSymmetric(3, 3, A*(A*Gk[3][3] + 2.0*B*Gk[4][3]) + B*B*Gk[4][4]); - (*pCV).fillSymmetric(3, 4, C*(A*Gk[4][3] + B*Gk[4][4])); - (*pCV).fillSymmetric(4, 4, C*C*Gk[4][4]); - - Trk::PerigeeSurface dummySurface; - const Trk::Perigee* pMP = new Trk::Perigee((*trIt)->param()->a0(), - (*trIt)->param()->z0(), - phi0,theta, - sin(theta)/(*trIt)->param()->pT(), - dummySurface, - pCV); - - DataVector<const Trk::TrackStateOnSurface>* pParVec = new DataVector<const Trk::TrackStateOnSurface>; - - std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern; - typePattern.set(Trk::TrackStateOnSurface::Perigee); - - const Trk::TrackStateOnSurface* trackStateOnSurface = new Trk::TrackStateOnSurface(0, - pMP, - 0,0, - typePattern); - pParVec->push_back(trackStateOnSurface); - Trk::FitQuality* pFQ=new Trk::FitQuality((*trIt)->chi2(),1); - - if ((*trIt)->siSpacePoints()) { - std::vector<const TrigSiSpacePoint*>::iterator pSP=(*trIt)->siSpacePoints()->begin(); - std::vector<const TrigSiSpacePoint*>::iterator lastSP=(*trIt)->siSpacePoints()->end(); - for(int iSP=0; pSP != lastSP; pSP++, iSP++) { - if (m_sctId->is_sct((*pSP)->identify())) { - for (int iClusInSP=0; iClusInSP<2; iClusInSP++) { - const InDet::SCT_Cluster* pCL; - if (iClusInSP == 1) { - pCL = dynamic_cast<const InDet::SCT_Cluster*>((*pSP)->clusters().first); - } - else { - pCL = dynamic_cast<const InDet::SCT_Cluster*>((*pSP)->clusters().second); - } - if(!pCL) continue; - const IdentifierHash idHash = m_sctId->wafer_hash(m_sctId->wafer_id(pCL->identify())); - InDet::SCT_ClusterOnTrack* pSC=new InDet::SCT_ClusterOnTrack(pCL,pCL->localPosition(), - pCL->localCovariance().inverse(), - idHash,pCL->globalPosition(), - pCL->gangedPixel()); - - std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern; - typePattern.set(Trk::TrackStateOnSurface::Measurement); - - trackStateOnSurface=new Trk::TrackStateOnSurface(pSC, - 0, - 0, - 0, typePattern); - pParVec->push_back(trackStateOnSurface); - } - } - else { // Pixel spacepoint - const InDet::PixelCluster* pCL = dynamic_cast<const InDet::PixelCluster*>((*pSP)->clusters().first); - if(!pCL) continue; - const Amg::Vector3D glo(pCL->globalPosition()); - const IdentifierHash idHash = m_pixelId->wafer_hash(m_pixelId->wafer_id(pCL->identify())); - InDet::PixelClusterOnTrack* pSC=new InDet::PixelClusterOnTrack(pCL,pCL->localPosition(), - pCL->localCovariance().inverse(), - idHash,pCL->globalPosition(), - pCL->gangedPixel()); - std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern; - typePattern.set(Trk::TrackStateOnSurface::Measurement); - trackStateOnSurface=new Trk::TrackStateOnSurface(pSC, - 0, - 0, - 0, typePattern); - pParVec->push_back(trackStateOnSurface); - } - } - } - Trk::TrackInfo::TrackPatternRecoInfo pattRecInfo; - TrigInDetTrack::AlgoId onlineAuthor=(*trIt)->algorithmId(); - switch(onlineAuthor) - { - case TrigInDetTrack::STRATEGY_A_ID: { - pattRecInfo=Trk::TrackInfo::strategyA;break; - } - case TrigInDetTrack::STRATEGY_B_ID: { - pattRecInfo=Trk::TrackInfo::strategyB;break; - } - case TrigInDetTrack::STRATEGY_C_ID: { - pattRecInfo=Trk::TrackInfo::strategyC;break; - } - case TrigInDetTrack::STRATEGY_F_ID: { - pattRecInfo=Trk::TrackInfo::FTK;break; - } - default: { - pattRecInfo=Trk::TrackInfo::NumberOfTrackRecoInfo; - ATH_MSG_INFO("Default reached"); - } - }; - - Trk::TrackInfo info(Trk::TrackInfo::KalmanFitter,Trk::pion); - info.setPatternRecognitionInfo(pattRecInfo); - newTracks->push_back(new Trk::Track(info,pParVec,pFQ)); - } - return; -} - diff --git a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/src/components/TrigL2SiTrackFinder_entries.cxx b/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/src/components/TrigL2SiTrackFinder_entries.cxx deleted file mode 100644 index e0b54f7c38fd9cfd7acac548ab87fd5ee78085cd..0000000000000000000000000000000000000000 --- a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/src/components/TrigL2SiTrackFinder_entries.cxx +++ /dev/null @@ -1,5 +0,0 @@ - -#include "TrigL2SiTrackFinder/TrigL2SiTrackFinder.h" - -DECLARE_COMPONENT( TrigL2SiTrackFinder ) - diff --git a/Trigger/TriggerCommon/TriggerMenu/python/calibcosmicmon/BeamspotDef.py b/Trigger/TriggerCommon/TriggerMenu/python/calibcosmicmon/BeamspotDef.py index 9027c6633b89f5586b62359efd056d8c63e64ce9..b16166cd575300d61e3337424a767f94fccdf5a2 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/calibcosmicmon/BeamspotDef.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/calibcosmicmon/BeamspotDef.py @@ -94,50 +94,23 @@ class L2EFChain_Beamspot(L2EFChainDef): from TrigGenericAlgs.TrigGenericAlgsConf import PrescaleAlgo theAlg = PrescaleAlgo("terminateAlgo") - if ('L2StarB' in self.l2IDAlg): - if 'trkFS' in self.chainPart['addInfo'] : - from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_L2StarB - theFex = T2VertexBeamSpot_L2StarB() - elif 'activeTE' in self.chainPart['addInfo']: - from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeTE_L2StarB - theFex = T2VertexBeamSpot_activeTE_L2StarB() - elif 'allTE' in self.chainPart['addInfo']: - from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_L2StarB - theFex = T2VertexBeamSpot_activeAllTE_L2StarB() - else: - mlog.error('Cannot assemble chain %s - only configured for trkFS,allTE and activeTE' % (self.chainPartName)) - #from TrigSiTrack.TrigSiTrack_Config import TrigSiTrack_BeamSpot - TrigL2SiTrackFinder_Config = __import__('TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config', fromlist=[""]) - my_trk_alg = getattr(TrigL2SiTrackFinder_Config, "TrigL2SiTrackFinder_BeamSpotB") - trk_alg = [my_trk_alg()] - - elif ('trkfast' in self.l2IDAlg): - if 'trkFS' in self.chainPart['addInfo'] : - from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_FTF - theFex = T2VertexBeamSpot_FTF() - elif 'activeTE' in self.chainPart['addInfo']: - from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeTE_FTF - theFex = T2VertexBeamSpot_activeTE_FTF() - elif 'allTE' in self.chainPart['addInfo']: - from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_FTF - theFex = T2VertexBeamSpot_activeAllTE_FTF() - else: - mlog.error('Cannot assemble chain %s - only configured for trkFS,allTE and activeTE' % (self.chainPartName)) - - from TrigInDetConf.TrigInDetSequence import TrigInDetSequence - [trk_alg] = TrigInDetSequence("BeamSpot", "beamSpot", "IDTrig", sequenceFlavour=["FTF"]).getSequence() - + if 'trkFS' in self.chainPart['addInfo'] : + from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_FTF + theFex = T2VertexBeamSpot_FTF() + elif 'activeTE' in self.chainPart['addInfo']: + from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeTE_FTF + theFex = T2VertexBeamSpot_activeTE_FTF() + elif 'allTE' in self.chainPart['addInfo']: + from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_FTF + theFex = T2VertexBeamSpot_activeAllTE_FTF() else: - mlog.error('Cannot assemble chain %s - only configured for L2StarB' % (self.chainPartName)) - - from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo - -# self.L2sequenceList += [ [[""], [trk_alg], 'L2_BeamSpottracks']] + mlog.error('Cannot assemble chain %s - only configured for trkFS,allTE and activeTE' % (self.chainPartName)) + from TrigInDetConf.TrigInDetSequence import TrigInDetSequence + [trk_alg] = TrigInDetSequence("BeamSpot", "beamSpot", "IDTrig", sequenceFlavour=["FTF"]).getSequence() + + from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo -# self.L2sequenceList +=[[ self.L2InputTE, [theFex], 'L2_fex']] -# self.L2sequenceList +=[[['L2_fex'], [theAlg], 'L2_']] -# self.L2sequenceList += [ [[""], [PESA__DummyUnseededAllTEAlgo("L2DummyAlgo")]+trk_alg, 'L2_BeamSpottracks']] self.L2sequenceList +=[[['L2_BeamSpottracks'], [theFex], 'L2_fex']] @@ -149,7 +122,6 @@ class L2EFChain_Beamspot(L2EFChainDef): self.TErenamingDict = { 'L2_fex' : mergeRemovingOverlap('L2_', self.chainName+'_fex'), - #'L2_' : mergeRemovingOverlap('L2_', self.chainName+self.chainPart['addInfo'][0]), 'L2_' : mergeRemovingOverlap('L2_', self.chainName), 'L2_BeamSpottracks': mergeRemovingOverlap('L2_', self.chainName+'_BeamSpottracks'), } diff --git a/Trigger/TriggerCommon/TriggerMenu/python/calibcosmicmon/MonitorDef.py b/Trigger/TriggerCommon/TriggerMenu/python/calibcosmicmon/MonitorDef.py index 5f93f8c130c32533b8dcd2ee05720b2745039238..d0dfe7264a034766343856db41ca88c712179037 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/calibcosmicmon/MonitorDef.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/calibcosmicmon/MonitorDef.py @@ -234,63 +234,3 @@ class L2EFChain_Monitoring(L2EFChainDef): #################################### #################################### - def setupIdmonTrkFS(self): - - ## necessary alg imports - from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo as DummyRoI - theL2dummy = DummyRoI("DummyRoI_L2InDetMon") - theEFdummy = DummyRoI("DummyRoI_EFInDetMon") - - try: - from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_FullScanA, TrigL2SiTrackFinder_FullScanB - theTrigL2SiTrackFinder_FullScanA = TrigL2SiTrackFinder_FullScanA() - theTrigL2SiTrackFinder_FullScanB = TrigL2SiTrackFinder_FullScanB() - except Exception: - theTrigL2SiTrackFinder_FullScanA = None - theTrigL2SiTrackFinder_FullScanB = None - - - try: - from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_FullScanBC - theTrigL2SiTrackFinder_FullScanBC = TrigL2SiTrackFinder_FullScanBC() - except Exception: - theTrigL2SiTrackFinder_FullScanBC = None - - - - from InDetTrigRecExample import TrigEFIDSequence, TrigEFIDInsideOut_FullScan - theTrigEFIDSequence = TrigEFIDSequence("FullScan","fullScan","TRTOnly") - theTrigEFIDInsideOut_FullScan = TrigEFIDInsideOut_FullScan() - - from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo - - - self.L2SequenceList += [[self.L2InputTE, - [theL2dummy, - theTrigL2SiTrackFinder_FullScanA, - theTrigL2SiTrackFinder_FullScanB, - theTrigL2SiTrackFinder_FullScanBC], - 'L2_FStracks_L2StarAB']] - - - - self.EFsequenceList += [[["", - [PESA__DummyUnseededAllTEAlgo("EFDummyAlgo")]+ - theTrigEFIDInsideOut_FullScan, - 'EF_FStracks']]] - - self.EFsequenceList += [[[ "", [theEFdummy ]+ theTrigEFIDSequence, 'EF_FStracks_TRTOnly']]] - - - self.L2signatureList += [ [['L2_FStracks_L2StarAB']] ] - self.EFsignatureList += [ [['EF_FStracks', 'EF_FStracks_TRTOnly']] ] - - - - #<SIGNATURE logic="1" signature_counter="1"> - # <TRIGGERELEMENT te_name="EF_FStracks"/> - # <TRIGGERELEMENT te_name="EF_FStracks_TRTOnly"/> - - - #<SEQUENCE algorithm="PESA::DummyUnseededAllTEAlgo/EFDummyAlgo InDet::Pixel_TrgClusterization/PixelClustering_FullScan_EFID InDet::SCT_TrgClusterization/SCTClustering_FullScan_EFID InDet::TRT_TrgRIO_Maker/TRTDriftCircleMaker_FullScan_EFID InDet::SiTrigSpacePointFinder/SiTrigSpacePointFinder_FullScan_EFID InDet::SiTrigSPSeededTrackFinder/SiTrigTrackFinder_FullScan_EFID InDet::InDetTrigAmbiguitySolver/TrigAmbiguitySolver_FullScan_EFID InDet::TRT_TrigTrackExtensionAlg/TRTTrackExtAlg_FullScan_EFID InDet::InDetTrigExtensProcessor/TrigExtProcessor_FullScan_EFID InDet::TrigTrackSlimmer/InDetTrigTrackSlimmer_FullScan_EFID InDet::TrigVxPrimary/TrigVxPrimary_FullScan_EFID InDet::TrigParticleCreator/InDetTrigParticleCreation_FullScan_EFID" input="" output="EF_FStracks"/> - diff --git a/Trigger/TriggerCommon/TriggerMenu/python/minbias/MinBiasDef.py b/Trigger/TriggerCommon/TriggerMenu/python/minbias/MinBiasDef.py index b724d5793b2c3194425ce3350aeb2bb30c4e50fc..3941483ed56ad9494d38af1c0c846689ffa1740f 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/minbias/MinBiasDef.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/minbias/MinBiasDef.py @@ -577,15 +577,6 @@ class L2EFChain_MB(L2EFChainDef): chainSuffixEF = "hmt" theL2Fex1 = L2MbSpFex_noPix theL2Hypo1 = L2MbSpMhNoPixHypo_hip("L2MbSpMhNoPixHypo_hip_"+l2th1, float(l2th1)) - if "pusup" in self.chainPart['pileupInfo']: - doPusup=True - chainSuffixL2=l2hypo2+'_'+chainSuffixL2 - #L2 pileup suppression - from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_FullScan_ZF_OnlyA #TrigL2SiTrackFinder_FullScanA_ZF_OnlyA - - theL2PileupSup = TrigL2SiTrackFinder_FullScan_ZF_OnlyA() - theL2Fex2 = theL2PileupSup - theL2Hypo2 = HIL2VtxMultHypo("HIL2VtxMultHyp_"+l2th2, int(l2th2)) ########## EF algos ################## if "sumet" in self.chainPart['hypoEFsumEtInfo']: doSumEt=True @@ -677,36 +668,6 @@ class L2EFChain_MB(L2EFChainDef): l2hypo1 = self.chainPart['hypoL2Info'] l2th1=l2hypo1.lstrip('sp') - #print 'igb - l2th1:', l2th1 - ########## L2 algos ################## - if "hmtperf" in self.chainPart['recoAlg']: - chainSuffix = "sp"+l2th1+"_hmtperf" - - theL2Fex1 = L2MbSpFex_noPix - theL2Hypo1 = L2MbSpMhNoPixHypo_hip("L2MbSpMhNoPixHypo_hip_"+l2th1, float(l2th1)) - from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_FullScan_ZF_OnlyA #TrigL2SiTrackFinder_FullScanA_ZF_OnlyA - theL2PileupSup = TrigL2SiTrackFinder_FullScan_ZF_OnlyA() - theL2Fex2 = theL2PileupSup - theL2Hypo2 = HIL2VtxMultHypo("HIL2VtxMultHyp_PT") - theL2Hypo2.AcceptAll = True - - ########## EF algos ################## - #sum Et fex - from TrigEFMissingET.TrigEFMissingETConfig import EFMissingET_Fex_2sidednoiseSupp - theEFMETFex = EFMissingET_Fex_2sidednoiseSupp() - # sum Et hypo - from TrigMissingETHypo.TrigMissingETHypoConfig import EFMetHypoTE - theEFMETHypo = EFMetHypoTE('EFMetHypo_PT') - theEFMETHypo.forceAccept=True - - #tracking and vertexing fexes - theEFFex1 = efid - theEFFex2 = EFMbTrkFex - theEFFex3 = EFMbVxFex - - theEFHypo = MbVxHypo("EFMbVxHypoMh_hip_PT") - theEFHypo.AcceptAll_EF = True - ########### Sequence List ############## self.L2sequenceList += [["", diff --git a/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDef.py b/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDef.py index e3f5e163acf13eb6a5e7cf27deb905d7a13c5a26..3a02ee91fa57752cf6403bd2fd925f0c17684784 100755 --- a/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDef.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDef.py @@ -843,33 +843,13 @@ class L2EFChain_mu(L2EFChainDef): [theL2StandAloneHypo], 'L2_mu_hypo1']] - EFinputTE = '' - - if "L2Star" in self.chainPart['L2IDAlg']: # ---> this is Run1 tracking - keep it here - from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_MuonA # ---> this is Run1 tracking - keep it here - theTrigL2SiTrackFinder_MuonA = TrigL2SiTrackFinder_MuonA() - from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_MuonB - theTrigL2SiTrackFinder_MuonB = TrigL2SiTrackFinder_MuonB() - from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_MuonC - theTrigL2SiTrackFinder_MuonC = TrigL2SiTrackFinder_MuonC() - - self.L2sequenceList += [[['L2_mu_step1'], - [theTrigL2SiTrackFinder_MuonA, - theTrigL2SiTrackFinder_MuonB, - theTrigL2SiTrackFinder_MuonC, - theL2CombinedAlg], - 'L2_mu_step2']] - self.L2sequenceList += [[['L2_mu_step2'], - [theL2CombinedHypo], - 'L2_mu_hypo2']] - else: - self.L2sequenceList += [[['L2_mu_step1'], - trkfast+ - [theL2CombinedAlg], - 'L2_mu_step2']] - self.L2sequenceList += [[['L2_mu_step2'], - [theL2CombinedHypo], - 'L2_mu_hypo2']] + self.L2sequenceList += [[['L2_mu_step1'], + trkfast+ + [theL2CombinedAlg], + 'L2_mu_step2']] + self.L2sequenceList += [[['L2_mu_step2'], + [theL2CombinedHypo], + 'L2_mu_hypo2']] EFinputTE = 'L2_mu_step2' diff --git a/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDefIdTest.py b/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDefIdTest.py index 925202dd999b7b72942a174fe82cdceb73545b25..1b5efadb3fa43ac83a2520f9a410c26ed6fab192 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDefIdTest.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDefIdTest.py @@ -170,17 +170,6 @@ class L2EFChain_mu(L2EFChainDef): from InDetTrigRecExample.EFInDetConfig import TrigEFIDSequence theTrigEFIDDataPrep_Muon = TrigEFIDSequence("Muon","muon","DataPrep").getSequence() - #if "L2StarA" in self.chainPart['L2IDAlg']: # ---> this is Run1 tracking - keep it here - # from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_MuonA - # theTrigL2SiTrackFinder_MuonA = TrigL2SiTrackFinder_MuonA() - # from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_muonIsoA - # theTrigL2SiTrackFinder_muonIsoA = TrigL2SiTrackFinder_muonIsoA() - # id_alg_output = "STRATEGY_A" #depends on id_alg - #else: - # logMuonDef.error("Chain built with %s but so far only L2StarA,B and C are supported." % (self.chainPart['L2IDAlg'])) - # return False - - #id_alg_output = "STRATEGY_A" id_alg_output = "TrigFastTrackFinder_Muon" if "muComb" in self.chainPart['L2CBAlg']: muCombThresh = self.getMuCombThresh() @@ -229,10 +218,6 @@ class L2EFChain_mu(L2EFChainDef): if (self.doOvlpRm): self.L2sequenceList += [[['L2_mu_step1'], [theL2OvlpRmConfig_mufast ],'L2_step1a_wOvlpRm']] - #self.L2sequenceList += [[['L2_muon_standalone_wOvlpRm'], # ---> this is Run1 tracking - keep it here - # [theTrigL2SiTrackFinder_MuonA, - # theL2CombinedAlg, theL2CombinedHypo], - # 'L2_step1a_wOvlpRm']] self.L2sequenceList += [[['L2_step1a_wOvlpRm'], theTrigEFIDDataPrep_Muon+ [theTrigFastTrackFinder_Muon, theL2CombinedAlg, theL2CombinedHypo], 'L2_step1b_wOvlpRm']] @@ -240,11 +225,6 @@ class L2EFChain_mu(L2EFChainDef): EFinputTE = 'L2_step2_wOvlpRm' else: - #self.L2sequenceList += [[['L2_mu_step1'], # ---> this is Run1 tracking - keep it here - # [theTrigL2SiTrackFinder_MuonA, - # theL2CombinedAlg, theL2CombinedHypo], - # #], - # 'L2_mu_step2']] self.L2sequenceList += [[['L2_mu_step1'], theTrigEFIDDataPrep_Muon+ [theTrigFastTrackFinder_Muon, @@ -349,13 +329,6 @@ class L2EFChain_mu(L2EFChainDef): logMuonDef.error("Chain built with %s but so far only l2muonSA is supported." % (self.chainPart['L2SAAlg'])) return False - from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_MuonA # ---> this is Run1 tracking - keep it here - theTrigL2SiTrackFinder_MuonA = TrigL2SiTrackFinder_MuonA() - from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_MuonB - theTrigL2SiTrackFinder_MuonB = TrigL2SiTrackFinder_MuonB() - from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_MuonC - theTrigL2SiTrackFinder_MuonC = TrigL2SiTrackFinder_MuonC() - from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinder_Muon theTrigFastTrackFinder_Muon = TrigFastTrackFinder_Muon() from InDetTrigRecExample.EFInDetConfig import TrigEFIDSequence @@ -403,22 +376,12 @@ class L2EFChain_mu(L2EFChainDef): [theL2StandAloneAlg , theL2StandAloneHypo], 'L2_mu_step1']] - EFinputTE = '' - - if "L2Star" in self.chainPart['L2IDAlg']: # ---> this is Run1 tracking - keep it here - self.L2sequenceList += [[['L2_mu_step1'], - [theTrigL2SiTrackFinder_MuonA, - theTrigL2SiTrackFinder_MuonB, - theTrigL2SiTrackFinder_MuonC, - theL2CombinedAlg, theL2CombinedHypo], - 'L2_mu_step2']] - else: - self.L2sequenceList += [[['L2_mu_step1'], - theTrigEFIDDataPrep_Muon+ - [theTrigFastTrackFinder_Muon, - theL2CombinedAlg, - theL2CombinedHypo], - 'L2_mu_step2']] + self.L2sequenceList += [[['L2_mu_step1'], + theTrigEFIDDataPrep_Muon+ + [theTrigFastTrackFinder_Muon, + theL2CombinedAlg, + theL2CombinedHypo], + 'L2_mu_step2']] EFinputTE = 'L2_mu_step2'