diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/python/TrigInDetConfiguredVtxCuts.py b/InnerDetector/InDetExample/InDetTrigRecExample/python/TrigInDetConfiguredVtxCuts.py new file mode 100644 index 0000000000000000000000000000000000000000..e1d891932927d63777bd129f6df1807e0a1ca457 --- /dev/null +++ b/InnerDetector/InDetExample/InDetTrigRecExample/python/TrigInDetConfiguredVtxCuts.py @@ -0,0 +1,178 @@ +# +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# + +from __future__ import print_function + +import AthenaCommon.SystemOfUnits as Units + + + +class ConfiguredTrigVtxCuts(): +# """docstring for ConfiguredTrigVtxCuts""" + def __init__(self, mode = ""): + self.__mode = mode + + # Cut level for the track selection tool. + self.__TrackCutLevel = "NoCut" + + # this is cutLevel = 1 + self.__minPT = 400. * Units.MeV + self.__IPd0Max = 4. # = 4. for useBeamConstraint()==true, = 10. for useBeamConstraint()==false + self.__IPz0Max = 1000. + self.__z0Max = 1000. + self.__sigIPd0Max = 5. + self.__sigIPz0Max = 10. + self.__d0significanceMax = -1. + self.__z0significanceMax = -1. + self.__etaMax = 9999. + + #cluster and track quality cuts + self.__useTrackSummaryInfo = True + self.__nHitInnermostLayer = 0 + self.__nHitPix = 1 + self.__nHolesPix = 1 + self.__nHitSct = 4 + self.__nHitSi = 6 + self.__nHitTrt = 0 + self.__nHitTrtHighEFractionMax = 1 + self.__nHitTrtHighEFractionWithOutliersMax = 1 + self.__useSharedHitInfo = False + self.__useTrackQualityInfo = False + self.__fitChi2OnNdfMax = 3.5 + self.__TrtMaxEtaAcceptance = 1.9 + + #cuts ONLY relevant to InDetPriVxFinder + Full or Fast or similar + self.__chi2CutMethod = 2 + self.__enableMultipleVertices = True + + self.__doMaxTracksCut = True + self.__MaxTracks = 3000 #Not applied anyway if above false + +# self.__indetflags = InDetFlags #TODO: implement or find InDetJobProperties + + def mode( self ) : + return self.__mode + + def TrackCutLevel( self ) : + return self.__TrackCutLevel + + def minPT( self ) : + return self.__minPT + + def IPd0Max( self ) : + return self.__IPd0Max + + def IPz0Max( self ) : + return self.__IPz0Max + + def z0Max( self ) : + return self.__z0Max + + def sigIPd0Max( self ) : + return self.__sigIPd0Max + + def sigIPz0Max( self ) : + return self.__sigIPz0Max + + def d0significanceMax( self ) : + return self.__d0significanceMax + + def z0significanceMax( self ) : + return self.__z0significanceMax + + def etaMax( self ) : + return self.__etaMax + + def useTrackSummaryInfo( self ) : + return self.__useTrackSummaryInfo + + def nHitInnermostLayer( self ) : + return self.__nHitInnermostLayer + + def nHitPix( self ): + return self.__nHitPix + + def nHitSct( self ): + return self.__nHitSct + + def nHitSi( self ): + return self.__nHitSi + + def nHitTrt( self ): + return self.__nHitTrt + + def nHitTrtHighEFractionMax(self): + return self.__nHitTrtHighEFractionMax + + def nHitTrtHighEFractionWithOutliersMax(self): + return self.__nHitTrtHighEFractionWithOutliersMax + + def useSharedHitInfo(self): + return self.__useSharedHitInfo + + def useTrackQualityInfo(self): + return self.__useTrackQualityInfo + + def fitChi2OnNdfMax(self): + return self.__fitChi2OnNdfMax + + def TrtMaxEtaAcceptance(self): + return self.__TrtMaxEtaAcceptance + + def MaxChi2PerTrack(self): + return self.__maxChi2PerTrack + + def nHolesPix(self): + return self.__nHolesPix + + def chi2CutMethod(self): + return self.__chi2CutMethod + + def enableMultipleVertices(self): + return self.__enableMultipleVertices + + def doMaxTracksCut(self): + return self.__doMaxTracksCut + + def MaxTracks(self): + return self.__MaxTracks + + def printInfo( self ) : + print('****** Inner Detector Primary Vertex Reconstruction Cuts ****************************') + print('*') + print('* mode is : ' + self.__mode) + #print('* cut level for primary vertexing is : ' + self.__indetflags.priVtxCutLevel()) + print('*') + print('* Track Cut Level : ' + self.__TrackCutLevel) + print('*') + print('* min pT : ' + str(self.__minPT) + ' MeV') + print('* Max IP d0 : ' + str(self.__IPd0Max)) + print('* Max IP Z0 : ' + str(self.__IPz0Max)) + print('* Max z0 : ' + str(self.__z0Max)) + print('* Max Sig IP d0 : ' + str(self.__sigIPd0Max)) + print('* Max Sig IP z0 : ' + str(self.__sigIPz0Max)) + print('* Max Sig d0 : ' + str(self.__d0significanceMax)) + print('* Max Sig z0 : ' + str(self.__z0significanceMax)) + print('* Max eta : ' + str(self.__etaMax)) + +#cluster and track quality cuts + print('* Use TrackSummary : ' + str(self.__useTrackSummaryInfo)) + print('* Min N Innermost Layer Hits : ' + str(self.__nHitInnermostLayer)) + print('* Min N Pix Hit : ' + str(self.__nHitPix)) + print('* Max N Pix Holes : ' + str(self.__nHolesPix)) + print('* Min N SCT Hits : ' + str(self.__nHitSct)) + print('* Min N Si Hits : ' + str(self.__nHitSi)) + print('* Min N TRT Hits : ' + str(self.__nHitTrt)) + print('* Min N high threshold hits TRT : ' + str(self.__nHitTrtHighEFractionMax)) + print('* Min N high threshold hits TRT (incl. outliers) : ' + str(self.__nHitTrtHighEFractionWithOutliersMax)) + print('* Use shared hit info : ' + str(self.__useSharedHitInfo)) + print('* Use Track Quality info : ' + str(self.__useTrackQualityInfo)) + print('* Chi2/ndf of the fit : ' + str(self.__fitChi2OnNdfMax)) + print('* TRT Max eta : ' + str(self.__TrtMaxEtaAcceptance)) + print('*') + print('* Chi2 cut method : ' + str(self.__chi2CutMethod )) + print('* Enable Multiple Vertices : ' + str(self.__enableMultipleVertices) ) + print('*') + print('***********************************************************************************') + diff --git a/InnerDetector/InDetRecAlgs/InDetPriVxFinder/python/InDetPriVxFinderMonitoring.py b/InnerDetector/InDetRecAlgs/InDetPriVxFinder/python/InDetPriVxFinderMonitoring.py index b77583df96d60d823188415bd36f5cd9ed1b8519..0828c432589ff2756b17b3e05d64aaaa2dc45fb1 100644 --- a/InnerDetector/InDetRecAlgs/InDetPriVxFinder/python/InDetPriVxFinderMonitoring.py +++ b/InnerDetector/InDetRecAlgs/InDetPriVxFinder/python/InDetPriVxFinderMonitoring.py @@ -2,8 +2,12 @@ from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool def InDetPriVxFinderMonitoringTool(): newMonTool = GenericMonitoringTool("PriVxMonTool") - newMonTool.defineHistogram('numTracks' , type='TH1F',path='EXPERT',title="Number of Input Tracks", xbins=200, xmin=0., xmax=200) - newMonTool.defineHistogram('numVertices', type='TH1F',path='EXPERT',title="Number of Vertices ", xbins=100, xmin=0., xmax=100) + + newMonTool.defineHistogram('allVertexNTracks' , type='TH1I',path='EXPERT',title="N of Input Tracks of all vertices" , xbins=50, xmin=0., xmax=50) + newMonTool.defineHistogram('primVertexNTracks' , type='TH1I',path='EXPERT',title="N of Input Tracks of primary vertices", xbins=50, xmin=0., xmax=50) + + newMonTool.defineHistogram('NVertices', type='TH1I',path='EXPERT',title="N of Vertices ", xbins=50, xmin=0., xmax=50) + #All vertices X vs Y position newMonTool.defineHistogram('allVertexZ', type='TH1F',path='EXPERT',title="All Vertex Z position", xbins=400, xmin=-50., xmax=50) @@ -17,9 +21,9 @@ def InDetPriVxFinderMonitoringTool(): #Just primary vertex - newMonTool.defineHistogram('primVertexZ', type='TH1F',path='EXPERT',title="All Vertex Z position", xbins=400, xmin=-50., xmax=50) - newMonTool.defineHistogram('primVertexChi2', type='TH1F',path='EXPERT',title="All Vertex Chi2 of the fit", xbins=100, xmin=0., xmax=10) - newMonTool.defineHistogram('primVertexnDoF', type='TH1F',path='EXPERT',title="All Vertex nDoF of the fit", xbins=100, xmin=0., xmax=10) + newMonTool.defineHistogram('primVertexZ', type='TH1F',path='EXPERT',title="Primary Vertex Z position", xbins=400, xmin=-50., xmax=50) + newMonTool.defineHistogram('primVertexChi2', type='TH1F',path='EXPERT',title="Primary Vertex Chi2 of the fit", xbins=100, xmin=0., xmax=10) + newMonTool.defineHistogram('primVertexnDoF', type='TH1F',path='EXPERT',title="Primary Vertex nDoF of the fit", xbins=100, xmin=0., xmax=10) newMonTool.defineHistogram('primVertexX, primVertexY',path='EXPERT', type='TH2F', title="Primary Vertex Y vs X; Vertex X [mm]; Vertex Y [mm]", diff --git a/InnerDetector/InDetRecAlgs/InDetPriVxFinder/src/InDetPriVxFinder.cxx b/InnerDetector/InDetRecAlgs/InDetPriVxFinder/src/InDetPriVxFinder.cxx index 3ce6d6ba6899b8c2c9b11de3eaec97c59cf24622..d508a6f4099afdb025b674bafbd1dedfa94ec4cf 100755 --- a/InnerDetector/InDetRecAlgs/InDetPriVxFinder/src/InDetPriVxFinder.cxx +++ b/InnerDetector/InDetRecAlgs/InDetPriVxFinder/src/InDetPriVxFinder.cxx @@ -109,104 +109,88 @@ namespace InDet { m_numEventsProcessed++; - auto numOfTracks = Monitored::Scalar<int>( "numTracks" , 0 ); - auto numOfVertices = Monitored::Scalar<int>( "numVertices" , 0 ); - SG::WriteHandle<xAOD::VertexContainer> outputVertices (m_vxCandidatesOutputName); - xAOD::VertexContainer* theXAODContainer = 0; - xAOD::VertexAuxContainer* theXAODAuxContainer = 0; - std::pair<xAOD::VertexContainer*,xAOD::VertexAuxContainer*> theXAODContainers - = std::make_pair( theXAODContainer, theXAODAuxContainer ); + xAOD::VertexContainer* vertexContainer = 0; + xAOD::VertexAuxContainer* vertexAuxContainer = 0; + std::pair< xAOD::VertexContainer*, xAOD::VertexAuxContainer* > vertexContainerPair + = std::make_pair( vertexContainer, vertexAuxContainer ); if(m_useTrackParticles){ SG::ReadHandle<xAOD::TrackParticleContainer> trackParticleCollection(m_tracksName); if(trackParticleCollection.isValid()){ - theXAODContainers = m_VertexFinderTool->findVertex ( trackParticleCollection.cptr() ); - numOfTracks = trackParticleCollection->size(); + vertexContainerPair = m_VertexFinderTool->findVertex ( trackParticleCollection.cptr() ); } else{ - ATH_MSG_DEBUG("No TrackParticle Collection with key "<<m_tracksName.key()<<" exists in StoreGate. No Vertexing Possible"); - return StatusCode::SUCCESS; + ATH_MSG_ERROR("No TrackParticle Collection with key "<<m_tracksName.key()<<" exists in StoreGate. No Vertexing Possible"); + return StatusCode::FAILURE; } } else{ SG::ReadHandle<TrackCollection> trackCollection(m_trkTracksName); if(trackCollection.isValid()){ - theXAODContainers = m_VertexFinderTool->findVertex ( trackCollection.cptr() ); - numOfTracks = trackCollection->size(); + vertexContainerPair = m_VertexFinderTool->findVertex ( trackCollection.cptr() ); } else{ - ATH_MSG_DEBUG("No Trk::Track Collection with key "<<m_trkTracksName.key()<<" exists in StoreGate. No Vertexing Possible"); - return StatusCode::SUCCESS; + ATH_MSG_ERROR("No Trk::Track Collection with key "<<m_trkTracksName.key()<<" exists in StoreGate. No Vertexing Possible"); + return StatusCode::FAILURE; } } - - - // now re-merge and resort the vertex container and store to SG xAOD::VertexContainer* myVertexContainer = 0; xAOD::VertexAuxContainer* myVertexAuxContainer = 0; - std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> myVxContainers + std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer* > myVertexContainerPair = std::make_pair( myVertexContainer, myVertexAuxContainer ); - - - if (theXAODContainers.first) { + + if (vertexContainerPair.first) { //sort xAOD::Vertex container - if(m_doVertexMerging && theXAODContainers.first->size() > 1) { - myVxContainers = m_VertexMergingTool->mergeVertexContainer( *theXAODContainers.first ); - delete theXAODContainers.first; //also cleans up the aux store - delete theXAODContainers.second; - theXAODContainers = myVxContainers; + if(m_doVertexMerging && vertexContainerPair.first->size() > 1) { + myVertexContainerPair = m_VertexMergingTool->mergeVertexContainer( *vertexContainerPair.first ); + delete vertexContainerPair.first; //also cleans up the aux store + delete vertexContainerPair.second; + vertexContainerPair = myVertexContainerPair; } - if (m_doVertexSorting && theXAODContainers.first->size() > 1) { - myVxContainers = m_VertexCollectionSortingTool->sortVertexContainer(*theXAODContainers.first); - delete theXAODContainers.first; //also cleans up the aux store - delete theXAODContainers.second; + if (m_doVertexSorting && vertexContainerPair.first->size() > 1) { + myVertexContainerPair = m_VertexCollectionSortingTool->sortVertexContainer(*vertexContainerPair.first); + delete vertexContainerPair.first; //also cleans up the aux store + delete vertexContainerPair.second; } else { - myVxContainers.first = theXAODContainers.first; - myVxContainers.second = theXAODContainers.second; + myVertexContainerPair.first = vertexContainerPair.first; + myVertexContainerPair.second = vertexContainerPair.second; } - if (myVxContainers.first == 0) { - ATH_MSG_WARNING("Vertex container has no associated store."); - return StatusCode::SUCCESS; + if (myVertexContainerPair.first == 0) { + ATH_MSG_ERROR("Vertex container has no associated store."); + return StatusCode::FAILURE; } - if (not myVxContainers.first->hasStore()) { - ATH_MSG_WARNING("Vertex container has no associated store."); - return StatusCode::SUCCESS; + if (not myVertexContainerPair.first->hasStore()) { + ATH_MSG_ERROR("Vertex container has no associated store."); + return StatusCode::FAILURE; } - ATH_MSG_DEBUG("Successfully reconstructed " << myVxContainers.first->size()-1 << " vertices (excluding dummy)"); - m_totalNumVerticesWithoutDummy += (myVxContainers.first->size()-1); - numOfVertices = m_totalNumVerticesWithoutDummy; + ATH_MSG_DEBUG("Successfully reconstructed " << myVertexContainerPair.first->size()-1 << " vertices (excluding dummy)"); + m_totalNumVerticesWithoutDummy += (myVertexContainerPair.first->size()-1); } - - //Loop over vertex container and monitor vertex parameters - for ( xAOD::VertexContainer::iterator vertexIter = myVxContainers.first->begin(); - vertexIter != myVxContainers.first->end(); ++vertexIter ) { - - monitor_vertex( "allVertex", **vertexIter); - - //This expects that vertices are already sorted by SumpT(or different criteria)!!! - if( vertexIter == myVxContainers.first->begin() ) monitor_vertex( "primVertex", **vertexIter); + ATH_CHECK(outputVertices.record(std::unique_ptr<xAOD::VertexContainer>(myVertexContainerPair.first),std::unique_ptr<xAOD::VertexAuxContainer>(myVertexContainerPair.second))); + + auto NVertices = Monitored::Scalar<int>( "NVertices" , 0 ); + for ( xAOD::VertexContainer::iterator vertexIter = myVertexContainerPair.first->begin(); + vertexIter != myVertexContainerPair.first->end(); ++vertexIter ) { + if((*vertexIter)->nTrackParticles() > 0 and (*vertexIter)->vertexType() != 0 ){ + NVertices++; + monitor_vertex( "allVertex", **vertexIter); + //This expects that vertices are already sorted by SumpT(or different criteria)!!! + if( vertexIter == myVertexContainerPair.first->begin() ) monitor_vertex( "primVertex", **vertexIter); + } } + auto mon = Monitored::Group( m_monTool, NVertices); - - - ATH_CHECK(outputVertices.record(std::unique_ptr<xAOD::VertexContainer>(myVxContainers.first),std::unique_ptr<xAOD::VertexAuxContainer>(myVxContainers.second))); - - - ATH_MSG_DEBUG( "Recorded Vertices with key: " << m_vxCandidatesOutputName.key() ); - - auto mon = Monitored::Group( m_monTool, numOfTracks, numOfVertices ); - return StatusCode::SUCCESS; } @@ -222,12 +206,26 @@ namespace InDet } void InDetPriVxFinder::monitor_vertex( const std::string &prefix, xAOD::Vertex vertex ){ - auto x = Monitored::Scalar<double>( prefix + "X", vertex.x() ); - auto y = Monitored::Scalar<double>( prefix + "Y", vertex.y() ); - auto z = Monitored::Scalar<double>( prefix + "Z", vertex.z() ); - auto chi2 = Monitored::Scalar<double>( prefix + "Chi2", vertex.chiSquared() ); - auto nDoF = Monitored::Scalar<double>( prefix + "nDoF", vertex.numberDoF() ); - auto mon = Monitored::Group(m_monTool, x, y, z, chi2, nDoF ); + if (prefix == "allVertex"){ + auto x = Monitored::Scalar<double>( "allVertexX", vertex.x() ); + auto y = Monitored::Scalar<double>( "allVertexY", vertex.y() ); + auto z = Monitored::Scalar<double>( "allVertexZ", vertex.z() ); + auto chi2 = Monitored::Scalar<double>( "allVertexChi2", vertex.chiSquared() ); + auto nDoF = Monitored::Scalar<double>( "allVertexnDoF", vertex.numberDoF() ); + auto NTracks = Monitored::Scalar<int> ( "allVertexNTracks", vertex.nTrackParticles() ); + auto mon = Monitored::Group(m_monTool, x, y, z, chi2, nDoF, NTracks ); + } + else if (prefix == "primVertex"){ + auto x = Monitored::Scalar<double>( "primVertexX", vertex.x() ); + auto y = Monitored::Scalar<double>( "primVertexY", vertex.y() ); + auto z = Monitored::Scalar<double>( "primVertexZ", vertex.z() ); + auto chi2 = Monitored::Scalar<double>( "primVertexChi2", vertex.chiSquared() ); + auto nDoF = Monitored::Scalar<double>( "primVertexnDoF", vertex.numberDoF() ); + auto NTracks = Monitored::Scalar<int> ( "primVertexNTracks", vertex.nTrackParticles() ); + auto mon = Monitored::Group(m_monTool, x, y, z, chi2, nDoF, NTracks ); + } } + + } // end namespace InDet diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDAChain.h b/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDAChain.h index fefd19330f313841885dfe95e3e9a7db1ecf876b..f29a7dd742c75dcf1abb3d0ddfebc1175187de74 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDAChain.h +++ b/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDAChain.h @@ -60,6 +60,10 @@ public: TIDA::Roi& back() { return m_roi.back(); } TIDA::Roi& operator[](int i) { return m_roi.at(i); } + TIDA::Roi& at(int i) { return m_roi.at(i); } + + const TIDA::Roi& operator[](int i) const { return m_roi.at(i); } + const TIDA::Roi& at(int i) const { return m_roi.at(i); } private: diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDAEvent.h b/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDAEvent.h index 508676633ecfdb37911c5d5ecab67893b538816f..1eeed988937db6c37bf2799418ed016440193a3e 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDAEvent.h +++ b/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDAEvent.h @@ -76,6 +76,8 @@ public: const std::vector<TIDA::Chain>& chains() const { return m_chains; }; std::vector<TIDA::Chain>& chains() { return m_chains; }; + const TIDA::Chain* chain( const std::string& s ) const; + //void setTruthMap(TrigInDetTrackTruthMap truthmap) { // m_truthmap = truthmap; //} diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDARoi.h b/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDARoi.h index 834893c81db605ebff019113ac27c9ccd2890d40..361fb79edb5dd612c14af22e8687ca0312231c8e 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDARoi.h +++ b/Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TIDARoi.h @@ -101,6 +101,7 @@ inline std::ostream& operator<<( std::ostream& s, const TIDA::Roi& r ) { for ( unsigned i=0 ; i<r.tracks().size() ; i++ ) s << "\n\t\t\t" << r.tracks()[i]; for ( unsigned i=0 ; i<r.user().size() ; i++ ) s << "\n\t\t\t" << r.user()[i]; for ( unsigned i=0 ; i<r.objects().size() ; i++ ) s << "\n\t\t\t" << r.objects()[i]; + s << "\tvertices: " << r.vertices().size(); for ( unsigned i=0 ; i<r.vertices().size() ; i++ ) s << "\n\t\t\t" << r.vertices()[i]; return s; } diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysis/src/TIDAEvent.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysis/src/TIDAEvent.cxx index e9576e66016ce3ec8428ebd27d8bdd799c8d0bc9..3be6edf04531629c5d5cd60104e23d94d73b36bb 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysis/src/TIDAEvent.cxx +++ b/Trigger/TrigAnalysis/TrigInDetAnalysis/src/TIDAEvent.cxx @@ -52,3 +52,9 @@ void TIDA::Event::erase( const std::string& name ) { + +const TIDA::Chain* TIDA::Event::chain( const std::string& s ) const { + /// could use std::find(), but would need to define an equality operator or lambda + for( size_t i=m_chains.size() ; i-- ; ) if ( m_chains[i].name()==s ) return &m_chains[i]; + return 0; +} diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysis/src/TIDARoi.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysis/src/TIDARoi.cxx index 8e3f0990c76ce59fe4e31a7ec58b17fdded9f8db..ee8159d8816416878cf1ada2ca4a2bdf448e5266 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysis/src/TIDARoi.cxx +++ b/Trigger/TrigAnalysis/TrigInDetAnalysis/src/TIDARoi.cxx @@ -21,7 +21,7 @@ TIDA::Roi::~Roi() { } void TIDA::Roi::addTracks( const std::vector<TIDA::Track*>& trackp) { - clear(); + m_tracks.clear(); m_tracks.reserve(trackp.size()); for ( unsigned i=0 ; i<trackp.size() ; i++ ) m_tracks.push_back(*trackp[i]); } diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfigMT_Tier0.h b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfigMT_Tier0.h index 938129828f10bb17d7366bb0dce7604a94283a32..0c8268a234e4c12970fa50cf1f5e880360d87638 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfigMT_Tier0.h +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfigMT_Tier0.h @@ -250,9 +250,8 @@ protected: m_first = false; - m_provider->msg(MSG::VERBOSE) << " using beam position\tx=" << xbeam << "\ty=" << ybeam << endmsg; - - if (m_provider->msg().level() <= MSG::VERBOSE) { + if ( m_provider->msg().level() <= MSG::VERBOSE ) { + m_provider->msg(MSG::VERBOSE) << " using beam position\tx=" << xbeam << "\ty=" << ybeam << endmsg; std::vector<std::string> configuredChains = (*(m_tdt))->getListOfTriggers("L2_.*, EF_.*, HLT_.*"); @@ -278,8 +277,10 @@ protected: /// get chain ChainString& chainName = (*chainitr); - m_provider->msg(MSG::INFO) << "process chain " << chainName << endmsg; - + if (m_provider->msg().level() <= MSG::VERBOSE) { + m_provider->msg(MSG::VERBOSE) << "process chain " << chainName << endmsg; + } + if ( chainName.head() == "" ) { std::string selectChain; @@ -338,10 +339,10 @@ protected: // m_chainNames.insert( m_chainNames.end(), chains.begin(), chains.end() ); m_chainNames = chains; - for ( unsigned ic=0 ; ic<m_chainNames.size() ; ic++ ) m_provider->msg(MSG::VERBOSE) << "Analyse chain " << m_chainNames[ic] << endmsg; - - // for ( unsigned ic=0 ; ic<m_chainNames.size() ; ic++ ) std::cout << "loop():: Analyse chain " << m_chainNames[ic] << std::endl; - + if(m_provider->msg().level() <= MSG::VERBOSE) { + for ( size_t ic=m_chainNames.size() ; ic-- ; ) m_provider->msg(MSG::VERBOSE) << "Analyse chain " << m_chainNames[ic] << endmsg; + } + } /// end of first event setup @@ -514,38 +515,12 @@ protected: std::vector<double> refbeamspot; std::vector<double> testbeamspot; + /// fetch offline vertices ... - - //std::vector<TIDA::Vertex> vertices; - m_provider->msg(MSG::VERBOSE) << "fetching AOD Primary vertex container" << endmsg; - const xAOD::VertexContainer* xaodVtxCollection = 0; - - if ( m_provider->evtStore()->retrieve( xaodVtxCollection, "PrimaryVertices" ).isFailure()) { - m_provider->msg(MSG::WARNING) << "xAOD Primary vertex container not found with key " << "PrimaryVertices" << endmsg; - } - - if ( xaodVtxCollection!=0 ) { - - m_provider->msg(MSG::VERBOSE) << "xAOD Primary vertex container " << xaodVtxCollection->size() << " entries" << endmsg; - - xAOD::VertexContainer::const_iterator vtxitr = xaodVtxCollection->begin(); - for ( ; vtxitr != xaodVtxCollection->end(); vtxitr++ ) { - if ( (*vtxitr)->nTrackParticles()>0 && (*vtxitr)->vertexType()!=0 ) { - vertices.push_back( TIDA::Vertex( (*vtxitr)->x(), - (*vtxitr)->y(), - (*vtxitr)->z(), - /// variances - (*vtxitr)->covariancePosition()(Trk::x,Trk::x), - (*vtxitr)->covariancePosition()(Trk::y,Trk::y), - (*vtxitr)->covariancePosition()(Trk::z,Trk::z), - (*vtxitr)->nTrackParticles(), - /// quality - (*vtxitr)->chiSquared(), - (*vtxitr)->numberDoF() ) ); - } - } + if ( !this->select( vertices, "PrimaryVertices" ) ) { + m_provider->msg(MSG::VERBOSE) << "could not retrieve vertex collection " "PrimaryVertices" << std::endl; } /// add the truth particles if needed @@ -680,6 +655,18 @@ protected: chain.back().addTracks(testtracks); + if ( vtx_name!="" ) { + + /// MT Vertex access + + m_provider->msg(MSG::VERBOSE) << "\tFetch xAOD::VertexContainer with key " << vtx_name << endmsg; + + std::vector<TIDA::Vertex> tidavertices; + + if ( this->select( tidavertices, vtx_name ) ) chain.back().addVertices( tidavertices ); + } + + if ( roiInfo ) delete roiInfo; } @@ -757,50 +744,16 @@ protected: /// now get the vertices if ( vtx_name!="" ) { - - m_provider->msg(MSG::VERBOSE) << "\tFetch xAOD::VertexContainer for chain " << chainConfig << " with key " << vtx_name << endmsg; - - std::pair< xAOD::VertexContainer::const_iterator, - xAOD::VertexContainer::const_iterator > vtx_itrpair = this->template getCollection<xAOD::VertexContainer>( roi_link, vtx_name ); - - if ( vtx_itrpair.first == vtx_itrpair.second ) { - m_provider->msg(MSG::WARNING) << "\tNo xAOD::Vertex for chain " << chainName << " for key " << vtx_name << endmsg; - } - else { - - m_provider->msg(MSG::INFO) << "\txAOD::VertexContainer found with size " << (vtx_itrpair.second - vtx_itrpair.first) - << "\t" << vtx_name << endmsg; - - xAOD::VertexContainer::const_iterator vtxitr = vtx_itrpair.first; - - for ( ; vtxitr!=vtx_itrpair.second ; vtxitr++ ) { - - /// leave this code commented so that we have a record of the change - as soon as we can - /// fix the missing track multiplicity from the vertex this will need to go back - // if ( ( (*vtxitr)->nTrackParticles()>0 && (*vtxitr)->vertexType()!=0 ) || vtx_name=="EFHistoPrmVtx" ) { - if ( (*vtxitr)->vertexType()!=0 || vtx_name=="EFHistoPrmVtx" ) { - - m_provider->msg(MSG::VERBOSE) << "\tvertex " << chainConfig << " " << (*vtxitr) << "\t name" << vtx_name << endmsg; - - chain.back().addVertex( TIDA::Vertex( (*vtxitr)->x(), - (*vtxitr)->y(), - (*vtxitr)->z(), - /// variances - (*vtxitr)->covariancePosition()(Trk::x,Trk::x), - (*vtxitr)->covariancePosition()(Trk::y,Trk::y), - (*vtxitr)->covariancePosition()(Trk::z,Trk::z), - (*vtxitr)->nTrackParticles(), - /// quality - (*vtxitr)->chiSquared(), - (*vtxitr)->numberDoF() ) ); - - } - } - } + std::vector<TIDA::Vertex> tidavertices; + + this->select( vertices, roi_link, vtx_name ); + + chain.back().addVertices( tidavertices ); } /// retrieve online vertices + #if 0 if ( dbg ) { std::cout << "\tTIDA analysis for chain: " << chainname << "\t key: " << key << "\t" << **roiptr << std::endl; diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/AnalysisConfigMT_Ntuple.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/AnalysisConfigMT_Ntuple.cxx index 149b90f237e2ad3de5dd5aaeb21250a1a97e5707..183061cf891c625d86067ee49aa894f95912d41a 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/AnalysisConfigMT_Ntuple.cxx +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/AnalysisConfigMT_Ntuple.cxx @@ -102,9 +102,9 @@ void AnalysisConfigMT_Ntuple::loop() { std::vector<std::string> configuredChains = (*m_tdt)->getListOfTriggers("L2_.*, EF_.*, HLT_.*"); - // m_provider->msg(MSG::INFO) << "[91;1m" << configuredChains.size() << " Configured Chains" << "[m" << endmsg; + m_provider->msg(MSG::VERBOSE) << "[91;1m" << configuredChains.size() << " Configured Chains" << "[m" << endmsg; for ( unsigned i=0 ; i<configuredChains.size() ; i++ ) { - // m_provider->msg(MSG::INFO) << "[91;1m" << "Chain " << configuredChains[i] << " (ACN)[m" << endmsg; + // m_provider->msg(MSG::VERBOSE) << "[91;1m" << "Chain " << configuredChains[i] << " (ACN)[m" << endmsg; configuredHLTChains.insert( configuredChains[i] ); } @@ -528,6 +528,7 @@ void AnalysisConfigMT_Ntuple::loop() { m_provider->msg(MSG::INFO) << "xAOD Primary vertex container " << xaodVtxCollection->size() << " entries" << endmsg; xAOD::VertexContainer::const_iterator vtxitr = xaodVtxCollection->begin(); + for ( ; vtxitr != xaodVtxCollection->end(); vtxitr++ ) { /// useful debug information - leave in @@ -568,11 +569,13 @@ void AnalysisConfigMT_Ntuple::loop() { /// useful debug information - leave in // std::cout << "SUTT Nvertices " << vertices.size() << "\ttype 101 " << vertices_full.size() << std::endl; +#if 0 + /// don;t add them to the event - since now we store them in the Vertex chain ... for ( unsigned i=0 ; i<vertices.size() ; i++ ) { m_provider->msg(MSG::DEBUG) << "vertex " << i << " " << vertices[i] << endmsg; m_event->addVertex(vertices[i]); } - +#endif /// offline object counters @@ -628,12 +631,17 @@ void AnalysisConfigMT_Ntuple::loop() { /// get the chain, collection and TE names and track index - const std::string& chainname = m_chainNames[ichain].head(); - const std::string& collectionname = m_chainNames[ichain].tail(); + std::string chainname = m_chainNames[ichain].head(); + std::string collectionname = m_chainNames[ichain].tail(); + std::string vtx_name = m_chainNames[ichain].vtx(); + if ( chainname!="" ) continue; if ( collectionname=="" ) continue; + chainname = collectionname; + if ( vtx_name!="" ) chainname += ":" + vtx_name; + /// useful debug information - leave this here // const std::string& index = m_chainNames[ichain].extra(); @@ -668,12 +676,72 @@ void AnalysisConfigMT_Ntuple::loop() { m_provider->msg(MSG::WARNING) << "\tcollection " << collectionname << " not found" << endmsg; } + + /// now retrieve any verttices for the analysis + + std::vector<TIDA::Vertex> tidavertices; + + m_provider->msg(MSG::INFO) << "\tFetch xAOD::VertexContainer with key " << vtx_name << endmsg; + + if ( vtx_name!="" ) { + + m_provider->msg(MSG::INFO) << "\tFetch xAOD::VertexContainer with key " << vtx_name << endmsg; + + /// MT Vertex access + + const xAOD::VertexContainer* xaodVtxCollection = 0; + + if ( m_provider->evtStore()->retrieve( xaodVtxCollection, vtx_name ).isFailure() ) { + m_provider->msg(MSG::WARNING) << "xAOD vertex container not found with key " << vtx_name << endmsg; + } + + if ( xaodVtxCollection!=0 ) { + + m_provider->msg(MSG::INFO) << "\txAOD::VertexContainer found with size " << xaodVtxCollection->size() + << "\t" << vtx_name << endmsg; + + xAOD::VertexContainer::const_iterator vtxitr = xaodVtxCollection->begin(); + + for ( ; vtxitr!=xaodVtxCollection->end() ; vtxitr++ ) { + + /// leave this code commented so that we have a record of the change - as soon as we can + /// fix the missing track multiplicity from the vertex this will need to go back + // if ( ( (*vtxitr)->nTrackParticles()>0 && (*vtxitr)->vertexType()!=0 ) || vtx_name=="EFHistoPrmVtx" ) { + + // useful debug comment, left for debugging purposes ... + // std::cout << "SUTT xAOD::Vertex::type() " << (*vtxitr)->type() + // << "\tvtxtype " << (*vtxitr)->vertexType() + // << "\tntrax " << (*vtxitr)->nTrackParticles() + // << "\tz " << (*vtxitr)->z() << std::endl; + + if ( (*vtxitr)->vertexType()!=0 || vtx_name=="EFHistoPrmVtx" ) { + tidavertices.push_back( TIDA::Vertex( (*vtxitr)->x(), + (*vtxitr)->y(), + (*vtxitr)->z(), + /// variances + (*vtxitr)->covariancePosition()(Trk::x,Trk::x), + (*vtxitr)->covariancePosition()(Trk::y,Trk::y), + (*vtxitr)->covariancePosition()(Trk::z,Trk::z), + (*vtxitr)->nTrackParticles(), + /// quality + (*vtxitr)->chiSquared(), + (*vtxitr)->numberDoF() ) ); + } + } + + } + + } + + + if ( found ) { - m_event->addChain( collectionname ); + m_event->addChain( chainname ); m_event->back().addRoi(TIDARoiDescriptor(true)); + if ( vtx_name!="" ) m_event->back().back().addVertices( tidavertices ); m_event->back().back().addTracks(selectorTest.tracks()); - + if ( selectorTest.getBeamX()!=0 || selectorTest.getBeamY()!=0 || selectorTest.getBeamZ()!=0 ) { std::vector<double> beamline_; beamline_.push_back( selectorTest.getBeamX() ); diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/ConfAnalysis.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/ConfAnalysis.cxx index ed8eb1fd28b0600bbca5cb49727dd800955f1c16..b0855525ee2b106e6b7d0f082c17d2c895aba886 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/ConfAnalysis.cxx +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/ConfAnalysis.cxx @@ -649,7 +649,7 @@ void ConfAnalysis::initialiseInternal() { // hit occupancies int NHits = 40; - int Ntracks = 1000; + int Ntracks = 10000; addHistogram( new TH1F( "nsct", "nsct", NHits, -0.5, float(NHits-0.5) ) ); addHistogram( new TH1F( "nsct_rec", "nsct_rec", NHits, -0.5, float(NHits-0.5) ) ); diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/comparitor.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/comparitor.cxx index 176d7de22728a327c66321cebe573599c5517844..03924a3b0dff113e2aeaea3b058be473a95be3f7 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/comparitor.cxx +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/comparitor.cxx @@ -1781,11 +1781,23 @@ int main(int argc, char** argv) { #if 1 if ( contains(histo.name(),"ntracks") ) { - htest->Rebin(2); - htest->Sumw2(); - if ( !noreftmp ) { - href->Rebin(2); - href->Sumw2(); + + double xm = htest->GetMean(); + + if ( xm>=10 ) { + double lxm = std::log10(xm); + int newbins = int(0.5+xm/std::pow(10,int(lxm)))*pow(10,int(lxm)); + int nrebin = int( (newbins+5)/10 ); + + if ( nrebin>1 ) { + std::cout << "rebin: " << htest->GetName() << "\tbins: " << nrebin << std::endl; + htest->Rebin(nrebin); + htest->Sumw2(); + if ( !noreftmp ) { + href->Rebin(nrebin); + href->Sumw2(); + } + } } } #endif @@ -1853,16 +1865,21 @@ int main(int argc, char** argv) { std::cout << "actual chain: " << actual_chain << std::endl; - + if ( actual_chain.find("HLT_IDTrack_")!=std::string::npos ) actual_chain.erase( actual_chain.find("HLT_IDTrack_"), 12 ); if ( actual_chain.find("_idperf")!=std::string::npos ) actual_chain.erase( actual_chain.find("_idperf"), 7 ); if ( actual_chain.find("_bperf")!=std::string::npos ) actual_chain.erase( actual_chain.find("_bperf"), 6 ); if ( actual_chain.find("_boffperf")!=std::string::npos ) actual_chain.erase( actual_chain.find("_boffperf"), 9 ); + if ( actual_chain.find("_HLT_")!=std::string::npos ) actual_chain.replace( actual_chain.find("_HLT_"), 5, " " ); + if ( actual_chain.find("HLT_")!=std::string::npos ) actual_chain.erase( actual_chain.find("HLT_"), 4 ); if ( collection.find("_IDTrkNoCut")!=std::string::npos ) collection.erase( collection.find("_IDTrkNoCut"), 11 ); if ( collection.find("xAODCnv")!=std::string::npos ) collection.erase( collection.find("xAODCnv"), 7 ); + if ( collection.find("HLT_IDTrack_")!=std::string::npos ) collection.erase( collection.find("HLT_IDTrack_"), 12 ); if ( collection.find("HLT_IDTrack")!=std::string::npos ) collection.erase( collection.find("HLT_IDTrack"), 11 ); if ( collection.find("Tracking")!=std::string::npos ) collection.replace( collection.find("Tracking"), 8, "Trk" ); if ( collection.find("InDetTrigTrk_")!=std::string::npos ) collection.erase( collection.find("InDetTrigTrk_"), 13 ); if ( collection.find("HLT_xAODTracks_")!=std::string::npos ) collection.erase( collection.find("HLT_xAODTracks_"), 15 ); + if ( collection.find("_HLT_")!=std::string::npos ) collection.replace( collection.find("_HLT_"), 5, " " ); + if ( collection.find("HLT_")!=std::string::npos ) collection.erase( collection.find("HLT_"), 4 ); std::string c = actual_chain + " : " + collection; diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/rmain.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/rmain.cxx index a2fb73f028aa0c07f21d4d3faf0b3a61eafbe865..f32b4b4e31f4626684cf077fa1efe186ee5edb67 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/rmain.cxx +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/rmain.cxx @@ -342,7 +342,6 @@ int usage(const std::string& name, int status) { // s << "\nSee " << PACKAGE_URL << " for more details\n"; s << "\nReport bugs to sutt@cern.ch"; s << std::endl; - return status; } @@ -781,7 +780,8 @@ int main(int argc, char** argv) else vtxind_rec = atoi_check( vertexSelection_rec ); } - + std::cout << "vertexSelection: " << vertexSelection << std::endl; + std::cout << "vertexSelection_rec: " << vertexSelection_rec << std::endl; #if 0 @@ -1390,7 +1390,10 @@ int main(int argc, char** argv) std::cout << "starting event loop " << time_str() << std::endl; - for ( unsigned ifile=0 ; run && ifile<filenames.size() && ( nfiles==0 || ifile<nfiles ) ; ifile++ ) { + size_t max_files = filenames.size(); + if ( nfiles!=0 && nfiles<max_files ) max_files = nfiles; + + for ( size_t ifile=0 ; run && ifile<max_files; ifile++ ) { bool newfile = true; @@ -1453,6 +1456,8 @@ int main(int argc, char** argv) // Nentries++; data->GetEntry(i); + + // if (i==0) { // std::cout << "TrkNtuple generated with: " << *releaseMetaData << std::endl;//Only necessary for first event // } @@ -1503,25 +1508,23 @@ int main(int argc, char** argv) hevent->Fill( event ); - - if ( filenames.size()<2 ) { - if ( (Nentries<10) || i%(Nentries/10)==0 || i%1000==0 || debugPrintout ) { + if ( (cNentries<10) || i%(cNentries/10)==0 || i%1000==0 || debugPrintout ) { std::cout << "run " << track_ev->run_number() << "\tevent " << track_ev->event_number() << "\tlb " << track_ev->lumi_block() << "\tchains " << track_ev->chains().size() << "\ttime " << track_ev->time_stamp(); - std::cout << "\t : processed " << i << " events so far (" << int((1000*i)/Nentries)*0.1 << "%)\t" << time_str() << std::endl; + std::cout << "\t : processed " << i << " events so far (" << int((1000*i)/cNentries)*0.1 << "%)\t" << time_str() << std::endl; // std::cerr << "\tprocessed " << i << " events so far \t" << time_str() << std::endl; } } - - if ( newfile ) { + else if ( newfile ) { int pfiles = filenames.size(); if ( nfiles>0 ) pfiles = nfiles; + std::cout << "file entries=" << data->GetEntries(); if ( data->GetEntries()<100 ) std::cout << " "; @@ -1566,7 +1569,7 @@ int main(int argc, char** argv) if ( truthMatch ) { for (unsigned int ic=0 ; ic<chains.size() ; ic++ ) { if ( chains[ic].name()=="Truth" ) { - truthTracks.selectTracks( chains[ic].rois()[0].tracks() ); + truthTracks.selectTracks( chains[ic][0].tracks() ); break; } } @@ -1575,9 +1578,9 @@ int main(int argc, char** argv) //// get the reference tracks for (unsigned int ic=0 ; ic<chains.size() ; ic++ ) { if ( chains[ic].name()==refChain ) { - offTracks.selectTracks( chains[ic].rois()[0].tracks() ); + offTracks.selectTracks( chains[ic][0].tracks() ); //extract beamline position values from rois - beamline_ref = chains[ic].rois()[0].user(); + beamline_ref = chains[ic][0].user(); // std::cout << "beamline: " << chains[ic].name() << " " << beamline_ref << std::endl; break; } @@ -1587,56 +1590,63 @@ int main(int argc, char** argv) /// select the reference offline vertices std::vector<TIDA::Vertex> vertices; - - const std::vector<TIDA::Vertex>& mv = track_ev->vertices(); - int selectvtx = -1; - double selection = 0; + // const std::vector<TIDA::Vertex>& mv = track_ev->vertices(); - // std::vector<TIDA::Vertex>& vertices = vertices; - - if ( bestPTVtx || bestPT2Vtx ) { - for ( unsigned iv=0 ; iv<mv.size() ; iv++ ) { - if ( mv[iv].Ntracks()==0 ) continue; - double selection_ = 0.0; - for (unsigned itr=0; itr<offTracks.tracks().size(); itr++){ + const TIDA::Chain* vtxchain = track_ev->chain("Vertex"); + + if ( vtxchain && vtxchain->size()>0 ) { + + const std::vector<TIDA::Vertex>& mv = vtxchain->at(0).vertices(); + + int selectvtx = -1; + double selection = 0; + + // std::vector<TIDA::Vertex>& vertices = vertices; + if ( debugPrintout ) std::cout << "vertices:\n" << mv << std::endl; + + if ( bestPTVtx || bestPT2Vtx ) { + for ( size_t iv=0 ; iv<mv.size() ; iv++ ) { + if ( mv[iv].Ntracks()==0 ) continue; + double selection_ = 0.0; + for (unsigned itr=0; itr<offTracks.tracks().size(); itr++){ TIDA::Track* tr = offTracks.tracks().at(itr); if( std::fabs(mv[iv].z()-tr->z0()) < 1.5 ) { if ( bestPTVtx ) selection_ += std::fabs(tr->pT()); else if ( bestPT2Vtx ) selection_ += std::fabs(tr->pT())*std::fabs(tr->pT()); } } - if( selection_>selection){ - selection = selection_; - selectvtx = iv; - } + if( selection_>selection){ + selection = selection_; + selectvtx = iv; + } + } + if ( selectvtx!=-1 ) vertices.push_back( mv[selectvtx] ); } - if ( selectvtx!=-1 ) vertices.push_back( mv[selectvtx] ); - } - else if ( vtxind>=0 ) { - if ( unsigned(vtxind)<mv.size() ) vertices.push_back( mv[vtxind] ); - } - else { - for ( unsigned iv=0 ; iv<mv.size() ; iv++ ) vertices.push_back( mv[iv] ); - } - - - // if ( vertices.size()>0 ) std::cout << "vertex " << vertices[0] << std::endl; - // else std::cout << "NO vertex !!!" << std::endl; - - /// always push back the vector - if required there will be only one vertex on it - filter_vertex.setVertex( vertices ); - - /// calculate number of "vertex tracks" - - NvtxCount = 0; - - for ( unsigned iv=0 ; iv<mv.size() ; iv++ ) { - int Ntracks = mv[iv].Ntracks(); - if ( Ntracks>NVtxTrackCut ) { /// do we really want this cut ??? - Nvtxtracks += Ntracks; - // vertices.push_back( mv[iv] ); - NvtxCount++; + else if ( vtxind>=0 ) { + if ( size_t(vtxind)<mv.size() ) vertices.push_back( mv[vtxind] ); + } + else { + for ( size_t iv=0 ; iv<mv.size() ; iv++ ) vertices.push_back( mv[iv] ); + } + + // if ( vertices.size()>0 ) std::cout << "vertex " << vertices[0] << std::endl; + // else std::cout << "NO vertex !!!" << std::endl; + + /// always push back the vector - if required there will be only one vertex on it + filter_vertex.setVertex( vertices ); + + /// calculate number of "vertex tracks" + + NvtxCount = 0; + + for ( unsigned iv=0 ; iv<mv.size() ; iv++ ) { + int Ntracks = mv[iv].Ntracks(); + if ( Ntracks>NVtxTrackCut ) { /// do we really want this cut ??? + Nvtxtracks += Ntracks; + // vertices.push_back( mv[iv] ); + NvtxCount++; + } } } @@ -1682,7 +1692,6 @@ int main(int argc, char** argv) if ( !foundReference ) continue; if ( debugPrintout ) { - std::cout << "vertices:\n" << mv << std::endl; std::cout << "reference chain:\n" << *refchain << std::endl; } diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUtils/TrigInDetAnalysisUtils/T_AnalysisConfig.h b/Trigger/TrigAnalysis/TrigInDetAnalysisUtils/TrigInDetAnalysisUtils/T_AnalysisConfig.h index 69ec81e65114b3626acbd8e130f5e4ab9d6364b5..d4b82488aa9f2e6306ebd469f15daac4042c6466 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisUtils/TrigInDetAnalysisUtils/T_AnalysisConfig.h +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUtils/TrigInDetAnalysisUtils/T_AnalysisConfig.h @@ -327,8 +327,116 @@ protected: return itrpair; } + + + + + + + + + + + bool select( std::vector<TIDA::Vertex>& vertices, + xAOD::VertexContainer::const_iterator vtx_start, + xAOD::VertexContainer::const_iterator vtx_end ) { + + xAOD::VertexContainer::const_iterator vtxitr = vtx_start; + + for ( ; vtxitr!=vtx_end ; vtxitr++ ) { + if ( (*vtxitr)->vertexType()!=0 ) { + m_provider->msg(MSG::VERBOSE) << "\tvertex " << (*vtxitr)->z() << endmsg; + + vertices.push_back( TIDA::Vertex( (*vtxitr)->x(), + (*vtxitr)->y(), + (*vtxitr)->z(), + /// variances + (*vtxitr)->covariancePosition()(Trk::x,Trk::x), + (*vtxitr)->covariancePosition()(Trk::y,Trk::y), + (*vtxitr)->covariancePosition()(Trk::z,Trk::z), + (*vtxitr)->nTrackParticles(), + /// quality + (*vtxitr)->chiSquared(), + (*vtxitr)->numberDoF() ) ); + + } + } + + return true; + } + + + bool select( std::vector<TIDA::Vertex>& vertices, + const ElementLink<TrigRoiDescriptorCollection>& roi_link, + const std::string& key="" ) { + + m_provider->msg(MSG::VERBOSE) << "\tFetch xAOD::VertexContainer for key: " << key << endmsg; + + std::pair< xAOD::VertexContainer::const_iterator, + xAOD::VertexContainer::const_iterator > vtx_itrpair = this->template getCollection<xAOD::VertexContainer>( roi_link, key ); + + if ( vtx_itrpair.first == vtx_itrpair.second ) { + m_provider->msg(MSG::WARNING) << "\tNo xAOD::Vertex collection for key " << key << endmsg; + return false; + } + + m_provider->msg(MSG::INFO) << "\txAOD::VertexContainer found with size " << (vtx_itrpair.second - vtx_itrpair.first) + << "\t:" << key << endmsg; + + return select( vertices, vtx_itrpair.first, vtx_itrpair.second ); + } + + + + + bool select( std::vector<TIDA::Vertex>& vertices, const std::string& key="" ) { + + m_provider->msg(MSG::VERBOSE) << "fetching AOD vertex container" << endmsg; + + const xAOD::VertexContainer* xaodVtxCollection = 0; + + if ( m_provider->evtStore()->retrieve( xaodVtxCollection, key ).isFailure()) { + m_provider->msg(MSG::WARNING) << "xAOD vertex container not found with key " << key << endmsg; + return false; + } + + if ( xaodVtxCollection!=0 ) { + + m_provider->msg(MSG::VERBOSE) << "xAOD vertex container " << xaodVtxCollection->size() << " entries" << endmsg; + + return select( vertices, xaodVtxCollection->begin(), xaodVtxCollection->end() ); + +#if 0 + + xAOD::VertexContainer::const_iterator vtxitr = xaodVtxCollection->begin(); + + for ( ; vtxitr != xaodVtxCollection->end(); vtxitr++ ) { + if ( (*vtxitr)->nTrackParticles()>0 && (*vtxitr)->vertexType()!=0 ) { + vertices.push_back( TIDA::Vertex( (*vtxitr)->x(), + (*vtxitr)->y(), + (*vtxitr)->z(), + /// variances + (*vtxitr)->covariancePosition()(Trk::x,Trk::x), + (*vtxitr)->covariancePosition()(Trk::y,Trk::y), + (*vtxitr)->covariancePosition()(Trk::z,Trk::z), + (*vtxitr)->nTrackParticles(), + /// quality + (*vtxitr)->chiSquared(), + (*vtxitr)->numberDoF() ) ); + } + } + +#endif + + } + + return true; + } + + + template<class Collection> bool selectTracks( TrigTrackSelector* selector, // const TrigCompositeUtils::LinkInfo<TrigRoiDescriptorCollection> roi_link, diff --git a/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDtrkMonitoringConfig.py b/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDtrkMonitoringConfig.py index b6e3d58fd04059c91ae1a71ef956910adf07979a..d431c4aa426518290ce2603501468edc5bdd8084 100644 --- a/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDtrkMonitoringConfig.py +++ b/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDtrkMonitoringConfig.py @@ -332,7 +332,7 @@ def TrigIDtrkMonitoringTool( legacy_monitoring=False ): if mt_chains: tidabjet.ntupleChainNames += [ "Offline", - ":key=HLT_IDTrack_FS_FTF", + ":HLT_IDTrack_FS_FTF:vtx=HLT_IDVertex_FS", "HLT_j.*.*boffperf.*:key=HLT_IDTrack_Bjet_FTF", "HLT_j.*.*boffperf.*:key=HLT_IDTrack_Bjet_IDTrig" ] diff --git a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py index 85b8bec6df85deca48f5387b073d5bce3ea0430c..b4a71aa9f30ad93e6840dee6ca629acaf20f023f 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py @@ -68,7 +68,7 @@ def impactEstimator_builder( signature, extrapolator ) : -def trackSelectorTool_builder( signature, trackSummaryTool, extrapolator ) : +def trackSelectorTool_builder( signature, trackSummaryTool, extrapolator, cuts ) : from AthenaCommon.AppMgr import ToolSvc @@ -77,26 +77,24 @@ def trackSelectorTool_builder( signature, trackSummaryTool, extrapolator ) : from InDetTrackSelectionTool.InDetTrackSelectionToolConf import InDet__InDetTrackSelectionTool trackSelectorTool = InDet__InDetTrackSelectionTool( name = "InDetTrigDetailedTrackSelectionTool" + signature, - Extrapolator = extrapolator ) - -# these changes need to go in next ... -# TrackSummaryTool = trackSummaryTool, -# CutLevel = configuredTrigVtxCuts.TrackCutLevel(), -# # maybe have all these cuts passed in just by passing in the configuredVtsCuts object -# minPt = configuredTrigVtxCuts.minPT(), -# maxD0 = configuredTrigVtxCuts.IPd0Max(), -# maxZ0 = configuredTrigVtxCuts.z0Max(), -# maxZ0SinTheta = configuredTrigVtxCuts.IPz0Max(), -# maxSigmaD0 = configuredTrigVtxCuts.sigIPd0Max(), -# maxSigmaZ0SinTheta = configuredTrigVtxCuts.sigIPz0Max(), -# maxChiSqperNdf = configuredTrigVtxCuts.fitChi2OnNdfMax(), # Seems not to be implemented? -# maxAbsEta = configuredTrigVtxCuts.etaMax(), -# minNInnermostLayerHits = configuredTrigVtxCuts.nHitInnermostLayer(), -# minNPixelHits = configuredTrigVtxCuts.nHitPix(), -# maxNPixelHoles = configuredTrigVtxCuts.nHolesPix(), -# minNSctHits = configuredTrigVtxCuts.nHitSct(), -# minNTrtHits = configuredTrigVtxCuts.nHitTrt(), -# minNSiHits = configuredTrigVtxCuts.nHitSi() ) + Extrapolator = extrapolator, + TrackSummaryTool = trackSummaryTool, + CutLevel = cuts.TrackCutLevel(), + # maybe have all these cuts passed in just by passing in the configuredVtsCuts object + minPt = cuts.minPT(), + maxD0 = cuts.IPd0Max(), + maxZ0 = cuts.z0Max(), + maxZ0SinTheta = cuts.IPz0Max(), + maxSigmaD0 = cuts.sigIPd0Max(), + maxSigmaZ0SinTheta = cuts.sigIPz0Max(), + maxChiSqperNdf = cuts.fitChi2OnNdfMax(), # Seems not to be implemented? + maxAbsEta = cuts.etaMax(), + minNInnermostLayerHits = cuts.nHitInnermostLayer(), + minNPixelHits = cuts.nHitPix(), + maxNPixelHoles = cuts.nHolesPix(), + minNSctHits = cuts.nHitSct(), + minNTrtHits = cuts.nHitTrt(), + minNSiHits = cuts.nHitSi() ) ToolSvc += trackSelectorTool @@ -147,12 +145,10 @@ def vertexFinderTool_builder( signature ) : trackSummaryTool = TrackingCommon.getInDetTrackSummaryTool() extrapolator = TrackingCommon.getInDetExtrapolator() - # NB: not yet ready to go in, but we have the code here in readiness ... # get the selection cuts use to select the actual tracks in the tool ... - # from InDetTrigRecExample.TrigInDetConfiguredVtxCuts import ConfiguredTrigVertexingCuts - # configuredTrigVtxCuts = ConfiguredTrigVertexingCuts() - # configuredTrigVtxCuts.printInfo() - + from InDetTrigRecExample.TrigInDetConfiguredVtxCuts import ConfiguredTrigVtxCuts + vtxcuts = ConfiguredTrigVtxCuts() + vtxcuts.printInfo() # now create the five sub tools needed ... @@ -160,7 +156,7 @@ def vertexFinderTool_builder( signature ) : linearTrackFactory = linearTrackFactory_builder( signature, extrapolator ) vertexFitterTool = vertexFitterTool_builder( signature, linearTrackFactory, extrapolator ) impactEstimator = impactEstimator_builder( signature, extrapolator ) - trackSelectorTool = trackSelectorTool_builder( signature, trackSummaryTool, extrapolator ) + trackSelectorTool = trackSelectorTool_builder( signature, trackSummaryTool, extrapolator, vtxcuts ) trackDensitySeedFinder = trackDensitySeedFinder_builder( signature ) # now create the actual vertex finder tool ... @@ -177,14 +173,13 @@ def vertexFinderTool_builder( signature ) : SeedFinder = trackDensitySeedFinder, ImpactPoint3dEstimator = impactEstimator, LinearizedTrackFactory = linearTrackFactory, - useBeamConstraint = False, + useBeamConstraint = True, significanceCutSeeding = 12, maximumChi2cutForSeeding = 49, maxVertices = 200, - createSplitVertices = False ) -# these too should go in next ... -# doMaxTracksCut = configuredTrigVtxCuts.doMaxTracksCut(), -# MaxTracks = configuredTrigVtxCuts.MaxTracks() ) + createSplitVertices = False, + doMaxTracksCut = vtxcuts.doMaxTracksCut(), + MaxTracks = vtxcuts.MaxTracks() ) # InDetAdaptiveMultiPriVxFinderTool job options for later diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref index 4ceb03769136600fd83b4e79e1c9de55a96170fc..14ae6a3342a95da54f9115f65b628ff761ce9f12 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref @@ -250,41 +250,41 @@ TrigSignatureMoniMT INFO HLT_j45_ftf_L1J15 #8684 TrigSignatureMoniMT INFO -- #868405538 Events 20 20 0 0 0 0 0 0 0 0 0 0 19 - 19 TrigSignatureMoniMT INFO -- #868405538 Features 0 0 0 0 0 0 0 0 0 0 50 - TrigSignatureMoniMT INFO HLT_j45_ftf_csskpf_nojcalib_L1J20 #3533281867 -TrigSignatureMoniMT INFO -- #3533281867 Events 19 19 0 0 0 0 0 0 0 0 0 0 15 - 15 -TrigSignatureMoniMT INFO -- #3533281867 Features 0 0 0 0 0 0 0 0 0 0 25 - +TrigSignatureMoniMT INFO -- #3533281867 Events 19 19 0 0 0 0 0 0 0 0 0 0 16 - 16 +TrigSignatureMoniMT INFO -- #3533281867 Features 0 0 0 0 0 0 0 0 0 0 30 - TrigSignatureMoniMT INFO HLT_j45_ftf_pf_L1J20 #1335156103 -TrigSignatureMoniMT INFO -- #1335156103 Events 19 19 0 0 0 0 0 0 0 0 0 0 16 - 16 -TrigSignatureMoniMT INFO -- #1335156103 Features 0 0 0 0 0 0 0 0 0 0 31 - +TrigSignatureMoniMT INFO -- #1335156103 Events 19 19 0 0 0 0 0 0 0 0 0 0 18 - 18 +TrigSignatureMoniMT INFO -- #1335156103 Features 0 0 0 0 0 0 0 0 0 0 39 - TrigSignatureMoniMT INFO HLT_j45_ftf_pf_nojcalib_L1J20 #3658890913 -TrigSignatureMoniMT INFO -- #3658890913 Events 19 19 0 0 0 0 0 0 0 0 0 0 15 - 15 -TrigSignatureMoniMT INFO -- #3658890913 Features 0 0 0 0 0 0 0 0 0 0 29 - +TrigSignatureMoniMT INFO -- #3658890913 Events 19 19 0 0 0 0 0 0 0 0 0 0 17 - 17 +TrigSignatureMoniMT INFO -- #3658890913 Features 0 0 0 0 0 0 0 0 0 0 37 - TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_011jvt_L1J15 #2857031468 -TrigSignatureMoniMT INFO -- #2857031468 Events 20 20 0 0 0 0 0 0 0 0 0 0 12 - 12 -TrigSignatureMoniMT INFO -- #2857031468 Features 0 0 0 0 0 0 0 0 0 0 20 - +TrigSignatureMoniMT INFO -- #2857031468 Events 20 20 0 0 0 0 0 0 0 0 0 0 16 - 16 +TrigSignatureMoniMT INFO -- #2857031468 Features 0 0 0 0 0 0 0 0 0 0 33 - TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_015jvt_L1J15 #2938374624 -TrigSignatureMoniMT INFO -- #2938374624 Events 20 20 0 0 0 0 0 0 0 0 0 0 12 - 12 -TrigSignatureMoniMT INFO -- #2938374624 Features 0 0 0 0 0 0 0 0 0 0 19 - +TrigSignatureMoniMT INFO -- #2938374624 Events 20 20 0 0 0 0 0 0 0 0 0 0 16 - 16 +TrigSignatureMoniMT INFO -- #2938374624 Features 0 0 0 0 0 0 0 0 0 0 33 - TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_059jvt_L1J15 #1593009344 -TrigSignatureMoniMT INFO -- #1593009344 Events 20 20 0 0 0 0 0 0 0 0 0 0 12 - 12 -TrigSignatureMoniMT INFO -- #1593009344 Features 0 0 0 0 0 0 0 0 0 0 19 - +TrigSignatureMoniMT INFO -- #1593009344 Events 20 20 0 0 0 0 0 0 0 0 0 0 16 - 16 +TrigSignatureMoniMT INFO -- #1593009344 Features 0 0 0 0 0 0 0 0 0 0 33 - TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_L1J15 #3341539267 TrigSignatureMoniMT INFO -- #3341539267 Events 20 20 0 0 0 0 0 0 0 0 0 0 19 - 19 -TrigSignatureMoniMT INFO -- #3341539267 Features 0 0 0 0 0 0 0 0 0 0 51 - +TrigSignatureMoniMT INFO -- #3341539267 Features 0 0 0 0 0 0 0 0 0 0 50 - TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 #991419339 -TrigSignatureMoniMT INFO -- #991419339 Events 19 19 0 0 0 0 0 0 0 0 0 0 19 4 4 -TrigSignatureMoniMT INFO -- #991419339 Features 0 0 0 0 0 0 0 0 0 0 50 8 +TrigSignatureMoniMT INFO -- #991419339 Events 19 19 0 0 0 0 0 0 0 0 0 0 19 11 11 +TrigSignatureMoniMT INFO -- #991419339 Features 0 0 0 0 0 0 0 0 0 0 49 21 TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 #1961149049 TrigSignatureMoniMT INFO -- #1961149049 Events 19 19 0 0 0 0 0 0 0 0 0 0 19 19 19 -TrigSignatureMoniMT INFO -- #1961149049 Features 0 0 0 0 0 0 0 0 0 0 50 50 +TrigSignatureMoniMT INFO -- #1961149049 Features 0 0 0 0 0 0 0 0 0 0 49 49 TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_pf_L1J20 #761060030 -TrigSignatureMoniMT INFO -- #761060030 Events 19 19 0 0 0 0 0 0 0 0 0 0 16 - 16 -TrigSignatureMoniMT INFO -- #761060030 Features 0 0 0 0 0 0 0 0 0 0 31 - +TrigSignatureMoniMT INFO -- #761060030 Events 19 19 0 0 0 0 0 0 0 0 0 0 18 - 18 +TrigSignatureMoniMT INFO -- #761060030 Features 0 0 0 0 0 0 0 0 0 0 39 - TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_L1J15 #1509925407 -TrigSignatureMoniMT INFO -- #1509925407 Events 20 20 0 0 0 0 0 0 0 0 0 0 18 - 18 -TrigSignatureMoniMT INFO -- #1509925407 Features 0 0 0 0 0 0 0 0 0 0 44 - +TrigSignatureMoniMT INFO -- #1509925407 Events 20 20 0 0 0 0 0 0 0 0 0 0 19 - 19 +TrigSignatureMoniMT INFO -- #1509925407 Features 0 0 0 0 0 0 0 0 0 0 45 - TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_pf_L1J20 #4012311417 -TrigSignatureMoniMT INFO -- #4012311417 Events 19 19 0 0 0 0 0 0 0 0 0 0 16 - 16 -TrigSignatureMoniMT INFO -- #4012311417 Features 0 0 0 0 0 0 0 0 0 0 31 - +TrigSignatureMoniMT INFO -- #4012311417 Events 19 19 0 0 0 0 0 0 0 0 0 0 18 - 18 +TrigSignatureMoniMT INFO -- #4012311417 Features 0 0 0 0 0 0 0 0 0 0 39 - TrigSignatureMoniMT INFO HLT_j45_nojcalib_L1J20 #2042444294 TrigSignatureMoniMT INFO -- #2042444294 Events 19 19 0 0 0 0 0 0 0 0 0 0 17 - 17 TrigSignatureMoniMT INFO -- #2042444294 Features 0 0 0 0 0 0 0 0 0 0 39 - @@ -325,8 +325,8 @@ TrigSignatureMoniMT INFO HLT_j85_ftf_L1J20 #8770 TrigSignatureMoniMT INFO -- #877042532 Events 19 19 0 0 0 0 0 0 0 0 0 0 13 - 13 TrigSignatureMoniMT INFO -- #877042532 Features 0 0 0 0 0 0 0 0 0 0 21 - TrigSignatureMoniMT INFO HLT_j85_ftf_pf_L1J20 #1538535401 -TrigSignatureMoniMT INFO -- #1538535401 Events 19 19 0 0 0 0 0 0 0 0 0 0 8 - 8 -TrigSignatureMoniMT INFO -- #1538535401 Features 0 0 0 0 0 0 0 0 0 0 13 - +TrigSignatureMoniMT INFO -- #1538535401 Events 19 19 0 0 0 0 0 0 0 0 0 0 11 - 11 +TrigSignatureMoniMT INFO -- #1538535401 Features 0 0 0 0 0 0 0 0 0 0 16 - TrigSignatureMoniMT INFO HLT_mb_sptrk_L1RD0_FILLED #4097312640 TrigSignatureMoniMT INFO -- #4097312640 Events 20 20 20 20 - - - - - - - - - - 20 TrigSignatureMoniMT INFO -- #4097312640 Features 20 20 - - - - - - - - - - @@ -724,14 +724,14 @@ TrigSignatureMoniMT INFO HLT_xe100_mht_L1XE50 #5 TrigSignatureMoniMT INFO -- #532175988 Events 10 10 0 0 0 0 0 0 0 0 0 0 6 - 6 TrigSignatureMoniMT INFO -- #532175988 Features 0 0 0 0 0 0 0 0 0 0 6 - TrigSignatureMoniMT INFO HLT_xe100_pfsum_L1XE50 #1890237897 -TrigSignatureMoniMT INFO -- #1890237897 Events 10 10 0 0 0 0 0 0 0 0 0 0 2 - 2 -TrigSignatureMoniMT INFO -- #1890237897 Features 0 0 0 0 0 0 0 0 0 0 2 - +TrigSignatureMoniMT INFO -- #1890237897 Events 10 10 0 0 0 0 0 0 0 0 0 0 4 - 4 +TrigSignatureMoniMT INFO -- #1890237897 Features 0 0 0 0 0 0 0 0 0 0 4 - TrigSignatureMoniMT INFO HLT_xe100_tcpufit_L1XE50 #2803198799 TrigSignatureMoniMT INFO -- #2803198799 Events 10 10 0 0 0 0 0 0 0 0 0 0 6 - 6 TrigSignatureMoniMT INFO -- #2803198799 Features 0 0 0 0 0 0 0 0 0 0 6 - TrigSignatureMoniMT INFO HLT_xe100_trkmht_L1XE50 #1055916731 -TrigSignatureMoniMT INFO -- #1055916731 Events 10 10 0 0 0 0 0 0 0 0 0 0 4 - 4 -TrigSignatureMoniMT INFO -- #1055916731 Features 0 0 0 0 0 0 0 0 0 0 4 - +TrigSignatureMoniMT INFO -- #1055916731 Events 10 10 0 0 0 0 0 0 0 0 0 0 7 - 7 +TrigSignatureMoniMT INFO -- #1055916731 Features 0 0 0 0 0 0 0 0 0 0 7 - TrigSignatureMoniMT INFO HLT_xe110_mht_L1XE50 #3030733259 TrigSignatureMoniMT INFO -- #3030733259 Events 10 10 0 0 0 0 0 0 0 0 0 0 6 - 6 TrigSignatureMoniMT INFO -- #3030733259 Features 0 0 0 0 0 0 0 0 0 0 6 - @@ -751,8 +751,8 @@ TrigSignatureMoniMT INFO HLT_xe30_mht_L1XE10 #36 TrigSignatureMoniMT INFO -- #3626903018 Events 19 19 0 0 0 0 0 0 0 0 0 0 19 - 19 TrigSignatureMoniMT INFO -- #3626903018 Features 0 0 0 0 0 0 0 0 0 0 19 - TrigSignatureMoniMT INFO HLT_xe30_pfsum_L1XE10 #998713382 -TrigSignatureMoniMT INFO -- #998713382 Events 19 19 0 0 0 0 0 0 0 0 0 0 14 - 14 -TrigSignatureMoniMT INFO -- #998713382 Features 0 0 0 0 0 0 0 0 0 0 14 - +TrigSignatureMoniMT INFO -- #998713382 Events 19 19 0 0 0 0 0 0 0 0 0 0 16 - 16 +TrigSignatureMoniMT INFO -- #998713382 Features 0 0 0 0 0 0 0 0 0 0 16 - TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 #1583719916 TrigSignatureMoniMT INFO -- #1583719916 Events 19 19 0 0 0 0 0 0 0 0 0 0 14 - 14 TrigSignatureMoniMT INFO -- #1583719916 Features 0 0 0 0 0 0 0 0 0 0 14 - diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref index eaabbf36b5a0c2e595247af7e89ef07311962ed7..127d6bc21d33f5b464c754d0adb7d5c742607376 100644 --- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref +++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref @@ -253,38 +253,38 @@ TrigSignatureMoniMT INFO HLT_j45_ftf_csskpf_nojc TrigSignatureMoniMT INFO -- #3533281867 Events 20 20 0 0 0 0 0 0 0 0 0 0 3 - 3 TrigSignatureMoniMT INFO -- #3533281867 Features 0 0 0 0 0 0 0 0 0 0 3 - TrigSignatureMoniMT INFO HLT_j45_ftf_pf_L1J20 #1335156103 -TrigSignatureMoniMT INFO -- #1335156103 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 - 5 -TrigSignatureMoniMT INFO -- #1335156103 Features 0 0 0 0 0 0 0 0 0 0 5 - +TrigSignatureMoniMT INFO -- #1335156103 Events 20 20 0 0 0 0 0 0 0 0 0 0 3 - 3 +TrigSignatureMoniMT INFO -- #1335156103 Features 0 0 0 0 0 0 0 0 0 0 3 - TrigSignatureMoniMT INFO HLT_j45_ftf_pf_nojcalib_L1J20 #3658890913 TrigSignatureMoniMT INFO -- #3658890913 Events 20 20 0 0 0 0 0 0 0 0 0 0 3 - 3 TrigSignatureMoniMT INFO -- #3658890913 Features 0 0 0 0 0 0 0 0 0 0 3 - TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_011jvt_L1J15 #2857031468 -TrigSignatureMoniMT INFO -- #2857031468 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 - 5 -TrigSignatureMoniMT INFO -- #2857031468 Features 0 0 0 0 0 0 0 0 0 0 5 - +TrigSignatureMoniMT INFO -- #2857031468 Events 20 20 0 0 0 0 0 0 0 0 0 0 4 - 4 +TrigSignatureMoniMT INFO -- #2857031468 Features 0 0 0 0 0 0 0 0 0 0 4 - TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_015jvt_L1J15 #2938374624 -TrigSignatureMoniMT INFO -- #2938374624 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 - 5 -TrigSignatureMoniMT INFO -- #2938374624 Features 0 0 0 0 0 0 0 0 0 0 5 - +TrigSignatureMoniMT INFO -- #2938374624 Events 20 20 0 0 0 0 0 0 0 0 0 0 4 - 4 +TrigSignatureMoniMT INFO -- #2938374624 Features 0 0 0 0 0 0 0 0 0 0 4 - TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_059jvt_L1J15 #1593009344 -TrigSignatureMoniMT INFO -- #1593009344 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 - 5 -TrigSignatureMoniMT INFO -- #1593009344 Features 0 0 0 0 0 0 0 0 0 0 5 - +TrigSignatureMoniMT INFO -- #1593009344 Events 20 20 0 0 0 0 0 0 0 0 0 0 4 - 4 +TrigSignatureMoniMT INFO -- #1593009344 Features 0 0 0 0 0 0 0 0 0 0 4 - TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_L1J15 #3341539267 -TrigSignatureMoniMT INFO -- #3341539267 Events 20 20 0 0 0 0 0 0 0 0 0 0 6 - 6 -TrigSignatureMoniMT INFO -- #3341539267 Features 0 0 0 0 0 0 0 0 0 0 6 - +TrigSignatureMoniMT INFO -- #3341539267 Events 20 20 0 0 0 0 0 0 0 0 0 0 7 - 7 +TrigSignatureMoniMT INFO -- #3341539267 Features 0 0 0 0 0 0 0 0 0 0 7 - TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 #991419339 -TrigSignatureMoniMT INFO -- #991419339 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 2 2 -TrigSignatureMoniMT INFO -- #991419339 Features 0 0 0 0 0 0 0 0 0 0 5 2 +TrigSignatureMoniMT INFO -- #991419339 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 1 1 +TrigSignatureMoniMT INFO -- #991419339 Features 0 0 0 0 0 0 0 0 0 0 5 1 TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 #1961149049 TrigSignatureMoniMT INFO -- #1961149049 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 5 5 TrigSignatureMoniMT INFO -- #1961149049 Features 0 0 0 0 0 0 0 0 0 0 5 5 TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_pf_L1J20 #761060030 -TrigSignatureMoniMT INFO -- #761060030 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 - 5 -TrigSignatureMoniMT INFO -- #761060030 Features 0 0 0 0 0 0 0 0 0 0 5 - +TrigSignatureMoniMT INFO -- #761060030 Events 20 20 0 0 0 0 0 0 0 0 0 0 3 - 3 +TrigSignatureMoniMT INFO -- #761060030 Features 0 0 0 0 0 0 0 0 0 0 3 - TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_L1J15 #1509925407 -TrigSignatureMoniMT INFO -- #1509925407 Events 20 20 0 0 0 0 0 0 0 0 0 0 6 - 6 +TrigSignatureMoniMT INFO -- #1509925407 Events 20 20 0 0 0 0 0 0 0 0 0 0 7 - 7 TrigSignatureMoniMT INFO -- #1509925407 Features 0 0 0 0 0 0 0 0 0 0 7 - TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_pf_L1J20 #4012311417 -TrigSignatureMoniMT INFO -- #4012311417 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 - 5 -TrigSignatureMoniMT INFO -- #4012311417 Features 0 0 0 0 0 0 0 0 0 0 5 - +TrigSignatureMoniMT INFO -- #4012311417 Events 20 20 0 0 0 0 0 0 0 0 0 0 3 - 3 +TrigSignatureMoniMT INFO -- #4012311417 Features 0 0 0 0 0 0 0 0 0 0 3 - TrigSignatureMoniMT INFO HLT_j45_nojcalib_L1J20 #2042444294 TrigSignatureMoniMT INFO -- #2042444294 Events 20 20 0 0 0 0 0 0 0 0 0 0 3 - 3 TrigSignatureMoniMT INFO -- #2042444294 Features 0 0 0 0 0 0 0 0 0 0 3 - @@ -724,8 +724,8 @@ TrigSignatureMoniMT INFO HLT_xe100_mht_L1XE50 #5 TrigSignatureMoniMT INFO -- #532175988 Events 20 20 0 0 0 0 0 0 0 0 0 0 2 - 2 TrigSignatureMoniMT INFO -- #532175988 Features 0 0 0 0 0 0 0 0 0 0 2 - TrigSignatureMoniMT INFO HLT_xe100_pfsum_L1XE50 #1890237897 -TrigSignatureMoniMT INFO -- #1890237897 Events 20 20 0 0 0 0 0 0 0 0 0 0 0 - 0 -TrigSignatureMoniMT INFO -- #1890237897 Features 0 0 0 0 0 0 0 0 0 0 0 - +TrigSignatureMoniMT INFO -- #1890237897 Events 20 20 0 0 0 0 0 0 0 0 0 0 1 - 1 +TrigSignatureMoniMT INFO -- #1890237897 Features 0 0 0 0 0 0 0 0 0 0 1 - TrigSignatureMoniMT INFO HLT_xe100_tcpufit_L1XE50 #2803198799 TrigSignatureMoniMT INFO -- #2803198799 Events 20 20 0 0 0 0 0 0 0 0 0 0 0 - 0 TrigSignatureMoniMT INFO -- #2803198799 Features 0 0 0 0 0 0 0 0 0 0 0 - @@ -751,14 +751,14 @@ TrigSignatureMoniMT INFO HLT_xe30_mht_L1XE10 #36 TrigSignatureMoniMT INFO -- #3626903018 Events 20 20 0 0 0 0 0 0 0 0 0 0 16 - 16 TrigSignatureMoniMT INFO -- #3626903018 Features 0 0 0 0 0 0 0 0 0 0 16 - TrigSignatureMoniMT INFO HLT_xe30_pfsum_L1XE10 #998713382 -TrigSignatureMoniMT INFO -- #998713382 Events 20 20 0 0 0 0 0 0 0 0 0 0 3 - 3 -TrigSignatureMoniMT INFO -- #998713382 Features 0 0 0 0 0 0 0 0 0 0 3 - +TrigSignatureMoniMT INFO -- #998713382 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 - 5 +TrigSignatureMoniMT INFO -- #998713382 Features 0 0 0 0 0 0 0 0 0 0 5 - TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 #1583719916 TrigSignatureMoniMT INFO -- #1583719916 Events 20 20 0 0 0 0 0 0 0 0 0 0 6 - 6 TrigSignatureMoniMT INFO -- #1583719916 Features 0 0 0 0 0 0 0 0 0 0 6 - TrigSignatureMoniMT INFO HLT_xe30_trkmht_L1XE10 #2468872349 -TrigSignatureMoniMT INFO -- #2468872349 Events 20 20 0 0 0 0 0 0 0 0 0 0 5 - 5 -TrigSignatureMoniMT INFO -- #2468872349 Features 0 0 0 0 0 0 0 0 0 0 5 - +TrigSignatureMoniMT INFO -- #2468872349 Events 20 20 0 0 0 0 0 0 0 0 0 0 4 - 4 +TrigSignatureMoniMT INFO -- #2468872349 Features 0 0 0 0 0 0 0 0 0 0 4 - TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 #531141817 TrigSignatureMoniMT INFO -- #531141817 Events 20 20 0 0 0 0 0 0 0 0 0 0 0 - 0 TrigSignatureMoniMT INFO -- #531141817 Features 0 0 0 0 0 0 0 0 0 0 0 -