diff --git a/Phys/TisTosTobbing/src/Hlt1TriggerTisTos.cpp b/Phys/TisTosTobbing/src/Hlt1TriggerTisTos.cpp index 76b4d1f53a58dfd3ce5a6018d78c0b59c4752aec..f6a3729d8176b25bd427f54599d4413cb6be820c 100644 --- a/Phys/TisTosTobbing/src/Hlt1TriggerTisTos.cpp +++ b/Phys/TisTosTobbing/src/Hlt1TriggerTisTos.cpp @@ -25,6 +25,8 @@ Hlt1TriggerTisTos::Hlt1TriggerTisTos( const std::string& type, : TriggerTisTos ( type, name , parent ) { declareInterface<ITriggerTisTos>(this); + setProperty("HltDecReportsLocation", "Hlt1/DecReports" ); + setProperty("HltSelReportsLocation", "Hlt1/SelReports" ); } //============================================================================= @@ -40,13 +42,5 @@ StatusCode Hlt1TriggerTisTos::initialize() const StatusCode sc = TriggerTisTos::initialize(); if ( sc.isFailure() ) return sc; - if ( m_HltDecReportsLocation.value() == LHCb::HltDecReportsLocation::Default ) - { - m_HltDecReportsLocation = "Hlt1/DecReports"; - } - if ( m_HltSelReportsLocation.value() == LHCb::HltSelReportsLocation::Default ) - { - m_HltSelReportsLocation = "Hlt1/SelReports"; - } return sc; } diff --git a/Phys/TisTosTobbing/src/Hlt2TriggerTisTos.cpp b/Phys/TisTosTobbing/src/Hlt2TriggerTisTos.cpp index a0db430f6753742b9c4c1e4fd57b69715ec5926d..87f5263a0c40fd84d84ea45463dce4452be949f5 100644 --- a/Phys/TisTosTobbing/src/Hlt2TriggerTisTos.cpp +++ b/Phys/TisTosTobbing/src/Hlt2TriggerTisTos.cpp @@ -25,6 +25,16 @@ Hlt2TriggerTisTos::Hlt2TriggerTisTos( const std::string& type, : TriggerTisTos ( type, name , parent ) { declareInterface<ITriggerTisTos>(this); + setProperty("HltDecReportsLocation", "Hlt2/DecReports" ); + setProperty("HltSelReportsLocation", "Hlt2/SelReports" ); + + // For Run 2 data Hlt2SelReports contain muon hits when IsMuonLoose is fulfiled. + // Due to an inconsistency with the TriggerTisTosTool which asks for IsMuon to take + // offline hits into account, this leads to particles being TPS instead of TOS. + // The following line disables that Muon hits are considered for TOS decisions. + // For a more detailed disucssion look at https://its.cern.ch/jira/browse/LHCBPS-1746 . + setProperty("TOSFracMuon", 0.0 ); + } //============================================================================= @@ -40,13 +50,11 @@ StatusCode Hlt2TriggerTisTos::initialize() const StatusCode sc = TriggerTisTos::initialize(); if ( sc.isFailure() ) return sc; - if ( m_HltDecReportsLocation.value() == LHCb::HltDecReportsLocation::Default ) - { - m_HltDecReportsLocation = "Hlt2/DecReports"; - } - if ( m_HltSelReportsLocation.value() == LHCb::HltSelReportsLocation::Default ) - { - m_HltSelReportsLocation = "Hlt2/SelReports"; + if ((getTOSFrac( kMuon ) > 0 )){ + Warning("L0 TOS fractions set positive for Muons. Be aware that for Run 2 data there is an issue when" + "including Muons in the Hlt2 TISTOS decision. See https://its.cern.ch/jira/browse/LHCBPS-1746.").ignore(); + Warning("TOS frac muon " + std::to_string(getTOSFrac( kMuon ))).ignore(); } + return sc; } diff --git a/Phys/TisTosTobbing/src/L0TriggerTisTos.cpp b/Phys/TisTosTobbing/src/L0TriggerTisTos.cpp index 180dde44024da0a845e8a56af490ea5bacf7277d..07eac4b7399143f510c5b4d87a43e6f7e9ea5895 100644 --- a/Phys/TisTosTobbing/src/L0TriggerTisTos.cpp +++ b/Phys/TisTosTobbing/src/L0TriggerTisTos.cpp @@ -25,6 +25,8 @@ L0TriggerTisTos::L0TriggerTisTos( const std::string& type, : TriggerTisTos ( type, name , parent ) { declareInterface<ITriggerTisTos>(this); + setProperty("HltDecReportsLocation", "HltLikeL0/DecReports" ); + setProperty("HltSelReportsLocation", "HltLikeL0/SelReports" ); } //============================================================================= @@ -39,15 +41,13 @@ StatusCode L0TriggerTisTos::initialize() { const StatusCode sc = TriggerTisTos::initialize(); if ( sc.isFailure() ) return sc; - - if ( m_HltDecReportsLocation.value() == LHCb::HltDecReportsLocation::Default ) - { - m_HltDecReportsLocation = "HltLikeL0/DecReports"; - } - if ( m_HltSelReportsLocation.value() == LHCb::HltSelReportsLocation::Default ) - { - m_HltSelReportsLocation = "HltLikeL0/SelReports"; + if ((getTOSFrac( kMuon ) <= 0 ) || (getTOSFrac( kEcal ) <= 0) || (getTOSFrac( kHcal ) <= 0) ){ + Warning("L0 TOS fractions set zero or negative for Muons, ECAL or HCAL. This will make the matching with L0 objects useless.").ignore(); + Warning("TOS frac muon " + std::to_string(getTOSFrac( kMuon ))).ignore(); + Warning("TOS frac ECAL " + std::to_string(getTOSFrac( kEcal ))).ignore(); + Warning("TOS frac HCAL " + std::to_string(getTOSFrac( kHcal ))).ignore(); } + debug() << "L0DecReportsMaker and L0SelReportsMaker must be executed before using this tool" << endmsg; debug() << "DecReport location = " << m_HltDecReportsLocation.value() diff --git a/Phys/TisTosTobbing/src/TisTosParticleTagger.cpp b/Phys/TisTosTobbing/src/TisTosParticleTagger.cpp index 098c564ebae3d6dc71414c8c54aa4e6501e3e490..b1e3dbe5d66a9463f7fb4b0517a5a1724e895069 100644 --- a/Phys/TisTosTobbing/src/TisTosParticleTagger.cpp +++ b/Phys/TisTosTobbing/src/TisTosParticleTagger.cpp @@ -417,21 +417,21 @@ StatusCode TisTosParticleTagger::execute() Particle* candi = const_cast<Particle*>(*particle); - - // This is a slow part of TisTos tool - do it only once - // only this tool is guaranteed to be allocated and configured - m_tistostool->setOfflineInput(*candi); - // copying offline hits is fast - if( split ){ - if( m_tistostoolHlt1 ){ - m_tistostoolHlt1->setOfflineInput( m_tistostool->offlineLHCbIDs() ); + // In general the TOSFraction settings of the different tools are different, so we can't rely on one of them to get + // the correct set of LHCbIDs for all of them. + if( split ) { + if( m_tistostoolHlt1 ) { + m_tistostoolHlt1->setOfflineInput( *candi ); } - if( m_tistostoolHlt2 ){ - m_tistostoolHlt2->setOfflineInput( m_tistostool->offlineLHCbIDs() ); + if( m_tistostoolHlt2 ) { + m_tistostoolHlt2->setOfflineInput( *candi ); } + } else { + m_tistostool->setOfflineInput( *candi ); } - if( m_tistostoolL0 ){ - m_tistostoolL0->setOfflineInput( m_tistostool->offlineLHCbIDs() ); + + if( m_tistostoolL0 ) { + m_tistostoolL0->setOfflineInput( *candi ); } bool acceptStage[NTriggerStages] = { false, false, false }; diff --git a/ReleaseNotes/v23r6.md b/ReleaseNotes/v23r6.md new file mode 100644 index 0000000000000000000000000000000000000000..3d156be5893090f0204bf7a0e9c2b16144b25536 --- /dev/null +++ b/ReleaseNotes/v23r6.md @@ -0,0 +1,16 @@ +2017-08-28 Phys v23r6 +===================== + +Release for 2017 production +--------------------------- + +This version is released on the 2017-patches branch. +It is based on Gaudi v28r2, LHCb v42r6, Lbcom v20r6 and Rec v21r6 and uses LCG_88 with ROOT 6.08.06. + +- Add TrackClonerWithClusters tool, modify CaloDigitCloner to support existing CaloAdc containers. + Required in Moore and Tesla, respectively. + - See merge request !168 +- Add a new functor for accessing related info. + - See merge request !158 +- LoKiPhys: add new functor ANNPID to provide access to arbitrary ANNPID tuning. + - See merge request !155