From 6a7511d5e04aa6c5b3abdd01d9e402211bb3e002 Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Mon, 29 Apr 2019 13:57:21 +0200 Subject: [PATCH 01/10] Update CTPPSLocalTrackLiteProducer.cc --- RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc index 20a0db477695d..b0f7ba93a4d06 100644 --- a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc @@ -222,9 +222,9 @@ CTPPSLocalTrackLiteProducer::fillDescriptions( edm::ConfigurationDescriptions& d desc.add( "doNothing", false ) // enable the module by default ->setComment( "disable the module" ); desc.add( "timingTrackTMin", -1000. ) - ->setComment( "minimal track time selection for timing detectors" ); + ->setComment( "minimal track time selection for timing detectors, in ns" ); desc.add( "timingTrackTMax", +1000. ) - ->setComment( "maximal track time selection for timing detectors" ); + ->setComment( "maximal track time selection for timing detectors, in ns" ); desc.add("pixelTrackTxMin",-10.0); desc.add("pixelTrackTxMax", 10.0); From 93faf6f57e29893627058e6b48d05d19d129ef19 Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Mon, 29 Apr 2019 13:59:11 +0200 Subject: [PATCH 02/10] Update CTPPSLocalTrackLiteProducer.cc Selecting a 25 ns slice for the timing detectors' lite local tracks --- RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc index b0f7ba93a4d06..e555b64fab02c 100644 --- a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc @@ -221,9 +221,9 @@ CTPPSLocalTrackLiteProducer::fillDescriptions( edm::ConfigurationDescriptions& d ->setComment( "input pixel detectors' local tracks collection to retrieve" ); desc.add( "doNothing", false ) // enable the module by default ->setComment( "disable the module" ); - desc.add( "timingTrackTMin", -1000. ) + desc.add( "timingTrackTMin", -12.5 ) ->setComment( "minimal track time selection for timing detectors, in ns" ); - desc.add( "timingTrackTMax", +1000. ) + desc.add( "timingTrackTMax", +12.5 ) ->setComment( "maximal track time selection for timing detectors, in ns" ); desc.add("pixelTrackTxMin",-10.0); From d327ad61df68c7d2db308915dc99c54172d979fd Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Fri, 3 May 2019 16:12:05 +0200 Subject: [PATCH 03/10] First part of code-check comments implemented --- .../plugins/CTPPSLocalTrackLiteProducer.cc | 117 +++++++++--------- 1 file changed, 59 insertions(+), 58 deletions(-) diff --git a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc index e555b64fab02c..c276b10a4b091 100644 --- a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc @@ -29,70 +29,69 @@ class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> { public: - explicit CTPPSLocalTrackLiteProducer( const edm::ParameterSet& ); - ~CTPPSLocalTrackLiteProducer() override {} + explicit CTPPSLocalTrackLiteProducer(const edm::ParameterSet&); - void produce( edm::Event&, const edm::EventSetup& ) override; - static void fillDescriptions( edm::ConfigurationDescriptions& ); + void produce(edm::Event&, const edm::EventSetup&) override; + static void fillDescriptions(edm::ConfigurationDescriptions&); private: /// HPTDC time slice width, in ns static constexpr float HPTDC_TIME_SLICE_WIDTH = 25.; bool includeStrips_; - edm::EDGetTokenT< edm::DetSetVector > siStripTrackToken_; + edm::EDGetTokenT > siStripTrackToken_; bool includeDiamonds_; - edm::EDGetTokenT< edm::DetSetVector > diamondTrackToken_; + edm::EDGetTokenT > diamondTrackToken_; bool includePixels_; - edm::EDGetTokenT< edm::DetSetVector > pixelTrackToken_; + edm::EDGetTokenT > pixelTrackToken_; - double pixelTrackTxMin_,pixelTrackTxMax_,pixelTrackTyMin_,pixelTrackTyMax_; -/// if true, this module will do nothing -/// needed for consistency with CTPPS-less workflows + double pixelTrackTxMin_, pixelTrackTxMax_, pixelTrackTyMin_, pixelTrackTyMax_; + /// if true, this module will do nothing + /// \note needed for consistency with CTPPS-less workflows bool doNothing_; double timingTrackTMin_, timingTrackTMax_; }; //---------------------------------------------------------------------------------------------------- -CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer( const edm::ParameterSet& iConfig ) : - doNothing_( iConfig.getParameter( "doNothing" ) ) +CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) : + doNothing_(iConfig.getParameter("doNothing")) { - if ( doNothing_ ) return; + if (doNothing_) + return; includeStrips_ = iConfig.getParameter("includeStrips"); - siStripTrackToken_ = consumes< edm::DetSetVector > ( iConfig.getParameter("tagSiStripTrack") ); + siStripTrackToken_ = consumes >(iConfig.getParameter("tagSiStripTrack")); includeDiamonds_ = iConfig.getParameter("includeDiamonds"); - diamondTrackToken_ = consumes< edm::DetSetVector >( iConfig.getParameter("tagDiamondTrack") ); + diamondTrackToken_ = consumes >(iConfig.getParameter("tagDiamondTrack")); - timingTrackTMin_ = iConfig.getParameter( "timingTrackTMin" ); - timingTrackTMax_ = iConfig.getParameter( "timingTrackTMax" ); + timingTrackTMin_ = iConfig.getParameter("timingTrackTMin"); + timingTrackTMax_ = iConfig.getParameter("timingTrackTMax"); includePixels_ = iConfig.getParameter("includePixels"); auto tagPixelTrack = iConfig.getParameter("tagPixelTrack"); - if (not tagPixelTrack.label().empty()){ - pixelTrackToken_ = consumes< edm::DetSetVector > (tagPixelTrack); - } + if (!tagPixelTrack.label().empty()) + pixelTrackToken_ = consumes >(tagPixelTrack); pixelTrackTxMin_ = iConfig.getParameter("pixelTrackTxMin"); pixelTrackTxMax_ = iConfig.getParameter("pixelTrackTxMax"); pixelTrackTyMin_ = iConfig.getParameter("pixelTrackTyMin"); pixelTrackTyMax_ = iConfig.getParameter("pixelTrackTyMax"); - produces< std::vector >(); + produces >(); } //---------------------------------------------------------------------------------------------------- void -CTPPSLocalTrackLiteProducer::produce( edm::Event& iEvent, const edm::EventSetup& ) +CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { - if ( doNothing_ ) + if (doNothing_) return; // prepare output - std::unique_ptr< std::vector > pOut( new std::vector() ); + auto pOut = std::make_unique >(); //----- TOTEM strips @@ -100,13 +99,14 @@ CTPPSLocalTrackLiteProducer::produce( edm::Event& iEvent, const edm::EventSetup& if (includeStrips_) { edm::Handle< edm::DetSetVector > inputSiStripTracks; - iEvent.getByToken( siStripTrackToken_, inputSiStripTracks ); + iEvent.getByToken(siStripTrackToken_, inputSiStripTracks); // process tracks from Si strips - for ( const auto& rpv : *inputSiStripTracks ) { + for (const auto& rpv : *inputSiStripTracks) { const uint32_t rpId = rpv.detId(); - for ( const auto& trk : rpv ) { - if ( !trk.isValid() ) continue; + for (const auto& trk : rpv) { + if (!trk.isValid()) + continue; float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<14>(trk.getX0()); float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getX0Sigma()); @@ -118,8 +118,8 @@ CTPPSLocalTrackLiteProducer::produce( edm::Event& iEvent, const edm::EventSetup& float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTySigma()); float roundedChiSquaredOverNDF = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); - pOut->emplace_back( rpId, roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, roundedTx, roundedTxSigma, roundedTy, roundedTySigma, - roundedChiSquaredOverNDF, CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumberOfPointsUsedForFit(),0,0 ); + pOut->emplace_back(rpId, roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, roundedTx, roundedTxSigma, roundedTy, roundedTySigma, + roundedChiSquaredOverNDF, CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumberOfPointsUsedForFit(), 0, 0); } } } @@ -130,16 +130,17 @@ CTPPSLocalTrackLiteProducer::produce( edm::Event& iEvent, const edm::EventSetup& { // get input from diamond detectors edm::Handle< edm::DetSetVector > inputDiamondTracks; - iEvent.getByToken( diamondTrackToken_, inputDiamondTracks ); + iEvent.getByToken(diamondTrackToken_, inputDiamondTracks); // process tracks from diamond detectors - for ( const auto& rpv : *inputDiamondTracks ) { + for (const auto& rpv : *inputDiamondTracks) { const unsigned int rpId = rpv.detId(); - for ( const auto& trk : rpv ) { - if ( !trk.isValid() ) continue; + for (const auto& trk : rpv) { + if (!trk.isValid()) + continue; const float abs_time = trk.getT()+trk.getOOTIndex()*HPTDC_TIME_SLICE_WIDTH; - if ( abs_time < timingTrackTMin_ || abs_time > timingTrackTMax_ ) continue; + if (abs_time < timingTrackTMin_ || abs_time > timingTrackTMax_) continue; float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(trk.getX0()); float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getX0Sigma()); @@ -165,14 +166,14 @@ CTPPSLocalTrackLiteProducer::produce( edm::Event& iEvent, const edm::EventSetup& if (includePixels_) { edm::Handle< edm::DetSetVector > inputPixelTracks; - if (not pixelTrackToken_.isUninitialized()){ - iEvent.getByToken( pixelTrackToken_, inputPixelTracks ); + if (!pixelTrackToken_.isUninitialized()){ + iEvent.getByToken(pixelTrackToken_, inputPixelTracks); // process tracks from pixels - for ( const auto& rpv : *inputPixelTracks ) { + for (const auto& rpv : *inputPixelTracks) { const uint32_t rpId = rpv.detId(); - for ( const auto& trk : rpv ) { - if ( !trk.isValid() ) continue; + for (const auto& trk : rpv) { + if (!trk.isValid()) continue; if(trk.getTx()>pixelTrackTxMin_ && trk.getTx()pixelTrackTyMin_ && trk.getTy()(trk.getX0()); @@ -185,8 +186,8 @@ CTPPSLocalTrackLiteProducer::produce( edm::Event& iEvent, const edm::EventSetup& float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTySigma()); float roundedChiSquaredOverNDF = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); - pOut->emplace_back( rpId, roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, roundedTx, roundedTxSigma, roundedTy, roundedTySigma, - roundedChiSquaredOverNDF, trk.getRecoInfo(), trk.getNumberOfPointsUsedForFit(),0.,0. ); + pOut->emplace_back(rpId, roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, roundedTx, roundedTxSigma, roundedTy, roundedTySigma, + roundedChiSquaredOverNDF, trk.getRecoInfo(), trk.getNumberOfPointsUsedForFit(), 0., 0.); } } } @@ -194,13 +195,13 @@ CTPPSLocalTrackLiteProducer::produce( edm::Event& iEvent, const edm::EventSetup& } // save output to event - iEvent.put( std::move( pOut ) ); + iEvent.put(std::move(pOut)); } //---------------------------------------------------------------------------------------------------- void -CTPPSLocalTrackLiteProducer::fillDescriptions( edm::ConfigurationDescriptions& descr ) +CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescriptions& descr) { edm::ParameterSetDescription desc; @@ -209,32 +210,32 @@ CTPPSLocalTrackLiteProducer::fillDescriptions( edm::ConfigurationDescriptions& d // RecoCTPPS/TotemRPLocal/python/ctppsLocalTrackLiteProducer_cff.py desc.add("includeStrips", false)->setComment("whether tracks from Si strips should be included"); - desc.add( "tagSiStripTrack", edm::InputTag( "totemRPLocalTrackFitter" ) ) - ->setComment( "input TOTEM strips' local tracks collection to retrieve" ); + desc.add("tagSiStripTrack", edm::InputTag("totemRPLocalTrackFitter")) + ->setComment("input TOTEM strips' local tracks collection to retrieve"); desc.add("includeDiamonds", false)->setComment("whether tracks from diamonds strips should be included"); - desc.add( "tagDiamondTrack", edm::InputTag( "ctppsDiamondLocalTracks" ) ) - ->setComment( "input diamond detectors' local tracks collection to retrieve" ); + desc.add("tagDiamondTrack", edm::InputTag("ctppsDiamondLocalTracks")) + ->setComment("input diamond detectors' local tracks collection to retrieve"); desc.add("includePixels", false)->setComment("whether tracks from pixels should be included"); - desc.add( "tagPixelTrack", edm::InputTag( "ctppsPixelLocalTracks" ) ) - ->setComment( "input pixel detectors' local tracks collection to retrieve" ); - desc.add( "doNothing", false ) // enable the module by default - ->setComment( "disable the module" ); - desc.add( "timingTrackTMin", -12.5 ) - ->setComment( "minimal track time selection for timing detectors, in ns" ); - desc.add( "timingTrackTMax", +12.5 ) - ->setComment( "maximal track time selection for timing detectors, in ns" ); + desc.add("tagPixelTrack", edm::InputTag("ctppsPixelLocalTracks")) + ->setComment("input pixel detectors' local tracks collection to retrieve"); + desc.add("doNothing", false) // enable the module by default + ->setComment("disable the module"); + desc.add("timingTrackTMin", -12.5) + ->setComment("minimal track time selection for timing detectors, in ns"); + desc.add("timingTrackTMax", +12.5) + ->setComment("maximal track time selection for timing detectors, in ns"); desc.add("pixelTrackTxMin",-10.0); desc.add("pixelTrackTxMax", 10.0); desc.add("pixelTrackTyMin",-10.0); desc.add("pixelTrackTyMax", 10.0); - descr.add( "ctppsLocalTrackLiteDefaultProducer", desc ); + descr.add("ctppsLocalTrackLiteDefaultProducer", desc); } //---------------------------------------------------------------------------------------------------- -DEFINE_FWK_MODULE( CTPPSLocalTrackLiteProducer ); +DEFINE_FWK_MODULE(CTPPSLocalTrackLiteProducer); From baf084b8932104fffd0e5d32482bf27059c8f3a7 Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Fri, 3 May 2019 16:16:49 +0200 Subject: [PATCH 04/10] Removed the now unused doNothing flag --- .../plugins/CTPPSLocalTrackLiteProducer.cc | 45 ++++++++----------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc index c276b10a4b091..0284337e3c03f 100644 --- a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc @@ -47,20 +47,13 @@ class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> edm::EDGetTokenT > pixelTrackToken_; double pixelTrackTxMin_, pixelTrackTxMax_, pixelTrackTyMin_, pixelTrackTyMax_; - /// if true, this module will do nothing - /// \note needed for consistency with CTPPS-less workflows - bool doNothing_; double timingTrackTMin_, timingTrackTMax_; }; //---------------------------------------------------------------------------------------------------- -CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) : - doNothing_(iConfig.getParameter("doNothing")) +CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) { - if (doNothing_) - return; - includeStrips_ = iConfig.getParameter("includeStrips"); siStripTrackToken_ = consumes >(iConfig.getParameter("tagSiStripTrack")); @@ -87,9 +80,6 @@ CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { - if (doNothing_) - return; - // prepare output auto pOut = std::make_unique >(); @@ -108,15 +98,15 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) if (!trk.isValid()) continue; - float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<14>(trk.getX0()); - float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getX0Sigma()); - float roundedY0 = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getY0()); - float roundedY0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getY0Sigma()); - float roundedTx = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTx()); - float roundedTxSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTxSigma()); - float roundedTy = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTy()); - float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTySigma()); - float roundedChiSquaredOverNDF = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); + float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<14>(trk.getX0()); + float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getX0Sigma()); + float roundedY0 = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getY0()); + float roundedY0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getY0Sigma()); + float roundedTx = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTx()); + float roundedTxSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTxSigma()); + float roundedTy = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTy()); + float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTySigma()); + float roundedChiSquaredOverNDF = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); pOut->emplace_back(rpId, roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, roundedTx, roundedTxSigma, roundedTy, roundedTySigma, roundedChiSquaredOverNDF, CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumberOfPointsUsedForFit(), 0, 0); @@ -140,7 +130,8 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) continue; const float abs_time = trk.getT()+trk.getOOTIndex()*HPTDC_TIME_SLICE_WIDTH; - if (abs_time < timingTrackTMin_ || abs_time > timingTrackTMax_) continue; + if (abs_time < timingTrackTMin_ || abs_time > timingTrackTMax_) + continue; float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(trk.getX0()); float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getX0Sigma()); @@ -173,9 +164,11 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) for (const auto& rpv : *inputPixelTracks) { const uint32_t rpId = rpv.detId(); for (const auto& trk : rpv) { - if (!trk.isValid()) continue; - if(trk.getTx()>pixelTrackTxMin_ && trk.getTx()pixelTrackTyMin_ && trk.getTy() pixelTrackTxMin_ && trk.getTx() < pixelTrackTxMax_ + && trk.getTy() > pixelTrackTyMin_ && trk.getTy() < pixelTrackTyMax_) { + float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(trk.getX0()); float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getX0Sigma()); float roundedY0 = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getY0()); @@ -205,7 +198,7 @@ CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescriptions& de { edm::ParameterSetDescription desc; - // By default: module enabled (doNothing=false), but all includeXYZ flags set to false. + // By default: all includeXYZ flags set to false. // The includeXYZ are switched on when the "ctpps_2016" era is declared in python config, see: // RecoCTPPS/TotemRPLocal/python/ctppsLocalTrackLiteProducer_cff.py @@ -220,8 +213,6 @@ CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescriptions& de desc.add("includePixels", false)->setComment("whether tracks from pixels should be included"); desc.add("tagPixelTrack", edm::InputTag("ctppsPixelLocalTracks")) ->setComment("input pixel detectors' local tracks collection to retrieve"); - desc.add("doNothing", false) // enable the module by default - ->setComment("disable the module"); desc.add("timingTrackTMin", -12.5) ->setComment("minimal track time selection for timing detectors, in ns"); desc.add("timingTrackTMax", +12.5) From 5f10f5a4b615e2c169a039245f75bff5680c90b0 Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Fri, 3 May 2019 16:23:13 +0200 Subject: [PATCH 05/10] Refactored module constructor --- .../plugins/CTPPSLocalTrackLiteProducer.cc | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc index 0284337e3c03f..309a9254f39e4 100644 --- a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc @@ -52,26 +52,29 @@ class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> //---------------------------------------------------------------------------------------------------- -CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) +CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) : + includeStrips_ (iConfig.getParameter("includeStrips")), + includeDiamonds_ (iConfig.getParameter("includeDiamonds")), + includePixels_ (iConfig.getParameter("includePixels")), + pixelTrackTxMin_ (iConfig.getParameter("pixelTrackTxMin")), + pixelTrackTxMax_ (iConfig.getParameter("pixelTrackTxMax")), + pixelTrackTyMin_ (iConfig.getParameter("pixelTrackTyMin")), + pixelTrackTyMax_ (iConfig.getParameter("pixelTrackTyMax")), + timingTrackTMin_ (iConfig.getParameter("timingTrackTMin")), + timingTrackTMax_ (iConfig.getParameter("timingTrackTMax")) { - includeStrips_ = iConfig.getParameter("includeStrips"); - siStripTrackToken_ = consumes >(iConfig.getParameter("tagSiStripTrack")); + auto tagSiStripTrack = iConfig.getParameter("tagSiStripTrack"); + if (!tagSiStripTrack.label().empty()) + siStripTrackToken_ = consumes >(tagSiStripTrack); - includeDiamonds_ = iConfig.getParameter("includeDiamonds"); - diamondTrackToken_ = consumes >(iConfig.getParameter("tagDiamondTrack")); + auto tagDiamondTrack = iConfig.getParameter("tagDiamondTrack"); + if (!tagDiamondTrack.label().empty()) + diamondTrackToken_ = consumes >(tagDiamondTrack); - timingTrackTMin_ = iConfig.getParameter("timingTrackTMin"); - timingTrackTMax_ = iConfig.getParameter("timingTrackTMax"); - - includePixels_ = iConfig.getParameter("includePixels"); auto tagPixelTrack = iConfig.getParameter("tagPixelTrack"); if (!tagPixelTrack.label().empty()) pixelTrackToken_ = consumes >(tagPixelTrack); - pixelTrackTxMin_ = iConfig.getParameter("pixelTrackTxMin"); - pixelTrackTxMax_ = iConfig.getParameter("pixelTrackTxMax"); - pixelTrackTyMin_ = iConfig.getParameter("pixelTrackTyMin"); - pixelTrackTyMax_ = iConfig.getParameter("pixelTrackTyMax"); produces >(); } From cd01a63d143229bc42a44fb55471c262949753b9 Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Fri, 3 May 2019 16:31:11 +0200 Subject: [PATCH 06/10] Homogenised filling part, using local track lite collection alias --- .../plugins/CTPPSLocalTrackLiteProducer.cc | 62 +++++++++++-------- 1 file changed, 36 insertions(+), 26 deletions(-) diff --git a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc index 309a9254f39e4..6d6c6326ef072 100644 --- a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc @@ -19,6 +19,8 @@ #include "DataFormats/CTPPSReco/interface/CTPPSPixelLocalTrack.h" #include "DataFormats/CTPPSReco/interface/CTPPSLocalTrackLite.h" +#include "DataFormats/CTPPSReco/interface/CTPPSLocalTrackLiteFwd.h" + #include "DataFormats/Math/interface/libminifloat.h" //---------------------------------------------------------------------------------------------------- @@ -37,6 +39,7 @@ class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> private: /// HPTDC time slice width, in ns static constexpr float HPTDC_TIME_SLICE_WIDTH = 25.; + bool includeStrips_; edm::EDGetTokenT > siStripTrackToken_; @@ -53,15 +56,15 @@ class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> //---------------------------------------------------------------------------------------------------- CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) : - includeStrips_ (iConfig.getParameter("includeStrips")), - includeDiamonds_ (iConfig.getParameter("includeDiamonds")), - includePixels_ (iConfig.getParameter("includePixels")), - pixelTrackTxMin_ (iConfig.getParameter("pixelTrackTxMin")), - pixelTrackTxMax_ (iConfig.getParameter("pixelTrackTxMax")), - pixelTrackTyMin_ (iConfig.getParameter("pixelTrackTyMin")), - pixelTrackTyMax_ (iConfig.getParameter("pixelTrackTyMax")), - timingTrackTMin_ (iConfig.getParameter("timingTrackTMin")), - timingTrackTMax_ (iConfig.getParameter("timingTrackTMax")) + includeStrips_ (iConfig.getParameter("includeStrips")), + includeDiamonds_(iConfig.getParameter("includeDiamonds")), + includePixels_ (iConfig.getParameter("includePixels")), + pixelTrackTxMin_(iConfig.getParameter("pixelTrackTxMin")), + pixelTrackTxMax_(iConfig.getParameter("pixelTrackTxMax")), + pixelTrackTyMin_(iConfig.getParameter("pixelTrackTyMin")), + pixelTrackTyMax_(iConfig.getParameter("pixelTrackTyMax")), + timingTrackTMin_(iConfig.getParameter("timingTrackTMin")), + timingTrackTMax_(iConfig.getParameter("timingTrackTMax")) { auto tagSiStripTrack = iConfig.getParameter("tagSiStripTrack"); if (!tagSiStripTrack.label().empty()) @@ -75,7 +78,7 @@ CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet if (!tagPixelTrack.label().empty()) pixelTrackToken_ = consumes >(tagPixelTrack); - produces >(); + produces(); } //---------------------------------------------------------------------------------------------------- @@ -84,14 +87,13 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { // prepare output - auto pOut = std::make_unique >(); + auto pOut = std::make_unique(); //----- TOTEM strips // get input from Si strips - if (includeStrips_) - { - edm::Handle< edm::DetSetVector > inputSiStripTracks; + if (includeStrips_) { + edm::Handle > inputSiStripTracks; iEvent.getByToken(siStripTrackToken_, inputSiStripTracks); // process tracks from Si strips @@ -111,18 +113,22 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTySigma()); float roundedChiSquaredOverNDF = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); - pOut->emplace_back(rpId, roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, roundedTx, roundedTxSigma, roundedTy, roundedTySigma, - roundedChiSquaredOverNDF, CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumberOfPointsUsedForFit(), 0, 0); + pOut->emplace_back( + rpId, // detector info + roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, // spatial info + roundedTx, roundedTxSigma, roundedTy, roundedTySigma, // angular info + roundedChiSquaredOverNDF, CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumberOfPointsUsedForFit(), // reconstruction info + 0., 0. // timing info + ); } } } //----- diamond detectors - if (includeDiamonds_) - { + if (includeDiamonds_) { // get input from diamond detectors - edm::Handle< edm::DetSetVector > inputDiamondTracks; + edm::Handle > inputDiamondTracks; iEvent.getByToken(diamondTrackToken_, inputDiamondTracks); // process tracks from diamond detectors @@ -146,8 +152,8 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) pOut->emplace_back( rpId, // detector info roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, // spatial info - 0., 0., 0., 0., 0., // angular info - CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumOfPlanes(), // reconstruction info + 0., 0., 0., 0., // angular info + 0., CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumOfPlanes(), // reconstruction info roundedT, roundedTSigma // timing info ); } @@ -157,9 +163,8 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) //----- pixel detectors - if (includePixels_) - { - edm::Handle< edm::DetSetVector > inputPixelTracks; + if (includePixels_) { + edm::Handle > inputPixelTracks; if (!pixelTrackToken_.isUninitialized()){ iEvent.getByToken(pixelTrackToken_, inputPixelTracks); @@ -182,8 +187,13 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTySigma()); float roundedChiSquaredOverNDF = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); - pOut->emplace_back(rpId, roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, roundedTx, roundedTxSigma, roundedTy, roundedTySigma, - roundedChiSquaredOverNDF, trk.getRecoInfo(), trk.getNumberOfPointsUsedForFit(), 0., 0.); + pOut->emplace_back( + rpId, // detector info + roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, // spatial info + roundedTx, roundedTxSigma, roundedTy, roundedTySigma, // angular info + roundedChiSquaredOverNDF, trk.getRecoInfo(), trk.getNumberOfPointsUsedForFit(), // reconstruction info + 0., 0. // timing info + ); } } } From 308bfa48fa228a769afaa63e62157a57e0885058 Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Fri, 3 May 2019 16:35:52 +0200 Subject: [PATCH 07/10] Code-checks applied --- .../plugins/CTPPSLocalTrackLiteProducer.cc | 131 ++++++++++-------- 1 file changed, 73 insertions(+), 58 deletions(-) diff --git a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc index 6d6c6326ef072..e1da7026ea18d 100644 --- a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc @@ -28,8 +28,7 @@ /** * \brief Distills the essential track data from all RPs. **/ -class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> -{ +class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> { public: explicit CTPPSLocalTrackLiteProducer(const edm::ParameterSet&); @@ -55,17 +54,16 @@ class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> //---------------------------------------------------------------------------------------------------- -CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) : - includeStrips_ (iConfig.getParameter("includeStrips")), - includeDiamonds_(iConfig.getParameter("includeDiamonds")), - includePixels_ (iConfig.getParameter("includePixels")), - pixelTrackTxMin_(iConfig.getParameter("pixelTrackTxMin")), - pixelTrackTxMax_(iConfig.getParameter("pixelTrackTxMax")), - pixelTrackTyMin_(iConfig.getParameter("pixelTrackTyMin")), - pixelTrackTyMax_(iConfig.getParameter("pixelTrackTyMax")), - timingTrackTMin_(iConfig.getParameter("timingTrackTMin")), - timingTrackTMax_(iConfig.getParameter("timingTrackTMax")) -{ +CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) + : includeStrips_(iConfig.getParameter("includeStrips")), + includeDiamonds_(iConfig.getParameter("includeDiamonds")), + includePixels_(iConfig.getParameter("includePixels")), + pixelTrackTxMin_(iConfig.getParameter("pixelTrackTxMin")), + pixelTrackTxMax_(iConfig.getParameter("pixelTrackTxMax")), + pixelTrackTyMin_(iConfig.getParameter("pixelTrackTyMin")), + pixelTrackTyMax_(iConfig.getParameter("pixelTrackTyMax")), + timingTrackTMin_(iConfig.getParameter("timingTrackTMin")), + timingTrackTMax_(iConfig.getParameter("timingTrackTMax")) { auto tagSiStripTrack = iConfig.getParameter("tagSiStripTrack"); if (!tagSiStripTrack.label().empty()) siStripTrackToken_ = consumes >(tagSiStripTrack); @@ -83,9 +81,7 @@ CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet //---------------------------------------------------------------------------------------------------- -void -CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) -{ +void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { // prepare output auto pOut = std::make_unique(); @@ -111,14 +107,23 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) float roundedTxSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTxSigma()); float roundedTy = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTy()); float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTySigma()); - float roundedChiSquaredOverNDF = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); - - pOut->emplace_back( - rpId, // detector info - roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, // spatial info - roundedTx, roundedTxSigma, roundedTy, roundedTySigma, // angular info - roundedChiSquaredOverNDF, CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumberOfPointsUsedForFit(), // reconstruction info - 0., 0. // timing info + float roundedChiSquaredOverNDF = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); + + pOut->emplace_back(rpId, // detector info + roundedX0, + roundedX0Sigma, + roundedY0, + roundedY0Sigma, // spatial info + roundedTx, + roundedTxSigma, + roundedTy, + roundedTySigma, // angular info + roundedChiSquaredOverNDF, + CTPPSpixelLocalTrackReconstructionInfo::invalid, + trk.getNumberOfPointsUsedForFit(), // reconstruction info + 0., + 0. // timing info ); } } @@ -138,7 +143,7 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) if (!trk.isValid()) continue; - const float abs_time = trk.getT()+trk.getOOTIndex()*HPTDC_TIME_SLICE_WIDTH; + const float abs_time = trk.getT() + trk.getOOTIndex() * HPTDC_TIME_SLICE_WIDTH; if (abs_time < timingTrackTMin_ || abs_time > timingTrackTMax_) continue; @@ -149,34 +154,40 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) float roundedT = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(abs_time); float roundedTSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getTSigma()); - pOut->emplace_back( - rpId, // detector info - roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, // spatial info - 0., 0., 0., 0., // angular info - 0., CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumOfPlanes(), // reconstruction info - roundedT, roundedTSigma // timing info + pOut->emplace_back(rpId, // detector info + roundedX0, + roundedX0Sigma, + roundedY0, + roundedY0Sigma, // spatial info + 0., + 0., + 0., + 0., // angular info + 0., + CTPPSpixelLocalTrackReconstructionInfo::invalid, + trk.getNumOfPlanes(), // reconstruction info + roundedT, + roundedTSigma // timing info ); } } } - //----- pixel detectors if (includePixels_) { edm::Handle > inputPixelTracks; - if (!pixelTrackToken_.isUninitialized()){ + if (!pixelTrackToken_.isUninitialized()) { iEvent.getByToken(pixelTrackToken_, inputPixelTracks); - // process tracks from pixels + // process tracks from pixels for (const auto& rpv : *inputPixelTracks) { const uint32_t rpId = rpv.detId(); for (const auto& trk : rpv) { if (!trk.isValid()) continue; - if (trk.getTx() > pixelTrackTxMin_ && trk.getTx() < pixelTrackTxMax_ - && trk.getTy() > pixelTrackTyMin_ && trk.getTy() < pixelTrackTyMax_) { - + if (trk.getTx() > pixelTrackTxMin_ && trk.getTx() < pixelTrackTxMax_ && trk.getTy() > pixelTrackTyMin_ && + trk.getTy() < pixelTrackTyMax_) { float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(trk.getX0()); float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getX0Sigma()); float roundedY0 = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getY0()); @@ -185,14 +196,23 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) float roundedTxSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTxSigma()); float roundedTy = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTy()); float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTySigma()); - float roundedChiSquaredOverNDF = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); - - pOut->emplace_back( - rpId, // detector info - roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, // spatial info - roundedTx, roundedTxSigma, roundedTy, roundedTySigma, // angular info - roundedChiSquaredOverNDF, trk.getRecoInfo(), trk.getNumberOfPointsUsedForFit(), // reconstruction info - 0., 0. // timing info + float roundedChiSquaredOverNDF = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); + + pOut->emplace_back(rpId, // detector info + roundedX0, + roundedX0Sigma, + roundedY0, + roundedY0Sigma, // spatial info + roundedTx, + roundedTxSigma, + roundedTy, + roundedTySigma, // angular info + roundedChiSquaredOverNDF, + trk.getRecoInfo(), + trk.getNumberOfPointsUsedForFit(), // reconstruction info + 0., + 0. // timing info ); } } @@ -206,9 +226,7 @@ CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) //---------------------------------------------------------------------------------------------------- -void -CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescriptions& descr) -{ +void CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescriptions& descr) { edm::ParameterSetDescription desc; // By default: all includeXYZ flags set to false. @@ -217,23 +235,21 @@ CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescriptions& de desc.add("includeStrips", false)->setComment("whether tracks from Si strips should be included"); desc.add("tagSiStripTrack", edm::InputTag("totemRPLocalTrackFitter")) - ->setComment("input TOTEM strips' local tracks collection to retrieve"); + ->setComment("input TOTEM strips' local tracks collection to retrieve"); desc.add("includeDiamonds", false)->setComment("whether tracks from diamonds strips should be included"); desc.add("tagDiamondTrack", edm::InputTag("ctppsDiamondLocalTracks")) - ->setComment("input diamond detectors' local tracks collection to retrieve"); + ->setComment("input diamond detectors' local tracks collection to retrieve"); desc.add("includePixels", false)->setComment("whether tracks from pixels should be included"); desc.add("tagPixelTrack", edm::InputTag("ctppsPixelLocalTracks")) - ->setComment("input pixel detectors' local tracks collection to retrieve"); - desc.add("timingTrackTMin", -12.5) - ->setComment("minimal track time selection for timing detectors, in ns"); - desc.add("timingTrackTMax", +12.5) - ->setComment("maximal track time selection for timing detectors, in ns"); + ->setComment("input pixel detectors' local tracks collection to retrieve"); + desc.add("timingTrackTMin", -12.5)->setComment("minimal track time selection for timing detectors, in ns"); + desc.add("timingTrackTMax", +12.5)->setComment("maximal track time selection for timing detectors, in ns"); - desc.add("pixelTrackTxMin",-10.0); + desc.add("pixelTrackTxMin", -10.0); desc.add("pixelTrackTxMax", 10.0); - desc.add("pixelTrackTyMin",-10.0); + desc.add("pixelTrackTyMin", -10.0); desc.add("pixelTrackTyMax", 10.0); descr.add("ctppsLocalTrackLiteDefaultProducer", desc); @@ -242,4 +258,3 @@ CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescriptions& de //---------------------------------------------------------------------------------------------------- DEFINE_FWK_MODULE(CTPPSLocalTrackLiteProducer); - From c557ba538dc5b1efbd8d9d64966db3dd4c9eec62 Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Fri, 3 May 2019 16:40:10 +0200 Subject: [PATCH 08/10] Improves code documentation --- .../plugins/CTPPSLocalTrackLiteProducer.cc | 41 ++++++++++++------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc index e1da7026ea18d..cd8ed34325bb9 100644 --- a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc @@ -55,9 +55,9 @@ class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> { //---------------------------------------------------------------------------------------------------- CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) - : includeStrips_(iConfig.getParameter("includeStrips")), + : includeStrips_ (iConfig.getParameter("includeStrips")), includeDiamonds_(iConfig.getParameter("includeDiamonds")), - includePixels_(iConfig.getParameter("includePixels")), + includePixels_ (iConfig.getParameter("includePixels")), pixelTrackTxMin_(iConfig.getParameter("pixelTrackTxMin")), pixelTrackTxMax_(iConfig.getParameter("pixelTrackTxMax")), pixelTrackTyMin_(iConfig.getParameter("pixelTrackTyMin")), @@ -111,19 +111,23 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSe MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); pOut->emplace_back(rpId, // detector info + // spatial info roundedX0, roundedX0Sigma, roundedY0, - roundedY0Sigma, // spatial info + roundedY0Sigma, + // angular info roundedTx, roundedTxSigma, roundedTy, - roundedTySigma, // angular info + roundedTySigma, + // reconstruction info roundedChiSquaredOverNDF, CTPPSpixelLocalTrackReconstructionInfo::invalid, - trk.getNumberOfPointsUsedForFit(), // reconstruction info + trk.getNumberOfPointsUsedForFit(), + // timing info 0., - 0. // timing info + 0. ); } } @@ -155,19 +159,23 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSe float roundedTSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getTSigma()); pOut->emplace_back(rpId, // detector info + // spatial info roundedX0, roundedX0Sigma, roundedY0, - roundedY0Sigma, // spatial info + roundedY0Sigma, + // angular info 0., 0., 0., - 0., // angular info + 0., + // reconstruction info 0., CTPPSpixelLocalTrackReconstructionInfo::invalid, - trk.getNumOfPlanes(), // reconstruction info + trk.getNumOfPlanes(), + // timing info roundedT, - roundedTSigma // timing info + roundedTSigma ); } } @@ -200,19 +208,23 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSe MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); pOut->emplace_back(rpId, // detector info + // spatial info roundedX0, roundedX0Sigma, roundedY0, - roundedY0Sigma, // spatial info + roundedY0Sigma, + // angular info roundedTx, roundedTxSigma, roundedTy, - roundedTySigma, // angular info + roundedTySigma, + // reconstruction info roundedChiSquaredOverNDF, trk.getRecoInfo(), - trk.getNumberOfPointsUsedForFit(), // reconstruction info + trk.getNumberOfPointsUsedForFit(), + // timing info 0., - 0. // timing info + 0. ); } } @@ -258,3 +270,4 @@ void CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescription //---------------------------------------------------------------------------------------------------- DEFINE_FWK_MODULE(CTPPSLocalTrackLiteProducer); + From 150facafccac44ebcb8ba8f9c935cc4ce50ce18e Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Fri, 3 May 2019 16:41:29 +0200 Subject: [PATCH 09/10] Code format (2) --- .../plugins/CTPPSLocalTrackLiteProducer.cc | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc index cd8ed34325bb9..f3fac9ff19909 100644 --- a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc @@ -55,9 +55,9 @@ class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> { //---------------------------------------------------------------------------------------------------- CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) - : includeStrips_ (iConfig.getParameter("includeStrips")), + : includeStrips_(iConfig.getParameter("includeStrips")), includeDiamonds_(iConfig.getParameter("includeDiamonds")), - includePixels_ (iConfig.getParameter("includePixels")), + includePixels_(iConfig.getParameter("includePixels")), pixelTrackTxMin_(iConfig.getParameter("pixelTrackTxMin")), pixelTrackTxMax_(iConfig.getParameter("pixelTrackTxMax")), pixelTrackTyMin_(iConfig.getParameter("pixelTrackTyMin")), @@ -127,8 +127,7 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSe trk.getNumberOfPointsUsedForFit(), // timing info 0., - 0. - ); + 0.); } } } @@ -175,8 +174,7 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSe trk.getNumOfPlanes(), // timing info roundedT, - roundedTSigma - ); + roundedTSigma); } } } @@ -224,8 +222,7 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSe trk.getNumberOfPointsUsedForFit(), // timing info 0., - 0. - ); + 0.); } } } @@ -270,4 +267,3 @@ void CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescription //---------------------------------------------------------------------------------------------------- DEFINE_FWK_MODULE(CTPPSLocalTrackLiteProducer); - From 6033dd34e06f4e6017edcee7af5bd1c82305e1b5 Mon Sep 17 00:00:00 2001 From: Laurent Forthomme Date: Fri, 3 May 2019 16:52:58 +0200 Subject: [PATCH 10/10] @cmsbuild's seems to be even more pedantic than the default lxplus environment's --- .../plugins/CTPPSLocalTrackLiteProducer.cc | 258 ++++++++++-------- 1 file changed, 148 insertions(+), 110 deletions(-) diff --git a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc index f3fac9ff19909..1bcc06c706538 100644 --- a/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoCTPPS/TotemRPLocal/plugins/CTPPSLocalTrackLiteProducer.cc @@ -7,16 +7,16 @@ * ****************************************************************************/ -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/Common/interface/DetSetVector.h" -#include "DataFormats/CTPPSReco/interface/TotemRPLocalTrack.h" #include "DataFormats/CTPPSReco/interface/CTPPSDiamondLocalTrack.h" #include "DataFormats/CTPPSReco/interface/CTPPSPixelLocalTrack.h" +#include "DataFormats/CTPPSReco/interface/TotemRPLocalTrack.h" +#include "DataFormats/Common/interface/DetSetVector.h" #include "DataFormats/CTPPSReco/interface/CTPPSLocalTrackLite.h" #include "DataFormats/CTPPSReco/interface/CTPPSLocalTrackLiteFwd.h" @@ -30,23 +30,24 @@ **/ class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> { public: - explicit CTPPSLocalTrackLiteProducer(const edm::ParameterSet&); + explicit CTPPSLocalTrackLiteProducer(const edm::ParameterSet &); - void produce(edm::Event&, const edm::EventSetup&) override; - static void fillDescriptions(edm::ConfigurationDescriptions&); + void produce(edm::Event &, const edm::EventSetup &) override; + static void fillDescriptions(edm::ConfigurationDescriptions &); private: /// HPTDC time slice width, in ns static constexpr float HPTDC_TIME_SLICE_WIDTH = 25.; bool includeStrips_; - edm::EDGetTokenT > siStripTrackToken_; + edm::EDGetTokenT> siStripTrackToken_; bool includeDiamonds_; - edm::EDGetTokenT > diamondTrackToken_; + edm::EDGetTokenT> + diamondTrackToken_; bool includePixels_; - edm::EDGetTokenT > pixelTrackToken_; + edm::EDGetTokenT> pixelTrackToken_; double pixelTrackTxMin_, pixelTrackTxMax_, pixelTrackTyMin_, pixelTrackTyMax_; double timingTrackTMin_, timingTrackTMax_; @@ -54,7 +55,8 @@ class CTPPSLocalTrackLiteProducer : public edm::stream::EDProducer<> { //---------------------------------------------------------------------------------------------------- -CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet& iConfig) +CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer( + const edm::ParameterSet &iConfig) : includeStrips_(iConfig.getParameter("includeStrips")), includeDiamonds_(iConfig.getParameter("includeDiamonds")), includePixels_(iConfig.getParameter("includePixels")), @@ -66,22 +68,26 @@ CTPPSLocalTrackLiteProducer::CTPPSLocalTrackLiteProducer(const edm::ParameterSet timingTrackTMax_(iConfig.getParameter("timingTrackTMax")) { auto tagSiStripTrack = iConfig.getParameter("tagSiStripTrack"); if (!tagSiStripTrack.label().empty()) - siStripTrackToken_ = consumes >(tagSiStripTrack); + siStripTrackToken_ = + consumes>(tagSiStripTrack); auto tagDiamondTrack = iConfig.getParameter("tagDiamondTrack"); if (!tagDiamondTrack.label().empty()) - diamondTrackToken_ = consumes >(tagDiamondTrack); + diamondTrackToken_ = + consumes>(tagDiamondTrack); auto tagPixelTrack = iConfig.getParameter("tagPixelTrack"); if (!tagPixelTrack.label().empty()) - pixelTrackToken_ = consumes >(tagPixelTrack); + pixelTrackToken_ = + consumes>(tagPixelTrack); produces(); } //---------------------------------------------------------------------------------------------------- -void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { +void CTPPSLocalTrackLiteProducer::produce(edm::Event &iEvent, + const edm::EventSetup &) { // prepare output auto pOut = std::make_unique(); @@ -89,45 +95,51 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSe // get input from Si strips if (includeStrips_) { - edm::Handle > inputSiStripTracks; + edm::Handle> inputSiStripTracks; iEvent.getByToken(siStripTrackToken_, inputSiStripTracks); // process tracks from Si strips - for (const auto& rpv : *inputSiStripTracks) { + for (const auto &rpv : *inputSiStripTracks) { const uint32_t rpId = rpv.detId(); - for (const auto& trk : rpv) { + for (const auto &trk : rpv) { if (!trk.isValid()) continue; - float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<14>(trk.getX0()); - float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getX0Sigma()); - float roundedY0 = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getY0()); - float roundedY0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getY0Sigma()); - float roundedTx = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTx()); - float roundedTxSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTxSigma()); - float roundedTy = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTy()); - float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTySigma()); + float roundedX0 = + MiniFloatConverter::reduceMantissaToNbitsRounding<14>(trk.getX0()); + float roundedX0Sigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getX0Sigma()); + float roundedY0 = + MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getY0()); + float roundedY0Sigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getY0Sigma()); + float roundedTx = + MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTx()); + float roundedTxSigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getTxSigma()); + float roundedTy = + MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTy()); + float roundedTySigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getTySigma()); float roundedChiSquaredOverNDF = - MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); - - pOut->emplace_back(rpId, // detector info - // spatial info - roundedX0, - roundedX0Sigma, - roundedY0, - roundedY0Sigma, + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getChiSquaredOverNDF()); + + pOut->emplace_back(rpId, // detector info + // spatial info + roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, // angular info - roundedTx, - roundedTxSigma, - roundedTy, - roundedTySigma, + roundedTx, roundedTxSigma, roundedTy, roundedTySigma, // reconstruction info roundedChiSquaredOverNDF, CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumberOfPointsUsedForFit(), // timing info - 0., - 0.); + 0., 0.); } } } @@ -136,45 +148,47 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSe if (includeDiamonds_) { // get input from diamond detectors - edm::Handle > inputDiamondTracks; + edm::Handle> inputDiamondTracks; iEvent.getByToken(diamondTrackToken_, inputDiamondTracks); // process tracks from diamond detectors - for (const auto& rpv : *inputDiamondTracks) { + for (const auto &rpv : *inputDiamondTracks) { const unsigned int rpId = rpv.detId(); - for (const auto& trk : rpv) { + for (const auto &trk : rpv) { if (!trk.isValid()) continue; - const float abs_time = trk.getT() + trk.getOOTIndex() * HPTDC_TIME_SLICE_WIDTH; + const float abs_time = + trk.getT() + trk.getOOTIndex() * HPTDC_TIME_SLICE_WIDTH; if (abs_time < timingTrackTMin_ || abs_time > timingTrackTMax_) continue; - float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(trk.getX0()); - float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getX0Sigma()); - float roundedY0 = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getY0()); - float roundedY0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getY0Sigma()); - float roundedT = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(abs_time); - float roundedTSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getTSigma()); - - pOut->emplace_back(rpId, // detector info - // spatial info - roundedX0, - roundedX0Sigma, - roundedY0, - roundedY0Sigma, + float roundedX0 = + MiniFloatConverter::reduceMantissaToNbitsRounding<16>(trk.getX0()); + float roundedX0Sigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getX0Sigma()); + float roundedY0 = + MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getY0()); + float roundedY0Sigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getY0Sigma()); + float roundedT = + MiniFloatConverter::reduceMantissaToNbitsRounding<16>(abs_time); + float roundedTSigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<13>( + trk.getTSigma()); + + pOut->emplace_back(rpId, // detector info + // spatial info + roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, // angular info - 0., - 0., - 0., - 0., + 0., 0., 0., 0., // reconstruction info - 0., - CTPPSpixelLocalTrackReconstructionInfo::invalid, + 0., CTPPSpixelLocalTrackReconstructionInfo::invalid, trk.getNumOfPlanes(), // timing info - roundedT, - roundedTSigma); + roundedT, roundedTSigma); } } } @@ -182,47 +196,59 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSe //----- pixel detectors if (includePixels_) { - edm::Handle > inputPixelTracks; + edm::Handle> inputPixelTracks; if (!pixelTrackToken_.isUninitialized()) { iEvent.getByToken(pixelTrackToken_, inputPixelTracks); // process tracks from pixels - for (const auto& rpv : *inputPixelTracks) { + for (const auto &rpv : *inputPixelTracks) { const uint32_t rpId = rpv.detId(); - for (const auto& trk : rpv) { + for (const auto &trk : rpv) { if (!trk.isValid()) continue; - if (trk.getTx() > pixelTrackTxMin_ && trk.getTx() < pixelTrackTxMax_ && trk.getTy() > pixelTrackTyMin_ && + if (trk.getTx() > pixelTrackTxMin_ && + trk.getTx() < pixelTrackTxMax_ && + trk.getTy() > pixelTrackTyMin_ && trk.getTy() < pixelTrackTyMax_) { - float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(trk.getX0()); - float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getX0Sigma()); - float roundedY0 = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.getY0()); - float roundedY0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getY0Sigma()); - float roundedTx = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTx()); - float roundedTxSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTxSigma()); - float roundedTy = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.getTy()); - float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getTySigma()); + float roundedX0 = + MiniFloatConverter::reduceMantissaToNbitsRounding<16>( + trk.getX0()); + float roundedX0Sigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getX0Sigma()); + float roundedY0 = + MiniFloatConverter::reduceMantissaToNbitsRounding<13>( + trk.getY0()); + float roundedY0Sigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getY0Sigma()); + float roundedTx = + MiniFloatConverter::reduceMantissaToNbitsRounding<11>( + trk.getTx()); + float roundedTxSigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getTxSigma()); + float roundedTy = + MiniFloatConverter::reduceMantissaToNbitsRounding<11>( + trk.getTy()); + float roundedTySigma = + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getTySigma()); float roundedChiSquaredOverNDF = - MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.getChiSquaredOverNDF()); - - pOut->emplace_back(rpId, // detector info - // spatial info - roundedX0, - roundedX0Sigma, - roundedY0, - roundedY0Sigma, - // angular info - roundedTx, - roundedTxSigma, - roundedTy, - roundedTySigma, - // reconstruction info - roundedChiSquaredOverNDF, - trk.getRecoInfo(), - trk.getNumberOfPointsUsedForFit(), - // timing info - 0., - 0.); + MiniFloatConverter::reduceMantissaToNbitsRounding<8>( + trk.getChiSquaredOverNDF()); + + pOut->emplace_back( + rpId, // detector info + // spatial info + roundedX0, roundedX0Sigma, roundedY0, roundedY0Sigma, + // angular info + roundedTx, roundedTxSigma, roundedTy, roundedTySigma, + // reconstruction info + roundedChiSquaredOverNDF, trk.getRecoInfo(), + trk.getNumberOfPointsUsedForFit(), + // timing info + 0., 0.); } } } @@ -235,26 +261,38 @@ void CTPPSLocalTrackLiteProducer::produce(edm::Event& iEvent, const edm::EventSe //---------------------------------------------------------------------------------------------------- -void CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescriptions& descr) { +void CTPPSLocalTrackLiteProducer::fillDescriptions( + edm::ConfigurationDescriptions &descr) { edm::ParameterSetDescription desc; // By default: all includeXYZ flags set to false. - // The includeXYZ are switched on when the "ctpps_2016" era is declared in python config, see: + // The includeXYZ are switched on when the "ctpps_2016" era is declared in + // python config, see: // RecoCTPPS/TotemRPLocal/python/ctppsLocalTrackLiteProducer_cff.py - desc.add("includeStrips", false)->setComment("whether tracks from Si strips should be included"); - desc.add("tagSiStripTrack", edm::InputTag("totemRPLocalTrackFitter")) + desc.add("includeStrips", false) + ->setComment("whether tracks from Si strips should be included"); + desc.add("tagSiStripTrack", + edm::InputTag("totemRPLocalTrackFitter")) ->setComment("input TOTEM strips' local tracks collection to retrieve"); - desc.add("includeDiamonds", false)->setComment("whether tracks from diamonds strips should be included"); - desc.add("tagDiamondTrack", edm::InputTag("ctppsDiamondLocalTracks")) - ->setComment("input diamond detectors' local tracks collection to retrieve"); - - desc.add("includePixels", false)->setComment("whether tracks from pixels should be included"); - desc.add("tagPixelTrack", edm::InputTag("ctppsPixelLocalTracks")) - ->setComment("input pixel detectors' local tracks collection to retrieve"); - desc.add("timingTrackTMin", -12.5)->setComment("minimal track time selection for timing detectors, in ns"); - desc.add("timingTrackTMax", +12.5)->setComment("maximal track time selection for timing detectors, in ns"); + desc.add("includeDiamonds", false) + ->setComment("whether tracks from diamonds strips should be included"); + desc.add("tagDiamondTrack", + edm::InputTag("ctppsDiamondLocalTracks")) + ->setComment( + "input diamond detectors' local tracks collection to retrieve"); + + desc.add("includePixels", false) + ->setComment("whether tracks from pixels should be included"); + desc.add("tagPixelTrack", + edm::InputTag("ctppsPixelLocalTracks")) + ->setComment( + "input pixel detectors' local tracks collection to retrieve"); + desc.add("timingTrackTMin", -12.5) + ->setComment("minimal track time selection for timing detectors, in ns"); + desc.add("timingTrackTMax", +12.5) + ->setComment("maximal track time selection for timing detectors, in ns"); desc.add("pixelTrackTxMin", -10.0); desc.add("pixelTrackTxMax", 10.0);