From c7dffe7d2e86fa95ebc750219fa33dcd70838f01 Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Thu, 8 Feb 2024 05:25:31 -0500 Subject: [PATCH 01/15] Try to throw exception to Scarab from Kass. --- Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc index 0244f65d..9604cbd3 100644 --- a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc +++ b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc @@ -53,6 +53,7 @@ namespace locust } + locust::Particle CyclotronRadiationExtractor::ExtractKassiopeiaParticle( Kassiopeia::KSParticle &anInitialParticle, Kassiopeia::KSParticle &aFinalParticle) { LMCThreeVector tPosition(aFinalParticle.GetPosition().Components()); @@ -192,8 +193,20 @@ namespace locust { // If the Locust sample index has not advanced yet, keep checking it. tTriggerConfirm += 1; + if ( tTriggerConfirm > fInterface->fTriggerConfirm - 3) + { + LERROR(lmclog,"Locust digitizer sample index has not advanced properly. " + "Either increase the value of \"trigger-confirm\" [10000] and resubmit " + "the jobs, or check HPC status."); + + exit(-1); // This works, but is not really preferable. +// throw 3; // This is the preferred approach, but is not being caught by LocustSim.cc, + // and is causing an "unhandled exception" error. + + } } + } } // DoneWithSignalGeneration From 4dd059595a399c8e9c2f79264e57baf9ae4efc67 Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Thu, 8 Feb 2024 05:33:55 -0500 Subject: [PATCH 02/15] Build on push to feature branch. --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 592aedda..24af4ec4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -3,7 +3,7 @@ name: Build and Test Locust on: pull_request: push: - branches: [master, develop] + branches: [master, develop, feature/catchNodeInKass] tags: ['*'] workflow_dispatch: From 370303444185341bd86616fe08472995ec9be766 Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Thu, 8 Feb 2024 05:45:26 -0500 Subject: [PATCH 03/15] Update comment. --- Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc index 9604cbd3..032143ec 100644 --- a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc +++ b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc @@ -196,7 +196,7 @@ namespace locust if ( tTriggerConfirm > fInterface->fTriggerConfirm - 3) { LERROR(lmclog,"Locust digitizer sample index has not advanced properly. " - "Either increase the value of \"trigger-confirm\" [10000] and resubmit " + "Either increase the value of \"trigger-confirm\" [100000] and resubmit " "the jobs, or check HPC status."); exit(-1); // This works, but is not really preferable. From 6cd9c311968b051b03a2dc6ab1da69d239a29e6e Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Thu, 8 Feb 2024 06:27:44 -0500 Subject: [PATCH 04/15] Make record length more accessible outside RunLengthCalculator. --- Source/Core/LMCGenerator.cc | 5 +++++ Source/Core/LMCGenerator.hh | 2 ++ Source/Core/LMCRunLengthCalculator.cc | 1 + 3 files changed, 8 insertions(+) diff --git a/Source/Core/LMCGenerator.cc b/Source/Core/LMCGenerator.cc index 0e02d9b9..0bbba2d2 100644 --- a/Source/Core/LMCGenerator.cc +++ b/Source/Core/LMCGenerator.cc @@ -83,6 +83,11 @@ namespace locust fNChannels = nchannels; } + void Generator::ConfigureRecordLength( unsigned recordLength ) const + { + fRecordLength = recordLength; + } + void Generator::ConfigureAcquisitionRate( double ar ) const { fAcquisitionRate = ar; diff --git a/Source/Core/LMCGenerator.hh b/Source/Core/LMCGenerator.hh index e508dc3d..6b2f6ba6 100644 --- a/Source/Core/LMCGenerator.hh +++ b/Source/Core/LMCGenerator.hh @@ -27,6 +27,7 @@ namespace locust virtual bool Configure( const scarab::param_node& aNode ) = 0; void ConfigureNChannels( unsigned nchannels ) const; + void ConfigureRecordLength( unsigned recordLength ) const; void ConfigureAcquisitionRate( double ar ) const; virtual void Accept( GeneratorVisitor* aVisitor ) const = 0; @@ -52,6 +53,7 @@ namespace locust virtual bool DoGenerate( Signal* aSignal ) = 0; mutable unsigned fNChannels; mutable double fAcquisitionRate; + mutable unsigned fRecordLength; std::string fName; diff --git a/Source/Core/LMCRunLengthCalculator.cc b/Source/Core/LMCRunLengthCalculator.cc index 2b81dcba..357ed620 100644 --- a/Source/Core/LMCRunLengthCalculator.cc +++ b/Source/Core/LMCRunLengthCalculator.cc @@ -74,6 +74,7 @@ namespace locust while( nextGenerator != NULL ) { nextGenerator->ConfigureNChannels(frlcChannels); + nextGenerator->ConfigureRecordLength(fRecordSize); nextGenerator->ConfigureAcquisitionRate(frlcAcquisitionRate); nextGenerator->Accept( this ); nextGenerator = nextGenerator->GetNextGenerator(); From 41ce2487787299d6f46eb1196868b31cbf10e9e9 Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Thu, 8 Feb 2024 06:29:04 -0500 Subject: [PATCH 05/15] Add record length to KassLocustInterface. --- Source/Kassiopeia/LMCKassLocustInterface.cc | 3 ++- Source/Kassiopeia/LMCKassLocustInterface.hh | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Kassiopeia/LMCKassLocustInterface.cc b/Source/Kassiopeia/LMCKassLocustInterface.cc index 52366610..a31f5d7a 100644 --- a/Source/Kassiopeia/LMCKassLocustInterface.cc +++ b/Source/Kassiopeia/LMCKassLocustInterface.cc @@ -38,7 +38,8 @@ namespace locust fBackReaction( true ), fbWaveguide( false ), fSampleIndex( 0 ), - fTriggerConfirm( 100000 ) + fTriggerConfirm( 100000 ), + fFastRecordLength( 0 ) {} KLInterfaceBootstrapper::KLInterfaceBootstrapper() : diff --git a/Source/Kassiopeia/LMCKassLocustInterface.hh b/Source/Kassiopeia/LMCKassLocustInterface.hh index b80ad3e8..73fc6c9d 100644 --- a/Source/Kassiopeia/LMCKassLocustInterface.hh +++ b/Source/Kassiopeia/LMCKassLocustInterface.hh @@ -67,6 +67,7 @@ namespace locust bool fbWaveguide; unsigned fSampleIndex; int fTriggerConfirm; + int fFastRecordLength; }; From ace4ae8c6c6268ddcb8b8cbbd36de6053e5ff87b Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Thu, 8 Feb 2024 06:29:56 -0500 Subject: [PATCH 06/15] Configure record length in Interface. --- Source/Generators/LMCCavitySignalGenerator.cc | 6 ++++-- Source/Generators/LMCCavitySignalGenerator.hh | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/Generators/LMCCavitySignalGenerator.cc b/Source/Generators/LMCCavitySignalGenerator.cc index 9492149a..016c624c 100644 --- a/Source/Generators/LMCCavitySignalGenerator.cc +++ b/Source/Generators/LMCCavitySignalGenerator.cc @@ -50,7 +50,7 @@ namespace locust } - bool CavitySignalGenerator::ConfigureInterface() + bool CavitySignalGenerator::ConfigureInterface( Signal* aSignal ) { if ( fInterface == nullptr ) fInterface.reset( new KassLocustInterface() ); @@ -212,6 +212,7 @@ namespace locust { fInterface->fTriggerConfirm = tParam["trigger-confirm"]().as_int(); } + fInterface->fFastRecordLength = fRecordLength * aSignal->DecimationFactor(); // Configure Locust-Kass interface classes and parameters: fFieldCalculator = new FieldCalculator(); @@ -562,7 +563,8 @@ namespace locust bool CavitySignalGenerator::DoGenerateTime( Signal* aSignal ) { - ConfigureInterface(); + ConfigureInterface( aSignal ); + if (fRandomPreEventSamples) RandomizeStartDelay(); fPowerCombiner->SizeNChannels(fNChannels); diff --git a/Source/Generators/LMCCavitySignalGenerator.hh b/Source/Generators/LMCCavitySignalGenerator.hh index 3b9d620e..b0470852 100644 --- a/Source/Generators/LMCCavitySignalGenerator.hh +++ b/Source/Generators/LMCCavitySignalGenerator.hh @@ -72,7 +72,7 @@ namespace locust virtual ~CavitySignalGenerator(); bool Configure( const scarab::param_node& aNode ); - bool ConfigureInterface(); + bool ConfigureInterface(Signal* aSignal); bool CrossCheckCavityConfig(); bool CrossCheckAliasing(Signal* aSignal, double dopplerFrequency ); From 7cd4f43aed5f38b0fd006c6d31b5a4ca034bfe9b Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Thu, 8 Feb 2024 06:30:47 -0500 Subject: [PATCH 07/15] Check record length during trigger confirmation. --- Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc index 032143ec..455016df 100644 --- a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc +++ b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc @@ -193,11 +193,13 @@ namespace locust { // If the Locust sample index has not advanced yet, keep checking it. tTriggerConfirm += 1; - if ( tTriggerConfirm > fInterface->fTriggerConfirm - 3) + if ( ( tTriggerConfirm > fInterface->fTriggerConfirm - 3) && ( fSampleIndex < fInterface->fFastRecordLength ) ) { LERROR(lmclog,"Locust digitizer sample index has not advanced properly. " "Either increase the value of \"trigger-confirm\" [100000] and resubmit " "the jobs, or check HPC status."); + LERROR(lmclog, "tTriggerConfirm, fSampleIndex are " << tTriggerConfirm << " and " << fSampleIndex); + exit(-1); // This works, but is not really preferable. // throw 3; // This is the preferred approach, but is not being caught by LocustSim.cc, From 0a4a30b21e0f7372fbce205c120c63c43db6e140 Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Thu, 8 Feb 2024 12:40:12 -0500 Subject: [PATCH 08/15] Confirm sample has advanced. --- .../LMCCyclotronRadiationExtractor.cc | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc index 455016df..6dc40d57 100644 --- a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc +++ b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc @@ -1,5 +1,7 @@ #include "LMCCyclotronRadiationExtractor.hh" #include "KSModifiersMessage.h" +#include +#include namespace locust @@ -192,20 +194,25 @@ namespace locust while ((fSampleIndex == fInterface->fSampleIndex) && (tTriggerConfirm < fInterface->fTriggerConfirm)) { // If the Locust sample index has not advanced yet, keep checking it. - tTriggerConfirm += 1; - if ( ( tTriggerConfirm > fInterface->fTriggerConfirm - 3) && ( fSampleIndex < fInterface->fFastRecordLength ) ) - { - LERROR(lmclog,"Locust digitizer sample index has not advanced properly. " - "Either increase the value of \"trigger-confirm\" [100000] and resubmit " - "the jobs, or check HPC status."); - LERROR(lmclog, "tTriggerConfirm, fSampleIndex are " << tTriggerConfirm << " and " << fSampleIndex); - - - exit(-1); // This works, but is not really preferable. -// throw 3; // This is the preferred approach, but is not being caught by LocustSim.cc, - // and is causing an "unhandled exception" error. - - } + tTriggerConfirm += 1; + if ( ( tTriggerConfirm > fInterface->fTriggerConfirm - 3) && ( fSampleIndex < fInterface->fFastRecordLength ) ) + { + LPROG(lmclog,"Checking the digitizer synchronization, at fast sample " << fSampleIndex); + std::this_thread::sleep_for(std::chrono::milliseconds(10000)); + if ( (fSampleIndex > fInterface->fSampleIndex) ) + { + LPROG(lmclog,"Checking the digitizer synchronization again. "); + std::this_thread::sleep_for(std::chrono::milliseconds(10000)); + if ( (fSampleIndex > fInterface->fSampleIndex) ) + { + LERROR(lmclog,"Locust digitizer sample index has not advanced properly. " + "Either increase the value of \"trigger-confirm\" [100000] and resubmit " + "the jobs, or check HPC status."); + LERROR(lmclog, "tTriggerConfirm, fSampleIndex are " << tTriggerConfirm << " and " << fSampleIndex); + exit(-1); // To-do: throw this exception to scarab. + } + } + } } From 01bcd13358d268604488161ec530b3d40571a74b Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Fri, 9 Feb 2024 08:04:10 -0500 Subject: [PATCH 09/15] Change booleans and add comments. --- Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc index 6dc40d57..9d77ca94 100644 --- a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc +++ b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc @@ -199,17 +199,16 @@ namespace locust { LPROG(lmclog,"Checking the digitizer synchronization, at fast sample " << fSampleIndex); std::this_thread::sleep_for(std::chrono::milliseconds(10000)); - if ( (fSampleIndex > fInterface->fSampleIndex) ) + if ( !(fSampleIndex < fInterface->fSampleIndex) ) { LPROG(lmclog,"Checking the digitizer synchronization again. "); std::this_thread::sleep_for(std::chrono::milliseconds(10000)); - if ( (fSampleIndex > fInterface->fSampleIndex) ) + if ( !(fSampleIndex < fInterface->fSampleIndex) ) { LERROR(lmclog,"Locust digitizer sample index has not advanced properly. " - "Either increase the value of \"trigger-confirm\" [100000] and resubmit " - "the jobs, or check HPC status."); + "Please either resubmit the job, or check HPC status."); LERROR(lmclog, "tTriggerConfirm, fSampleIndex are " << tTriggerConfirm << " and " << fSampleIndex); - exit(-1); // To-do: throw this exception to scarab. + exit(-1); // TO-DO: throw this exception to be caught properly by scarab, as in LocustSim.cc . } } } From 8292549d0fe2df111109993777c377ef3f2b5ba0 Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Fri, 9 Feb 2024 09:10:29 -0500 Subject: [PATCH 10/15] Add more verbosity. --- Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc index 9d77ca94..bfefaaf8 100644 --- a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc +++ b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc @@ -195,9 +195,11 @@ namespace locust { // If the Locust sample index has not advanced yet, keep checking it. tTriggerConfirm += 1; + LPROG(lmclog,"tTriggerConfirm index = " << tTriggerConfirm); if ( ( tTriggerConfirm > fInterface->fTriggerConfirm - 3) && ( fSampleIndex < fInterface->fFastRecordLength ) ) { - LPROG(lmclog,"Checking the digitizer synchronization, at fast sample " << fSampleIndex); + LPROG(lmclog,"Checking the digitizer synchronization, tTriggerConfirm index = " << tTriggerConfirm); + LPROG(lmclog,"Checking the digitizer synchronization, at fast sample = " << fSampleIndex); std::this_thread::sleep_for(std::chrono::milliseconds(10000)); if ( !(fSampleIndex < fInterface->fSampleIndex) ) { From da608d0749737ff9a4db862ed334bcaf5e8a8ef1 Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Fri, 9 Feb 2024 09:47:46 -0500 Subject: [PATCH 11/15] Reduce verbosity. --- Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc index bfefaaf8..e9b71941 100644 --- a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc +++ b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc @@ -195,11 +195,11 @@ namespace locust { // If the Locust sample index has not advanced yet, keep checking it. tTriggerConfirm += 1; - LPROG(lmclog,"tTriggerConfirm index = " << tTriggerConfirm); if ( ( tTriggerConfirm > fInterface->fTriggerConfirm - 3) && ( fSampleIndex < fInterface->fFastRecordLength ) ) { LPROG(lmclog,"Checking the digitizer synchronization, tTriggerConfirm index = " << tTriggerConfirm); LPROG(lmclog,"Checking the digitizer synchronization, at fast sample = " << fSampleIndex); + LPROG(lmclog,"Fast record length = " << fInterface->fFastRecordLength); std::this_thread::sleep_for(std::chrono::milliseconds(10000)); if ( !(fSampleIndex < fInterface->fSampleIndex) ) { From b515072195a3433ce5bab07bd445516d0987463c Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Fri, 9 Feb 2024 10:25:20 -0500 Subject: [PATCH 12/15] minor change to boolean format. --- Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc index e9b71941..a86fd9e7 100644 --- a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc +++ b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc @@ -191,7 +191,7 @@ namespace locust fInterface->fDigitizerCondition.notify_one(); // notify Locust after writing. int tTriggerConfirm = 0; - while ((fSampleIndex == fInterface->fSampleIndex) && (tTriggerConfirm < fInterface->fTriggerConfirm)) + while ( !(fSampleIndex < fInterface->fSampleIndex) && (tTriggerConfirm < fInterface->fTriggerConfirm) ) { // If the Locust sample index has not advanced yet, keep checking it. tTriggerConfirm += 1; From 680adbf70c9db4167c23969c608c5e3618e0bc21 Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Fri, 9 Feb 2024 12:06:33 -0500 Subject: [PATCH 13/15] 2-way trigger confirmation that works in the luna container. --- Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc index a86fd9e7..89683e2c 100644 --- a/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc +++ b/Source/Kassiopeia/LMCCyclotronRadiationExtractor.cc @@ -191,14 +191,22 @@ namespace locust fInterface->fDigitizerCondition.notify_one(); // notify Locust after writing. int tTriggerConfirm = 0; + while ( !(fSampleIndex < fInterface->fSampleIndex) && (tTriggerConfirm < fInterface->fTriggerConfirm) ) { - // If the Locust sample index has not advanced yet, keep checking it. + // If the Locust sample index has not advanced yet, keep checking it. tTriggerConfirm += 1; + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + if ( tTriggerConfirm % 1000 == 0 ) + { + LPROG(lmclog,"Checking the digitizer synchronization, tTriggerConfirm index = " << tTriggerConfirm ); + } + if ( ( tTriggerConfirm > fInterface->fTriggerConfirm - 3) && ( fSampleIndex < fInterface->fFastRecordLength ) ) { LPROG(lmclog,"Checking the digitizer synchronization, tTriggerConfirm index = " << tTriggerConfirm); LPROG(lmclog,"Checking the digitizer synchronization, at fast sample = " << fSampleIndex); + LPROG(lmclog,"Checking the digitizer synchronization, at Locust fast sample = " << fInterface->fSampleIndex); LPROG(lmclog,"Fast record length = " << fInterface->fFastRecordLength); std::this_thread::sleep_for(std::chrono::milliseconds(10000)); if ( !(fSampleIndex < fInterface->fSampleIndex) ) From 5a1839099f79af52e7c7b62f60dd93b76b6f41e5 Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Fri, 9 Feb 2024 13:28:39 -0500 Subject: [PATCH 14/15] Remove build on push to feature branch. --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 24af4ec4..592aedda 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -3,7 +3,7 @@ name: Build and Test Locust on: pull_request: push: - branches: [master, develop, feature/catchNodeInKass] + branches: [master, develop] tags: ['*'] workflow_dispatch: From cbcbe0d59136959f5723de103243b74de9b5492b Mon Sep 17 00:00:00 2001 From: Penny Slocum Date: Fri, 9 Feb 2024 13:29:24 -0500 Subject: [PATCH 15/15] Bump version. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f16e6d2..98171a42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ cmake_minimum_required( VERSION 3.1 ) # Define the project cmake_policy( SET CMP0048 NEW ) # version in project() -project( locust_mc VERSION 2.6.1) +project( locust_mc VERSION 2.6.2) list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/Scarab/cmake )