Merge branch 'v21r1-release' into 'master'
Prepare v21r1 release <H1><A NAME=v21r1>2017-02-01 RecSys v21r1</A></H1> This version uses Gaudi v28r1, LHCb v42r1 and Lbcom v20r1 (and LCG_87 with ROOT 6.08.02) <p> This version is released on master branch. <h2>New or improved functionality</h2> <dl> <dt>[MR !427] Import RichFuture functional packages from future branch <dd> Requires lhcb/LHCb!512 <dt>[MR !448] RichFuture - Improved pmt support <dd> Predicted pixel signal algorithm now uses the new `DeRichPD` pixel area access methods added in lhcb/LHCb!522 . This means this algorithm now transparently takes HPD/PMT differences into account. <dd> Update track CK theta resolution algorithm - see MR message for detailed description of this change <dt>[MR !457] Update RecSummaryAlg to use the new RichFuture decoded data via the TES when available, instead of the provider. <dd> Requires lhcb/LHCb!527 <dt>[MR !456] RichFuture - Add track and cluster GEC cuts, and 'OnlineBrunel' mode. <dt>[MR !460] RichFuture - Use the new IMirrorSegFinderLookUpTable interface. <dd> Based on lhcb/LHCb!529 and lhcb/Lbcom!115. <dt>[MR !463] Fix an infrequent DLL warning from Rich Future Global PID <dd> Fixes "WARNING Rich::Future::Rec::GlobalPID::WriteRichPIDs:: Track has non-zero best deltaLL value StatusCode=FAILURE" <dt>[MR !423] [LHCBPS-1681] Replace temporary version of Track1DTabFunc (temporarily added in !394) <dd> The ghost probability (Tr/TrackTools/*/TrackNNGhostId.* and Tr/TrackTools/*/Run2GhostId.*) used the 1D tabulated function from RichDet which is being replaced (lhcb/LHCb!451). This MR is a standalone implementation of a 1 dimensional tabulated function for the ghost probability, taking into account that (from run2 onwards) the tabulation binning is equidistant in y [sic]. <dt>[MR !471] Updated PatLongLivedParams for new resolution studies <dt>[MR !470] Added function to PatDebugTTTruthTool that checks if track is downstream reconstructible </dl> <h2>Code speedups</h2> <dl> <dt>[MR !401] Get rid of unnecessary if in PatAddTTCoord <dt>[MR !424] PatMatchTool speedup <dd> Improve timing of PatMatchTool by buffering the state in the inner loop. Gains about 45% according to callgrind. <dt>[MR !453] Speedup in PrMatchToolNN <dd> Change double to float <dd> Sort states according to extrapolated y-position <dd> Use binary searches to only calculate chi2 and MVA value for close states. <dd> Do some C++11 changes <dd> Use new method for Gaudi::Property. <dt>[MR !459] Tr/TrackTools/src/UpgradeGhostId.cpp: Reserve sufficiently large vector<double> for MLP observables <dd> Based on https://indico.cern.ch/event/600120/contributions/2444101/attachments/1398576/2133160/Ghost_Probability_for_upgrade.pdf it seems there is a lot of time to be gained by pre-allocating sufficient memory for the vector of observables. <dt>[MR !479] Speed up (factor 10) the RICH future emitted photon yield algorithm </dl> <h2>Bug fixes</h2> <dl> <dt>[MR !389] CaloSelectCluster.h: Fix uninitialized pointer <dt>[MR !469] Fix VeloTrackMonitorNT <dd> Bug fix: the arguments for the position function of VeloClusterPosition should be the global point of the hit, not the track first state as it used to be. </dl> <h2>Monitoring changes</h2> <dl> <dt>[MR !418] RichTools: improve debug <dt>[MR !414] Update current RichRecoQC to ignore MC type when deciding the assumed type, to be consistent with real data <dt>[MR !442] Add new RICH Future MC truth Cherenkov resolution monitor <dd> Relies on lhcb/LHCb!517 <dt>[MR !462] Rich future monitors renamed to match current <dd> To ease deployment of the new RICH sequence at the pit, the monitor names are updated to match those used in the old sequence, as then the DQ and monitoring will be blind to the change. <dd> Also This add a 'Tight' resolution monitor, that uses restrictive track cuts to get a cleaned up sample, used for the n-1 calibration online. </dl> <h2>Changes to tests</h2> <dl> <dt>[MR !420] LumiAlgs lumi2reader test: update reference to follow Gaudi v28r1 </dl> <h2>Thread safety</h2> <dl> <dt>[MR !440] Changes to Tf/FastVelo and Tf/PatVelo to make the code thread safe <dd> Remove mutable variables giving state to PatVeloSpaceTool <dd> Adapt FastVeloTracking and HitManager to use the new TES object defined in lhcb/LHCb!516 rather than the deleted DeVeloSensor::Tell1EventInfo. <dd> See also LHCBPS-1680 <dt>[MR !454] Make VeloHitManager, TrackVelodEdxCharge and VeloClusterPosition thread safe <dd> Removed unnecessary mutables from VeloHitManager <dd> Made TrackVelodEdxCharge counters thread safe <dd> Removed unnecessary internal state from VeloClusterPosition tool. <dd> See also LHCBPS-1680 </dl> <h2>Code modernisations and cleanups</h2> <dl> <dt>[MR !428] Fully qualify enum values (see lhcb/LHCb!513) <dt>[MR !386] Modernize HltMonitors <dd> replace BOOST_FOREACH with range-based for loop <dd> replace boost/assign/list_of with (implicit) std::initializer_list <dd> do not implement derived methods that just call their base class version <dd> prefer STL algorithms over raw loops <dd> prefer implicit destructors <dd> remove obsolete SVN/CVS keywords <dd> prefer lambda callbacks over member function callbacks <dd> prefer .empty() over comparison with "" <dt>[MR !430] Modernize HitManagers & hit comparison operators <dd> Always sort hits in hitmanagers as they are added, avoid sorting on demand, and make it impossible to use inconsistent comparisons. <dd> Replace templated binary comparisons classes with non-templated classes, with templated operator() instead. <dd> Make sure that the same comparison classes can be used for std::sort and std::lower_bound <dd> replace BOOST_FOREACH with range-based for loop <dt>[MR !385] Modernize PrAlgorithms <dd> prefer auto <dd> remove use of BOOST_FOREACH <dd> prefer range-based for loops <dd> prefer implicit destructors <dd> prefer direct member initialization <dd> prefer emplace_back over push_back <dd> prefer inheriting from extends over virtual inheritance <dd> add final <dd> remove inclusion of unused header Event/TrackFunctor.h <dd> prefer assignement over hard-wired set of push_backs <dt>[MR !384] Modernize PatAlgorithms,PatKernel,TsaAlgorithms,TsaKernel <dd> prefer implicit destructors <dd> add final <dd> prefer auto <dd> avoid deprecated std::binary_function <dd> prefer non-template comparison class with templated operator() <dd> replace boost/array with std::array <dd> prefer call-by-value-followed-by-move over call-by-const-ref-followed-by-copy <dd> prefer removing items from vectors over copying selected items <dt>[MR !433] Modernize PatAlgorithms <dd> prefer implicit destructors <dd> prefer Gaudi::Property <dd> remove obsolete CVS/SVN keywords <dd> prefer inheriting constructors (requires on !432) <dd> prefer standalone function in anonymous namespace over member functions which do not interact with their class <dd> prefer STL algorithms <dd> prefer assignment of std::initializer_list over repeated push_backs <dt>[MR !446] Modernize RecInterfaces <dd> prefer DeclareInterface <dd> prefer inheritance of extend_interfaces over virtual inheritance <dd> prefer struct <dd> remove obsolete CVS/SVN keywords <dt>[MR !383] Modernize TrackInterfaces, TrackExtrapolators, TrackKernel, TrackTools, TrackUtils <dd> prefer STL algorithms over raw loops <dd> prefer auto <dd> add ( ) around ?: <dd> prefer inheriting from extends over virtual inheritance <dd> prefer inheriting from extend_interfaces over virtual inheritance <dd> prefer DeclareInterfaceID over explicit interface ID definition <dd> prefer struct over class when there are only public methods <dd> remove include of unused Event/TrackFunctor.h <dd> prefer std::make_unique <dd> add final <dt>[MR !432] Modernize TrackInterfaces <dd> prefer struct <dd> prefer extend_interfaces <dd> prefer DeclareInterfaceID <dd> make ISTSpilloverTool const correct <dt>[MR !382] Modernize TrackCheckers <dd> replace BOOST_FOREACH with range-based for loop <dd> do not cast if not neccesary <dd> do not include unused header "Event/TrackFunctor.h" <dt>[MR !438] Modernize TrackExtrapolators <dd> prefer Gaudi::Property <dd> prefer direct member initialization <dd> prefer inherited constructors <dd> remove disable of warnings for Intel compiler (warning should be fixed by 'using' statement) <dd> prefer std::make_unique over standalone equivalent <dd> prefer implicit destructors <dd> do not cache msgLevel(MSG::DEBUG) <dt> [MR !437] Modernize TrackProjectors <dd> prefer Gaudi::Property <dd> prefer inheriting from extends over explicit virtual inheritance <dd> prefer direct member initialization <dd> prefer inherited constructors <dd> remove obsolete SVN/CVS keywords <dt>[MR !436] Modernize TrackTools <dd> prefer inheriting constructors <dd> prefer implicit destructors <dd> prefer Gaudi::Property <dd> prefer direct member initialization <dd> prefer standalone functions in anonymous namespace over member functions that do not access any class data and/or methods <dd> prefer STL algorithms over raw loops <dd> prefer std::unique_ptr over raw pointers + explicit delete <dd> prefer switch over if-then-elseif-elseif-else <dd> prefer range-based for loops <dd> move loop invariants out of loop body <dd> remove obsolete SVN/CVS keywords <dd> prefer auto <dd> add final <dd> prefer emplace_back <dd> prefer inheriting from extends over virtual inheritance <dd> prefer std::initializer_list over boost::assign <dd> prefer std::unique_ptr and move semantics over std::shared_ptr and copy <dd> prefer std::make_unique <dd> prefer range-based for loops over BOOST_FOREACH <dd> do not cache msgLevel(MSG::DEBUG) <dt>[MR !447] Modernize TrackIDs <dd> prefer std::numeric_limits over boost equivalent <dd> prefer direct member initialization <dd> prefer static_assert over BOOST_STATIC_ASSERT <dd> prefer table lookup over if-else-if as table can be re-used for inverse lookup -- which is now guaranteed consistent and needs less source code ( note: generated code is equivalent, see https://godbolt.org/g/cCzjsm ) <dd> add UNLIKELY <dt>[MR !435] Modernize TrackUtils <dd> prefer auto <dd> prefer implicit destructors <dd> prefer range-based for loops, avoid BOOST_FOREACH <dd> add final <dd> prefer direct member initialization <dd> avoid boost/lambda <dd> prefer insert followed by inplace-merge over set_union <dd> prefer adjacent_find over unique so the fixup required can start at the first duplication <dd> prefer lambda over boost/bind <dt>[MR !434] Modernize TfKernel and TfTools <dd> remove const from resetUsedFlagOfHits <dd> add resetUsedFlagOfHits to hit creators <dd> prefer Gaudi::Property <dd> avoid use of protected data members <dd> use single precision dummy r-t relation <dt>[MR !443] RecAlgs: Prefer Gaudi::Property <dt>[MR !444] LumiAlgs: Prefer Gaudi::Property <dt>[MR !439] Prefer Gaudi::Property<TYPE> in RichFuture <dd> Also convert `#ifdef` header guards to cleaner `#pragma once`. <dt>[MR !397] Remove cmt directories as CMT is no longer supported as from Gaudi v28r0 <dt>[MR !410] Fix misleading indentation warnings <dd> Fix misleading indentation warnings in PatAlgorithms, TrackMonitors, PrAlgorithms <dd> TrackExtrapolators, RichRecPhotonTools, RichFutureRecPhotonAlgorithms: suppress compilation warnings from Eigen <dt>[MR !441] Improved a doxygen comment in PatLongLivedParams, which was not particularly helpful... <dt>[MR !429] Remove whitespaces at end of line </dl> See merge request !487
Loading
Please register or sign in to comment