diff --git a/AtlasGeometryCommon/BeamPipeGeoModel/BeamPipeGeoModel/BeamPipeDetectorManager.h b/AtlasGeometryCommon/BeamPipeGeoModel/BeamPipeGeoModel/BeamPipeDetectorManager.h index 540975ccc95e39264679833c73cb09ad7cb4654d..4cd26f718cf07451935649f105c5b66adaa80511 100755 --- a/AtlasGeometryCommon/BeamPipeGeoModel/BeamPipeGeoModel/BeamPipeDetectorManager.h +++ b/AtlasGeometryCommon/BeamPipeGeoModel/BeamPipeGeoModel/BeamPipeDetectorManager.h @@ -39,7 +39,7 @@ class BeamPipeDetectorManager : public GeoVDetectorManager }; #ifndef GAUDI_NEUTRAL -#include "CLIDSvc/CLASS_DEF.h" +#include "AthenaKernel/CLASS_DEF.h" CLASS_DEF(BeamPipeDetectorManager, 119561103, 1) #endif diff --git a/AtlasGeometryCommon/BeamPipeGeoModel/CMakeLists.txt b/AtlasGeometryCommon/BeamPipeGeoModel/CMakeLists.txt index 60964ae54c07e03f83948ad59569b94b3718f0b2..87f8b8aa5b4f7fb06561e67af728cd164db2b29e 100644 --- a/AtlasGeometryCommon/BeamPipeGeoModel/CMakeLists.txt +++ b/AtlasGeometryCommon/BeamPipeGeoModel/CMakeLists.txt @@ -11,7 +11,6 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities PRIVATE - Control/CLIDSvc Control/SGTools Control/StoreGate Control/AthenaKernel diff --git a/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorTool.cxx b/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorTool.cxx index c9c8d9e3376c8581a192580160099cc4a3850787..a43f42349b477dca5c8fdf80664ab8f37ab3c549 100755 --- a/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorTool.cxx +++ b/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorTool.cxx @@ -15,7 +15,7 @@ #include "StoreGate/StoreGateSvc.h" #include "RDBAccessSvc/IRDBAccessSvc.h" -#include "CLIDSvc/tools/ClassID_traits.h" +#include "AthenaKernel/ClassID_traits.h" #include "SGTools/DataProxy.h" BeamPipeDetectorTool::BeamPipeDetectorTool( const std::string& type, diff --git a/AtlasTest/DatabaseTest/AthenaDBTestRec/src/app/TestCoolRecWriter.cxx b/AtlasTest/DatabaseTest/AthenaDBTestRec/src/app/TestCoolRecWriter.cxx index 9a5e2c5dc3c1b6b54d3e3a827781ef727c3f8e61..d1fba1dcbd39c315faa9c53c5be1d8997da2e434 100644 --- a/AtlasTest/DatabaseTest/AthenaDBTestRec/src/app/TestCoolRecWriter.cxx +++ b/AtlasTest/DatabaseTest/AthenaDBTestRec/src/app/TestCoolRecWriter.cxx @@ -578,12 +578,18 @@ bool TestCoolRecWriter::setupPool() { policy.setWriteModeForNonExisting(pool::DatabaseConnectionPolicy::CREATE); policy.setWriteModeForExisting(pool::DatabaseConnectionPolicy::UPDATE); m_persistencySvc->session().setDefaultConnectionPolicy(policy); - m_persistencySvc->session().transaction().start(pool::ITransaction::UPDATE); + if (!m_persistencySvc->session().transaction().start(pool::ITransaction::UPDATE)) { + std::cout << "TestCollRecWriter::setupPool: start fails." << std::endl; + return false; + } return true; } bool TestCoolRecWriter::finalizePool() { - m_persistencySvc->session().transaction().commit(); + if (!m_persistencySvc->session().transaction().commit()) { + std::cout << "TestCollRecWriter::finalizePool: commit fails." << std::endl; + return false; + } m_persistencySvc->session().disconnectAll(); m_poolcat->commit(); m_poolcat->disconnect(); @@ -605,6 +611,7 @@ void TestCoolRecWriter::setPoolPayload(const FolderInfo* folderi, Token *tok = m_persistencySvc->registerForWrite(*(folderi->poolplace()), data, pool::DbReflex::forTypeInfo(typeid(TestCoolRecPoolData)) ); // set payload data for COOL to Pool object reference payload["PoolRef"].setValue<std::string>( tok->toString() ); + delete tok; } diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/EventTagWriter.cxx b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/EventTagWriter.cxx index 48078a2897a9c6b7afa441f1873e931005d191f4..562aa717d00f625b0b6f7277e0633bcd8b2fde24 100755 --- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/EventTagWriter.cxx +++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/EventTagWriter.cxx @@ -221,7 +221,7 @@ StatusCode EventTagWriter::execute() { attribList = new AthenaAttributeList(*m_attribListSpec); } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception during creation of AthenaAttributeList object." << "Message: " << e.what() ); @@ -262,7 +262,7 @@ StatusCode EventTagWriter::execute() (*attribList)["TestDouble"].data<double>() = testDouble; (*attribList)["TestString"].data<std::string>() = testString; } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception from data() when setting type test " << "attributes; Message:" << e.what() ); @@ -306,7 +306,7 @@ StatusCode EventTagWriter::execute() nGlobal++; (*attribList)["NGlobal"].data<unsigned short>() = nGlobal; } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception from data() when setting AOD global " << "attributes; Message:" << e.what() ); diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/RunEventMetaWriter.cxx b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/RunEventMetaWriter.cxx index e84737524bdff66ae87c1828d7343f05948713ac..44005e9d50c99bc17609f90f8f941b54ab2ab2ee 100755 --- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/RunEventMetaWriter.cxx +++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/RunEventMetaWriter.cxx @@ -83,7 +83,7 @@ StatusCode RunEventMetaWriter::start() { attribList = new AthenaAttributeList(*m_attribListSpec); } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception during creation of AthenaAttributeList object." << "Message: " << e.what() ); @@ -102,7 +102,7 @@ StatusCode RunEventMetaWriter::start() (*attribList)["RunNumber"].data<unsigned int>() = 88; (*attribList)["EventNumber"].data<unsigned int>() = 99; } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception from data() when setting AOD global " << "attributes; Message: " << e.what() ); diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/RunEventTagWriter.cxx b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/RunEventTagWriter.cxx index 9073e42760c9d3ae1549d758c4abe466ef8d157d..ea281f34f02a590d45c12923556c2eb3a414db85 100755 --- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/RunEventTagWriter.cxx +++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/RunEventTagWriter.cxx @@ -92,7 +92,7 @@ StatusCode RunEventTagWriter::execute() { attribList = new AthenaAttributeList(*m_attribListSpec); } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception during creation of AthenaAttributeList object." << "Message: " << e.what() ); @@ -148,7 +148,7 @@ StatusCode RunEventTagWriter::fillTag(const EventInfo* eInfo, AthenaAttributeLis (*attribList)["RunNumber"].data<unsigned int>() = runNumber; (*attribList)["EventNumber"].data<unsigned int>() = eventNumber; } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception from data() when setting AOD global " << "attributes; Message: " << e.what() ); @@ -177,7 +177,7 @@ StatusCode RunEventTagWriter::fillTag(const xAOD::EventInfo* eventInfo, AthenaAt (*attribList)["RunNumber"].data<unsigned int>() = runNumber; (*attribList)["EventNumber"].data<unsigned int>() = eventNumber; } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception from data() when setting AOD global " << "attributes; Message: " << e.what() ); diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/TagEventTagWriter.cxx b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/TagEventTagWriter.cxx index 82f6db2e83d8dad2c24650cf2401617bca0a6fed..e81e54bd3d791817e10c9aa00dc59c6d8777a25a 100755 --- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/TagEventTagWriter.cxx +++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/TagEventTagWriter.cxx @@ -253,7 +253,7 @@ StatusCode TagEventTagWriter::execute() { attribList = new TagAthenaAttributeList(*m_attribListSpec); } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception during creation of TagAthenaAttributeList object." << "Message: " << e.what() ); @@ -294,7 +294,7 @@ StatusCode TagEventTagWriter::execute() (*attribList)["TestDouble"].data<double>() = testDouble; (*attribList)["TestString"].data<std::string>() = testString; } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception from data() when setting type test " << "attributes; Message:" << e.what() ); @@ -338,7 +338,7 @@ StatusCode TagEventTagWriter::execute() nGlobal++; (*attribList)["NGlobal"].data<unsigned short>() = nGlobal; } - catch (std::exception e) + catch (const std::exception& e) { ATH_MSG_ERROR( "Caught exception from data() when setting AOD global " << "attributes; Message:" << e.what() ); diff --git a/AtlasTest/DatabaseTest/IOVDbTestAlg/test/post_check_with_select.sh b/AtlasTest/DatabaseTest/IOVDbTestAlg/test/post_check_with_select.sh index b3ea00f45d69b93cbe46af01c20b3fde3501d489..71a81dd30fd2d64b847fc21a22e1272facab8d0f 100755 --- a/AtlasTest/DatabaseTest/IOVDbTestAlg/test/post_check_with_select.sh +++ b/AtlasTest/DatabaseTest/IOVDbTestAlg/test/post_check_with_select.sh @@ -21,7 +21,7 @@ select=$2 joblog=${test}.log # if [ "$status" = 0 ] # then - echo "[92;1m post.sh> OK: ${test} exited normally. Output is in $joblog [m" + #echo "[92;1m post.sh> OK: ${test} exited normally. Output is in $joblog [m" reflog=../share/${test}.ref # If we can't find the reference file, maybe it's located outside @@ -126,7 +126,8 @@ select=$2 echo "[97;101;1m post.sh> ERROR: $joblog and $reflog differ [m" exit 1 else - echo "[92;1m post.sh> OK: $joblog and $reflog identical [m" + true + #echo "[92;1m post.sh> OK: $joblog and $reflog identical [m" fi else tail $joblog @@ -143,7 +144,7 @@ select=$2 # Check output for ERROR/FATAL joblog=${test}.log -echo +#echo exit $status diff --git a/Control/AthenaBaseComps/AthenaBaseComps/AthReentrantAlgorithm.h b/Control/AthenaBaseComps/AthenaBaseComps/AthReentrantAlgorithm.h index e66e532e93f4e7bc4c465feb3a82fa7dbe812912..7ba3aa35ed35fccfe12873f2b7e58be15f726871 100644 --- a/Control/AthenaBaseComps/AthenaBaseComps/AthReentrantAlgorithm.h +++ b/Control/AthenaBaseComps/AthenaBaseComps/AthReentrantAlgorithm.h @@ -180,11 +180,20 @@ class AthReentrantAlgorithm /** Cardinality (Maximum number of clones that can exist) * special value 0 means that algorithm is reentrant * - * Override this to return 0 for reentrant algorithms. - */ + * Override this to return 0 for reentrant algorithms. */ virtual unsigned int cardinality() const override; + /** + * @brief Return the current event context. + * + * Override this because the base class version won't work correctly + * for reentrant algorithms. (We shouldn't really be using this + * for reentrant algorithms, but just in case.). + */ + virtual const EventContext& getContext() const override; + + private: // to keep track of VarHandleKeyArrays for data dep registration diff --git a/Control/AthenaBaseComps/src/AthReentrantAlgorithm.cxx b/Control/AthenaBaseComps/src/AthReentrantAlgorithm.cxx index 73bccbd4488ac70a39f6aef0d07ffafb0aabf652..a7c5bb5d5ad8edcd9ef7cda6fe14e63ad03c7941 100644 --- a/Control/AthenaBaseComps/src/AthReentrantAlgorithm.cxx +++ b/Control/AthenaBaseComps/src/AthReentrantAlgorithm.cxx @@ -15,9 +15,7 @@ // Framework includes #include "GaudiKernel/Property.h" -#ifndef REENTRANT_GAUDI #include "GaudiKernel/ThreadLocalContext.h" -#endif #include "./VHKASupport.h" @@ -169,6 +167,19 @@ unsigned int AthReentrantAlgorithm::cardinality() const } +/** + * @brief Return the current event context. + * + * Override this because the base class version won't work correctly + * for reentrant algorithms. (We shouldn't really be using this + * for reentrant algorithms, but just in case.). + */ +const EventContext& AthReentrantAlgorithm::getContext() const +{ + return Gaudi::Hive::currentContext(); +} + + /** * @brief Perform system initialization for an algorithm. * diff --git a/Control/AthenaMonitoring/AthenaMonitoring/GenericMonitoringTool.h b/Control/AthenaMonitoring/AthenaMonitoring/GenericMonitoringTool.h index a171d70d59489c3c4adbccfbc15c381d370fe07c..26205ba8626197778abc00271ad6a1aa853313c2 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/GenericMonitoringTool.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/GenericMonitoringTool.h @@ -88,6 +88,12 @@ private: /* * Helper class to declare an empty monitoring ToolHandle + * + * This can be used in case an empty monitoring tool needs to be declared in the constructor: + * declareProperty("MonTool", m_monTool=VoidMonitoringTool(this), "Monitoring tool"); + * + * It is however preferred to instead use the initializer syntax in the header file: + * ToolHandle<GenericMonitoringTool> m_monTool{this,"MonTool","","Monitoring tool"}; */ class VoidMonitoringTool : public ToolHandle<GenericMonitoringTool> { public: diff --git a/Control/CxxUtils/CxxUtils/unused.h b/Control/CxxUtils/CxxUtils/unused.h index 017af025ed18413084c03ad0a834ded0ed0b4521..14e2a56d0abe7d5865db556419c287df78cdc66c 100644 --- a/Control/CxxUtils/CxxUtils/unused.h +++ b/Control/CxxUtils/CxxUtils/unused.h @@ -37,4 +37,13 @@ #endif +// Declare that a member is unused, to suppress warnings. +// Only clang recognizes an unused attribute for a member. +#ifdef __clang__ +# define ATH_UNUSED_MEMBER(v) v __attribute__((unused)) +#else +# define ATH_UNUSED_MEMBER(v) v +#endif + + #endif /* not CXXUTILS_UNUSED_H */ diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/BinHeightThreshold.h b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeightThreshold.h index 657044eb735069f1d6f4f4a410420fa097a1486c..19025fb2a2c2fc290ffcf7b6be5f5867be68827d 100644 --- a/DataQuality/dqm_algorithms/dqm_algorithms/BinHeightThreshold.h +++ b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeightThreshold.h @@ -17,16 +17,21 @@ namespace dqm_algorithms struct BinHeightThreshold : public dqm_core::Algorithm { enum binStatus {aRedBin,aYellowBin,aGreenBin,anUndefBin=-1}; - BinHeightThreshold(); + BinHeightThreshold(const std::string & name); //overwrites virtual functions BinHeightThreshold * clone( ); dqm_core::Result * execute( const std::string & , const TObject & , const dqm_core::AlgorithmConfig & ); - BinHeightThreshold::binStatus CompareBinHeightThreshold(double bincontent, double thresholdGr, double thresholdRed); + void CheckThresholds(const std::string & type, double thresholdGr, double thresholdRed); + bool checkUndefinedStatusValue(const std::string & type,double thresholdGr, double thresholdRed,std::pair<bool,double> valueGray); + BinHeightThreshold::binStatus CompareBinHeightThreshold(const std::string & type, double bincontent, double thresholdGr, double thresholdRed,std::pair<bool,double> valueGray); + bool equalWithinPrecision(double a,double b); using dqm_core::Algorithm::printDescription; void printDescription(std::ostream& out); private: + std::string name_; + double precision_; }; } diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_Equal_Threshold.h b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_Equal_Threshold.h new file mode 100644 index 0000000000000000000000000000000000000000..f43745468ba15c1a8394171ab56ab62e166afb9a --- /dev/null +++ b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_Equal_Threshold.h @@ -0,0 +1,24 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +/*! \file BinHeight_Equal_Threshold.h file declares the dqm_algorithms::BinHeight_Equal_Threshold class. + * \author Margherita Spalla, following what's done in BinsGreaterThanThreshold.h +*/ + +#ifndef DQM_ALGORITHMS_BINHEIGHT_EQUAL_THRESHOLD_H +#define DQM_ALGORITHMS_BINHEIGHT_EQUAL_THRESHOLD_H + +#include <dqm_core/Algorithm.h> +#include <dqm_algorithms/BinHeightThreshold.h> + +namespace dqm_algorithms +{ + struct BinHeight_Equal_Threshold : public BinHeightThreshold + { + BinHeight_Equal_Threshold(): BinHeightThreshold("Equal") {}; + + }; +} + +#endif // DQM_ALGORITHMS_BINHEIGHT_EQUAL_THRESHOLD_H diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_GreaterThanEqual_Threshold.h b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_GreaterThanEqual_Threshold.h new file mode 100644 index 0000000000000000000000000000000000000000..7dc34f8373bfc92531210735acf26e98c14bf65a --- /dev/null +++ b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_GreaterThanEqual_Threshold.h @@ -0,0 +1,24 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +/*! \file BinHeight_GreaterThanEqual_Threshold.h file declares the dqm_algorithms::BinHeight_GreaterThanEqual_Threshold class. + * \author Margherita Spalla, following what's done in BinsGreaterThanThreshold.h +*/ + +#ifndef DQM_ALGORITHMS_BINHEIGHT_GREATERTHANEQUAL_THRESHOLD_H +#define DQM_ALGORITHMS_BINHEIGHT_GREATERTHANEQUAL_THRESHOLD_H + +#include <dqm_core/Algorithm.h> +#include <dqm_algorithms/BinHeightThreshold.h> + +namespace dqm_algorithms +{ + struct BinHeight_GreaterThanEqual_Threshold : public BinHeightThreshold + { + BinHeight_GreaterThanEqual_Threshold(): BinHeightThreshold("GreaterThanEqual") {}; + + }; +} + +#endif // DQM_ALGORITHMS_BINHEIGHT_GREATERTHANEQUAL_THRESHOLD_H diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_GreaterThan_Threshold.h b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_GreaterThan_Threshold.h new file mode 100644 index 0000000000000000000000000000000000000000..49ec7f1afa1b233b247dbcde8ee135747dcff948 --- /dev/null +++ b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_GreaterThan_Threshold.h @@ -0,0 +1,24 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +/*! \file BinHeight_GreaterThan_Threshold.h file declares the dqm_algorithms::BinHeight_GreaterThan_Threshold class. + * \author Margherita Spalla, following what's done in BinsGreaterThanThreshold.h +*/ + +#ifndef DQM_ALGORITHMS_BINHEIGHT_GREATERTHAN_THRESHOLD_H +#define DQM_ALGORITHMS_BINHEIGHT_GREATERTHAN_THRESHOLD_H + +#include <dqm_core/Algorithm.h> +#include <dqm_algorithms/BinHeightThreshold.h> + +namespace dqm_algorithms +{ + struct BinHeight_GreaterThan_Threshold : public BinHeightThreshold + { + BinHeight_GreaterThan_Threshold(): BinHeightThreshold("GreaterThan") {}; + + }; +} + +#endif // DQM_ALGORITHMS_BINHEIGHT_GREATERTHAN_THRESHOLD_H diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_LessThanEqual_Threshold.h b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_LessThanEqual_Threshold.h new file mode 100644 index 0000000000000000000000000000000000000000..85bd1cf9de9150c0475735aad357480e71c53b3e --- /dev/null +++ b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_LessThanEqual_Threshold.h @@ -0,0 +1,24 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +/*! \file BinHeight_LessThanEqual_Threshold.h file declares the dqm_algorithms::BinHeight_LessThanEqual_Threshold class. + * \author Margherita Spalla, following what's done in BinsGreaterThanThreshold.h +*/ + +#ifndef DQM_ALGORITHMS_BINHEIGHT_LESSTHANEQUAL_THRESHOLD_H +#define DQM_ALGORITHMS_BINHEIGHT_LESSTHANEQUAL_THRESHOLD_H + +#include <dqm_core/Algorithm.h> +#include <dqm_algorithms/BinHeightThreshold.h> + +namespace dqm_algorithms +{ + struct BinHeight_LessThanEqual_Threshold : public BinHeightThreshold + { + BinHeight_LessThanEqual_Threshold(): BinHeightThreshold("LessThanEqual") {}; + + }; +} + +#endif // DQM_ALGORITHMS_BINHEIGHT_LESSTHANEQUAL_THRESHOLD_H diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_LessThan_Threshold.h b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_LessThan_Threshold.h new file mode 100644 index 0000000000000000000000000000000000000000..f2b91defb893feea15e368f836296d540eabfbeb --- /dev/null +++ b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_LessThan_Threshold.h @@ -0,0 +1,24 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +/*! \file BinHeight_LessThan_Threshold.h file declares the dqm_algorithms::BinHeight_LessThan_Threshold class. + * \author Margherita Spalla, following what's done in BinsGreaterThanThreshold.h +*/ + +#ifndef DQM_ALGORITHMS_BINHEIGHT_LESSTHAN_THRESHOLD_H +#define DQM_ALGORITHMS_BINHEIGHT_LESSTHAN_THRESHOLD_H + +#include <dqm_core/Algorithm.h> +#include <dqm_algorithms/BinHeightThreshold.h> + +namespace dqm_algorithms +{ + struct BinHeight_LessThan_Threshold : public BinHeightThreshold + { + BinHeight_LessThan_Threshold(): BinHeightThreshold("LessThan") {}; + + }; +} + +#endif // DQM_ALGORITHMS_BINHEIGHT_LESSTHAN_THRESHOLD_H diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_redEqual_yellowGreaterThan_Threshold.h b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_redEqual_yellowGreaterThan_Threshold.h new file mode 100644 index 0000000000000000000000000000000000000000..ed405ab8056e50fdb4d31f46e01a0e4c30a5c480 --- /dev/null +++ b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_redEqual_yellowGreaterThan_Threshold.h @@ -0,0 +1,24 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +/*! \file BinHeight_redEqual_yellowGreaterThan_Threshold.h file declares the dqm_algorithms::BinHeight_redEqual_yellowGreaterThan_Threshold class. + * \author Margherita Spalla, following what's done in BinsGreaterThanThreshold.h +*/ + +#ifndef DQM_ALGORITHMS_BINHEIGHT_REDEQ_YELLOWGT_THRESHOLD_H +#define DQM_ALGORITHMS_BINHEIGHT_REDEQ_YELLOWGT_THRESHOLD_H + +#include <dqm_core/Algorithm.h> +#include <dqm_algorithms/BinHeightThreshold.h> + +namespace dqm_algorithms +{ + struct BinHeight_redEqual_yellowGreaterThan_Threshold : public BinHeightThreshold + { + BinHeight_redEqual_yellowGreaterThan_Threshold(): BinHeightThreshold("redEqual_yellowGreaterThan") {}; + + }; +} + +#endif // DQM_ALGORITHMS_BINHEIGHT_REDEQ_YELLOWGT_THRESHOLD_H diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_redEqual_yellowLessThan_Threshold.h b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_redEqual_yellowLessThan_Threshold.h new file mode 100644 index 0000000000000000000000000000000000000000..79f691ee27fbbd2f386bf2ab961c598065e6877a --- /dev/null +++ b/DataQuality/dqm_algorithms/dqm_algorithms/BinHeight_redEqual_yellowLessThan_Threshold.h @@ -0,0 +1,24 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +/*! \file BinHeight_redEqual_yellowLessThan_Threshold.h file declares the dqm_algorithms::BinHeight_redEqual_yellowLessThan_Threshold class. + * \author Margherita Spalla, following what's done in BinsGreaterThanThreshold.h +*/ + +#ifndef DQM_ALGORITHMS_BINHEIGHT_REDEQ_YELLOWLT_THRESHOLD_H +#define DQM_ALGORITHMS_BINHEIGHT_REDEQ_YELLOWLT_THRESHOLD_H + +#include <dqm_core/Algorithm.h> +#include <dqm_algorithms/BinHeightThreshold.h> + +namespace dqm_algorithms +{ + struct BinHeight_redEqual_yellowLessThan_Threshold : public BinHeightThreshold + { + BinHeight_redEqual_yellowLessThan_Threshold(): BinHeightThreshold("redEqual_yellowLessThan") {}; + + }; +} + +#endif // DQM_ALGORITHMS_BINHEIGHT_REDEQ_YELLOWLT_THRESHOLD_H diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/dqm_algorithmsDict.h b/DataQuality/dqm_algorithms/dqm_algorithms/dqm_algorithmsDict.h index 360f58e51b45e62cef8a858a063f6af37c82f9b3..515b906b61f1db7025e7964491d5d93d62556172 100644 --- a/DataQuality/dqm_algorithms/dqm_algorithms/dqm_algorithmsDict.h +++ b/DataQuality/dqm_algorithms/dqm_algorithms/dqm_algorithmsDict.h @@ -31,6 +31,13 @@ #include "dqm_algorithms/BinThresh.h" #include "dqm_algorithms/BinThreshold.h" #include "dqm_algorithms/BinHeightThreshold.h" +#include "dqm_algorithms/BinHeight_GreaterThan_Threshold.h" +#include "dqm_algorithms/BinHeight_GreaterThanEqual_Threshold.h" +#include "dqm_algorithms/BinHeight_LessThan_Threshold.h" +#include "dqm_algorithms/BinHeight_LessThanEqual_Threshold.h" +#include "dqm_algorithms/BinHeight_redEqual_yellowGreaterThan_Threshold.h" +#include "dqm_algorithms/BinHeight_redEqual_yellowLessThan_Threshold.h" +#include "dqm_algorithms/BinHeight_Equal_Threshold.h" #include "dqm_algorithms/BinsDiffByStrips.h" #include "dqm_algorithms/BinsDiffFromStripMedian.h" #include "dqm_algorithms/BinsDiffFromStripMedianOnline.h" diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/selection.xml b/DataQuality/dqm_algorithms/dqm_algorithms/selection.xml index 4eaa329fe533e9f6ee23f5d09291453ec37c1589..64d3b1fc0682ddc5c006c6f5f7ccbe480aa9fd8c 100644 --- a/DataQuality/dqm_algorithms/dqm_algorithms/selection.xml +++ b/DataQuality/dqm_algorithms/dqm_algorithms/selection.xml @@ -26,6 +26,13 @@ <class name="dqm_algorithms::BinThresh"/> <class name="dqm_algorithms::BinThreshold"/> <class name="dqm_algorithms::BinHeightThreshold"/> + <class name="dqm_algorithms::BinHeight_GreaterThan_Threshold"/> + <class name="dqm_algorithms::BinHeight_GreaterThanEqual_Threshold"/> + <class name="dqm_algorithms::BinHeight_LessThan_Threshold"/> + <class name="dqm_algorithms::BinHeight_LessThanEqual_Threshold"/> + <class name="dqm_algorithms::BinHeight_redEqual_yellowGreaterThan_Threshold"/> + <class name="dqm_algorithms::BinHeight_redEqual_yellowLessThan_Threshold"/> + <class name="dqm_algorithms::BinHeight_Equal_Threshold"/> <class name="dqm_algorithms::BinsDiffByStrips"/> <class name="dqm_algorithms::BinsDiffFromStripMedian"/> <class name="dqm_algorithms::BinsDiffFromStripMedianOnline"/> diff --git a/DataQuality/dqm_algorithms/src/BinHeightThreshold.cxx b/DataQuality/dqm_algorithms/src/BinHeightThreshold.cxx index de7df11c5a43793f3745b73de467535d92711011..b1e3401bd868bb0d8a00a462c4a4c2fac7e9e4dd 100644 --- a/DataQuality/dqm_algorithms/src/BinHeightThreshold.cxx +++ b/DataQuality/dqm_algorithms/src/BinHeightThreshold.cxx @@ -19,17 +19,29 @@ #include <dqm_core/AlgorithmManager.h> +//static dqm_algorithms::BinHeightThreshold myInstance; +namespace +{ + dqm_algorithms::BinHeightThreshold HeightGreaterThan( "GreaterThan" ); + dqm_algorithms::BinHeightThreshold HeightGreaterThanEqual( "GreaterThanEqual" ); + dqm_algorithms::BinHeightThreshold HeightLessThan( "LessThan" ); + dqm_algorithms::BinHeightThreshold HeightLessThanEqual( "LessThanEqual" ); + dqm_algorithms::BinHeightThreshold HeightRedEqYellowGT( "redEqual_yellowGreaterThan" ); + dqm_algorithms::BinHeightThreshold HeightRedEqYellowLT( "redEqual_yellowLessThan" ); + dqm_algorithms::BinHeightThreshold HeightEqual( "Equal" ); +} -dqm_algorithms::BinHeightThreshold::BinHeightThreshold() +dqm_algorithms::BinHeightThreshold::BinHeightThreshold( const std::string & name ) + : name_( name ) { - dqm_core::AlgorithmManager::instance().registerAlgorithm("BinHeightThreshold", this); + precision_=1e-4; + dqm_core::AlgorithmManager::instance().registerAlgorithm("BinHeight_"+name+"_Threshold", this); } dqm_algorithms::BinHeightThreshold * dqm_algorithms::BinHeightThreshold::clone() -{ - - return new BinHeightThreshold(); +{ + return new BinHeightThreshold(name_); } @@ -49,24 +61,64 @@ dqm_algorithms::BinHeightThreshold::execute( const std::string & name, } const double minstat = 1; if (histogram->GetEntries() < minstat ) { + ERS_INFO( "Too few entries: " << histogram->GetEntries() ); dqm_core::Result *result = new dqm_core::Result(dqm_core::Result::Undefined); result->tags_["InsufficientEntries"] = histogram->GetEntries(); return result; } - double bin_threshold_red; - double bin_threshold_yellow; + int start_from_last; + int n_bins; + int window_size; double gthreshold; double rthreshold; + std::pair<bool,double> grayValue; try { - bin_threshold_yellow = dqm_algorithms::tools::GetFirstFromMap( "NBins", config.getParameters() ); - bin_threshold_red = dqm_algorithms::tools::GetFirstFromMap( "NRedBins", config.getParameters() ,bin_threshold_yellow); //with this method, bin_threshold_red should be set ==bin_threshold_yellow if a 'NRedBins' option is not provided - rthreshold = dqm_algorithms::tools::GetFromMap( "RedThreshold", config.getRedThresholds() ); - gthreshold = dqm_algorithms::tools::GetFromMap( "GreenThreshold", config.getGreenThresholds() ); + n_bins = dqm_algorithms::tools::GetFirstFromMap( "NBins", config.getParameters() ,1); + window_size = dqm_algorithms::tools::GetFirstFromMap( "WindowSize", config.getParameters() ,1); + start_from_last = dqm_algorithms::tools::GetFirstFromMap( "StartFromLast", config.getParameters() ,-1); + gthreshold = dqm_algorithms::tools::GetFromMap( "HeightThreshold", config.getGreenThresholds() ); + rthreshold = dqm_algorithms::tools::GetFromMap( "HeightThreshold", config.getRedThresholds() ); } catch ( dqm_core::Exception & ex ) { throw dqm_core::BadConfig( ERS_HERE, name, ex.what(), ex ); } + grayValue.first=true; + try { + grayValue.second = dqm_algorithms::tools::GetFirstFromMap( "UndefinedStatus", config.getParameters() ); + } + catch ( dqm_core::Exception & ex ) { + grayValue.first=false; + grayValue.second=-1; + } + try { + precision_ = dqm_algorithms::tools::GetFirstFromMap( "EqualityPrecision", config.getParameters(),1e-4); + } + catch ( dqm_core::Exception & ex ) { + precision_=1e-4; + } + + + //check if the provided parameter values make sense + if(precision_<0) { + ERS_INFO("'EqualityPrecision cannot be negative: it will be re-set to its absolute value."); + precision_=fabs(precision_); + } + if(window_size<=0) { + ERS_INFO("You set search window size (WindowSize) <= 0: I will search the whole histogram."); + } + else { + if(n_bins>window_size) { + ERS_INFO("You set the minimum number of bins for throwing error/warning (NBins) larger than the window size (WindowSize): in this way the algorithm can never return error/warning. Setting NBins=WindowSize."); + n_bins=window_size; + } + } + if(n_bins<=0) { + ERS_INFO("You set the minimum number of bins for throwing error/warning (NBins) <= 0: in this way the algorithm would always return error. Setting NBins=1 (default value)."); + n_bins=1; + } + CheckThresholds(name_,gthreshold,rthreshold); + grayValue.first=checkUndefinedStatusValue(name_,gthreshold,rthreshold,grayValue); dqm_core::Result* result = new dqm_core::Result(); TH1* resulthisto; @@ -80,63 +132,73 @@ dqm_algorithms::BinHeightThreshold::execute( const std::string & name, resulthisto->Reset(); - int countConsec=0; - //first, look for the last filled LB, i.e. the bin with nonzero content of largest x + + //first, look for the last filled LB, i.e. the bin with nonzero content of largest x if start_from_last<0, if start_from_last>=0, then starts from last but N-th bin, where N=start_from_last int i_currentLB=histogram->GetNbinsX(); - while(i_currentLB>=1) + if(start_from_last>=0) + i_currentLB-=start_from_last; + else { - if(histogram->GetBinContent(i_currentLB)!=0) break; - i_currentLB--; + while(i_currentLB>=1) + { + if(histogram->GetBinContent(i_currentLB)!=0) break; + i_currentLB--; + } } - //if the histogram is just empty, do nothing (check already done, in principle should not happen) - if(i_currentLB<=0) + //if the histogram is just empty, or still has too few bins, do nothing + if(i_currentLB<=0 || i_currentLB<n_bins) { - ERS_DEBUG(1,"Histogram is empty"); + ERS_DEBUG(1,"start_from_last parameter >= total number of bins, I just cannot do the check. Do nothing."); return result; } - //check current LB - double currentLBcont= histogram -> GetBinContent(i_currentLB); - dqm_algorithms::BinHeightThreshold::binStatus currentLBstatus=CompareBinHeightThreshold(currentLBcont, gthreshold , rthreshold); -//if current LB is not green, check the number of consecutive non-green bins - if(currentLBstatus==dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin || currentLBstatus==dqm_algorithms::BinHeightThreshold::binStatus::aRedBin) - { + + //now loop over an x window of size 'window_size' int iLB=i_currentLB; - double content; - dqm_algorithms::BinHeightThreshold::binStatus LBstatus; - while(iLB>=1) + int countYellow=0; + int countRed=0; + int countGray=0; + while(iLB>=1 && (window_size<0 || (i_currentLB-iLB)<window_size)) { - content=histogram->GetBinContent(iLB); - LBstatus=CompareBinHeightThreshold(content, gthreshold , rthreshold); - if(LBstatus==currentLBstatus) + double content=histogram->GetBinContent(iLB); + dqm_algorithms::BinHeightThreshold::binStatus LBstatus=CompareBinHeightThreshold(name_,content, gthreshold , rthreshold,grayValue); + if(LBstatus==dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin) { - countConsec++; - //fill result histogram - resulthisto->SetBinContent(iLB,content); + countYellow++; } - else break; + if(LBstatus==dqm_algorithms::BinHeightThreshold::binStatus::aRedBin) + { + countRed++; + } + if(LBstatus==dqm_algorithms::BinHeightThreshold::binStatus::anUndefBin) + { + countGray++; + } + //fill result histogram + resulthisto->SetBinContent(iLB,content); iLB--; } - } + - std::string thrName="RED/YELLOW"; - if(currentLBstatus==dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin) thrName="YELLOW"; - if(currentLBstatus==dqm_algorithms::BinHeightThreshold::binStatus::aRedBin) thrName="RED"; - ERS_DEBUG(1,"Found " << countConsec << " consecutive " << thrName << " bins"); - ERS_DEBUG(1,"Min. # of consecutive red bins for returning Red: " << bin_threshold_red); - ERS_DEBUG(1,"Min. # of consecutive yellow bins for returning Yellow: " << bin_threshold_yellow); + ERS_DEBUG(1,"Found " << countRed << " red bins and " << countYellow << " red bins. In a window of size " << window_size << " bins, starting at bin " << i_currentLB); + ERS_DEBUG(1,"To be compared with: " << n_bins); ERS_DEBUG(1,"Green treshold=" << gthreshold << " Red threshold=" << rthreshold ); - result->tags_["NBins"] = countConsec; + result->tags_["NRedBins"] = countRed; + result->tags_["NYellowBins"] = countYellow; result->object_ = (std::auto_ptr<TObject>)(TObject*)(resulthisto); - if(currentLBstatus==dqm_algorithms::BinHeightThreshold::binStatus::aRedBin && countConsec>=bin_threshold_red) + if(countRed>=n_bins) { result->status_ = dqm_core::Result::Red; } - else if(currentLBstatus==dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin && countConsec>=bin_threshold_yellow) + else if(countRed+countYellow>=n_bins) { result->status_ = dqm_core::Result::Yellow; } - else + else if(countGray>=n_bins) + { + result->status_ = dqm_core::Result::Undefined; + } + else { result->status_ = dqm_core::Result::Green; } @@ -145,37 +207,197 @@ dqm_algorithms::BinHeightThreshold::execute( const std::string & name, } + +void dqm_algorithms::BinHeightThreshold::CheckThresholds(const std::string & type, double thresholdGr, double thresholdRed) { + if(type=="GreaterThan" || type=="GreaterThanEqual") + { + if(thresholdGr>=thresholdRed) + ERS_INFO("'BinHeight_" << type << "_Threshold' algorithm expects red > yellow > green. You set the warning threshold (" << thresholdGr << ") >= error threshold (" << thresholdRed << "): it will never return 'yellow/warning'."); + } + if(type=="LessThan" || type=="LessThanEqual") + { + if(thresholdGr<=thresholdRed) + ERS_INFO("'BinHeight_" << type << "_Threshold' algorithm expects red < yellow < green. You set the warning threshold (" << thresholdGr << ") <= error threshold (" << thresholdRed << "): it will never return 'yellow/warning'. Are you sure this is what you want?"); + } + if(type=="redEqual_yellowGreaterThan") + { + if(thresholdRed>0 && thresholdRed<thresholdGr) + ERS_INFO("You set the error threshold (" << thresholdRed << ") between zero and the warning threshold (" << thresholdGr << ") in 'BinHeight_redEqual_yellowGreaterThan_Threshgold' algorithm. Are you sure this is what you want?"); + } + if(type=="redEqual_yellowLessThan") + { + if(thresholdRed>thresholdGr) + ERS_INFO("You set the error threshold (" << thresholdRed << ") larger than the warning threshold (" << thresholdGr << ") in 'BinHeight_redEqual_yellowLessThan_Threshold' algorithm. Are you sure this is what you want?"); + } +} + +bool +dqm_algorithms::BinHeightThreshold::checkUndefinedStatusValue(const std::string & type,double thresholdGr, double thresholdRed,std::pair<bool,double> valueGray) { + if(!valueGray.first) + return valueGray.first; + + if(type=="LessThan" || type=="GreaterThan") + return valueGray.first; + + if(equalWithinPrecision(valueGray.second,thresholdRed)) + { + ERS_INFO("You have set 'UndefinedStatus' equal to the error threshold in 'BinHeight_" << type << "_Threshold' algorithm. Error has the precedence here: the bin content WILL NOT be checked against 'UndefinedStatus'"); + return false; + } + + if(type!="redEqual_yellowLessThan" && type!="redEqual_yellowGreaterThan" && equalWithinPrecision(valueGray.second,thresholdGr)) + { + ERS_INFO("You have set 'UndefinedStatus' equal to the warning threshold in 'BinHeight_" << type << "_Threshold' algorithm. Warning has the precedence here: the bin content WILL NOT be checked against 'UndefinedStatus'"); + return false; + } + + return valueGray.first; +} + + + dqm_algorithms::BinHeightThreshold::binStatus -dqm_algorithms::BinHeightThreshold::CompareBinHeightThreshold(double bincontent, double thresholdGr, double thresholdRed) { -if(thresholdRed!=-1) - { - if(bincontent>=thresholdRed) +dqm_algorithms::BinHeightThreshold::CompareBinHeightThreshold(const std::string & type,double bincontent, double thresholdGr, double thresholdRed,std::pair<bool,double> valueGray) { + if(valueGray.first) + { + if(equalWithinPrecision(bincontent,valueGray.second)) + { + return dqm_algorithms::BinHeightThreshold::binStatus::anUndefBin; + } + } + + if(type=="GreaterThan") + { + if(bincontent>thresholdRed) return dqm_algorithms::BinHeightThreshold::binStatus::aRedBin; - if(bincontent>=thresholdGr) + if(bincontent>thresholdGr) return dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin; - return dqm_algorithms::BinHeightThreshold::binStatus::aGreenBin; - } -else - { - if(bincontent==thresholdRed) - return dqm_algorithms::BinHeightThreshold::binStatus::aRedBin; - if(bincontent==thresholdGr) - return dqm_algorithms::BinHeightThreshold::binStatus::aGreenBin; - if(bincontent>thresholdGr) - return dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin; - return dqm_algorithms::BinHeightThreshold::binStatus::anUndefBin; - } + return dqm_algorithms::BinHeightThreshold::binStatus::aGreenBin; + } + if(type=="LessThan") + { + if(bincontent<thresholdRed) + return dqm_algorithms::BinHeightThreshold::binStatus::aRedBin; + if(bincontent<thresholdGr) + return dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin; + return dqm_algorithms::BinHeightThreshold::binStatus::aGreenBin; + } + if(type=="GreaterThanEqual") + { + if(bincontent>thresholdRed || equalWithinPrecision(bincontent,thresholdRed)) + return dqm_algorithms::BinHeightThreshold::binStatus::aRedBin; + if(bincontent>thresholdGr || equalWithinPrecision(bincontent,thresholdGr)) + return dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin; + return dqm_algorithms::BinHeightThreshold::binStatus::aGreenBin; + } + if(type=="LessThanEqual") + { + if(bincontent<thresholdRed || equalWithinPrecision(bincontent,thresholdRed)) + return dqm_algorithms::BinHeightThreshold::binStatus::aRedBin; + if(bincontent<thresholdGr || equalWithinPrecision(bincontent,thresholdGr)) + return dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin; + return dqm_algorithms::BinHeightThreshold::binStatus::aGreenBin; + } + if(type=="redEqual_yellowGreaterThan") + { + if(equalWithinPrecision(bincontent,thresholdRed)) + return dqm_algorithms::BinHeightThreshold::binStatus::aRedBin; + if(bincontent>thresholdGr) + return dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin; + return dqm_algorithms::BinHeightThreshold::binStatus::aGreenBin; + } + if(type=="redEqual_yellowLessThan") + { + if(equalWithinPrecision(bincontent,thresholdRed)) + return dqm_algorithms::BinHeightThreshold::binStatus::aRedBin; + if(bincontent<thresholdGr) + return dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin; + return dqm_algorithms::BinHeightThreshold::binStatus::aGreenBin; + } + if(type=="Equal") + { + if(equalWithinPrecision(bincontent,thresholdRed)) + return dqm_algorithms::BinHeightThreshold::binStatus::aRedBin; + if(equalWithinPrecision(bincontent,thresholdGr)) + return dqm_algorithms::BinHeightThreshold::binStatus::aYellowBin; + return dqm_algorithms::BinHeightThreshold::binStatus::aGreenBin; + } + return dqm_algorithms::BinHeightThreshold::binStatus::anUndefBin; } +bool +dqm_algorithms::BinHeightThreshold::equalWithinPrecision(double a,double b) +{ + //relative difference method (following what suggested in (non-ATLAS) web page http://floating-point-gui.de/errors/comparison/) + double absA = fabs(a); + double absB = fabs(b); + double diff = fabs(a - b); + + if (a == b) { // shortcut, handles infinities + return true; + } + else if (a == 0 || b == 0 || diff < DBL_MIN) { + // a or b is zero or both are extremely close to it + // relative error is less meaningful here + return diff < (precision_ * DBL_MIN); + } + else { // use relative error + return (diff / std::min((absA + absB), DBL_MAX)) < precision_; + } +} + void dqm_algorithms::BinHeightThreshold::printDescription(std::ostream& out) { - out<<"BinHeightThreshold is built to monitor trigger pre-scale (PS) as a function of lumi-block (LB). It only works with TH1 as input. LB is expected to be on x axis, PS is the bin content. It defines 'red' and 'yellow' bins depending on the value of the bin content. The algorithm looks for a set of consecutive bins which:\n \t-include the current LB (i.e. the nonzero bin at largest x).\n \t-are all 'red' or all 'yellow'.\n If the bin set is found and it is longer than Nbins, then the algorithm returns 'Red' for a set of 'red' bins, 'Yellow' for a set of 'yellow' bins.\n"<<std::endl; - out<<"Mandatory Parameter: NBins: number of consecutive red(yellow) bins over which the algorithm returns Red(Yellow).\n"<<std::endl; - out<<"Optional Parameter: NRedBins: if set, replace NBins in the case of a set of red bins. To be used if different thresholds are desired for red and yellow bin sets.\n"<<std::endl; - out<<"Mandatory Parameter: RedThreshold: used in defining 'red'/'yellow'/'green' bins (see the following).\n"<<std::endl; - out<<"Mandatory Parameter: GreenThreshold: used in defining 'red'/'yellow'/'green' bins (see the following).\n"<<std::endl; - out<<"'red'/'yellow'/'green' bins are defined depending on the RedThreshold and GreenThreshold parameters.\n If RedThreshold==-1:\n \t BinContent==RedThreshold --> red bin (i.e. trigger disabled)\n \t BinContent==GreenThreshold --> green bin\n \t BinContent>GreenThreshold --> yellow bin (i.e. trigger pre-scaled). \n If RedThreshold>0:\n \t BinContent<GreenThreshold --> green bin\n \t GreenThreshold<=BinContent<RedThreshold --> yellow bin\n \t BinContent>=RedThreshold --> red bin\n"<<std::endl; + TString redCond,yellowCond; + if(name_=="redEqual_yellowGreaterThan" || name_=="redEqual_yellowLessThan" || name_=="Equal") + { + redCond="bin_content==redThreshold"; + if(name_=="Equal") + yellowCond="bin_content==yellowThreshold && bin_content!=redThreshold"; + else if(name_=="redEqual_yellowGreaterThan") + yellowCond="bin_content>yellowThreshold && bin_content!=redThreshold"; + else + yellowCond="bin_content<yellowThreshold && bin_content!=redThreshold"; + } + else + { + if(name_=="GreaterThan") + { + redCond="bin_content>redThreshold"; + yellowCond="redThreshold>=bin_content>yellowThreshold"; + } + else if(name_=="LessThan") + { + redCond="bin_content<redThreshold"; + yellowCond="redThreshold<=bin_content<yellowThreshold"; + } + else if(name_=="GreaterThanEqual") + { + redCond="bin_content>=redThreshold"; + yellowCond="redThreshold>bin_content>=yellowThreshold"; + } + else //LessThenEqual is the only remaining + { + redCond="bin_content<=redThreshold"; + yellowCond="redThreshold<bin_content<=yellowThreshold"; + } + } + out << "BinHeight_" << name_ << "_Threshold checks the bin height of a TH1. Ideally, a quantity as a function of LB. LB is expected to be on x axis, the quantity of interest is the bin content." << std::endl; + out << "BinHeight_" << name_ << "_Threshold defines 'red' and 'yellow' bins depending on the value of the bin content:\n \t-if " << redCond << ": the bin is 'red'.\n \t-if " << yellowCond << ": the bin is 'yellow'.\n \t-if (OPTIONAL) an 'UndefinedStatus' value is set and bin_content==UndefinedStatus, the bin is 'gray'."; + if(name_!="GreaterThan" && name_!="LessThan") + out << " Note that if 'UndefinedStatus' is equal to 'redThreshold' or 'yellowThreshold', the bin will be 'red'/'yellow' rather than 'gray'."; + out << "\n \t-otherwise the bin is 'green'" << std::endl; + out << "The algorithm checks all the bins in a window of size 'WindowSize', starting from:\n \t a) the last but X bin.\n \t b) the last non-zero bin.\n Oprion a) or b) is chosen by the parameter 'StartFromLast': if('StartFromLast'>=0), (a) holds and X is equal to 'StartFromLast', while (b) holds if 'StartFromLast'<0." << std::endl; + out << "In the window of interest, the number of red/yellow/gray bins is counted, respectively Nred/Nyellow/Ngray. The output is then defined comparing these numbers against the parameter 'NBins':\n \t- if Nred>=NBins: returns 'RED'.\n \t- else, if (Nred+Nyellow)>=NBins: returns 'YELLOW'.\n \t- else, if Ngray>=NBins: returns 'GREY'.\n \t- else returns 'GREEN'." << std::endl; + out << "NOTE: to avoid issues due to rounding in double precision, the equality between the bin content and any parameter is defined asking for the relative difference between the two to be smaller than a given parameter. I.e. content==Y is implemented as (abs(content-Y)/(content+Y))<epsilon. epsilon is equal to the parameter 'EqualityPrecision' which is tunable and set to 10^-4 by default\n"<<std::endl; + + out<<"Mandatory Parameter: HeightThreshold: sets the warning (yellowThreshold) and error (redThreshold) thresholds."<<std::endl; + out<<"Optional Parameter: NBins: minimum number of red/(yellow+red)/gray bins in the window of interest for the algorithm to return Red/Yellow/Grey. Default is 1."<<std::endl; + out<<"Optional Parameter: WindowSize: size of the x-axis range (in number of bins) in which red/yellow/gray bins are searched for. If WindowSize<=0, the whole istogram is searched for. Default is 1."<<std::endl; + out<<"Optional Parameter: StartFromLast: if StartFromLast=X with X>=0, the algorithm will check the bins starting from the last but X bin. If StartFromLast<0, it will start from the first bin of nonzero content. Default is -1."<<std::endl; + out<<"Optional Parameter: UndefinedStatus: a bin is defined to be 'gray' if its content is equal to UndefinedStatus. If not set, bins are not check against it."<<std::endl; + out<<"Optional Parameter: EqualityPrecision: sets the precision with which the bin content is defined to be 'equal' to a parameter, as described above. Default is 10^-4."<<std::endl; } diff --git a/Database/AthenaPOOL/AthenaPoolUtilities/share/post_tpcnvtest.sh b/Database/AthenaPOOL/AthenaPoolUtilities/share/post_tpcnvtest.sh index bf1462b52318dc1b19f1d7066e80c6218c7672d0..3ed8b1dde0700875a5484b3d310d1f9a48c22718 100755 --- a/Database/AthenaPOOL/AthenaPoolUtilities/share/post_tpcnvtest.sh +++ b/Database/AthenaPOOL/AthenaPoolUtilities/share/post_tpcnvtest.sh @@ -236,6 +236,9 @@ PP="$PP"'|GeoModelSvc.*WARNING Getting .* with default tag' # Verbosity removed from TrackCollection in 22.0.1 PP="$PP"'|TrackCollectionCnv::initialize' +# Ignore dumps from CondInputLoader. +PP="$PP"'|ConditionStore\+/' + test=$1 if [ -z "$testStatus" ]; then diff --git a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py index 4da7c633c0f6a79adafa56f85d470edf7bafbf24..ba2f8f51f92ced2d331d0fe624f8ccdef0011400 100644 --- a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py +++ b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py @@ -46,11 +46,9 @@ def TrigBSReadCfg( inputFlags ): from IOVDbMetaDataTools.IOVDbMetaDataToolsConf import IOVDbMetaDataTool iovMetaDataTool = IOVDbMetaDataTool() - acc.addPublicTool( iovMetaDataTool ) from ByteStreamCnvSvc.ByteStreamCnvSvcConf import ByteStreamMetadataTool bsMetaDataTool = ByteStreamMetadataTool() - acc.addPublicTool( bsMetaDataTool ) from StoreGate.StoreGateConf import ProxyProviderSvc, StoreGateSvc metaDataStore = StoreGateSvc("MetaDataStore") diff --git a/Event/EventContainers/test/ID_ContainerTest.h b/Event/EventContainers/test/ID_ContainerTest.h old mode 100755 new mode 100644 diff --git a/Event/xAOD/xAODPFlow/Root/PFO_v1.cxx b/Event/xAOD/xAODPFlow/Root/PFO_v1.cxx index 25c5d027709ed8b599b6ad359898cb16a0656484..a542a4e84f20121a5fdadb0227077a5b3a6dff9e 100644 --- a/Event/xAOD/xAODPFlow/Root/PFO_v1.cxx +++ b/Event/xAOD/xAODPFlow/Root/PFO_v1.cxx @@ -42,12 +42,10 @@ namespace xAOD { }//getAccessor }; - PFO_v1::PFO_v1() - : IParticle(), m_floatCompressionFactor(1000) { - + PFO_v1::PFO_v1() : IParticle() { } - PFO_v1::PFO_v1(const PFO_v1& other) : IParticle(), m_floatCompressionFactor(1000) { + PFO_v1::PFO_v1(const PFO_v1& other) : IParticle(){ this->makePrivateStore(other); } @@ -275,7 +273,7 @@ namespace xAOD { template<> void PFO_v1::setAttribute(PFODetails::PFOAttributes AttributeType, const float& anAttribute) { if (this->isJetETMissFloatForCompression(AttributeType)){ float dummy = anAttribute*m_floatCompressionFactor; - int maxIntSize = 1000000000; + const static int maxIntSize = 1000000000; int internalAttribute = maxIntSize; if (dummy < 0) internalAttribute *= -1;//if we had a large -ve energy, then we should set the max size to a -ve value if (dummy < maxIntSize && dummy > -maxIntSize) internalAttribute = static_cast<int>(dummy); diff --git a/Event/xAOD/xAODPFlow/xAODPFlow/versions/PFO_v1.h b/Event/xAOD/xAODPFlow/xAODPFlow/versions/PFO_v1.h index 5f74a874a5e50b221d3ab7cfb877a6473659894d..865042b53d88fe63a8c7aee8e63692105904b15c 100644 --- a/Event/xAOD/xAODPFlow/xAODPFlow/versions/PFO_v1.h +++ b/Event/xAOD/xAODPFlow/xAODPFlow/versions/PFO_v1.h @@ -193,7 +193,7 @@ namespace xAOD { bool isJetETMissFloatForCompression(xAOD::PFODetails::PFOAttributes AttributeType) const; /** this defines the factor to compress floats by */ - int m_floatCompressionFactor; + const static int m_floatCompressionFactor = 1000; }; // class PFO diff --git a/InnerDetector/InDetExample/InDetAlignExample/CalibrationLoopScripts/Solve_trf.py b/InnerDetector/InDetExample/InDetAlignExample/CalibrationLoopScripts/Solve_trf.py index bc2a3f9447092c14d063b9c4e83b7100c0c8ffb4..970f470275224d8b74cbe2c8ff10e224387cc28c 100644 --- a/InnerDetector/InDetExample/InDetAlignExample/CalibrationLoopScripts/Solve_trf.py +++ b/InnerDetector/InDetExample/InDetAlignExample/CalibrationLoopScripts/Solve_trf.py @@ -194,7 +194,7 @@ solvingOption = 1 ## solving options ## 0 - No global solving ## 1 - Lapack -## 2 - ***REMOVED*** +## 2 - Eigen ## 6 - ROOT ## 7 - CLHEP @@ -342,7 +342,7 @@ solvingOption = 1 ## solving options ## 0 - No global solving ## 1 - Lapack -## 2 - ***REMOVED*** +## 2 - Eigen ## 6 - ROOT ## 7 - CLHEP diff --git a/InnerDetector/InDetExample/InDetAlignExample/python/IteratorGridClasses.py b/InnerDetector/InDetExample/InDetAlignExample/python/IteratorGridClasses.py index c7e37a97b9884d9d32b00f97b536286ad7379a00..c4a8c776d30628a80426c388bdb08f52103ddada 100644 --- a/InnerDetector/InDetExample/InDetAlignExample/python/IteratorGridClasses.py +++ b/InnerDetector/InDetExample/InDetAlignExample/python/IteratorGridClasses.py @@ -418,7 +418,7 @@ class writeScriptGridForTFile : ("pixelAlignmentLevel" in self.AlignmentOptions and self.AlignmentOptions["pixelAlignmentLevel"] == 3) or ("pixelAlignmentLevelBarrel" in self.AlignmentOptions and self.AlignmentOptions["pixelAlignmentLevelBarrel"] == 3) or ("pixelAlignmentLevelEndcaps" in self.AlignmentOptions and self.AlignmentOptions["pixelAlignmentLevelEndcaps"] == 3) ) : - print "hmn, you are going to run L3 alignment, ***REMOVED*** is using, so no eigen informations!!! " + print "hmn, you are going to run L3 alignment, Eigen is being used, so no eigen value information!!! " else : @@ -1103,7 +1103,7 @@ class writeScriptGrid : ("pixelAlignmentLevel" in self.AlignmentOptions and self.AlignmentOptions["pixelAlignmentLevel"] == 3) or ("pixelAlignmentLevelBarrel" in self.AlignmentOptions and self.AlignmentOptions["pixelAlignmentLevelBarrel"] == 3) or ("pixelAlignmentLevelEndcaps" in self.AlignmentOptions and self.AlignmentOptions["pixelAlignmentLevelEndcaps"] == 3) ) : - print "hmn, you are going to run L3 alignment, ***REMOVED*** is using, so no eigen informations!!! " + print "hmn, you are going to run L3 alignment, Eigen is going to be used, so no eigen value information!!! " else : if ( "writeEigenMat" in self.GridOptions and self.GridOptions["writeEigenMat"] == True ) and ( self.AlignmentOptions["runLocal"] == False ): diff --git a/InnerDetector/InDetExample/InDetAlignExample/share/AlignmentATNSimple.py b/InnerDetector/InDetExample/InDetAlignExample/share/AlignmentATNSimple.py index 00b43b006df3e60c91d83d8f7d33182bbbaf2c21..1ea6518dabdf0cd223b2db206e1afe49a7bdfabc 100644 --- a/InnerDetector/InDetExample/InDetAlignExample/share/AlignmentATNSimple.py +++ b/InnerDetector/InDetExample/InDetAlignExample/share/AlignmentATNSimple.py @@ -256,7 +256,7 @@ runLocal = False ## solving option ## 0 - No global solving ## 1 - Lapack -## 2 - ***REMOVED*** +## 2 - Eigen ## 6 - ROOT ## 7 - CLHEP solvingOption = 1 diff --git a/InnerDetector/InDetExample/InDetAlignExample/share/InDetAlignAlgSetup_DBM.py b/InnerDetector/InDetExample/InDetAlignExample/share/InDetAlignAlgSetup_DBM.py index 7a9ba8861b2ebddc3eed186744314ca9627a9e78..74cd5bc82ebcc07fcb3275031d6810b104a387df 100644 --- a/InnerDetector/InDetExample/InDetAlignExample/share/InDetAlignAlgSetup_DBM.py +++ b/InnerDetector/InDetExample/InDetAlignExample/share/InDetAlignAlgSetup_DBM.py @@ -35,7 +35,7 @@ newInDetAlignAlg_Options = { ,"inputMatrixFiles" : [ "matrix.bin" ] # list of matrix files when solving only ,"inputVectorFiles" : [ "vector.bin" ] # list of vector files when solving only ,"inputTFiles" : ["AlignmentTFile.root"] # list of the Alignment TFiles, used only if WriteTFile is True - ,"solvingOption" : 3 # which global solver to run 0-none, 1-Lapack, 2-***REMOVED***, 6-ROOT, 7-CLHEP + ,"solvingOption" : 3 # which global solver to run 0-none, 1-Lapack, 2-Eigen, 6-ROOT, 7-CLHEP ,"solveLocal" : True # whether to run locaal solving ,"writeMatrixFile" : True # whether to write matrix to file before solving ,"writeMatrixFileTxt" : True # whether to write matrix to text file @@ -264,7 +264,7 @@ if not newInDetAlignAlg_Options["runLocal"]: ): matrixTool.WriteEigenMat = False matrixTool.UseSparse = True - matrixTool.SolveOption = 2 # run ***REMOVED*** for L3 by default + matrixTool.SolveOption = 2 # run Eigen for L3 by default matrixTool.WriteMatTxt = False matrixTool.WriteHitmapTxt = False matrixTool.CalculateFullCovariance = False diff --git a/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignAlgSetup.py b/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignAlgSetup.py index f021c34f418dae94f74e9c9e039d484ddc279bd7..64ef5afcffc4529e74f2d8f9ac100aadbc688575 100644 --- a/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignAlgSetup.py +++ b/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignAlgSetup.py @@ -41,7 +41,7 @@ newInDetAlignAlg_Options = { ,"inputMatrixFiles" : [ "matrix.bin" ] # list of matrix files when solving only ,"inputVectorFiles" : [ "vector.bin" ] # list of vector files when solving only ,"inputTFiles" : ["AlignmentTFile.root"] # list of the Alignment TFiles, used only if WriteTFile is True - ,"solvingOption" : 3 # which global solver to run 0-none, 1-Lapack, 2-***REMOVED***, 6-ROOT, 7-CLHEP + ,"solvingOption" : 3 # which global solver to run 0-none, 1-Lapack, 2-Eigen, 6-ROOT, 7-CLHEP ,"solveLocal" : True # whether to run locaal solving ,"writeMatrixFile" : True # whether to write matrix to file before solving ,"writeMatrixFileTxt" : True # whether to write matrix to text file @@ -307,7 +307,7 @@ if not newInDetAlignAlg_Options["runLocal"]: ): matrixTool.WriteEigenMat = False matrixTool.UseSparse = True - matrixTool.SolveOption = 2 # run ***REMOVED*** for L3 by default + matrixTool.SolveOption = 2 # run Eigen for L3 by default matrixTool.WriteMatTxt = False matrixTool.WriteHitmapTxt = False matrixTool.CalculateFullCovariance = False diff --git a/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_DBMRel17.py b/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_DBMRel17.py index ec431f65f8f8dd7b6a61b9ed1dc65670231de2ff..c5e33ca483e6aefcc121a4b0c597c2498ea57351 100644 --- a/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_DBMRel17.py +++ b/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_DBMRel17.py @@ -156,7 +156,7 @@ runLocal = True ## solving option ## 0 - No global solving ## 1 - Lapack -## 2 - ***REMOVED*** +## 2 - Eigen ## 6 - ROOT ## 7 - CLHEP solvingOption = 1 diff --git a/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_Run2Rel17.py b/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_Run2Rel17.py index 831d3df68a1303e8635ae59d9b5c8772945e5355..c8cfc8062feca4d890c184e92f0cbe9db6ed7b80 100644 --- a/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_Run2Rel17.py +++ b/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_Run2Rel17.py @@ -326,7 +326,7 @@ runLocal = False ## solving option ## 0 - No global solving ## 1 - Lapack -## 2 - ***REMOVED*** +## 2 - Eigen ## 6 - ROOT ## 7 - CLHEP solvingOption = 1 diff --git a/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_Run2Rel19.py b/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_Run2Rel19.py index 3ecb94b5673661a6e580e696d3e1f1e776d4a67f..dbca7a991c46720a005685066f04ca01921c5f8b 100644 --- a/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_Run2Rel19.py +++ b/InnerDetector/InDetExample/InDetAlignExample/share/NewInDetAlignment_Run2Rel19.py @@ -328,7 +328,7 @@ runLocal = True ## solving option ## 0 - No global solving ## 1 - Lapack -## 2 - ***REMOVED*** +## 2 - Eigen ## 6 - ROOT ## 7 - CLHEP solvingOption = 1 diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx index f8ef813a53c9bde9c8bf80b4dcc3db3cb8d21afc..9af40a4a8ef39558a61a417d6db15716b766a4f2 100755 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx @@ -6,11 +6,8 @@ // IDAlignMonEfficiencies.cxx // AUTHORS: Beate Heinemann, Tobias Golling, John Alison, Lauren Tompkins // ********************************************************************** -#include <sstream> -#include <math.h> #include "xAODEventInfo/EventInfo.h" -//#include "EventInfo/EventID.h" #include "GaudiKernel/IJobOptionsSvc.h" #include "GaudiKernel/MsgStream.h" @@ -19,6 +16,7 @@ #include "TH1.h" #include "TH2.h" +#include "TH3.h" #include "TProfile.h" #include "TProfile2D.h" #include "TMath.h" @@ -37,27 +35,16 @@ #include "InDetRIO_OnTrack/SiClusterOnTrack.h" #include "InDetPrepRawData/SiCluster.h" -//#include "Particle/TrackParticleContainer.h" -//#include "Particle/TrackParticle.h" - #include "TrkEventPrimitives/FitQuality.h" #include "TrkEventPrimitives/LocalParameters.h" #include "TrkTrackSummary/TrackSummary.h" -// #include "VxVertex/VxContainer.h" -// #include "VxVertex/VxCandidate.h" -// #include "VxVertex/RecVertex.h" -// #include "VxVertex/Vertex.h" -// #include "VxVertex/VxTrackAtVertex.h" - -//#include "AthenaMonitoring/AthenaMonManager.h" -//#include "InDetAlignmentMonitoring/IDAlignMonEfficiencies.h" + #include "IDAlignMonEfficiencies.h" #include "InDetReadoutGeometry/SiDetectorElement.h" #include "InDetReadoutGeometry/SiDetectorElementCollection.h" -//#include "TrkTrackSummary/TrackSummary.h" -//#include "TrkExInterfaces/IExtrapolator.h" + #include "TrkToolInterfaces/ITrackHoleSearchTool.h" #include "InDetAlignGenTools/IInDetAlignHitQualSelTool.h" #include "TrackSelectionTool.h" @@ -127,8 +114,6 @@ struct IDAlignMonEfficiencies::TRTBarrelHistograms{ outliers_eff_vs_phiSector[lay] = 0; hits_eff_vs_phiSector[lay] = 0; tubeHits_eff_vs_phiSector[lay] = 0; - - } @@ -446,8 +431,6 @@ StatusCode IDAlignMonEfficiencies::bookHistograms() - //if ( newLowStatFlag() ) { } - //if ( newLumiBlockFlag() ) { } if ( newRunFlag() ) { //if user environment specified we don't want to book new histograms at every run boundary @@ -691,9 +674,7 @@ StatusCode IDAlignMonEfficiencies::bookHistograms() /** Convert from an int to a string */ std::string IDAlignMonEfficiencies::intToString(int input){ - std::ostringstream stm; - stm << input; - return stm.str(); + return std::to_string(input); } /** Make Histograms */ @@ -793,7 +774,6 @@ void IDAlignMonEfficiencies::RegisterHisto(MonGroup& mon, TH2* histo) { void IDAlignMonEfficiencies::RegisterHisto(MonGroup& mon, TProfile2D* histo) { - //histo->Sumw2(); StatusCode sc = mon.regHist(histo); if (sc.isFailure() ) { if(msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "Cannot book TProfile2D Histogram:" << endmsg; @@ -834,49 +814,20 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() DataVector<Trk::Track>::const_iterator trksItrE = trks->end(); for (; trksItr != trksItrE; ++trksItr) { - //float trkd0 = -999; - //float trkz0 = -999; - //float trkphi = -999; - //float trktheta = -999; - //float trketa = -999; + float qOverP = -999; float trkpt = -999; float charge = 0; float abs_trkpt = -999; //charge*trkpt - // get fit quality and chi2 probability of track - // chi2Prob = TMath::Prob(chi2,DoF) ROOT function - //const Trk::Perigee* startPerigee = (*trksItr)->perigeeParameters(); - //const Trk::MeasuredPerigee* measPer = dynamic_cast<const Trk::MeasuredPerigee*>( startPerigee ); - //if (measPer==0) { - // if(msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "No measured perigee parameters assigned to the track" << endmsg; - //} - //else{ - // CLHEP::HepVector perigeeParams = measPer->parameters(); - // trkd0 = perigeeParams[Trk::d0]; - // trkz0 = perigeeParams[Trk::z0]; - // trkphi = perigeeParams[Trk::phi0]; - // trktheta = perigeeParams[Trk::theta]; - // trketa = measPer->eta(); - // qOverP = perigeeParams[Trk::qOverP]*1000.; - // trkpt = measPer->pT()/1000.; - // if (qOverP<0) charge=-1; - // else charge=+1; - // abs_trkpt = charge*trkpt; - //} - const Trk::Perigee* measPer = (*trksItr)->perigeeParameters(); const AmgSymMatrix(5)* covariance = measPer ? measPer->covariance() : NULL; if (measPer && covariance) { AmgVector(5) perigeeParams = measPer->parameters(); - //trkd0 = perigeeParams(Trk::d0); - //trkz0 = perigeeParams(Trk::z0); - //trkphi = perigeeParams(Trk::phi0); - //trktheta = perigeeParams(Trk::theta); - //trketa = measPer->eta(); + qOverP = perigeeParams(Trk::qOverP)*1000.; trkpt = measPer->pT()/1000.; if (qOverP<0) charge=-1; @@ -887,19 +838,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() { if(msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "No measured perigee parameters assigned to the track" << endmsg; } - //if (trkphi<0) trkphi+=2*m_Pi; - -// //some good quality requirements (will need to refine them later) -// bool good=(fabs(trketa<2.5)&&fabs(trkz0)<150 && trkpt>1); - -// if (!good) continue; - - - // holes + outliers + measurements + etc. - // these two are identical in the ID: - ////const Trk::Track* trackWithHoles = m_holeSearchTool->getTrackWithHoles(**trksItr); - //const Trk::Track* trackWithHoles = m_holeSearchTool->getTrackWithHolesAndOutliers(**trksItr); - ////if (trackWithHoles!=NULL) TSOS = trackWithHoles->trackStateOnSurfaces(); // loop over all hits on track const DataVector<const Trk::TrackStateOnSurface>* TSOS; @@ -1113,7 +1051,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() } // end of PIX barrel else if (barrelEC == 2){ - //msg(MSG::WARNING) <<"Pix eca, layer_disk=" << m_pixelID->layer_disk(surfaceID) << ", eta=" << m_pixelID->eta_module(surfaceID) << ", phi=" << m_pixelID->phi_module(surfaceID) <<endmsg; if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found pixel eca hit"<<endmsg; m_measurements_vs_layer_eca -> Fill(layerDisk); m_noholes_vs_layer_eca -> Fill(layerDisk); @@ -1134,7 +1071,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() } // ECA else if (barrelEC == -2){ - //msg(MSG::WARNING) <<"Pix ecc, layer_disk=" << layerDisk << ", eta=" << m_pixelID->eta_module(surfaceID) << ", phi=" << m_pixelID->phi_module(surfaceID) <<endmsg; if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found pixel ecc hit"<<endmsg; m_measurements_vs_layer_ecc -> Fill(layerDisk); m_noholes_vs_layer_ecc -> Fill(layerDisk); @@ -1187,7 +1123,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() }//barrel else if (barrelEC == 2){ - //msg(MSG::WARNING) <<"SCT eca, layer_disk=" << m_sctID->layer_disk(surfaceID) << ", eta=" << m_sctID->eta_module(surfaceID) << ", phi=" << m_sctID->phi_module(surfaceID) << ", side=" << m_sctID->side(surfaceID) <<endmsg; if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found sct eca hit"<<endmsg; m_measurements_vs_layer_eca -> Fill(3 + 2*layerDisk + sctSide); m_noholes_vs_layer_eca -> Fill(3 + 2*layerDisk + sctSide); @@ -1212,7 +1147,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() }//ECA else if (barrelEC == -2){ - //msg(MSG::WARNING) <<"SCT ecc, layer_disk=" << layerDisk << ", eta=" << m_sctID->eta_module(surfaceID) << ", phi=" << m_sctID->phi_module(surfaceID) << ", side=" << sctSide <<endmsg; if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found sct ecc hit"<<endmsg; m_measurements_vs_layer_ecc -> Fill(3 + 2*layerDisk + sctSide); m_noholes_vs_layer_ecc -> Fill(3 + 2*layerDisk + sctSide); @@ -1249,7 +1183,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() // --- pixel if (detType==0){ if (barrelEC == 0){ - // msg(MSG::WARNING) << " ** OULIER FOUND ** Pix barrel layer_disk=" << layerDisk << ", eta=" << modEta << ", phi=" << modPhi <<endmsg; m_outliers_vs_layer_barrel -> Fill(layerDisk); m_noholes_vs_layer_barrel -> Fill(layerDisk); m_outliers_vs_Eta_Phi_pix_b[layerDisk] -> Fill(modEta, modPhi); @@ -1278,7 +1211,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() // --- sct -- outliers in SCT else if (detType==1){ if (barrelEC == 0){ - //msg(MSG::WARNING) <<"SCT barrel outlier, layer_disk=" << layerDisk << ", eta=" << m_sctID->eta_module(surfaceID) << ", phi=" << m_sctID->phi_module(surfaceID) << ", side=" << sctSide <<endmsg; m_outliers_vs_layer_barrel -> Fill(m_NPixLayers + 2*layerDisk + sctSide); m_noholes_vs_layer_barrel -> Fill(m_NPixLayers + 2*layerDisk + sctSide); @@ -1311,6 +1243,7 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() const Trk::TrackSummary* summary = m_trackSumTool->createSummary(**trksItr); if( !summary->get(Trk::numberOfPixelHits) && !summary->get(Trk::numberOfSCTHits) && (summary->get(Trk::numberOfPixelHoles)==0) && (summary->get(Trk::numberOfSCTHoles)==0) && (m_doHoleSearch)){ if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "No Pixel or SCT hits skip hole search" << endmsg; + delete summary; continue; } delete summary; @@ -1420,7 +1353,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() else if (detType==1){ if (barrelEC == 0) { - //msg(MSG::WARNING) <<"SCT barrel hole, layer_disk=" << m_sctID->layer_disk(surfaceID) << ", eta=" << m_sctID->eta_module(surfaceID) << ", phi=" << modPhi << ", side=" << m_sctID->side(surfaceID) << endmsg; m_hits_vs_layer_barrel -> Fill(m_NPixLayers + 2*layerDisk + sctSide); @@ -1440,7 +1372,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() } else if (barrelEC == -2){ m_hits_vs_layer_ecc -> Fill(3 + 2*layerDisk + sctSide); - //if(layerDisk == 0) ???? (PF: why this is here?) m_hits_vs_Phi_sct_ecc[layerDisk] -> Fill(modPhi); m_hits_vs_Eta_Phi_sct_ecc -> Fill(layerDisk, modPhi); } @@ -1646,7 +1577,6 @@ void IDAlignMonEfficiencies::makeEffHisto(TH1F_LW* h_num, TH1F_LW* h_denom, TPro int Nfail = int(h_denom->GetBinContent(bin+1)) - Npass; float binSize = (h_denom->getXMax() - h_denom->getXMin())/h_denom->GetNbinsX(); - //double x = h_denom->GetBinCenter(bin+1); double x = h_denom->getXMin() + binSize * bin + binSize/2; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Npass is " << Npass << endmsg; for (int pass=0; pass<Npass; ++pass) { @@ -1735,12 +1665,10 @@ void IDAlignMonEfficiencies::makeEffHisto(TH2F* h_num, TH2F* h_denom, TH2F* h_ef if (NExpected > 10) doComputeEff = true; if (NSeenHits > 5) doComputeEff = true; if (doComputeEff) { - myEff = NSeenHits / NExpected; - if (myEff < 0.01) myEff = 0.01; //trick to distinguish between few entries and not working modules or too low statistics (doComputeEff = false --> Eff = 0 % ) - h_eff->SetBinContent(bin+1,binY+1, myEff); + myEff = NSeenHits / NExpected; + if (myEff < 0.01) myEff = 0.01; //trick to distinguish between few entries and not working modules or too low statistics (doComputeEff = false --> Eff = 0 % ) + h_eff->SetBinContent(bin+1,binY+1, myEff); } - // std::cout << " -- SALVA -- eff for module ( " << bin << ", " << binY << ") Nseen= " << NSeenHits << " NExpected= " << NExpected; - // std::cout << " ComputeEff= " << doComputeEff; if (doComputeEff) std::cout << " Eff= " << myEff; std::cout << std::endl; } @@ -1757,7 +1685,6 @@ void IDAlignMonEfficiencies::makeEffHistoWithCut(TH2F* h_num, TH2F* h_denom, TPr int Nbins = h_num->GetNbinsX(); int NbinsY = h_num->GetNbinsY(); float NSeenHits, NExpected; - float myEff = 0.; // default is 0% bool doComputeEff = false; for (int bin=0; bin!=Nbins; ++bin) { @@ -1768,24 +1695,15 @@ void IDAlignMonEfficiencies::makeEffHistoWithCut(TH2F* h_num, TH2F* h_denom, TPr if (NExpected > 10) doComputeEff = true; if (NSeenHits > 3) doComputeEff = true; if (doComputeEff) { - myEff = NSeenHits / NExpected; - if (myEff < 0.01) myEff = 0.01; // trick to distinguish between few entries and not working modules (dead modules). - // h_eff->SetBinContent(bin+1,binY+1, myEff); - float this_x = h_denom->GetXaxis()->GetBinCenter(bin+1); - float this_y = h_denom->GetYaxis()->GetBinCenter(binY+1); - - for (int i=0; i<NExpected; i++) { - if (i < NSeenHits) { - h_eff->Fill(this_x, this_y, 1.); - } - else { - h_eff->Fill(this_x, this_y, 0.); - } - } + float this_x = h_denom->GetXaxis()->GetBinCenter(bin+1); + float this_y = h_denom->GetYaxis()->GetBinCenter(binY+1); + for (int i=0; i<NExpected; i++) { + const float fillValue = (i < NSeenHits) ? 1. : 0.; + h_eff->Fill(this_x, this_y, fillValue); + } } std::cout << " -- SALVA -- eff for module ( " << bin << ", " << binY << ") Nseen= " << NSeenHits << " NExpected= " << NExpected; std::cout << " ComputeEff= " << doComputeEff; - // if (doComputeEff) std::cout << " Eff= " << myEff; if (doComputeEff) std::cout << " Eff= " << h_eff->GetBinContent(bin, binY); std::cout << std::endl; } @@ -1797,8 +1715,6 @@ void IDAlignMonEfficiencies::makeEffHistoWithCut(TH2F* h_num, TH2F* h_denom, TPr StatusCode IDAlignMonEfficiencies::procHistograms() { if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "In procHistograms" << endmsg; - //if( endOfLowStatFlag() ) { } - //if( endOfLumiBlockFlag() ) { } if( endOfRunFlag() || ( ( AthenaMonManager::environment() == AthenaMonManager::online ) && endOfLumiBlockFlag() ) ) { // ----------------------------------------------------------------------- // @@ -2007,134 +1923,7 @@ StatusCode IDAlignMonEfficiencies::procHistograms() if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Done TRT Processing" << endmsg; //======================== - - -// // normalize: divide outliers by number of hits -// for (int i=1;i<=m_hits_vs_Eta_Phi_pix_b0->GetNbinsX();i++){ -// for (int j=1;j<=m_hits_vs_Eta_Phi_pix_b0->GetNbinsY();j++){ -// float measurements=m_measurements_vs_Eta_Phi_pix_b0->GetBinContent(i,j); -// float outliers=m_outliers_vs_Eta_Phi_pix_b0->GetBinContent(i,j); -// float holes=m_holes_vs_Eta_Phi_pix_b0->GetBinContent(i,j); -// float hits=m_hits_vs_Eta_Phi_pix_b0->GetBinContent(i,j); -// if(hits > 0){ -// m_measurements_vs_Eta_Phi_pix_b0->SetBinContent(i,j,measurements / hits); -// m_outliers_vs_Eta_Phi_pix_b0->SetBinContent(i,j,outliers / hits); -// m_holes_vs_Eta_Phi_pix_b0->SetBinContent(i,j,holes / hits); -// } else { -// m_measurements_vs_Eta_Phi_pix_b0->SetBinContent(i,j,0.); -// m_outliers_vs_Eta_Phi_pix_b0->SetBinContent(i,j,0.); -// m_holes_vs_Eta_Phi_pix_b0->SetBinContent(i,j,0.); -// } -// } -// } - -// for (int i=1;i<=m_hits_vs_Eta_Phi_pix_b1->GetNbinsX();i++){ -// for (int j=1;j<=m_hits_vs_Eta_Phi_pix_b1->GetNbinsY();j++){ -// float measurements=m_measurements_vs_Eta_Phi_pix_b1->GetBinContent(i,j); -// float outliers=m_outliers_vs_Eta_Phi_pix_b1->GetBinContent(i,j); -// float holes=m_holes_vs_Eta_Phi_pix_b1->GetBinContent(i,j); -// float hits=m_hits_vs_Eta_Phi_pix_b1->GetBinContent(i,j); -// if(hits > 0){ -// m_measurements_vs_Eta_Phi_pix_b1->SetBinContent(i,j,measurements / hits); -// m_outliers_vs_Eta_Phi_pix_b1->SetBinContent(i,j,outliers / hits); -// m_holes_vs_Eta_Phi_pix_b1->SetBinContent(i,j,holes / hits); -// } else { -// m_measurements_vs_Eta_Phi_pix_b1->SetBinContent(i,j,0.); -// m_outliers_vs_Eta_Phi_pix_b1->SetBinContent(i,j,0.); -// m_holes_vs_Eta_Phi_pix_b1->SetBinContent(i,j,0.); -// } -// } -// } - -// for (int i=1;i<=m_hits_vs_Eta_Phi_pix_b2->GetNbinsX();i++){ -// for (int j=1;j<=m_hits_vs_Eta_Phi_pix_b2->GetNbinsY();j++){ -// float measurements=m_measurements_vs_Eta_Phi_pix_b2->GetBinContent(i,j); -// float outliers=m_outliers_vs_Eta_Phi_pix_b2->GetBinContent(i,j); -// float holes=m_holes_vs_Eta_Phi_pix_b2->GetBinContent(i,j); -// float hits=m_hits_vs_Eta_Phi_pix_b2->GetBinContent(i,j); -// if(hits > 0){ -// m_measurements_vs_Eta_Phi_pix_b2->SetBinContent(i,j,measurements / hits); -// m_outliers_vs_Eta_Phi_pix_b2->SetBinContent(i,j,outliers / hits); -// m_holes_vs_Eta_Phi_pix_b2->SetBinContent(i,j,holes / hits); -// } else { -// m_measurements_vs_Eta_Phi_pix_b2->SetBinContent(i,j,0.); -// m_outliers_vs_Eta_Phi_pix_b2->SetBinContent(i,j,0.); -// m_holes_vs_Eta_Phi_pix_b2->SetBinContent(i,j,0.); -// } -// } -// } - -// for (int i=1;i<=m_hits_vs_Eta_Phi_sct_b0->GetNbinsX();i++){ -// for (int j=1;j<=m_hits_vs_Eta_Phi_sct_b0->GetNbinsY();j++){ -// float measurements=m_measurements_vs_Eta_Phi_sct_b0->GetBinContent(i,j); -// float outliers=m_outliers_vs_Eta_Phi_sct_b0->GetBinContent(i,j); -// float holes=m_holes_vs_Eta_Phi_sct_b0->GetBinContent(i,j); -// float hits=m_hits_vs_Eta_Phi_sct_b0->GetBinContent(i,j); -// if(hits > 0){ -// m_measurements_vs_Eta_Phi_sct_b0->SetBinContent(i,j,measurements / hits); -// m_outliers_vs_Eta_Phi_sct_b0->SetBinContent(i,j,outliers / hits); -// m_holes_vs_Eta_Phi_sct_b0->SetBinContent(i,j,holes / hits); -// } else { -// m_measurements_vs_Eta_Phi_sct_b0->SetBinContent(i,j,0.); -// m_outliers_vs_Eta_Phi_sct_b0->SetBinContent(i,j,0.); -// m_holes_vs_Eta_Phi_sct_b0->SetBinContent(i,j,0.); -// } -// } -// } - -// for (int i=1;i<=m_hits_vs_Eta_Phi_sct_b1->GetNbinsX();i++){ -// for (int j=1;j<=m_hits_vs_Eta_Phi_sct_b1->GetNbinsY();j++){ -// float measurements=m_measurements_vs_Eta_Phi_sct_b1->GetBinContent(i,j); -// float outliers=m_outliers_vs_Eta_Phi_sct_b1->GetBinContent(i,j); -// float holes=m_holes_vs_Eta_Phi_sct_b1->GetBinContent(i,j); -// float hits=m_hits_vs_Eta_Phi_sct_b1->GetBinContent(i,j); -// if(hits > 0){ -// m_measurements_vs_Eta_Phi_sct_b1->SetBinContent(i,j,measurements / hits); -// m_outliers_vs_Eta_Phi_sct_b1->SetBinContent(i,j,outliers / hits); -// m_holes_vs_Eta_Phi_sct_b1->SetBinContent(i,j,holes / hits); -// } else { -// m_measurements_vs_Eta_Phi_sct_b1->SetBinContent(i,j,0.); -// m_outliers_vs_Eta_Phi_sct_b1->SetBinContent(i,j,0.); -// m_holes_vs_Eta_Phi_sct_b1->SetBinContent(i,j,0.); -// } -// } -// } - -// for (int i=1;i<=m_hits_vs_Eta_Phi_sct_b2->GetNbinsX();i++){ -// for (int j=1;j<=m_hits_vs_Eta_Phi_sct_b2->GetNbinsY();j++){ -// float measurements=m_measurements_vs_Eta_Phi_sct_b2->GetBinContent(i,j); -// float outliers=m_outliers_vs_Eta_Phi_sct_b2->GetBinContent(i,j); -// float holes=m_holes_vs_Eta_Phi_sct_b2->GetBinContent(i,j); -// float hits=m_hits_vs_Eta_Phi_sct_b2->GetBinContent(i,j); -// if(hits > 0){ -// m_measurements_vs_Eta_Phi_sct_b2->SetBinContent(i,j,measurements / hits); -// m_outliers_vs_Eta_Phi_sct_b2->SetBinContent(i,j,outliers / hits); -// m_holes_vs_Eta_Phi_sct_b2->SetBinContent(i,j,holes / hits); -// } else { -// m_measurements_vs_Eta_Phi_sct_b2->SetBinContent(i,j,0.); -// m_outliers_vs_Eta_Phi_sct_b2->SetBinContent(i,j,0.); -// m_holes_vs_Eta_Phi_sct_b2->SetBinContent(i,j,0.); -// } -// } -// } - -// for (int i=1;i<=m_hits_vs_Eta_Phi_sct_b3->GetNbinsX();i++){ -// for (int j=1;j<=m_hits_vs_Eta_Phi_sct_b3->GetNbinsY();j++){ -// float measurements=m_measurements_vs_Eta_Phi_sct_b3->GetBinContent(i,j); -// float outliers=m_outliers_vs_Eta_Phi_sct_b3->GetBinContent(i,j); -// float holes=m_holes_vs_Eta_Phi_sct_b3->GetBinContent(i,j); -// float hits=m_hits_vs_Eta_Phi_sct_b3->GetBinContent(i,j); -// if(hits > 0){ -// m_measurements_vs_Eta_Phi_sct_b3->SetBinContent(i,j,measurements / hits); -// m_outliers_vs_Eta_Phi_sct_b3->SetBinContent(i,j,outliers / hits); -// m_holes_vs_Eta_Phi_sct_b3->SetBinContent(i,j,holes / hits); -// } else { -// m_measurements_vs_Eta_Phi_sct_b3->SetBinContent(i,j,0.); -// m_outliers_vs_Eta_Phi_sct_b3->SetBinContent(i,j,0.); -// m_holes_vs_Eta_Phi_sct_b3->SetBinContent(i,j,0.); -// } -// } -// } + } @@ -2309,8 +2098,6 @@ std::pair<const Trk::TrackStateOnSurface*, const Trk::TrackStateOnSurface*> IDAl } } - //const Trk::TrackParameters* trackParameter = tsos2->trackParameters(); - //const Trk::MeasuredTrackParameters* measuredTrackParameter = dynamic_cast<const Trk::MeasuredTrackParameters*>(trackParameter); const Trk::TrackParameters* TrackParameters = tsos2->trackParameters(); if (!TrackParameters) @@ -2376,9 +2163,7 @@ std::pair<const Trk::TrackStateOnSurface*, const Trk::TrackStateOnSurface*> IDAl } if(close){ //end add by TG if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "***** identified local X overlap" << endmsg; - // if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "original module radius = " << radius << endmsg; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "original module phi, eta = " << modEta <<", "<<modPhi<< endmsg; - //if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "overlap module radius = " << radius2 << endmsg; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "second module phi, eta = " << modEta2 <<", "<<modPhi2<< endmsg; xOverlap = (tsos2); } //added by LT @@ -2387,8 +2172,6 @@ std::pair<const Trk::TrackStateOnSurface*, const Trk::TrackStateOnSurface*> IDAl if(modEta-modEta2 == 1 && modPhi==modPhi2){ if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "***** identified local Y overlap" << endmsg; - //if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "original module radius = " << radius << endmsg; - //if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "overlap module radius = " << radius2 << endmsg; yOverlap = (tsos2); } if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE) << "modEta2 = " << modEta2 << endmsg; @@ -2658,11 +2441,7 @@ void IDAlignMonEfficiencies::makePIXEndCapsHistograms(MonGroup& al_mon){ //efficiencies for endcaps m_measurements_eff_vs_Phi_pix_eca.push_back(new TProfile(("measurements_eff_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),("measurements per possible hits vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.)); RegisterHisto(al_mon,m_measurements_eff_vs_Phi_pix_eca[iWheel]) ; - - - - - + } if (iSide<0) { @@ -2744,8 +2523,6 @@ void IDAlignMonEfficiencies::makeSCTBarrelHistograms(MonGroup &al_mon){ //ATH_MSG_INFO("iEta= " << iEta); } float EtaModules= m_SCT_Mgr->numerology().endEtaModuleForLayer(iLayer) - m_SCT_Mgr->numerology().beginEtaModuleForLayer(iLayer); //(i put float in order to divide by 2. I am not skipping the empty layer. It might be nice to see the separation) - //m_measurements_eff_vs_Eta_Phi_sct_b.push_back(new TProfile2D(("measurements_eff_vs_Eta_Phi_sct_b"+intToString(iLayer)).c_str(),("hit eff. vs. Eta-Phi-ID in Sct barrel layer"+intToString(iLayer)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2.,maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5,0.,1.)); - //RegisterHisto(al_mon,m_measurements_eff_vs_Eta_Phi_sct_b[iLayer]); m_measurements_eff_vs_Eta_Phi_sct_b.push_back(new TProfile2D(("measurements_eff_vs_Eta_Phi_sct_b"+intToString(iLayer)).c_str(),("hit eff. vs. Eta-Phi-ID in Sct barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2.,maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer,0.,1.)); RegisterHisto(al_mon,m_measurements_eff_vs_Eta_Phi_sct_b[iLayer]); //all hits @@ -2770,7 +2547,6 @@ void IDAlignMonEfficiencies::makeSCTBarrelHistograms(MonGroup &al_mon){ for (int side=0; side < 2; side++) { - // std::cout << " -- Salva -- hit map of SCT BAR layer " << iLayer << " side: " << side << " Name: " << ("measurements_vs_Eta_Phi_sct_b"+intToString(iLayer)+"_s"+intToString(side)).c_str() << std::endl; if (side == 0) { // posible hits m_hits_vs_Eta_Phi_sct_s0_b.push_back(new TH2F(("expectedHits_vs_Eta_Phi_sct_b"+intToString(iLayer)+"_s"+intToString(side)).c_str(),("measurements per possible hits vs. Eta-Phi-ID in SCT barrel layer "+intToString(iLayer)+" side "+intToString(side)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2.,maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5)); diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.h index 7c075e7e36ccbb982cb1dc0a760676aa2c019f71..9b2588691a593909e894b6da7c44fcff2c3a57ca 100755 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.h +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.h @@ -18,7 +18,6 @@ #include "GaudiKernel/ToolHandle.h" #include "TrkToolInterfaces/ITrackSummaryTool.h" #include "EventPrimitives/EventPrimitives.h" -#include "TH3F.h" //forward declaration class TH1F; @@ -351,15 +350,15 @@ class IDAlignMonEfficiencies : public ManagedMonitorToolBase std::vector<TH1F*> m_measurements_vs_LB_pix_ecc; - TProfile* m_measurements_eff_vs_LB_sct_eca; - TH1F* m_hits_vs_LB_sct_eca; - TH1F* m_measurements_vs_LB_sct_eca; + TProfile* m_measurements_eff_vs_LB_sct_eca{}; + TH1F* m_hits_vs_LB_sct_eca{}; + TH1F* m_measurements_vs_LB_sct_eca{}; - TProfile* m_measurements_eff_vs_LB_sct_ecc; - TH1F* m_hits_vs_LB_sct_ecc; - TH1F* m_measurements_vs_LB_sct_ecc; + TProfile* m_measurements_eff_vs_LB_sct_ecc{}; + TH1F* m_hits_vs_LB_sct_ecc{}; + TH1F* m_measurements_vs_LB_sct_ecc{}; std::vector<TProfile*> m_overlapX_eff_vs_Phi_pix_b; diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.cxx index 3331d74d57e70f282f10068d12c3c0efbad2d07a..58f6f9bdf3a1d20d0c022b6a21abcc28201cefa8 100644 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.cxx +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.cxx @@ -7,8 +7,7 @@ // AUTHORS: Beate Heinemann, Tobias Golling // ********************************************************************** -#include <sstream> -#include <math.h> +#include <cmath> #include "TH1.h" #include "TH2.h" #include "TProfile.h" @@ -29,7 +28,6 @@ #include "InDetPrepRawData/SiCluster.h" -//#include "Particle/TrackParticleContainer.h" #include "Particle/TrackParticle.h" #include "TrkParticleBase/LinkToTrackParticleBase.h" @@ -40,7 +38,6 @@ #include "xAODEventInfo/EventInfo.h" -//#include "AthenaMonitoring/AthenaMonManager.h" #include "IDAlignMonGenericTracks.h" #include "CLHEP/GenericFunctions/CumulativeChiSquare.hh" @@ -2141,8 +2138,8 @@ StatusCode IDAlignMonGenericTracks::fillHistograms() if(charge>0) m_pT_p -> Fill(trkpt, hweight); if(charge<0) m_pT_n -> Fill(trkpt, hweight); - m_pTRes -> Fill(fabs(Err_qOverP/qOverP) , hweight); - m_pTResOverP -> Fill(fabs(Err_qOverP/qOverP*qOverP), hweight); + m_pTRes -> Fill(std::fabs(Err_qOverP/qOverP) , hweight); + m_pTResOverP -> Fill(std::fabs(Err_qOverP/qOverP*qOverP), hweight); @@ -2184,42 +2181,42 @@ StatusCode IDAlignMonGenericTracks::fillHistograms() m_trk_TRTHitsvEta -> Fill( trketa , nhtrt , hweight); m_trk_chi2oDoF_Phi -> Fill( trkphi , chi2oDoF, hweight); m_trk_chi2oDoF_Pt -> Fill( charge*trkpt , chi2oDoF, hweight); - m_trk_chi2oDoF_P -> Fill( charge*fabs(trkP), chi2oDoF, hweight); + m_trk_chi2oDoF_P -> Fill( charge*std::fabs(trkP), chi2oDoF, hweight); m_trk_chi2ProbDist -> Fill( chi2Prob , hweight); m_errCotTheta -> Fill( Err_cottheta , hweight); m_errCotThetaVsD0BS-> Fill( d0bscorr , Err_cottheta, hweight); - m_errCotThetaVsPt -> Fill( fabs(trkpt) , Err_cottheta, hweight); - m_errCotThetaVsP -> Fill( fabs(trkP) , Err_cottheta, hweight); + m_errCotThetaVsPt -> Fill( std::fabs(trkpt) , Err_cottheta, hweight); + m_errCotThetaVsP -> Fill( std::fabs(trkP) , Err_cottheta, hweight); m_errCotThetaVsPhi -> Fill( trkphi , Err_cottheta, hweight); m_errCotThetaVsEta -> Fill( trketa , Err_cottheta, hweight); m_errTheta -> Fill( Err_theta , hweight); m_errThetaVsD0BS -> Fill( d0bscorr , Err_theta, hweight); - m_errThetaVsPt -> Fill( fabs(trkpt) , Err_theta, hweight); - m_errThetaVsP -> Fill( fabs(trkP) , Err_theta, hweight); + m_errThetaVsPt -> Fill( std::fabs(trkpt) , Err_theta, hweight); + m_errThetaVsP -> Fill( std::fabs(trkP) , Err_theta, hweight); m_errThetaVsPhi -> Fill( trkphi , Err_theta, hweight); m_errThetaVsEta -> Fill( trketa , Err_theta, hweight); m_errD0 -> Fill( Err_d0 , hweight); m_errD0VsD0BS -> Fill( d0bscorr , Err_d0 , hweight); - m_errD0VsPt -> Fill( fabs(trkpt) , Err_d0 , hweight); - m_errD0VsP -> Fill( fabs(trkP) , Err_d0 , hweight); + m_errD0VsPt -> Fill( std::fabs(trkpt) , Err_d0 , hweight); + m_errD0VsP -> Fill( std::fabs(trkP) , Err_d0 , hweight); m_errD0VsPhi -> Fill( trkphi , Err_d0 , hweight); m_errD0VsEta -> Fill( trketa , Err_d0 , hweight); m_errPhi0 -> Fill( Err_phi , hweight); m_errPhi0VsD0BS -> Fill( d0bscorr , Err_phi , hweight); - m_errPhi0VsPt -> Fill( fabs(trkpt) , Err_phi , hweight); - m_errPhi0VsP -> Fill( fabs(trkP) , Err_phi , hweight); + m_errPhi0VsPt -> Fill( std::fabs(trkpt) , Err_phi , hweight); + m_errPhi0VsP -> Fill( std::fabs(trkP) , Err_phi , hweight); m_errPhi0VsPhi0 -> Fill( trkphi , Err_phi , hweight); m_errPhi0VsEta -> Fill( trketa , Err_phi , hweight); m_errZ0 -> Fill( Err_z0 , hweight); //m_errZ0VsD0BS -> Fill( d0bscorr , Err_z0 , hweight); - m_errZ0VsPt -> Fill( fabs(trkpt) , Err_z0 , hweight); - m_errZ0VsP -> Fill( fabs(trkP) , Err_z0 , hweight); + m_errZ0VsPt -> Fill( std::fabs(trkpt) , Err_z0 , hweight); + m_errZ0VsP -> Fill( std::fabs(trkP) , Err_z0 , hweight); m_errZ0VsPhi0 -> Fill( trkphi , Err_z0 , hweight); m_errZ0VsEta -> Fill( trketa , Err_z0 , hweight); m_errPt -> Fill( Err_Pt , hweight); m_errPtVsD0BS -> Fill( d0bscorr , Err_Pt , hweight); m_errPtVsPt -> Fill( trkpt , Err_Pt , hweight); - m_errPtVsP -> Fill( fabs(trkP) , Err_Pt , hweight); + m_errPtVsP -> Fill( std::fabs(trkP) , Err_Pt , hweight); m_errPt_Pt2 -> Fill( Err_Pt/(trkpt*trkpt) , hweight); m_errPt_Pt2VsPt -> Fill( trkpt , Err_Pt/(trkpt*trkpt), hweight); m_errPt_Pt2VsEta -> Fill( trketa, Err_Pt/(trkpt*trkpt), hweight); @@ -2356,7 +2353,7 @@ StatusCode IDAlignMonGenericTracks::fillHistograms() } if(trkpt > ptlast){ - z_E[0] = fabs(trkpt / sin(trktheta)); + z_E[0] = std::fabs(trkpt / sin(trktheta)); z_pz[0] = trkpt / tan(trktheta); z_px[0] = trkpt * sin(trkphi); z_py[0] = trkpt * cos(trkphi); @@ -2369,7 +2366,8 @@ StatusCode IDAlignMonGenericTracks::fillHistograms() // - + delete myIPandSigma; + myIPandSigma=nullptr; } // end of loop on trks if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Number of good tracks from TrackCollection: "<< ngTracks<< endmsg; @@ -2412,7 +2410,7 @@ StatusCode IDAlignMonGenericTracks::fillHistograms() else charge = 1; } if(trkpt > ptlast && trkpt < ptfirst && chargefirst*charge < 0 && trkpt > 20){ - z_E[1] = fabs(trkpt / sin(trktheta)); + z_E[1] = std::fabs(trkpt / sin(trktheta)); z_pz[1] = trkpt / tan(trktheta); z_px[1] = trkpt * sin(trkphi); z_py[1] = trkpt * cos(trkphi); @@ -2425,12 +2423,11 @@ StatusCode IDAlignMonGenericTracks::fillHistograms() if(z_true){ // build invariant mass of two highest pT tracks - // M = sqrt(E1*E2 - px1*px2 - py1*py2 - pz1*pz2); float M = (z_E[0]+z_E[1])*(z_E[0]+z_E[1]) - (z_px[0]+z_px[1])*(z_px[0]+z_px[1]) - (z_py[0]+z_py[1])*(z_py[0]+z_py[1]) - (z_pz[0]+z_pz[1])*(z_pz[0]+z_pz[1]); if( M <= 0 ) M =0; else - M = sqrt(M); + M = std::sqrt(M); m_Zmumu -> Fill(M, hweight); @@ -2443,15 +2440,15 @@ StatusCode IDAlignMonGenericTracks::fillHistograms() m_ZpT_n -> Fill(-z_pT[0], hweight); } - if(fabs(z_eta[0]) < m_barrelEta && fabs(z_eta[1]) < m_barrelEta) m_Zmumu_barrel-> Fill(M, hweight); + if(std::fabs(z_eta[0]) < m_barrelEta && std::fabs(z_eta[1]) < m_barrelEta) m_Zmumu_barrel-> Fill(M, hweight); if(z_eta[0] >= m_barrelEta && z_eta[1] >= m_barrelEta) m_Zmumu_eca -> Fill(M, hweight); if(z_eta[0] <= -m_barrelEta && z_eta[1] <= -m_barrelEta) m_Zmumu_ecc -> Fill(M, hweight); - if((fabs(z_eta[0]) < m_barrelEta && z_eta[1] >= m_barrelEta) || - (z_eta[0] >= m_barrelEta && fabs(z_eta[1]) < m_barrelEta)) m_Zmumu_barrel_eca -> Fill(M, hweight); + if((std::fabs(z_eta[0]) < m_barrelEta && z_eta[1] >= m_barrelEta) || + (z_eta[0] >= m_barrelEta && std::fabs(z_eta[1]) < m_barrelEta)) m_Zmumu_barrel_eca -> Fill(M, hweight); - if((fabs(z_eta[0]) < m_barrelEta && z_eta[1] <= -m_barrelEta) || - (z_eta[0] <= -m_barrelEta && fabs(z_eta[1]) < m_barrelEta)) m_Zmumu_barrel_ecc -> Fill(M, hweight); + if((std::fabs(z_eta[0]) < m_barrelEta && z_eta[1] <= -m_barrelEta) || + (z_eta[0] <= -m_barrelEta && std::fabs(z_eta[1]) < m_barrelEta)) m_Zmumu_barrel_ecc -> Fill(M, hweight); } diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx index b95083612d5f876515adb693121eb2b9a1dd52cf..d61087d7d8323aa075cfa604ac8d123cc85ce929 100755 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx @@ -196,7 +196,6 @@ IDAlignMonResiduals::IDAlignMonResiduals( const std::string & type, const std::s m_trtcaldbSvc("TRT_CalDbSvc",name), m_hWeightInFile(0), m_etapTWeight(0) - { m_iUpdator = ToolHandle<Trk::IUpdator>("Trk::KalmanUpdator"); m_propagator = ToolHandle<Trk::IPropagator>("Trk::RungeKuttaPropagator"); @@ -206,6 +205,7 @@ IDAlignMonResiduals::IDAlignMonResiduals( const std::string & type, const std::s m_hitQualityTool = ToolHandle<IInDetAlignHitQualSelTool>(""); m_trt_b_hist = new TRTBarrelHistograms(); m_trt_ec_hist = new TRTEndcapHistograms(); + m_tracksName = "ExtendedTracks"; m_triggerChainName = "NoTriggerSelection"; m_z_fix = 366.5; // IBL Stave fixing screw position [mm] diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h index 53fa1f9553b110b10644dba255fcba1491178d80..36ee79e555dcc0b06bcb103f431e95c9003ad446 100755 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h @@ -142,12 +142,12 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase void SetMinWindow(TProfile* hProf, float min, float max); void SetMinWindow(TH1* h1, float min, float max); - std::string m_stream; - std::string m_tracksName; - std::string m_triggerChainName; - std::string m_Pixel_Manager; - std::string m_SCT_Manager; - std::string m_TRT_Manager; + std::string m_stream{}; + std::string m_tracksName{}; + std::string m_triggerChainName{}; + std::string m_Pixel_Manager{}; + std::string m_SCT_Manager{}; + std::string m_TRT_Manager{}; //Layer/Disk/Ring Gap for modified module histograms int m_gap_pix; @@ -200,19 +200,18 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase float m_maxPtEC; // threshold for low-pt EC distributions //tools - const AtlasDetectorID* m_idHelper; - const InDetDD::PixelDetectorManager* m_PIX_Mgr; - const InDetDD::SCT_DetectorManager* m_SCT_Mgr; - const PixelID* m_pixelID; - const SCT_ID* m_sctID; - const TRT_ID* m_trtID; + const AtlasDetectorID* m_idHelper{}; + const InDetDD::PixelDetectorManager* m_PIX_Mgr{}; + const InDetDD::SCT_DetectorManager* m_SCT_Mgr{}; + const PixelID* m_pixelID{}; + const SCT_ID* m_sctID{}; + const TRT_ID* m_trtID{}; ToolHandle<Trk::IUpdator> m_iUpdator; ToolHandle<Trk::IPropagator> m_propagator; ToolHandle<InDetAlignMon::TrackSelectionTool> m_trackSelection; ToolHandle<Trk::IResidualPullCalculator> m_residualPullCalculator; //!< The residual and pull calculator tool handle ToolHandle<IInDetAlignHitQualSelTool> m_hitQualityTool; - //ToolHandle<InDet::IInDetTrackSelectionTool> m_idtrackSelection; //histograms @@ -421,7 +420,7 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase - TH1F* m_mu_perEvent; + TH1F* m_mu_perEvent{}; float m_mu; bool m_hasBeenCalledThisEvent; int m_nBinsMuRange; @@ -433,45 +432,45 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase int m_nIBLHitsPerLB; - int m_lumiblock; - - TProfile2D* m_pix_b0_resXvsetaLumiBlock; - TProfile2D* m_pix_b0_resXvsetaLumiBlock_planars; - - TH3F* m_pix_b0_resXvsetaLumiBlock_3d; - TH3F* m_pix_b0_resXvsetaLumiBlock_planars_3d; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave0; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave1; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave2; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave3; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave4; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave5; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave6; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave7; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave8; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave9; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave10; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave11; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave12; - TH3F* m_pix_b0_resXvsetaLumiBlock_stave13; + int m_lumiblock{}; + + TProfile2D* m_pix_b0_resXvsetaLumiBlock{}; + TProfile2D* m_pix_b0_resXvsetaLumiBlock_planars{}; + + TH3F* m_pix_b0_resXvsetaLumiBlock_3d{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_planars_3d{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave0{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave1{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave2{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave3{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave4{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave5{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave6{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave7{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave8{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave9{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave10{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave11{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave12{}; + TH3F* m_pix_b0_resXvsetaLumiBlock_stave13{}; //IBL fit magnitude and baseline as a function of LumiBlock - TH1F* m_mag_vs_LB; - TH1F* m_base_vs_LB; + TH1F* m_mag_vs_LB{}; + TH1F* m_base_vs_LB{}; - TH1F* m_mag_vs_LB_planars; - TH1F* m_base_vs_LB_planars; + TH1F* m_mag_vs_LB_planars{}; + TH1F* m_base_vs_LB_planars{}; // SCT - TH2F* m_sct_b_pullx_pt; + TH2F* m_sct_b_pullx_pt{}; std::vector<TH2F*> m_sct_b_pullsx_pt; - TH2F* m_sct_eca_pullx_pt; - TH2F* m_sct_ecc_pullx_pt; + TH2F* m_sct_eca_pullx_pt{}; + TH2F* m_sct_ecc_pullx_pt{}; std::vector<TH2F*> m_sct_eca_pullsx_pt; @@ -487,59 +486,59 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase std::vector<TH2F*> m_sct_eca_residualsx_qoverp2; std::vector<TH2F*> m_sct_ecc_residualsx_qoverp2; - TH3F* m_sct_b0_xresvsmodetaphi_3d; - TH3F* m_sct_b1_xresvsmodetaphi_3d; - TH3F* m_sct_b2_xresvsmodetaphi_3d; - TH3F* m_sct_b3_xresvsmodetaphi_3d; - - TH1F* m_si_residualx; - TH1F* m_si_b_residualx; - - TH1F* m_si_barrel_resX_mean; - TH1F* m_si_eca_resX_mean; - TH1F* m_si_ecc_resX_mean; - TH1F* m_si_barrel_resY_mean; - TH1F* m_si_eca_resY_mean; - TH1F* m_si_ecc_resY_mean; - - TProfile* m_si_barrel_resX_mean_profile; - TProfile* m_si_barrel_resY_mean_profile; - - - TH1F* m_si_barrel_resX_rms; - TH1F* m_si_eca_resX_rms; - TH1F* m_si_ecc_resX_rms; - TH1F* m_si_barrel_resY_rms; - TH1F* m_si_eca_resY_rms; - TH1F* m_si_ecc_resY_rms; - - TH2F* m_si_barrel_pullX; - TH2F* m_si_eca_pullX; - TH2F* m_si_ecc_pullX; - TH2F* m_si_barrel_pullY; - TH2F* m_si_eca_pullY; - TH2F* m_si_ecc_pullY; - - TH2F* m_si_barrel_resX; - TH2F* m_si_eca_resX; - TH2F* m_si_ecc_resX; - TH2F* m_si_barrel_resY; - TH2F* m_si_eca_resY; - TH2F* m_si_ecc_resY; - - TH1F* m_si_barrel_pullX_width; - TH1F* m_si_eca_pullX_width; - TH1F* m_si_ecc_pullX_width; - TH1F* m_si_barrel_pullY_width; - TH1F* m_si_eca_pullY_width; - TH1F* m_si_ecc_pullY_width; - - TH1F* m_si_barrel_pullX_mean; - TH1F* m_si_eca_pullX_mean; - TH1F* m_si_ecc_pullX_mean; - TH1F* m_si_barrel_pullY_mean; - TH1F* m_si_eca_pullY_mean; - TH1F* m_si_ecc_pullY_mean; + TH3F* m_sct_b0_xresvsmodetaphi_3d{}; + TH3F* m_sct_b1_xresvsmodetaphi_3d{}; + TH3F* m_sct_b2_xresvsmodetaphi_3d{}; + TH3F* m_sct_b3_xresvsmodetaphi_3d{}; + + TH1F* m_si_residualx{}; + TH1F* m_si_b_residualx{}; + + TH1F* m_si_barrel_resX_mean{}; + TH1F* m_si_eca_resX_mean{}; + TH1F* m_si_ecc_resX_mean{}; + TH1F* m_si_barrel_resY_mean{}; + TH1F* m_si_eca_resY_mean{}; + TH1F* m_si_ecc_resY_mean{}; + + TProfile* m_si_barrel_resX_mean_profile{}; + TProfile* m_si_barrel_resY_mean_profile{}; + + + TH1F* m_si_barrel_resX_rms{}; + TH1F* m_si_eca_resX_rms{}; + TH1F* m_si_ecc_resX_rms{}; + TH1F* m_si_barrel_resY_rms{}; + TH1F* m_si_eca_resY_rms{}; + TH1F* m_si_ecc_resY_rms{}; + + TH2F* m_si_barrel_pullX{}; + TH2F* m_si_eca_pullX{}; + TH2F* m_si_ecc_pullX{}; + TH2F* m_si_barrel_pullY{}; + TH2F* m_si_eca_pullY{}; + TH2F* m_si_ecc_pullY{}; + + TH2F* m_si_barrel_resX{}; + TH2F* m_si_eca_resX{}; + TH2F* m_si_ecc_resX{}; + TH2F* m_si_barrel_resY{}; + TH2F* m_si_eca_resY{}; + TH2F* m_si_ecc_resY{}; + + TH1F* m_si_barrel_pullX_width{}; + TH1F* m_si_eca_pullX_width{}; + TH1F* m_si_ecc_pullX_width{}; + TH1F* m_si_barrel_pullY_width{}; + TH1F* m_si_eca_pullY_width{}; + TH1F* m_si_ecc_pullY_width{}; + + TH1F* m_si_barrel_pullX_mean{}; + TH1F* m_si_eca_pullX_mean{}; + TH1F* m_si_ecc_pullX_mean{}; + TH1F* m_si_barrel_pullY_mean{}; + TH1F* m_si_eca_pullY_mean{}; + TH1F* m_si_ecc_pullY_mean{}; //Pixel Histograms @@ -588,63 +587,63 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase //Pixel Histograms - TH1F* m_pix_b_residualx; - TH1F* m_pix_b_residualy; - TH1F* m_pix_b_residualx_fine; - TH1F* m_pix_b_residualy_fine; - TH1F* m_pix_b_biased_residualx; - TH1F* m_pix_b_biased_residualy; - TH1F* m_pix_eca_residualx; - TH1F* m_pix_eca_residualy; - TH1F* m_pix_ecc_residualx; - TH1F* m_pix_ecc_residualy; - TH1F* m_pix_eca_residualx_fine; - TH1F* m_pix_eca_residualy_fine; - TH1F* m_pix_ecc_residualx_fine; - TH1F* m_pix_ecc_residualy_fine; + TH1F* m_pix_b_residualx{}; + TH1F* m_pix_b_residualy{}; + TH1F* m_pix_b_residualx_fine{}; + TH1F* m_pix_b_residualy_fine{}; + TH1F* m_pix_b_biased_residualx{}; + TH1F* m_pix_b_biased_residualy{}; + TH1F* m_pix_eca_residualx{}; + TH1F* m_pix_eca_residualy{}; + TH1F* m_pix_ecc_residualx{}; + TH1F* m_pix_ecc_residualy{}; + TH1F* m_pix_eca_residualx_fine{}; + TH1F* m_pix_eca_residualy_fine{}; + TH1F* m_pix_ecc_residualx_fine{}; + TH1F* m_pix_ecc_residualy_fine{}; - TH1F* m_pix_eca_pullx; - TH1F* m_pix_eca_pully; - TH1F* m_pix_ecc_pullx; - TH1F* m_pix_ecc_pully; + TH1F* m_pix_eca_pullx{}; + TH1F* m_pix_eca_pully{}; + TH1F* m_pix_ecc_pullx{}; + TH1F* m_pix_ecc_pully{}; - TProfile* m_pix_bec_Oxresx_mean; - TProfile* m_pix_bec_Oyresx_mean; - TProfile* m_pix_bec_Oxresy_mean; - TProfile* m_pix_bec_Oyresy_mean; - TProfile* m_pix_bec_Oxresx_rms; - TProfile* m_pix_bec_Oyresx_rms; - TProfile* m_pix_bec_Oxresy_rms; - TProfile* m_pix_bec_Oyresy_rms; + TProfile* m_pix_bec_Oxresx_mean{}; + TProfile* m_pix_bec_Oyresx_mean{}; + TProfile* m_pix_bec_Oxresy_mean{}; + TProfile* m_pix_bec_Oyresy_mean{}; + TProfile* m_pix_bec_Oxresx_rms{}; + TProfile* m_pix_bec_Oyresx_rms{}; + TProfile* m_pix_bec_Oxresy_rms{}; + TProfile* m_pix_bec_Oyresy_rms{}; - TH1F* m_pix_b_xresvsmodeta; - TH1F* m_pix_b_xresvsmodphi; - TH1F* m_pix_b_yresvsmodeta; - TH1F* m_pix_b_yresvsmodphi; - TH1F* m_pix_eca_xresvsmodphi; - TH1F* m_pix_ecc_xresvsmodphi; - TH1F* m_pix_eca_yresvsmodphi; - TH1F* m_pix_ecc_yresvsmodphi; + TH1F* m_pix_b_xresvsmodeta{}; + TH1F* m_pix_b_xresvsmodphi{}; + TH1F* m_pix_b_yresvsmodeta{}; + TH1F* m_pix_b_yresvsmodphi{}; + TH1F* m_pix_eca_xresvsmodphi{}; + TH1F* m_pix_ecc_xresvsmodphi{}; + TH1F* m_pix_eca_yresvsmodphi{}; + TH1F* m_pix_ecc_yresvsmodphi{}; - TH2F* m_pix_b_biased_residualx_pt; - TH2F* m_pix_b_biased_residualy_pt ; - TH1F* m_pix_eca_biased_residualx ; - TH1F* m_pix_eca_biased_residualy ; - TH2F* m_pix_eca_biased_residualx_pt; - TH2F* m_pix_eca_biased_residualy_pt; - TH1F* m_pix_ecc_biased_residualx ; - TH1F* m_pix_ecc_biased_residualy ; - TH2F* m_pix_ecc_biased_residualx_pt; - TH2F* m_pix_ecc_biased_residualy_pt; + TH2F* m_pix_b_biased_residualx_pt{}; + TH2F* m_pix_b_biased_residualy_pt{} ; + TH1F* m_pix_eca_biased_residualx{} ; + TH1F* m_pix_eca_biased_residualy{} ; + TH2F* m_pix_eca_biased_residualx_pt{}; + TH2F* m_pix_eca_biased_residualy_pt{}; + TH1F* m_pix_ecc_biased_residualx{} ; + TH1F* m_pix_ecc_biased_residualy{} ; + TH2F* m_pix_ecc_biased_residualx_pt{}; + TH2F* m_pix_ecc_biased_residualy_pt{}; @@ -660,28 +659,28 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase - TH2F* m_pix_eca_xresvsmodphi_2d; - TH2F* m_pix_ecc_xresvsmodphi_2d; - TH2F* m_pix_eca_yresvsmodphi_2d; - TH2F* m_pix_ecc_yresvsmodphi_2d; + TH2F* m_pix_eca_xresvsmodphi_2d{}; + TH2F* m_pix_ecc_xresvsmodphi_2d{}; + TH2F* m_pix_eca_yresvsmodphi_2d{}; + TH2F* m_pix_ecc_yresvsmodphi_2d{}; - TProfile* m_pix_b_Oxresxvsmodeta; - TProfile* m_pix_b_Oxresxvsmodphi; - TProfile* m_pix_b_Oyresyvsmodeta; - TProfile* m_pix_b_Oyresyvsmodphi; - TProfile* m_pix_eca_Oxresxvsmodphi; - TProfile* m_pix_ecc_Oxresxvsmodphi; - TProfile* m_pix_eca_Oyresyvsmodphi; - TProfile* m_pix_ecc_Oyresyvsmodphi; + TProfile* m_pix_b_Oxresxvsmodeta{}; + TProfile* m_pix_b_Oxresxvsmodphi{}; + TProfile* m_pix_b_Oyresyvsmodeta{}; + TProfile* m_pix_b_Oyresyvsmodphi{}; + TProfile* m_pix_eca_Oxresxvsmodphi{}; + TProfile* m_pix_ecc_Oxresxvsmodphi{}; + TProfile* m_pix_eca_Oyresyvsmodphi{}; + TProfile* m_pix_ecc_Oyresyvsmodphi{}; std::vector<TProfile*> m_pix_eca_unbiased_xresvsmodphi_disks; std::vector<TProfile*> m_pix_eca_unbiased_yresvsmodphi_disks; std::vector<TProfile*> m_pix_ecc_unbiased_xresvsmodphi_disks; std::vector<TProfile*> m_pix_ecc_unbiased_yresvsmodphi_disks; - TProfile* m_pix_eca_unbiased_xresvsmodphi; - TProfile* m_pix_eca_unbiased_yresvsmodphi; - TProfile* m_pix_ecc_unbiased_xresvsmodphi; - TProfile* m_pix_ecc_unbiased_yresvsmodphi; + TProfile* m_pix_eca_unbiased_xresvsmodphi{}; + TProfile* m_pix_eca_unbiased_yresvsmodphi{}; + TProfile* m_pix_ecc_unbiased_xresvsmodphi{}; + TProfile* m_pix_ecc_unbiased_yresvsmodphi{}; std::vector<TH1F*> m_pix_b_biasedresidualsx; std::vector<TH1F*> m_pix_b_biasedresidualsy; @@ -719,39 +718,39 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase std::vector<TH2F*> m_pix_ecc_biased_yresvsmodphi_2ds; //SCT histograms - TH1F* m_sct_b_residualx; - TH1F* m_sct_b_residualx_fine; - TH1F* m_sct_b_biasedresidualx; - TH1F* m_sct_eca_residualx; - TH1F* m_sct_ecc_residualx; - TH1F* m_sct_eca_residualx_fine; - TH1F* m_sct_ecc_residualx_fine; + TH1F* m_sct_b_residualx{}; + TH1F* m_sct_b_residualx_fine{}; + TH1F* m_sct_b_biasedresidualx{}; + TH1F* m_sct_eca_residualx{}; + TH1F* m_sct_ecc_residualx{}; + TH1F* m_sct_eca_residualx_fine{}; + TH1F* m_sct_ecc_residualx_fine{}; - TH1F* m_sct_eca_pullx; - TH1F* m_sct_ecc_pullx; + TH1F* m_sct_eca_pullx{}; + TH1F* m_sct_ecc_pullx{}; - TProfile* m_sct_bec_Oxresx_mean; - TProfile* m_sct_bec_Oyresx_mean; - TProfile* m_sct_bec_Oxresx_rms; - TProfile* m_sct_bec_Oyresx_rms; + TProfile* m_sct_bec_Oxresx_mean{}; + TProfile* m_sct_bec_Oyresx_mean{}; + TProfile* m_sct_bec_Oxresx_rms{}; + TProfile* m_sct_bec_Oyresx_rms{}; - TH2F* m_sct_eca_xresvsmodphi_2d; - TH2F* m_sct_ecc_xresvsmodphi_2d; + TH2F* m_sct_eca_xresvsmodphi_2d{}; + TH2F* m_sct_ecc_xresvsmodphi_2d{}; - TH1F* m_sct_b_xresvsmodeta; - TH1F* m_sct_b_xresvsmodphi; - TH1F* m_sct_eca_xresvsmodphi; - TH1F* m_sct_ecc_xresvsmodphi; + TH1F* m_sct_b_xresvsmodeta{}; + TH1F* m_sct_b_xresvsmodphi{}; + TH1F* m_sct_eca_xresvsmodphi{}; + TH1F* m_sct_ecc_xresvsmodphi{}; - TProfile* m_sct_b_Oxresxvsmodeta; - TProfile* m_sct_b_Oxresxvsmodphi; - TProfile* m_sct_b_Oyresxvsmodeta; - TProfile* m_sct_b_Oyresxvsmodphi; - TProfile* m_sct_eca_Oxresxvsmodphi; - TProfile* m_sct_ecc_Oxresxvsmodphi; + TProfile* m_sct_b_Oxresxvsmodeta{}; + TProfile* m_sct_b_Oxresxvsmodphi{}; + TProfile* m_sct_b_Oyresxvsmodeta{}; + TProfile* m_sct_b_Oyresxvsmodphi{}; + TProfile* m_sct_eca_Oxresxvsmodphi{}; + TProfile* m_sct_ecc_Oxresxvsmodphi{}; @@ -760,105 +759,105 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase // Pixel unbiased residuals vs pt - TH2F* m_pix_b_residualx_pt; - TH2F* m_pix_b_residualy_pt; - TH2F* m_pix_eca_residualx_pt; - TH2F* m_pix_eca_residualy_pt; - TH2F* m_pix_ecc_residualx_pt; - TH2F* m_pix_ecc_residualy_pt; + TH2F* m_pix_b_residualx_pt{}; + TH2F* m_pix_b_residualy_pt{}; + TH2F* m_pix_eca_residualx_pt{}; + TH2F* m_pix_eca_residualy_pt{}; + TH2F* m_pix_ecc_residualx_pt{}; + TH2F* m_pix_ecc_residualy_pt{}; - TH1F* m_sct_b_biased_residualx; + TH1F* m_sct_b_biased_residualx{}; - TH2F* m_sct_b_biased_residualx_pt; + TH2F* m_sct_b_biased_residualx_pt{}; - TH2F* m_sct_b_residualx_pt; + TH2F* m_sct_b_residualx_pt{}; - TH2F* m_sct_b_biased_residualx_qoverp2; + TH2F* m_sct_b_biased_residualx_qoverp2{}; - TH2F* m_sct_b_unbiased_residualx_qoverp2; + TH2F* m_sct_b_unbiased_residualx_qoverp2{}; - TH1F* m_sct_eca_biased_residualx; - TH1F* m_sct_eca_biased_residualy; - TH1F* m_sct_ecc_biased_residualx; - TH1F* m_sct_ecc_biased_residualy; + TH1F* m_sct_eca_biased_residualx{}; + TH1F* m_sct_eca_biased_residualy{}; + TH1F* m_sct_ecc_biased_residualx{}; + TH1F* m_sct_ecc_biased_residualy{}; - TH2F* m_sct_eca_biased_residualx_pt; - TH2F* m_sct_ecc_biased_residualx_pt; + TH2F* m_sct_eca_biased_residualx_pt{}; + TH2F* m_sct_ecc_biased_residualx_pt{}; - TH2F* m_sct_eca_residualx_pt; - TH2F* m_sct_ecc_residualx_pt; + TH2F* m_sct_eca_residualx_pt{}; + TH2F* m_sct_ecc_residualx_pt{}; - TH2F* m_sct_eca_biased_residualx_qoverp2; - TH2F* m_sct_ecc_biased_residualx_qoverp2; + TH2F* m_sct_eca_biased_residualx_qoverp2{}; + TH2F* m_sct_ecc_biased_residualx_qoverp2{}; - TH2F* m_sct_eca_unbiased_residualx_qoverp2; - TH2F* m_sct_ecc_unbiased_residualx_qoverp2; + TH2F* m_sct_eca_unbiased_residualx_qoverp2{}; + TH2F* m_sct_ecc_unbiased_residualx_qoverp2{}; // Local positions (extrapolated) - TH1F* m_pix_b_extrapolated_localx; - TH1F* m_pix_b_extrapolated_localy; - TH1F* m_sct_b_extrapolated_st_localx; - TH1F* m_sct_b_extrapolated_st_localy; - TH1F* m_sct_b_extrapolated_nst_localx; - TH1F* m_sct_b_extrapolated_nst_localy; + TH1F* m_pix_b_extrapolated_localx{}; + TH1F* m_pix_b_extrapolated_localy{}; + TH1F* m_sct_b_extrapolated_st_localx{}; + TH1F* m_sct_b_extrapolated_st_localy{}; + TH1F* m_sct_b_extrapolated_nst_localx{}; + TH1F* m_sct_b_extrapolated_nst_localy{}; // Local positions (mesasured) - TH1F* m_pix_b_measured_localx; - TH1F* m_pix_b_measured_localy; - TH1F* m_sct_b_measured_st_localx; - TH1F* m_sct_b_measured_st_localy; - TH1F* m_sct_b_measured_nst_localx; - TH1F* m_sct_b_measured_nst_localy; + TH1F* m_pix_b_measured_localx{}; + TH1F* m_pix_b_measured_localy{}; + TH1F* m_sct_b_measured_st_localx{}; + TH1F* m_sct_b_measured_st_localy{}; + TH1F* m_sct_b_measured_nst_localx{}; + TH1F* m_sct_b_measured_nst_localy{}; // Hit errors - TH1F* m_hiterror_sct_b; - TH1F* m_hiterror_sct_ec; - TH1F* m_hiterror_sct_b_WideRange; - TH1F* m_hiterror_sct_ec_WideRange; + TH1F* m_hiterror_sct_b{}; + TH1F* m_hiterror_sct_ec{}; + TH1F* m_hiterror_sct_b_WideRange{}; + TH1F* m_hiterror_sct_ec_WideRange{}; - TH1F* m_hiterror_x_pix_b; - TH1F* m_hiterror_x_pix_ec; - TH1F* m_hiterror_y_pix_b; - TH1F* m_hiterror_y_pix_ec; + TH1F* m_hiterror_x_pix_b{}; + TH1F* m_hiterror_x_pix_ec{}; + TH1F* m_hiterror_y_pix_b{}; + TH1F* m_hiterror_y_pix_ec{}; - TH1F* m_hiterror_x_pix_b_WideRange; - TH1F* m_hiterror_x_pix_ec_WideRange; - TH1F* m_hiterror_y_pix_b_WideRange; - TH1F* m_hiterror_y_pix_ec_WideRange; + TH1F* m_hiterror_x_pix_b_WideRange{}; + TH1F* m_hiterror_x_pix_ec_WideRange{}; + TH1F* m_hiterror_y_pix_b_WideRange{}; + TH1F* m_hiterror_y_pix_ec_WideRange{}; - TH1F* m_hiterror_x_ibl_b; - TH1F* m_hiterror_x_ibl_ec; - TH1F* m_hiterror_y_ibl_b; - TH1F* m_hiterror_y_ibl_ec; + TH1F* m_hiterror_x_ibl_b{}; + TH1F* m_hiterror_x_ibl_ec{}; + TH1F* m_hiterror_y_ibl_b{}; + TH1F* m_hiterror_y_ibl_ec{}; - TH1F* m_hiterror_x_ibl_b_WideRange; - TH1F* m_hiterror_x_ibl_ec_WideRange; - TH1F* m_hiterror_y_ibl_b_WideRange; - TH1F* m_hiterror_y_ibl_ec_WideRange; + TH1F* m_hiterror_x_ibl_b_WideRange{}; + TH1F* m_hiterror_x_ibl_ec_WideRange{}; + TH1F* m_hiterror_y_ibl_b_WideRange{}; + TH1F* m_hiterror_y_ibl_ec_WideRange{}; // Pulls vs pt // Pixel - TH2F* m_pix_b_pullx_pt; - TH2F* m_pix_b_pully_pt; - TH2F* m_pix_eca_pullx_pt; - TH2F* m_pix_eca_pully_pt; - TH2F* m_pix_ecc_pullx_pt; - TH2F* m_pix_ecc_pully_pt; + TH2F* m_pix_b_pullx_pt{}; + TH2F* m_pix_b_pully_pt{}; + TH2F* m_pix_eca_pullx_pt{}; + TH2F* m_pix_eca_pully_pt{}; + TH2F* m_pix_ecc_pullx_pt{}; + TH2F* m_pix_ecc_pully_pt{}; @@ -869,26 +868,26 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase /* Barrel //======================= */ struct TRTBarrelHistograms; - TRTBarrelHistograms* m_trt_b_hist; + TRTBarrelHistograms* m_trt_b_hist{}; /** TRT EndCap //======================= */ struct TRTEndcapHistograms; - TRTEndcapHistograms* m_trt_ec_hist; + TRTEndcapHistograms* m_trt_ec_hist{}; // Weight for histograms - bool m_applyHistWeight; - std::string m_hWeightInFileName; - TFile* m_hWeightInFile; - TH2F* m_etapTWeight; - std::string m_hWeightHistName; + bool m_applyHistWeight{}; + std::string m_hWeightInFileName{}; + TFile* m_hWeightInFile{}; + TH2F* m_etapTWeight{}; + std::string m_hWeightHistName{}; //I don't like an itialisation here. float m_z_axis[20] = {-322.8975, -301.7925, -280.6875,-259.5825,-228.2775,-186.7725,-145.2675,-103.7625,-62.2575,-20.7525,20.7525,62.2575,103.7625,145.2675,186.7725,228.2775,259.5825,280.6875,301.7925,322.8975}; - float m_z_fix; - int m_minIBLhits; - bool m_doIBLLBPlots; + float m_z_fix{}; + int m_minIBLhits{}; + bool m_doIBLLBPlots{}; }; #endif diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.cxx index e9ba58f8be48b7f2be001d0495a4054e9f0f3761..82f2e6209f9788e313b142947ac3a76c1186cd28 100644 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.cxx +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.cxx @@ -18,7 +18,6 @@ #include "IDAlignMonTrackSegments.h" #include "TrkTrackSummary/TrackSummary.h" #include "TrkTrack/TrackCollection.h" -//#include "TrkToolInterfaces/ITrackSummaryTool.h" #include "InDetTrackSplitterTool/IInDetTrackSplitterTool.h" #include "TrackSelectionTool.h" #include <iostream> @@ -133,6 +132,7 @@ IDAlignMonTrackSegments::IDAlignMonTrackSegments( const std::string & type, cons declareProperty("trackSumTool", m_trackSumTool); m_histosBooked = 0; + m_events=0; } //--------------------------------------------------------------------------------------- @@ -607,26 +607,26 @@ StatusCode IDAlignMonTrackSegments::fillHistograms() if(!evtStore()->contains<TrackCollection>(m_upperTracksName)){ if(m_events == 1) { - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Unable to get " << m_upperTracksName << " TrackCollections" << endmsg; - }else if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Unable to get " << m_upperTracksName << " TrackCollections" << endmsg; + ATH_MSG_WARNING( "Unable to get " << m_upperTracksName << " TrackCollections" ); + }else ATH_MSG_DEBUG( "Unable to get " << m_upperTracksName << " TrackCollections" ); return StatusCode::SUCCESS; } if (!evtStore()->contains<TrackCollection>(m_lowerTracksName)){ if(m_events == 1) { - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Unable to get " << m_lowerTracksName << " TrackCollections" << endmsg; - }else if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Unable to get " << m_lowerTracksName << " TrackCollections" << endmsg; + ATH_MSG_WARNING( "Unable to get " << m_lowerTracksName << " TrackCollections" ); + }else ATH_MSG_DEBUG( "Unable to get " << m_lowerTracksName << " TrackCollections" ); return StatusCode::SUCCESS; } tracksUpper = m_trackSelectionUpper->selectTracks(m_upperTracksName); if (!tracksUpper) { - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "TrackCollection with name "<<m_upperTracksName<<" is NULL" << endmsg; + ATH_MSG_DEBUG( "TrackCollection with name "<<m_upperTracksName<<" is NULL" ); } tracksLower = m_trackSelectionLower->selectTracks(m_lowerTracksName); if (!tracksLower) { - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "TrackCollection with name "<<m_lowerTracksName<<" is NULL" << endmsg; + ATH_MSG_DEBUG( "TrackCollection with name "<<m_lowerTracksName<<" is NULL" ); } }else{ @@ -634,8 +634,8 @@ StatusCode IDAlignMonTrackSegments::fillHistograms() //We only need the inputTracks if we're splitting them ourselves if (!evtStore()->contains<TrackCollection>(m_inputTracksName)){ if(m_events == 1){ - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Unable to get " << m_inputTracksName << " TrackCollections" << endmsg; - }else if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Unable to get " << m_inputTracksName << " TrackCollections" << endmsg; + ATH_MSG_WARNING( "Unable to get " << m_inputTracksName << " TrackCollections" ); + }else ATH_MSG_DEBUG( "Unable to get " << m_inputTracksName << " TrackCollections"); return StatusCode::SUCCESS; } @@ -664,14 +664,14 @@ StatusCode IDAlignMonTrackSegments::fillHistograms() //Get the Upper Tracks tracksUpper = m_trackSelectionUpper->selectTracks(m_upperTracksName); if (!tracksUpper) { - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "TrackCollection with name "<<m_upperTracksName<<" is NULL" << endmsg; + ATH_MSG_INFO( "TrackCollection with name "<<m_upperTracksName<<" is NULL" ); } //Get the Lower Tracks tracksLower = m_trackSelectionLower->selectTracks(m_lowerTracksName); if (!tracksLower) { - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "TrackCollection with name "<<m_lowerTracksName<<" is NULL" << endmsg; + ATH_MSG_INFO( "TrackCollection with name "<<m_lowerTracksName<<" is NULL" ); } @@ -683,9 +683,13 @@ StatusCode IDAlignMonTrackSegments::fillHistograms() // << " lower track collection = "<< m_lowerTracksName << " size: " << tracksLower->size() // << std::endl; //} - - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Retrieved "<< tracksUpper->size() <<" Upper Tracks." << endmsg; - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Retrieved "<< tracksLower->size() <<" Lower Tracks from Track from StoreGate" << endmsg; + //at this point, tracksUpper and tracksLower must have sensible values + if ((not tracksUpper) or (not tracksLower)){ + ATH_MSG_ERROR("Upper or Lower tracks pointer is null, must terminate!"); + return StatusCode::FAILURE; + } + ATH_MSG_DEBUG( "Retrieved "<< tracksUpper->size() <<" Upper Tracks." ); + ATH_MSG_DEBUG( "Retrieved "<< tracksLower->size() <<" Lower Tracks from Track from StoreGate" ); //=============================================================== // Filling the upper and lower tracks and their differences diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTruthComparison.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTruthComparison.cxx index df33fee34d9ae672e71fe262cbeff8c92cc51c82..63ee2b785ccd64f3dca19bf670089f337b8486e6 100755 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTruthComparison.cxx +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTruthComparison.cxx @@ -8,7 +8,7 @@ // ********************************************************************** #include <sstream> -#include <math.h> +#include <cmath> #include "TH1.h" #include "TH2.h" #include "TProfile.h" @@ -18,17 +18,8 @@ #include "GaudiKernel/IJobOptionsSvc.h" #include "GaudiKernel/MsgStream.h" -//#include "HepPDT/ParticleData.hh" #include "HepMC/GenParticle.h" -//#include "IdDictDetDescr/IdDictManager.h" -// #include "InDetIdentifier/PixelID.h" -// #include "InDetIdentifier/SCT_ID.h" -// #include "InDetIdentifier/TRT_ID.h" -// #include "InDetReadoutGeometry/PixelDetectorManager.h" -// #include "InDetReadoutGeometry/SCT_DetectorManager.h" -// #include "InDetReadoutGeometry/TRT_DetectorManager.h" - #include "TrkTrack/TrackCollection.h" #include "TrkTruthData/TrackTruth.h" #include "TrkTruthData/TrackTruthCollection.h" @@ -36,22 +27,11 @@ #include "InDetPrepRawData/SiCluster.h" -//#include "Particle/TrackParticleContainer.h" -//#include "Particle/TrackParticle.h" - #include "TrkEventPrimitives/FitQuality.h" #include "TrkEventPrimitives/LocalParameters.h" -// #include "VxVertex/VxContainer.h" -// #include "VxVertex/VxCandidate.h" -// #include "VxVertex/RecVertex.h" -// #include "VxVertex/Vertex.h" -// #include "VxVertex/VxTrackAtVertex.h" - -//#include "AthenaMonitoring/AthenaMonManager.h" #include "IDAlignMonTruthComparison.h" -//#include "TrkTruthToTrack/TruthToTrack.h" #include "TrkToolInterfaces/ITruthToTrack.h" #include "TrackSelectionTool.h" @@ -119,8 +99,6 @@ StatusCode IDAlignMonTruthComparison::bookHistograms() std::string outputDirName = "IDAlignMon/" + m_tracksName + "_NoTriggerSelection/TruthComparison"; MonGroup al_mon ( this, outputDirName, run ); - //if ( newLowStatFlag() ) { } - //if ( newLumiBlockFlag() ) { } if( newRunFlag() ) { // increase d0 and z0 range for cosmics @@ -457,9 +435,6 @@ StatusCode IDAlignMonTruthComparison::fillHistograms() if(genparptr->pdg_id() == 0){ msg(MSG::WARNING) <<" Particle with PDG ID = 0! Status "<<endmsg; - //msg(MSG::WARNING) <<" Particle with PDG ID = 0! Status "<<genparptr->status()<<" mass "<< genparptr->momentum().m() <<" pt "<<genparptr->momentum().et()<<" eta " - // <<genparptr->momentum().eta()<<" phi "<<genparptr->momentum().phi()<<" Gen Vertex barcode "<<genparptr->production_vertex()->barcode()<<"Gen Vertex Position x" - // <<genparptr->production_vertex()->position().x()<< " y "<<genparptr->production_vertex()->position().y()<<" z "<<genparptr->production_vertex()->position().z()<<endmsg; }else{ const Trk::TrackParameters* generatedTrackPerigee = m_truthToTrack->makePerigeeParameters(genparptr); diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTruthComparison.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTruthComparison.h index cfbc44c2fc478cf3eb33a0c10948e920f6348609..943267007c1023f8e301c39fe23d42db589e40b2 100755 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTruthComparison.h +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTruthComparison.h @@ -10,7 +10,6 @@ // AUTHORS: Beate Heinemann, Tobias Golling // ********************************************************************** -#include <vector> #include "GaudiKernel/StatusCode.h" #include "AthenaMonitoring/AthenaMonManager.h" @@ -49,101 +48,101 @@ public: protected: - TH1F* m_truthpT; - TH1F* m_truthphi; - TH1F* m_trutheta; - - TH1F* m_dqopt_barrel; - TH1F* m_deta_barrel; - TH1F* m_dphi_barrel; - TProfile* m_dphi_barrel_vs_phi; - TH1F* m_dz0_barrel; - TH1F* m_dd0_barrel; - - TH1F* m_dqopt_eca; - TH1F* m_deta_eca; - TH1F* m_dphi_eca; - TH1F* m_dz0_eca; - TH1F* m_dd0_eca; - - TH1F* m_dqopt_ecc; - TH1F* m_deta_ecc; - TH1F* m_dphi_ecc; - TH1F* m_dz0_ecc; - TH1F* m_dd0_ecc; - - TH2F* m_Deta_vs_eta; - TProfile* m_dphi_vs_eta; - TH1F* m_deta_vs_eta_1; - TH1F* m_deta_vs_eta_2; - TH1F* m_deta_vs_eta_chi2; - - TProfile* m_dpt_vs_truthpt_barrel; - TH2F* m_Dqopt_vs_pt_barrel; - TH1F* m_dqopt_vs_pt_barrel_1; - TH1F* m_dqopt_vs_pt_barrel_2; - TH1F* m_dqopt_vs_pt_barrel_chi2; - - TProfile* m_dpt_vs_truthpt_eca; - TH2F* m_Dqopt_vs_pt_eca; - TH1F* m_dqopt_vs_pt_eca_1; - TH1F* m_dqopt_vs_pt_eca_2; - TH1F* m_dqopt_vs_pt_eca_chi2; - - TProfile* m_dpt_vs_truthpt_ecc; - TH2F* m_Dqopt_vs_pt_ecc; - TH1F* m_dqopt_vs_pt_ecc_1; - TH1F* m_dqopt_vs_pt_ecc_2; - TH1F* m_dqopt_vs_pt_ecc_chi2; - - TH2F* m_Dqopt_vs_eta_highpt; - TH1F* m_dqopt_vs_eta_highpt_1; - TH1F* m_dqopt_vs_eta_highpt_2; - TH1F* m_dqopt_vs_eta_highpt_chi2; - - TH2F* m_Dqopt_vs_eta_lowpt; - TH1F* m_dqopt_vs_eta_lowpt_1; - TH1F* m_dqopt_vs_eta_lowpt_2; + TH1F* m_truthpT{}; + TH1F* m_truthphi{}; + TH1F* m_trutheta{}; + + TH1F* m_dqopt_barrel{}; + TH1F* m_deta_barrel{}; + TH1F* m_dphi_barrel{}; + TProfile* m_dphi_barrel_vs_phi{}; + TH1F* m_dz0_barrel{}; + TH1F* m_dd0_barrel{}; + + TH1F* m_dqopt_eca{}; + TH1F* m_deta_eca{}; + TH1F* m_dphi_eca{}; + TH1F* m_dz0_eca{}; + TH1F* m_dd0_eca{}; + + TH1F* m_dqopt_ecc{}; + TH1F* m_deta_ecc{}; + TH1F* m_dphi_ecc{}; + TH1F* m_dz0_ecc{}; + TH1F* m_dd0_ecc{}; + + TH2F* m_Deta_vs_eta{}; + TProfile* m_dphi_vs_eta{}; + TH1F* m_deta_vs_eta_1{}; + TH1F* m_deta_vs_eta_2{}; + TH1F* m_deta_vs_eta_chi2{}; + + TProfile* m_dpt_vs_truthpt_barrel{}; + TH2F* m_Dqopt_vs_pt_barrel{}; + TH1F* m_dqopt_vs_pt_barrel_1{}; + TH1F* m_dqopt_vs_pt_barrel_2{}; + TH1F* m_dqopt_vs_pt_barrel_chi2{}; + + TProfile* m_dpt_vs_truthpt_eca{}; + TH2F* m_Dqopt_vs_pt_eca{}; + TH1F* m_dqopt_vs_pt_eca_1{}; + TH1F* m_dqopt_vs_pt_eca_2{}; + TH1F* m_dqopt_vs_pt_eca_chi2{}; + + TProfile* m_dpt_vs_truthpt_ecc{}; + TH2F* m_Dqopt_vs_pt_ecc{}; + TH1F* m_dqopt_vs_pt_ecc_1{}; + TH1F* m_dqopt_vs_pt_ecc_2{}; + TH1F* m_dqopt_vs_pt_ecc_chi2{}; + + TH2F* m_Dqopt_vs_eta_highpt{}; + TH1F* m_dqopt_vs_eta_highpt_1{}; + TH1F* m_dqopt_vs_eta_highpt_2{}; + TH1F* m_dqopt_vs_eta_highpt_chi2{}; + + TH2F* m_Dqopt_vs_eta_lowpt{}; + TH1F* m_dqopt_vs_eta_lowpt_1{}; + TH1F* m_dqopt_vs_eta_lowpt_2{}; TH1F* m_dqopt_vs_eta_lowpt_chi2; - TH2F* m_Dqopt_vs_phi_highpt_barrel; - TH1F* m_dqopt_vs_phi_highpt_barrel_1; - TH1F* m_dqopt_vs_phi_highpt_barrel_2; - TH1F* m_dqopt_vs_phi_highpt_barrel_chi2; + TH2F* m_Dqopt_vs_phi_highpt_barrel{}; + TH1F* m_dqopt_vs_phi_highpt_barrel_1{}; + TH1F* m_dqopt_vs_phi_highpt_barrel_2{}; + TH1F* m_dqopt_vs_phi_highpt_barrel_chi2{}; TH2F* m_Dqopt_vs_phi_highpt_eca; TH1F* m_dqopt_vs_phi_highpt_eca_1; TH1F* m_dqopt_vs_phi_highpt_eca_2; TH1F* m_dqopt_vs_phi_highpt_eca_chi2; - TH2F* m_Dqopt_vs_phi_highpt_ecc; - TH1F* m_dqopt_vs_phi_highpt_ecc_1; - TH1F* m_dqopt_vs_phi_highpt_ecc_2; - TH1F* m_dqopt_vs_phi_highpt_ecc_chi2; - - TH2F* m_Dqopt_vs_phi_lowpt_barrel; - TH1F* m_dqopt_vs_phi_lowpt_barrel_1; - TH1F* m_dqopt_vs_phi_lowpt_barrel_2; - TH1F* m_dqopt_vs_phi_lowpt_barrel_chi2; - - TH2F* m_Dqopt_vs_phi_lowpt_eca; - TH1F* m_dqopt_vs_phi_lowpt_eca_1; - TH1F* m_dqopt_vs_phi_lowpt_eca_2; - TH1F* m_dqopt_vs_phi_lowpt_eca_chi2; - - TH2F* m_Dqopt_vs_phi_lowpt_ecc; - TH1F* m_dqopt_vs_phi_lowpt_ecc_1; - TH1F* m_dqopt_vs_phi_lowpt_ecc_2; - TH1F* m_dqopt_vs_phi_lowpt_ecc_chi2; - - TH1F* m_Zmumu; - TH1F* m_Zmumu_truth; - TH1F* m_dZmumu; - TH1F* m_dZmumu_barrel; - TH1F* m_dZmumu_barrel_eca; - TH1F* m_dZmumu_barrel_ecc; - TH1F* m_dZmumu_ecc; - TH1F* m_dZmumu_eca; + TH2F* m_Dqopt_vs_phi_highpt_ecc{}; + TH1F* m_dqopt_vs_phi_highpt_ecc_1{}; + TH1F* m_dqopt_vs_phi_highpt_ecc_2{}; + TH1F* m_dqopt_vs_phi_highpt_ecc_chi2{}; + + TH2F* m_Dqopt_vs_phi_lowpt_barrel{}; + TH1F* m_dqopt_vs_phi_lowpt_barrel_1{}; + TH1F* m_dqopt_vs_phi_lowpt_barrel_2{}; + TH1F* m_dqopt_vs_phi_lowpt_barrel_chi2{}; + + TH2F* m_Dqopt_vs_phi_lowpt_eca{}; + TH1F* m_dqopt_vs_phi_lowpt_eca_1{}; + TH1F* m_dqopt_vs_phi_lowpt_eca_2{}; + TH1F* m_dqopt_vs_phi_lowpt_eca_chi2{}; + + TH2F* m_Dqopt_vs_phi_lowpt_ecc{}; + TH1F* m_dqopt_vs_phi_lowpt_ecc_1{}; + TH1F* m_dqopt_vs_phi_lowpt_ecc_2{}; + TH1F* m_dqopt_vs_phi_lowpt_ecc_chi2{}; + + TH1F* m_Zmumu{}; + TH1F* m_Zmumu_truth{}; + TH1F* m_dZmumu{}; + TH1F* m_dZmumu_barrel{}; + TH1F* m_dZmumu_barrel_eca{}; + TH1F* m_dZmumu_barrel_ecc{}; + TH1F* m_dZmumu_ecc{}; + TH1F* m_dZmumu_eca{}; private: diff --git a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Ele100IDPRTT.sh b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Ele100IDPRTT.sh index 0ab0015bfe69b307e4fe7465a32eb2e3bbad85b2..8f79c32f6d78b18e63b0c3b081b86c6d4560234c 100755 --- a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Ele100IDPRTT.sh +++ b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Ele100IDPRTT.sh @@ -8,6 +8,7 @@ # art-output: *.root # art-output: *.xml # art-output: dcube +# art-output: *.png fileList="['${ArtInFile//,/', '}']" echo "List of files = ", $fileList @@ -27,5 +28,6 @@ dcubeRef="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/ bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName InDetStandardPlots.root $dcubeXml $dcubeRef echo "art-result: $? plot" - - +plotmacro="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/scripts/makeplots.C" +root -b -q $plotmacro +echo "art-result: $? root" diff --git a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Ele1IDPRTT.sh b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Ele1IDPRTT.sh index 768c2455faf40c1405fa9e4aa3ee8c89956c0679..53a33fdd7ad07f1a890ae8066770e1164d97db6d 100755 --- a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Ele1IDPRTT.sh +++ b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Ele1IDPRTT.sh @@ -8,6 +8,7 @@ # art-output: *.root # art-output: *.xml # art-output: dcube +# art-output: *.png fileList="['${ArtInFile//,/', '}']" echo "List of files = ", $fileList @@ -26,3 +27,6 @@ dcubeRef="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/ bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName InDetStandardPlots.root $dcubeXml $dcubeRef echo "art-result: $? plot" +plotmacro="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/scripts/makeplots.C" +root -b -q $plotmacro +echo "art-result: $? root" diff --git a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_MinBiasIDPRTT.sh b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_MinBiasIDPRTT.sh index 3c6021bd1a338257fc35686df013f2ffb44973ca..d08160d0a7fdfe2e9020373a30af7a65ef57e9dc 100755 --- a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_MinBiasIDPRTT.sh +++ b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_MinBiasIDPRTT.sh @@ -8,6 +8,7 @@ # art-output: *.root # art-output: *.xml # art-output: dcube +# art-output: *.png fileList="['${ArtInFile//,/', '}']" echo "List of files = ", $fileList @@ -27,3 +28,6 @@ dcubeRef="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/ bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName InDetStandardPlots.root $dcubeXml $dcubeRef echo "art-result: $? plot" +plotmacro="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/scripts/makeplots.C" +root -b -q $plotmacro +echo "art-result: $? root" diff --git a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Mu100IDPRTT.sh b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Mu100IDPRTT.sh index 9f6d0e350f6b10eabeea43500f98f43c0dc23e14..e70619c2b8819cc9b335d51f33a47570b2f1b472 100755 --- a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Mu100IDPRTT.sh +++ b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Mu100IDPRTT.sh @@ -8,6 +8,7 @@ # art-output: *.root # art-output: *.xml # art-output: dcube +# art-output: *.png fileList="['${ArtInFile//,/', '}']" echo "List of files = ", $fileList @@ -27,3 +28,7 @@ dcubeRef="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/ bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName InDetStandardPlots.root $dcubeXml $dcubeRef echo "art-result: $? plot" +plotmacro="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/scripts/makeplots.C" +root -b -q $plotmacro +echo "art-result: $? root" + diff --git a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Pi100IDPRTT.sh b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Pi100IDPRTT.sh index c9be97010da1af9e24a04d49658defd9265c67ba..6e9e30f1d89ac587ded839fac4237ebbc8e59a66 100755 --- a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Pi100IDPRTT.sh +++ b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Pi100IDPRTT.sh @@ -8,6 +8,7 @@ # art-output: *.root # art-output: *.xml # art-output: dcube +# art-output: *.png fileList="['${ArtInFile//,/', '}']" echo "List of files = ", $fileList @@ -28,3 +29,6 @@ dcubeRef="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/ bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName InDetStandardPlots.root $dcubeXml $dcubeRef echo "art-result: $? plot" +plotmacro="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/scripts/makeplots.C" +root -b -q $plotmacro +echo "art-result: $? root" diff --git a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Pi1IDPRTT.sh b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Pi1IDPRTT.sh index f82b39e2c827f80f8063b6d99ca12c0131f2ea0a..35b7c5d0e6c1f5107a001cf74cda91854e86b174 100755 --- a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Pi1IDPRTT.sh +++ b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_Pi1IDPRTT.sh @@ -8,6 +8,7 @@ # art-output: *.root # art-output: *.xml # art-output: dcube +# art-output: *.png fileList="['${ArtInFile//,/', '}']" echo "List of files = ", $fileList @@ -28,3 +29,6 @@ bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName InDetStanda bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube "Pi1" "InDetStandardPlots-SinglePi1000.root" echo "art-result: $? plot" +plotmacro="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/scripts/makeplots.C" +root -b -q $plotmacro +echo "art-result: $? root" diff --git a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ZtomumuIDPRTT.sh b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ZtomumuIDPRTT.sh index 54603f81dd816e67266b914deacab7207411b787..9dabb109e464300fffca73bc07d6aa44b1104cc8 100755 --- a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ZtomumuIDPRTT.sh +++ b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ZtomumuIDPRTT.sh @@ -8,6 +8,7 @@ # art-output: *.root # art-output: *.xml # art-output: dcube +# art-output: *.png fileList="['${ArtInFile//,/', '}']" echo "List of files = ", $fileList @@ -27,3 +28,6 @@ dcubeRef="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/ bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName InDetStandardPlots.root $dcubeXml $dcubeRef echo "art-result: $? plot" +plotmacro="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/scripts/makeplots.C" +root -b -q $plotmacro +echo "art-result: $? root" diff --git a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ZtomumuPileupIDPRTT.sh b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ZtomumuPileupIDPRTT.sh index 7c14af3db12706014cbdd4ddfe528b47953d3329..7ade0d78ccea59b072ccf587f8664be908c5f653 100755 --- a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ZtomumuPileupIDPRTT.sh +++ b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ZtomumuPileupIDPRTT.sh @@ -8,6 +8,7 @@ # art-output: *.root # art-output: *.xml # art-output: dcube +# art-output: *.png fileList="['${ArtInFile//,/', '}']" echo "List of files = ", $fileList @@ -27,3 +28,6 @@ dcubeRef="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/ bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName InDetStandardPlots.root $dcubeXml $dcubeRef echo "art-result: $? plot" +plotmacro="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/scripts/makeplots.C" +root -b -q $plotmacro +echo "art-result: $? root" diff --git a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_mu1GeV.sh b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_mu1GeV.sh index 347327d65cc798fe932cec9cd6e0961614646fe9..d252506cc9f3904cef1730371df4c3915ccae474 100755 --- a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_mu1GeV.sh +++ b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_mu1GeV.sh @@ -8,7 +8,7 @@ # art-output: *.root # art-output: *.xml # art-output: dcube - +# art-output: *.png fileList="['${ArtInFile//,/', '}']" echo "List of files = ", $fileList @@ -28,3 +28,6 @@ dcubeRef="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/ bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName InDetStandardPlots.root $dcubeXml $dcubeRef echo "art-result: $? plot" +plotmacro="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/scripts/makeplots.C" +root -b -q $plotmacro +echo "art-result: $? root" diff --git a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ttbar.sh b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ttbar.sh index aaa35f73a33e81f384a193d250f4c48fbf7fd52b..993fcae9f748dc55c43cfa265227869edeb76666 100755 --- a/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ttbar.sh +++ b/InnerDetector/InDetValidation/InDetPerformanceRTT/test/test_InDetPerformanceRTT_ttbar.sh @@ -8,6 +8,7 @@ # art-output: *.root # art-output: *.xml # art-output: dcube +# art-output: *.png fileList="['${ArtInFile//,/', '}']" echo "List of files = ", $fileList @@ -26,3 +27,6 @@ dcubeRef="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/ bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName InDetStandardPlots.root $dcubeXml $dcubeRef echo "art-result: $? plot" +plotmacro="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/InDetPerformanceRTT/scripts/makeplots.C" +root -b -q $plotmacro +echo "art-result: $? root" diff --git a/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDb.h b/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDb.h index 039bf29f42a3b09e632bc8c31210db62a80e99d6..539f5e9a4ada67ea09b7816df551004129cf1186 100755 --- a/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDb.h +++ b/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDb.h @@ -8,76 +8,62 @@ #include "AthenaBaseComps/AthService.h" #include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/ServiceHandle.h" - -class StoreGateSvc; - #include "AthenaKernel/IOVSvcDefs.h" - -///////////////////////////////////////////////////////////////////////////// #include "AmdcDb/AmdcDbMisc.h" - #include "AmdcDb/IRDBAccessSvcWithUpdate.h" +#include "RDBAccessSvc/IRDBAccessSvc.h" +#include "RDBAccessSvc/IRDBQuery.h" +#include <memory> +class StoreGateSvc; class AmdcsimrecAthenaSvc; - class AmdcDbSvc; -class AmdcDbRecordset; -class IRDBRecordset; -#include "RDBAccessSvc/IRDBQuery.h" -#include <memory> template <class TYPE> class SvcFactory; - /** - @class AmdcDb - - This class is an implementation of the class IRDBAccessSvc - - @author samusog@cern.ch - - */ - -class AmdcDb : public AthService, virtual public IRDBAccessSvcWithUpdate { -public: -/////////////////////////////////// - +/** + * @class AmdcDb + * + * This class is an implementation of the class IRDBAccessSvc + * + * @author samusog@cern.ch + * + */ + +class AmdcDb final : public AthService, virtual public IRDBAccessSvcWithUpdate { + public: static const InterfaceID& interfaceID() { return IID_IRDBAccessSvc; } - virtual StatusCode initialize(); - virtual StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; - virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface ); + virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface ) override; - virtual bool InitializedSvc(); - virtual bool UsableSvc(); - virtual StatusCode UpdatedSvc(IOVSVC_CALLBACK_ARGS); + virtual bool InitializedSvc() override; + virtual bool UsableSvc() override; + virtual StatusCode UpdatedSvc(IOVSVC_CALLBACK_ARGS) override; - virtual StatusCode AmdcsimrecAthenaSvcUpdatedSvc(IOVSVC_CALLBACK_ARGS); + StatusCode AmdcsimrecAthenaSvcUpdatedSvc(IOVSVC_CALLBACK_ARGS); - virtual const IRDBRecordset* getRecordset(const std::string& node, - const std::string& tag, - const std::string& tag2node="", - const std::string& connName="ATLASDD"); - -//Functions -// of IRDBAccessSvc Not implemented - virtual bool connect (const std::string& connName); - virtual bool disconnect(const std::string& connName); - virtual bool shutdown( const std::string& connName); + virtual IRDBRecordset_ptr getRecordsetPtr(const std::string& node, + const std::string& tag, + const std::string& tag2node , + const std::string& connName) override; + + //Functions of IRDBAccessSvc Not implemented + virtual bool connect (const std::string& connName) override; + virtual bool disconnect(const std::string& connName) override; + virtual bool shutdown( const std::string& connName) override; virtual std::string getChildTag(const std::string& childNode, const std::string& parentTag, const std::string& parentNode, - const std::string& connName); + const std::string& connName) override; std::unique_ptr<IRDBQuery> getQuery(const std::string& node, const std::string& tag, const std::string& tag2node, - const std::string& connName); - virtual IRDBRecordset_ptr getRecordsetPtr(const std::string& node, - const std::string& tag, - const std::string& tag2node , - const std::string& connName); + const std::string& connName) override; virtual RDBTagDetails getTagDetails(const std::string& tag, - const std::string& connName = "ATLASDD") ; + const std::string& connName = "ATLASDD") override; friend class SvcFactory<AmdcDb>; // Standard Constructor @@ -86,13 +72,11 @@ public: // Standard Destructor virtual ~AmdcDb(); -private: -/////////////////////////////////// - + private: bool m_IsUsable ; //!< Tell usuability state - + bool m_IsInitialized ; //!< Tell initialisation state - + StoreGateSvc* p_detStore ; //!< Pointer On detector store AmdcDbSvc* p_AmdcDbSvcFromAmdc ; //!< Pointer on AmdcDbSvc @@ -123,18 +107,17 @@ private: std::vector<int> m_ValFromRDBEpsLengthCM ; //!< Control precision printing std::vector<int> m_ValFromRDBEpsAngle ; //!< Control precision printing - AmdcDbRecordset* p_AmdcDbRecordsetEmptyOne ; //!< Pointer on an empty AmdcDbRecordset + IRDBRecordset_ptr m_emptyRecordset ; //!< Pointer on an empty Recordset ServiceHandle<AmdcsimrecAthenaSvc> p_AmdcsimrecAthenaSvc; //!< Pointer On AmdcsimrecAthenaSvc -//Db Keys - std::string m_detectorKey ; - std::string m_detectorNode ; - - virtual StatusCode regFcnAmdcsimrecAthenaSvcUpdatedSvc(); - StatusCode DoUpdatedSvc(); - int m_AmdcsimrecAthenaSvcUpdatedSvcDONE ; + //Db Keys + std::string m_detectorKey ; + std::string m_detectorNode ; + StatusCode regFcnAmdcsimrecAthenaSvcUpdatedSvc(); + StatusCode DoUpdatedSvc(); + int m_AmdcsimrecAthenaSvcUpdatedSvcDONE ; }; #endif diff --git a/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDbSvcMakerFromAmdc.h b/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDbSvcMakerFromAmdc.h index ab0501bdffcba266f5cb3f1913ef8221143f69ab..9e539b12d1fe53335a0421315cd1e0bdd69dbc40 100755 --- a/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDbSvcMakerFromAmdc.h +++ b/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDbSvcMakerFromAmdc.h @@ -54,7 +54,6 @@ private: int GetEpsAngle (std::string NameOfTheSet) ; void AMDC(Amdcsimrec* pAmdcsimrec,AmdcDbSvc* pAmdcDbSvc); - void AGDD(Amdcsimrec* pAmdcsimrec,AmdcDbSvc* pAmdcDbSvc); void ATYP(Amdcsimrec* pAmdcsimrec,AmdcDbSvc* pAmdcDbSvc); void ACUT(Amdcsimrec* pAmdcsimrec,AmdcDbSvc* pAmdcDbSvc); diff --git a/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDbSvcMakerFromRDB.h b/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDbSvcMakerFromRDB.h index 339ccd23935112d8c68a4044b0a1d7531f3528c5..ede7a51dba4e0f38bdbc264c8c42dfc3411e2147 100755 --- a/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDbSvcMakerFromRDB.h +++ b/MuonSpectrometer/Amdcsimrec/AmdcDb/AmdcDb/AmdcDbSvcMakerFromRDB.h @@ -62,7 +62,6 @@ private: int GetEpsAngle (std::string NameOfTheSet) ; void AMDC(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void AGDD(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); void ATYP(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); void ACUT(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); @@ -90,18 +89,6 @@ private: void ASZT(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); void ISZT(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void ABRT(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void AECT(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void ECST(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void FEET(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void GENV(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void JDSH(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void JFSH(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void JTSH(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void MBAP(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - - void AgddXMLVariables(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); - void HwSwIdMapping(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); void XtomoData(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc); diff --git a/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDb.cxx b/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDb.cxx index fc5dc78afb48da304edb180e5ab97d5c613256f2..d42b79c92b228b4111410276458f93e69112b584 100755 --- a/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDb.cxx +++ b/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDb.cxx @@ -8,31 +8,22 @@ #include "GaudiKernel/SmartDataPtr.h" #include "GaudiKernel/IDataProviderSvc.h" -//----------------------------------------------------------------// - #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" -///////////////////////////////////////////////////////// -#include "AmdcDb/AmdcDb.h" - -//----------------------------------------------------------------// #include "AmdcAth/AmdcsimrecAthenaSvc.h" - +#include "AmdcDb/AmdcDb.h" #include "AmdcDb/AmdcDbSvc.h" #include "AmdcDb/AmdcDbRecordset.h" #include "AmdcDb/AmdcDbSvcMakerFromRDB.h" #include "AmdcDb/AmdcDbSvcMakerFromAmdc.h" /// Standard Constructor -AmdcDb::AmdcDb(const std::string& name,ISvcLocator* svc): - AthService(name,svc) , -p_AmdcsimrecAthenaSvc ( "AmdcsimrecAthenaSvc",name ) +AmdcDb::AmdcDb(const std::string& name,ISvcLocator* svc) + : AthService(name,svc) + , m_emptyRecordset(new AmdcDbRecordset()) + , p_AmdcsimrecAthenaSvc ( "AmdcsimrecAthenaSvc",name ) { - - p_AmdcDbRecordsetEmptyOne = 0 ; - -//Set Default values p_AmdcDbSvcFromAmdc = 0 ; p_AmdcDbSvcFromRDB = 0 ; @@ -67,8 +58,7 @@ p_AmdcsimrecAthenaSvc ( "AmdcsimrecAthenaSvc",name ) m_ValFromRDBEpsLengthCM.push_back(DummyInt) ; m_ValFromRDBEpsLengthCM.clear () ; m_ValFromRDBEpsAngle.push_back(DummyInt) ; m_ValFromRDBEpsAngle.clear () ; - -//Declare the properties + //Declare the properties declareProperty("AMDBtag", m_AMDBtag) ; declareProperty("UglyCodeOn", m_UglyCodeOn) ; @@ -97,7 +87,6 @@ p_AmdcsimrecAthenaSvc ( "AmdcsimrecAthenaSvc",name ) declareProperty("AmdcsimrecAthenaSvc", p_AmdcsimrecAthenaSvc); p_detStore = 0 ; - } /// Standard Destructor @@ -109,7 +98,7 @@ AmdcDb::~AmdcDb() { /// Service initialisation StatusCode AmdcDb::initialize() { - ATH_MSG_INFO( "Initialisation started " ) ; + ATH_MSG_INFO( "Initialisation started" ) ; StatusCode sc=AthService::initialize(); if (sc.isFailure()) { @@ -216,6 +205,7 @@ StatusCode AmdcDb::regFcnAmdcsimrecAthenaSvcUpdatedSvc() return StatusCode::SUCCESS; } + StatusCode AmdcDb::AmdcsimrecAthenaSvcUpdatedSvc(IOVSVC_CALLBACK_ARGS) { ATH_MSG_INFO( "AmdcsimrecAthenaSvcUpdatedSvc called " ) ; @@ -238,6 +228,7 @@ StatusCode AmdcDb::AmdcsimrecAthenaSvcUpdatedSvc(IOVSVC_CALLBACK_ARGS) return StatusCode::SUCCESS; } + StatusCode AmdcDb::DoUpdatedSvc() { if ( !m_AmdcsimrecAthenaSvcUpdatedSvcDONE ){ @@ -310,51 +301,46 @@ StatusCode AmdcDb::queryInterface(const InterfaceID& riid, void** ppvInterface) addRef(); return StatusCode::SUCCESS; } - -const IRDBRecordset* AmdcDb::getRecordset(const std::string& node, - const std::string& tag, - const std::string& /*tag2node*/ , - const std::string& /*connName*/) + +IRDBRecordset_ptr AmdcDb::getRecordsetPtr(const std::string& node, + const std::string& tag, + const std::string& /*tag2node*/ , + const std::string& /*connName*/) { - if ( p_AmdcDbRecordsetEmptyOne == 0 ) p_AmdcDbRecordsetEmptyOne = new AmdcDbRecordset(); - if ( tag=="RDB" ) { - const IRDBRecordset* pIRDBRecordset = p_AmdcDbSvcFromRDB->getRecordset(node); - if (pIRDBRecordset == 0) return p_AmdcDbRecordsetEmptyOne; - return pIRDBRecordset; - } - if ( tag=="Amdc" ) { - const IRDBRecordset* pIRDBRecordset = p_AmdcDbSvcFromAmdc->getRecordset(node); - if (pIRDBRecordset == 0) return p_AmdcDbRecordsetEmptyOne; - return pIRDBRecordset; - } - return p_AmdcDbRecordsetEmptyOne; + const IRDBRecordset* pIRDBRecordset{nullptr}; + if(tag=="RDB") { + pIRDBRecordset = p_AmdcDbSvcFromRDB->getRecordset(node); + } + else if(tag=="Amdc") { + pIRDBRecordset = p_AmdcDbSvcFromAmdc->getRecordset(node); + } + + if(pIRDBRecordset) + return IRDBRecordset_ptr(const_cast<IRDBRecordset*>(pIRDBRecordset)); + else + return m_emptyRecordset; } -//Functions -// of IRDBAccessSvc Not implemented +// Functions of IRDBAccessSvc Not implemented bool AmdcDb::connect (const std::string& /*connName*/ ) { std::cout << " AmdcDb::connect Not implemented " << std::endl ; return true; } + bool AmdcDb::disconnect(const std::string& /*connName*/ ) { std::cout << " AmdcDb::disconnect Not implemented " << std::endl ; return true; } + bool AmdcDb::shutdown (const std::string& /*connName*/ ) { std::cout << " AmdcDb::shutdown Not implemented " << std::endl ; return true; } + std::string AmdcDb::getChildTag(const std::string& /*childNode*/ , const std::string& /*parentTag*/ , const std::string& /*parentNode*/ , const std::string& /*connName*/ ) { std::cout << " AmdcDb::getChildTag Not implemented " << std::endl ; std::string ToBeReturned = "Not Implemented"; return ToBeReturned; } + std::unique_ptr<IRDBQuery> AmdcDb::getQuery(const std::string& /*node*/ , const std::string& /*tag*/ , const std::string& /*tag2node*/ , const std::string& /*connName*/ ){ std::cout << " AmdcDb::getQuery Not implemented " << std::endl ; return 0; } -IRDBRecordset_ptr AmdcDb::getRecordsetPtr(const std::string& node, - const std::string& /*tag*/, - const std::string& /*tag2node*/ , - const std::string& /*connName*/) -{ - IRDBRecordset* c_ptr = const_cast<IRDBRecordset*>((this)->getRecordset(node,"Amdc")); - IRDBRecordset_ptr rec = IRDBRecordset_ptr(c_ptr); - return rec; -} + RDBTagDetails AmdcDb::getTagDetails(const std::string& /*tag*/, - const std::string& /*connName*/ ) + const std::string& /*connName*/ ) { RDBTagDetails tagDetails; return tagDetails; diff --git a/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDb2Sql.cxx b/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDb2Sql.cxx index fe573f2f53c63a2ba41bd362e554bcb68ad8c1db..b40e6e76469a3b3d92c282eb13c8cff7def291b5 100755 --- a/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDb2Sql.cxx +++ b/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDb2Sql.cxx @@ -26,7 +26,6 @@ void AmdcDb2Sql::SetUseKeysOn(int UseKeysOn){ m_UseKeysOn = UseKeysOn ;} void AmdcDb2Sql::DoIt(std::string TagFileName,std::string tag,IRDBAccessSvc* pIRDBAccessSvc){ DoSql(TagFileName,"AMDC",tag,pIRDBAccessSvc); -// DoSql(TagFileName,"AGDD",tag,pIRDBAccessSvc); DoSql(TagFileName,"ATYP",tag,pIRDBAccessSvc); DoSql(TagFileName,"ACUT",tag,pIRDBAccessSvc); DoSql(TagFileName,"WRPC",tag,pIRDBAccessSvc); @@ -51,18 +50,6 @@ void AmdcDb2Sql::DoIt(std::string TagFileName,std::string tag,IRDBAccessSvc* pIR DoSql(TagFileName,"ASZT",tag,pIRDBAccessSvc); DoSql(TagFileName,"ISZT",tag,pIRDBAccessSvc); -// DoSql(TagFileName,"ABRT",tag,pIRDBAccessSvc); -// DoSql(TagFileName,"AECT",tag,pIRDBAccessSvc); -// DoSql(TagFileName,"ECST",tag,pIRDBAccessSvc); -// DoSql(TagFileName,"FEET",tag,pIRDBAccessSvc); -// DoSql(TagFileName,"GENV",tag,pIRDBAccessSvc); -// DoSql(TagFileName,"JDSH",tag,pIRDBAccessSvc); -// DoSql(TagFileName,"JFSH",tag,pIRDBAccessSvc); -// DoSql(TagFileName,"JTSH",tag,pIRDBAccessSvc); -// DoSql(TagFileName,"MBAP",tag,pIRDBAccessSvc); - -// DoSql(TagFileName,"AgddXMLVariables",tag,pIRDBAccessSvc); - DoSql(TagFileName,"HwSwIdMapping",tag,pIRDBAccessSvc); DoSql(TagFileName,"XtomoData",tag,pIRDBAccessSvc); diff --git a/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDbSvcMakerFromAmdc.cxx b/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDbSvcMakerFromAmdc.cxx index 19074231423506a35d8e0893354cbd62c76d0bbe..8560430c50ca660e0527eeaba27eaa438bdf3277 100755 --- a/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDbSvcMakerFromAmdc.cxx +++ b/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDbSvcMakerFromAmdc.cxx @@ -40,7 +40,6 @@ void AmdcDbSvcMakerFromAmdc::SetEpsAngle (std::string NameOfTheSet, int EpsAng void AmdcDbSvcMakerFromAmdc::Set(Amdcsimrec* pAmdcsimrec,AmdcDbSvc* pAmdcDbSvc){ AMDC(pAmdcsimrec,pAmdcDbSvc); -// AGDD(pAmdcsimrec,pAmdcDbSvc); ATYP(pAmdcsimrec,pAmdcDbSvc); ACUT(pAmdcsimrec,pAmdcDbSvc); @@ -116,44 +115,6 @@ void AmdcDbSvcMakerFromAmdc::AMDC(Amdcsimrec* pAmdcsimrec,AmdcDbSvc* pAmdcDbSvc) } -void AmdcDbSvcMakerFromAmdc::AGDD(Amdcsimrec* pAmdcsimrec,AmdcDbSvc* pAmdcDbSvc){ - - std::string NameOfTheSet = "AGDD"; -// int LocalEpsLengthMM = GetEpsLengthMM(NameOfTheSet) ; -// int LocalEpsLengthCM = GetEpsLengthCM(NameOfTheSet) ; -// int LocalEpsAngle = GetEpsAngle (NameOfTheSet) ; - - std::string DbVar = ""; - std::string DbVarComment = ""; - int iDbVal = 0 ; -//double dDbVal = 0.; - std::string sDbVal = ""; - - AmdcDbRecordset* pAmdcDbRecordset = new AmdcDbRecordset(); - - m_UniversalIdKounter = m_UniversalIdKounter + 1; - AmdcDbRecord* pAmdcDbRecord = new AmdcDbRecord(m_UniversalIdKounter,NameOfTheSet); - - DbVar = "VERS" ; DbVarComment="VERSION" ; iDbVal = m_version ; pAmdcDbRecord->addInt(DbVar,DbVarComment,iDbVal); - - std::string TheAmdcName = pAmdcsimrec->AmdcName() ; - - DbVar = "VNAME" ; DbVarComment="NAME" ; sDbVal = TheAmdcName.substr(0,4) ; pAmdcDbRecord->addString(DbVar,DbVarComment,sDbVal); - - std::string TheBlob = pAmdcsimrec->GetAgddString() ; - - DbVar = "LENAGDD" ; DbVarComment="STRING LENGTH" ; iDbVal = TheBlob.size() ; pAmdcDbRecord->addInt(DbVar,DbVarComment,iDbVal); - - DbVar = "NLINE" ; DbVarComment="CHAR4 NUMBER" ; iDbVal = int ( (TheBlob.size()+2.)/4. ) ; pAmdcDbRecord->addInt(DbVar,DbVarComment,iDbVal); - - DbVar = "DATA" ; DbVarComment="(NLINE)-ASCII" ; sDbVal = TheBlob ; pAmdcDbRecord->addBlob(DbVar,DbVarComment,sDbVal); - - pAmdcDbRecordset->addIRDBRecord(pAmdcDbRecord); - - pAmdcDbSvc->addIRDBRecordset(NameOfTheSet,pAmdcDbRecordset); - -} - void AmdcDbSvcMakerFromAmdc::ATYP(Amdcsimrec* pAmdcsimrec,AmdcDbSvc* pAmdcDbSvc){ std::string NameOfTheSet = "ATYP"; diff --git a/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDbSvcMakerFromRDB.cxx b/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDbSvcMakerFromRDB.cxx index c1ce99fc7d899e346dec99919b445ff82ea0bc88..38578744d59ab83c30f0ba04bf69fc4d0d60ad6d 100755 --- a/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDbSvcMakerFromRDB.cxx +++ b/MuonSpectrometer/Amdcsimrec/AmdcDb/src/AmdcDbSvcMakerFromRDB.cxx @@ -97,15 +97,6 @@ VarDesc AMDC_Vars[] = { }; -VarDesc AGDD_Vars[] = { - {VarDesc::Int, "VERS", "VERSION"}, - {VarDesc::String, "VNAME", "NAME"}, - {VarDesc::Int, "LENAGDD", "STRING LENGTH"}, - {VarDesc::Int, "NLINE", "CHAR4 NUMBER"}, - {VarDesc::String, "DATA", "(NLINE)-ASCII"}, -}; - - VarDesc ATYP_Vars[] = { {VarDesc::Int, "VERS", "VERSION"}, {VarDesc::Int, "JTYP", "AMDB STATION TYPE"}, @@ -478,1353 +469,6 @@ VarDesc ISZT_Vars[] = { }; -VarDesc ABRT_Vars[] = { - {VarDesc::FloatCM, "CRYORMIN", "CRYORMIN "}, - {VarDesc::FloatCM, "CRYORMAX", "CRYORMAX "}, - {VarDesc::FloatCM, "CRYOZMAX", "CRYOZMAX "}, - {VarDesc::FloatCM, "CRYORCUR", "CRYORCUR "}, - {VarDesc::FloatCM, "CRYORADI", "RADIUS "}, - {VarDesc::FloatCM, "CRYORADT", "RADTHICK "}, - {VarDesc::FloatCM, "CRYATTD0", "CRYOATTDIAM0 "}, - {VarDesc::FloatCM, "CRYATTD1", "CRYOATTDIAM1 "}, - {VarDesc::FloatCM, "CRYATTAL", "CRYOATTALFA "}, - {VarDesc::FloatCM, "CRYATTXH", "CRYOATTXHIGH "}, - {VarDesc::FloatCM, "CRYATTTH", "CRYOATTTHICK "}, - {VarDesc::FloatCM, "CRYATTRX", "CRYOATTRMAX "}, - {VarDesc::FloatCM, "CRYATWIY", "CRYOATTWINGY "}, - {VarDesc::FloatCM, "CRYATWXP", "CRYOATTWINGXP "}, - {VarDesc::FloatCM, "CRYATWXN", "CRYOATTWINGXN "}, - {VarDesc::FloatCM, "CRYATWBO", "CRYOATTWINGBOSS "}, - {VarDesc::FloatCM, "CRYATWTH", "CRYOATTWINGTHIC "}, - {VarDesc::FloatCM, "CRYATWZE", "CRYOATTWINGZESP "}, - {VarDesc::FloatCM, "CRYATWRA", "CRYOATTWINGRAD "}, - {VarDesc::FloatCM, "CRYATWYC", "CRYOATTWINGYCUT "}, - {VarDesc::FloatCM, "CRYRIBYW", "CRYORIBYWID "}, - {VarDesc::FloatCM, "CRYRIBZL", "CRYORIBZLEN "}, - {VarDesc::FloatCM, "CRYRIBTH", "CRYORIBTHICK "}, - {VarDesc::FloatCM, "CRYRIWYP", "CRYORIBWINGYP "}, - {VarDesc::FloatCM, "CRYRIWYN", "CRYORIBWINGYN "}, - {VarDesc::FloatCM, "CRYRIWXP", "CRYORIBWINGXP "}, - {VarDesc::FloatCM, "CRYRIWXN", "CRYORIBWINGXN "}, - {VarDesc::FloatCM, "CRYRIWTH", "CRYORIBWINGTHIC "}, - {VarDesc::FloatCM, "CRYRNGRM", "CRYORINGRMED "}, - {VarDesc::FloatCM, "CRYRNGZM", "CRYORINGZMED "}, - {VarDesc::FloatCM, "CRYRNGRA", "CRYORINGRADIUS "}, - {VarDesc::FloatCM, "STRTRMAX", "STRTRMAX "}, - {VarDesc::FloatCM, "STRTRMIN", "STRTRMIN "}, - {VarDesc::FloatCM, "STRTYLEN", "STRTYLEN "}, - {VarDesc::FloatCM, "STRTZWID", "STRUTZWIDTH "}, - {VarDesc::FloatCM, "STRTRTHI", "STRUTRTHICK "}, - {VarDesc::FloatCM, "STRTZTHI", "STRUTZTHICK "}, - {VarDesc::FloatCM, "STRWRMAX", "STRUTWINGRMAX "}, - {VarDesc::FloatCM, "STRWYMAX", "STRUTWINGYMAX "}, - {VarDesc::FloatCM, "STRWRMIN", "STRUTWINGRMIN "}, - {VarDesc::FloatCM, "STRWYMIN", "STRUTWINGYMIN "}, - {VarDesc::FloatCM, "STRWZTHI", "STRUTWINGZTHICK "}, - {VarDesc::FloatCM, "STRWYTHI", "STRUTWINGYTHICK "}, - {VarDesc::FloatCM, "STRWZLEN", "STRUTWINGZLEN "}, - {VarDesc::FloatCM, "ZVOUSS_0", "ARRAY "}, - {VarDesc::FloatCM, "ZVOUSS_1", " "}, - {VarDesc::FloatCM, "ZVOUSS_2", " "}, - {VarDesc::FloatCM, "ZVOUSS_3", " "}, - {VarDesc::FloatCM, "ZVOUSS_4", " "}, - {VarDesc::FloatCM, "ZVOUSS_5", " "}, - {VarDesc::FloatCM, "ZVOUSS_6", " "}, - {VarDesc::FloatCM, "ZVOUSS_7", " "}, - {VarDesc::FloatCM, "ZRIB_0", "ARRAY "}, - {VarDesc::FloatCM, "ZRIB_1", " "}, - {VarDesc::FloatCM, "ZRIB_2", " "}, - {VarDesc::FloatCM, "ZRIB_3", " "}, - {VarDesc::FloatCM, "ZRIB_4", " "}, - {VarDesc::FloatCM, "ZRIB_5", " "}, - {VarDesc::FloatCM, "ZRIB_6", " "}, - {VarDesc::FloatCM, "CRYRIXHI", "CRYORIBXHIGH "}, - {VarDesc::FloatCM, "STRTRMOY", "STRTRMOY "}, - {VarDesc::FloatCM, "STRTYLNP", "STRUTYLENP "}, - {VarDesc::FloatCM, "CRYATTXS", "CRYOATTXSEC "}, - {VarDesc::FloatCM, "COMARMIN", "COLDMASSRMIN "}, - {VarDesc::FloatCM, "COMARMAX", "COLDMASSRMAX "}, - {VarDesc::FloatCM, "COMAZMAX", "COLDMASSZMAX "}, - {VarDesc::FloatCM, "COMARCUI", "COLDMASSRCURVI "}, - {VarDesc::FloatCM, "COMARTHI", "COLDMASSRTHICK "}, - {VarDesc::FloatCM, "COMAYTHI", "COLDMASSYTHICK "}, - {VarDesc::FloatCM, "COMARIBY", "COLDMASSRIBY "}, - {VarDesc::FloatCM, "COMARIBZ", "COLDMASSRIBZ "}, - {VarDesc::FloatCM, "COMABOSS", "COLDMASSBOSS "}, - {VarDesc::FloatCM, "COMARIBX", "COLDMASSRIBX "}, - {VarDesc::FloatCM, "BIELYHEI", "BIELLYHEIGHT "}, - {VarDesc::FloatCM, "BIELYSO1", "BIELLYSOLE1 "}, - {VarDesc::FloatCM, "BIELYSO2", "BIELLYSOLE2 "}, - {VarDesc::FloatCM, "BIELXSOL", "BIELLXSOLE "}, - {VarDesc::FloatCM, "BIELXTH1", "BIELLXTHICK1 "}, - {VarDesc::FloatCM, "BIELXTH2", "BIELLXTHICK2 "}, - {VarDesc::FloatCM, "BIELZTH1", "BIELLZTHICK1 "}, - {VarDesc::FloatCM, "BIELRHOL", "BIELLRADHOLE "}, - {VarDesc::FloatCM, "BIELYCHO", "BIELLYCENHOLE "}, - {VarDesc::FloatCM, "BIELATL1", "BIELLATTLENG1 "}, - {VarDesc::FloatCM, "BIELATL2", "BIELLATTLENG2 "}, - {VarDesc::FloatCM, "BIELATTH", "BIELLATTTHICK "}, - {VarDesc::FloatCM, "BIELATHE", "BIELLATTHEIGHT "}, - {VarDesc::FloatCM, "VOUSBLXH", "VOUSSBLOCKXHEIGHT "}, - {VarDesc::FloatCM, "VOUSPLIX", "VOUSSPLATEINNERXWID "}, - {VarDesc::FloatCM, "VOUSPLOX", "VOUSSPLATEOUTERXWID "}, - {VarDesc::FloatCM, "VOUSBLYW", "VOUSSBLOCKYWID "}, - {VarDesc::FloatCM, "VOUBLYWS", "VOUSSBLOCKYWIDSUB "}, - {VarDesc::FloatCM, "VOURCYWI", "VOUSSRECTCUTYWID "}, - {VarDesc::FloatCM, "VOURPYWI", "VOUSSREINFORCEPLATYWID "}, - {VarDesc::FloatCM, "VOUBLZLE", "VOUSSBLOCKZLEN "}, - {VarDesc::FloatCM, "VOUBLZLS", "VOUSSBLOCKZLENSUB "}, - {VarDesc::FloatCM, "VOUBZWTH", "VOUSSBLOCKZWALLTH "}, - {VarDesc::FloatCM, "VOUCUTZE", "VOUSSCUTZEXT "}, - {VarDesc::FloatCM, "VOURCUTR", "VOUSSROUNDCUTRAD "}, - {VarDesc::FloatCM, "VOURECSL", "VOUSSRECTCUTXYSLANT "}, - {VarDesc::FloatCM, "CNBCOYEX", "CONBOXCOREYEXTENSION "}, - {VarDesc::FloatCM, "CNBCOXEX", "CONBOXCOREXEXTENSION "}, - {VarDesc::FloatCM, "CNBCOXSU", "CONBOXCOREXSUP "}, - {VarDesc::FloatCM, "CNBCOXIN", "CONBOXCOREXINF "}, - {VarDesc::FloatCM, "CNBEAHEI", "CONBOXEARHEIGHT "}, - {VarDesc::FloatCM, "CNBEACXI", "CONBOXEARCUTXIN "}, - {VarDesc::FloatCM, "CNBEACTL", "CONBOXEARCUTPLATETHICKLOWOUT"}, - {VarDesc::FloatCM, "CNBEACTU", "CONBOXEARCUTPLATETHICKUP "}, - {VarDesc::FloatCM, "CNBEACZW", "CONBOXEARCUTZWALL "}, - {VarDesc::FloatCM, "CNBEACZE", "CONBOXEARCUTZEXTR "}, - {VarDesc::FloatCM, "CNBEACPL", "CONBOXINNEREARCUTPLATE "}, - {VarDesc::FloatCM, "CNBCADMA", "CONBOXCAVITYDMAX "}, - {VarDesc::FloatCM, "CNBCADMI", "CONBOXCAVITYDMIN "}, - {VarDesc::FloatCM, "CNBCAZEX", "CONBOXCAVITYZEXT "}, - {VarDesc::FloatCM, "CNBOXZEX", "CONBOXZEXTENSION "}, - {VarDesc::FloatCM, "VOUSMBRA", "VOUSSOIRMAINBLOCKRADIUS "}, - {VarDesc::FloatCM, "CNBXMBRA", "CONBOXMAINBLOCKRADIUS "}, - {VarDesc::FloatCM, "VOUCRCYR", "VOUSSCENTRRECTCUTYREACH "}, - {VarDesc::FloatCM, "VOUSRCXW", "VOUSSRECTCUTXWID "}, - {VarDesc::FloatCM, "VOUSCXOF", "VOUSSCUTXOFFSET "}, - {VarDesc::FloatCM, "VOUSCYPO", "VOUSSOIRCUTYPOS "}, - {VarDesc::FloatCM, "VOUSCZPO", "VOUSSOIRCUTZPOS "}, - {VarDesc::FloatCM, "CNBEAXTP", "CONBOXEARXTOP "}, - {VarDesc::FloatCM, "CNBEAYTP", "CONBOXEARYTOP "}, - {VarDesc::FloatCM, "CNBEAXBT", "CONBOXEARXBOT "}, - {VarDesc::FloatCM, "CNBEAYBT", "CONBOXEARYBOT "}, - {VarDesc::FloatCM, "CNBECXOL", "CONBOXEARCUTXOUTLOW "}, - {VarDesc::FloatCM, "CNBECYOL", "CONBOXEARCUTYOUTLOW "}, - {VarDesc::FloatCM, "CNBECYIL", "CONBOXEARCUTYINLOW "}, - {VarDesc::FloatCM, "CNBECOHE", "CONBOXEARCUTOUTHEIGHT "}, - {VarDesc::FloatCM, "CNBECXOU", "CONBOXEARCUTXOUTUP "}, - {VarDesc::FloatCM, "CNBECYOU", "CONBOXEARCUTYOUTUP "}, - {VarDesc::FloatCM, "CNBECYIU", "CONBOXEARCUTYINUP "}, - {VarDesc::FloatCM, "CNBECZPO", "CONBOXEARCUTZPOS "}, - {VarDesc::FloatCM, "CNBIECZP", "CONBOXINNEREARCUTZPOS "}, - {VarDesc::FloatCM, "CNBCAZIN", "CONBOXCAVITYZINTER "}, - {VarDesc::FloatCM, "VOUSSRAD", "VOUSSOIRRADIUS "}, - {VarDesc::FloatCM, "CNBOXRAD", "CONBOXRADIUS "}, -}; - - -VarDesc AECT_Vars[] = { - {VarDesc::FloatCM, "CRYOT1", "CRYOT1 "}, - {VarDesc::FloatCM, "CRYOT2", "CRYOT2 "}, - {VarDesc::FloatCM, "CRYOS1", "CRYOS1 "}, - {VarDesc::FloatCM, "CRYOS2", "CRYOS2 "}, - {VarDesc::FloatCM, "CRYOEDGE", "CRYOEDGE "}, - {VarDesc::FloatCM, "CRYOFLTY", "FLATY "}, - {VarDesc::FloatCM, "CRYOR0", "CRYOR0 "}, - {VarDesc::FloatCM, "CRYOZMIN", "CRYOZMIN "}, - {VarDesc::FloatCM, "CRYOZEXT", "CRYOZEXT "}, - {VarDesc::FloatCM, "CRYOTHI1", "THICK1 "}, - {VarDesc::FloatCM, "CRYOTHI2", "THICK2 "}, - {VarDesc::FloatCM, "CRYOTHI3", "THICK3 "}, - {VarDesc::FloatCM, "CRYOTTU0", "CRYOTTU0 "}, - {VarDesc::FloatCM, "CRYORTU0", "CRYORTU0 "}, - {VarDesc::FloatCM, "CRYORTU1", "CRYORTU1 "}, - {VarDesc::FloatCM, "CRYODPHT", "DPHITU "}, - {VarDesc::FloatCM, "CRYOSTL0", "CRYOSTOPLENGTH0 "}, - {VarDesc::FloatCM, "CRYOSTL1", "CRYOSTOPLENGTH1 "}, - {VarDesc::FloatCM, "CRYOSTH0", "CRYOSTOPHEIGHT0 "}, - {VarDesc::FloatCM, "CRYOSTW0", "CRYOSTOPWIDTH0 "}, - {VarDesc::FloatCM, "CRYOSTW1", "CRYOSTOPWIDTH1 "}, - {VarDesc::FloatCM, "CRYOSTTH", "CRYOSTOPTHICKNESS"}, - {VarDesc::FloatCM, "CRYOSTH1", "CRYOSTOPHEIGHT1 "}, - {VarDesc::FloatCM, "CRYOSTH2", "CRYOSTOPHEIGHT2 "}, - {VarDesc::FloatCM, "CRYOSTPZ", "CRYOSTOPPOSIZ "}, - {VarDesc::FloatCM, "CRYOSUPL", "CRYOSUPL "}, - {VarDesc::FloatCM, "CRYOSUPH", "CRYOSUPH "}, - {VarDesc::FloatCM, "CRYOSUPW", "CRYOSUPW "}, - {VarDesc::FloatCM, "CRYOSUPX", "CRYOSUPX "}, - {VarDesc::FloatCM, "CNBXZMOF", "CONDBOXZMINOFFSET"}, - {VarDesc::FloatCM, "CNBXZEXT", "CONDBOXZEXT "}, - {VarDesc::FloatCM, "CNBXTMIN", "CONDBOXTMIN "}, - {VarDesc::FloatCM, "CNBXTMAX", "CONDBOXTMAX "}, - {VarDesc::FloatCM, "CNBXTHIC", "CONDBOXTHICK "}, - {VarDesc::FloatCM, "CNBXEDGE", "CONDBOXEDGE "}, - {VarDesc::FloatCM, "SUPPLZOF", "SUPPLATZOFFSET "}, - {VarDesc::FloatCM, "SUPPLZEX", "SUPPLATZEXT "}, - {VarDesc::FloatCM, "SUPPLTMI", "SUPPLATTMIN "}, - {VarDesc::FloatCM, "SUPPLTMA", "SUPPLATTMAX "}, - {VarDesc::FloatCM, "SUPPLTHZ", "SUPPLATTHICKZ "}, - {VarDesc::FloatCM, "SUPPLTHT", "SUPPLATTHICKT "}, - {VarDesc::FloatCM, "SUPPLRHO", "SUPPLATRHOLE "}, - {VarDesc::FloatCM, "SRVTU1DZ", "SERVTUR1DZ "}, - {VarDesc::FloatCM, "SRVTU1HE", "SERVTUR1HEIGHT "}, - {VarDesc::FloatCM, "SRVTU1OW", "SERVTUR1OUTWIDTH "}, - {VarDesc::FloatCM, "SRVTU1IW", "SERVTUR1INNWIDTH "}, - {VarDesc::FloatCM, "SRVTU1ED", "SERVTUR1EDGE "}, - {VarDesc::FloatCM, "SRVTU2DZ", "SERVTUR2DZ "}, - {VarDesc::FloatCM, "SRVTU2HE", "SERVTUR2HEIGHT "}, - {VarDesc::FloatCM, "SRVTU2OR", "SERVTUR2OUTRAD "}, - {VarDesc::FloatCM, "SRVTU2IR", "SERVTUR2INNRAD "}, - {VarDesc::FloatCM, "SRVTU3DZ", "SERVTUR3DZ "}, - {VarDesc::FloatCM, "SRVTU3HE", "SERVTUR3HEIGHT "}, - {VarDesc::FloatCM, "SIFITU", "SIFITU "}, - {VarDesc::FloatCM, "COFITU", "COFITU "}, - {VarDesc::FloatCM, "CRYOZMAX", "CRYOZMAX "}, - {VarDesc::FloatCM, "CNBXZMIN", "CONDBOXZMIN "}, - {VarDesc::FloatCM, "CNBXZMAX", "CONDBOXZMAX "}, - {VarDesc::FloatCM, "SUPPLZMI", "SUPPLATZMIN "}, - {VarDesc::FloatCM, "SUPPLZMA", "SUPPLATZMAX "}, - {VarDesc::FloatCM, "CRYOZMOY", "CRYOZMOY "}, - {VarDesc::FloatCM, "CRYOALFA", "CRYOALFA "}, - {VarDesc::FloatCM, "CRYOBETA", "CRYOBETA "}, - {VarDesc::FloatCM, "CRYOT1P", "CRYOT1P "}, - {VarDesc::FloatCM, "CRYOT2P", "CRYOT2P "}, - {VarDesc::FloatCM, "CRYOS1P", "CRYOS1P "}, - {VarDesc::FloatCM, "CRYOS2P", "CRYOS2P "}, - {VarDesc::FloatCM, "CRYOFLYP", "FLATYP "}, - {VarDesc::FloatCM, "SUPPLZME", "SUPPLATZMOY "}, - {VarDesc::FloatCM, "XTEMP_0", "ARRAY "}, - {VarDesc::FloatCM, "XTEMP_1", " "}, - {VarDesc::FloatCM, "XTEMP_2", " "}, - {VarDesc::FloatCM, "YTEMP_0", "ARRAY "}, - {VarDesc::FloatCM, "YTEMP_1", " "}, - {VarDesc::FloatCM, "YTEMP_2", " "}, - {VarDesc::FloatCM, "DTEMP01", "DTEMP01 "}, - {VarDesc::FloatCM, "XTIMP_0", "ARRAY "}, - {VarDesc::FloatCM, "XTIMP_1", " "}, - {VarDesc::FloatCM, "XTIMP_2", " "}, - {VarDesc::FloatCM, "YTIMP_0", "ARRAY "}, - {VarDesc::FloatCM, "YTIMP_1", " "}, - {VarDesc::FloatCM, "YTIMP_2", " "}, - {VarDesc::FloatCM, "DTIMP01", "DTIMP01 "}, - {VarDesc::FloatCM, "UTEMP61", "UTEMP61 "}, - {VarDesc::FloatCM, "UTEMP62", "UTEMP62 "}, - {VarDesc::FloatCM, "UTIMP61", "UTIMP61 "}, - {VarDesc::FloatCM, "UTIMP62", "UTIMP62 "}, - {VarDesc::FloatCM, "DTEMP", "DTEMP "}, - {VarDesc::FloatCM, "SUPPLATY_0", "ARRAY "}, - {VarDesc::FloatCM, "SUPPLATY_1", " "}, - {VarDesc::FloatCM, "SUPPLATY_2", " "}, - {VarDesc::FloatCM, "SUPPLATY_3", " "}, - {VarDesc::FloatCM, "SUPPLATX_0", "ARRAY "}, - {VarDesc::FloatCM, "SUPPLATX_1", " "}, - {VarDesc::FloatCM, "SUPPLATX_2", " "}, - {VarDesc::FloatCM, "SUPPLATX_3", " "}, - {VarDesc::FloatCM, "X1TEMP", "X1TEMP "}, - {VarDesc::FloatCM, "X0TEMP", "X0TEMP "}, -}; - - -VarDesc ECST_Vars[] = { - {VarDesc::FloatCM, "STOTHIC1", "STOTHIC1 "}, - {VarDesc::FloatCM, "STOTHIC2", "STOTHIC2 "}, - {VarDesc::FloatCM, "STOTHIC3", "STOTHIC3 "}, - {VarDesc::FloatCM, "STOTHIC4", "STOTHIC4 "}, - {VarDesc::FloatCM, "STOLENGT", "STOLENGT "}, - {VarDesc::FloatCM, "STOLENGA", "STOLENGA "}, - {VarDesc::FloatCM, "STOXPREF", "STOXPREF "}, - {VarDesc::FloatCM, "STOYPREF", "STOYPREF "}, - {VarDesc::FloatCM, "STOHEIGH", "STOHEIGH "}, - {VarDesc::FloatCM, "STOHEIG1", "STOHEIG1 "}, - {VarDesc::FloatCM, "STOHEIG2", "STOHEIG2 "}, - {VarDesc::FloatCM, "STOHEIG3", "STOHEIG3 "}, - {VarDesc::FloatCM, "STOHEIG4", "STOHEIG4 "}, - {VarDesc::FloatCM, "STODZBOT", "STODZBOT "}, - {VarDesc::FloatCM, "STODZIN1", "STODZIN1 "}, - {VarDesc::FloatCM, "STODZIN2", "STODZIN2 "}, - {VarDesc::FloatCM, "STODZIN3", "STODZIN3 "}, - {VarDesc::FloatCM, "STODZIN4", "STODZIN4 "}, - {VarDesc::FloatCM, "STODZIN5", "STODZIN5 "}, - {VarDesc::FloatCM, "STODZTOP", "STODZTOP "}, - {VarDesc::FloatCM, "STOANGLE", "STOANGLE "}, - {VarDesc::FloatCM, "STOYPOS", "STOYPOS "}, - {VarDesc::FloatCM, "STOGECXZ", "STOGECXZ "}, - {VarDesc::FloatCM, "STOGECHE", "STOGECHE "}, - {VarDesc::FloatCM, "STOCLCZP", "STOCLCZP "}, - {VarDesc::FloatCM, "STOANGD2", "STOANGD2 "}, - {VarDesc::FloatCM, "STOANGD4", "STOANGD4 "}, - {VarDesc::FloatCM, "STOLENG1", "STOLENG1 "}, - {VarDesc::FloatCM, "STOFXPOS", "STOFXPOS "}, - {VarDesc::FloatCM, "STOZPOS", "STOZPOS "}, - {VarDesc::FloatCM, "STOUEYP", "STOUEYP "}, - {VarDesc::FloatCM, "STOTEYP", "STOTEYP "}, - {VarDesc::FloatCM, "STOTEZP", "STOTEZP "}, - {VarDesc::FloatCM, "STOFLXA", "STOFLXA "}, - {VarDesc::FloatCM, "STOFLYA", "STOFLYA "}, - {VarDesc::FloatCM, "STOFLXB", "STOFLXB "}, - {VarDesc::FloatCM, "STOFLYB", "STOFLYB "}, - {VarDesc::FloatCM, "STOFLXC", "STOFLXC "}, - {VarDesc::FloatCM, "STOFLYC", "STOFLYC "}, - {VarDesc::FloatCM, "STOFLXD", "STOFLXD "}, - {VarDesc::FloatCM, "STOFLYD", "STOFLYD "}, - {VarDesc::FloatCM, "STOFLXE", "STOFLXE "}, - {VarDesc::FloatCM, "STOFLYE", "STOFLYE "}, - {VarDesc::FloatCM, "STOFLXF", "STOFLXF "}, - {VarDesc::FloatCM, "STOFLYF", "STOFLYF "}, - {VarDesc::FloatCM, "STOFLXG", "STOFLXG "}, - {VarDesc::FloatCM, "STOFLYG", "STOFLYG "}, - {VarDesc::FloatCM, "STOFLXH", "STOFLXH "}, - {VarDesc::FloatCM, "STOFLYH", "STOFLYH "}, - {VarDesc::FloatCM, "STOFLXI", "STOFLXI "}, - {VarDesc::FloatCM, "STOFLYI", "STOFLYI "}, - {VarDesc::FloatCM, "STOCOXA", "STOCOXA "}, - {VarDesc::FloatCM, "STOCOYA", "STOCOYA "}, - {VarDesc::FloatCM, "STOCOXA1", "STOCOXA1 "}, - {VarDesc::FloatCM, "STOCOYA1", "STOCOYA1 "}, - {VarDesc::FloatCM, "STOCOXB", "STOCOXB "}, - {VarDesc::FloatCM, "STOCOYB", "STOCOYB "}, - {VarDesc::FloatCM, "STOCOXB1", "STOCOXB1 "}, - {VarDesc::FloatCM, "STOCOYB1", "STOCOYB1 "}, - {VarDesc::FloatCM, "STOCOXC", "STOCOXC "}, - {VarDesc::FloatCM, "STOCOYC", "STOCOYC "}, - {VarDesc::FloatCM, "STOCOXC1", "STOCOXC1 "}, - {VarDesc::FloatCM, "STOCOYC1", "STOCOYC1 "}, - {VarDesc::FloatCM, "STOCOXD", "STOCOXD "}, - {VarDesc::FloatCM, "STOCOYD", "STOCOYD "}, - {VarDesc::FloatCM, "STOCOXD1", "STOCOXD1 "}, - {VarDesc::FloatCM, "STOCOYD1", "STOCOYD1 "}, - {VarDesc::FloatCM, "STOCOXE", "STOCOXE "}, - {VarDesc::FloatCM, "STOCOYE", "STOCOYE "}, - {VarDesc::FloatCM, "STOCOXE1", "STOCOXE1 "}, - {VarDesc::FloatCM, "STOCOYE1", "STOCOYE1 "}, - {VarDesc::FloatCM, "STOCOXF", "STOCOXF "}, - {VarDesc::FloatCM, "STOCOYF", "STOCOYF "}, - {VarDesc::FloatCM, "STOCOXF1", "STOCOXF1 "}, - {VarDesc::FloatCM, "STOCOYF1", "STOCOYF1 "}, - {VarDesc::FloatCM, "STOCOXG", "STOCOXG "}, - {VarDesc::FloatCM, "STOCOYG", "STOCOYG "}, - {VarDesc::FloatCM, "STOCOXG1", "STOCOXG1 "}, - {VarDesc::FloatCM, "STOCOYG1", "STOCOYG1 "}, - {VarDesc::FloatCM, "STOCOXH", "STOCOXH "}, - {VarDesc::FloatCM, "STOCOYH", "STOCOYH "}, - {VarDesc::FloatCM, "STOCOXH1", "STOCOXH1 "}, - {VarDesc::FloatCM, "STOCOYH1", "STOCOYH1 "}, - {VarDesc::FloatCM, "STOCOXI", "STOCOXI "}, - {VarDesc::FloatCM, "STOCOYI", "STOCOYI "}, - {VarDesc::FloatCM, "STOCOXI1", "STOCOXI1 "}, - {VarDesc::FloatCM, "STOCOYI1", "STOCOYI1 "}, - {VarDesc::FloatCM, "STOCO3DX", "STOCO3DX "}, - {VarDesc::FloatCM, "STOCO3DY", "STOCO3DY "}, - {VarDesc::FloatCM, "STOCO3DZ", "STOCO3DZ "}, - {VarDesc::FloatCM, "STOCO3ZP", "STOCO3ZP "}, - {VarDesc::FloatCM, "STOCO3YP", "STOCO3YP "}, - {VarDesc::FloatCM, "STOUEXA", "STOUEXA "}, - {VarDesc::FloatCM, "STOUEYA", "STOUEYA "}, - {VarDesc::FloatCM, "STOUEXB", "STOUEXB "}, - {VarDesc::FloatCM, "STOUEYB", "STOUEYB "}, - {VarDesc::FloatCM, "STOUEXC", "STOUEXC "}, - {VarDesc::FloatCM, "STOUEYC", "STOUEYC "}, - {VarDesc::FloatCM, "STOUECXA", "STOUECXA "}, - {VarDesc::FloatCM, "STOUECYA", "STOUECYA "}, - {VarDesc::FloatCM, "STOUECXB", "STOUECXB "}, - {VarDesc::FloatCM, "STOUECYB", "STOUECYB "}, - {VarDesc::FloatCM, "STOUECZP", "STOUECZP "}, - {VarDesc::FloatCM, "STOUECYP", "STOUECYP "}, -}; - - -VarDesc FEET_Vars[] = { - {VarDesc::FloatCM, "MAINPLXO", "MAINPLATEXORIGIN "}, - {VarDesc::FloatCM, "MNPLGXWI", "MAINPLATE_GROUNDXWIDTH "}, - {VarDesc::FloatCM, "MNPLRCDX", "MAINPLATEROUNDCUTDX "}, - {VarDesc::FloatCM, "MNPLDXEX", "MAINPLATEDXEXTR "}, - {VarDesc::FloatCM, "MNPLUPDX", "MAINPLATEUPPERDX "}, - {VarDesc::FloatCM, "MNPLUPXW", "MAINPLATEUPPERXWIDTH "}, - {VarDesc::FloatCM, "MNPLMIDX", "MAINPLATEMIDDLEDX "}, - {VarDesc::FloatCM, "MAINPLYO", "MAINPLATEYORIGIN "}, - {VarDesc::FloatCM, "MAINPLHE", "MAINPLATEHEIGHT "}, - {VarDesc::FloatCM, "MAINPLH1", "MAINPLATEHEIGHT_INTERMEDIATE1 "}, - {VarDesc::FloatCM, "MNPLRCYP", "MAINPLATEROUNDCUT_Y "}, - {VarDesc::FloatCM, "MNPLSRCY", "MAINPLATESECONDARYROUNDCUT_Y "}, - {VarDesc::FloatCM, "MNPLUPDY", "MAINPLATEUPPERDY "}, - {VarDesc::FloatCM, "MNPLMIDY", "MAINPLATEMIDDLEDY "}, - {VarDesc::FloatCM, "MNPLPEHE", "MAINPLATE_PEDESTALHEIGHT "}, - {VarDesc::FloatCM, "MAINPLDZ", "MAINPLATEDZ "}, - {VarDesc::FloatCM, "MNPLZSEP", "MAINPLATEZSEP "}, - {VarDesc::FloatCM, "MNPLRCRA", "MAINPLATEROUNDCUT_R "}, - {VarDesc::FloatCM, "MNPLSRCR", "MAINPLATESECONDARYROUNDCUT_R "}, - {VarDesc::FloatCM, "MINCPLXW", "MINICONNPLATE_XWIDTH "}, - {VarDesc::FloatCM, "MINCPLYH", "MINICONNPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "MINCPLTZ", "MINICONNPLATE_THETAZ "}, - {VarDesc::FloatCM, "MINCPLZL", "MINICONNPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "SLACPLXW", "SLANTEDCONNPLATE_XWIDTH "}, - {VarDesc::FloatCM, "SLACPLYH", "SLANTEDCONNPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "SLACPLTZ", "SLANTEDCONNPLATE_THETAZ "}, - {VarDesc::FloatCM, "SLACPLZL", "SLANTEDCONNPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "GRNDPLZL", "GROUNDPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "VCNPLXWI", "VERTICALCONNPLATE_XWIDTH "}, - {VarDesc::FloatCM, "VCNPLYHE", "VERTICALCONNPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "VCNPLDXE", "VERTICALCONNPLATE_DX "}, - {VarDesc::FloatCM, "VCNPLDYE", "VERTICALCONNPLATE_DY "}, - {VarDesc::FloatCM, "UCNPLXWI", "UPPERCONNPLATE_XWIDTH "}, - {VarDesc::FloatCM, "UCNPLYHE", "UPPERCONNPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "XWIDTH", "XWIDTH "}, - {VarDesc::FloatCM, "UPPERHEY", "RAILSUPPORTUPPER_YHEIGHT "}, - {VarDesc::FloatCM, "UPPERLEZ", "RAILSUPPORTUPPER_ZLENGTH "}, - {VarDesc::FloatCM, "LOWERHEY", "RAILSUPPORTLOWER_YHEIGHT "}, - {VarDesc::FloatCM, "LOWERLEZ", "RAILSUPPORTLOWER_ZLENGTH "}, - {VarDesc::FloatCM, "TOTALHEY", "RAILSUPPORTTOTAL_YHEIGHT "}, - {VarDesc::FloatCM, "CENTRLEZ", "RAILSUPPORTCENTRAL_ZLENGTH "}, - {VarDesc::FloatCM, "CENTRXTH", "RAILSUPPORTCENTRAL_XTHICK "}, - {VarDesc::FloatCM, "MIDLLYTH", "RAILSUPPORTMIDDLE_YTHICK "}, - {VarDesc::FloatCM, "VERTIZTH", "RAILSUPPORTVERTICAL_ZTHICK "}, - {VarDesc::FloatCM, "MIDLLYPO", "RAILSUPPORTMIDDLE_YPOS "}, - {VarDesc::FloatCM, "EXTREHEY", "RAILSUPPORTEXTR_YHEIGHT "}, - {VarDesc::FloatCM, "EXTRELEZ", "RAILSUPPORTEXTR_ZLENGTH "}, - {VarDesc::FloatCM, "CENTRHEY", "RAILSUPPORTCENTRAL_YHEIGHT "}, - {VarDesc::FloatCM, "CNFEVOXW", "CONNFEETVOUSS_XWIDTH "}, - {VarDesc::FloatCM, "CNFEVOYH", "CONNFEETVOUSS_YHEIGHT "}, - {VarDesc::FloatCM, "CNFEVOZL", "CONNFEETVOUSS_ZLENGTH "}, - {VarDesc::FloatCM, "CNFEVOXT", "CONNFEETVOUSS_XTHICK "}, - {VarDesc::FloatCM, "CNFEVOYT", "CONNFEETVOUSS_YTHICK "}, - {VarDesc::FloatCM, "CNFEVOZT", "CONNFEETVOUSS_ZTHICK "}, - {VarDesc::FloatCM, "G12LPXWT", "GIRDER12_LATERALPLATE_XWIDTH_TOTAL "}, - {VarDesc::FloatCM, "G12IPSXO", "GIRDER12_INNERPLATESMALLOFFSET_XDIST "}, - {VarDesc::FloatCM, "G12IPSLX", "GIRDER12_INNERPLATESMALL2LARGE_XDIST "}, - {VarDesc::FloatCM, "G12IPLLX", "GIRDER12_INNERPLATELARGE2LARGE_XDIST "}, - {VarDesc::FloatCM, "G12IPLSX", "GIRDER12_INNERPLATELARGE2SMALL_XDIST "}, - {VarDesc::FloatCM, "G12RPXWI", "GIRDER12_REINFORCEMENTPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G12LPXW1", "GIRDER12_LATERALPLATE_XWIDTH_INTER1 "}, - {VarDesc::FloatCM, "G12LPX12", "GIRDER12_LATERALPLATE_XWIDTH_INTER1INTER"}, - {VarDesc::FloatCM, "G12IPXWI", "GIRDER12_INNERPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G12UMPWI", "GIRDER12_UPPERMINIPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G12SMPWI", "GIRDER12_SIDEMINIPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G12YORIG", "GIRDER12_YORIGIN "}, - {VarDesc::FloatCM, "G12LPYHT", "GIRDER12_LATERALPLATE_YHEIGHT_TOTAL "}, - {VarDesc::FloatCM, "G12LPYH1", "GIRDER12_LATERALPLATE_YHEIGHT_INTER1 "}, - {VarDesc::FloatCM, "G12LPYH2", "GIRDER12_LATERALPLATE_YHEIGHT_INTER2 "}, - {VarDesc::FloatCM, "G12LPYTH", "GIRDER12_LOWERPLATE_YTHICK "}, - {VarDesc::FloatCM, "G12UPYTH", "GIRDER12_UPPERPLATE_YTHICK "}, - {VarDesc::FloatCM, "G12RPYDI", "GIRDER12_REINFORCEMENTPLATE_YDIST "}, - {VarDesc::FloatCM, "G12UMPYH", "GIRDER12_UPPERMINIPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "G12UPZLE", "GIRDER12_UPPERPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "G12UMPZL", "GIRDER12_UPPERMINIPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "G12BPZLE", "GIRDER12_BOTTOMPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "G12LPZLE", "GIRDER12_LATERALPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "G12RPZLE", "GIRDER12_REINFORCEMENTPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "G12SMPZL", "GIRDER12_SIDEMINIPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "G23LPXWT", "GIRDER23_LATERALPLATE_XWIDTH_TOTAL "}, - {VarDesc::FloatCM, "G23IPSXO", "GIRDER23_INNERPLATESMALLOFFSET_XDIST "}, - {VarDesc::FloatCM, "G23IPSLX", "GIRDER23_INNERPLATESMALL2LARGE_XDIST "}, - {VarDesc::FloatCM, "G23IPLLX", "GIRDER23_INNERPLATELARGE2LARGE_XDIST "}, - {VarDesc::FloatCM, "G23IPLSX", "GIRDER23_INNERPLATELARGE2SMALL_XDIST "}, - {VarDesc::FloatCM, "G23RPXWI", "GIRDER23_REINFORCEMENTPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G23LPXW1", "GIRDER23_LATERALPLATE_XWIDTH_INTER1 "}, - {VarDesc::FloatCM, "G23LPX12", "GIRDER23_LATERALPLATE_XWIDTH_INTER1INTER"}, - {VarDesc::FloatCM, "G23IPXWI", "GIRDER23_INNERPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G23UMPWI", "GIRDER23_UPPERMINIPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G23SMPWI", "GIRDER23_SIDEMINIPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G34LPXWT", "GIRDER34_LATERALPLATE_XWIDTH_TOTAL "}, - {VarDesc::FloatCM, "G34IPSXO", "GIRDER34_INNERPLATESMALLOFFSET_XDIST "}, - {VarDesc::FloatCM, "G34IPSLX", "GIRDER34_INNERPLATESMALL2LARGE_XDIST "}, - {VarDesc::FloatCM, "G34IPLLX", "GIRDER34_INNERPLATELARGE2LARGE_XDIST "}, - {VarDesc::FloatCM, "G34IPLSX", "GIRDER34_INNERPLATELARGE2SMALL_XDIST "}, - {VarDesc::FloatCM, "G34RPXWI", "GIRDER34_REINFORCEMENTPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G34LPXW1", "GIRDER34_LATERALPLATE_XWIDTH_INTER1 "}, - {VarDesc::FloatCM, "G34LPX12", "GIRDER34_LATERALPLATE_XWIDTH_INTER1INTER"}, - {VarDesc::FloatCM, "G34IPXWI", "GIRDER34_INNERPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G34UMPWI", "GIRDER34_UPPERMINIPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G34SMPWI", "GIRDER34_SIDEMINIPLATE_XWIDTH "}, - {VarDesc::FloatCM, "EXMPHEIG", "EXTREMITYMAINPLATE_HEIGHT "}, - {VarDesc::FloatCM, "EXMPRCRA", "EXTREMITYMAINPLATEROUNDCUT_R "}, - {VarDesc::FloatCM, "EXMPRCDX", "EXTREMITYMAINPLATEROUNDCUT_DX "}, - {VarDesc::FloatCM, "EXMPRCYP", "EXTREMITYMAINPLATEROUNDCUT_Y "}, - {VarDesc::FloatCM, "EXMCPYHE", "EXTREMITYMINICONNPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "EXMCPZLE", "EXTREMITYMINICONNPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "EXGPZLEN", "EXTREMITYGROUNDPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "EXSCPZLE", "EXTREMITYSLANTEDCONNPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "EXRSZOFF", "EXTREMITYRAILSUPPORT_ZOFFSET "}, - {VarDesc::FloatCM, "EXMPHEI1", "EXTREMITYMAINPLATE_HEIGHT_INTERMEDIATE1 "}, - {VarDesc::FloatCM, "EXMPHEI2", "EXTREMITYMAINPLATE_HEIGHT_INTERMEDIATE2 "}, - {VarDesc::FloatCM, "EXMPXWID", "EXTREMITYMAINPLATE_XWIDTH "}, - {VarDesc::FloatCM, "EXMPXWI1", "EXTREMITYMAINPLATE_XWIDTH_INTER1 "}, - {VarDesc::FloatCM, "EXMPXWI2", "EXTREMITYMAINPLATE_XWIDTH_INTER2 "}, - {VarDesc::FloatCM, "EXMPYHI1", "EXTREMITYMAINPLATE_YHEIGHT_INTER1 "}, - {VarDesc::FloatCM, "EXMPYHI2", "EXTREMITYMAINPLATE_YHEIGHT_INTER2 "}, - {VarDesc::FloatCM, "EXMPYHI3", "EXTREMITYMAINPLATE_YHEIGHT_INTER3 "}, - {VarDesc::FloatCM, "EXMPYHI4", "EXTREMITYMAINPLATE_YHEIGHT_INTER4 "}, - {VarDesc::FloatCM, "EXMPXDI1", "EXTREMITYMAINPLATE_XDIST_INTER1 "}, - {VarDesc::FloatCM, "EXMPXDI2", "EXTREMITYMAINPLATE_XDIST_INTER2 "}, - {VarDesc::FloatCM, "EXMPYDI2", "EXTREMITYMAINPLATE_YDIST_INTER1 "}, - {VarDesc::FloatCM, "EXVCPLDX", "EXTREMITYVERTICALCONNPLATE_DX "}, - {VarDesc::FloatCM, "EXVCPLDY", "EXTREMITYVERTICALCONNPLATE_DY "}, - {VarDesc::FloatCM, "EXMPZSEP", "EXTREMITYMAINPLATE_ZSEP "}, - {VarDesc::FloatCM, "EXSPRCRA", "EXTREMITYSLANTEDCONNPLATEROUNDCUT_RADIUS"}, - {VarDesc::FloatCM, "EXSPRCOF", "EXTREMITYSLANTEDCONNPLATEROUNDCUT_OFFSET"}, - {VarDesc::FloatCM, "EXVCPTHI", "EXTREMITYVERTICALCONNPLATE_THICKNESS "}, - {VarDesc::FloatCM, "EXVCPXEX", "EXTREMITYVERTICALCONNPLATE_XEXT "}, - {VarDesc::FloatCM, "EXVCPHEI", "EXTREMITYVERTICALCONNPLATE_HEIGHT "}, - {VarDesc::FloatCM, "EXVCPYCU", "EXTREMITYVERTICALCONNPLATE_CUTY "}, - {VarDesc::FloatCM, "EXVCPXCU", "EXTREMITYVERTICALCONNPLATE_CUTX "}, - {VarDesc::FloatCM, "EXCFVXWI", "EXTREMITYCONNFEETVOUSS_XWIDTH "}, - {VarDesc::FloatCM, "EXCFVYHE", "EXTREMITYCONNFEETVOUSS_YHEIGHT "}, - {VarDesc::FloatCM, "EXCFVZLE", "EXTREMITYCONNFEETVOUSS_ZLENGTH "}, - {VarDesc::FloatCM, "EXRSUZLE", "EXTREMITYRAILSUPPORTUPPER_ZLENGTH "}, - {VarDesc::FloatCM, "EXRSLDZL", "EXTREMITYRAILSUPPORTLOWER_DZLENGTH "}, - {VarDesc::FloatCM, "EXRSTYHE", "EXTREMITYRAILSUPPORTTOTAL_YHEIGHT "}, - {VarDesc::FloatCM, "EXRSLYHE", "EXTREMITYRAILSUPPORTLOWER_YHEIGHT "}, - {VarDesc::FloatCM, "EXRSEYHE", "EXTREMITYRAILSUPPORTEXTR_YHEIGHT "}, - {VarDesc::FloatCM, "EXRSCYHE", "EXTREMITYRAILSUPPORTCENTRAL_YHEIGHT "}, - {VarDesc::FloatCM, "EXRSCZLE", "EXTREMITYRAILSUPPORTCENTRAL_ZLENGTH "}, - {VarDesc::FloatCM, "EXRSMZLE", "EXTREMITYRAILSUPPORTMIDDLE_ZLENGTH "}, - {VarDesc::FloatCM, "EXRSCXWI", "EXTREMITYRAILSUPPORTCENTRAL_XWIDTH "}, - {VarDesc::FloatCM, "EXRSMXWI", "EXTREMITYRAILSUPPORTMIDDLE_XWIDTH "}, - {VarDesc::FloatCM, "EXRSVXWI", "EXTREMITYRAILSUPPORTVERTICAL_XWIDTH "}, - {VarDesc::FloatCM, "EXRSVZI1", "EXTREMITYRAILSUPPORTVERTICAL_ZPOS_INTER1"}, - {VarDesc::FloatCM, "EXRSEZLE", "EXTREMITYRAILSUPPORTEXTR_ZLENGTH "}, - {VarDesc::FloatCM, "EXRSEZOF", "EXTREMITYRAILSUPPORTEXTR_ZOFFSET "}, - {VarDesc::FloatCM, "EXRSC1DE", "EXTREMITYRAILSUPPORTCUT1_DEPTH "}, - {VarDesc::FloatCM, "EXRSC1WI", "EXTREMITYRAILSUPPORTCUT1_WIDTH "}, - {VarDesc::FloatCM, "EXRSC1XE", "EXTREMITYRAILSUPPORTCUT1_DUMXEXT "}, - {VarDesc::FloatCM, "EXRSC2XE", "EXTREMITYRAILSUPPORTCUT2_DUMXEXT "}, - {VarDesc::FloatCM, "EXRSC2Z1", "EXTREMITYRAILSUPPORTCUT1_ZOFFSET1 "}, - {VarDesc::FloatCM, "EXRSC2Z2", "EXTREMITYRAILSUPPORTCUT1_ZOFFSET2 "}, - {VarDesc::FloatCM, "EXRSMCDE", "EXTREMITYRAILSUPPORTMIDDLECUT_DEPTH "}, - {VarDesc::FloatCM, "EXRSMCWI", "EXTREMITYRAILSUPPORTMIDDLECUT_WIDTH "}, - {VarDesc::FloatCM, "EXRSMCZO", "EXTREMITYRAILSUPPORTMIDDLECUT_ZOFFSET "}, - {VarDesc::FloatCM, "EXRSMCY1", "EXTREMITYRAILSUPPORTMIDDLECUT_DUMY1 "}, - {VarDesc::FloatCM, "EXRSMCY2", "EXTREMITYRAILSUPPORTMIDDLECUT_DUMY2 "}, - {VarDesc::FloatCM, "STDFOOXP", "STANDARDFOOT_XPOS "}, - {VarDesc::FloatCM, "STDFOOYP", "STANDARDFOOT_YPOS "}, - {VarDesc::FloatCM, "ZPOSFEE1", "ZPOSFEE1 "}, - {VarDesc::FloatCM, "ZPOSFEE2", "ZPOSFEE2 "}, - {VarDesc::FloatCM, "ZPOSFEE3", "ZPOSFEE3 "}, - {VarDesc::FloatCM, "ZPOSFEE4", "ZPOSFEE4 "}, - {VarDesc::FloatCM, "ZPOSFEE5", "ZPOSFEE5 "}, - {VarDesc::FloatCM, "GIRDYHEI", "YHEIGHTGIRDER "}, - {VarDesc::FloatCM, "GIRDXPOS", "XPOSGIRDER "}, - {VarDesc::FloatCM, "MPLAHCEC", "FEETMAINPLATE_HCEC "}, - {VarDesc::FloatCM, "DUMZ", "DUMZ "}, - {VarDesc::FloatCM, "DUMPHI", "DUMPHI "}, - {VarDesc::FloatCM, "MAINPLXA", "MAINPLXA "}, - {VarDesc::FloatCM, "MAINPLYA", "MAINPLYA "}, - {VarDesc::FloatCM, "MAINPLXB", "MAINPLXB "}, - {VarDesc::FloatCM, "MAINPLYB", "MAINPLYB "}, - {VarDesc::FloatCM, "MAINPLXC", "MAINPLXC "}, - {VarDesc::FloatCM, "MAINPLYC", "MAINPLYC "}, - {VarDesc::FloatCM, "MAPLRCXC", "MAINPLATEROUNDCUT_XC "}, - {VarDesc::FloatCM, "MAPLRCYC", "MAINPLATEROUNDCUT_YC "}, - {VarDesc::FloatCM, "MAIPLXC3", "MAIPLXC3 "}, - {VarDesc::FloatCM, "MAIPLYC3", "MAIPLYC3 "}, - {VarDesc::FloatCM, "MPLXEXTR", "FEETMAINPLATE_XEXTR "}, - {VarDesc::FloatCM, "MPLYEXTR", "FEETMAINPLATE_YEXTR "}, - {VarDesc::FloatCM, "MPLREXTR", "FEETMAINPLATE_REXTR "}, - {VarDesc::FloatCM, "MAIPLXC2", "MAIPLXC2 "}, - {VarDesc::FloatCM, "MAIPLYC2", "MAIPLYC2 "}, - {VarDesc::FloatCM, "MPLXCEC1", "MPLXCEC1 "}, - {VarDesc::FloatCM, "MPLYCEC1", "MPLYCEC1 "}, - {VarDesc::FloatCM, "MPLXCEC2", "MPLXCEC2 "}, - {VarDesc::FloatCM, "MPLYCEC2", "MPLYCEC2 "}, - {VarDesc::FloatCM, "A", "A "}, - {VarDesc::FloatCM, "B", "B "}, - {VarDesc::FloatCM, "APRIME", "APRIME "}, - {VarDesc::FloatCM, "BPRIME", "BPRIME "}, - {VarDesc::FloatCM, "ASECONDE", "ASECONDE "}, - {VarDesc::FloatCM, "BSECONDE", "BSECONDE "}, - {VarDesc::FloatCM, "MAINPLXD", "MAINPLXD "}, - {VarDesc::FloatCM, "MAINPLYD", "MAINPLYD "}, - {VarDesc::FloatCM, "MAINPLXE", "MAINPLXE "}, - {VarDesc::FloatCM, "MAINPLYE", "MAINPLYE "}, - {VarDesc::FloatCM, "MAIPLXC1", "MAIPLXC1 "}, - {VarDesc::FloatCM, "MAIPLYC1", "MAIPLYC1 "}, - {VarDesc::FloatCM, "MAINPLXF", "MAINPLXF "}, - {VarDesc::FloatCM, "MAINPLYF", "MAINPLYF "}, - {VarDesc::FloatCM, "MAINPLXG", "MAINPLXG "}, - {VarDesc::FloatCM, "MAINPLYG", "MAINPLYG "}, - {VarDesc::FloatCM, "MAINPLXH", "MAINPLXH "}, - {VarDesc::FloatCM, "MAINPLYH", "MAINPLYH "}, - {VarDesc::FloatCM, "MAINPLXI", "MAINPLXI "}, - {VarDesc::FloatCM, "MAINPLYI", "MAINPLYI "}, - {VarDesc::FloatCM, "MAINPLXJ", "MAINPLXJ "}, - {VarDesc::FloatCM, "MAINPLYJ", "MAINPLYJ "}, - {VarDesc::FloatCM, "ALPHA1", "ALPHA1 "}, - {VarDesc::FloatCM, "COAL1", "COAL1 "}, - {VarDesc::FloatCM, "SIAL1", "SIAL1 "}, - {VarDesc::FloatCM, "MICPDIAG", "MINICONNPLATE_DIAG "}, - {VarDesc::FloatCM, "MICPXPOS", "MINICONNPLATE_X "}, - {VarDesc::FloatCM, "MICPYPOS", "MINICONNPLATE_Y "}, - {VarDesc::FloatCM, "ALPHA2", "ALPHA2 "}, - {VarDesc::FloatCM, "COAL2", "COAL2 "}, - {VarDesc::FloatCM, "SIAL2", "SIAL2 "}, - {VarDesc::FloatCM, "SLCPDIAG", "SLANTEDCONNPLATE_DIAG "}, - {VarDesc::FloatCM, "SLCPXPOS", "SLANTEDCONNPLATE_X "}, - {VarDesc::FloatCM, "SLCPYPOS", "SLANTEDCONNPLATE_Y "}, - {VarDesc::FloatCM, "GRNPXWID", "GROUNDPLATE_XWIDTH "}, - {VarDesc::FloatCM, "GRNPYHEI", "GROUNDPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "GRNPXPOS", "GROUNDPLATE_X "}, - {VarDesc::FloatCM, "GRNPYPOS", "GROUNDPLATE_Y "}, - {VarDesc::FloatCM, "VECPXPOS", "VERTICALCONNPLATE_X "}, - {VarDesc::FloatCM, "VECPYPOS", "VERTICALCONNPLATE_Y "}, - {VarDesc::FloatCM, "VECPZLEN", "VERTICALCONNPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "UPCPXPOS", "UPPERCONNPLATE_X "}, - {VarDesc::FloatCM, "UPCPYPOS", "UPPERCONNPLATE_Y "}, - {VarDesc::FloatCM, "UPCPZLEN", "UPPERCONNPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "MIDYPOSI", "RAILSUPPORTMIDDLE_Y "}, - {VarDesc::FloatCM, "POSX", "POSX "}, - {VarDesc::FloatCM, "POSY", "POSY "}, - {VarDesc::FloatCM, "CNFEVOXP", "CONNFEETVOUSS_X "}, - {VarDesc::FloatCM, "CNFEVOYP", "CONNFEETVOUSS_Y "}, - {VarDesc::FloatCM, "G12BOPXA", "GIRDER12_BOTTOMPLATE_XA "}, - {VarDesc::FloatCM, "G12BOPXB", "GIRDER12_BOTTOMPLATE_XB "}, - {VarDesc::FloatCM, "G12BOPXC", "GIRDER12_BOTTOMPLATE_XC "}, - {VarDesc::FloatCM, "G12BOPXD", "GIRDER12_BOTTOMPLATE_XD "}, - {VarDesc::FloatCM, "G12BOPXE", "GIRDER12_BOTTOMPLATE_XE "}, - {VarDesc::FloatCM, "G12BOPXF", "GIRDER12_BOTTOMPLATE_XF "}, - {VarDesc::FloatCM, "G12BOPYA", "GIRDER12_BOTTOMPLATE_YA "}, - {VarDesc::FloatCM, "G12BOPYB", "GIRDER12_BOTTOMPLATE_YB "}, - {VarDesc::FloatCM, "G12BOPYC", "GIRDER12_BOTTOMPLATE_YC "}, - {VarDesc::FloatCM, "G12BOPYD", "GIRDER12_BOTTOMPLATE_YD "}, - {VarDesc::FloatCM, "G12BOPYE", "GIRDER12_BOTTOMPLATE_YE "}, - {VarDesc::FloatCM, "G12BOPYF", "GIRDER12_BOTTOMPLATE_YF "}, - {VarDesc::FloatCM, "G12IPZLE", "GIRDER12_INNERPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "G12IPLYH", "GIRDER12_INNERPLATELARGE_YHEIGHT "}, - {VarDesc::FloatCM, "G12IPLYP", "GIRDER12_INNERPLATELARGE_YPOS "}, - {VarDesc::FloatCM, "G12IPSYH", "GIRDER12_INNERPLATESMALL_YHEIGHT "}, - {VarDesc::FloatCM, "G12IPSYP", "GIRDER12_INNERPLATESMALL_YPOS "}, - {VarDesc::FloatCM, "G12IPSX1", "GIRDER12_INNERPLATESMALL1_XPOS "}, - {VarDesc::FloatCM, "G12IPLX1", "GIRDER12_INNERPLATELARGE1_XPOS "}, - {VarDesc::FloatCM, "G12IPLX2", "GIRDER12_INNERPLATELARGE2_XPOS "}, - {VarDesc::FloatCM, "G12IPSX2", "GIRDER12_INNERPLATESMALL2_XPOS "}, - {VarDesc::FloatCM, "G12UPXWI", "GIRDER12_UPPERPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G12UPYHE", "GIRDER12_UPPERPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "G12UPYPO", "GIRDER12_UPPERPLATE_YPOS "}, - {VarDesc::FloatCM, "G12REPXA", "GIRDER12_REINFORCEMENTPLATE_XA "}, - {VarDesc::FloatCM, "G12REPXB", "GIRDER12_REINFORCEMENTPLATE_XB "}, - {VarDesc::FloatCM, "G12REPXC", "GIRDER12_REINFORCEMENTPLATE_XC "}, - {VarDesc::FloatCM, "G12REPXD", "GIRDER12_REINFORCEMENTPLATE_XD "}, - {VarDesc::FloatCM, "G12REPYA", "GIRDER12_REINFORCEMENTPLATE_YA "}, - {VarDesc::FloatCM, "G12REPYB", "GIRDER12_REINFORCEMENTPLATE_YB "}, - {VarDesc::FloatCM, "G12REPYC", "GIRDER12_REINFORCEMENTPLATE_YC "}, - {VarDesc::FloatCM, "G12REPYD", "GIRDER12_REINFORCEMENTPLATE_YD "}, - {VarDesc::FloatCM, "G12REPZP", "GIRDER12_REINFORCEMENTPLATE_ZPOS "}, - {VarDesc::FloatCM, "G12UMPYP", "GIRDER12_UPPERMINIPLATE_YPOS "}, - {VarDesc::FloatCM, "G12UMPXP", "GIRDER12_UPPERMINIPLATE_XPOS "}, - {VarDesc::FloatCM, "G12SMPYH", "GIRDER12_SIDEMINIPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "G12SMPYP", "GIRDER12_SIDEMINIPLATE_YPOS "}, - {VarDesc::FloatCM, "G12SMPXP", "GIRDER12_SIDEMINIPLATE_XPOS "}, - {VarDesc::FloatCM, "G12SMPZP", "GIRDER12_SIDEMINIPLATE_ZPOS "}, - {VarDesc::FloatCM, "G23BOPXA", "GIRDER23_BOTTOMPLATE_XA "}, - {VarDesc::FloatCM, "G23BOPXB", "GIRDER23_BOTTOMPLATE_XB "}, - {VarDesc::FloatCM, "G23BOPXC", "GIRDER23_BOTTOMPLATE_XC "}, - {VarDesc::FloatCM, "G23BOPXD", "GIRDER23_BOTTOMPLATE_XD "}, - {VarDesc::FloatCM, "G23BOPXE", "GIRDER23_BOTTOMPLATE_XE "}, - {VarDesc::FloatCM, "G23BOPXF", "GIRDER23_BOTTOMPLATE_XF "}, - {VarDesc::FloatCM, "G23IPSX1", "GIRDER23_INNERPLATESMALL1_XPOS "}, - {VarDesc::FloatCM, "G23IPLX1", "GIRDER23_INNERPLATELARGE1_XPOS "}, - {VarDesc::FloatCM, "G23IPLX2", "GIRDER23_INNERPLATELARGE2_XPOS "}, - {VarDesc::FloatCM, "G23IPSX2", "GIRDER23_INNERPLATESMALL2_XPOS "}, - {VarDesc::FloatCM, "G23UPXWI", "GIRDER23_UPPERPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G23UPYHE", "GIRDER23_UPPERPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "G23REPXA", "GIRDER23_REINFORCEMENTPLATE_XA "}, - {VarDesc::FloatCM, "G23REPXB", "GIRDER23_REINFORCEMENTPLATE_XB "}, - {VarDesc::FloatCM, "G23REPXC", "GIRDER23_REINFORCEMENTPLATE_XC "}, - {VarDesc::FloatCM, "G23REPXD", "GIRDER23_REINFORCEMENTPLATE_XD "}, - {VarDesc::FloatCM, "G23REPYA", "GIRDER23_REINFORCEMENTPLATE_YA "}, - {VarDesc::FloatCM, "G23REPYB", "GIRDER23_REINFORCEMENTPLATE_YB "}, - {VarDesc::FloatCM, "G23REPYC", "GIRDER23_REINFORCEMENTPLATE_YC "}, - {VarDesc::FloatCM, "G23REPYD", "GIRDER23_REINFORCEMENTPLATE_YD "}, - {VarDesc::FloatCM, "G23UMPXP", "GIRDER23_UPPERMINIPLATE_XPOS "}, - {VarDesc::FloatCM, "G23SMPXP", "GIRDER23_SIDEMINIPLATE_XPOS "}, - {VarDesc::FloatCM, "G34BOPXA", "GIRDER34_BOTTOMPLATE_XA "}, - {VarDesc::FloatCM, "G34BOPXB", "GIRDER34_BOTTOMPLATE_XB "}, - {VarDesc::FloatCM, "G34BOPXC", "GIRDER34_BOTTOMPLATE_XC "}, - {VarDesc::FloatCM, "G34BOPXD", "GIRDER34_BOTTOMPLATE_XD "}, - {VarDesc::FloatCM, "G34BOPXE", "GIRDER34_BOTTOMPLATE_XE "}, - {VarDesc::FloatCM, "G34BOPXF", "GIRDER34_BOTTOMPLATE_XF "}, - {VarDesc::FloatCM, "G34IPSX1", "GIRDER34_INNERPLATESMALL1_XPOS "}, - {VarDesc::FloatCM, "G34IPLX1", "GIRDER34_INNERPLATELARGE1_XPOS "}, - {VarDesc::FloatCM, "G34IPLX2", "GIRDER34_INNERPLATELARGE2_XPOS "}, - {VarDesc::FloatCM, "G34IPSX2", "GIRDER34_INNERPLATESMALL2_XPOS "}, - {VarDesc::FloatCM, "G34UPXWI", "GIRDER34_UPPERPLATE_XWIDTH "}, - {VarDesc::FloatCM, "G34UPYHE", "GIRDER34_UPPERPLATE_YHEIGHT "}, - {VarDesc::FloatCM, "G34REPXA", "GIRDER34_REINFORCEMENTPLATE_XA "}, - {VarDesc::FloatCM, "G34REPXB", "GIRDER34_REINFORCEMENTPLATE_XB "}, - {VarDesc::FloatCM, "G34REPXC", "GIRDER34_REINFORCEMENTPLATE_XC "}, - {VarDesc::FloatCM, "G34REPXD", "GIRDER34_REINFORCEMENTPLATE_XD "}, - {VarDesc::FloatCM, "G34REPYA", "GIRDER34_REINFORCEMENTPLATE_YA "}, - {VarDesc::FloatCM, "G34REPYB", "GIRDER34_REINFORCEMENTPLATE_YB "}, - {VarDesc::FloatCM, "G34REPYC", "GIRDER34_REINFORCEMENTPLATE_YC "}, - {VarDesc::FloatCM, "G34REPYD", "GIRDER34_REINFORCEMENTPLATE_YD "}, - {VarDesc::FloatCM, "G34UMPXP", "GIRDER34_UPPERMINIPLATE_XPOS "}, - {VarDesc::FloatCM, "G34SMPXP", "GIRDER34_SIDEMINIPLATE_XPOS "}, - {VarDesc::FloatCM, "STDFVOYP", "STANDARDFOOTVOUSSOIR_YPOS "}, - {VarDesc::FloatCM, "EXMPRCXC", "EXTREMITYMAINPLATEROUNDCUT_XC "}, - {VarDesc::FloatCM, "EXMPRCYC", "EXTREMITYMAINPLATEROUNDCUT_YC "}, - {VarDesc::FloatCM, "EXMPLXC3", "EXTREMITYMAINPLATE_XC3 "}, - {VarDesc::FloatCM, "EXMPLYC3", "EXTREMITYMAINPLATE_YC3 "}, - {VarDesc::FloatCM, "EXMPLXC4", "EXTREMITYMAINPLATE_XC4 "}, - {VarDesc::FloatCM, "EXMPLYC4", "EXTREMITYMAINPLATE_YC4 "}, - {VarDesc::FloatCM, "EXMPLXC5", "EXTREMITYMAINPLATE_XC5 "}, - {VarDesc::FloatCM, "EXMPLYC5", "EXTREMITYMAINPLATE_YC5 "}, - {VarDesc::FloatCM, "A2", "A2 "}, - {VarDesc::FloatCM, "B2", "B2 "}, - {VarDesc::FloatCM, "A2PRIME", "A2PRIME "}, - {VarDesc::FloatCM, "B2PRIME", "B2PRIME "}, - {VarDesc::FloatCM, "EXMPLAXD", "EXTREMITYMAINPLATE_XD "}, - {VarDesc::FloatCM, "EXMPLAYD", "EXTREMITYMAINPLATE_YD "}, - {VarDesc::FloatCM, "EXMPC2C1", "EXTREMITYMAINPLATE_LENGTHC2C1 "}, - {VarDesc::FloatCM, "EXMPLXC1", "EXTREMITYMAINPLATE_XC1 "}, - {VarDesc::FloatCM, "EXMPLYC1", "EXTREMITYMAINPLATE_YC1 "}, - {VarDesc::FloatCM, "EXMPYC1A", "EXTREMITYMAINPLATE_YC1A "}, - {VarDesc::FloatCM, "EXMPXC1A", "EXTREMITYMAINPLATE_XC1A "}, - {VarDesc::FloatCM, "EXMPXC1B", "EXTREMITYMAINPLATE_XC1B "}, - {VarDesc::FloatCM, "EXMPYC1B", "EXTREMITYMAINPLATE_YC1B "}, - {VarDesc::FloatCM, "ALPHA3", "ALPHA3 "}, - {VarDesc::FloatCM, "COAL3", "COAL3 "}, - {VarDesc::FloatCM, "SIAL3", "SIAL3 "}, - {VarDesc::FloatCM, "EXMCPDIA", "EXTREMITYMINICONNPLATE_DIAG "}, - {VarDesc::FloatCM, "EXMCPXPO", "EXTREMITYMINICONNPLATE_X "}, - {VarDesc::FloatCM, "EXMCPYPO", "EXTREMITYMINICONNPLATE_Y "}, - {VarDesc::FloatCM, "EXMPLAXF", "EXTREMITYMAINPLATE_XF "}, - {VarDesc::FloatCM, "EXMPLAYF", "EXTREMITYMAINPLATE_YF "}, - {VarDesc::FloatCM, "EXMPLXF1", "EXTREMITYMAINPLATE_XF1 "}, - {VarDesc::FloatCM, "EXMPLYF1", "EXTREMITYMAINPLATE_YF1 "}, - {VarDesc::FloatCM, "EXMPLXF2", "EXTREMITYMAINPLATE_XF2 "}, - {VarDesc::FloatCM, "EXMPLYF2", "EXTREMITYMAINPLATE_YF2 "}, - {VarDesc::FloatCM, "EXMPLYF3", "EXTREMITYMAINPLATE_YF3 "}, - {VarDesc::FloatCM, "EXMPLXF3", "EXTREMITYMAINPLATE_XF3 "}, - {VarDesc::FloatCM, "EXMPLXF4", "EXTREMITYMAINPLATE_XF4 "}, - {VarDesc::FloatCM, "EXMPLYF4", "EXTREMITYMAINPLATE_YF4 "}, - {VarDesc::FloatCM, "EXMPLXF5", "EXTREMITYMAINPLATE_XF5 "}, - {VarDesc::FloatCM, "EXMPLYF5", "EXTREMITYMAINPLATE_YF5 "}, - {VarDesc::FloatCM, "EXMPLXF6", "EXTREMITYMAINPLATE_XF6 "}, - {VarDesc::FloatCM, "EXMPLYF6", "EXTREMITYMAINPLATE_YF6 "}, - {VarDesc::FloatCM, "EXMPLXF7", "EXTREMITYMAINPLATE_XF7 "}, - {VarDesc::FloatCM, "EXMPLYF7", "EXTREMITYMAINPLATE_YF7 "}, - {VarDesc::FloatCM, "EXMPLAXI", "EXTREMITYMAINPLATE_XI "}, - {VarDesc::FloatCM, "EXMPLAXH", "EXTREMITYMAINPLATE_XH "}, - {VarDesc::FloatCM, "EXMPLAYH", "EXTREMITYMAINPLATE_YH "}, - {VarDesc::FloatCM, "EXUCPXPO", "EXTREMITYUPPERCONNPLATE_X "}, - {VarDesc::FloatCM, "EXUCPZLE", "EXTREMITYUPPERCONNPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "EXVCPZLE", "EXTREMITYVERTICALCONNPLATE_ZLENGTH "}, - {VarDesc::FloatCM, "EXVCPLXA", "EXTREMITYVERTICALCONNPLATE_XA "}, - {VarDesc::FloatCM, "EXVCPLYA", "EXTREMITYVERTICALCONNPLATE_YA "}, - {VarDesc::FloatCM, "EXVCPLXB", "EXTREMITYVERTICALCONNPLATE_XB "}, - {VarDesc::FloatCM, "EXVCPLYB", "EXTREMITYVERTICALCONNPLATE_YB "}, - {VarDesc::FloatCM, "EXVCPLXC", "EXTREMITYVERTICALCONNPLATE_XC "}, - {VarDesc::FloatCM, "EXVCPLYC", "EXTREMITYVERTICALCONNPLATE_YC "}, - {VarDesc::FloatCM, "EXVCPLXD", "EXTREMITYVERTICALCONNPLATE_XD "}, - {VarDesc::FloatCM, "EXVCPLYD", "EXTREMITYVERTICALCONNPLATE_YD "}, - {VarDesc::FloatCM, "EXVCPLXE", "EXTREMITYVERTICALCONNPLATE_XE "}, - {VarDesc::FloatCM, "EXVCPLYE", "EXTREMITYVERTICALCONNPLATE_YE "}, - {VarDesc::FloatCM, "EXVCPLXF", "EXTREMITYVERTICALCONNPLATE_XF "}, - {VarDesc::FloatCM, "EXVCPLYF", "EXTREMITYVERTICALCONNPLATE_YF "}, - {VarDesc::FloatCM, "EXVCPLXP", "EXTREMITYVERTICALCONNPLATE_XPOS "}, - {VarDesc::FloatCM, "EXVCPLYP", "EXTREMITYVERTICALCONNPLATE_YPOS "}, - {VarDesc::FloatCM, "EXVCPLAX", "EXTREMITYVERTICALCONNPLATE_X "}, - {VarDesc::FloatCM, "EXVCPLAY", "EXTREMITYVERTICALCONNPLATE_Y "}, - {VarDesc::FloatCM, "EXCNFEVX", "EXTREMITYCONNFEETVOUSS_X "}, - {VarDesc::FloatCM, "EXCNFEVY", "EXTREMITYCONNFEETVOUSS_Y "}, - {VarDesc::FloatCM, "EXRSLZLE", "EXTREMITYRAILSUPPORTLOWER_ZLENGTH "}, - {VarDesc::FloatCM, "EXRSVYHE", "EXTREMITYRAILSUPPORTVERTICAL_YHEIGHT "}, - {VarDesc::FloatCM, "EXRSMXPO", "EXTREMITYRAILSUPPORTMIDDLE_XPOS "}, - {VarDesc::FloatCM, "EXRSVXPO", "EXTREMITYRAILSUPPORTVERTICAL_XPOS "}, - {VarDesc::FloatCM, "EXRSEYPO", "EXTREMITYRAILSUPPORTEXTR_Y "}, - {VarDesc::FloatCM, "EXRSUYPO", "EXTREMITYRAILSUPPORTUPPER_Y "}, - {VarDesc::FloatCM, "EXRSLYPO", "EXTREMITYRAILSUPPORTLOWER_Y "}, - {VarDesc::FloatCM, "EXRSCYPO", "EXTREMITYRAILSUPPORTCENTRAL_Y "}, - {VarDesc::FloatCM, "EXRSVYPO", "EXTREMITYRAILSUPPORTVERTICAL_Y "}, - {VarDesc::FloatCM, "EXRSVZP1", "EXTREMITYRAILSUPPORTVERTICAL1_ZPOS "}, - {VarDesc::FloatCM, "EXRSVZP2", "EXTREMITYRAILSUPPORTVERTICAL2_ZPOS "}, - {VarDesc::FloatCM, "EXRSMZPO", "EXTREMITYRAILSUPPORTMIDDLE_ZPOS "}, - {VarDesc::FloatCM, "EXRSEZPO", "EXTREMITYRAILSUPPORTEXTR_ZPOS "}, - {VarDesc::FloatCM, "EXRSC1YE", "EXTREMITYRAILSUPPORTCUT1_YEXT "}, - {VarDesc::FloatCM, "EXRSC2YE", "EXTREMITYRAILSUPPORTCUT2_YEXT "}, - {VarDesc::FloatCM, "EXRSC1XP", "EXTREMITYRAILSUPPORTCUT1_XPOS "}, - {VarDesc::FloatCM, "EXRSC2XP", "EXTREMITYRAILSUPPORTCUT2_XPOS "}, - {VarDesc::FloatCM, "EXRSC1ZP", "EXTREMITYRAILSUPPORTCUT1_ZPOS "}, - {VarDesc::FloatCM, "EXRSC3XP", "EXTREMITYRAILSUPPORTCUT3_XPOS "}, - {VarDesc::FloatCM, "EXRSC3ZP", "EXTREMITYRAILSUPPORTCUT3_ZPOS "}, - {VarDesc::FloatCM, "EXRSC4Z1", "EXRSC4Z1 "}, - {VarDesc::FloatCM, "EXRSC4ZP", "EXTREMITYRAILSUPPORTCUT4_ZPOS "}, - {VarDesc::FloatCM, "EXRSMCXA", "EXTREMITYRAILSUPPORTMIDDLECUT_XA "}, - {VarDesc::FloatCM, "EXRSMCYA", "EXTREMITYRAILSUPPORTMIDDLECUT_YA "}, - {VarDesc::FloatCM, "EXRSMCXB", "EXTREMITYRAILSUPPORTMIDDLECUT_XB "}, - {VarDesc::FloatCM, "EXRSMCYB", "EXTREMITYRAILSUPPORTMIDDLECUT_YB "}, - {VarDesc::FloatCM, "EXRSMCXC", "EXTREMITYRAILSUPPORTMIDDLECUT_XC "}, - {VarDesc::FloatCM, "EXRSMCYC", "EXTREMITYRAILSUPPORTMIDDLECUT_YC "}, - {VarDesc::FloatCM, "EXRSMCXP", "EXTREMITYRAILSUPPORTMIDDLE_CUT_XPOS "}, - {VarDesc::FloatCM, "EXRSMCZ1", "EXRSMCZ1 "}, - {VarDesc::FloatCM, "EXRSMCZP", "EXTREMITYRAILSUPPORTMIDDLE_CUT_ZPOS "}, - {VarDesc::FloatCM, "EXRSPOSX", "EXTREMITYRAILSUPPORT_X "}, - {VarDesc::FloatCM, "EXRSPOSY", "EXTREMITYRAILSUPPORT_Y "}, - {VarDesc::FloatCM, "EXRSPOSZ", "EXTREMITYRAILSUPPORT_Z "}, - {VarDesc::FloatCM, "EXRSPXAP", "EXTREMITYRAILSUPPORT_ASSEMBLED_PLUS_X "}, - {VarDesc::FloatCM, "EXRSPXAM", "EXTREMITYRAILSUPPORT_ASSEMBLED_MINUS_X "}, - {VarDesc::FloatCM, "EXRSPYAS", "EXTREMITYRAILSUPPORT_ASSEMBLED_Y "}, - {VarDesc::FloatCM, "GIR12ZPO", "GIR12ZPO "}, - {VarDesc::FloatCM, "GIR12YPO", "GIR12YPO "}, - {VarDesc::FloatCM, "GIR23ZPO", "GIR23ZPO "}, - {VarDesc::FloatCM, "GIR34ZPO", "GIR34ZPO "}, - }; - - -VarDesc GENV_Vars[] = { - {VarDesc::FloatCM, "PI", "PI "}, - {VarDesc::FloatCM, "EPS", "EPS "}, - {VarDesc::FloatCM, "PIS180", "PIS180 "}, - {VarDesc::FloatCM, "SI5", "SI5 "}, - {VarDesc::FloatCM, "CO5", "CO5 "}, - {VarDesc::FloatCM, "TA15", "TA15 "}, - {VarDesc::FloatCM, "TA20", "TA20 "}, - {VarDesc::FloatCM, "SI225", "SI225 "}, - {VarDesc::FloatCM, "CO225", "CO225 "}, - {VarDesc::FloatCM, "TA225", "TA225 "}, - {VarDesc::FloatCM, "TA375", "TA375 "}, - {VarDesc::FloatCM, "SI45", "SI45 "}, - {VarDesc::FloatCM, "CO45", "CO45 "}, - {VarDesc::FloatCM, "TA45", "TA45 "}, - {VarDesc::FloatCM, "SI525", "SI525 "}, - {VarDesc::FloatCM, "CO525", "CO525 "}, - {VarDesc::FloatCM, "TA55", "TA55 "}, - {VarDesc::FloatCM, "SI675", "SI675 "}, - {VarDesc::FloatCM, "CO675", "CO675 "}, - {VarDesc::FloatCM, "TA675", "TA675 "}, - {VarDesc::FloatCM, "TA77", "TA77 "}, -}; - -VarDesc JDSH_Vars[] = { - {VarDesc::FloatCM, "XYZREFPT", "XYZREFERENCEPOINT "}, - {VarDesc::FloatCM, "ROTA180D", "180DEGROTATION "}, - {VarDesc::FloatCM, "NOMIZPOS", "NOMINAL_ZPOS "}, - {VarDesc::FloatCM, "FDINNRAD", "FRONTDISK_INNERRADIUS "}, - {VarDesc::FloatCM, "FDOUTRAD", "FRONTDISK_OUTERRADIUS "}, - {VarDesc::FloatCM, "FDTHICKN", "FRONTDISK_THICKNESS "}, - {VarDesc::FloatCM, "BDINNRAD", "BACKDISK_INNERRADIUS "}, - {VarDesc::FloatCM, "BDOUTRAD", "BACKDISK_OUTERRADIUS "}, - {VarDesc::FloatCM, "BDTHICKN", "BACKDISK_THICKNESS "}, - {VarDesc::FloatCM, "CABCINRA", "BRASSCONE_INNERRADIUS "}, - {VarDesc::FloatCM, "CABCOURA", "BRASSCONE_OUTERRADIUS "}, - {VarDesc::FloatCM, "CABCTHI1", "BRASSCONE_THICKNESS_INTER1"}, - {VarDesc::FloatCM, "CABCTHIC", "BRASSCONE_THICKNESS "}, - {VarDesc::FloatCM, "CABCSLAN", "BRASSCONE_SLOPEANGLE "}, - {VarDesc::FloatCM, "CABCSLLE", "BRASSCONE_SLOPELENGTH "}, - {VarDesc::FloatCM, "CALCTHIC", "LEADCONE_THICKNESS "}, - {VarDesc::FloatCM, "CALCLENG", "LEADCONE_LENGTH "}, - {VarDesc::FloatCM, "CALCWIDT", "LEADCONE_WIDTH "}, - {VarDesc::FloatCM, "CAPCTHIC", "POLYCONE_THICKNESS "}, - {VarDesc::FloatCM, "CAPCLENG", "POLYCONE_LENGTH "}, - {VarDesc::FloatCM, "CAPCWIDT", "POLYCONE_WIDTH "}, - {VarDesc::FloatCM, "CACOPRAN", "CONE_PROJECTIVEANGLE "}, - {VarDesc::FloatCM, "CACOANGZ_0", "ARRAY "}, - {VarDesc::FloatCM, "CACOANGZ_1", " "}, - {VarDesc::FloatCM, "CACOANGZ_2", " "}, - {VarDesc::FloatCM, "CACOANGZ_3", " "}, - {VarDesc::FloatCM, "CACOANGZ_4", " "}, - {VarDesc::FloatCM, "CACOANGZ_5", " "}, - {VarDesc::FloatCM, "CACOANGZ_6", " "}, - {VarDesc::FloatCM, "CACOANGZ_7", " "}, - {VarDesc::FloatCM, "CACOANGZ_8", " "}, - {VarDesc::FloatCM, "CACOANGZ_9", " "}, - {VarDesc::FloatCM, "CACOANGZ_10", " "}, - {VarDesc::FloatCM, "CACOANGZ_11", " "}, - {VarDesc::FloatCM, "CACOANGZ_12", " "}, - {VarDesc::FloatCM, "CACOANGZ_13", " "}, - {VarDesc::FloatCM, "CACOANGZ_14", " "}, - {VarDesc::FloatCM, "CACOANGZ_15", " "}, - {VarDesc::FloatCM, "CACOANGX", "CONEASSEMBLY_ANGX "}, - {VarDesc::FloatCM, "TUBEINRA", "TUBE_INNERRADIUS "}, - {VarDesc::FloatCM, "TUBEOUR1", "TUBE_OUTERRADIUS1 "}, - {VarDesc::FloatCM, "TUBEOUR2", "TUBE_OUTERRADIUS2 "}, - {VarDesc::FloatCM, "TUBESLEN", "TUBE_SHORTLENGTH "}, - {VarDesc::FloatCM, "TUBELENG", "TUBE_LENGTH "}, - {VarDesc::FloatCM, "PLUGINR1", "PLUG_INNERRADIUS1 "}, - {VarDesc::FloatCM, "PLUGOURA", "PLUG_OUTERRADIUS "}, - {VarDesc::FloatCM, "PLUGLENG", "PLUG_LENGTH "}, - {VarDesc::FloatCM, "PLUGTIAN", "PLUG_TILTANGLE "}, - {VarDesc::FloatCM, "SWHINNRA", "SMALLWHEELHUB_INNERRADIUS "}, - {VarDesc::FloatCM, "SWHOUTR1", "SMALLWHEELHUB_OUTERRADIUS1"}, - {VarDesc::FloatCM, "SWHOUTR2", "SMALLWHEELHUB_OUTERRADIUS2"}, - {VarDesc::FloatCM, "SWHLENGT", "SMALLWHEELHUB_LENGTH "}, - {VarDesc::FloatCM, "FDZPOSIT", "FRONTDISK_Z "}, - {VarDesc::FloatCM, "BDZPOSIT", "BACKDISK_Z "}, - {VarDesc::FloatCM, "CAZPOSIT", "CONEASSEMBLY_Z "}, - {VarDesc::FloatCM, "TUBEZPOS", "TUBE_Z "}, - {VarDesc::FloatCM, "PLUGZPOS", "PLUG_Z "}, - {VarDesc::FloatCM, "SWHZPOSI", "SMALLWHEELHUB_Z "}, - {VarDesc::FloatCM, "CABCOUR1", "BRASSCONE_OUTERRADIUS1 "}, - {VarDesc::FloatCM, "CABCTHI2", "BRASSCONE_THICKNESS2 "}, - {VarDesc::FloatCM, "CABCOUR2", "BRASSCONE_OUTERRADIUS2 "}, - {VarDesc::FloatCM, "LCAXBPOS", "LEADCONEASSEMBLY_XB "}, - {VarDesc::FloatCM, "LCAYBPOS", "LEADCONEASSEMBLY_YB "}, - {VarDesc::FloatCM, "LCAXAPOS", "LEADCONEASSEMBLY_XA "}, - {VarDesc::FloatCM, "LCAYAPOS", "LEADCONEASSEMBLY_YA "}, - {VarDesc::FloatCM, "PCAXBPOS", "POLYCONEASSEMBLY_XB "}, - {VarDesc::FloatCM, "PCAYBPOS", "POLYCONEASSEMBLY_YB "}, - {VarDesc::FloatCM, "PCAXAPOS", "POLYCONEASSEMBLY_XA "}, - {VarDesc::FloatCM, "PCAYAPOS", "POLYCONEASSEMBLY_YA "}, - {VarDesc::FloatCM, "CALCRADI", "LEADCONE_RADIUS "}, - {VarDesc::FloatCM, "CALCPOSZ", "LEADCONE_POSZ "}, - {VarDesc::FloatCM, "CAPCRADI", "POLYCONE_RADIUS "}, - {VarDesc::FloatCM, "CAPCPOSZ", "POLYCONE_POSZ "}, - {VarDesc::FloatCM, "I1", "I1 "}, - {VarDesc::FloatCM, "LCAPX_0", "ARRAY "}, - {VarDesc::FloatCM, "LCAPX_1", " "}, - {VarDesc::FloatCM, "LCAPX_2", " "}, - {VarDesc::FloatCM, "LCAPX_3", " "}, - {VarDesc::FloatCM, "LCAPX_4", " "}, - {VarDesc::FloatCM, "LCAPX_5", " "}, - {VarDesc::FloatCM, "LCAPX_6", " "}, - {VarDesc::FloatCM, "LCAPX_7", " "}, - {VarDesc::FloatCM, "LCAPX_8", " "}, - {VarDesc::FloatCM, "LCAPX_9", " "}, - {VarDesc::FloatCM, "LCAPX_10", " "}, - {VarDesc::FloatCM, "LCAPX_11", " "}, - {VarDesc::FloatCM, "LCAPX_12", " "}, - {VarDesc::FloatCM, "LCAPX_13", " "}, - {VarDesc::FloatCM, "LCAPX_14", " "}, - {VarDesc::FloatCM, "LCAPX_15", " "}, - {VarDesc::FloatCM, "LCAPY_0", "ARRAY "}, - {VarDesc::FloatCM, "LCAPY_1", " "}, - {VarDesc::FloatCM, "LCAPY_2", " "}, - {VarDesc::FloatCM, "LCAPY_3", " "}, - {VarDesc::FloatCM, "LCAPY_4", " "}, - {VarDesc::FloatCM, "LCAPY_5", " "}, - {VarDesc::FloatCM, "LCAPY_6", " "}, - {VarDesc::FloatCM, "LCAPY_7", " "}, - {VarDesc::FloatCM, "LCAPY_8", " "}, - {VarDesc::FloatCM, "LCAPY_9", " "}, - {VarDesc::FloatCM, "LCAPY_10", " "}, - {VarDesc::FloatCM, "LCAPY_11", " "}, - {VarDesc::FloatCM, "LCAPY_12", " "}, - {VarDesc::FloatCM, "LCAPY_13", " "}, - {VarDesc::FloatCM, "LCAPY_14", " "}, - {VarDesc::FloatCM, "LCAPY_15", " "}, - {VarDesc::FloatCM, "I2", "I2 "}, - {VarDesc::FloatCM, "PCAPX_0", "ARRAY "}, - {VarDesc::FloatCM, "PCAPX_1", " "}, - {VarDesc::FloatCM, "PCAPX_2", " "}, - {VarDesc::FloatCM, "PCAPX_3", " "}, - {VarDesc::FloatCM, "PCAPX_4", " "}, - {VarDesc::FloatCM, "PCAPX_5", " "}, - {VarDesc::FloatCM, "PCAPX_6", " "}, - {VarDesc::FloatCM, "PCAPX_7", " "}, - {VarDesc::FloatCM, "PCAPX_8", " "}, - {VarDesc::FloatCM, "PCAPX_9", " "}, - {VarDesc::FloatCM, "PCAPX_10", " "}, - {VarDesc::FloatCM, "PCAPX_11", " "}, - {VarDesc::FloatCM, "PCAPX_12", " "}, - {VarDesc::FloatCM, "PCAPX_13", " "}, - {VarDesc::FloatCM, "PCAPX_14", " "}, - {VarDesc::FloatCM, "PCAPX_15", " "}, - {VarDesc::FloatCM, "PCAPY_0", "ARRAY "}, - {VarDesc::FloatCM, "PCAPY_1", " "}, - {VarDesc::FloatCM, "PCAPY_2", " "}, - {VarDesc::FloatCM, "PCAPY_3", " "}, - {VarDesc::FloatCM, "PCAPY_4", " "}, - {VarDesc::FloatCM, "PCAPY_5", " "}, - {VarDesc::FloatCM, "PCAPY_6", " "}, - {VarDesc::FloatCM, "PCAPY_7", " "}, - {VarDesc::FloatCM, "PCAPY_8", " "}, - {VarDesc::FloatCM, "PCAPY_9", " "}, - {VarDesc::FloatCM, "PCAPY_10", " "}, - {VarDesc::FloatCM, "PCAPY_11", " "}, - {VarDesc::FloatCM, "PCAPY_12", " "}, - {VarDesc::FloatCM, "PCAPY_13", " "}, - {VarDesc::FloatCM, "PCAPY_14", " "}, - {VarDesc::FloatCM, "PCAPY_15", " "}, - {VarDesc::FloatCM, "PLUGINR2", "PLUG_INNERRADIUS2 "}, -}; - - -VarDesc JFSH_Vars[] = { - {VarDesc::FloatCM, "XYZREF", "XYZREF "}, - {VarDesc::FloatCM, "ROT180", "ROT180 "}, - {VarDesc::FloatCM, "AFBBLENG", "AFRAME_BOTTOMBAR_LENGTH "}, - {VarDesc::FloatCM, "AFBHEIGH", "AFRAME_BAR_HEIGHT "}, - {VarDesc::FloatCM, "AFRWIDTH", "AFRAME_WIDTH "}, - {VarDesc::FloatCM, "AFBTHIC1", "AFRAME_BAR_THICKNESS1 "}, - {VarDesc::FloatCM, "AFBTHIC2", "AFRAME_BAR_THICKNESS2 "}, - {VarDesc::FloatCM, "AFLANGLE", "AFRAME_LEG_ANGLE "}, - {VarDesc::FloatCM, "AFSLENGT", "AFRAME_SPACER_LENGTH "}, - {VarDesc::FloatCM, "AFSHEIGH", "AFRAME_SPACER_HEIGHT "}, - {VarDesc::FloatCM, "AFWEBBX1", "AFRAME_WEB_ELEMENT_BOTTOMBAR_X1 "}, - {VarDesc::FloatCM, "AFWEBBX2", "AFRAME_WEB_ELEMENT_BOTTOMBAR_X2 "}, - {VarDesc::FloatCM, "AFWELENG", "AFRAME_WEB_ELEMENT_LENGTH "}, - {VarDesc::FloatCM, "AFWEBLX1", "AFRAME_WEB_ELEMENT_LEG_DX1 "}, - {VarDesc::FloatCM, "AFWEBLX2", "AFRAME_WEB_ELEMENT_LEG_DX2 "}, - {VarDesc::FloatCM, "AFFTHICK", "AFRAME_FLANGE_THICKNESS "}, - {VarDesc::FloatCM, "AFFLENGT", "AFRAME_FLANGE_LENGTH "}, - {VarDesc::FloatCM, "AFTPLENG", "AFRAME_TOPPLATE_LENGTH "}, - {VarDesc::FloatCM, "AFTPHEIG", "AFRAME_TOPPLATE_HEIGHT "}, - {VarDesc::FloatCM, "AFWHEIGH", "AFRAME_WEDGE_HEIGHT "}, - {VarDesc::FloatCM, "AFWEXTEN", "AFRAME_WEDGE_EXTENSION "}, - {VarDesc::FloatCM, "AFWTHICK", "AFRAME_WEDGE_THICKNESS "}, - {VarDesc::FloatCM, "AFWZOFFS", "AFRAME_WEDGE_ZOFFSET "}, - {VarDesc::FloatCM, "AFFEELEN", "AFRAME_FEET_LENGTH "}, - {VarDesc::FloatCM, "AFFEETHI", "AFRAME_FEET_THICKNESS "}, - {VarDesc::FloatCM, "AFFEESLE", "AFRAME_FEET_SHORTLENGTH "}, - {VarDesc::FloatCM, "AFFEEHEI", "AFRAME_FEET_HEIGHT "}, - {VarDesc::FloatCM, "AFFEEEXT", "AFRAME_FEET_X_EXTENSION "}, - {VarDesc::FloatCM, "AFTOTHEI", "AFRAME_TOTAL_HEIGHT "}, - {VarDesc::FloatCM, "AFECTCLE", "CLEARANCE_ECT_AFRAME "}, - {VarDesc::FloatCM, "ECTNOMIZ", "ECT_NOMINAL_ZPOS "}, - {VarDesc::FloatCM, "AFYPOSIT", "AFRAME_YPOS "}, - {VarDesc::FloatCM, "AFZPOSIT", "AFRAME_ZPOS "}, - {VarDesc::FloatCM, "AFBLHPXA", "AFBLHPXA "}, - {VarDesc::FloatCM, "AFBLHPYA", "AFBLHPYA "}, - {VarDesc::FloatCM, "AFBLHPYB", "AFBLHPYB "}, - {VarDesc::FloatCM, "AFBLHPXB", "AFBLHPXB "}, - {VarDesc::FloatCM, "AFBBVPXA", "AFBBVPXA "}, - {VarDesc::FloatCM, "AFBBVPYA", "AFBBVPYA "}, - {VarDesc::FloatCM, "AFBBVPYB", "AFBBVPYB "}, - {VarDesc::FloatCM, "AFBBVPXB", "AFBBVPXB "}, - {VarDesc::FloatCM, "AFBUHPXA", "AFBUHPXA "}, - {VarDesc::FloatCM, "AFBUHPYA", "AFBUHPYA "}, - {VarDesc::FloatCM, "AFBUHPYB", "AFBUHPYB "}, - {VarDesc::FloatCM, "AFBUHPXB", "AFBUHPXB "}, - {VarDesc::FloatCM, "AFLLHPXA", "AFLLHPXA "}, - {VarDesc::FloatCM, "AFLLHPYA", "AFLLHPYA "}, - {VarDesc::FloatCM, "AFLLHPXB", "AFLLHPXB "}, - {VarDesc::FloatCM, "AFLLHPYB", "AFLLHPYB "}, - {VarDesc::FloatCM, "AFLLHPXC", "AFLLHPXC "}, - {VarDesc::FloatCM, "AFLLHPYC", "AFLLHPYC "}, - {VarDesc::FloatCM, "AFLLHPXD", "AFLLHPXD "}, - {VarDesc::FloatCM, "AFLLHPYD", "AFLLHPYD "}, - {VarDesc::FloatCM, "AFLVPXA", "AFLVPXA "}, - {VarDesc::FloatCM, "AFLVPYA", "AFLVPYA "}, - {VarDesc::FloatCM, "AFLVPXB", "AFLVPXB "}, - {VarDesc::FloatCM, "AFLVPYB", "AFLVPYB "}, - {VarDesc::FloatCM, "AFLVPXC", "AFLVPXC "}, - {VarDesc::FloatCM, "AFLVPYC", "AFLVPYC "}, - {VarDesc::FloatCM, "AFLVPXE", "AFLVPXE "}, - {VarDesc::FloatCM, "AFLVPYE", "AFLVPYE "}, - {VarDesc::FloatCM, "AFLVPYD", "AFLVPYD "}, - {VarDesc::FloatCM, "AFLVPXD", "AFLVPXD "}, - {VarDesc::FloatCM, "AFLUHPXA", "AFLUHPXA "}, - {VarDesc::FloatCM, "AFLUHPYA", "AFLUHPYA "}, - {VarDesc::FloatCM, "AFLUHPXB", "AFLUHPXB "}, - {VarDesc::FloatCM, "AFLUHPYB", "AFLUHPYB "}, - {VarDesc::FloatCM, "AFLUHPXC", "AFLUHPXC "}, - {VarDesc::FloatCM, "AFLUHPYC", "AFLUHPYC "}, - {VarDesc::FloatCM, "AFLUHPXD", "AFLUHPXD "}, - {VarDesc::FloatCM, "AFLUHPYD", "AFLUHPYD "}, - {VarDesc::FloatCM, "AFTPLAXA", "AFTPLAXA "}, - {VarDesc::FloatCM, "AFTPLAYA", "AFTPLAYA "}, - {VarDesc::FloatCM, "AFTPLAXB", "AFTPLAXB "}, - {VarDesc::FloatCM, "AFTPLAYB", "AFTPLAYB "}, - {VarDesc::FloatCM, "AFSPACXA", "AFSPACXA "}, - {VarDesc::FloatCM, "AFSPACYA", "AFSPACYA "}, - {VarDesc::FloatCM, "AFSPACXB", "AFSPACXB "}, - {VarDesc::FloatCM, "AFSPACYB", "AFSPACYB "}, - {VarDesc::FloatCM, "AFWEBWID", "AFRAME_WEB_ELEMENT_WIDTH "}, - {VarDesc::FloatCM, "AFWEBHEI", "AFRAME_WEB_ELEMENT_HEIGHT "}, - {VarDesc::FloatCM, "AFWEBBBY", "AFRAME_WEB_ELEMENT_BOTTOMBAR_Y "}, - {VarDesc::FloatCM, "AFWEBZPO", "AFRAME_WEB_ELEMENT_Z "}, - {VarDesc::FloatCM, "AFWELXI1", "AFWELXI1 "}, - {VarDesc::FloatCM, "AFWELYI1", "AFWELYI1 "}, - {VarDesc::FloatCM, "AFWELXP1", "AFWELXP1 "}, - {VarDesc::FloatCM, "AFWELYP1", "AFWELYP1 "}, - {VarDesc::FloatCM, "AFWELXI2", "AFWELXI2 "}, - {VarDesc::FloatCM, "AFWELYI2", "AFWELYI2 "}, - {VarDesc::FloatCM, "AFWELXP2", "AFWELXP2 "}, - {VarDesc::FloatCM, "AFWELYP2", "AFWELYP2 "}, - {VarDesc::FloatCM, "AFWELXI3", "AFWELXI3 "}, - {VarDesc::FloatCM, "AFWELYI3", "AFWELYI3 "}, - {VarDesc::FloatCM, "AFWELXP3", "AFWELXP3 "}, - {VarDesc::FloatCM, "AFWELYP3", "AFWELYP3 "}, - {VarDesc::FloatCM, "AFFWIDTH", "AFRAME_FLANGE_WIDTH "}, - {VarDesc::FloatCM, "AFFZPOSI", "AFRAME_FLANGE_Z "}, - {VarDesc::FloatCM, "AFFPOSX1", "AFRAME_FLANGE_X1 "}, - {VarDesc::FloatCM, "AFFPOSY1", "AFRAME_FLANGE_Y1 "}, - {VarDesc::FloatCM, "AFFPOSX2", "AFRAME_FLANGE_X2 "}, - {VarDesc::FloatCM, "AFFPOSY2", "AFRAME_FLANGE_Y2 "}, - {VarDesc::FloatCM, "AFWPOSXA", "AFRAME_WEDGE_XA "}, - {VarDesc::FloatCM, "AFWPOSYA", "AFRAME_WEDGE_YA "}, - {VarDesc::FloatCM, "AFWPOSXB", "AFRAME_WEDGE_XB "}, - {VarDesc::FloatCM, "AFWPOSYB", "AFRAME_WEDGE_YB "}, - {VarDesc::FloatCM, "AFWPOSXC", "AFRAME_WEDGE_XC "}, - {VarDesc::FloatCM, "AFWPOSYC", "AFRAME_WEDGE_YC "}, - {VarDesc::FloatCM, "AFWPOSXD", "AFRAME_WEDGE_XD "}, - {VarDesc::FloatCM, "AFWPOSYD", "AFRAME_WEDGE_YD "}, - {VarDesc::FloatCM, "AFWPOSX0", "AFRAME_WEDGE_X0 "}, - {VarDesc::FloatCM, "AFWPOSY0", "AFRAME_WEDGE_Y0 "}, - {VarDesc::FloatCM, "AFWPOSIX", "AFRAME_WEDGE_X "}, - {VarDesc::FloatCM, "AFWPOSIY", "AFRAME_WEDGE_Y "}, - {VarDesc::FloatCM, "AFWPOSIZ", "AFRAME_WEDGE_Z "}, - {VarDesc::FloatCM, "AFFEETXA", "AFRAME_FEET_XA "}, - {VarDesc::FloatCM, "AFFEETYA", "AFRAME_FEET_YA "}, - {VarDesc::FloatCM, "AFFEETXB", "AFRAME_FEET_XB "}, - {VarDesc::FloatCM, "AFFEETYB", "AFRAME_FEET_YB "}, - {VarDesc::FloatCM, "AFFEETXC", "AFRAME_FEET_XC "}, - {VarDesc::FloatCM, "AFFEETYC", "AFRAME_FEET_YC "}, - {VarDesc::FloatCM, "AFFEETXD", "AFRAME_FEET_XD "}, - {VarDesc::FloatCM, "AFFEETYD", "AFRAME_FEET_YD "}, - {VarDesc::FloatCM, "AFFEETXE", "AFRAME_FEET_XE "}, - {VarDesc::FloatCM, "AFFEETYE", "AFRAME_FEET_YE "}, - {VarDesc::FloatCM, "AFFEETXF", "AFRAME_FEET_XF "}, - {VarDesc::FloatCM, "AFFEETYF", "AFRAME_FEET_YF "}, - {VarDesc::FloatCM, "AFFEETPX", "AFRAME_FEET_X "}, - {VarDesc::FloatCM, "AFASPOSY", "AFRAME_ASSEMBLY_Y "}, - {VarDesc::FloatCM, "AFASPOSZ", "AFRAME_ASSEMBLY_Z "}, - {VarDesc::FloatCM, "JFCMCLEN", "JFCMAINCYLINDER_LENGTH "}, - {VarDesc::FloatCM, "JFCMCIR1", "JFCMAINCYLINDER_INNERRADIUS1 "}, - {VarDesc::FloatCM, "JFCMCOUR", "JFCMAINCYLINDER_OUTERRADIUS "}, - {VarDesc::FloatCM, "JFCMCHSL", "JFCMAINCYLINDER_HOLESLOPE "}, - {VarDesc::FloatCM, "JFCMCZOF", "JFCMAINCYLINDER_ZOFFSET "}, - {VarDesc::FloatCM, "PLUGLENG", "PLUG_LENGTH "}, - {VarDesc::FloatCM, "PLUGINRA", "PLUG_INNERRADIUS "}, - {VarDesc::FloatCM, "PLUGOURA", "PLUG_OUTERRADIUS "}, - {VarDesc::FloatCM, "JFSOCMRA", "JFSOCTOGON_MAINRADIUS "}, - {VarDesc::FloatCM, "JFSOCLEN", "JFSOCTOGON_LENGTH "}, - {VarDesc::FloatCM, "JFSOCZOF", "JFSOCTOGON_ZOFFSET "}, - {VarDesc::FloatCM, "AFOCONLE", "AFRAME_TO_JFSOCTOGON_CONNECTION_LENGTH "}, - {VarDesc::FloatCM, "AFOCONWI", "AFRAME_TO_JFSOCTOGON_CONNECTION_WIDTH "}, - {VarDesc::FloatCM, "AFOCONHE", "AFRAME_TO_JFSOCTOGON_CONNECTION_HEIGHT "}, - {VarDesc::FloatCM, "TX1E1ORA", "TX1E1ORA "}, - {VarDesc::FloatCM, "TX1E1IRA", "TX1E1IRA "}, - {VarDesc::FloatCM, "TX1E1ILE", "TX1E1ILE "}, - {VarDesc::FloatCM, "TX1E2ORA", "TX1E2ORA "}, - {VarDesc::FloatCM, "TX1E2IRA", "TX1E2IRA "}, - {VarDesc::FloatCM, "TX1E2ILE", "TX1E2ILE "}, - {VarDesc::FloatCM, "TX1STZOF", "TX1STZOF "}, - {VarDesc::FloatCM, "JFCMCIR2", "JFCMAINCYLINDER_INNERRADIUS2 "}, - {VarDesc::FloatCM, "JFCMCZPO", "JFCMAINCYLINDER_Z "}, - {VarDesc::FloatCM, "JFSOCZPO", "JFSOCTOGON_Z "}, - {VarDesc::FloatCM, "TX1E1ZPO", "TX1STM_ELEMENT1_Z "}, - {VarDesc::FloatCM, "TX1E2ZPO", "TX1STM_ELEMENT2_Z "}, - {VarDesc::FloatCM, "PLUGZPOS", "PLUG_POSZ "}, - {VarDesc::FloatCM, "AFMCCONY", "AFRAME_TO_JFCMAINCYLINDER_CONNECTION_Y "}, - {VarDesc::FloatCM, "AFMCCONZ", "AFRAME_TO_JFCMAINCYLINDER_CONNECTION_Z "}, - {VarDesc::FloatCM, "JFSOCTXA", "JFSOCTOGON_XA "}, - {VarDesc::FloatCM, "JFSOCTYA", "JFSOCTOGON_YA "}, - {VarDesc::FloatCM, "JFSOCTXB", "JFSOCTOGON_XB "}, - {VarDesc::FloatCM, "JFSOCTYB", "JFSOCTOGON_YB "}, -}; - - -VarDesc JTSH_Vars[] = { - {VarDesc::FloatCM, "OPLENGTH", "OUTERPLUGS_LENGTH "}, - {VarDesc::FloatCM, "OPINNRAD", "OUTERPLUGS_INNERRADIUS "}, - {VarDesc::FloatCM, "OPOUTRAD", "OUTERPLUGS_OUTERRADIUS "}, - {VarDesc::FloatCM, "IPLENGTH", "INNERPLUGS_LENGTH "}, - {VarDesc::FloatCM, "IPINNRA1", "INNERPLUGS_INNERRADIUS1 "}, - {VarDesc::FloatCM, "IPOUTRAD", "INNERPLUGS_OUTERRADIUS "}, - {VarDesc::FloatCM, "IPTILTAN", "INNERPLUGS_TILTANGLE "}, - {VarDesc::FloatCM, "IPZOFFSE", "INNERPLUGS_ZOFFSET "}, - {VarDesc::FloatCM, "PRLENGTH", "POLYRINGS_LENGTH "}, - {VarDesc::FloatCM, "PRINNRAD", "POLYRINGS_INNERRADIUS "}, - {VarDesc::FloatCM, "PROUTRAD", "POLYRINGS_OUTERRADIUS "}, - {VarDesc::FloatCM, "PREXTTAN", "POLYRINGS_EXTENSION_TILTANGLE"}, - {VarDesc::FloatCM, "PRIPEXLE", "POLYRINGS_IPEXTENSION_LENGTH "}, - {VarDesc::FloatCM, "ZPOSITIO", "SHIELD_Z "}, - {VarDesc::FloatCM, "YROTATIO", "SHIELD_ROTY "}, - {VarDesc::FloatCM, "IPINNRA2", "INNERPLUGS_INNERRADIUS2 "}, - {VarDesc::FloatCM, "PREXTZPO", "POLYRINGS_EXTENSION_Z "}, - {VarDesc::FloatCM, "OPZPOSI1", "OUTERPLUGS_Z1 "}, - {VarDesc::FloatCM, "OPZPOSI2", "OUTERPLUGS_Z2 "}, - {VarDesc::FloatCM, "IPZPOSI1", "INNERPLUGS_Z1 "}, - {VarDesc::FloatCM, "IPZPOSI2", "INNERPLUGS_Z2 "}, - {VarDesc::FloatCM, "PRZPOSI1", "POLYRINGS_Z1 "}, - {VarDesc::FloatCM, "PRZPOSI2", "POLYRINGS_Z2 "}, - {VarDesc::FloatCM, "PRZPOSI3", "POLYRINGS_Z3 "}, -}; - - -VarDesc MBAP_Vars[] = { - {VarDesc::FloatCM, "P12S1DZ1", "1353 P12S1DZ1 "}, - {VarDesc::FloatCM, "P12S1DZ2", "1354 P12S1DZ2 "}, - {VarDesc::FloatCM, "P23S1DZ1", "1355 P23S1DZ1 "}, - {VarDesc::FloatCM, "P23S1DZ2", "1356 P23S1DZ2 "}, - {VarDesc::FloatCM, "P34S1DZ1", "1357 P34S1DZ1 "}, - {VarDesc::FloatCM, "P34S1DZ2", "1358 P34S1DZ2 "}, - {VarDesc::FloatCM, "P14S3DZ", "1359 P14S3DZ "}, - {VarDesc::FloatCM, "P14S3DX", "1360 P14S3DX "}, - {VarDesc::FloatCM, "PLAS1DX1", "1361 PLAS1DX1 "}, - {VarDesc::FloatCM, "PLAS1DX2", "1362 PLAS1DX2 "}, - {VarDesc::FloatCM, "PFLHE", "1363 PFLHE "}, - {VarDesc::FloatCM, "PS01POSX", "1364 PS01POSX "}, - {VarDesc::FloatCM, "PS01POSY", "1365 PS01POSY "}, - {VarDesc::FloatCM, "PS11POSX", "1366 PS11POSX "}, - {VarDesc::FloatCM, "PS11POSY", "1367 PS11POSY "}, - {VarDesc::FloatCM, "PS14POSX", "1368 PS14POSX "}, - {VarDesc::FloatCM, "PS14POSY", "1369 PS14POSY "}, - {VarDesc::FloatCM, "PS14ANGZ", "1370 PS14ANGZ "}, - {VarDesc::FloatCM, "P12POSZ", "1371 P12POSZ "}, - {VarDesc::FloatCM, "P23POSZ", "1372 P23POSZ "}, - {VarDesc::FloatCM, "P34POSZ", "1373 P34POSZ "}, - {VarDesc::FloatCM, "XYZREF", "1374 XYZREF "}, - {VarDesc::FloatCM, "PFL12XA", "1375 PFL12XA "}, - {VarDesc::FloatCM, "PFL23XA", "1376 PFL23XA "}, - {VarDesc::FloatCM, "PFL34XA", "1377 PFL34XA "}, - {VarDesc::FloatCM, "PFLYA", "1378 PFLYA "}, - {VarDesc::FloatCM, "PFL12XB", "1379 PFL12XB "}, - {VarDesc::FloatCM, "PFL23XB", "1380 PFL23XB "}, - {VarDesc::FloatCM, "PFL34XB", "1381 PFL34XB "}, - {VarDesc::FloatCM, "PFLYB", "1382 PFLYB "}, - {VarDesc::FloatCM, "PFL12XC", "1383 PFL12XC "}, - {VarDesc::FloatCM, "PFL23XC", "1384 PFL23XC "}, - {VarDesc::FloatCM, "PFL34XC", "1385 PFL34XC "}, - {VarDesc::FloatCM, "PFLYC", "1386 PFLYC "}, - {VarDesc::FloatCM, "PFL12XD", "1387 PFL12XD "}, - {VarDesc::FloatCM, "PFL23XD", "1388 PFL23XD "}, - {VarDesc::FloatCM, "PFL34XD", "1389 PFL34XD "}, - {VarDesc::FloatCM, "PFLYD", "1390 PFLYD "}, - {VarDesc::FloatCM, "PLATRARO", "1391 PLATRARO "}, - {VarDesc::FloatCM, "PLATRARI", "1392 PLATRARI "}, - {VarDesc::FloatCM, "PLATRAHE", "1393 PLATRAHE "}, - {VarDesc::FloatCM, "PL12RAZE", "1394 PL12RAZE "}, - {VarDesc::FloatCM, "PL23RAZE", "1395 PL23RAZE "}, - {VarDesc::FloatCM, "PL34RAZE", "1396 PL34RAZE "}, - {VarDesc::FloatCM, "PLATRHYP", "1397 PLATRHYP "}, - {VarDesc::FloatCM, "PLATBTLE", "1398 PLATBTLE "}, - {VarDesc::FloatCM, "PRLS01DX", "1399 PRLS01DX "}, - {VarDesc::FloatCM, "PRLS11DX", "1400 PRLS11DX "}, - {VarDesc::FloatCM, "PRLS01DY", "1401 PRLS01DY "}, - {VarDesc::FloatCM, "PRLS11DY", "1402 PRLS11DY "}, - {VarDesc::FloatCM, "PSSS3DY1", "1403 PSSS3DY1 "}, - {VarDesc::FloatCM, "PSSS3DY2", "1404 PSSS3DY2 "}, - {VarDesc::FloatCM, "PSSS3DX1", "1405 PSSS3DX1 "}, - {VarDesc::FloatCM, "PSSS3DX2", "1406 PSSS3DX2 "}, - {VarDesc::FloatCM, "PSSS3DX3", "1407 PSSS3DX3 "}, - {VarDesc::FloatCM, "PSSS3AN", "1408 PSSS3AN "}, - {VarDesc::FloatCM, "PSSS3ZP1", "1409 PSSS3ZP1 "}, - {VarDesc::FloatCM, "PSSS3ZP2", "1410 PSSS3ZP2 "}, - {VarDesc::FloatCM, "PSSS3ZP3", "1411 PSSS3ZP3 "}, - {VarDesc::FloatCM, "PSSS3ZP4", "1412 PSSS3ZP4 "}, - {VarDesc::FloatCM, "PSSS3ZP5", "1413 PSSS3ZP5 "}, - {VarDesc::FloatCM, "PSSS3ZP6", "1414 PSSS3ZP6 "}, - {VarDesc::FloatCM, "PLATRAZ1", "1415 PLATRAZ1 "}, - {VarDesc::FloatCM, "PLATRAY1", "1416 PLATRAY1 "}, - {VarDesc::FloatCM, "PLATRAZ2", "1417 PLATRAZ2 "}, - {VarDesc::FloatCM, "PLATRAY2", "1418 PLATRAY2 "}, - {VarDesc::FloatCM, "PL12RAZ3", "1419 PL12RAZ3 "}, - {VarDesc::FloatCM, "PL23RAZ3", "1420 PL23RAZ3 "}, - {VarDesc::FloatCM, "PL34RAZ3", "1421 PL34RAZ3 "}, - {VarDesc::FloatCM, "PLATRAY3", "1422 PLATRAY3 "}, - {VarDesc::FloatCM, "PL12RAZ4", "1423 PL12RAZ4 "}, - {VarDesc::FloatCM, "PL23RAZ4", "1424 PL23RAZ4 "}, - {VarDesc::FloatCM, "PL34RAZ4", "1425 PL34RAZ4 "}, - {VarDesc::FloatCM, "PLATRAY4", "1426 PLATRAY4 "}, - {VarDesc::FloatCM, "PL12RAZ0", "1427 PL12RAZ0 "}, - {VarDesc::FloatCM, "PL23RAZ0", "1428 PL23RAZ0 "}, - {VarDesc::FloatCM, "PL34RAZ0", "1429 PL34RAZ0 "}, - {VarDesc::FloatCM, "PLATRAY0", "1430 PLATRAY0 "}, - {VarDesc::FloatCM, "PL12RHZP", "1431 PL12RHZP "}, - {VarDesc::FloatCM, "PL23RHZP", "1432 PL23RHZP "}, - {VarDesc::FloatCM, "PL34RHZP", "1433 PL34RHZP "}, - {VarDesc::FloatCM, "PLATRVZE", "1434 PLATRVZE "}, - {VarDesc::FloatCM, "PLATRVYP", "1435 PLATRVYP "}, - {VarDesc::FloatCM, "PLATCRYP", "1436 PLATCRYP "}, - {VarDesc::FloatCM, "PL12CRZ1", "1437 PL12CRZ1 "}, - {VarDesc::FloatCM, "PL12CRZ2", "1438 PL12CRZ2 "}, - {VarDesc::FloatCM, "PL23CRZ1", "1439 PL23CRZ1 "}, - {VarDesc::FloatCM, "PL23CRZ2", "1440 PL23CRZ2 "}, - {VarDesc::FloatCM, "PL34CRZ1", "1441 PL34CRZ1 "}, - {VarDesc::FloatCM, "PL34CRZ2", "1442 PL34CRZ2 "}, - {VarDesc::FloatCM, "PL12CRAN", "1443 PL12CRAN "}, - {VarDesc::FloatCM, "PL23CRAN", "1444 PL23CRAN "}, - {VarDesc::FloatCM, "PL34CRAN", "1445 PL34CRAN "}, - {VarDesc::FloatCM, "PL12CRLE", "1446 PL12CRLE "}, - {VarDesc::FloatCM, "PL23CRLE", "1447 PL23CRLE "}, - {VarDesc::FloatCM, "PL34CRLE", "1448 PL34CRLE "}, - {VarDesc::FloatCM, "PLAT2RAX", "1449 PLAT2RAX "}, - {VarDesc::FloatCM, "PL12BTZ1", "1450 PL12BTZ1 "}, - {VarDesc::FloatCM, "PL23BTZ1", "1451 PL23BTZ1 "}, - {VarDesc::FloatCM, "PL34BTZ1", "1452 PL34BTZ1 "}, - {VarDesc::FloatCM, "PL12BTZ2", "1453 PL12BTZ2 "}, - {VarDesc::FloatCM, "PL23BTZ2", "1454 PL23BTZ2 "}, - {VarDesc::FloatCM, "PL34BTZ2", "1455 PL34BTZ2 "}, - {VarDesc::FloatCM, "PLATBTXP", "1456 PLATBTXP "}, - {VarDesc::FloatCM, "PRLS01XP", "1457 PRLS01XP "}, - {VarDesc::FloatCM, "PRLS11XP", "1458 PRLS11XP "}, - {VarDesc::FloatCM, "PRLS01YP", "1459 PRLS01YP "}, - {VarDesc::FloatCM, "PRLS11YP", "1460 PRLS11YP "}, - {VarDesc::FloatCM, "PL12RLZ1", "1461 PL12RLZ1 "}, - {VarDesc::FloatCM, "PL23RLZ1", "1462 PL23RLZ1 "}, - {VarDesc::FloatCM, "PL34RLZ1", "1463 PL34RLZ1 "}, - {VarDesc::FloatCM, "PL12RLZ2", "1464 PL12RLZ2 "}, - {VarDesc::FloatCM, "PL23RLZ2", "1465 PL23RLZ2 "}, - {VarDesc::FloatCM, "PL34RLZ2", "1466 PL34RLZ2 "}, - {VarDesc::FloatCM, "PRLS01AN", "1467 PRLS01AN "}, - {VarDesc::FloatCM, "PRLS11AN", "1468 PRLS11AN "}, - {VarDesc::FloatCM, "PRLS01LE", "1469 PRLS01LE "}, - {VarDesc::FloatCM, "PRLS11LE", "1470 PRLS11LE "}, - {VarDesc::FloatCM, "PLATBSXP", "1471 PLATBSXP "}, - {VarDesc::FloatCM, "PLATBTLS", "1472 PLATBTLS "}, - {VarDesc::FloatCM, "PL12FRZP", "1473 PL12FRZP "}, - {VarDesc::FloatCM, "PL23FRZP", "1474 PL23FRZP "}, - {VarDesc::FloatCM, "PL34FRZP", "1475 PL34FRZP "}, - {VarDesc::FloatCM, "PLATFRYP", "1476 PLATFRYP "}, - {VarDesc::FloatCM, "PLATFRXP", "1477 PLATFRXP "}, - {VarDesc::FloatCM, "PSSS3DYT", "1478 PSSS3DYT "}, - {VarDesc::FloatCM, "PSSS3DXT", "1479 PSSS3DXT "}, - {VarDesc::FloatCM, "PSSS3X0", "1480 PSSS3X0 "}, - {VarDesc::FloatCM, "PSSS3Y0", "1481 PSSS3Y0 "}, - {VarDesc::FloatCM, "PSSS3X1", "1482 PSSS3X1 "}, - {VarDesc::FloatCM, "PSSS3Y1", "1483 PSSS3Y1 "}, - {VarDesc::FloatCM, "PSSS3X2", "1484 PSSS3X2 "}, - {VarDesc::FloatCM, "PSSS3Y2", "1485 PSSS3Y2 "}, - {VarDesc::FloatCM, "PSSS3X3", "1486 PSSS3X3 "}, - {VarDesc::FloatCM, "PSSS3Y3", "1487 PSSS3Y3 "}, - {VarDesc::FloatCM, "PSSS3X4", "1488 PSSS3X4 "}, - {VarDesc::FloatCM, "PSSS3Y4", "1489 PSSS3Y4 "}, - {VarDesc::FloatCM, "PSSS3X5", "1490 PSSS3X5 "}, - {VarDesc::FloatCM, "PSSS3Y5", "1491 PSSS3Y5 "}, - {VarDesc::FloatCM, "PSSS3X6", "1492 PSSS3X6 "}, - {VarDesc::FloatCM, "PSSS3Y6", "1493 PSSS3Y6 "}, - {VarDesc::FloatCM, "PSSRAXP", "1494 PSSRAXP "}, - {VarDesc::FloatCM, "PSSRAYP", "1495 PSSRAYP "}, - {VarDesc::FloatCM, "PSSZRP1", "1496 PSSZRP1 "}, - {VarDesc::FloatCM, "PSSZRP2", "1497 PSSZRP2 "}, - {VarDesc::FloatCM, "PSSZRP3", "1498 PSSZRP3 "}, - {VarDesc::FloatCM, "PSSZRP4", "1499 PSSZRP4 "}, - {VarDesc::FloatCM, "PSSZRP5", "1500 PSSZRP5 "}, - {VarDesc::FloatCM, "PSSZRP6", "1501 PSSZRP6 "}, - {VarDesc::FloatCM, "PRHS3ZP1", "1502 PRHS3ZP1 "}, - {VarDesc::FloatCM, "PRHS3ZP2", "1503 PRHS3ZP2 "}, - {VarDesc::FloatCM, "PRHS3ZP3", "1504 PRHS3ZP3 "}, - {VarDesc::FloatCM, "PRHS3ZP4", "1505 PRHS3ZP4 "}, - {VarDesc::FloatCM, "PRHS3ZP5", "1506 PRHS3ZP5 "}, - {VarDesc::FloatCM, "PRHS3ZP6", "1507 PRHS3ZP6 "}, - {VarDesc::FloatCM, "PRHS3ZP7", "1508 PRHS3ZP7 "}, - {VarDesc::FloatCM, "PL14RAZE", "1509 PL14RAZE "}, - {VarDesc::FloatCM, "PL14RAZP", "1510 PL14RAZP "}, - {VarDesc::FloatCM, "PL14RAY1", "1511 PL14RAY1 "}, - {VarDesc::FloatCM, "PL14RAY2", "1512 PL14RAY2 "}, - {VarDesc::FloatCM, "PL14RVZE", "1513 PL14RVZE "}, - {VarDesc::FloatCM, "PL14RVYP", "1514 PL14RVYP "}, - {VarDesc::FloatCM, "PL14CRY1", "1515 PL14CRY1 "}, - {VarDesc::FloatCM, "PL14CRY2", "1516 PL14CRY2 "}, - {VarDesc::FloatCM, "P12S3CRA", "1517 P12S3CRA "}, - {VarDesc::FloatCM, "P12S3CRL", "1518 P12S3CRL "}, - {VarDesc::FloatCM, "P23S3CRA", "1519 P23S3CRA "}, - {VarDesc::FloatCM, "P23S3CRL", "1520 P23S3CRL "}, - {VarDesc::FloatCM, "P34S3CRA", "1521 P34S3CRA "}, - {VarDesc::FloatCM, "P34S3CRL", "1522 P34S3CRL "}, - {VarDesc::FloatCM, "PL14CRZ1", "1523 PL14CRZ1 "}, - {VarDesc::FloatCM, "PL14CRZ2", "1524 PL14CRZ2 "}, - {VarDesc::FloatCM, "PL14CRZ3", "1525 PL14CRZ3 "}, - {VarDesc::FloatCM, "PL14CRZ4", "1526 PL14CRZ4 "}, - {VarDesc::FloatCM, "PL14CRZ5", "1527 PL14CRZ5 "}, - {VarDesc::FloatCM, "PL14CRZ6", "1528 PL14CRZ6 "}, - {VarDesc::FloatCM, "PL14CRZ7", "1529 PL14CRZ7 "}, - {VarDesc::FloatCM, "PL14CRZ8", "1530 PL14CRZ8 "}, - {VarDesc::FloatCM, "PL14CRZ9", "1531 PL14CRZ9 "}, - {VarDesc::FloatCM, "PL14CRZA", "1532 PL14CRZA "}, - {VarDesc::FloatCM, "P14S3BFL", "1533 P14S3BFL "}, - {VarDesc::FloatCM, "P14S3BFA", "1534 P14S3BFA "}, - {VarDesc::FloatCM, "P14S3BFX", "1535 P14S3BFX "}, - {VarDesc::FloatCM, "P14S3BFY", "1536 P14S3BFY "}, - {VarDesc::FloatCM, "P14S3FLA", "1537 P14S3FLA "}, - {VarDesc::FloatCM, "P14S3FLX", "1538 P14S3FLX "}, - {VarDesc::FloatCM, "P14S3FLY", "1539 P14S3FLY "}, - {VarDesc::FloatCM, "P14S3FLZ", "1540 P14S3FLZ "}, -}; - - -VarDesc AgddXML_Vars[] = { - {VarDesc::String, "NameOfVariable", "Name Of Variable"}, - {VarDesc::FloatCM, "ValueOfVariable", "Value Of Variable"}, -}; - - VarDesc HwSwId_Vars[] = { {VarDesc::String, "HARDNAME", "Hard name"}, {VarDesc::String, "SOFTNAME", "Soft name"}, @@ -1913,7 +557,6 @@ void AmdcDbSvcMakerFromRDB::Set( m_detectorNode = detectorNode ; AMDC(pIRDBAccessSvc,pAmdcDbSvc); - AGDD(pIRDBAccessSvc,pAmdcDbSvc); ATYP(pIRDBAccessSvc,pAmdcDbSvc); ACUT(pIRDBAccessSvc,pAmdcDbSvc); @@ -1941,18 +584,6 @@ void AmdcDbSvcMakerFromRDB::Set( ASZT(pIRDBAccessSvc,pAmdcDbSvc); ISZT(pIRDBAccessSvc,pAmdcDbSvc); -// ABRT(pIRDBAccessSvc,pAmdcDbSvc); -// AECT(pIRDBAccessSvc,pAmdcDbSvc); -// ECST(pIRDBAccessSvc,pAmdcDbSvc); -// FEET(pIRDBAccessSvc,pAmdcDbSvc); -// GENV(pIRDBAccessSvc,pAmdcDbSvc); -// JDSH(pIRDBAccessSvc,pAmdcDbSvc); -// JFSH(pIRDBAccessSvc,pAmdcDbSvc); -// JTSH(pIRDBAccessSvc,pAmdcDbSvc); -// MBAP(pIRDBAccessSvc,pAmdcDbSvc); - -// AgddXMLVariables(pIRDBAccessSvc,pAmdcDbSvc); - HwSwIdMapping(pIRDBAccessSvc,pAmdcDbSvc); XtomoData(pIRDBAccessSvc,pAmdcDbSvc); @@ -1970,12 +601,6 @@ void AmdcDbSvcMakerFromRDB::AMDC(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcD } -void AmdcDbSvcMakerFromRDB::AGDD(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("AGDD", RANGE(AGDD_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - void AmdcDbSvcMakerFromRDB::ATYP(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) { addVars ("ATYP", RANGE(ATYP_Vars), pIRDBAccessSvc, pAmdcDbSvc); @@ -2273,66 +898,6 @@ void AmdcDbSvcMakerFromRDB::ISZT(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcD } -void AmdcDbSvcMakerFromRDB::ABRT(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("ABRT", RANGE(ABRT_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - -void AmdcDbSvcMakerFromRDB::AECT(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("AECT", RANGE(AECT_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - -void AmdcDbSvcMakerFromRDB::ECST(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("ECST", RANGE(ECST_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - -void AmdcDbSvcMakerFromRDB::FEET(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("FEET", RANGE(FEET_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - -void AmdcDbSvcMakerFromRDB::GENV(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("GENV", RANGE(GENV_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - -void AmdcDbSvcMakerFromRDB::JDSH(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("JDSH", RANGE(JDSH_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - -void AmdcDbSvcMakerFromRDB::JFSH(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("JFSH", RANGE(JFSH_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - -void AmdcDbSvcMakerFromRDB::JTSH(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("JTSH", RANGE(JTSH_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - -void AmdcDbSvcMakerFromRDB::MBAP(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("MBAP", RANGE(MBAP_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - -void AmdcDbSvcMakerFromRDB::AgddXMLVariables(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) -{ - addVars ("AgddXMLVariables", RANGE(AgddXML_Vars), pIRDBAccessSvc, pAmdcDbSvc); -} - - void AmdcDbSvcMakerFromRDB::HwSwIdMapping(IRDBAccessSvc* pIRDBAccessSvc,AmdcDbSvc* pAmdcDbSvc) { addVars ("HwSwIdMapping", RANGE(HwSwId_Vars), pIRDBAccessSvc, pAmdcDbSvc); diff --git a/MuonSpectrometer/Amdcsimrec/AmdcOracle/AmdcOracle/AmdcDumpOracle.h b/MuonSpectrometer/Amdcsimrec/AmdcOracle/AmdcOracle/AmdcDumpOracle.h index 9a2f41a48716d5e4c177b34356f565fa0e658e83..5c80801b797b1f6bf979a2f04d49ad19ddf55b54 100755 --- a/MuonSpectrometer/Amdcsimrec/AmdcOracle/AmdcOracle/AmdcDumpOracle.h +++ b/MuonSpectrometer/Amdcsimrec/AmdcOracle/AmdcOracle/AmdcDumpOracle.h @@ -63,19 +63,7 @@ private: void DumpWRPC( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); void DumpACUT( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); void DumpATYP( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - void DumpAGDD( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); void DumpAMDC( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - void DumpABRT( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - void DumpAECT( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - void DumpECST( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - void DumpFEET( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - void DumpGENV( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - void DumpJDSH( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - void DumpJFSH( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - void DumpJTSH( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - void DumpMBAP( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd , int& Kwarn, int& Kchck ); - - void DumpAgddXMLVariables( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd ,int& Kwarn, int& Kchck ); void DumpHwSwIdMapping( IRDBAccessSvc* pIRDBAccessSvc , std::string TagAdd ,int& Kwarn, int& Kchck ); diff --git a/MuonSpectrometer/Amdcsimrec/AmdcOracle/src/AmdcDumpOracle.cxx b/MuonSpectrometer/Amdcsimrec/AmdcOracle/src/AmdcDumpOracle.cxx index 8759909f271ca61f262839b1f8531d0ec6faecaf..61f445ee19bd95698dbc6752700615e6723885fc 100755 --- a/MuonSpectrometer/Amdcsimrec/AmdcOracle/src/AmdcDumpOracle.cxx +++ b/MuonSpectrometer/Amdcsimrec/AmdcOracle/src/AmdcDumpOracle.cxx @@ -412,16 +412,6 @@ StatusCode AmdcDumpOracle::DoIt() << "ATYP: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " << std::endl; -// Check AGDD - Kwarn = 0 ; - Kchck = 0 ; - DumpAGDD((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); - KwarnTot = KwarnTot + Kwarn ; - KchckTot = KchckTot + Kchck ; - OutFile - << "AGDD: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " - << std::endl; - // Check AMDC Kwarn = 0 ; Kchck = 0 ; @@ -432,107 +422,6 @@ StatusCode AmdcDumpOracle::DoIt() << "AMDC: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " << std::endl; -// // Check ABRT -// Kwarn = 0 ; -// Kchck = 0 ; -// DumpABRT((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); -// KwarnTot = KwarnTot + Kwarn ; -// KchckTot = KchckTot + Kchck ; -// OutFile -// << "ABRT: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " -// << std::endl; -// -// // Check AECT -// Kwarn = 0 ; -// Kchck = 0 ; -// DumpAECT((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); -// KwarnTot = KwarnTot + Kwarn ; -// KchckTot = KchckTot + Kchck ; -// OutFile -// << "AECT: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " -// << std::endl; -// -// // Check ECST -// Kwarn = 0 ; -// Kchck = 0 ; -// DumpECST((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); -// KwarnTot = KwarnTot + Kwarn ; -// KchckTot = KchckTot + Kchck ; -// OutFile -// << "ECST: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " -// << std::endl; -// -// // Check FEET -// Kwarn = 0 ; -// Kchck = 0 ; -// DumpFEET((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); -// KwarnTot = KwarnTot + Kwarn ; -// KchckTot = KchckTot + Kchck ; -// OutFile -// << "FEET: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " -// << std::endl; -// -// // Check GENV -// Kwarn = 0 ; -// Kchck = 0 ; -// DumpGENV((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); -// KwarnTot = KwarnTot + Kwarn ; -// KchckTot = KchckTot + Kchck ; -// OutFile -// << "GENV: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " -// << std::endl; -// -// // Check JDSH -// Kwarn = 0 ; -// Kchck = 0 ; -// DumpJDSH((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); -// KwarnTot = KwarnTot + Kwarn ; -// KchckTot = KchckTot + Kchck ; -// OutFile -// << "JDSH: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " -// << std::endl; -// -// // Check JFSH -// Kwarn = 0 ; -// Kchck = 0 ; -// DumpJFSH((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); -// KwarnTot = KwarnTot + Kwarn ; -// KchckTot = KchckTot + Kchck ; -// OutFile -// << "JFSH: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " -// << std::endl; -// -// // Check JTSH -// Kwarn = 0 ; -// Kchck = 0 ; -// DumpJTSH((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); -// KwarnTot = KwarnTot + Kwarn ; -// KchckTot = KchckTot + Kchck ; -// OutFile -// << "JTSH: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " -// << std::endl; -// -// // Check MBAP -// Kwarn = 0 ; -// Kchck = 0 ; -// DumpMBAP((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); -// KwarnTot = KwarnTot + Kwarn ; -// KchckTot = KchckTot + Kchck ; -// OutFile -// << "MBAP: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " -// << std::endl; - -// // Check AgddXMLVariables -// Kwarn = 0 ; -// Kchck = 0 ; -// DumpAgddXMLVariables((&*p_IRDBAccessSvcWithUpdate),KountCallsDoItASstring,Kwarn,Kchck); -// KwarnTot = KwarnTot + Kwarn ; -// KchckTot = KchckTot + Kchck ; -// OutFile -// << "AgddXMLVariables: " << Kwarn << " Warnings " << " for " << Kchck << " tested elements " -// << std::endl; - - // Check HwSwIdMapping Kwarn = 0 ; Kchck = 0 ; @@ -2054,69 +1943,6 @@ void AmdcDumpOracle::DumpATYP( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd } -void AmdcDumpOracle::DumpAGDD( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "AGDD"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - void AmdcDumpOracle::DumpAMDC( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ std::string NameOfTheSet = "AMDC"; @@ -2180,639 +2006,6 @@ void AmdcDumpOracle::DumpAMDC( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd } -void AmdcDumpOracle::DumpABRT( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "ABRT"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - -void AmdcDumpOracle::DumpAECT( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "AECT"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - -void AmdcDumpOracle::DumpECST( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "ECST"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - -void AmdcDumpOracle::DumpFEET( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "FEET"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - -void AmdcDumpOracle::DumpGENV( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "GENV"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - - -void AmdcDumpOracle::DumpJDSH( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "JDSH"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - -void AmdcDumpOracle::DumpJFSH( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "JFSH"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - -void AmdcDumpOracle::DumpJTSH( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "JTSH"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - -void AmdcDumpOracle::DumpMBAP( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "MBAP"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - -void AmdcDumpOracle::DumpAgddXMLVariables( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ - - std::string NameOfTheSet = "AgddXMLVariables"; - - std::ofstream OutFile; - std::string FileName = "Out.AmdcOracle."+ TagAdd + NameOfTheSet; - OutFile.open(FileName.c_str()); - OutFile << setiosflags(std::ios::fixed); - OutFile << "Checking " << NameOfTheSet << " content started" << std::endl; - Kwarn = -1 ; - Kchck = 0 ; - - IRDBRecordset_ptr pIRDBRecordsetFromRDB = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"RDB"); - if (pIRDBRecordsetFromRDB->size() == 0){ - OutFile << "No " << NameOfTheSet << " in RDB " << std::endl; - return; - } - - IRDBRecordset_ptr pIRDBRecordsetFromAmdc = pIRDBAccessSvc->getRecordsetPtr(NameOfTheSet,"Amdc"); - if (pIRDBRecordsetFromAmdc->size() == 0){ - OutFile << "No " << NameOfTheSet << " in Amdc " << std::endl; - return; - } - - Kwarn = 0 ; - - std::vector<IRDBRecord*>::const_iterator itFromRDB = pIRDBRecordsetFromRDB->begin(); - for ( ; itFromRDB<pIRDBRecordsetFromRDB->end(); itFromRDB++){ - const AmdcDbRecord* pAmdcDbRecordFromRDB = dynamic_cast<const AmdcDbRecord*>((*itFromRDB)); - if (pAmdcDbRecordFromRDB == 0){ - OutFile << "No way to cast pAmdcDbRecordFromRDB for " << NameOfTheSet << std::endl; - return; - } - int Ifound = 0 ; - std::vector<IRDBRecord*>::const_iterator itFromAmdc = pIRDBRecordsetFromAmdc->begin(); - for ( ; itFromAmdc<pIRDBRecordsetFromAmdc->end(); itFromAmdc++){ - if (Ifound==1) continue; - - Ifound = 1; - - const AmdcDbRecord* pAmdcDbRecordFromAmdc = dynamic_cast<const AmdcDbRecord*>((*itFromAmdc)); - if (pAmdcDbRecordFromAmdc == 0){ - OutFile << "No way to cast pAmdcDbRecordFromAmdc for " << NameOfTheSet << std::endl; - return; - } - - if (Ifound == 1) Ifound = pAmdcDbRecordFromAmdc->doWeMatchForThisVariable("NameOfVariable",pAmdcDbRecordFromRDB); - - if (Ifound == 1) pAmdcDbRecordFromAmdc->doIMatch(m_WarningLevel,Kwarn,Kchck,OutFile,pAmdcDbRecordFromRDB); - - } - - if (Ifound!=1){ - Kwarn = Kwarn + 1; - OutFile << "WARNING: No way to check " << pAmdcDbRecordFromRDB->getUniversalId() << std::endl; - } - - } - - OutFile << "Checking " << NameOfTheSet << " content ended" << std::endl; - - OutFile.close(); - -} - void AmdcDumpOracle::DumpHwSwIdMapping( IRDBAccessSvc* pIRDBAccessSvc, std::string TagAdd, int& Kwarn,int& Kchck){ std::string NameOfTheSet = "HwSwIdMapping"; diff --git a/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h b/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h index e44dd2cf112fbedd17b039afdf41637e36da6cc1..951515ba13ceb8b2e71d51fbb7e9743ba5c2c543 100644 --- a/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h +++ b/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h @@ -62,7 +62,6 @@ class RpcHitIdHelper; class RpcIdHelper; class PileUpMergeSvc; class IAtRndmGenSvc; -class MsgStream; class ITagInfoMgr; class IRPCConditionsSvc; diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h index d7f2ededd1da2c7a62dab9e196da33429e50f003..ba65c4567016f5c43479acd39825cba7559551d2 100644 --- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h +++ b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h @@ -59,7 +59,6 @@ class sTgcIdHelper; class sTgcDigitMaker; class sTgcHitIdHelper; class IAtRndmGenSvc; -class MsgStream; class TFile; class TH2F; diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx index 0aa8118f7b829b69f57caf94b5e3084c0fa05bf2..90fdd5104ab5e677ffcce9037749fd924955c24e 100644 --- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx +++ b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx @@ -22,16 +22,6 @@ #include "sTGC_Digitization/sTgcVMMSim.h" #include "sTGC_Digitization/sTgcSimDigitData.h" -//Gaudi - Core -#include "GaudiKernel/MsgStream.h" -#include "GaudiKernel/IToolSvc.h" -#include "GaudiKernel/SystemOfUnits.h" -#include "StoreGate/StoreGateSvc.h" -#include "PathResolver/PathResolver.h" -#include "AIDA/IHistogram1D.h" -#include "EventInfo/TagInfo.h" -#include "EventInfoMgt/ITagInfoMgr.h" - //Geometry #include "MuonReadoutGeometry/MuonDetectorManager.h" #include "MuonReadoutGeometry/sTgcReadoutElement.h" @@ -55,11 +45,9 @@ #include "CLHEP/Random/RandFlat.h" #include "CLHEP/Random/RandGauss.h" -#include <string> #include <sstream> #include <iostream> #include <fstream> -#include <vector> #include <TFile.h> #include <TH2.h> @@ -146,7 +134,7 @@ sTgcDigitizationTool::sTgcDigitizationTool(const std::string& type, const std::s m_timeJitterElectronicsStrip(0), m_timeJitterElectronicsPad(0), m_hitTimeMergeThreshold(0), - m_energyDepositThreshold(300.0*Gaudi::Units::eV) + m_energyDepositThreshold(300.0*CLHEP::eV) //m_file(0), //m_SimHitOrg(0), diff --git a/MuonSpectrometer/MuonG4/NSW_Sim/data/NSW_StationDescription.xml b/MuonSpectrometer/MuonG4/NSW_Sim/data/NSW_StationDescription.xml index 8ede66a2b3bf4e3e2a5b68998be8253cc29e2ec8..cd500edbfdfb2502290cdd1b47f2864a67c85615 120000 --- a/MuonSpectrometer/MuonG4/NSW_Sim/data/NSW_StationDescription.xml +++ b/MuonSpectrometer/MuonG4/NSW_Sim/data/NSW_StationDescription.xml @@ -1 +1 @@ -stations.v1.78.xml \ No newline at end of file +stations.v1.79.xml \ No newline at end of file diff --git a/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v1.79.xml b/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v1.79.xml new file mode 100644 index 0000000000000000000000000000000000000000..6af030a1bf3d63bd0bc94f416cf5db1f681c17f4 --- /dev/null +++ b/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v1.79.xml @@ -0,0 +1,323 @@ +<?xml version="1.0" encoding="UTF-8"?> +<AGDD> + +<section name="NSW_Parameters" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" > +<!-- Global variables--> +<var name="NSW_NbrOfLayers" value="4"/> +<var name="NSW_NbrOfDriftPcb" value="3"/> +<var name="NSW_NbrOfROPcb" value="2"/> +</section> + +<section name="NSW_sTGC_Parameters" version="13.7" top_volume="useless" date=" June 30, 2016 " author="Daniel Lellouch"> +<!-- ================ Global Variables ================= --> + +<!-- Thickness of a quadruplet --> +<var name="NSW_sTGC_Tck" value="49.34"/> +<!-- Gas Gap inside one layer --> +<var name="NSW_sTGC_GasTck" value="2.85"/> +<!-- G10 thickness per layer --> +<var name="NSW_sTGC_pcbTck" value="3"/> +<!-- Number of layers in a quaduplet --> +<var name="NSW_sTGC_NbrOfLayers" value="4"/> +<!-- Wire pitch --> +<var name="NSW_sTGC_WirePitch" value="1.8"/> +<!-- Strip pitch --> +<var name="NSW_sTGC_StripPitch" value="3.2"/> +<!-- Strip width --> +<var name="NSW_sTGC_StripWidth" value="2.7"/> +<!-- Width of G10 frame besides gas volume --> +<var name="NSW_sTGC_SideFrame" value="28.5"/> +<!-- Width of G10 frame in base w/o capacitor --> +<var name="NSW_sTGC_hFrameNoCapacitor" value="11"/> +<!-- Width of G10 frame in base with capacitor --> +<var name="NSW_sTGC_hFrameCapacitor" value="14"/> +<!-- Opening (in degrees) of trapezes in small wedges --> +<var name="NSW_sTGC_SmallOpening" value="17"/> +<!-- Opening (in degrees) of trapezes in large wedges --> +<var name="NSW_sTGC_LargeOpening" value="28"/> +<!-- Z center of small Pivot --> +<var name="NSW_sTGC_ZSmallPivot" value="7344"/> +<!-- Z center of small Confirm --> +<var name="NSW_sTGC_ZSmallConfirm" value="7010"/> +<!-- Z center of Large Pivot --> +<var name="NSW_sTGC_ZLargePivot" value="7474"/> +<!-- Z center of Large Confirm --> +<var name="NSW_sTGC_ZLargeConfirm" value="7808"/> +<!-- Z of each volume, relative to center of quadruplet --> +<array name="NSW_sTGC_LayerDeltaZ" values="-16.45;-5.48;5.49;16.46"/> +<!-- Side of the Pad readout --> +<array name="NSW_sTGC_PadSide" values="-1;1;-1;1"/> +<!-- Side of the Strip readout --> +<array name="NSW_sTGC_StripSide" values="1;-1;1;-1"/> +</section> + +<!-- ================ sTGC ========================= --> + + +<section name="NewSmallWheels_sTGC" version="20.2" top_volume="useless" date=" March 31, 2018 " author="Daniel Lellouch"> + +<composition name="NSW_sTGC"> + +<sTGC_Tech type="sTGC_1" geometryLevel="1" nLayers="NSW_sTGC_NbrOfLayers" gasTck="NSW_sTGC_GasTck" pcbTck="NSW_sTGC_pcbTck" Tck="NSW_sTGC_Tck" f4="NSW_sTGC_hFrameNoCapacitor" f5="NSW_sTGC_hFrameNoCapacitor" f6="NSW_sTGC_SideFrame"/> + +<!-- ================ small Pivot ========================= --> + +<sTGC type="sTG1-QS1P" tech="sTGC_1" subType="QS1P" sWidth="346.93" lWidth="743.15" Length="1325.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="279.32" lPadWidth="667.18" sStripWidth="293.48" lStripWidth="681.33" padH="80;80;80.24;80.24" nPadPhi="4;4;3;3" anglePadPhi="5" firstPadPhiDivision_C="-5;-5;-2.5;-2.5" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-5;-5;-2.5;-2.5" PadPhiShift_A="-2;2;-2;2" nPadH="17;17;17;17" firstPadH="65.8;65.8;28.61;28.61" firstPadRow="1;1;1;1" nWires="371;370;370;370" wireCutout="802.8;829.8;856.8;883.8" firstWire="-333;-331.65;-332.55;-332.1" wireGroupWidth="20" nStrips="406" firstTriggerBand="3;3;3;3" nTriggerBands="28;28;28;28" firstStripInTrigger="44;44;44;44" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13; 12;13;12;13;12;13;10" StripsInBandsLayer2="12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;13;12; 13;12;13;12;13;12;10" StripsInBandsLayer3="12;13;12;13;12;13;12;13;13;12;13;12;13;12;13;12;13;12;13;12;13;12; 13;12;13;13;12;13;8" StripsInBandsLayer4="12;13;12;13;12;13;13;12;13;12;13;12;13;12;13;13;12;13;12;13;12;13; 12;13;12;13;13;12;8" nWireGroups="19;20;19;19" firstWireGroup="20;5;10;15"/> +</sTGC> + +<chamberPosition volume="sTG1-QS1P" type="ENDCAP" chamberType="sTGS" radius="1563" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/> + +<sTGC type="sTG1-QS2P" tech="sTGC_1" subType="QS2P" sWidth="746.14" lWidth="1102.25" Length="1191.4" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="677.64" lPadWidth="1026.28" sStripWidth="691.8" lStripWidth="1040.43" padH="80;80;80.24;80.24" nPadPhi="2;2;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="0;0;-3.75;-3.75" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="0;0;-3.75;-3.75" PadPhiShift_A="-2;2;-2;2" nPadH="15;15;15;15" firstPadH="93.2;93.2;60.09;60.09" firstPadRow="18;18;18;18" nWires="569;570;570;570" wireCutout="0;0;0;0" firstWire="-511.2;-511.65;-512.55;-512.1" wireGroupWidth="20" nStrips="365" firstTriggerBand="34;34;34;34" nTriggerBands="30;30;30;30" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="4;13;12;13;12;13;12;13;12;12; 12;13;12;12;13;12;13;12;13;12; 13;12;13;12;13;12;13;12;13;11" StripsInBandsLayer2="5;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;13;12;13;12; 13;12;13;12;13;12;13;12;13;10" StripsInBandsLayer3="5;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;13;12;13;12; 13;12;13;12;13;12;13;12;13;10" StripsInBandsLayer4="7;12;13;12;13;12;13;13;12;12; 12;13;12;13;12;13;13;12;13;12; 13;12;13;12;13;12;13;13;12;7" nWireGroups="29;30;29;29" firstWireGroup="20;5;10;15"/> +</sTGC> + +<chamberPosition volume="sTG1-QS2P" type="ENDCAP" chamberType="sTGS" radius="2831.5" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/> + +<sTGC type="sTG1-QS3P" tech="sTGC_1" subType="QS3P" sWidth="1105.96" lWidth="1406.59" Length="1005.8" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="1037.46" lPadWidth="1330.62" sStripWidth="293.48" lStripWidth="681.33" padH="80;80;80.24;80.24" nPadPhi="2;2;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="0;0;-3.75;-3.75" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="0;0;-3.75;-3.75" PadPhiShift_A="-2;2;2;2" nPadH="12;12;13;13" firstPadH="89.4;89.4;59.88;59.88" firstPadRow="33;33;33;33" nWires="739;739;739;738" wireCutout="0;0;0;0" firstWire="-664.2;-664.65;-663.75;-663.3" wireGroupWidth="20" nStrips="307" firstTriggerBand="64;64;64;64" nTriggerBands="26;26;25;25" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="3;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;12;13;12;13; 12;13;12;13;12;5" StripsInBandsLayer2="6;12;13;12;13;13;12;13;12;12; 12;13;12;13;12;13;12;13;12;13; 13;12;13;12;13;3" StripsInBandsLayer3="6;12;13;12;13;13;12;13;12;12; 12;13;12;13;12;13;12;13;12;13; 12;13;12;13;13" StripsInBandsLayer4="7;13;12;13;12;13;12;13;12;12; 12;13;13;12;13;12;13;12;13;12; 13;12;13;13;11" nWireGroups="37;38;38;38" firstWireGroup="20;14;10;3"/> +</sTGC> + +<chamberPosition volume="sTG1-QS3P" type="ENDCAP" chamberType="sTGS" radius="3942.5" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/> + + +<!-- ================ small confirm =============== --> + +<sTGC type="sTG1-QS1C" tech="sTGC_1" subType="QS1C" sWidth="346.93" lWidth="743.15" Length="1325.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="293.48" lPadWidth="681.33" sStripWidth="691.8" lStripWidth="1040.43" padH="76.35;76.35;76.59;76.59" nPadPhi="4;4;4;4" anglePadPhi="5" firstPadPhiDivision_C="-3.75;-6.25;-3.75;-6.25" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-6.25;-3.75;-6.25;-3.75" PadPhiShift_A="2;-2;2;-2" nPadH="18;18;17;17" firstPadH="40.22;40.22;81.51;81.51" firstPadRow="2;2;2;2" nWires="370;370;370;371" wireCutout="883.8;856.8;829.8;802.8" firstWire="-332.1;-331.65;-332.55;-333" wireGroupWidth="20" nStrips="406" firstTriggerBand="5;5;5;5" nTriggerBands="32;32;31;31" firstStripInTrigger="44;44;44;44" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;12;11;12;12;12; 12;12;12;12;12;12;12;12;11;12;12;12" StripsInBandsLayer2="12;12;12;12;11;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 11;12;12;12;12;12;12;12;12;12;12;11" StripsInBandsLayer3="12;12;12;12;11;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12;11;10" StripsInBandsLayer4="12;12;12;12;12;12;12;12;11; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12;12;9" nWireGroups="20;19;19;19" firstWireGroup="5;10;15;20"/> +</sTGC> + +<chamberPosition volume="sTG1-QS1C" type="ENDCAP" chamberType="sTGS" radius="1563" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/> + +<sTGC type="sTG1-QS2C" tech="sTGC_1" subType="QS2C" sWidth="746.14" lWidth="1102.25" Length="1191.4" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="691.8" lPadWidth="1040.43" sStripWidth="1051.61" lStripWidth="1344.78" padH="76.35;76.35;76.59;76.59" nPadPhi="3;3;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-1.87;-5.62;-1.87" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-1.87;-5.62;-1.87;-5.62" PadPhiShift_A="2;-2;2;-2" nPadH="15;15;16;16" firstPadH="81.98;81.98;50.99;50.99" firstPadRow="20;20;19;19" nWires="570;570;570;569" wireCutout="0;0;0;0" firstWire="-512.1;-511.65;-512.55;-511.2" wireGroupWidth="20" nStrips="365" firstTriggerBand="64;64;64;64" nTriggerBands="31;31;31;31" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="2;12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;11;12;12;12;12; 12;12;12;12;12;12;12;12;11;12" StripsInBandsLayer2="12;12;12;12;12;12;12;12;12;12;12; 12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12" StripsInBandsLayer3="2;12;12;12;12;12;12;12;12;12;12; 12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12" StripsInBandsLayer4="5;12;11;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12" nWireGroups="30;29;29;29" firstWireGroup="5;10;15;20"/> +</sTGC> + +<chamberPosition volume="sTG1-QS2C" type="ENDCAP" chamberType="sTGS" radius="2831.5" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/> + +<sTGC type="sTG1-QS3C" tech="sTGC_1" subType="QS3C" sWidth="1105.96" lWidth="1406.59" Length="1005.8" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="1051.61" lPadWidth="1344.78" sStripWidth="1051.61" lStripWidth="1344.78" padH="76.35;76.35;76.59;76.59" nPadPhi="3;3;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-1.87;-5.62;-1.87" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-1.87;-5.62;-1.87;-5.62" PadPhiShift_A="2;-2;2;-2" nPadH="13;13;13;13" firstPadH="99.84;99.84;72.68;72.68" firstPadRow="36;36;35;35" nWires="738;739;739;739" wireCutout="0;0;0;0" firstWire="-663.3;-664.65;-663.75;-664.2" wireGroupWidth="20" nStrips="307" firstTriggerBand="37;37;37;37" nTriggerBands="26;26;25;25" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="6;7;12;12;12;12;12;12;11;11; 12;12;12;12;12;12;12;12;12;12; 12;11;12;13;12;12" StripsInBandsLayer2="2;10;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;13;12" StripsInBandsLayer3="2;10;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;13;13" StripsInBandsLayer4="1;12;12;12;12;12;12;11;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;13;11" nWireGroups="38;38;38;38" firstWireGroup="5;14;15;3"/> +</sTGC> + +<chamberPosition volume="sTG1-QS3C" type="ENDCAP" chamberType="sTGS" radius="3942.5" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/> + + +<!-- ================ Large Pivot ==================== --> + +<sTGC type="sTG1-QL1P" tech="sTGC_1" subType="QL1P" sWidth="542.61" lWidth="1206.82" Length="1332" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="476.42" lPadWidth="1126.66" sStripWidth="490.84" lStripWidth="1141.09" padH="81.42;81.42;81.66;81.66" nPadPhi="6;6;7;7" anglePadPhi="5" firstPadPhiDivision_C="-10;-10;-12.5;-12.5" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-10;-10;-12.5;-12.5" PadPhiShift_A="-2;2;-2;2" nPadH="17;17;16;16" firstPadH="54.39;54.39;98.15;98.15" firstPadRow="1;1;2;2" nWires="621;620;620;620" wireCutout="808;835;862;889" firstWire="-558;-556.65;-557.55;-557.1" wireGroupWidth="20" nStrips="408" firstTriggerBand="3;3;3;3" nTriggerBands="30;30;30;30" firstStripInTrigger="45;45;45;45" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="13;13;12;13;13;13;12;13;13;12;13;13;13;12;13;13;12;13;13;13;12;13; 13;12;13;13;13;12;13;13" StripsInBandsLayer2="13;13;12;13;13;13;12;13;13;13;12;13;13;12;13;13;13;12;13;13;13;12; 13;13;12;13;13;13;12;13" StripsInBandsLayer3="13;13;12;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13; 12;13;13;13;12;13;13;13" StripsInBandsLayer4="13;13;12;13;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13;13;12;13; 13;13;12;13;13;13;12;13" nWireGroups="32;32;32;32" firstWireGroup="20;5;10;15"/> +</sTGC> +<chamberPosition volume="sTG1-QL1P" type="ENDCAP" chamberType="sTGL" radius="1595" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/> + +<sTGC type="sTG1-QL2P" tech="sTGC_1" subType="QL2P" sWidth="1211.81" lWidth="1807.5" Length="1194.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="1144.12" lPadWidth="1727.34" sStripWidth="1158.55" lStripWidth="1741.77" padH="81.42;81.42;81.66;81.66" nPadPhi="4;4;5;5" anglePadPhi="7.5" firstPadPhiDivision_C="-7.5;-7.5;-11.25;-11.25" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-7.5;-7.5;-11.25;-11.25" PadPhiShift_A="-2;2;-2;2" nPadH="14;14;15;15" firstPadH="99.51;99.51;65.69;65.69" firstPadRow="18;18;18;18" nWires="953;954;954;954" wireCutout="0;0;0;0" firstWire="-856.8;-857.25;-858.15;-857.7" wireGroupWidth="20" nStrips="366" firstTriggerBand="33;33;33;33" nTriggerBands="30;30;30;29" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="9;6;12;13;13;12;13;13;13;12;13;13;1313;13;13;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;13" StripsInBandsLayer2="9;6;13;13;12;13;13;13;12;13;13;12;1213;13;13;12;13;13;13;12;13;13;13; 12;13;13;12;13;13;13" StripsInBandsLayer3="7;8;12;13;13;13;12;13;13;13;12;13;1313;13;12;13;13;13;12;13;13;13;12; 13;13;13;12;13;13;13" StripsInBandsLayer4="7;8;13;13;13;12;13;13;13;12;13;13;1313;13;12;13;13;13;12;13;13;13;12; 13;13;13;12;13;13" nWireGroups="48;49;49;48" firstWireGroup="20;5;10;15"/> +</sTGC> + +<chamberPosition volume="sTG1-QL2P" type="ENDCAP" chamberType="sTGL" radius="2868.3" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/> + +<sTGC type="sTG1-QL3P" tech="sTGC_1" subType="QL3P" sWidth="1813.68" lWidth="2111" Length="1153" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="545.3" yCutoutCathode="539.26" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> +<sTGC_readout sPadWidth="1745.99" lPadWidth="2054" sStripWidth="1760.42" lStripWidth="2054" + padH="81.42;81.42;81.66;81.66" nPadPhi="4;4;5;5" anglePadPhi="7.5" firstPadPhiDivision_C="-7.5;-7.5;-11.25;-3.75" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-7.5;-7.5;-11.25;-3.75" PadPhiShift_A="-2;2;-2;2" nPadH="15;15;14;14" firstPadH="32.38;32.38;83.57;83.57" firstPadRow="32;32;33;33" nWires="1133;1134;1134;1134" wireCutout="0;0;0;0" firstWire="-1018.8;-1019.25;-1020.15;-1019.7" wireGroupWidth="20" nStrips="353" firstTriggerBand="63;63;63;62" nTriggerBands="28;28;28;29" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="10;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;13;12;13" StripsInBandsLayer2="11;13;12;13;13;13;12;13;13; 12;13;13;13;12;13;13;13;12;13; 13;13;12;13;13;12;13;13;11" StripsInBandsLayer3="13;13;13;12;13;13;13;12;13; 13;13;12;13;13;13;12;13;13;13; 12;13;13;13;12;13;13;13;8" StripsInBandsLayer4="1;13;13;13;12;13;13;13;13;12; 13;13;13;12;13;13;13;12;13;13; 13;13;12;13;13;13;12;13;7" nWireGroups="57;58;58;57" firstWireGroup="20;5;10;15"/> +</sTGC> + +<chamberPosition volume="sTG1-QL3P" type="ENDCAP" chamberType="sTGL" radius="4054.5" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/> + +<!-- =============== Large Confirm ===================== --> + +<sTGC type="sTG1-QL1C" tech="sTGC_1" subType="QL1C" sWidth="542.61" lWidth="1206.82" Length="1332" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="490.84" lPadWidth="1141.09" sStripWidth="490.84" lStripWidth="1141.09" padH="85.07;85.07;85.31;85.31" nPadPhi="6;6;6;6" anglePadPhi="5" firstPadPhiDivision_C="-8.75;-11.25;-8.75;-11.25" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-11.25;-8.75;-11.25;-8.75" PadPhiShift_A="2;-2;2;-2" nPadH="16;16;16;16" firstPadH="35.26;35.26;80.66;80.66" firstPadRow="1;1;1;1" nWires="620;620;620;621" wireCutout="889;862;835;808" firstWire="-557.1;-556.65;-557.55;-558" wireGroupWidth="20" nStrips="408" firstTriggerBand="3;3;3;3" nTriggerBands="29;29;28;28" firstStripInTrigger="44;44;44;44" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="13;13;13;14;13;13;14;13;13;13; 14;13;13;14;13;13;13;14;13;13; 13;14;13;13;14;13;13;13" StripsInBandsLayer2="13;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13" StripsInBandsLayer3="14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 13;13;14;13;13;14;13;13" StripsInBandsLayer4="14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 14;13;13;14;13;13;14;13" nWireGroups="32;32;32;32" firstWireGroup="5;10;15;20"/> +</sTGC> + +<chamberPosition volume="sTG1-QL1C" type="ENDCAP" chamberType="sTGL" radius="1595" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/> + +<sTGC type="sTG1-QL2C" tech="sTGC_1" subType="QL2C" sWidth="1211.81" lWidth="1807.5" Length="1194.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="1158.55" lPadWidth="1741.77" sStripWidth="1158.55" lStripWidth="1741.77" padH="85.07;85.07;85.31;85.31" nPadPhi="4;4;4;4" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-9.37;-5.62;-9.37" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-9.37;-5.62;-9.37;-5.62" PadPhiShift_A="2;-2;2;-2" nPadH="14;14;14;14" firstPadH="57.31;57.31;106.55;106.55" firstPadRow="17;17;17;17" nWires="954;954;954;953" wireCutout="0;0;0;0" firstWire="-857.7;-857.25;-858.15;-856.8" wireGroupWidth="20" nStrips="366" firstTriggerBand="30;30;30;30" nTriggerBands="29;29;29;29" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="12;5;13;13;13;14;13;13;14;13; 13;13;14;13;13;14;13;13;13;14; 13;13;14;13;13;13;14;13;13" StripsInBandsLayer2="11;5;13;14;13;13;14;13;13;13; 14;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13;13" StripsInBandsLayer3="10;7;13;13;14;13;13;14;13;13; 13;14;13;13;14;13;13;14;13;13; 14;13;13;14;13;13;14;13;13" StripsInBandsLayer4="9;7;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;14;13;13; 14;13;13;14;13;13;14;13;12" nWireGroups="49;49;48;48" firstWireGroup="5;10;15;20"/> +</sTGC> + +<chamberPosition volume="sTG1-QL2C" type="ENDCAP" chamberType="sTGL" radius="2868.3" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/> + +<sTGC type="sTG1-QL3C" tech="sTGC_1" subType="QL3C" sWidth="1813.68" lWidth="2111" Length="1153" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="545.3" yCutoutCathode="539.26" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="1760.42" lPadWidth="2054" sStripWidth="1760.42" lStripWidth="2054" padH="85.07;85.07;85.31;85.31" nPadPhi="4;4;4;4" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-9.37;-5.62;-9.37" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-9.37;-5.62;-9.37;-5.62" PadPhiShift_A="2;-2;2;-2" nPadH="14;14;13;13" firstPadH="41.23;41.23;93.82;93.82" firstPadRow="31;31;31;31" nWires="1134;1134;1134;1133" wireCutout="0;0;0;0" firstWire="-1019.7;-1019.25;-1020.15;-1018.8" wireGroupWidth="20" nStrips="353" firstTriggerBand="60;60;60;60" nTriggerBands="28;28;28;28" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="3;13;13;13;13;14;13;13;14;13;13; 13;14;13;13;14;13;13;13;14;13; 13;13;14;13;13;14;8" StripsInBandsLayer2="2;14;13;13;14;13;13;13;14;13;13; 14;13;13;14;13;13;13;14;13;13; 14;13;13;14;13;13;7" StripsInBandsLayer3="2;14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;13;14;13;13;14; 13;13;14;13;13;14;4" StripsInBandsLayer4="3;14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 13;14;13;13;14;13;3" nWireGroups="58;58;57;57" firstWireGroup="5;10;15;20"/> +</sTGC> + +<chamberPosition volume="sTG1-QL3C" type="ENDCAP" chamberType="sTGL" radius="4054.5" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/> + +</composition> +</section> + + +<!-- ========== MicroMegas ============================== --> + +<section name="NSW_MM_Parameters" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" > + +<!-- Frames. "f1": frame width close to the trapezium large side. "f2": frame width close to the trapezium small side. "f3": frame width close to the trapezium oblique side --> + +<!-- Distance from IP, labeled zmin_MM in Parameter Book --> +<var name="NSW_MM_LM_distanceFromIP" value="7536"/> +<var name="NSW_MM_SM_distanceFromIP" value="7072"/> +<!-- Thickness of Multilayer and the subcomponent (mm)--> +<var name="NSW_MM_GasTck" value="5.04"/> +<var name="NSW_MM_ROPcbTck" value="11.69"/> +<var name="NSW_MM_DriftPcbTck" value="11.284"/> +<var name="NSW_MM_MultilayerTck" value="NSW_NbrOfLayers* NSW_MM_GasTck + (NSW_NbrOfDriftPcb) * NSW_MM_DriftPcbTck+ ( NSW_NbrOfROPcb) * NSW_MM_ROPcbTck" /> <!-- Thickness of one multilayer --> + +<!-- Large sector modules (LM1" LM2). Modules are all trapezoid. ""Height"": radial envelope" ""base/top Width"": upper/lower side of the trapezoid--> +<var name="NSW_MM_LM1_InnerRadius" value="923" /> +<var name="NSW_MM_LM1_Length" value="2310" /> +<var name="NSW_MM_LM1_outerRadius" value="NSW_MM_LM1_InnerRadius+NSW_MM_LM1_Length" /> +<var name="NSW_MM_LM1_f1" value="30"/> +<var name="NSW_MM_LM1_f2" value="30"/> +<var name="NSW_MM_LM1_f3" value="100"/> +<var name="NSW_MM_LMGap_Length" value="5" /> <!-- Radial gap between LM1 and LM2 --> +<var name="NSW_MM_LM2_InnerRadius" value="NSW_MM_LM1_outerRadius+NSW_MM_LMGap_Length" /> +<var name="NSW_MM_LM2_Length" value="1410" /> +<var name="NSW_MM_LM2_outerRadius" value="NSW_MM_LM2_InnerRadius+NSW_MM_LM2_Length" /> +<var name="NSW_MM_LM1_baseWidth" value="640" /> +<var name="NSW_MM_LM1_topWidth" value="2008.5" /> +<var name="NSW_MM_LM2_baseWidth" value="2022.8" /> +<var name="NSW_MM_LM2_topWidth" value="2220" /> +<var name="NSW_MM_LM2_f1" value="30"/> +<var name="NSW_MM_LM2_f2" value="30"/> +<var name="NSW_MM_LM2_f3" value="100"/> +<!-- Small sector modules (SM1" SM2). Modules are all trapezoids. ""Height"": radial envelope" ""base/top Width"": upper/lower side --> +<var name="NSW_MM_SM1_InnerRadius" value="895" /> +<var name="NSW_MM_SM1_Length" value="2210" /> +<var name="NSW_MM_SM1_outerRadius" value="NSW_MM_SM1_InnerRadius+NSW_MM_SM1_Length" /> +<var name="NSW_MM_SMGap_Length" value="5" /> <!-- Radial gap between SM1 and SM2 --> +<var name="NSW_MM_SM1_f1" value="30"/> +<var name="NSW_MM_SM1_f2" value="30"/> +<var name="NSW_MM_SM1_f3" value="100"/> +<var name="NSW_MM_SM2_InnerRadius" value="NSW_MM_SM1_outerRadius+NSW_MM_SMGap_Length" /> +<var name="NSW_MM_SM2_Length" value="1350" /> +<var name="NSW_MM_SM2_outerRadius" value="NSW_MM_SM2_InnerRadius+NSW_MM_SM2_Length" /> +<var name="NSW_MM_SM1_baseWidth" value="500" /> +<var name="NSW_MM_SM1_topWidth" value="1319.2" /> +<var name="NSW_MM_SM2_baseWidth" value="1321.1" /> +<var name="NSW_MM_SM2_topWidth" value="1821.5" /> +<var name="NSW_MM_SM2_f1" value="30"/> +<var name="NSW_MM_SM2_f2" value="30"/> +<var name="NSW_MM_SM2_f3" value="100"/> + +<var name="NSW_MM_LargeSector_ZCENTER" value="(NSW_sTGC_ZLargePivot+NSW_sTGC_ZLargeConfirm)/2."/> +<var name="NSW_MM_SmallSector_ZCENTER" value="(NSW_sTGC_ZSmallPivot+NSW_sTGC_ZSmallConfirm)/2."/> + + +<!-- Thickness of inter-multilayer spacers --> +<var name="NSW_MM_SpacerThickness" value="50" /> + +<!-- Global z-coordinate for the sector center --> +<!-- <var name="NSW_MM_LargeSector_ZCENTER" value="NSW_MM_LM_distanceFromIP + 4.*NSW_MM_DriftPcbTck + 4.*NSW_MM_ROPcbTck + 4.*NSW_MM_GasTck + NSW_MM_SpacerThickness/2."/> +<var name="NSW_MM_SmallSector_ZCENTER" value="NSW_MM_SM_distanceFromIP + 4.*NSW_MM_DriftPcbTck + 4.*NSW_MM_ROPcbTck + 4.*NSW_MM_GasTck + NSW_MM_SpacerThickness/2."/> --> + +</section> + +<section name="NewSmallWheelsMM" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" > + + +<!-- Technologies --> +<mm_Tech type="MM_1" geometryLevel="1" nLayers="NSW_NbrOfLayers" gasTck="NSW_MM_GasTck" driftPcbTck="NSW_MM_DriftPcbTck" ROPcbTck="NSW_MM_ROPcbTck" Tck="NSW_MM_MultilayerTck" /> +<mmSpacer_Tech type="Spa_1" Tck="NSW_MM_SpacerThickness" /> + +<!-- large wheel --> +<micromegas type="sMD1-1-1" tech="MM_1" subType="M1L1" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM1_Length" ylFrame="NSW_MM_LM1_f1" ysFrame="NSW_MM_LM1_f2" xFrame="NSW_MM_LM1_f3"> +<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM1_InnerRadius" roLength="NSW_MM_LM1_Length"/> +</micromegas> +<micromegas type="sMD1-2-1" tech="MM_1" subType="M2L1" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM2_Length" ylFrame="NSW_MM_LM2_f1" ysFrame="NSW_MM_LM2_f2" xFrame="NSW_MM_LM2_f3"> +<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM2_InnerRadius" roLength="NSW_MM_LM2_Length"/> +</micromegas> +<micromegas type="sMD1-1-2" tech="MM_1" subType="M1L2" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM1_Length" ylFrame="NSW_MM_LM1_f1" ysFrame="NSW_MM_LM1_f2" xFrame="NSW_MM_LM1_f3"> +<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM1_InnerRadius" roLength="NSW_MM_LM1_Length"/> +</micromegas> +<micromegas type="sMD1-2-2" tech="MM_1" subType="M2L2" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM2_Length" ylFrame="NSW_MM_LM2_f1" ysFrame="NSW_MM_LM2_f2" xFrame="NSW_MM_LM2_f3"> +<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM2_InnerRadius" roLength="NSW_MM_LM2_Length"/> +</micromegas> + +<mmSpacer type="spa1-1" tech="Spa_1" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_LM1_Length" /> +<mmSpacer type="spa1-2" tech="Spa_1" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_LM2_Length" /> + + +<!-- small wheel --> +<micromegas type="sMD3-1-1" tech="MM_1" subType="M1S1" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM1_Length" ylFrame="NSW_MM_SM1_f1" ysFrame="NSW_MM_SM1_f2" xFrame="NSW_MM_SM1_f3"> +<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM1_InnerRadius" roLength="NSW_MM_SM1_Length"/> +</micromegas> +<micromegas type="sMD3-2-1" tech="MM_1" subType="M2S1" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM2_Length" ylFrame="NSW_MM_SM2_f1" ysFrame="NSW_MM_SM2_f2" xFrame="NSW_MM_SM2_f3"> +<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM2_InnerRadius" roLength="NSW_MM_SM2_Length"/> +</micromegas> +<micromegas type="sMD3-1-2" tech="MM_1" subType="M1S2" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM1_Length" ylFrame="NSW_MM_SM1_f1" ysFrame="NSW_MM_SM1_f2" xFrame="NSW_MM_SM1_f3"> +<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM1_InnerRadius" roLength="NSW_MM_SM1_Length"/> +</micromegas> +<micromegas type="sMD3-2-2" tech="MM_1" subType="M2S2" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM2_Length" ylFrame="NSW_MM_SM2_f1" ysFrame="NSW_MM_SM2_f2" xFrame="NSW_MM_SM2_f3"> +<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM2_InnerRadius" roLength="NSW_MM_SM2_Length"/> +</micromegas> +<mmSpacer type="spa3-1" tech="Spa_1" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_SM1_Length" /> +<mmSpacer type="spa3-2" tech="Spa_1" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_SM2_Length" /> + +<composition name="NSW_MM" > +<!-- A-SIDE --> + +<!-- LARGE SECTOR --> + +<!-- MM multilayer 1 --> +<chamberPosition volume="sMD1-1-1" radius="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" /> +<chamberPosition volume="sMD1-2-1" radius="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" /> +<!-- spacer --> +<mposPhi volume="spa1-1" ncopy="8" R_Z="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2;NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 270.; 90." /> +<mposPhi volume="spa1-2" ncopy="8" R_Z="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2;NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 270.; 90." /> + +<!-- MM multilayer 2 --> +<chamberPosition volume="sMD1-1-2" radius="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" /> +<chamberPosition volume="sMD1-2-2" radius="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" /> + +<!-- SMALL SECTOR --> + +<!-- MM multilayer 1 --> +<chamberPosition volume="sMD3-1-1" radius="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" /> +<chamberPosition volume="sMD3-2-1" radius="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" /> + +<!-- spacer --> +<mposPhi volume="spa3-1" ncopy="8" R_Z="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2;NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 270.; 90." /> +<mposPhi volume="spa3-2" ncopy="8" R_Z="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2;NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 270.; 90." /> + +<!-- MM multilayer 2 --> +<chamberPosition volume="sMD3-1-2" radius="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" /> +<chamberPosition volume="sMD3-2-2" radius="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" /> + +<!-- C-SIDE --> +<!-- LARGE SECTOR --> +<!-- spacer --> +<mposPhi volume="spa1-1" ncopy="8" R_Z="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2;-NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 90.; 90." /> +<mposPhi volume="spa1-2" ncopy="8" R_Z="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2;-NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 90.; 90." /> + +<!-- SMALL SECTOR --> +<!-- spacer --> +<mposPhi volume="spa3-1" ncopy="8" R_Z="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2;-NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 90.; 90." /> +<mposPhi volume="spa3-2" ncopy="8" R_Z="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2;-NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 90.; 90." /> + +</composition> + +</section> + + +<!-- ========== Poisitionning sTGC in NSW================ --> + + +<section name="NewSmallWheels" version="4.3" top_volume="useless" date=" April 20, 2015 " author="Daniel Lellouch"> + +<composition name="NewSmallWheel"> + <posXYZ volume="NSW_sTGC" X_Y_Z="0.;0.;0."/> + <posXYZ volume="NSW_MM" X_Y_Z="0.;0.;0." /> +</composition> + +</section> +</AGDD> diff --git a/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v2.03.xml b/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v2.03.xml new file mode 100644 index 0000000000000000000000000000000000000000..56934a2ef7b72dcad4534cd9c15c733f01a0b6a1 --- /dev/null +++ b/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v2.03.xml @@ -0,0 +1,1787 @@ +<?xml version="1.0" encoding="UTF-8"?> +<AGDD> + +<section name="NSW_Parameters" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" > +<!-- Global variables--> +<var name="NSW_NbrOfLayers" value="4"/> +<var name="NSW_NbrOfDriftPcb" value="3"/> +<var name="NSW_NbrOfROPcb" value="2"/> +<!--Center between the large sectors and the small sectors--> +<var name="ZCenter_Global" value="7409"/> +</section> + +<section name="NSW_sTGC_Parameters" version="13.7" top_volume="useless" date=" June 30, 2016 " author="Daniel Lellouch"> +<!-- ================ Global Variables ================= --> + +<!-- Thickness of a quadruplet --> +<var name="NSW_sTGC_Tck" value="49.34"/> +<!-- Gas Gap inside one layer --> +<var name="NSW_sTGC_GasTck" value="2.85"/> +<!-- G10 thickness per layer --> +<var name="NSW_sTGC_pcbTck" value="3"/> +<!-- Number of layers in a quaduplet --> +<var name="NSW_sTGC_NbrOfLayers" value="4"/> +<!-- Wire pitch --> +<var name="NSW_sTGC_WirePitch" value="1.8"/> +<!-- Strip pitch --> +<var name="NSW_sTGC_StripPitch" value="3.2"/> +<!-- Strip width --> +<var name="NSW_sTGC_StripWidth" value="2.7"/> +<!-- Width of G10 frame besides gas volume --> +<var name="NSW_sTGC_SideFrame" value="28.5"/> +<!-- Width of G10 frame in base w/o capacitor --> +<var name="NSW_sTGC_hFrameNoCapacitor" value="11"/> +<!-- Width of G10 frame in base with capacitor --> +<var name="NSW_sTGC_hFrameCapacitor" value="14"/> +<!-- Opening (in degrees) of trapezes in small wedges --> +<var name="NSW_sTGC_SmallOpening" value="17"/> +<!-- Opening (in degrees) of trapezes in large wedges --> +<var name="NSW_sTGC_LargeOpening" value="28"/> +<!-- Z center of small Pivot --> +<var name="NSW_sTGC_ZSmallPivot" value="ZCenter_Global-51.5"/> +<!-- Z center of small Confirm --> +<var name="NSW_sTGC_ZSmallConfirm" value="ZCenter_Global-399"/> +<!-- Z center of Large Pivot --> +<var name="NSW_sTGC_ZLargePivot" value="ZCenter_Global+51.5"/> +<!-- Z center of Large Confirm --> +<var name="NSW_sTGC_ZLargeConfirm" value="ZCenter_Global+399"/> +<!-- Z of each volume, relative to center of quadruplet --> +<array name="NSW_sTGC_LayerDeltaZ" values="-16.45;-5.48;5.49;16.46"/> +<!-- Side of the Pad readout --> +<array name="NSW_sTGC_PadSide" values="-1;1;-1;1"/> +<!-- Side of the Strip readout --> +<array name="NSW_sTGC_StripSide" values="1;-1;1;-1"/> +</section> + +<!-- ================ sTGC ========================= --> + + +<section name="NewSmallWheels_sTGC" version="20.2" top_volume="useless" date=" March 31, 2018 " author="Daniel Lellouch"> + +<composition name="NSW_sTGC"> + +<sTGC_Tech type="sTGC_1" geometryLevel="1" nLayers="NSW_sTGC_NbrOfLayers" gasTck="NSW_sTGC_GasTck" pcbTck="NSW_sTGC_pcbTck" Tck="NSW_sTGC_Tck" f4="NSW_sTGC_hFrameNoCapacitor" f5="NSW_sTGC_hFrameNoCapacitor" f6="NSW_sTGC_SideFrame"/> + +<!-- ================ small Pivot ========================= --> + +<sTGC type="sTG1-QS1P" tech="sTGC_1" subType="QS1P" sWidth="346.93" lWidth="743.15" Length="1325.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="279.32" lPadWidth="667.18" sStripWidth="293.48" lStripWidth="681.33" padH="80;80;80.24;80.24" nPadPhi="4;4;3;3" anglePadPhi="5" firstPadPhiDivision_C="-5;-5;-2.5;-2.5" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-5;-5;-2.5;-2.5" PadPhiShift_A="-2;2;-2;2" nPadH="17;17;17;17" firstPadH="65.8;65.8;28.61;28.61" firstPadRow="1;1;1;1" nWires="371;370;370;370" wireCutout="802.8;829.8;856.8;883.8" firstWire="-333;-331.65;-332.55;-332.1" wireGroupWidth="20" nStrips="406" firstTriggerBand="3;3;3;3" nTriggerBands="28;28;28;28" firstStripInTrigger="44;44;44;44" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13; 12;13;12;13;12;13;10" StripsInBandsLayer2="12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;13;12; 13;12;13;12;13;12;10" StripsInBandsLayer3="12;13;12;13;12;13;12;13;13;12;13;12;13;12;13;12;13;12;13;12;13;12; 13;12;13;13;12;13;8" StripsInBandsLayer4="12;13;12;13;12;13;13;12;13;12;13;12;13;12;13;13;12;13;12;13;12;13; 12;13;12;13;13;12;8" nWireGroups="19;20;19;19" firstWireGroup="20;5;10;15"/> +</sTGC> + +<chamberPosition volume="sTG1-QS1P" type="ENDCAP" chamberType="sTGS" radius="1563" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/> + +<sTGC type="sTG1-QS2P" tech="sTGC_1" subType="QS2P" sWidth="746.14" lWidth="1102.25" Length="1191.4" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="677.64" lPadWidth="1026.28" sStripWidth="691.8" lStripWidth="1040.43" padH="80;80;80.24;80.24" nPadPhi="2;2;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="0;0;-3.75;-3.75" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="0;0;-3.75;-3.75" PadPhiShift_A="-2;2;-2;2" nPadH="15;15;15;15" firstPadH="93.2;93.2;60.09;60.09" firstPadRow="18;18;18;18" nWires="569;570;570;570" wireCutout="0;0;0;0" firstWire="-511.2;-511.65;-512.55;-512.1" wireGroupWidth="20" nStrips="365" firstTriggerBand="34;34;34;34" nTriggerBands="30;30;30;30" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="4;13;12;13;12;13;12;13;12;12; 12;13;12;12;13;12;13;12;13;12; 13;12;13;12;13;12;13;12;13;11" StripsInBandsLayer2="5;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;13;12;13;12; 13;12;13;12;13;12;13;12;13;10" StripsInBandsLayer3="5;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;13;12;13;12; 13;12;13;12;13;12;13;12;13;10" StripsInBandsLayer4="7;12;13;12;13;12;13;13;12;12; 12;13;12;13;12;13;13;12;13;12; 13;12;13;12;13;12;13;13;12;7" nWireGroups="29;30;29;29" firstWireGroup="20;5;10;15"/> +</sTGC> + +<chamberPosition volume="sTG1-QS2P" type="ENDCAP" chamberType="sTGS" radius="2831.5" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/> + +<sTGC type="sTG1-QS3P" tech="sTGC_1" subType="QS3P" sWidth="1105.96" lWidth="1406.59" Length="1005.8" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="1037.46" lPadWidth="1330.62" sStripWidth="293.48" lStripWidth="681.33" padH="80;80;80.24;80.24" nPadPhi="2;2;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="0;0;-3.75;-3.75" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="0;0;-3.75;-3.75" PadPhiShift_A="-2;2;2;2" nPadH="12;12;13;13" firstPadH="89.4;89.4;59.88;59.88" firstPadRow="33;33;33;33" nWires="739;739;739;738" wireCutout="0;0;0;0" firstWire="-664.2;-664.65;-663.75;-663.3" wireGroupWidth="20" nStrips="307" firstTriggerBand="64;64;64;64" nTriggerBands="26;26;25;25" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="3;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;12;13;12;13; 12;13;12;13;12;5" StripsInBandsLayer2="6;12;13;12;13;13;12;13;12;12; 12;13;12;13;12;13;12;13;12;13; 13;12;13;12;13;3" StripsInBandsLayer3="6;12;13;12;13;13;12;13;12;12; 12;13;12;13;12;13;12;13;12;13; 12;13;12;13;13" StripsInBandsLayer4="7;13;12;13;12;13;12;13;12;12; 12;13;13;12;13;12;13;12;13;12; 13;12;13;13;11" nWireGroups="37;38;38;38" firstWireGroup="20;14;10;3"/> +</sTGC> + +<chamberPosition volume="sTG1-QS3P" type="ENDCAP" chamberType="sTGS" radius="3942.5" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/> + + +<!-- ================ small confirm =============== --> + +<sTGC type="sTG1-QS1C" tech="sTGC_1" subType="QS1C" sWidth="346.93" lWidth="743.15" Length="1325.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="293.48" lPadWidth="681.33" sStripWidth="691.8" lStripWidth="1040.43" padH="76.35;76.35;76.59;76.59" nPadPhi="4;4;4;4" anglePadPhi="5" firstPadPhiDivision_C="-3.75;-6.25;-3.75;-6.25" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-6.25;-3.75;-6.25;-3.75" PadPhiShift_A="2;-2;2;-2" nPadH="18;18;17;17" firstPadH="40.22;40.22;81.51;81.51" firstPadRow="2;2;2;2" nWires="370;370;370;371" wireCutout="883.8;856.8;829.8;802.8" firstWire="-332.1;-331.65;-332.55;-333" wireGroupWidth="20" nStrips="406" firstTriggerBand="5;5;5;5" nTriggerBands="32;32;31;31" firstStripInTrigger="44;44;44;44" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;12;11;12;12;12; 12;12;12;12;12;12;12;12;11;12;12;12" StripsInBandsLayer2="12;12;12;12;11;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 11;12;12;12;12;12;12;12;12;12;12;11" StripsInBandsLayer3="12;12;12;12;11;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12;11;10" StripsInBandsLayer4="12;12;12;12;12;12;12;12;11; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12;12;9" nWireGroups="20;19;19;19" firstWireGroup="5;10;15;20"/> +</sTGC> + +<chamberPosition volume="sTG1-QS1C" type="ENDCAP" chamberType="sTGS" radius="1563" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/> + +<sTGC type="sTG1-QS2C" tech="sTGC_1" subType="QS2C" sWidth="746.14" lWidth="1102.25" Length="1191.4" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="691.8" lPadWidth="1040.43" sStripWidth="1051.61" lStripWidth="1344.78" padH="76.35;76.35;76.59;76.59" nPadPhi="3;3;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-1.87;-5.62;-1.87" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-1.87;-5.62;-1.87;-5.62" PadPhiShift_A="2;-2;2;-2" nPadH="15;15;16;16" firstPadH="81.98;81.98;50.99;50.99" firstPadRow="20;20;19;19" nWires="570;570;570;569" wireCutout="0;0;0;0" firstWire="-512.1;-511.65;-512.55;-511.2" wireGroupWidth="20" nStrips="365" firstTriggerBand="64;64;64;64" nTriggerBands="31;31;31;31" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="2;12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;11;12;12;12;12; 12;12;12;12;12;12;12;12;11;12" StripsInBandsLayer2="12;12;12;12;12;12;12;12;12;12;12; 12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12" StripsInBandsLayer3="2;12;12;12;12;12;12;12;12;12;12; 12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12" StripsInBandsLayer4="5;12;11;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12" nWireGroups="30;29;29;29" firstWireGroup="5;10;15;20"/> +</sTGC> + +<chamberPosition volume="sTG1-QS2C" type="ENDCAP" chamberType="sTGS" radius="2831.5" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/> + +<sTGC type="sTG1-QS3C" tech="sTGC_1" subType="QS3C" sWidth="1105.96" lWidth="1406.59" Length="1005.8" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="1051.61" lPadWidth="1344.78" sStripWidth="1051.61" lStripWidth="1344.78" padH="76.35;76.35;76.59;76.59" nPadPhi="3;3;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-1.87;-5.62;-1.87" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-1.87;-5.62;-1.87;-5.62" PadPhiShift_A="2;-2;2;-2" nPadH="13;13;13;13" firstPadH="99.84;99.84;72.68;72.68" firstPadRow="36;36;35;35" nWires="738;739;739;739" wireCutout="0;0;0;0" firstWire="-663.3;-664.65;-663.75;-664.2" wireGroupWidth="20" nStrips="307" firstTriggerBand="37;37;37;37" nTriggerBands="26;26;25;25" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="6;7;12;12;12;12;12;12;11;11; 12;12;12;12;12;12;12;12;12;12; 12;11;12;13;12;12" StripsInBandsLayer2="2;10;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;13;12" StripsInBandsLayer3="2;10;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;13;13" StripsInBandsLayer4="1;12;12;12;12;12;12;11;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;13;11" nWireGroups="38;38;38;38" firstWireGroup="5;14;15;3"/> +</sTGC> + +<chamberPosition volume="sTG1-QS3C" type="ENDCAP" chamberType="sTGS" radius="3942.5" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/> + + +<!-- ================ Large Pivot ==================== --> + +<sTGC type="sTG1-QL1P" tech="sTGC_1" subType="QL1P" sWidth="542.61" lWidth="1206.82" Length="1332" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="476.42" lPadWidth="1126.66" sStripWidth="490.84" lStripWidth="1141.09" padH="81.42;81.42;81.66;81.66" nPadPhi="6;6;7;7" anglePadPhi="5" firstPadPhiDivision_C="-10;-10;-12.5;-12.5" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-10;-10;-12.5;-12.5" PadPhiShift_A="-2;2;-2;2" nPadH="17;17;16;16" firstPadH="54.39;54.39;98.15;98.15" firstPadRow="1;1;2;2" nWires="621;620;620;620" wireCutout="808;835;862;889" firstWire="-558;-556.65;-557.55;-557.1" wireGroupWidth="20" nStrips="408" firstTriggerBand="3;3;3;3" nTriggerBands="30;30;30;30" firstStripInTrigger="45;45;45;45" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="13;13;12;13;13;13;12;13;13;12;13;13;13;12;13;13;12;13;13;13;12;13; 13;12;13;13;13;12;13;13" StripsInBandsLayer2="13;13;12;13;13;13;12;13;13;13;12;13;13;12;13;13;13;12;13;13;13;12; 13;13;12;13;13;13;12;13" StripsInBandsLayer3="13;13;12;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13; 12;13;13;13;12;13;13;13" StripsInBandsLayer4="13;13;12;13;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13;13;12;13; 13;13;12;13;13;13;12;13" nWireGroups="32;32;32;32" firstWireGroup="20;5;10;15"/> +</sTGC> + +<chamberPosition volume="sTG1-QL1P" type="ENDCAP" chamberType="sTGL" radius="1595" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/> + +<sTGC type="sTG1-QL2P" tech="sTGC_1" subType="QL2P" sWidth="1211.81" lWidth="1807.5" Length="1194.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="1144.12" lPadWidth="1727.34" sStripWidth="1158.55" lStripWidth="1741.77" padH="81.42;81.42;81.66;81.66" nPadPhi="4;4;5;5" anglePadPhi="7.5" firstPadPhiDivision_C="-7.5;-7.5;-11.25;-11.25" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-7.5;-7.5;-11.25;-11.25" PadPhiShift_A="-2;2;-2;2" nPadH="14;14;15;15" firstPadH="99.51;99.51;65.69;65.69" firstPadRow="18;18;18;18" nWires="953;954;954;954" wireCutout="0;0;0;0" firstWire="-856.8;-857.25;-858.15;-857.7" wireGroupWidth="20" nStrips="366" firstTriggerBand="33;33;33;33" nTriggerBands="30;30;30;29" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="9;6;12;13;13;12;13;13;13;12;13;13;1313;13;13;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;13" StripsInBandsLayer2="9;6;13;13;12;13;13;13;12;13;13;12;1213;13;13;12;13;13;13;12;13;13;13; 12;13;13;12;13;13;13" StripsInBandsLayer3="7;8;12;13;13;13;12;13;13;13;12;13;1313;13;12;13;13;13;12;13;13;13;12; 13;13;13;12;13;13;13" StripsInBandsLayer4="7;8;13;13;13;12;13;13;13;12;13;13;1313;13;12;13;13;13;12;13;13;13;12; 13;13;13;12;13;13" nWireGroups="48;49;49;48" firstWireGroup="20;5;10;15"/> +</sTGC> + +<chamberPosition volume="sTG1-QL2P" type="ENDCAP" chamberType="sTGL" radius="2868.3" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/> + +<sTGC type="sTG1-QL3P" tech="sTGC_1" subType="QL3P" sWidth="1813.68" lWidth="2111" Length="1153" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="545.3" yCutoutCathode="539.26" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> +<sTGC_readout sPadWidth="1745.99" lPadWidth="2054" sStripWidth="1760.42" lStripWidth="2054" + padH="81.42;81.42;81.66;81.66" nPadPhi="4;4;5;5" anglePadPhi="7.5" firstPadPhiDivision_C="-7.5;-7.5;-11.25;-11.25" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-7.5;-7.5;-11.25;-11.25" PadPhiShift_A="-2;2;-2;2" nPadH="15;15;14;14" firstPadH="32.38;32.38;83.57;83.57" firstPadRow="32;32;33;33" nWires="1133;1134;1134;1134" wireCutout="0;0;0;0" firstWire="-1018.8;-1019.25;-1020.15;-1019.7" wireGroupWidth="20" nStrips="353" firstTriggerBand="63;63;63;62" nTriggerBands="28;28;28;29" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="10;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;13;12;13" StripsInBandsLayer2="11;13;12;13;13;13;12;13;13; 12;13;13;13;12;13;13;13;12;13; 13;13;12;13;13;12;13;13;11" StripsInBandsLayer3="13;13;13;12;13;13;13;12;13; 13;13;12;13;13;13;12;13;13;13; 12;13;13;13;12;13;13;13;8" StripsInBandsLayer4="1;13;13;13;12;13;13;13;13;12; 13;13;13;12;13;13;13;12;13;13; 13;13;12;13;13;13;12;13;7" nWireGroups="57;58;58;57" firstWireGroup="20;5;10;15"/> +</sTGC> + +<chamberPosition volume="sTG1-QL3P" type="ENDCAP" chamberType="sTGL" radius="4054.5" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/> + +<!-- =============== Large Confirm ===================== --> + +<sTGC type="sTG1-QL1C" tech="sTGC_1" subType="QL1C" sWidth="542.61" lWidth="1206.82" Length="1332" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="490.84" lPadWidth="1141.09" sStripWidth="490.84" lStripWidth="1141.09" padH="85.07;85.07;85.31;85.31" nPadPhi="6;6;6;6" anglePadPhi="5" firstPadPhiDivision_C="-8.75;-11.25;-8.75;-11.25" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-11.25;-8.75;-11.25;-8.75" PadPhiShift_A="2;-2;2;-2" nPadH="16;16;16;16" firstPadH="35.26;35.26;80.66;80.66" firstPadRow="1;1;1;1" nWires="620;620;620;621" wireCutout="889;862;835;808" firstWire="-557.1;-556.65;-557.55;-558" wireGroupWidth="20" nStrips="408" firstTriggerBand="3;3;3;3" nTriggerBands="29;29;28;28" firstStripInTrigger="44;44;44;44" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="13;13;13;14;13;13;14;13;13;13; 14;13;13;14;13;13;13;14;13;13; 13;14;13;13;14;13;13;13" StripsInBandsLayer2="13;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13" StripsInBandsLayer3="14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 13;13;14;13;13;14;13;13" StripsInBandsLayer4="14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 14;13;13;14;13;13;14;13" nWireGroups="32;32;32;32" firstWireGroup="5;10;15;20"/> +</sTGC> + +<chamberPosition volume="sTG1-QL1C" type="ENDCAP" chamberType="sTGL" radius="1595" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/> + +<sTGC type="sTG1-QL2C" tech="sTGC_1" subType="QL2C" sWidth="1211.81" lWidth="1807.5" Length="1194.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" yCutoutCathode="0" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="1158.55" lPadWidth="1741.77" sStripWidth="1158.55" lStripWidth="1741.77" padH="85.07;85.07;85.31;85.31" nPadPhi="4;4;4;4" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-9.37;-5.62;-9.37" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-9.37;-5.62;-9.37;-5.62" PadPhiShift_A="2;-2;2;-2" nPadH="14;14;14;14" firstPadH="57.31;57.31;106.55;106.55" firstPadRow="17;17;17;17" nWires="954;954;954;953" wireCutout="0;0;0;0" firstWire="-857.7;-857.25;-858.15;-856.8" wireGroupWidth="20" nStrips="366" firstTriggerBand="30;30;30;30" nTriggerBands="29;29;29;29" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="12;5;13;13;13;14;13;13;14;13; 13;13;14;13;13;14;13;13;13;14; 13;13;14;13;13;13;14;13;13" StripsInBandsLayer2="11;5;13;14;13;13;14;13;13;13; 14;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13;13" StripsInBandsLayer3="10;7;13;13;14;13;13;14;13;13; 13;14;13;13;14;13;13;14;13;13; 14;13;13;14;13;13;14;13;13" StripsInBandsLayer4="9;7;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;14;13;13; 14;13;13;14;13;13;14;13;12" nWireGroups="49;49;48;48" firstWireGroup="5;10;15;20"/> +</sTGC> + +<chamberPosition volume="sTG1-QL2C" type="ENDCAP" chamberType="sTGL" radius="2868.3" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/> + +<sTGC type="sTG1-QL3C" tech="sTGC_1" subType="QL3C" sWidth="1813.68" lWidth="2111" Length="1153" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="545.3" yCutoutCathode="539.26" stripPitch="NSW_sTGC_StripPitch" stripWidth="NSW_sTGC_StripWidth" wirePitch="NSW_sTGC_WirePitch"> + +<sTGC_readout sPadWidth="1760.42" lPadWidth="2054" sStripWidth="1760.42" lStripWidth="2054" padH="85.07;85.07;85.31;85.31" nPadPhi="4;4;4;4" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-9.37;-5.62;-9.37" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-9.37;-5.62;-9.37;-5.62" PadPhiShift_A="2;-2;2;-2" nPadH="14;14;13;13" firstPadH="41.23;41.23;93.82;93.82" firstPadRow="31;31;31;31" nWires="1134;1134;1134;1133" wireCutout="0;0;0;0" firstWire="-1019.7;-1019.25;-1020.15;-1018.8" wireGroupWidth="20" nStrips="353" firstTriggerBand="60;60;60;60" nTriggerBands="28;28;28;28" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="3;13;13;13;13;14;13;13;14;13;13; 13;14;13;13;14;13;13;13;14;13; 13;13;14;13;13;14;8" StripsInBandsLayer2="2;14;13;13;14;13;13;13;14;13;13; 14;13;13;14;13;13;13;14;13;13; 14;13;13;14;13;13;7" StripsInBandsLayer3="2;14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;13;14;13;13;14; 13;13;14;13;13;14;4" StripsInBandsLayer4="3;14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 13;14;13;13;14;13;3" nWireGroups="58;58;57;57" firstWireGroup="5;10;15;20"/> +</sTGC> + +<chamberPosition volume="sTG1-QL3C" type="ENDCAP" chamberType="sTGL" radius="4054.5" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/> + +</composition> +</section> + + +<!-- ========== MicroMegas ============================== --> + +<section name="NSW_MM_Parameters" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" > + +<!-- Frames. "f1": frame width close to the trapezium large side. "f2": frame width close to the trapezium small side. "f3": frame width close to the trapezium oblique side --> + +<!-- Distance from IP, labeled zmin_MM in Parameter Book --> +<var name="NSW_MM_LM_distanceFromIP" value="7536"/> +<var name="NSW_MM_SM_distanceFromIP" value="7072"/> +<!-- Thickness of Multilayer and the subcomponent (mm)--> +<var name="NSW_MM_GasTck" value="5.04"/> +<var name="NSW_MM_ROPcbTck" value="11.69"/> +<var name="NSW_MM_DriftPcbTck" value="11.284"/> +<var name="NSW_MM_MultilayerTck" value="NSW_NbrOfLayers* NSW_MM_GasTck + (NSW_NbrOfDriftPcb) * NSW_MM_DriftPcbTck+ ( NSW_NbrOfROPcb) * NSW_MM_ROPcbTck" /> <!-- Thickness of one multilayer --> + +<!-- Large sector modules (LM1" LM2). Modules are all trapezoid. ""Height"": radial envelope" ""base/top Width"": upper/lower side of the trapezoid--> +<var name="NSW_MM_LM1_InnerRadius" value="923" /> +<var name="NSW_MM_LM1_Length" value="2310" /> +<var name="NSW_MM_LM1_outerRadius" value="NSW_MM_LM1_InnerRadius+NSW_MM_LM1_Length" /> +<var name="NSW_MM_LM1_f1" value="30"/> +<var name="NSW_MM_LM1_f2" value="30"/> +<var name="NSW_MM_LM1_f3" value="100"/> +<var name="NSW_MM_LMGap_Length" value="5" /> <!-- Radial gap between LM1 and LM2 --> +<var name="NSW_MM_LM2_InnerRadius" value="NSW_MM_LM1_outerRadius+NSW_MM_LMGap_Length" /> +<var name="NSW_MM_LM2_Length" value="1410" /> +<var name="NSW_MM_LM2_outerRadius" value="NSW_MM_LM2_InnerRadius+NSW_MM_LM2_Length" /> +<var name="NSW_MM_LM1_baseWidth" value="640" /> +<var name="NSW_MM_LM1_topWidth" value="2008.5" /> +<var name="NSW_MM_LM2_baseWidth" value="2022.8" /> +<var name="NSW_MM_LM2_topWidth" value="2220" /> +<var name="NSW_MM_LM2_f1" value="30"/> +<var name="NSW_MM_LM2_f2" value="30"/> +<var name="NSW_MM_LM2_f3" value="100"/> +<!-- Small sector modules (SM1" SM2). Modules are all trapezoids. ""Height"": radial envelope" ""base/top Width"": upper/lower side --> +<var name="NSW_MM_SM1_InnerRadius" value="895" /> +<var name="NSW_MM_SM1_Length" value="2210" /> +<var name="NSW_MM_SM1_outerRadius" value="NSW_MM_SM1_InnerRadius+NSW_MM_SM1_Length" /> +<var name="NSW_MM_SMGap_Length" value="5" /> <!-- Radial gap between SM1 and SM2 --> +<var name="NSW_MM_SM1_f1" value="30"/> +<var name="NSW_MM_SM1_f2" value="30"/> +<var name="NSW_MM_SM1_f3" value="100"/> +<var name="NSW_MM_SM2_InnerRadius" value="NSW_MM_SM1_outerRadius+NSW_MM_SMGap_Length" /> +<var name="NSW_MM_SM2_Length" value="1350" /> +<var name="NSW_MM_SM2_outerRadius" value="NSW_MM_SM2_InnerRadius+NSW_MM_SM2_Length" /> +<var name="NSW_MM_SM1_baseWidth" value="500" /> +<var name="NSW_MM_SM1_topWidth" value="1319.2" /> +<var name="NSW_MM_SM2_baseWidth" value="1321.1" /> +<var name="NSW_MM_SM2_topWidth" value="1821.5" /> +<var name="NSW_MM_SM2_f1" value="30"/> +<var name="NSW_MM_SM2_f2" value="30"/> +<var name="NSW_MM_SM2_f3" value="100"/> + +<var name="NSW_MM_LargeSector_ZCENTER" value="ZCenter_Global+232."/> +<var name="NSW_MM_SmallSector_ZCENTER" value="ZCenter_Global-232."/> + + +<!-- Thickness of inter-multilayer spacers --> +<var name="NSW_MM_SpacerThickness" value="50" /> + +<!-- Global z-coordinate for the sector center --> +<!-- <var name="NSW_MM_LargeSector_ZCENTER" value="NSW_MM_LM_distanceFromIP + 4.*NSW_MM_DriftPcbTck + 4.*NSW_MM_ROPcbTck + 4.*NSW_MM_GasTck + NSW_MM_SpacerThickness/2."/> +<var name="NSW_MM_SmallSector_ZCENTER" value="NSW_MM_SM_distanceFromIP + 4.*NSW_MM_DriftPcbTck + 4.*NSW_MM_ROPcbTck + 4.*NSW_MM_GasTck + NSW_MM_SpacerThickness/2."/> --> + +</section> + +<section name="NewSmallWheelsMM" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" > + + +<!-- Technologies --> +<mm_Tech type="MM_1" geometryLevel="1" nLayers="NSW_NbrOfLayers" gasTck="NSW_MM_GasTck" driftPcbTck="NSW_MM_DriftPcbTck" ROPcbTck="NSW_MM_ROPcbTck" Tck="NSW_MM_MultilayerTck" /> +<!--Chilufya<mmSpacer_Tech type="Spa_1" Tck="NSW_MM_SpacerThickness" />Chilufya--> + +<!-- large wheel --> +<micromegas type="sMD1-1-1" tech="MM_1" subType="M1L1" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM1_Length" ylFrame="NSW_MM_LM1_f1" ysFrame="NSW_MM_LM1_f2" xFrame="NSW_MM_LM1_f3"> +<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM1_InnerRadius" roLength="NSW_MM_LM1_Length"/> +</micromegas> +<micromegas type="sMD1-2-1" tech="MM_1" subType="M2L1" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM2_Length" ylFrame="NSW_MM_LM2_f1" ysFrame="NSW_MM_LM2_f2" xFrame="NSW_MM_LM2_f3"> +<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM2_InnerRadius" roLength="NSW_MM_LM2_Length"/> +</micromegas> +<micromegas type="sMD1-1-2" tech="MM_1" subType="M1L2" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM1_Length" ylFrame="NSW_MM_LM1_f1" ysFrame="NSW_MM_LM1_f2" xFrame="NSW_MM_LM1_f3"> +<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM1_InnerRadius" roLength="NSW_MM_LM1_Length"/> +</micromegas> +<micromegas type="sMD1-2-2" tech="MM_1" subType="M2L2" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM2_Length" ylFrame="NSW_MM_LM2_f1" ysFrame="NSW_MM_LM2_f2" xFrame="NSW_MM_LM2_f3"> +<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM2_InnerRadius" roLength="NSW_MM_LM2_Length"/> +</micromegas> + +<!--Chilufya<mmSpacer type="spa1-1" tech="Spa_1" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_LM1_Length" /> +<mmSpacer type="spa1-2" tech="Spa_1" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_LM2_Length" />Chilufya--> + + +<!-- small wheel --> +<micromegas type="sMD3-1-1" tech="MM_1" subType="M1S1" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM1_Length" ylFrame="NSW_MM_SM1_f1" ysFrame="NSW_MM_SM1_f2" xFrame="NSW_MM_SM1_f3"> +<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM1_InnerRadius" roLength="NSW_MM_SM1_Length"/> +</micromegas> +<micromegas type="sMD3-2-1" tech="MM_1" subType="M2S1" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM2_Length" ylFrame="NSW_MM_SM2_f1" ysFrame="NSW_MM_SM2_f2" xFrame="NSW_MM_SM2_f3"> +<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM2_InnerRadius" roLength="NSW_MM_SM2_Length"/> +</micromegas> +<micromegas type="sMD3-1-2" tech="MM_1" subType="M1S2" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM1_Length" ylFrame="NSW_MM_SM1_f1" ysFrame="NSW_MM_SM1_f2" xFrame="NSW_MM_SM1_f3"> +<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM1_InnerRadius" roLength="NSW_MM_SM1_Length"/> +</micromegas> +<micromegas type="sMD3-2-2" tech="MM_1" subType="M2S2" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM2_Length" ylFrame="NSW_MM_SM2_f1" ysFrame="NSW_MM_SM2_f2" xFrame="NSW_MM_SM2_f3"> +<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM2_InnerRadius" roLength="NSW_MM_SM2_Length"/> +</micromegas> +<!--Chilufya<mmSpacer type="spa3-1" tech="Spa_1" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_SM1_Length" /> +<mmSpacer type="spa3-2" tech="Spa_1" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_SM2_Length" />Chilufya--> + +<composition name="NSW_MM" > +<!-- A-SIDE --> + +<!-- LARGE SECTOR --> + +<!-- MM multilayer 1 --> +<chamberPosition volume="sMD1-1-1" radius="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" /> +<chamberPosition volume="sMD1-2-1" radius="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" /> +<!-- spacer --> +<!--Chilufya<mposPhi volume="spa1-1" ncopy="8" R_Z="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2;NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 270.; 90." /> +<mposPhi volume="spa1-2" ncopy="8" R_Z="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2;NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 270.; 90." />Chilufya--> + +<!-- MM multilayer 2 --> +<chamberPosition volume="sMD1-1-2" radius="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" /> +<chamberPosition volume="sMD1-2-2" radius="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" /> + +<!-- SMALL SECTOR --> + +<!-- MM multilayer 1 --> +<chamberPosition volume="sMD3-1-1" radius="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" /> +<chamberPosition volume="sMD3-2-1" radius="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" /> + +<!-- spacer --> +<!--Chilufya<mposPhi volume="spa3-1" ncopy="8" R_Z="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2;NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 270.; 90." /> +<mposPhi volume="spa3-2" ncopy="8" R_Z="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2;NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 270.; 90." />Chilufya--> + +<!-- MM multilayer 2 --> +<chamberPosition volume="sMD3-1-2" radius="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" /> +<chamberPosition volume="sMD3-2-2" radius="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" /> + +<!-- C-SIDE --> +<!-- LARGE SECTOR --> +<!-- spacer --> +<!--Chilufya<mposPhi volume="spa1-1" ncopy="8" R_Z="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2;-NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 90.; 90." /> +<mposPhi volume="spa1-2" ncopy="8" R_Z="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2;-NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 90.; 90." />Chilufya--> + +<!-- SMALL SECTOR --> +<!-- spacer --> +<!--Chilufya<mposPhi volume="spa3-1" ncopy="8" R_Z="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2;-NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 90.; 90." /> +<mposPhi volume="spa3-2" ncopy="8" R_Z="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2;-NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 90.; 90." />Chilufya--> + +</composition> + +</section> + + + + + + + +<!--====================================SPACER FRAME===============================================--> + +<section name = "LS and SS Spacer Frames" + version = "0.0" + date = "25-07-2017" + author = "Georgian Engineering Team - Niko Tsutskiridze" + top_volume = "NSW_Spacer"> + +<!-- LS Spacer Ftame --> +<gvxy name="LS_StructuralPlate_Main" material="Aluminium" dZ="5.9"> + <gvxy_point X_Y="226.; 958."/> + <gvxy_point X_Y="914.15; 3281."/> + <gvxy_point X_Y="1007.3; 4613."/> + <gvxy_point X_Y="0.01; 4613."/> + <gvxy_point X_Y="0.01; 958."/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut1" material="Aluminium" dZ="7."> + <gvxy_point X_Y="902.87; 4123."/> + <gvxy_point X_Y="932.24; 4543."/> + <gvxy_point X_Y="40.; 4543."/> + <gvxy_point X_Y="40.; 4123."/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut2" material="Aluminium" dZ="7."> + <gvxy_point X_Y="774.41; 3913.25"/> + <gvxy_point X_Y="770.86; 3963."/> + <gvxy_point X_Y="135.; 3963."/> + <gvxy_point X_Y="135.; 3821.33"/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut3" material="Aluminium" dZ="7."> + <gvxy_point X_Y="778.83; 3639.29"/> + <gvxy_point X_Y="792.52; 3835.04"/> + <gvxy_point X_Y="203.42; 3750.35"/> + <gvxy_point X_Y="203.46; 3720.65"/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut4" material="Aluminium" dZ="7."> + <gvxy_point X_Y="477.15; 3586.36"/> + <gvxy_point X_Y="477.24; 3606.18"/> + <gvxy_point X_Y="135.; 3654.58"/> + <gvxy_point X_Y="135.; 3541.07"/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut5" material="Aluminium" dZ="7."> + <gvxy_point X_Y="762.41; 3404.48"/> + <gvxy_point X_Y="772.57; 3549.82"/> + <gvxy_point X_Y="286.06; 3485.41"/> + <gvxy_point X_Y="286.1; 3465.58"/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut6" material="Aluminium" dZ="7."> + <gvxy_point X_Y="600.; 3314.58"/> + <gvxy_point X_Y="602.55; 3354.42"/> + <gvxy_point X_Y="60.; 3424.01"/> + <gvxy_point X_Y="60.; 3314.58"/> +</gvxy> + +<box name="LS_StructuralPlate_Cut7" material="Aluminium" X_Y_Z="138.; 70.; 7. " /> + +<gvxy name="LS_StructuralPlate_Cut8" material="Aluminium" dZ="7."> + <gvxy_point X_Y="678.71; 2838.18"/> + <gvxy_point X_Y="772.71; 3155.5"/> + <gvxy_point X_Y="63.52; 3155.5"/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut9" material="Aluminium" dZ="7."> + <gvxy_point X_Y="533.6; 2715.5"/> + <gvxy_point X_Y="551.94; 2791.05"/> + <gvxy_point X_Y="40.; 3055.11"/> + <gvxy_point X_Y="40.; 2715.5"/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut10" material="Aluminium" dZ="7."> + <gvxy_point X_Y="459.9; 2169.9"/> + <gvxy_point X_Y="585.97; 2595.5"/> + <gvxy_point X_Y="117.42; 2595.5"/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut11" material="Aluminium" dZ="7."> + <gvxy_point X_Y="391.41; 2095.5"/> + <gvxy_point X_Y="135.; 2414.15"/> + <gvxy_point X_Y="135.; 2095.5"/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut12" material="Aluminium" dZ="7."> + <gvxy_point X_Y="344.91; 1865.18"/> + <gvxy_point X_Y="389.44; 2015.5"/> + <gvxy_point X_Y="258.79; 2015.5"/> +</gvxy> +<gvxy name="LS_StructuralPlate_Cut13" material="Aluminium" dZ="7."> + <gvxy_point X_Y="275.45; 1825.5"/> + <gvxy_point X_Y="172.35; 2005.44"/> + <gvxy_point X_Y="135.; 1995.5"/> + <gvxy_point X_Y="135.; 1825.5"/> +</gvxy> + +<gvxy name="LS_StructuralPlate_Cut14" material="Aluminium" dZ="7."> + <gvxy_point X_Y="173.8; 1028."/> + <gvxy_point X_Y="380.41; 1725.5"/> + <gvxy_point X_Y="40.; 1725.5"/> + <gvxy_point X_Y="40.; 1028."/> +</gvxy> + +<subtraction name="LS_StructuralPlateSub" > + <posXYZ volume="LS_StructuralPlate_Main" /> + <posXYZ volume="LS_StructuralPlate_Cut1" /> + <posXYZ volume="LS_StructuralPlate_Cut2" /> + <posXYZ volume="LS_StructuralPlate_Cut3" /> + <posXYZ volume="LS_StructuralPlate_Cut4" /> + <posXYZ volume="LS_StructuralPlate_Cut5" /> + <posXYZ volume="LS_StructuralPlate_Cut6" /> + <posXYZ volume="LS_StructuralPlate_Cut7" X_Y_Z="589.; 3235.5; 0." /> + <posXYZ volume="LS_StructuralPlate_Cut8" /> + <posXYZ volume="LS_StructuralPlate_Cut9" /> + <posXYZ volume="LS_StructuralPlate_Cut10" /> + <posXYZ volume="LS_StructuralPlate_Cut11" /> + <posXYZ volume="LS_StructuralPlate_Cut12" /> + <posXYZ volume="LS_StructuralPlate_Cut13" /> + <posXYZ volume="LS_StructuralPlate_Cut14" /> +</subtraction> + +<composition name="LS_StructuralPlate" > + <posXYZ volume="LS_StructuralPlateSub" /> + <posXYZ volume="LS_StructuralPlateSub" rot="0. ; 180. ; 0." /> +</composition> + +<box name="LS_Central_reference_bar" material="Aluminium" X_Y_Z="1704.; 100.; 27.8 " /> + +<box name="LS_Channel_section_L2000_Main" material="Aluminium" X_Y_Z="50.; 2000.; 30. " /> +<box name="LS_Channel_section_L2000_Cut" material="Aluminium" X_Y_Z="40.; 2050.; 20. " /> +<subtraction name="LS_Channel_section_L2000" > + <posXYZ volume="LS_Channel_section_L2000_Main" /> + <posXYZ volume="LS_Channel_section_L2000_Cut" /> +</subtraction> + +<box name="LS_Channel_section_L1200_Main" material="Aluminium" X_Y_Z="50.; 1200.; 30. " /> +<subtraction name="LS_Channel_section_L1200" > + <posXYZ volume="LS_Channel_section_L1200_Main" /> + <posXYZ volume="LS_Channel_section_L2000_Cut" /> +</subtraction> + +<box name="LS_Channel_section_L850_Main" material="Aluminium" X_Y_Z="50.; 850.; 30. " /> +<subtraction name="LS_Channel_section_L850" > + <posXYZ volume="LS_Channel_section_L850_Main" /> + <posXYZ volume="LS_Channel_section_L2000_Cut" /> +</subtraction> + +<box name="LS_Channel_section_L1000_Main" material="Aluminium" X_Y_Z="50.; 1000.; 30. " /> +<subtraction name="LS_Channel_section_L1000" > + <posXYZ volume="LS_Channel_section_L1000_Main" /> + <posXYZ volume="LS_Channel_section_L2000_Cut" /> +</subtraction> + +<box name="LS_UProfile_L1460_Main" material="Aluminium" X_Y_Z="20.; 1460.; 30. " /> +<box name="LS_UProfile_L1460_Cut" material="Aluminium" X_Y_Z="20.; 1500.; 24. " /> +<subtraction name="LS_UProfile_L1460" > + <posXYZ volume="LS_UProfile_L1460_Main" /> + <posXYZ volume="LS_UProfile_L1460_Cut" X_Y_Z="-3.; 0.; 0." /> +</subtraction> + +<box name="LS_UProfile_L750_Main" material="Aluminium" X_Y_Z="20.; 750.; 30. " /> +<subtraction name="LS_UProfile_L750" > + <posXYZ volume="LS_UProfile_L750_Main" /> + <posXYZ volume="LS_UProfile_L1460_Cut" X_Y_Z="3.; 0.; 0." /> +</subtraction> + +<gvxy name="LS_Top_Interface" material="Aluminium" dZ="30."> + <gvxy_point X_Y="914.3; 3484.44"/> + <gvxy_point X_Y="1146.47; 3571.68"/> + <gvxy_point X_Y="1141.27; 3656.86"/> + <gvxy_point X_Y="1054.98; 3656.86"/> + <gvxy_point X_Y="1054.98; 4070."/> + <gvxy_point X_Y="813.64; 4070."/> + <gvxy_point X_Y="774.65; 3494.2"/> +</gvxy> + +<gvxy name="LS_Bottom_Grabber_interface" material="Aluminium" dZ="30."> + <gvxy_point X_Y="-801.54; 2552.21"/> + <gvxy_point X_Y="-858.34; 2743.97"/> + <gvxy_point X_Y="-591.97; 2822.88"/> + <gvxy_point X_Y="-535.17; 2631.11"/> +</gvxy> + +<gvxy name="LS_Bottom_Interface" material="Aluminium" dZ="30."> + <gvxy_point X_Y="-558.42; 1731.46"/> + <gvxy_point X_Y="-616.93; 1928.98"/> + <gvxy_point X_Y="-678.34; 1910.78"/> + <gvxy_point X_Y="-727.9; 1985.99"/> + <gvxy_point X_Y="-570.48; 2124.21"/> + <gvxy_point X_Y="-437.49; 2163.6"/> + <gvxy_point X_Y="-329.56; 1799.25"/> +</gvxy> + +<box name="LS_MM_Connectors" material="Aluminium" X_Y_Z="76.; 40.; 30. " /> +<composition name="LS_MM_Connectors_Assembly" > + <posXYZ volume="LS_MM_Connectors" X_Y_Z="323.24; 1278.98; 0." rot="0. ; 0. ; -16.5" /> + <posXYZ volume="LS_MM_Connectors" X_Y_Z="596.23; 2200.58; 0." rot="0. ; 0. ; -16.5" /> + <posXYZ volume="LS_MM_Connectors" X_Y_Z="800.97; 2891.78; 0." rot="0. ; 0. ; -16.5" /> + <posXYZ volume="LS_MM_Connectors" X_Y_Z="922.31; 3368.81; 0." rot="0. ; 0. ; -4." /> + <posXYZ volume="LS_MM_Connectors" X_Y_Z="986.76; 4290.41; 0." rot="0. ; 0. ; -4." /> + <posXYZ volume="LS_MM_Connectors" X_Y_Z="824.; 4615.; 0." rot="0. ; 0. ; 90." /> +</composition> + +<box name="LS_KM_Joint" material="ShieldSteel" X_Y_Z="150.; 118.; 48. " /> + +<composition name="LS_Spacer_Frame_Assembly" > + <posXYZ volume="LS_StructuralPlate" X_Y_Z="0.; 0.; 18." /> + <posXYZ volume="LS_StructuralPlate" X_Y_Z="0.; 0.; -18." /> + <posXYZ volume="LS_Central_reference_bar" X_Y_Z="0.; 3235.5; 0." /> + <posXYZ volume="LS_Channel_section_L2000" X_Y_Z="0.; 2185.49; 0." /> + <posXYZ volume="LS_Channel_section_L1200" X_Y_Z="0.; 3885.51; 0." /> + <posXYZ volume="LS_Channel_section_L850" X_Y_Z="130.5; 3710.51; 0." /> + <posXYZ volume="LS_Channel_section_L850" X_Y_Z="-130.5; 3710.51; 0." /> + <posXYZ volume="LS_Channel_section_L1000" X_Y_Z="130.5; 2223.; 0." /> + <posXYZ volume="LS_Channel_section_L1000" X_Y_Z="-130.5; 2223.; 0." /> + <posXYZ volume="LS_UProfile_L1460" X_Y_Z="252.; 2455.49; 0." /> + <posXYZ volume="LS_UProfile_L1460" X_Y_Z="-252.; 2455.49; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="LS_UProfile_L750" X_Y_Z="252.; 3760.5; 0." /> + <posXYZ volume="LS_UProfile_L750" X_Y_Z="-252.; 3760.5; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="LS_UProfile_L750" X_Y_Z="465.; 3760.5; 0." /> + <posXYZ volume="LS_UProfile_L750" X_Y_Z="-465.; 3760.5; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="LS_UProfile_L750" X_Y_Z="678.; 3760.5; 0." /> + <posXYZ volume="LS_UProfile_L750" X_Y_Z="-678.; 3760.5; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="LS_UProfile_L750" X_Y_Z="465.; 2551.; 0." /> + <posXYZ volume="LS_UProfile_L750" X_Y_Z="-465.; 2551.; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="LS_Top_Interface" X_Y_Z="0.; 0.; 0." /> + <posXYZ volume="LS_Top_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="LS_Bottom_Grabber_interface" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="LS_Bottom_Grabber_interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="LS_Bottom_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="LS_Bottom_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="LS_MM_Connectors_Assembly" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="LS_MM_Connectors_Assembly" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="LS_MM_Connectors" X_Y_Z="0.; 956.; 0." rot="0. ; 0. ; 90." /> + <posXYZ volume="LS_MM_Connectors" X_Y_Z="0.; 4615.; 0." rot="0. ; 0. ; 90." /> + <posXYZ volume="LS_KM_Joint" X_Y_Z="-1130.01; 3970.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="LS_KM_Joint" X_Y_Z="1130.01; 3970.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="LS_KM_Joint" X_Y_Z="656.6; 1798.8; 0." rot="0. ; 0. ; -16.5" /> +</composition> + +<composition name="LS" > + <posXYZ volume="LS_Spacer_Frame_Assembly" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 0." /> + <posXYZ volume="LS_Spacer_Frame_Assembly" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 45." /> + <posXYZ volume="LS_Spacer_Frame_Assembly" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 90." /> + <posXYZ volume="LS_Spacer_Frame_Assembly" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 135." /> + <posXYZ volume="LS_Spacer_Frame_Assembly" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 180." /> + <posXYZ volume="LS_Spacer_Frame_Assembly" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 225." /> + <posXYZ volume="LS_Spacer_Frame_Assembly" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 270." /> + <posXYZ volume="LS_Spacer_Frame_Assembly" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 315." /> +</composition> +<!-- LS Spacer Ftame --> + +<!-- SS Spacer Ftame --> +<gvxy name="SS_StructuralPlate_Main" material="Aluminium" dZ="5.9"> + <gvxy_point X_Y="154.8; 930."/> + <gvxy_point X_Y="745.; 4114.46"/> + <gvxy_point X_Y="745.; 4425."/> + <gvxy_point X_Y="0.01; 4425."/> + <gvxy_point X_Y="0.01; 930."/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut1" material="Aluminium" dZ="7."> + <gvxy_point X_Y="685.; 4242.5"/> + <gvxy_point X_Y="685.; 4375."/> + <gvxy_point X_Y="25.; 4375."/> + <gvxy_point X_Y="25.; 4242.5"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut2" material="Aluminium" dZ="7."> + <gvxy_point X_Y="449.11; 4102.75"/> + <gvxy_point X_Y="446.87; 4122.5"/> + <gvxy_point X_Y="125.; 4122.5"/> + <gvxy_point X_Y="125.; 4028.36"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut3" material="Aluminium" dZ="7."> + <gvxy_point X_Y="577.21; 3867.18"/> + <gvxy_point X_Y="620.57; 4101.07"/> + <gvxy_point X_Y="131.86; 3988.9"/> + <gvxy_point X_Y="131.86; 3969.4"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut4" material="Aluminium" dZ="7."> + <gvxy_point X_Y="395.9; 3847.5"/> + <gvxy_point X_Y="398.14; 3867.25"/> + <gvxy_point X_Y="125.; 3929.94"/> + <gvxy_point X_Y="125.; 3847.5"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut5" material="Aluminium" dZ="7."> + <gvxy_point X_Y="495.98; 3705.39"/> + <gvxy_point X_Y="495.98; 3747.5"/> + <gvxy_point X_Y="25.; 3747.5"/> + <gvxy_point X_Y="25.; 3475.7"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut6" material="Aluminium" dZ="7."> + <gvxy_point X_Y="488.74; 3225.16"/> + <gvxy_point X_Y="576.8; 3700.3"/> + <gvxy_point X_Y="45.63; 3441.26"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut7" material="Aluminium" dZ="7."> + <gvxy_point X_Y="408.58; 3177.5"/> + <gvxy_point X_Y="417.35; 3215.48"/> + <gvxy_point X_Y="25.; 3406.82"/> + <gvxy_point X_Y="25.; 3177.5"/> +</gvxy> + +<box name="SS_StructuralPlate_Cut8" material="Aluminium" X_Y_Z="92.; 70.; 7. " /> + +<gvxy name="SS_StructuralPlate_Cut9" material="Aluminium" dZ="7."> + <gvxy_point X_Y="429.19; 3037.5"/> + <gvxy_point X_Y="25.; 3037.5"/> + <gvxy_point X_Y="25.; 2483.96"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut10" material="Aluminium" dZ="7."> + <gvxy_point X_Y="342.44; 2435.8"/> + <gvxy_point X_Y="445.53; 2992.05"/> + <gvxy_point X_Y="50.98; 2451.7"/> + <gvxy_point X_Y="59.05; 2435.8"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut11" material="Aluminium" dZ="7."> + <gvxy_point X_Y="275.17; 2072.87"/> + <gvxy_point X_Y="330.64; 2372.16"/> + <gvxy_point X_Y="310.98; 2395.8"/> + <gvxy_point X_Y="39.37; 2395.8"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut12" material="Aluminium" dZ="7."> + <gvxy_point X_Y="245.39; 2045.82"/> + <gvxy_point X_Y="25.; 2347.65"/> + <gvxy_point X_Y="25.; 2045.82"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut13" material="Aluminium" dZ="7."> + <gvxy_point X_Y="144.83; 1534.74"/> + <gvxy_point X_Y="203.73; 1852.5"/> + <gvxy_point X_Y="125.; 1852.5"/> + <gvxy_point X_Y="125.; 1536.56"/> +</gvxy> + +<gvxy name="SS_StructuralPlate_Cut14" material="Aluminium" dZ="7."> + <gvxy_point X_Y="123.38; 980."/> + <gvxy_point X_Y="201.04; 1399."/> + <gvxy_point X_Y="25.; 1399."/> + <gvxy_point X_Y="25.; 980."/> +</gvxy> + +<subtraction name="SS_StructuralPlateSub" > + <posXYZ volume="SS_StructuralPlate_Main" /> + <posXYZ volume="SS_StructuralPlate_Cut1" /> + <posXYZ volume="SS_StructuralPlate_Cut2" /> + <posXYZ volume="SS_StructuralPlate_Cut3" /> + <posXYZ volume="SS_StructuralPlate_Cut4" /> + <posXYZ volume="SS_StructuralPlate_Cut5" /> + <posXYZ volume="SS_StructuralPlate_Cut6" /> + <posXYZ volume="SS_StructuralPlate_Cut7" /> + <posXYZ volume="SS_StructuralPlate_Cut8" X_Y_Z="-340.5; 3107.5; 0." /> + <posXYZ volume="SS_StructuralPlate_Cut9" /> + <posXYZ volume="SS_StructuralPlate_Cut10" /> + <posXYZ volume="SS_StructuralPlate_Cut11" /> + <posXYZ volume="SS_StructuralPlate_Cut12" /> + <posXYZ volume="SS_StructuralPlate_Cut13" /> + <posXYZ volume="SS_StructuralPlate_Cut14" /> +</subtraction> + +<composition name="SS_StructuralPlate" > + <posXYZ volume="SS_StructuralPlateSub" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="SS_StructuralPlateSub" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." /> +</composition> + +<box name="SS_Central_reference_bar" material="Aluminium" X_Y_Z="1012.; 100.; 28. " /> + +<box name="SS_Channel_section_L1100_Main" material="Aluminium" X_Y_Z="50.; 1100.; 30. " /> +<subtraction name="SS_Channel_section_L1100" > + <posXYZ volume="SS_Channel_section_L1100_Main" /> + <posXYZ volume="LS_Channel_section_L2000_Cut" /> +</subtraction> + + +<box name="SS_Channel_section_L650_Main" material="Aluminium" X_Y_Z="50.; 650.; 30. " /> +<subtraction name="SS_Channel_section_L650" > + <posXYZ volume="SS_Channel_section_L650_Main" /> + <posXYZ volume="LS_Channel_section_L2000_Cut" /> +</subtraction> + +<box name="SS_UProfile_L1000_Main" material="Aluminium" X_Y_Z="20.; 1000.; 30. " /> +<subtraction name="SS_UProfile_L1000" > + <posXYZ volume="SS_UProfile_L1000_Main" /> + <posXYZ volume="LS_UProfile_L1460_Cut" X_Y_Z="-3.; 0.; 0." /> +</subtraction> + +<box name="SS_UProfile_L920_Main" material="Aluminium" X_Y_Z="20.; 920.; 30. " /> +<subtraction name="SS_UProfile_L920" > + <posXYZ volume="SS_UProfile_L920_Main" /> + <posXYZ volume="LS_UProfile_L1460_Cut" X_Y_Z="-3.; 0.; 0." /> +</subtraction> + +<box name="SS_UProfile_L1200_Main" material="Aluminium" X_Y_Z="20.; 1200.; 30. " /> +<subtraction name="SS_UProfile_L1200" > + <posXYZ volume="SS_UProfile_L1200_Main" /> + <posXYZ volume="LS_UProfile_L1460_Cut" X_Y_Z="-3.; 0.; 0." /> +</subtraction> + +<box name="SS_UProfile_L700_Main" material="Aluminium" X_Y_Z="20.; 700.; 30. " /> +<subtraction name="SS_UProfile_L700" > + <posXYZ volume="SS_UProfile_L700_Main" /> + <posXYZ volume="LS_UProfile_L1460_Cut" X_Y_Z="-3.; 0.; 0." /> +</subtraction> + +<gvxy name="SS_Top_Interface" material="Aluminium" dZ="30."> + <gvxy_point X_Y="849.99; 3705.17"/> + <gvxy_point X_Y="849.99; 4260."/> + <gvxy_point X_Y="627.69; 4260."/> + <gvxy_point X_Y="627.69; 4106.34"/> + <gvxy_point X_Y="564.77; 3758.03"/> +</gvxy> + +<gvxy name="SS_Bottom_Grabber_interface" material="Aluminium" dZ="30."> + <gvxy_point X_Y="454.99; 1875."/> + <gvxy_point X_Y="454.99; 2075."/> + <gvxy_point X_Y="255.; 2075."/> + <gvxy_point X_Y="255.; 1875."/> +</gvxy> + +<gvxy name="SS_Bottom_Interface" material="Aluminium" dZ="30."> + <gvxy_point X_Y="442.2; 1397.5"/> + <gvxy_point X_Y="442.2; 1560.65"/> + <gvxy_point X_Y="397.; 1560.65"/> + <gvxy_point X_Y="397.; 1792.5"/> + <gvxy_point X_Y="194.29; 1792.5"/> + <gvxy_point X_Y="149.53; 1434.71"/> + <gvxy_point X_Y="204.54; 1397.5"/> +</gvxy> + +<box name="SS_MM_Connectors" material="Aluminium" X_Y_Z="76.; 40.; 30. " /> +<box name="SS_MM_Connectors_Lar" material="Aluminium" X_Y_Z="120.; 40.; 30. " /> +<composition name="SS_MM_Connectors_Assembly" > + <posXYZ volume="SS_MM_Connectors" X_Y_Z="214.86; 1243.14; 0." rot="0. ; 0. ; -10.5" /> + <posXYZ volume="SS_MM_Connectors" X_Y_Z="376.17; 2113.54; 0." rot="0. ; 0. ; -10.5" /> + <posXYZ volume="SS_MM_Connectors" X_Y_Z="497.16; 2766.34; 0." rot="0. ; 0. ; -10.5" /> + <posXYZ volume="SS_MM_Connectors" X_Y_Z="626.36; 3463.34; 0." rot="0. ; 0. ; -10.5" /> + <posXYZ volume="SS_MM_Connectors_Lar" X_Y_Z="766.02; 4337.75; 0." rot="0. ; 0. ; -10.5" /> + <posXYZ volume="SS_MM_Connectors" X_Y_Z="624.; 4427.; 0." rot="0. ; 0. ; 90." /> +</composition> + +<box name="SS_KM_Joint" material="ShieldSteel" X_Y_Z="154.; 101.; 48. " /> + +<composition name="SS_Spacer_Frame_Assembly" > + <posXYZ volume="SS_StructuralPlate" X_Y_Z="0.; 0.; 18." /> + <posXYZ volume="SS_StructuralPlate" X_Y_Z="0.; 0.; -18." /> + <posXYZ volume="SS_Central_reference_bar" X_Y_Z="0.; 3107.5; 0." /> + <posXYZ volume="LS_Channel_section_L2000" X_Y_Z="0.; 2057.49; 0." /> + <posXYZ volume="SS_Channel_section_L1100" X_Y_Z="0.; 3707.51; 0." /> + <posXYZ volume="SS_Channel_section_L1100" X_Y_Z="-110.5; 3707.51; 0." /> + <posXYZ volume="SS_Channel_section_L1100" X_Y_Z="110.5; 3707.51; 0." /> + <posXYZ volume="SS_Channel_section_L650" X_Y_Z="-110.5; 1722.; 0." /> + <posXYZ volume="SS_Channel_section_L650" X_Y_Z="110.5; 1722.; 0." /> + <posXYZ volume="SS_UProfile_L1000" X_Y_Z="-345.; 3742.5; 0." /> + <posXYZ volume="SS_UProfile_L1000" X_Y_Z="345.; 3742.5; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="SS_UProfile_L920" X_Y_Z="-195.; 3782.5; 0." /> + <posXYZ volume="SS_UProfile_L920" X_Y_Z="195.; 3782.5; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="SS_UProfile_L1200" X_Y_Z="-195.; 2457.49; 0." /> + <posXYZ volume="SS_UProfile_L1200" X_Y_Z="195.; 2457.49; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="SS_UProfile_L700" X_Y_Z="-360.; 2587.5; 0." /> + <posXYZ volume="SS_UProfile_L700" X_Y_Z="360.; 2587.5; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="SS_Top_Interface" X_Y_Z="0.; 0.; 0." /> + <posXYZ volume="SS_Top_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="SS_Bottom_Grabber_interface" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="SS_Bottom_Grabber_interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="SS_Bottom_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="SS_Bottom_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="SS_MM_Connectors_Assembly" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="SS_MM_Connectors_Assembly" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="SS_MM_Connectors" X_Y_Z="0.; 928.; 0." rot="0. ; 0. ; 90." /> + <posXYZ volume="SS_MM_Connectors" X_Y_Z="0.; 4427.; 0." rot="0. ; 0. ; 90." /> + <posXYZ volume="SS_KM_Joint" X_Y_Z="-927.01; 4160.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="SS_KM_Joint" X_Y_Z="927.01; 4160.; 0." rot="0. ; 0. ; 0." /> + <posXYZ volume="SS_KM_Joint" X_Y_Z="-532.01; 1975.; 0." rot="0. ; 0. ; 0." /> +</composition> + +<composition name="SS_AssemblyRot" > + <posXYZ volume="SS_Spacer_Frame_Assembly" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 22.5" /> +</composition> + +<composition name="SS" > + <posXYZ volume="SS_AssemblyRot" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 0." /> + <posXYZ volume="SS_AssemblyRot" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 45." /> + <posXYZ volume="SS_AssemblyRot" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 90." /> + <posXYZ volume="SS_AssemblyRot" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 135." /> + <posXYZ volume="SS_AssemblyRot" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 180." /> + <posXYZ volume="SS_AssemblyRot" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 225." /> + <posXYZ volume="SS_AssemblyRot" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 270." /> + <posXYZ volume="SS_AssemblyRot" X_Y_Z="0.; 0.; 0." rot=" 0. ; 0. ; 315." /> +</composition> +<!-- End SS Spacer_Frame--> + +<composition name="LS_and_SS_SideA" > + <posXYZ volume="LS" X_Y_Z="0.; 0.; 7641." rot=" 0. ; 0. ; 0." /> + <posXYZ volume="SS" X_Y_Z="0.; 0.; 7177." rot=" 0. ; 0. ; 0." /> +</composition> + +<composition name="LS_and_SS_SideC" > + <posXYZ volume="LS" X_Y_Z="0.; 0.; -7641." rot=" 0. ; 0. ; 0." /> + <posXYZ volume="SS" X_Y_Z="0.; 0.; -7177." rot=" 0. ; 0. ; 0." /> +</composition> + +<composition name="NSW_Spacer" > + <posXYZ volume="LS_and_SS_SideA" /> + <posXYZ volume="LS_and_SS_SideC" /> +</composition> + +</section> + + + + + + + + + + + + + + + +<!--====================================Support Structures and Hub===============================================--> + +<section name = "NSW Aluminum Structure and HUB" + version = "0.0" + date = "25-04-2017" + author = "Georgian Engineering Team - Niko Tsutskiridze" + top_volume = "NSW_Aluminum_Structure_and_HUB"> + +<!-- ********************************************** New Hub ************************************************** --> + +<!-- Horizontal Shielding --> +<gvxysx name="Hub_Outer_Plate1" material="Lead" dZ="517.5"> + <gvxy_point X_Y="-163.1; 820.05"/> + <gvxy_point X_Y=" -169.25; 850.95"/> +</gvxysx> + + <gvxysx name="Hub_Outer_Plate2" material="PolyBoron207HD5" dZ="517.5"> + <gvxy_point X_Y="-163.1; 820."/> + <gvxy_point X_Y=" -153.15; 770."/> +</gvxysx> + +<gvxysx name="Hub_Outer_Plate3" material="Lead" dZ="504."> + <gvxy_point X_Y="-163.1; 820.05"/> + <gvxy_point X_Y=" -169.25; 850.95"/> +</gvxysx> + +<gvxysx name="Hub_Outer_Plate4" material="PolyBoron207HD5" dZ="545."> + <gvxy_point X_Y="-163.1; 820."/> + <gvxy_point X_Y=" -153.15; 770."/> +</gvxysx> + +<gvxysx name="Hub_Outer_Plate5" material="Lead" dZ="30."> + <gvxy_point X_Y="-163.1; 820.05"/> + <gvxy_point X_Y=" -169.25; 850.95"/> +</gvxysx> + +<gvxysx name="Hub_Outer_Plate6" material="PolyBoron207HD5" dZ="30."> + <gvxy_point X_Y="-163.1; 820."/> + <gvxy_point X_Y=" -153.15; 770."/> +</gvxysx> + +<gvxysx name="Hub_Outer_Plate7" material="Lead" dZ="85."> + <gvxy_point X_Y="-163.1; 820.05"/> + <gvxy_point X_Y=" -169.25; 850.95"/> +</gvxysx> + +<gvxysx name="Hub_Outer_Plate8" material="PolyBoron207HD5" dZ="126."> +<gvxy_point X_Y="-163.1; 820."/> + <gvxy_point X_Y=" -153.15; 770."/> +</gvxysx> + +<composition name="Horizontal_Shielding_ForRot_Spec" > + <posXYZ volume="Hub_Outer_Plate5" X_Y_Z="0.; 0.; 908.2" /> + <posXYZ volume="Hub_Outer_Plate6" X_Y_Z="0.; 0.; 908.2" /> +</composition> + +<composition name="Horizontal_Shielding_ForRot_Spec2" > + <posXYZ volume="Hub_Outer_Plate3" X_Y_Z="0.; 0.; 248.7" rot=" 0. ; 0. ; 22.5" /> + <posXYZ volume="Hub_Outer_Plate4" X_Y_Z="0.; 0.; 228.2" rot=" 0. ; 0. ; 22.5" /> +</composition> + +<composition name="Horizontal_Shielding_ForRot" > + <posXYZ volume="Hub_Outer_Plate1" X_Y_Z="0.; 0.; 643.45" /> + <posXYZ volume="Hub_Outer_Plate2" X_Y_Z="0.; 0.; 643.45" /> + <posXYZ volume="Horizontal_Shielding_ForRot_Spec2" /> + <posXYZ volume="Hub_Outer_Plate7" X_Y_Z="0.; 0.; 39.2" /> + <posXYZ volume="Hub_Outer_Plate8" X_Y_Z="0.; 0.; 18.7" /> +</composition> + +<composition name="Horizontal_Shielding" > + <posXYZ volume="Horizontal_Shielding_ForRot" rot=" 0. ; 0. ; 0." /> + <posXYZ volume="Horizontal_Shielding_ForRot" rot=" 0. ; 0. ; 45." /> + <posXYZ volume="Horizontal_Shielding_ForRot" rot=" 0. ; 0. ; 90." /> + <posXYZ volume="Horizontal_Shielding_ForRot" rot=" 0. ; 0. ; 135." /> + <posXYZ volume="Horizontal_Shielding_ForRot" rot=" 0. ; 0. ; 180." /> + <posXYZ volume="Horizontal_Shielding_ForRot" rot=" 0. ; 0. ; 225." /> + <posXYZ volume="Horizontal_Shielding_ForRot" rot=" 0. ; 0. ; 270." /> + <posXYZ volume="Horizontal_Shielding_ForRot" rot=" 0. ; 0. ; 315." /> + <posXYZ volume="Horizontal_Shielding_ForRot_Spec" rot=" 0. ; 0. ; 22.5" /> + <posXYZ volume="Horizontal_Shielding_ForRot_Spec" rot=" 0. ; 0. ; 67.5" /> + <posXYZ volume="Horizontal_Shielding_ForRot_Spec" rot=" 0. ; 0. ; -22.5" /> + <posXYZ volume="Horizontal_Shielding_ForRot_Spec" rot=" 0. ; 0. ; -67.5" /> +</composition> +<!-- End Horizontal Shielding (New Hub) --> + +<!-- Other Parts of New Hub --> +<pcon name="HUB_Extension_inner_tube" material="ShieldSteel" nbPhi="20"> + <polyplane Rio_Z="172.; 225.; 997.75"/> + <polyplane Rio_Z=" 152.3; 225.; 0."/> +</pcon> +<tubs name="HUB_Extension_plate_HO_side" material="ShieldSteel" Rio_Z="172.5; 530.; 59.2" /> +<tubs name="Copper_disk_Extension" material="Copper" Rio_Z="225.5; 454.5; 998." /> +<tubs name="HUB_Extension_outer_tube" material="ShieldSteel" Rio_Z="455.5; 530.; 998.7" /> + +<pcon name="HUB_Main_part_inner_tube" material="ShieldSteel" nbPhi="20"> + <polyplane Rio_Z="148.7; 225.; 858.5"/> + <polyplane Rio_Z=" 137.; 225.; 0."/> +</pcon> + +<tubs name="Copper_disk_Main_part" material="Copper" Rio_Z="225.5; 699.5; 760." /> + +<gvxysxy name="Plate_IP_Main" material="ShieldSteel" dZ="91.6"> + <gvxy_point X_Y="769.95; 153.16"/> + <gvxy_point X_Y="652.77; 436.16"/> + <gvxy_point X_Y="436.16; 652.77"/> + <gvxy_point X_Y="153.16; 769.95"/> +</gvxysxy> + +<tubs name="Plate_IP_Cut_Tube" material="ShieldSteel" Rio_Z="0.; 226.; 95." /> + +<subtraction name="Plate_IP" > + <posXYZ volume="Plate_IP_Main" /> + <posXYZ volume="Plate_IP_Cut_Tube" /> +</subtraction> + +<gvxysxy name="HUB_Main_part_outer_tube_Main" material="ShieldSteel" dZ="767.7"> + <gvxy_point X_Y="769.95; 153.16"/> + <gvxy_point X_Y="652.77; 436.16"/> + <gvxy_point X_Y="436.16; 652.77"/> + <gvxy_point X_Y="153.16; 769.95"/> +</gvxysxy> + +<tubs name="HUB_Main_part_outer_tube_Cut_Tube" material="ShieldSteel" Rio_Z="0.; 700.; 770." /> + +<subtraction name="HUB_Main_part_outer_tube" > + <posXYZ volume="HUB_Main_part_outer_tube_Main" /> + <posXYZ volume="HUB_Main_part_outer_tube_Cut_Tube" /> +</subtraction> + +<gvxysxy name="Plate_HO_Main" material="ShieldSteel" dZ="78."> + <gvxy_point X_Y="769.95; 153.16"/> + <gvxy_point X_Y="652.77; 436.16"/> + <gvxy_point X_Y="436.16; 652.77"/> + <gvxy_point X_Y="153.16; 769.95"/> +</gvxysxy> + +<tubs name="Plate_HO_Cut_Tube" material="ShieldSteel" Rio_Z="0.; 150.5; 80." /> + +<subtraction name="Plate_HO" > + <posXYZ volume="Plate_HO_Main" /> + <posXYZ volume="Plate_HO_Cut_Tube" /> +</subtraction> + +<tubs name="Plate_HO_SupportTube" material="ShieldSteel" Rio_Z="585.; 770.; 21.4" profile="-15.; 210." nbPhi="20"/> + +<tubs name="Disque_shileding_ext" material="PolyBoron207HD5" Rio_Z="532.5; 800.; 40." /> +<tubs name="Plaque_polyboron_droite_v2" material="PolyBoron207HD5" Rio_Z="532.5; 582.5; 200." /> + +<composition name="Hub_Other_Parts_Assembly" > + <posXYZ volume="HUB_Extension_plate_HO_side" X_Y_Z="0.; 0.; 1920.6" /> + <posXYZ volume="HUB_Extension_inner_tube" X_Y_Z="0.; 0.; 892.25" /> + <posXYZ volume="Copper_disk_Extension" X_Y_Z="0.; 0.; 1391.95" /> + <posXYZ volume="HUB_Extension_outer_tube" X_Y_Z="0.; 0.; 1391.6" /> + <posXYZ volume="HUB_Main_part_inner_tube" X_Y_Z="0.; 0.; -45.8" /> + <posXYZ volume="Copper_disk_Main_part" X_Y_Z="0.; 0.; 434.2" /> + <posXYZ volume="Plate_IP" /> + <posXYZ volume="HUB_Main_part_outer_tube" X_Y_Z="0.; 0.; 430.3" /> + <posXYZ volume="Disque_shileding_ext" X_Y_Z="0.; 0.; 944.2" /> + <posXYZ volume="Plaque_polyboron_droite_v2" X_Y_Z="0.; 0.; 1064.25" /> + <posXYZ volume="Plate_HO" X_Y_Z="0.; 0.; 853.2" /> + <posXYZ volume="Plate_HO_SupportTube" X_Y_Z="0.; 0.; 902.95" /> +</composition> +<!-- End Other Parts of New Hub --> + +<composition name="New_Hub" > + <posXYZ volume="Hub_Other_Parts_Assembly" /> + <posXYZ volume="Horizontal_Shielding" /> +</composition> +<!-- ************************************************************************************** End New Hub *********************************************** --> + +<!-- **************************************************** Inner Spoke ******************************************************************* --> +<gvxysx name="Base_Leg" material="Aluminium" dZ="390."> + <gvxy_point X_Y="40.; 531.5"/> + <gvxy_point X_Y=" 40.; -501.5"/> + <gvxy_point X_Y="150.; -501.5"/> + <gvxy_point X_Y=" 150.; -531.5"/> +</gvxysx> + +<gvxy name="JOINING_BAR3" material="Aluminium" dZ="150."> + <gvxy_point X_Y="75.; 23."/> + <gvxy_point X_Y="75.; 7."/> + <gvxy_point X_Y="640.; 7."/> + <gvxy_point X_Y="640.; -23."/> + <gvxy_point X_Y="-640.; -23."/> + <gvxy_point X_Y="-640.; 7."/> + <gvxy_point X_Y="-75.; 7."/> + <gvxy_point X_Y="-75.; 23."/> +</gvxy> + +<box name="LATERAL_PLATE_L" material="Aluminium" X_Y_Z="21.; 1680.; 390. " /> + +<gvxysx name="Front_plate2" material="Aluminium" dZ="14."> + <gvxy_point X_Y="98.65; 2867.18"/> + <gvxy_point X_Y=" 89.94; 2805.19"/> + <gvxy_point X_Y="89.94; 2587.18"/> +</gvxysx> + +<gvxysx name="LS_OUTER3_MainBox" material="Aluminium" dZ="30."> + <gvxy_point X_Y="323.7; 450."/> + <gvxy_point X_Y=" 197.21; -450."/> +</gvxysx> + +<box name="LS_OUTER3_CutBox" material="Aluminium" X_Y_Z="250.; 600.; 35. " /> + +<subtraction name="LS_OUTER3" > + <posXYZ volume="LS_OUTER3_MainBox" /> + <posXYZ volume="LS_OUTER3_CutBox" X_Y_Z=" 0.; -50.; 0. " /> +</subtraction> + +<gvxysx name="REAR_PLATE1" material="Aluminium" dZ="30."> + <gvxy_point X_Y="176.95; 309.25"/> + <gvxy_point X_Y=" 90.03; -309.25"/> +</gvxysx> + +<gvxy name="REAR_PLATE2" material="Aluminium" dZ="30."> + <gvxy_point X_Y="273.95; 174.5"/> + <gvxy_point X_Y="224.9; -174.5"/> + <gvxy_point X_Y="125.; -174.5"/> + <gvxy_point X_Y="125.; -154.5"/> + <gvxy_point X_Y="-125.; -154.5"/> + <gvxy_point X_Y="-125.; -174.5"/> + <gvxy_point X_Y="-224.9; -174.5"/> + <gvxy_point X_Y="-273.95; 174.5"/> +</gvxy> + +<box name="SHIM1" material="Aluminium" X_Y_Z="700.; 150.; 21.6 " /> +<box name="SHIM2" material="Aluminium" X_Y_Z="350.; 150.; 21.6 " /> + +<gvxysx name="REAR_PLATE3" material="Aluminium" dZ="30."> + <gvxy_point X_Y="323.7; 80."/> + <gvxy_point X_Y=" 301.21; -80."/> +</gvxysx> + +<box name="KM_FRONT_PLATE1" material="ShieldSteel" X_Y_Z="34.; 160.; 250. " /> +<box name="KM_LOCKING_PLATE1" material="ShieldSteel" X_Y_Z="20.; 120.; 200. " /> + +<gvxy name="JOINING_BAR2" material="Aluminium" dZ="29."> + <gvxy_point X_Y="175.; 75."/> + <gvxy_point X_Y="964.81; -64.27"/> + <gvxy_point X_Y="938.77; -211.99"/> + <gvxy_point X_Y="161.88; -75."/> + <gvxy_point X_Y="-161.88; -75."/> + <gvxy_point X_Y="-938.77; -211.99"/> + <gvxy_point X_Y="-964.81; -64.27"/> + <gvxy_point X_Y="-175.; 75."/> +</gvxy> + +<gvxy name="JOINING_BAR1" material="Aluminium" dZ="29."> + <gvxy_point X_Y="350.; 75."/> + <gvxy_point X_Y="1196.93; -74.34"/> + <gvxy_point X_Y="1170.88; -222.06"/> + <gvxy_point X_Y="336.88; -75."/> + <gvxy_point X_Y="-336.88; -75."/> + <gvxy_point X_Y="-1170.88; -222.06"/> + <gvxy_point X_Y="-1196.93; -74.34"/> + <gvxy_point X_Y="-350.; 75."/> +</gvxy> + +<composition name="Inner_Spoke_Assembly" > + <posXYZ volume="Base_Leg" X_Y_Z="0.; 1301.5; 0." /> + <posXYZ volume="JOINING_BAR1" X_Y_Z="0.; 4385.; -231.2" /> + <posXYZ volume="JOINING_BAR2" X_Y_Z="0.; 3065.; -231.2" /> + <posXYZ volume="JOINING_BAR3" X_Y_Z="0.; 1715.; -218.05" rot=" 90. ; 0. ; 0." /> + <posXYZ volume="LATERAL_PLATE_L" X_Y_Z="-217.3; 3635.56; 0." rot=" 0. ; 0. ; 8." /> + <posXYZ volume="LATERAL_PLATE_L" X_Y_Z="217.3; 3635.56; 0." rot=" 0. ; 0. ; -8." /> + <posXYZ volume="Front_plate2" X_Y_Z="0.; 0.; 188." /> + <posXYZ volume="LS_OUTER3" X_Y_Z="0.; 4018.41; 180." /> + <posXYZ volume="REAR_PLATE1" X_Y_Z="0.; 3114.99; -180." /> + <posXYZ volume="REAR_PLATE2" X_Y_Z="0.; 3939.93; -180." /> + <posXYZ volume="REAR_PLATE3" X_Y_Z="0.; 4388.42; -180." /> + <posXYZ volume="SHIM1" X_Y_Z="0.; 4385.; -205.85" /> + <posXYZ volume="SHIM2" X_Y_Z="0.; 3065.; -205.85" /> + <posXYZ volume="KM_FRONT_PLATE1" X_Y_Z="318.34; 4156.56; 25." rot=" 0. ; 0. ; -8." /> + <posXYZ volume="KM_FRONT_PLATE1" X_Y_Z="-318.34; 4156.56; 25." rot=" 0. ; 0. ; 8." /> + <posXYZ volume="KM_LOCKING_PLATE1" X_Y_Z="270.71; 4163.26; 0." rot=" 0. ; 0. ; -8." /> + <posXYZ volume="KM_LOCKING_PLATE1" X_Y_Z="-270.71; 4163.26; 0." rot=" 0. ; 0. ; 8." /> +</composition> + +<composition name="Inner_Spoke" > + <posXYZ volume="Inner_Spoke_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 22.5" /> + <posXYZ volume="Inner_Spoke_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 67.5" /> + <posXYZ volume="Inner_Spoke_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 112.5" /> + <posXYZ volume="Inner_Spoke_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 157.5" /> + <posXYZ volume="Inner_Spoke_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 202.5" /> + <posXYZ volume="Inner_Spoke_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 247.5" /> + <posXYZ volume="Inner_Spoke_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 292.5" /> + <posXYZ volume="Inner_Spoke_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 337.5" /> +</composition> + +<!-- *********************************************************************************** End Inner Spoke **************************************************\ +************************************* --> + +<!-- *********************************************************************************** Outer Spoke ******************************************************\ +************************************* --> + +<box name="NSW_F1_spoke_MainBox" material="Aluminium" X_Y_Z="135.; 1060.; 185. " /> +<box name="NSW_F1_spoke_CutBox" material="Aluminium" X_Y_Z="111.; 1070.; 161. " /> + +<subtraction name="NSW_F1_spoke" > + <posXYZ volume="NSW_F1_spoke_MainBox" /> + <posXYZ volume="NSW_F1_spoke_CutBox" /> +</subtraction> +<box name="NSW_F1_spoke_Bot_Plate" material="Aluminium" X_Y_Z="300.; 48.; 300. " /> + +<gvxysx name="Plaque_interface2" material="Aluminium" dZ="37."> + <gvxy_point X_Y="182.5; 375."/> + <gvxy_point X_Y="146.5; 213.2"/> + <gvxy_point X_Y="90.; -375."/> +</gvxysx> + +<gvxysx name="Plaque_interface2.1" material="Aluminium" dZ="45."> + <gvxy_point X_Y="182.5; 375."/> + <gvxy_point X_Y="146.5; 213.2"/> + <gvxy_point X_Y="90.; -375."/> +</gvxysx> + +<box name="NSW_SS_spoke_Pillar_MainBox" material="Aluminium" X_Y_Z="135.; 2683.25; 185. " /> +<box name="NSW_SS_spoke_Pillar_CutBox" material="Aluminium" X_Y_Z="113.; 2685.; 163. " /> + +<subtraction name="NSW_SS_spoke_Pillar" > + <posXYZ volume="NSW_SS_spoke_Pillar_MainBox" /> + <posXYZ volume="NSW_SS_spoke_Pillar_CutBox" /> +</subtraction> + +<box name="Spoke_Joint" material="ShieldSteel" X_Y_Z="75.; 85.; 124.4 " /> + +<gvxysx name="Manifolds_Support_Main" material="Aluminium" dZ="150."> + <gvxy_point X_Y="585.; 75."/> + <gvxy_point X_Y=" 551.74; -75."/> +</gvxysx> + +<box name="Manifolds_Support_CutBox1" material="Aluminium" X_Y_Z="1180.; 140.; 140. " /> +<box name="Manifolds_Support_CutBox2" material="Aluminium" X_Y_Z="160.; 90.; 160. " /> + +<subtraction name="Manifolds_Support" > + <posXYZ volume="Manifolds_Support_Main" /> + <posXYZ volume="Manifolds_Support_CutBox1" /> + <posXYZ volume="Manifolds_Support_CutBox2" X_Y_Z="135.; -45.; 0." /> +</subtraction> + +<box name="Cale" material="Aluminium" X_Y_Z="135.; 280.; 52. " /> +<box name="JD_JOINT2.1_Plate1" material="Aluminium" X_Y_Z="250.; 270.; 20. " /> +<box name="Shim_JD" material="Aluminium" X_Y_Z="250.; 270.; 29. " /> +<box name="JD_JOINT1_Pipe_MainBox" material="Aluminium" X_Y_Z="1300.; 120.; 80." /> +<box name="JD_JOINT1_Pipe_CutBox" material="Aluminium" X_Y_Z="1305.; 100.; 60. " /> + +<subtraction name="JD_JOINT1_Pipe" > + <posXYZ volume="JD_JOINT1_Pipe_MainBox" /> + <posXYZ volume="JD_JOINT1_Pipe_CutBox" /> +</subtraction> + +<box name="JD_JOINT2_Pipe_MainBox" material="Aluminium" X_Y_Z="900.; 120.; 80." /> + +<subtraction name="JD_JOINT2_Pipe" > + <posXYZ volume="JD_JOINT2_Pipe_MainBox" /> + <posXYZ volume="JD_JOINT1_Pipe_CutBox" /> +</subtraction> + +<box name="KM_FRONT_PLATE.1.1" material="ShieldSteel" X_Y_Z="27.; 272.; 120. " /> +<box name="Manifolds_Support_Plate" material="Aluminium" X_Y_Z="9.8; 275.; 175. " /> +<box name="AL_BAR_KM_INCLINED_PLATE" material="Aluminium" X_Y_Z="290.; 38.; 67. " /> + +<composition name="Outer_Spoke_Assembly" > + <posXYZ volume="NSW_F1_spoke" X_Y_Z="0.; 1350.; 0." /> + <posXYZ volume="NSW_F1_spoke_Bot_Plate" X_Y_Z="0.; 795.95; 0." /> + <posXYZ volume="Manifolds_Support" X_Y_Z="0.; 4515.33; 0." /> + <posXYZ volume="Plaque_interface2" X_Y_Z="0.; 1745.; 111.05" /> + <posXYZ volume="Plaque_interface2.1" X_Y_Z="0.; 1745.; -115.05" /> + <posXYZ volume="NSW_SS_spoke_Pillar" X_Y_Z="371.; 3267.85; 0." rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="NSW_SS_spoke_Pillar" X_Y_Z="-371.; 3267.85; 0." rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Spoke_Joint" X_Y_Z="610.52; 4348.24; 154.75" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Spoke_Joint" X_Y_Z="322.65; 3049.77; 154.75" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Spoke_Joint" X_Y_Z="-610.52; 4348.24; 154.75" rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Spoke_Joint" X_Y_Z="-322.65; 3049.77; 154.75" rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Cale" X_Y_Z="537.79; 4020.21; -118.55" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Cale" X_Y_Z="338.24; 3120.06; -118.55" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Cale" X_Y_Z="-537.79; 4020.21; -118.55" rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Cale" X_Y_Z="-338.24; 3120.06; -118.55" rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="515.; 4020.2; -154.6" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="315.; 3120.6; -154.6" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="-515.; 4020.2; -154.6" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="-315.; 3120.6; -154.6" /> + <posXYZ volume="Shim_JD" X_Y_Z="515.; 4020.2; -261.55" /> + <posXYZ volume="Shim_JD" X_Y_Z="315.; 3120.6; -261.55" /> + <posXYZ volume="Shim_JD" X_Y_Z="-515.; 4020.2; -261.55" /> + <posXYZ volume="Shim_JD" X_Y_Z="-315.; 3120.6; -261.55" /> + <posXYZ volume="JD_JOINT1_Pipe" X_Y_Z="0.; 4020.2; -207." /> + <posXYZ volume="JD_JOINT2_Pipe" X_Y_Z="0.; 3120.6; -207." /> + <posXYZ volume="KM_FRONT_PLATE.1.1" X_Y_Z="641.41; 4289.16; 0." rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="KM_FRONT_PLATE.1.1" X_Y_Z="-641.41; 4289.16; 0." rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Manifolds_Support_Plate" X_Y_Z="560.93; 4459.11; 0." rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Manifolds_Support_Plate" X_Y_Z="-560.93; 4459.11; 0." rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="AL_BAR_KM_INCLINED_PLATE" X_Y_Z="-243.; 4099.25; -228.5" /> +</composition> + +<!-- Outer Spoke Foot --> +<gvxysx name="Plaque_interface2_SpecMain" material="Aluminium" dZ="37."> + <gvxy_point X_Y="182.5; 375."/> + <gvxy_point X_Y="146.5; 213.2"/> + <gvxy_point X_Y="90.; -375."/> +</gvxysx> + +<box name="Plaque_interface2_Spec_CutBox" material="Aluminium" X_Y_Z="160.; 260.; 13. " /> + +<subtraction name="Plaque_interface2_Spec" > + <posXYZ volume="Plaque_interface2_SpecMain" /> + <posXYZ volume="Plaque_interface2_Spec_CutBox" X_Y_Z="-120.94; 337.19; -12.5" rot=" 0. ; 0. ; 12.5" /> +</subtraction> + +<gvxysx name="Plaque_interface2.1_SpecMain" material="Aluminium" dZ="45."> + <gvxy_point X_Y="182.5; 375."/> + <gvxy_point X_Y="146.5; 213.2"/> + <gvxy_point X_Y="90.; -375."/> +</gvxysx> + +<subtraction name="Plaque_interface2.1_Spec" > + <posXYZ volume="Plaque_interface2.1_SpecMain" /> + <posXYZ volume="Plaque_interface2_Spec_CutBox" X_Y_Z="-120.94; 337.19; 16.5" rot=" 0. ; 0. ; 12.5" /> +</subtraction> + +<box name="NSW_SS_spoke_PillarSpec_MainBox" material="ShieldSteel" X_Y_Z="135.; 2818.1; 210. " /> +<box name="NSW_SS_spoke_PillarSpec_CutBox" material="Aluminium" X_Y_Z="91.; 2820.; 166. " /> + +<subtraction name="NSW_SS_spokeSpec_Pillar" > + <posXYZ volume="NSW_SS_spoke_PillarSpec_MainBox" /> + <posXYZ volume="NSW_SS_spoke_PillarSpec_CutBox" /> +</subtraction> + +<box name="Cale_Spec" material="Aluminium" X_Y_Z="135.; 280.; 38.6 " /> +<box name="Spoke_Joint1.2" material="Aluminium" X_Y_Z="66.; 100.; 111.9 " /> + +<box name="BOTTOM_PLATE.1_Horisontal_Plate" material="ShieldSteel" X_Y_Z="29.8; 775.; 495. " /> +<box name="BOTTOM_PLATE.1_Vertical_Main_Plate" material="ShieldSteel" X_Y_Z="460.; 640.; 35. " /> + +<gvxy name="Connecting_Plates2.1" material="Aluminium" dZ="22."> + <gvxy_point X_Y="-252.; 130.65"/> + <gvxy_point X_Y="70.; 130.65"/> + <gvxy_point X_Y="252.; 25.65"/> + <gvxy_point X_Y="258.6; -124.1"/> + <gvxy_point X_Y="108.7; -130.65"/> + <gvxy_point X_Y="-252.; 19.35"/> +</gvxy> + +<box name="Tube_alu_feet_MainBox" material="Aluminium" X_Y_Z="1050.; 135.; 185. " /> +<box name="Tube_alu_feet_CutBox" material="Aluminium" X_Y_Z="1055.; 111.4; 161.4 " /> + +<subtraction name="Tube_alu_feet" > + <posXYZ volume="Tube_alu_feet_MainBox" /> + <posXYZ volume="Tube_alu_feet_CutBox" X_Y_Z="-120.94; 337.19; 16.5" rot=" 0. ; 0. ; 12.5" /> +</subtraction> + +<box name="Fix_nut" material="ShieldSteel" X_Y_Z="50.; 52.; 290. " /> + +<gvxy name="Beam_Interface" material="Aluminium" dZ="300."> + <gvxy_point X_Y="-80.; 73.4"/> + <gvxy_point X_Y="80.; 73.4"/> + <gvxy_point X_Y="80.; -73.4"/> + <gvxy_point X_Y="-80.; 28.5"/> +</gvxy> + +<gvxy name="Beam_Interface2" material="Aluminium" dZ="300."> + <gvxy_point X_Y="-80.; 79.8"/> + <gvxy_point X_Y="80.; 79.8"/> + <gvxy_point X_Y="80.; 12.6"/> + <gvxy_point X_Y="-80.; -79.8"/> +</gvxy> + +<box name="LS_T_Joint" material="ShieldSteel" X_Y_Z="80.; 70.; 134.9 " /> +<box name="LS_T_Joint2" material="ShieldSteel" X_Y_Z="77.; 67.; 147.4 " /> + +<gvxy name="Renfort_Bas1_MainBox" material="Aluminium" dZ="135."> + <gvxy_point X_Y="-337.73; -67.5"/> + <gvxy_point X_Y="-251.72; 67.5"/> + <gvxy_point X_Y="251.72; 67.5"/> + <gvxy_point X_Y="337.27; -67.5"/> +</gvxy> + +<box name="Renfort_Bas1_CutBox" material="Aluminium" X_Y_Z="680.; 115.; 115. " /> + + +<subtraction name="Renfort_Bas1" > + <posXYZ volume="Renfort_Bas1_MainBox" /> + <posXYZ volume="Renfort_Bas1_CutBox" /> +</subtraction> + +<composition name="Outer_Spoke_Assembly_FOOT1" > + <posXYZ volume="NSW_F1_spoke" X_Y_Z="0.; 1350.; 0." /> + <posXYZ volume="NSW_F1_spoke_Bot_Plate" X_Y_Z="0.; 795.95; 0." /> + <posXYZ volume="Plaque_interface2_Spec" X_Y_Z="0.; 1745.; 111.05" /> + <posXYZ volume="Plaque_interface2.1_Spec" X_Y_Z="0.; 1745.; -115.05" /> + <posXYZ volume="NSW_SS_spoke_Pillar" X_Y_Z="371.; 3267.85; 0." rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="NSW_SS_spokeSpec_Pillar" X_Y_Z="-385.59; 3333.67; 0." rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Shim_JD" X_Y_Z="515.; 4020.2; -261.55" /> + <posXYZ volume="Shim_JD" X_Y_Z="315.; 3120.6; -261.55" /> + <posXYZ volume="Shim_JD" X_Y_Z="-515.; 4020.2; -261.55" /> + <posXYZ volume="Shim_JD" X_Y_Z="-315.; 3120.6; -261.55" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="515.; 4020.2; -154.6" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="315.; 3120.6; -154.6" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="-515.; 4020.2; -154.6" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="-315.; 3120.6; -154.6" /> + <posXYZ volume="Cale" X_Y_Z="537.79; 4020.21; -118.55" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Cale" X_Y_Z="338.24; 3120.06; -118.55" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Cale_Spec" X_Y_Z="-537.79; 4020.21; -124.35" rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Cale_Spec" X_Y_Z="-338.24; 3120.06; -124.35" rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="JD_JOINT1_Pipe" X_Y_Z="0.; 4020.2; -207." /> + <posXYZ volume="JD_JOINT2_Pipe" X_Y_Z="0.; 3120.6; -207." /> + <posXYZ volume="AL_BAR_KM_INCLINED_PLATE" X_Y_Z="-243.; 4099.25; -228.5" /> + <posXYZ volume="Spoke_Joint" X_Y_Z="322.65; 3049.77; 154.75" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Spoke_Joint" X_Y_Z="610.52; 4348.24; 154.75" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Spoke_Joint1.2" X_Y_Z="-322.65; 3049.28; 161." rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Spoke_Joint1.2" X_Y_Z="-610.4; 4347.75; 161." rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="KM_FRONT_PLATE.1.1" X_Y_Z="641.41; 4289.16; 0." rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="BOTTOM_PLATE.1_Horisontal_Plate" X_Y_Z="-675.29; 4889.64; -29." rot=" 0. ; 0. ; -45." /> + <posXYZ volume="BOTTOM_PLATE.1_Vertical_Main_Plate" X_Y_Z="-491.47; 4727.04; -257.5" rot=" 0. ; 0. ; -45." /> + <posXYZ volume="Connecting_Plates2.1" X_Y_Z="475.73; 4596.28; 103.55" rot=" 0. ; 0. ; -15." /> + <posXYZ volume="Connecting_Plates2.1" X_Y_Z="475.73; 4596.28; -103.55" rot=" 0. ; 0. ; -15." /> + <posXYZ volume="Tube_alu_feet" X_Y_Z="35.49; 4779.63; 0." rot=" 0. ; 0. ; -15." /> + <posXYZ volume="Fix_nut" X_Y_Z="-840.79; 4666.23; -5." rot=" 0. ; 0. ; -45." /> + <posXYZ volume="Fix_nut" X_Y_Z="-443.82; 5063.2; -5." rot=" 0. ; 0. ; -45." /> + <posXYZ volume="Beam_Interface" X_Y_Z="-716.12; 4723.86; 0." rot=" 0. ; 0. ; 45." /> + <posXYZ volume="Beam_Interface2" X_Y_Z="-496.92; 4934.01; 0." rot=" 0. ; 0. ; 45." /> + <posXYZ volume="LS_T_Joint" X_Y_Z="-649.; 4560.58; -172.5" rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="LS_T_Joint2" X_Y_Z="-356.49; 4881.55; -166.25" rot=" 0. ; 0. ; 75." /> + <posXYZ volume="Renfort_Bas1" X_Y_Z="-329.24; 4539.98; 0." rot=" 0. ; 0. ; 45." /> +</composition> + +<composition name="Outer_Spoke_Assembly_FOOT2" > + <posXYZ volume="NSW_F1_spoke" X_Y_Z="0.; 1350.; 0." /> + <posXYZ volume="NSW_F1_spoke_Bot_Plate" X_Y_Z="0.; 795.95; 0." /> + <posXYZ volume="Plaque_interface2_Spec" X_Y_Z="0.; 1745.; 111.05" /> + <posXYZ volume="Plaque_interface2.1_Spec" X_Y_Z="0.; 1745.; -115.05" /> + <posXYZ volume="NSW_SS_spoke_Pillar" X_Y_Z="371.; 3267.85; 0." rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="NSW_SS_spokeSpec_Pillar" X_Y_Z="-385.59; 3333.67; 0." rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Shim_JD" X_Y_Z="515.; 4020.2; 261.55" /> + <posXYZ volume="Shim_JD" X_Y_Z="315.; 3120.6; 261.55" /> + <posXYZ volume="Shim_JD" X_Y_Z="-515.; 4020.2; 261.55" /> + <posXYZ volume="Shim_JD" X_Y_Z="-315.; 3120.6; 261.55" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="515.; 4020.2; 154.6" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="315.; 3120.6; 154.6" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="-515.; 4020.2; 154.6" /> + <posXYZ volume="JD_JOINT2.1_Plate1" X_Y_Z="-315.; 3120.6; 154.6" /> + <posXYZ volume="Cale" X_Y_Z="537.79; 4020.21; 118.55" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Cale" X_Y_Z="338.24; 3120.06; 118.55" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Cale_Spec" X_Y_Z="-537.79; 4020.21; 124.35" rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Cale_Spec" X_Y_Z="-338.24; 3120.06; 124.35" rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="JD_JOINT1_Pipe" X_Y_Z="0.; 4020.2; 207." /> + <posXYZ volume="JD_JOINT2_Pipe" X_Y_Z="0.; 3120.6; 207." /> + <posXYZ volume="AL_BAR_KM_INCLINED_PLATE" X_Y_Z="-243.; 4099.25; 228.5" /> + <posXYZ volume="Spoke_Joint" X_Y_Z="322.65; 3049.77; -154.75" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Spoke_Joint" X_Y_Z="610.52; 4348.24; -154.75" rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="Spoke_Joint1.2" X_Y_Z="-322.65; 3049.28; -161." rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="Spoke_Joint1.2" X_Y_Z="-610.4; 4347.75; -161." rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="KM_FRONT_PLATE.1.1" X_Y_Z="641.41; 4289.16; 0." rot=" 0. ; 0. ; -12.5" /> + <posXYZ volume="BOTTOM_PLATE.1_Horisontal_Plate" X_Y_Z="-675.29; 4889.64; 29." rot=" 0. ; 0. ; -45." /> + <posXYZ volume="BOTTOM_PLATE.1_Vertical_Main_Plate" X_Y_Z="-491.47; 4727.04; 257.5" rot=" 0. ; 0. ; -45." /> + <posXYZ volume="Connecting_Plates2.1" X_Y_Z="475.73; 4596.28; -103.55" rot=" 0. ; 0. ; -15." /> + <posXYZ volume="Connecting_Plates2.1" X_Y_Z="475.73; 4596.28; 103.55" rot=" 0. ; 0. ; -15." /> + <posXYZ volume="Tube_alu_feet" X_Y_Z="35.49; 4779.63; 0." rot=" 0. ; 0. ; -15." /> + <posXYZ volume="Fix_nut" X_Y_Z="-840.79; 4666.23; -5." rot=" 0. ; 0. ; -45." /> + <posXYZ volume="Fix_nut" X_Y_Z="-443.82; 5063.2; -5." rot=" 0. ; 0. ; -45." /> + <posXYZ volume="Beam_Interface" X_Y_Z="-716.12; 4723.86; 0." rot=" 0. ; 0. ; 45." /> + <posXYZ volume="Beam_Interface2" X_Y_Z="-496.92; 4934.01; 0." rot=" 0. ; 0. ; 45." /> + <posXYZ volume="LS_T_Joint" X_Y_Z="-649.; 4560.58; 172.5" rot=" 0. ; 0. ; 12.5" /> + <posXYZ volume="LS_T_Joint2" X_Y_Z="-356.49; 4881.55; 166.25" rot=" 0. ; 0. ; 75." /> + <posXYZ volume="Renfort_Bas1" X_Y_Z="-329.24; 4539.98; 0." rot=" 0. ; 0. ; 45." /> +</composition> +<!-- End Outer Spoke Foot --> + + +<composition name="Outer_Spoke" > + <posXYZ volume="Outer_Spoke_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 0." /> + <posXYZ volume="Outer_Spoke_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 45." /> + <posXYZ volume="Outer_Spoke_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 90." /> + <posXYZ volume="Outer_Spoke_Assembly_FOOT1" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 135." /> + <posXYZ volume="Outer_Spoke_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 180." /> + <posXYZ volume="Outer_Spoke_Assembly_FOOT2" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 180. ; 225." /> + <posXYZ volume="Outer_Spoke_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 270." /> + <posXYZ volume="Outer_Spoke_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 315." /> +</composition> +<!-- ********************************************************************************* End Outer Spoke ****************************************************\ +************************************** --> + +<!-- *********************************************************************************** LSO LSI Connection ***********************************************\ +************************************* --> + +<box name="LSO_LSI_connection_Rot" material="ShieldSteel" X_Y_Z="63.; 754.1; 46. " /> + +<composition name="LSO_LSI_connection_Pos" > + <posXYZ volume="LSO_LSI_connection_Rot" X_Y_Z="0.; 2210.09; 0." /> +</composition> + +<composition name="LSO_LSI_Connection" > + <posXYZ volume="LSO_LSI_connection_Pos" X_Y_Z="0.; 0.; 870.2" rot=" 0. ; 0. ; 22.5" /> + <posXYZ volume="LSO_LSI_connection_Pos" X_Y_Z="0.; 0.; 870.2" rot=" 0. ; 0. ; 67.5" /> + <posXYZ volume="LSO_LSI_connection_Pos" X_Y_Z="0.; 0.; 870.2" rot=" 0. ; 0. ; -22.5" /> + <posXYZ volume="LSO_LSI_connection_Pos" X_Y_Z="0.; 0.; 870.2" rot=" 0. ; 0. ; -67.5" /> +</composition> + +<!-- *********************************************************************************** End LSO LSI Connection *******************************************\ +************************************* --> + +<!-- *********************************************************************************** Alignment Bars ***************************************************\ +**************************************** --> + +<!-- SS Bar --> +<tubs name="SS_Bar_Tube" material="Aluminium" Rio_Z="0.; 49.1; 2382." /> + +<composition name="SS_Bar_Assembly" > + <posXYZ volume="SS_Bar_Tube" X_Y_Z="69.2; 3364.6; 0" rot=" 90. ; 0. ; -3.35" /> +</composition> + +<composition name="SS_Bar" > + <posXYZ volume="SS_Bar_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 0." /> + <posXYZ volume="SS_Bar_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 45." /> + <posXYZ volume="SS_Bar_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 90." /> + <posXYZ volume="SS_Bar_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 135." /> + <posXYZ volume="SS_Bar_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 180." /> + <posXYZ volume="SS_Bar_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 225." /> + <posXYZ volume="SS_Bar_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 270." /> + <posXYZ volume="SS_Bar_Assembly" X_Y_Z="0.; 0.; 233.2" rot=" 0. ; 0. ; 315." /> +</composition> +<!-- End SS Bar --> + +<!-- LS Bar --> +<tubs name="LS_Bar_Tube" material="Aluminium" Rio_Z="0.; 48.; 2340." /> +<box name="LS_Arm" material="Aluminium" X_Y_Z="1010.; 40.; 50. " /> + +<composition name="LS_Bar_Assembly" > + <posXYZ volume="LS_Bar_Tube" X_Y_Z="1286.4; 3086.18; 0." rot=" 90. ; 0. ; -25." /> + <posXYZ volume="LS_Arm" X_Y_Z="1789.34; 4164.73; 0." rot=" 0. ; 0. ; -25." /> +</composition> + +<composition name="LS_Bar" > + <posXYZ volume="LS_Bar_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 0." /> + <posXYZ volume="LS_Bar_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 45." /> + <posXYZ volume="LS_Bar_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 90." /> + <posXYZ volume="LS_Bar_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 135." /> + <posXYZ volume="LS_Bar_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 180." /> + <posXYZ volume="LS_Bar_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 225." /> + <posXYZ volume="LS_Bar_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 270." /> + <posXYZ volume="LS_Bar_Assembly" X_Y_Z="0.; 0.; 697.2" rot=" 0. ; 0. ; 315." /> +</composition> +<!-- End LS Bar --> + +<!-- *********************************************************************************** End Alignment Bars ***********************************************\ +******************************************** --> + + +<composition name="NSW_Aluminum_Structure_and_HUB_Assembly" > + <posXYZ volume="New_Hub" /> + <posXYZ volume="Inner_Spoke" /> + <posXYZ volume="LSO_LSI_Connection" /> + <posXYZ volume="Outer_Spoke" /> + <posXYZ volume="SS_Bar" /> + <posXYZ volume="LS_Bar" /> +</composition> + +<composition name="NSW_Aluminum_Structure_and_HUB_SideA" > + <posXYZ volume="NSW_Aluminum_Structure_and_HUB_Assembly" X_Y_Z="0.; 0.; 6943.8" rot=" 0. ; 0. ; 0." /> +</composition> + +<composition name="NSW_Aluminum_Structure_and_HUB_SideC" > + <posXYZ volume="NSW_Aluminum_Structure_and_HUB_Assembly" X_Y_Z="0.; 0.; -6943.8" rot=" 0. ; 180. ; 0." /> +</composition> + +<composition name="NSW_Aluminum_Structure_and_HUB" > + <posXYZ volume="NSW_Aluminum_Structure_and_HUB_SideA" /> + <posXYZ volume="NSW_Aluminum_Structure_and_HUB_SideC" /> +</composition> + +</section> + +<!-- ===========================================NJD=========================================== --> + +<section name = "NJD Disk" + version = "0.0" + date = "16-11-2016" + author = "Georgian Engineering Team - Niko Tsutskiridze" + top_volume = "NJD_Disk"> + +<!-- NJD Disk --> + +<!-- main disk--> +<tubs name="MD01" material="ShieldSteel" Rio_Z="430.; 4360.; 40." nbPhi="32." /> +<tubs name="MD02" material="ShieldSteel" Rio_Z="430.; 2700.; 48.7" nbPhi="32." /> +<tubs name="MDB01_Cut" material="ShieldSteel" Rio_Z="0.; 840.; 3." nbPhi="32." /> + +<gvxy name="MD03" material="ShieldSteel" dZ="40." > + <gvxy_point X_Y="-3370.; -3950."/> + <gvxy_point X_Y="-3370.; -3880."/> + <gvxy_point X_Y="-3679.5; -2484."/> + <gvxy_point X_Y="-3990.; -1734.39"/> + <gvxy_point X_Y="-2599.16; -3470."/> + <gvxy_point X_Y="-2670.; -3570."/> + <gvxy_point X_Y="-2670.; -3950."/> +</gvxy> + +<subtraction name="MDB01_Un" > + <posXYZ volume="MD01" /> + <posXYZ volume="MDB01_Cut" X_Y_Z=" 0.; 0.; 19.4 " /> +</subtraction> + +<union name="MDB01" > + <posXYZ volume="MDB01_Un" /> + <posXYZ volume="MD03" /> + <posXYZ volume="MD03" rot=" 0.; 180.; 0."/> +</union> +<!-- End main disk--> + + +<!-- Ret.Flux --> +<tubs name="FLUX_Box" material="ShieldSteel" Rio_Z="3800.; 4360.; 39.9" nbPhi="32." /> +<box name="FLUX_Cut_Box" material="ShieldSteel" X_Y_Z="2200.; 400.; 50." /> + +<subtraction name="FLUX" > + <posXYZ volume="FLUX_Box" /> + <posXYZ volume="FLUX_Cut_Box" X_Y_Z=" -1930.; 3430.; 0." /> +</subtraction> +<!-- End Ret.Flux --> + +<!-- FIXING PLATE --> +<box name="FIXING_PLATE" material="ShieldSteel" X_Y_Z="350.; 975.; 40.9" /> +<box name="FIXING_PLATE_Special" material="ShieldSteel" X_Y_Z="350.; 787.5; 40.9" /> + +<composition name="FIXING_PLATE_Pos" > + <posXYZ volume="FIXING_PLATE" X_Y_Z=" 0.; 3252.5; 0." /> +</composition> + +<composition name="FIXING_PLATE_Ass" > + <posXYZ volume="FIXING_PLATE_Special" X_Y_Z=" -1208.8; 2918.31; 0." rot=" 0.; 0.; 22.5" /> + <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 67.5" /> + <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 112.5" /> + <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 157.5" /> + <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 202.5" /> + <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 247.5" /> + <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 292.5" /> + <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 337.5" /> +</composition> +<!-- End FIXING PLATE --> + +<!-- NJD feet--> +<gvxy name="JF01" material="ShieldSteel" dZ="37.3" > + <gvxy_point X_Y="-3300.; -3950."/> + <gvxy_point X_Y="-3300.; -3480."/> + <gvxy_point X_Y="-3270.; -3450."/> + <gvxy_point X_Y="-2730.; -3450."/> + <gvxy_point X_Y="-2700.; -3480."/> + <gvxy_point X_Y="-2700.; -3950."/> +</gvxy> + +<gvxy name="JF02" material="ShieldSteel" dZ="35." > + <gvxy_point X_Y="-342.4; -3950."/> + <gvxy_point X_Y="-342.4; -3930."/> + <gvxy_point X_Y="-77.4; -3470."/> + <gvxy_point X_Y="-57.4; -3470."/> + <gvxy_point X_Y="-57.4; -3920."/> + <gvxy_point X_Y="-87.4; -3950."/> +</gvxy> + +<gvxy name="JF03" material="ShieldSteel" dZ="48." > + <gvxy_point X_Y="-3370.; -362."/> + <gvxy_point X_Y="-3370.; 704."/> + <gvxy_point X_Y="-3495.; 704."/> + <gvxy_point X_Y="-3495.; 933."/> + <gvxy_point X_Y="-2660.; 933."/> + <gvxy_point X_Y="-2660.; 653."/> + <gvxy_point X_Y="-2700.; 653."/> + <gvxy_point X_Y="-2700.; 523."/> + <gvxy_point X_Y="-2590.; 523."/> + <gvxy_point X_Y="-2590.; -52."/> + <gvxy_point X_Y="-2685.; -52."/> + <gvxy_point X_Y="-2685.; -362."/> +</gvxy> + +<gvxy name="JF04" material="ShieldSteel" dZ="41.6" > + <gvxy_point X_Y="-453.5; -4251.1"/> + <gvxy_point X_Y="-453.5; -4158.1"/> + <gvxy_point X_Y="-603.; -4083.1"/> + <gvxy_point X_Y="-603.; -4038.1"/> + <gvxy_point X_Y="-362.; -4038.1"/> + <gvxy_point X_Y="-362.; -3998.1"/> + <gvxy_point X_Y="883.; -3998.1"/> + <gvxy_point X_Y="883.; -4251.1"/> +</gvxy> + +<gvxy name="JF05" material="ShieldSteel" dZ="356.1" > + <gvxy_point X_Y="-603.; -4048.1"/> + <gvxy_point X_Y="-603.; -4038.1"/> + <gvxy_point X_Y="-362.; -4038.1"/> + <gvxy_point X_Y="-362.; -3998.1"/> + <gvxy_point X_Y="-253.; -3998.1"/> + <gvxy_point X_Y="-253.; -4048.1"/> +</gvxy> + +<box name="JF06" material="ShieldSteel" X_Y_Z="536.; 253.; 71.4" /> + +<!-- Right--> +<composition name="Right_Feet" > + <posXYZ volume="JF01" X_Y_Z=" 0.; 0.; 38.7" rot=" 0.; 0.; 0." /> + <posXYZ volume="JF02" X_Y_Z=" -2802.5; 0.; 0." rot=" 0.; 90.; 0." /> + <posXYZ volume="JF02" X_Y_Z=" -3197.5; 0.; 0." rot=" 0.; 90.; 0." /> + <posXYZ volume="JF03" X_Y_Z=" 0.; -3974.05; 0." rot=" -90.; 0.; 0." /> + <posXYZ volume="JF04" X_Y_Z=" -2805.2; 0.; 0." rot=" 0.; 90.; 0." /> + <posXYZ volume="JF04" X_Y_Z=" -3203.; 0.; 0." rot=" 0.; 90.; 0." /> + <posXYZ volume="JF05" X_Y_Z=" -3004.1; 0.; 0." rot=" 0.; 90.; 0." /> + <posXYZ volume="JF06" X_Y_Z=" -3000.; -4124.6; -918.75" rot=" 0.; 0.; 0." /> +</composition> +<!-- End Right--> + +<!-- Left--> +<composition name="Left_Feet" > + <posXYZ volume="JF01" X_Y_Z=" 0.; 0.; 38.7" rot=" 0.; 180.; 0." /> + <posXYZ volume="JF02" X_Y_Z=" 2802.5; 0.; 0." rot=" 0.; 90.; 0." /> + <posXYZ volume="JF02" X_Y_Z=" 3197.5; 0.; 0." rot=" 0.; 90.; 0." /> + <posXYZ volume="JF03" X_Y_Z=" 0.; -3974.05; 0." rot=" -90.; 0.; 180." /> + <posXYZ volume="JF04" X_Y_Z=" 2805.2; 0.; 0." rot=" 0.; 90.; 0." /> + <posXYZ volume="JF04" X_Y_Z=" 3203.; 0.; 0." rot=" 0.; 90.; 0." /> + <posXYZ volume="JF05" X_Y_Z=" 3004.1; 0.; 0." rot=" 0.; 90.; 0." /> + <posXYZ volume="JF06" X_Y_Z=" 3000.; -4124.6; -918.75" rot=" 0.; 0.; 0." /> +</composition> +<!-- End Right--> +<!-- End NJD feet--> + +<composition name="JDDisk_ASide" > + <posXYZ volume="MDB01" X_Y_Z=" 0.; 0.; 6880." rot=" 0.; 0.; 0." /> + <posXYZ volume="MD02" X_Y_Z=" 0.; 0.; 6835.6" rot=" 0.; 0.;0."/> + <posXYZ volume="FLUX" X_Y_Z=" 0.; 0.; 6840." rot=" 0.; 0.; 0." /> + <posXYZ volume="FIXING_PLATE_Ass" X_Y_Z=" 0.; 0.; 6839.5" rot=" 0.; 0.; 0." /> + <posXYZ volume="Right_Feet" X_Y_Z=" 0.; 0.; 6880." rot=" 0.; 180.; 0." /> + <posXYZ volume="Left_Feet" X_Y_Z=" 0.; 0.; 6880." rot=" 0.; 180.; 0." /> +</composition> + +<composition name="JDDisk_CSide" > + <posXYZ volume="MDB01" X_Y_Z=" 0.; 0.; -6880." rot=" 0.; 180.; 0." /> + <posXYZ volume="MD02" X_Y_Z=" 0.; 0.; -6835.6" rot=" 0.; 0.;0."/> + <posXYZ volume="FLUX" X_Y_Z=" 0.; 0.; -6840." rot=" 0.; 0.; 0." /> + <posXYZ volume="FIXING_PLATE_Ass" X_Y_Z=" 0.; 0.; -6839.5" rot=" 0.; 0.; 0." /> + <posXYZ volume="Right_Feet" X_Y_Z=" 0.; 0.; -6880." rot=" 0.; 0.; 0." /> + <posXYZ volume="Left_Feet" X_Y_Z=" 0.; 0.; -6880." rot=" 0.; 0.; 0." /> +</composition> +<!-- End NJD Disk --> + +<composition name="NJD_Disk" > + <posXYZ volume="JDDisk_ASide" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 0." /> + <posXYZ volume="JDDisk_CSide" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 0." /> +</composition> + +</section> + +<!-- ==================================================Feet========================================= --> + +<section name = "A Plate" + version = "0.0" + date = "29-05-2017" + author = "Georgian Engineering Team - Niko Tsutskiridze" + top_volume = "A_Plate"> + +<gvxy name="Lateral_Plate_Main" material="ShieldSteel" dZ="21."> + <gvxy_point X_Y="-3300.; -4000."/> + <gvxy_point X_Y="-3548.3; -3235.72"/> + <gvxy_point X_Y="-1458.4; -560.8"/> + <gvxy_point X_Y="73.9; 73.9"/> + <gvxy_point X_Y="-628.9; -1622.8"/> + <gvxy_point X_Y="-818.3; -1544.4"/> + <gvxy_point X_Y="-1558.6; -2491.9"/> + <gvxy_point X_Y="-1427.8; -2980."/> + <gvxy_point X_Y="-0.01; -2980."/> + <gvxy_point X_Y="-0.01; -3280."/> + <gvxy_point X_Y="-1701.9; -3280."/> + <gvxy_point X_Y="-1995.3; -3050.8"/> + <gvxy_point X_Y="-2650.; -3889."/> + <gvxy_point X_Y="-2650.; -4000."/> +</gvxy> + +<tubs name="Lateral_plate_TubeCut" material="ShieldSteel" Rio_Z=" 0. ; 600. ; 25." nbPhi="36." /> + +<subtraction name="Lateral_Plate" > + <posXYZ volume="Lateral_Plate_Main" /> + <posXYZ volume="Lateral_plate_TubeCut" X_Y_Z="-0.01; -0.01; 0." rot=" 0. ; 0. ; 0." /> +</subtraction> + +<tubs name="Anchorage" material="ShieldSteel" Rio_Z=" 0. ; 22.6 ; 577." nbPhi="36." /> + +<gvxy name="Vertical_Top_Plate" material="ShieldSteel" dZ="33."> + <gvxy_point X_Y="-3300.; -3998."/> + <gvxy_point X_Y="-3300.; -3730."/> + <gvxy_point X_Y="-2865.; -3730."/> + <gvxy_point X_Y="-2675.; -3920."/> + <gvxy_point X_Y="-2675.; -3998."/> +</gvxy> + +<box name="Horizontal_Plate" material="ShieldSteel" X_Y_Z="625.; 40.6; 287. " /> + +<composition name="A_Plate_Assembly" > + <posXYZ volume="Lateral_Plate" /> + <posXYZ volume="Lateral_Plate" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." /> + <posXYZ volume="Anchorage" X_Y_Z="-3447.; -3283.25; -299.01" rot="0. ; 0. ; 0." /> + <posXYZ volume="Anchorage" X_Y_Z="3447.; -3283.25; -299.01" rot="0. ; 0. ; 0." /> + <posXYZ volume="Vertical_Top_Plate" X_Y_Z="0.; 0.; -27.01" rot="0. ; 0. ; 0." /> + <posXYZ volume="Vertical_Top_Plate" X_Y_Z="0.; 0.; -27.01" rot="0. ; 180. ; 0." /> + <posXYZ volume="Horizontal_Plate" X_Y_Z="-2987.5; -3929.7; -187.02" rot="0. ; 0. ; 0." /> + <posXYZ volume="Horizontal_Plate" X_Y_Z="2987.5; -3929.7; -187.02" rot="0. ; 0. ; 0." /> +</composition> + +<composition name="A_Plate_SideA" > + <posXYZ volume="A_Plate_Assembly" X_Y_Z=" 0. ; 0.; 7857.5" /> +</composition> + +<composition name="A_Plate_SideC" > + <posXYZ volume="A_Plate_Assembly" X_Y_Z=" 0. ; 0.; -7857.5" rot="0. ; 180. ; 0." /> +</composition> + +<composition name="A_Plate" > + <posXYZ volume="A_Plate_SideA" /> + <posXYZ volume="A_Plate_SideC" /> +</composition> + +</section> + +<!-- ========== Poisitionning all Volumes in NSW================ --> + +<section name="NewSmallWheels" version="4.3" top_volume="useless" date=" April 20, 2015 " author="Daniel Lellouch"> + +<composition name="NewSmallWheel"> + <posXYZ volume="NSW_sTGC" X_Y_Z="0.;0.;0."/> + <posXYZ volume="NSW_MM" X_Y_Z="0.;0.;0." /> + <posXYZ volume="NSW_Spacer" /> + <posXYZ volume="NSW_Aluminum_Structure_and_HUB" /> + <posXYZ volume="NJD_Disk" /> + <posXYZ volume="A_Plate" /> +</composition> + +</section> + +</AGDD> diff --git a/MuonSpectrometer/MuonIdHelpersAlgs/MuonIdHelpersAlgs/CscHashId.h b/MuonSpectrometer/MuonIdHelpersAlgs/MuonIdHelpersAlgs/CscHashId.h index 970428eddc021724584a18aec6312de535809dfb..cedc0afa963d7b962fa9eaee68118d39a6f938c5 100644 --- a/MuonSpectrometer/MuonIdHelpersAlgs/MuonIdHelpersAlgs/CscHashId.h +++ b/MuonSpectrometer/MuonIdHelpersAlgs/MuonIdHelpersAlgs/CscHashId.h @@ -8,11 +8,9 @@ #include <vector> #include "AthenaBaseComps/AthAlgorithm.h" -#include "StoreGate/ActiveStoreSvc.h" #include "Identifier/Identifier.h" class StoreGateSvc; -class MsgStream; class CscIdHelper; namespace MuonGM { class MuonDetectorManager; diff --git a/MuonSpectrometer/MuonIdHelpersAlgs/MuonIdHelpersAlgs/TestMuonIdHelpers.h b/MuonSpectrometer/MuonIdHelpersAlgs/MuonIdHelpersAlgs/TestMuonIdHelpers.h index 78c6cd78eed392106668fb12cd869153cb0a82ac..9aa2f4ba3dc5032c24f62f503fb9bd16f7b37e85 100644 --- a/MuonSpectrometer/MuonIdHelpersAlgs/MuonIdHelpersAlgs/TestMuonIdHelpers.h +++ b/MuonSpectrometer/MuonIdHelpersAlgs/MuonIdHelpersAlgs/TestMuonIdHelpers.h @@ -12,7 +12,6 @@ class StoreGateSvc; class ActiveStoreSvc; -class MsgStream; class MdtIdHelper; class CscIdHelper; class RpcIdHelper; diff --git a/MuonSpectrometer/MuonIdHelpersAlgs/src/CscHashId.cxx b/MuonSpectrometer/MuonIdHelpersAlgs/src/CscHashId.cxx index a2b847375913512820c524524e94663ca324b222..faa08fd6847c1d6dc7497e3b337f370a1587f154 100644 --- a/MuonSpectrometer/MuonIdHelpersAlgs/src/CscHashId.cxx +++ b/MuonSpectrometer/MuonIdHelpersAlgs/src/CscHashId.cxx @@ -2,10 +2,6 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#include "GaudiKernel/MsgStream.h" - -#include "StoreGate/StoreGateSvc.h" - #include "MuonIdHelpers/CscIdHelper.h" #include "MuonIdHelpersAlgs/CscHashId.h" @@ -80,15 +76,15 @@ StatusCode CscHashId::cscHash() { Identifier id = *firstId; if (m_cscId->validElement(id)) { if(!m_cscId->get_hash(id, moduleHashId, &moduleContext)) { - std::cout << "The CSC Chamber hash id is " << moduleHashId - << " for " << m_cscId->show_to_string(id,&moduleContext) << std::endl; - std::cout << "*****The strips in this Chamber ********************" << std::endl; + ATH_MSG_INFO( "The CSC Chamber hash id is " << moduleHashId + << " for " << m_cscId->show_to_string(id,&moduleContext) ); + ATH_MSG_INFO( "*****The strips in this Chamber ********************" ); std::vector<Identifier> vect; m_cscId->idChannels(id, vect); for (unsigned int i=0; i<vect.size(); ++i) { if(!m_cscId->get_hash(vect[i], channelHashId, &channelContext)) { - std::cout << "The CSC strip hash id is " << channelHashId - << " for " << m_cscId->show_to_string(vect[i],&channelContext) << std::endl; + ATH_MSG_INFO( "The CSC strip hash id is " << channelHashId + << " for " << m_cscId->show_to_string(vect[i],&channelContext) ); } } } diff --git a/MuonSpectrometer/MuonIdHelpersAlgs/src/TestMuonIdHelpers.cxx b/MuonSpectrometer/MuonIdHelpersAlgs/src/TestMuonIdHelpers.cxx index 7e1d169b11d55bc0113c67657cf9ab53ae534c95..c0398de2ae9ba6eb67abecf1b1894db988c62ee3 100644 --- a/MuonSpectrometer/MuonIdHelpersAlgs/src/TestMuonIdHelpers.cxx +++ b/MuonSpectrometer/MuonIdHelpersAlgs/src/TestMuonIdHelpers.cxx @@ -2,10 +2,6 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#include "GaudiKernel/MsgStream.h" - -#include "StoreGate/StoreGateSvc.h" - #include "MuonDigitContainer/MdtDigitContainer.h" #include "MuonDigitContainer/MdtDigitCollection.h" #include "MuonDigitContainer/MdtDigit.h" @@ -33,9 +29,6 @@ #include <algorithm> #include <cmath> -using namespace std; - - ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// @@ -109,12 +102,11 @@ StatusCode TestMuonIdHelpers::finalize() { ATH_MSG_DEBUG( "in finalize()" ); - std::cout << "ntries, user, kernel, elapsed " + ATH_MSG_INFO( "ntries, user, kernel, elapsed " << m_nTries << " " << m_deltaUser << " " << m_deltaKernel << " " - << m_deltaElapsed << " " - << std::endl; + << m_deltaElapsed ); return StatusCode::SUCCESS; @@ -134,7 +126,7 @@ StatusCode TestMuonIdHelpers::testMdtIdHelper() { typedef MdtDigitContainer::const_iterator collection_iterator; typedef MdtDigitCollection::const_iterator digit_iterator; - string key = "MDT_DIGITS"; + std::string key = "MDT_DIGITS"; const DataHandle <MdtDigitContainer> container; ATH_CHECK( (*m_activeStore)->retrieve(container,key) ); collection_iterator it1_coll= container->begin(); @@ -188,7 +180,7 @@ StatusCode TestMuonIdHelpers::testCscIdHelper() { typedef CscDigitContainer::const_iterator collection_iterator; typedef CscDigitCollection::const_iterator digit_iterator; - string key = "CSC_DIGITS"; + std::string key = "CSC_DIGITS"; const DataHandle <CscDigitContainer> container; ATH_CHECK( (*m_activeStore)->retrieve(container,key) ); collection_iterator it1_coll= container->begin(); @@ -241,7 +233,7 @@ StatusCode TestMuonIdHelpers::testRpcIdHelper() { typedef RpcDigitContainer::const_iterator collection_iterator; typedef RpcDigitCollection::const_iterator digit_iterator; - string key = "RPC_DIGITS"; + std::string key = "RPC_DIGITS"; const DataHandle <RpcDigitContainer> container; ATH_CHECK( (*m_activeStore)->retrieve(container,key) ); collection_iterator it1_coll= container->begin(); @@ -294,7 +286,7 @@ StatusCode TestMuonIdHelpers::testTgcIdHelper() { typedef TgcDigitContainer::const_iterator collection_iterator; typedef TgcDigitCollection::const_iterator digit_iterator; - string key = "TGC_DIGITS"; + std::string key = "TGC_DIGITS"; const DataHandle <TgcDigitContainer> container; ATH_CHECK( (*m_activeStore)->retrieve(container,key) ); collection_iterator it1_coll= container->begin(); diff --git a/MuonSpectrometer/MuonReconstruction/MuonDataPrep/MuonTGMeasAssocAlg/MuonTGMeasAssocAlg/MuonTGMeasAssocAlg.h b/MuonSpectrometer/MuonReconstruction/MuonDataPrep/MuonTGMeasAssocAlg/MuonTGMeasAssocAlg/MuonTGMeasAssocAlg.h index 3840eb6803d510be6a89b0282685a457099c5b48..ee1f35db77d9af77340d34f3de721da8b0dc5061 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonDataPrep/MuonTGMeasAssocAlg/MuonTGMeasAssocAlg/MuonTGMeasAssocAlg.h +++ b/MuonSpectrometer/MuonReconstruction/MuonDataPrep/MuonTGMeasAssocAlg/MuonTGMeasAssocAlg/MuonTGMeasAssocAlg.h @@ -11,9 +11,6 @@ // Base class #include "AthenaBaseComps/AthAlgorithm.h" -#include "GaudiKernel/ToolHandle.h" -#include "StoreGate/DataHandle.h" -#include "StoreGate/StoreGateSvc.h" #include "TrkTrack/Track.h" #include "TrkExInterfaces/IExtrapolator.h" #include "TrkGeometry/TrackingGeometry.h" @@ -134,8 +131,7 @@ private: inline StatusCode MuonTGMeasAssocAlg::retrieveMeasurements() { // Get the messaging service, print where you are - MsgStream log(msgSvc(), name()); - log << MSG::DEBUG << "MuonTGMeasAssocAlg::retrieveMeasurements()" << endmsg; + ATH_MSG_DEBUG( "MuonTGMeasAssocAlg::retrieveMeasurements()" ); // //if (m_allHits) delete m_allHits; if (m_mdtHits) delete m_mdtHits; @@ -147,9 +143,9 @@ private: if (m_rpcIn) m_rpcHits = createRpcHitCollectionLayers(); if (m_cscIn) m_cscHits = createCscHitCollectionLayers(); if (m_tgcIn) m_tgcHits = createTgcHitCollectionLayers(); - StatusCode sc = createStationHitCollection(); + ATH_CHECK( createStationHitCollection() ); - log << MSG::DEBUG << "MuonTGMeasAssocAlg::collected hits from " << m_allHits->size() << " stations" << endmsg; + ATH_MSG_DEBUG( "MuonTGMeasAssocAlg::collected hits from " << m_allHits->size() << " stations" ); if (m_allHits->size()) return StatusCode::SUCCESS; diff --git a/MuonSpectrometer/MuonReconstruction/MuonDataPrep/RpcClusterization/RpcClusterization/RpcClusterBuilderPRD.h b/MuonSpectrometer/MuonReconstruction/MuonDataPrep/RpcClusterization/RpcClusterization/RpcClusterBuilderPRD.h index 6b7dafe0a4185c0b4ebaec9ca93765c8d80efeca..4b4220a40810341c8e40eac12268421f6d8797b3 100755 --- a/MuonSpectrometer/MuonReconstruction/MuonDataPrep/RpcClusterization/RpcClusterization/RpcClusterBuilderPRD.h +++ b/MuonSpectrometer/MuonReconstruction/MuonDataPrep/RpcClusterization/RpcClusterization/RpcClusterBuilderPRD.h @@ -5,11 +5,8 @@ #ifndef RpcClusterBuilderPRD_H #define RpcClusterBuilderPRD_H - #include "AthenaBaseComps/AthAlgorithm.h" -#include "StoreGate/DataHandle.h" #include "Identifier/Identifier.h" -//#include "CLHEP/Geometry/Point3D.h" #include "MuonPrepRawData/MuonPrepDataContainer.h" #include "MuonPrepRawData/RpcPrepData.h" @@ -17,13 +14,9 @@ #include "MuonDigitContainer/RpcDigitContainer.h" #include "MuonDigitContainer/RpcDigitCollection.h" #include "MuonDigitContainer/RpcDigit.h" -#include <vector> #include "MuonReadoutGeometry/MuonDetectorManager.h" #include "EventPrimitives/EventPrimitives.h" -class StoreGateSvc; -class ActiveStoreSvc; -class MsgStream; class RpcIdHelper; class RpcClusterBuilderPRD:public AthAlgorithm { @@ -47,7 +40,7 @@ private: void push_back(Muon::RpcPrepData *& newCluster); - std::vector<Muon::RpcPrepDataCollection*> m_coll_vect; + std::vector<Muon::RpcPrepDataCollection*> m_coll_vect; Muon::RpcPrepDataCollection* m_temp_coll; std::string m_colKey; @@ -60,8 +53,6 @@ private: protected: Muon::RpcPrepDataContainer * m_rpcClusterContainer; - ActiveStoreSvc* m_activeStore; - StoreGateSvc *m_EvtStore; const MuonGM::MuonDetectorManager * m_muonMgr; const RpcIdHelper * m_rpcId; diff --git a/MuonSpectrometer/MuonReconstruction/MuonDataPrep/RpcClusterization/src/RpcClusterBuilderPRD.cxx b/MuonSpectrometer/MuonReconstruction/MuonDataPrep/RpcClusterization/src/RpcClusterBuilderPRD.cxx index ae8c0d1119818cf9b8266e1e532f0174a598c519..ba4678f92ac103884c71a5af168694cb5fd57d36 100755 --- a/MuonSpectrometer/MuonReconstruction/MuonDataPrep/RpcClusterization/src/RpcClusterBuilderPRD.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonDataPrep/RpcClusterization/src/RpcClusterBuilderPRD.cxx @@ -8,32 +8,25 @@ Based on CscClusterBuilder by Ketevi A. Assamagan */ -#include "GaudiKernel/MsgStream.h" -#include "StoreGate/StoreGateSvc.h" - #include "MuonReadoutGeometry/RpcReadoutElement.h" #include "MuonIdHelpers/RpcIdHelper.h" #include "RpcClusterization/RpcClusterBuilderPRD.h" -#include <algorithm> -#include <cmath> -#include <cassert> +#include <cmath> +#include <cassert> #include <fstream> #include <strstream> //#include "TrkEventPrimitives/ErrorMatrix.h" //#include "TrkEventPrimitives/CovarianceMatrix.h" - -using namespace std; - ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// RpcClusterBuilderPRD::RpcClusterBuilderPRD(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator), m_temp_coll(NULL), m_rpcClusterContainer(NULL), - m_activeStore(NULL), m_EvtStore(NULL), m_muonMgr(NULL), m_rpcId(NULL) + m_muonMgr(NULL), m_rpcId(NULL) { // Declare the properties @@ -45,64 +38,26 @@ RpcClusterBuilderPRD::RpcClusterBuilderPRD(const std::string& name, ISvcLocator* StatusCode RpcClusterBuilderPRD::initialize(){ - StatusCode sc; - - // Store Gate active store - sc = serviceLocator()->service("ActiveStoreSvc", m_activeStore); - if (sc != StatusCode::SUCCESS ) { - ATH_MSG_ERROR(" Cannot get ActiveStoreSvc "); - return sc ; - } - - // Store Gate transient event store - sc = serviceLocator()->service("StoreGateSvc", m_EvtStore); - if (sc != StatusCode::SUCCESS ) { - ATH_MSG_ERROR(" Cannot get StoreGateSvc "); - return sc ; - } - - // initialize the detectore store service and GeoModel - StoreGateSvc* detStore=0; - sc = serviceLocator()->service("DetectorStore", detStore); - if (sc.isFailure()) { - ATH_MSG_FATAL("DetectorStore service not found !"); - return sc; - } - - sc = detStore->retrieve( m_muonMgr ); - if (sc.isFailure()) { - ATH_MSG_ERROR(" Cannot retrieve MuonGeoModel "); - return sc; - } + ATH_CHECK( detStore()->retrieve( m_muonMgr ) ); m_rpcId = m_muonMgr->rpcIdHelper(); - - // Create an empty cluster container // m_rpcClusterContainer = new Muon::RpcPrepDataContainer(m_rpcId->module_hash_max()); // m_rpcClusterContainer->addRef(); - - return sc; + return StatusCode::SUCCESS; } StatusCode RpcClusterBuilderPRD::execute() { - StatusCode sc; - m_rpcClusterContainer = new Muon::RpcPrepDataContainer(m_rpcId->module_hash_max()); // m_rpcClusterContainer->cleanup(); - sc = m_EvtStore->record(m_rpcClusterContainer,m_colKey); - if (sc.isFailure()) { - ATH_MSG_ERROR(" Cannot record RPC Cluster Container "); - return StatusCode::FAILURE; - } - + ATH_CHECK( evtStore()->record(m_rpcClusterContainer,m_colKey) ); - sc=fill_rpcClusterContainer(); + StatusCode sc=fill_rpcClusterContainer(); if(sc.isFailure()) ATH_MSG_WARNING("couldn't build clusters for this event"); @@ -124,10 +79,8 @@ StatusCode RpcClusterBuilderPRD::finalize() { StatusCode RpcClusterBuilderPRD::fill_rpcClusterContainer() { - StatusCode sc; - const Muon::RpcPrepDataContainer* container; - sc = m_EvtStore->retrieve(container,m_colKeyIn); + StatusCode sc = evtStore()->retrieve(container,m_colKeyIn); if (sc.isFailure()) { ATH_MSG_WARNING(" Cannot retrieve RPC Digit Container with key " << m_colKeyIn.c_str() ); return StatusCode::SUCCESS; @@ -136,7 +89,7 @@ StatusCode RpcClusterBuilderPRD::fill_rpcClusterContainer() { Muon::RpcPrepDataContainer::const_iterator rpcCollection=container->begin(); Muon::RpcPrepDataContainer::const_iterator lastCollection=container->end(); - // sc = m_EvtStore->retrieve(rpcCollection, lastCollection); + // sc = evtStore()->retrieve(rpcCollection, lastCollection); // if (sc.isFailure()) { // ATH_MSG_ERROR(" Cannot retrieve RPC Digit collections "); // return StatusCode::SUCCESS; @@ -209,7 +162,7 @@ int RpcClusterBuilderPRD::buildPatterns(const Muon::RpcPrepDataCollection* rpcCo //const Muon::RpcPrepDataCollection rpcCollection = *iter; - vector<Muon::RpcPrepData*> theDigits= rpcCollection->stdcont(); + std::vector<Muon::RpcPrepData*> theDigits= rpcCollection->stdcont(); Identifier eleId=rpcCollection->identify(); @@ -263,7 +216,7 @@ void RpcClusterBuilderPRD::buildClusters(Identifier elementId) { // loop over existing patterns - map<Identifier, pattern >::iterator patt_it=m_digits.begin(); + std::map<Identifier, pattern >::iterator patt_it=m_digits.begin(); for(;patt_it!=m_digits.end();++patt_it){ @@ -275,17 +228,17 @@ void RpcClusterBuilderPRD::buildClusters(Identifier elementId) { //const RpcReadoutElement* descriptor=m_muonMgr->getRpcReadoutElement(elementId); - map<int, Muon::RpcPrepData*, less<int> >::iterator dig_it=m_digits[panelId].begin(); + std::map<int, Muon::RpcPrepData*, std::less<int> >::iterator dig_it=m_digits[panelId].begin(); - vector<Identifier> theIDs; - vector<int> theAmbFlags; + std::vector<Identifier> theIDs; + std::vector<int> theAmbFlags; int lastStrip=-999; float lastTime=-999; float mintime=0; Amg::Vector3D localPosition(0,0,0); Amg::Vector3D globalPosition(0,0,0); unsigned int count=0; - // vector<Trk::PrepRawData*> digitsInCluster; + // std::vector<Trk::PrepRawData*> digitsInCluster; // get the ID from the first digit in collection @@ -331,7 +284,7 @@ void RpcClusterBuilderPRD::buildClusters(Identifier elementId) { // std::cout<<"deciding amb flag"<<std::endl; for(unsigned int k=0;k<theAmbFlags.size();++k){ - clusAmbFlag=max(clusAmbFlag,theAmbFlags[k]); + clusAmbFlag=std::max(clusAmbFlag,theAmbFlags[k]); // std::cout<<theAmbFlags[k]<< " "<<clusAmbFlag<<std::endl; if(theAmbFlags[k]==1) hasGoldenStrip=true; } @@ -408,7 +361,7 @@ void RpcClusterBuilderPRD::buildClusters(Identifier elementId) { // std::cout<<"deciding amb flag"<<std::endl; for(unsigned int k=0;k<theAmbFlags.size();++k){ - clusAmbFlag=max(clusAmbFlag,theAmbFlags[k]); + clusAmbFlag=std::max(clusAmbFlag,theAmbFlags[k]); // std::cout<<theAmbFlags[k]<< " "<<clusAmbFlag<<std::endl; if(theAmbFlags[k]==1) hasGoldenStrip=true; } @@ -475,7 +428,7 @@ void RpcClusterBuilderPRD::push_back(Muon::RpcPrepData *& newCluster){ // IdContext rpcContext = m_rpcId->module_context(); // Muon::RpcPrepDataContainer::KEY key = m_rpcClusterContainer->key(elementId); -// if (!m_EvtStore->contains<Muon::RpcPrepDataCollection>(key)) { +// if (!evtStore()->contains<Muon::RpcPrepDataCollection>(key)) { // IdentifierHash rpcHashId; // if (m_rpcId->get_hash(elementId, rpcHashId, &rpcContext)) { // ATH_MSG_ERROR("Unable to get RPC hash id from RPC PreDataCollection collection id" @@ -493,7 +446,7 @@ void RpcClusterBuilderPRD::push_back(Muon::RpcPrepData *& newCluster){ // << " in StoreGate!"); // } else { // Muon::RpcPrepDataCollection * oldCollection; -// status = m_EvtStore->retrieve(oldCollection, key); +// status = evtStore()->retrieve(oldCollection, key); // if (status.isFailure()) // ATH_MSG_ERROR("Couldn't retrieve RpcDigitCollection with key=" // << key << " from StoreGate!"); @@ -503,16 +456,10 @@ void RpcClusterBuilderPRD::push_back(Muon::RpcPrepData *& newCluster){ StatusCode RpcClusterBuilderPRD::retrieve_rpcClusterContainer() const { - StatusCode sc; - typedef Muon::RpcPrepDataCollection::const_iterator cluster_iterator; const Muon::RpcPrepDataContainer* PRDcontainer; - sc = m_EvtStore->retrieve(PRDcontainer,m_colKey); - if (sc.isFailure()) { - ATH_MSG_ERROR(" Cannot retrieve RPC PrepData Cluster Container "); - return StatusCode::FAILURE; - } + ATH_CHECK( evtStore()->retrieve(PRDcontainer,m_colKey) ); for (Muon::RpcPrepDataContainer::const_iterator container_iterator=PRDcontainer->begin(); container_iterator != PRDcontainer->end(); @@ -529,11 +476,11 @@ StatusCode RpcClusterBuilderPRD::retrieve_rpcClusterContainer() const { Amg::Vector3D position = cluster->globalPosition(); ATH_MSG_INFO("RPC Cluster ID, Position (mm), size = " << m_rpcId->show_to_string(cluster->identify()) << " [" - << setiosflags(ios::fixed) << setprecision(3) << setw(12) << position.x() - << setiosflags(ios::fixed) << setprecision(3) << setw(12) << position.y() - << setiosflags(ios::fixed) << setprecision(3) << setw(12) << position.z() - // << setiosflags(ios::fixed) << setprecision(3) << setw(12) << cluster->width() - << setiosflags(ios::fixed) << setprecision(3) << setw(12) << cluster->rdoList().size() + << std::setiosflags(std::ios::fixed) << std::setprecision(3) << std::setw(12) << position.x() + << std::setiosflags(std::ios::fixed) << std::setprecision(3) << std::setw(12) << position.y() + << std::setiosflags(std::ios::fixed) << std::setprecision(3) << std::setw(12) << position.z() + // << std::setiosflags(std::ios::fixed) << std::setprecision(3) << std::setw(12) << cluster->width() + << std::setiosflags(std::ios::fixed) << std::setprecision(3) << std::setw(12) << cluster->rdoList().size() << " ]"); } ATH_MSG_INFO("Number of Clusters in the collection is " << collection->size() ); diff --git a/MuonSpectrometer/MuonReconstruction/MuonPatternFinders/MuonPatternFinderTools/MuonHoughPatternTools/MuonHoughPatternTools/MuonHoughPatternTool.h b/MuonSpectrometer/MuonReconstruction/MuonPatternFinders/MuonPatternFinderTools/MuonHoughPatternTools/MuonHoughPatternTools/MuonHoughPatternTool.h index 23df88312e841f1454378d4c2a7eb49ef8bf6d2e..67f1258f1cf8713ba0e7429c15f3a4f8c61803db 100755 --- a/MuonSpectrometer/MuonReconstruction/MuonPatternFinders/MuonPatternFinderTools/MuonHoughPatternTools/MuonHoughPatternTools/MuonHoughPatternTool.h +++ b/MuonSpectrometer/MuonReconstruction/MuonPatternFinders/MuonPatternFinderTools/MuonHoughPatternTools/MuonHoughPatternTools/MuonHoughPatternTool.h @@ -10,9 +10,7 @@ #include "MuonHoughPatternTools/IMuonHoughPatternTool.h" #include "AthenaBaseComps/AthAlgTool.h" -#include "GaudiKernel/MsgStream.h" -class IInterface; class MuonHoughTransformSteering; class MuonHoughTransformer; class TFile; diff --git a/MuonSpectrometer/MuonReconstruction/MuonPatternFinders/MuonPatternFinderTools/MuonHoughPatternTools/src/MuonLayerHoughAlg.h b/MuonSpectrometer/MuonReconstruction/MuonPatternFinders/MuonPatternFinderTools/MuonHoughPatternTools/src/MuonLayerHoughAlg.h index 3c06e081605a6b92618591dae8ed2b00a4dca2a2..10f176371ee8a9ded6fddcc06d92636e17b78352 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonPatternFinders/MuonPatternFinderTools/MuonHoughPatternTools/src/MuonLayerHoughAlg.h +++ b/MuonSpectrometer/MuonReconstruction/MuonPatternFinders/MuonPatternFinderTools/MuonHoughPatternTools/src/MuonLayerHoughAlg.h @@ -6,13 +6,8 @@ #define MUONLAYERHOUGHALG_H #include "AthenaBaseComps/AthAlgorithm.h" -#include "GaudiKernel/ToolHandle.h" #include "MuonHoughPatternTools/MuonLayerHoughTool.h" - -class MsgStream; -class StoreGateSvc; - class MuonLayerHoughAlg : public AthAlgorithm { public: diff --git a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODCaloClusterRetriever.cxx b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODCaloClusterRetriever.cxx index d80d0033373f3393ad86ff41a9478df6d5fd5939..ee69a94b386d75ef44b32bdb2a465d310270fc44 100755 --- a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODCaloClusterRetriever.cxx +++ b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODCaloClusterRetriever.cxx @@ -82,7 +82,7 @@ namespace JiveXML { } }else { //obtain all collections with the given keys - std::vector<std::string>::const_iterator keyIter,endIter; + std::vector<std::string>::const_iterator keyIter; for ( keyIter=m_otherKeys.begin(); keyIter!=m_otherKeys.end(); ++keyIter ){ StatusCode sc = evtStore()->retrieve( ccc, (*keyIter) ); if (!sc.isFailure()) { diff --git a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODElectronRetriever.cxx b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODElectronRetriever.cxx index 97ba29f2b5c5155dc1ed0824e0ff96be322ed3c6..ebb890a13a949211907f6f9f1e529259721e5338 100755 --- a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODElectronRetriever.cxx +++ b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODElectronRetriever.cxx @@ -84,7 +84,7 @@ namespace JiveXML { } }else { //obtain all collections with the given keys - std::vector<std::string>::const_iterator keyIter,endIter; + std::vector<std::string>::const_iterator keyIter; for ( keyIter=m_otherKeys.begin(); keyIter!=m_otherKeys.end(); ++keyIter ){ StatusCode sc = evtStore()->retrieve( electrons, (*keyIter) ); if (!sc.isFailure()) { diff --git a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODJetRetriever.cxx b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODJetRetriever.cxx index 8bd2ed460524d6165f23a15e3a9cfaddc03aa225..d01966b3f9b2ce698e6272180c83ae6830e15858 100755 --- a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODJetRetriever.cxx +++ b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODJetRetriever.cxx @@ -106,7 +106,7 @@ namespace JiveXML { } }else { //obtain all collections with the given keys - std::vector<std::string>::const_iterator keyIter,endIter; + std::vector<std::string>::const_iterator keyIter; for ( keyIter=m_otherKeys.begin(); keyIter!=m_otherKeys.end(); ++keyIter ){ if ( !evtStore()->contains<xAOD::JetContainer>( (*keyIter) ) ){ continue; } // skip if not in SG StatusCode sc = evtStore()->retrieve( Jets, (*keyIter) ); diff --git a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODMissingETRetriever.cxx b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODMissingETRetriever.cxx index 67c2c7dffbf0383eefb5ba9d9ba14dce8556d0cd..d60515a9f93f845b97c6e392b38252769da51e08 100755 --- a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODMissingETRetriever.cxx +++ b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODMissingETRetriever.cxx @@ -83,7 +83,7 @@ namespace JiveXML { } }else { //obtain all collections with the given keys - std::vector<std::string>::const_iterator keyIter,endIter; + std::vector<std::string>::const_iterator keyIter; for ( keyIter=m_otherKeys.begin(); keyIter!=m_otherKeys.end(); ++keyIter ){ if ( !evtStore()->contains<xAOD::MissingETContainer>( (*keyIter) ) ){ continue; } // skip if not in SG StatusCode sc = evtStore()->retrieve( MissingETs, (*keyIter) ); diff --git a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODMuonRetriever.cxx b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODMuonRetriever.cxx index 81d4c50f14390271b71a79e67e8241bf2d1a46cc..a4f0bbcca505b96252670df2ef1e01e32e4a5adf 100755 --- a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODMuonRetriever.cxx +++ b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODMuonRetriever.cxx @@ -88,7 +88,7 @@ namespace JiveXML { } }else { //obtain all collections with the given keys - std::vector<std::string>::const_iterator keyIter,endIter; + std::vector<std::string>::const_iterator keyIter; for ( keyIter=m_otherKeys.begin(); keyIter!=m_otherKeys.end(); ++keyIter ){ StatusCode sc = evtStore()->retrieve( muons, (*keyIter) ); if (!sc.isFailure()) { diff --git a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODPhotonRetriever.cxx b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODPhotonRetriever.cxx index eab4ebb151e7aca25af56c9f6e0d709724eda04d..274e0ef7fc3783e49bdd40d0ae9fbf450ac11650 100755 --- a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODPhotonRetriever.cxx +++ b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODPhotonRetriever.cxx @@ -88,7 +88,7 @@ namespace JiveXML { } }else { //obtain all collections with the given keys - std::vector<std::string>::const_iterator keyIter,endIter; + std::vector<std::string>::const_iterator keyIter; for ( keyIter=m_otherKeys.begin(); keyIter!=m_otherKeys.end(); ++keyIter ){ StatusCode sc = evtStore()->retrieve( photons, (*keyIter) ); if (!sc.isFailure()) { diff --git a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODTrackParticleRetriever.cxx b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODTrackParticleRetriever.cxx index 8071aeb36db9b39f7a0266f9802166ef19b86301..b914c95954b689adf145a27630b3ab0912c4eb8c 100755 --- a/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODTrackParticleRetriever.cxx +++ b/PhysicsAnalysis/AnalysisEventDisplay/xAODJiveXML/src/xAODTrackParticleRetriever.cxx @@ -87,7 +87,7 @@ namespace JiveXML { } }else { //obtain all collections with the given keys - std::vector<std::string>::const_iterator keyIter,endIter; + std::vector<std::string>::const_iterator keyIter; for ( keyIter=m_otherKeys.begin(); keyIter!=m_otherKeys.end(); ++keyIter ){ if ( !evtStore()->contains<xAOD::TrackParticleContainer>( (*keyIter) ) ){ continue; } // skip if not in SG StatusCode sc = evtStore()->retrieve( TrackParticles, (*keyIter) ); diff --git a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/PixelClusterPixelRDOAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/PixelClusterPixelRDOAssociationTool.cxx index a6c74a1a62ee5de7fb62e5bde6ee35ff01f122b7..363c72eaccb200ee78864fb670dfbbe4e6520de1 100644 --- a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/PixelClusterPixelRDOAssociationTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/PixelClusterPixelRDOAssociationTool.cxx @@ -84,7 +84,6 @@ StatusCode PixelClusterPixelRDOAssociationTool::reset (const InDet::PixelCluste if ( sc.isFailure() ) REPORT_MESSAGE (MSG::ERROR)<< "Failed to calculate the tempID."; std::vector< Identifier> pixelClusterIdentifier; - std::vector<Identifier>::iterator posItr; const std::vector<Identifier>& rdoList = p.rdoList(); pixelClusterIdentifier.insert(pixelClusterIdentifier.end(),rdoList.begin(),rdoList.end()); diff --git a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/SCTClusterSCTRDOAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/SCTClusterSCTRDOAssociationTool.cxx index 59095f546f483efdbe088bf764d4df803d20bc8d..c0090b946de25cdbd88e72bdde534689b717a1a7 100644 --- a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/SCTClusterSCTRDOAssociationTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/SCTClusterSCTRDOAssociationTool.cxx @@ -84,7 +84,6 @@ StatusCode SCTClusterSCTRDOAssociationTool::reset (const InDet::SCT_Cluster& p) if ( sc.isFailure() ) REPORT_MESSAGE (MSG::ERROR)<< "Failed to calculate the tempID."; std::vector< Identifier> sctClusterIdentifier; - std::vector<Identifier>::iterator posItr; const std::vector<Identifier>& rdoList = p.rdoList(); sctClusterIdentifier.insert(sctClusterIdentifier.end(),rdoList.begin(),rdoList.end()); diff --git a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.cxx index 54bde18a49943cbb3b03a847d6c0a3f48755a512..b7ca8e013083c526d912408cf4368af740ba7436 100644 --- a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.cxx @@ -176,7 +176,6 @@ StatusCode TrackParticleToPixelClusterAssociationTool::reset (const Rec::TrackP std::vector< Identifier> pixelClusterIdentifier; - std::vector<Identifier>::iterator posItr; const DataVector<const Trk::TrackStateOnSurface>* trackHits = track->trackStateOnSurfaces(); diff --git a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.cxx index cf82e6efa3beb29685d626b84914819c4b3682b5..5d9b5042b988a6d79685185450618c4c740a806a 100644 --- a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.cxx @@ -169,7 +169,6 @@ StatusCode TrackParticleToSCTClusterAssociationTool::reset (const Rec::TrackPar std::vector< Identifier> sctClusterIdentifier; - std::vector<Identifier>::iterator posItr; const DataVector<const Trk::TrackStateOnSurface>* trackHits = track->trackStateOnSurfaces(); diff --git a/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifier.cxx b/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifier.cxx index 8cee72ac081747b8effa86ee6880d136fb2a3808..0389a6850786a8fafec3e6193b43b458b0dd8a5c 100644 --- a/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifier.cxx +++ b/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifier.cxx @@ -521,7 +521,6 @@ MCTruthClassifier::particleTruthClassifier(const xAOD::Jet* jet, bool DR, ParticleType tempparttype = UnknownJet; std::set<const xAOD::TruthParticle*> allJetMothers; std::set<const xAOD::TruthParticle*> constituents; - std::pair<ParticleType,ParticleOrigin> res; if(!jet){ return std::make_pair(parttype,partorig); diff --git a/Reconstruction/Jet/JetRec/share/ExtractorUnitTests.ref b/Reconstruction/Jet/JetRec/share/ExtractorUnitTests.ref new file mode 100644 index 0000000000000000000000000000000000000000..ed9f8df82646843002fb1db7feb874f068995375 --- /dev/null +++ b/Reconstruction/Jet/JetRec/share/ExtractorUnitTests.ref @@ -0,0 +1,10 @@ +[==========] Running 1 test from 1 test case. +[----------] Global test environment set-up. +[----------] 1 test from ExtractorTest +[ RUN ] ExtractorTest.addJet +[ OK ] ExtractorTest.addJet (0 ms) +[----------] 1 test from ExtractorTest (1 ms total) + +[----------] Global test environment tear-down +[==========] 1 test from 1 test case ran. (1 ms total) +[ PASSED ] 1 test. diff --git a/Reconstruction/Jet/JetRec/share/TestTests.ref b/Reconstruction/Jet/JetRec/share/TestTests.ref new file mode 100644 index 0000000000000000000000000000000000000000..a3d707bd886ff2a7585894e16cb6b706e4d8a846 --- /dev/null +++ b/Reconstruction/Jet/JetRec/share/TestTests.ref @@ -0,0 +1,10 @@ +[==========] Running 1 test from 1 test case. +[----------] Global test environment set-up. +[----------] 1 test from TestTest +[ RUN ] TestTest.test +[ OK ] TestTest.test (0 ms) +[----------] 1 test from TestTest (0 ms total) + +[----------] Global test environment tear-down +[==========] 1 test from 1 test case ran. (0 ms total) +[ PASSED ] 1 test. diff --git a/Reconstruction/RecExample/RecJobTransformTests/test/test_data17_13tev_memleak.sh b/Reconstruction/RecExample/RecJobTransformTests/test/test_data17_13tev_memleak.sh deleted file mode 100755 index 84aca715c57c08abbf31d0edf904ffd569a210d9..0000000000000000000000000000000000000000 --- a/Reconstruction/RecExample/RecJobTransformTests/test/test_data17_13tev_memleak.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# -# art-description: Reco_tf runs on 13TeV collision data with Hephaestos for checking for memory leaks 2017 -# art-type: grid - -export LD_PRELOAD=$LCG_RELEASE_BASE/libunwind/5c2cade-76996/$LCG_PLATFORM/lib/libunwind.so; Reco_tf.py --inputBSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/RecJobTransformTests/data17_13TeV.00324910.physics_Main.daq.RAW._lb0713._SFO-6._0001.data --maxEvents 10 --autoConfiguration everything --conditionsTag="CONDBR2-BLKPA-2017-08" --preExec 'rec.doTrigger=False' --outputESDFile myESD.pool.root --outputAODFile myAOD.pool.root --outputTAGFile myTAG.pool.root --athenaopts '--stdcmalloc --leak-check-execute' - -echo "art-result: $?" - diff --git a/Reconstruction/RecExample/RecJobTransformTests/test/test_mc16_memleak.sh b/Reconstruction/RecExample/RecJobTransformTests/test/test_mc16_memleak.sh deleted file mode 100755 index 344c99648df41aa231f29646c0dceb4499de8caa..0000000000000000000000000000000000000000 --- a/Reconstruction/RecExample/RecJobTransformTests/test/test_mc16_memleak.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# -# art-description: Reco_tf runs on mc16 with Hephaestos for memory leak checking -# art-type: grid - -export LD_PRELOAD=$LCG_RELEASE_BASE/libunwind/5c2cade-76996/$LCG_PLATFORM/lib/libunwind.so; Reco_tf.py --inputRDOFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/RecJobTransformTests/mc16_13TeV.410501.PowhegPythia8EvtGen_A14_ttbar_hdamp258p75_nonallhad.merge.RDO.e5458_s3126_d1437/RDO.11426804._000001.pool.root.1 --conditionsTag=default:OFLCOND-MC16-SDR-16 --geometryVersion=default:ATLAS-R2-2016-01-00-01 --runNumber=410501 --maxEvents 10 --outputESDFile myESD.pool.root --athenaopts '--stdcmalloc --leak-check-execute' - -echo "art-result: $?" - diff --git a/Simulation/G4Utilities/G4DebuggingTools/src/Geant4SetupChecker.cxx b/Simulation/G4Utilities/G4DebuggingTools/src/Geant4SetupChecker.cxx index d5002087f46f0af52c8d09219436aa659a2eedfb..cc903cdcdc5b1ad40bdb9c39a85c215f2f0e8a79 100644 --- a/Simulation/G4Utilities/G4DebuggingTools/src/Geant4SetupChecker.cxx +++ b/Simulation/G4Utilities/G4DebuggingTools/src/Geant4SetupChecker.cxx @@ -49,16 +49,19 @@ void Geant4SetupChecker::BeginOfRunAction(const G4Run*){ G4ExceptionDescription ed; ed << "ERROR! Reference had " << lvs << " and this setup has " << g4_logical_volume_store->size() << " logical volumes" << G4endl; G4Exception("Geant4SetupChecker","LogVolMismatch",FatalException,ed); + abort(); } if (pvs!=g4_physical_volume_store->size()){ G4ExceptionDescription ed; ed << "ERROR! Reference had " << pvs << " and this setup has " << g4_physical_volume_store->size() << " physical volumes" << G4endl; G4Exception("Geant4SetupChecker","PhysVolMismatch",FatalException,ed); + abort(); } if (regs!=g4_region_store->size()){ G4ExceptionDescription ed; ed << "ERROR! Reference had " << regs << " and this setup has " << g4_region_store->size() << " regions" << G4endl; G4Exception("Geant4SetupChecker","RegionMismatch",FatalException,ed); + abort(); } } // This was the basic geometry counting part else { // This is a region - check materials and fast sim @@ -67,6 +70,7 @@ void Geant4SetupChecker::BeginOfRunAction(const G4Run*){ G4ExceptionDescription ed; ed << "ERROR! Reference had region named " << id << "that is not in this configuration, or has changed name" << G4endl; G4Exception("Geant4SetupChecker","RegionNotFound",FatalException,ed); + abort(); } unsigned int nmat=0, nfs=0; in >> nmat >> nfs; @@ -74,12 +78,14 @@ void Geant4SetupChecker::BeginOfRunAction(const G4Run*){ G4ExceptionDescription ed; ed << "ERROR! Region " << id << " had " << nmat << " materials in ref and " << areg->GetNumberOfMaterials() << " in this setup" << G4endl; G4Exception("Geant4SetupChecker","MaterialMismatch",FatalException,ed); + abort(); } if ( (!areg->GetFastSimulationManager() && nfs!=0) || ( areg->GetFastSimulationManager() && nfs!=areg->GetFastSimulationManager()->GetFastSimulationModelList().size()) ){ G4ExceptionDescription ed; ed << "ERROR! Region " << id << " had " << nfs << " fast sims in ref and " << (areg->GetFastSimulationManager()?areg->GetFastSimulationManager()->GetFastSimulationModelList().size():0) << " in this setup" << G4endl; G4Exception("Geant4SetupChecker","FastSimMismatch",FatalException,ed); + abort(); } } // End of region handling } // loop over lines diff --git a/Tools/PyJobTransforms/python/trfExe.py b/Tools/PyJobTransforms/python/trfExe.py index f00a61dfff6a7bc3defa3e4447fbfeec4a425821..89af61faa18fbcfbf66242f0a01bd5648d13efaf 100755 --- a/Tools/PyJobTransforms/python/trfExe.py +++ b/Tools/PyJobTransforms/python/trfExe.py @@ -1806,8 +1806,7 @@ class bsMergeExecutor(scriptExecutor): raise trfExceptions.TransformExecutionException(trfExit.nameToCode('TRF_OUTPUT_FILE_ERROR'), 'Exception raised when renaming {0} to {1}: {2}'.format(self._outputFilename, self.conf.dataDictionary[self._outputBS].value[0], e)) super(bsMergeExecutor, self).postExecute() - - + class tagMergeExecutor(scriptExecutor): @@ -1865,7 +1864,6 @@ class archiveExecutor(scriptExecutor): if self._exe == 'tar': self._cmd = [self._exe, '-c', '-v',] - self._cmd.extend(['-f', self.conf.argdict['outputArchFile'].value[0]]) if 'compressionType' in self.conf.argdict: if self.conf.argdict['compressionType'] == 'gzip': self._cmd.append('-z') @@ -1873,6 +1871,8 @@ class archiveExecutor(scriptExecutor): self._cmd.append('-j') elif self.conf.argdict['compressionType'] == 'none': pass + self._cmd.extend(['-f', self.conf.argdict['outputArchFile'].value[0]]) + self._cmd.extend(self.conf.argdict['inputDataFile'].value) elif self._exe == 'zip': self._cmd = ['python'] try: @@ -1892,5 +1892,5 @@ class archiveExecutor(scriptExecutor): raise trfExceptions.TransformExecutionException(trfExit.nameToCode('TRF_EXEC_SETUP_WRAPPER'), errMsg ) - self._cmd.append('zip_wrapper.py') + self._cmd.append('zip_wrapper.py') super(archiveExecutor, self).preExecute(input=input, output=output) diff --git a/Tools/PyJobTransforms/test/test_trfAMI.py b/Tools/PyJobTransforms/test/test_trfAMI.py index 9d7e5aa389148f952b94aba7766d06203911d503..88fcd1d6e3287b2ee717b70425b5c51ef081af90 100755 --- a/Tools/PyJobTransforms/test/test_trfAMI.py +++ b/Tools/PyJobTransforms/test/test_trfAMI.py @@ -56,14 +56,14 @@ class trfAMIUnitTests(unittest.TestCase): # test a new transform tag from AMI def test_info_q220(self): self.maxDiff = None - physics = {'conditionsTag': {'all': 'CONDBR2-BLKPA-2015-02'}, + physics = {'conditionsTag': {'all': 'CONDBR2-BLKPA-2018-03'}, 'beamType': 'cosmics', 'ignoreErrors': False, 'autoConfiguration': ['everything'], 'maxEvents': '25', 'AMITag': 'q220', 'preExec': {'all': ['from CaloRec.CaloCellFlags import jobproperties;jobproperties.CaloCellFlags.doLArHVCorr=False;jobproperties.CaloCellFlags.doPileupOffsetBCIDCorr.set_Value_and_Lock(False);from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doInnerDetectorCommissioning.set_Value_and_Lock(True);InDetFlags.useBroadClusterErrors.set_Value_and_Lock(False);DQMonFlags.doStreamAwareMon=False;DQMonFlags.enableLumiAccess=False;from JetRec.JetRecFlags import jetFlags;jetFlags.useTracks=False;DQMonFlags.doCTPMon=False;']}, - 'geometryVersion': {'all': 'ATLAS-R2-2015-03-01-00'}} + 'geometryVersion': {'all': 'ATLAS-R2-2016-01-00-01'}} tag = TagInfo("q220") self.assertTrue(isinstance(tag.trfs[0], TrfConfig)) diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/CMakeLists.txt b/Tracking/TrkAlignment/TrkAlgebraUtils/CMakeLists.txt index e280a0e1f104ccffd355c8afe016c0a0fe04e618..cb2f982db3fbebf1532a67f81c001c2fbd65de02 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/CMakeLists.txt +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/CMakeLists.txt @@ -11,14 +11,16 @@ atlas_depends_on_subdirs( PRIVATE TestPolicy ) # External dependencies: +find_package( BLAS ) find_package( LAPACK ) +find_package( Eigen ) find_package( ROOT COMPONENTS Core Matrix Tree MathCore Hist RIO pthread ) # Component(s) in the package: atlas_add_library( TrkAlgebraUtils src/*.cxx - ***REMOVED***/*.f PUBLIC_HEADERS TrkAlgebraUtils - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${LAPACK_INCLUDE_DIRS} - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${LAPACK_LIBRARIES} GaudiKernel ) + PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${LAPACK_INCLUDE_DIRS} ${BLAS_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} + PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${EIGEN_LIBRARIES} GaudiKernel ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES}) + diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlMat.h b/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlMat.h index a63f57d22f69877ffa1c1010b2b2bb72d0113ac2..4aad5aeb0d23ea984866611164d18256e6013a14 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlMat.h +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlMat.h @@ -7,6 +7,7 @@ #include <iostream> #include <string> +#include <exception> class StatusCode; @@ -129,14 +130,14 @@ inline AlMat::AlMat_row_const AlMat::operator[] (int r) const{ inline double &AlMat::AlMat_row::operator[](int c){ if(m_r<0||m_r>=m_a.nrow() || c<0||c>=m_a.ncol()) - std::cerr << "Range error in AlMat::operator[][]" << std::endl; + throw std::out_of_range( "Range error in AlMat::operator[][]" ); return *(m_a.m_ptr_data+m_r*m_a.ncol()+c); } inline const double & AlMat::AlMat_row_const::operator[](int c) const { if(m_r<0||m_r>=m_a.nrow() || c<0||c>=m_a.ncol()) - std::cerr << "Range error in AlMat::operator[][]" << std::endl; + throw std::out_of_range( "Range error in AlMat::operator[][]" ); return *(m_a.m_ptr_data+m_r*m_a.ncol()+c); } diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSpaMat.h b/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSpaMat.h index 7bd363d518eb23750fd09c6bc13ed361753f707f..6ae73cdfd775aa61b811b06bf7748ce00078e523 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSpaMat.h +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSpaMat.h @@ -7,7 +7,7 @@ #include "TrkAlgebraUtils/AlSymMatBase.h" -#include <iostream> +#include <exception> class StatusCode; template<class Element> class TMatrixTSparse; @@ -50,7 +50,7 @@ class AlSpaMat : public AlSymMatBase { virtual AlSpaMat& operator*=(const double&); // ADVANCED: - int ***REMOVED***Solve(AlVec& RHS); + int SolveWithEigen(AlVec& RHS); virtual void RemoveModule( int); virtual void RemoveAlignPar(int, int); virtual void RemoveDoF( int, int nelem=1); @@ -95,13 +95,13 @@ class AlSpaMat : public AlSymMatBase { inline void AlSpaMat::elem(const indices& key, long int& i, long int& j) const { i = key.first; j = key.second; - if(j>i) std::cerr << "AlSpaMat::elem: i<j ! " << std::endl; + if(j>i) throw std::out_of_range( "AlSpaMat::elem: i<j ! " ); return; } inline long int AlSpaMat::nele() { // first check for intrinsic consistency: - if( int(m_ptr_map.size()) != m_nele ) std::cerr << "AlSpaMat::m_nele has been corrupted!" << std::endl; + if( int(m_ptr_map.size()) != m_nele ) throw std::range_error( "AlSpaMat::m_nele has been corrupted!" ); m_nele = m_ptr_map.size(); return m_nele; } diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSymMat.h b/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSymMat.h index 24c3a56a34812c2c8b8a352f464ff200d7fb9160..7c3e717c85ecc7b011b36d55f1e2ec9c698b8a09 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSymMat.h +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSymMat.h @@ -94,10 +94,10 @@ class AlSymMat : public AlSymMatBase { inline long int AlSymMat::elem(long int i,long int j) const { #ifdef _DEBUG - if( i<0 ) { std::cerr << "AlSymMat::elem: Index 1 < zero! " << i << std::endl; return *(m_ptr_data); }; - if( i>=size() ) { std::cerr << "AlSymMat::elem: Index 1 too large! " << i << std::endl; return *(m_ptr_data); }; - if( j<0 ) { std::cerr << "AlSymMat::elem: Index 2 < zero! " << j << std::endl; return *(m_ptr_data); }; - if( j>=size() ) { std::cerr << "AlSymMat::elem: Index 2 too large! " << j << std::endl; return *(m_ptr_data); }; + if( i<0 ) { throw std::out_of_range( "AlSymMat::elem: Index 1 < zero! " ); }; + if( i>=size() ) { throw std::out_of_range( "AlSymMat::elem: Index 1 too large! " ); }; + if( j<0 ) { throw std::out_of_range( "AlSymMat::elem: Index 2 < zero! " ); }; + if( j>=size() ) { throw std::out_of_range( "AlSymMat::elem: Index 2 too large! " ); }; #endif if( j<=i ) { return ((i+1)*i/2+j); diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSymMatBase.h b/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSymMatBase.h index 2350b8e72e58b9cb89ab293c7770a81c895fb363..47353fe1a6554bd92b84b491ade316cc375589cc 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSymMatBase.h +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlSymMatBase.h @@ -9,7 +9,7 @@ // modified from SiGlobalChi2AlgebrUtils::AlSymMatBase, modified to make // pure virtual -#include <iostream> +#include <exception> #include <map> #include <vector> @@ -119,8 +119,7 @@ inline AlSymMatBase::AlSymMatBase_row_const AlSymMatBase::operator[] (long int r inline double & AlSymMatBase::AlSymMatBase_row::operator[](long int c) { if(m_r<0||m_r>=m_a.nrow() || c<0||c>=m_a.ncol()) { - std::cerr << "Range error in AlSymMatBase::operator[][]" << std::endl; - return m_a.elemr(0,0); + throw std::out_of_range( "Range error in AlSymMatBase::operator[][]" ); } else { return m_a.elemr(m_r,c); } @@ -128,8 +127,7 @@ inline double & AlSymMatBase::AlSymMatBase_row::operator[](long int c) { inline double AlSymMatBase::AlSymMatBase_row_const::operator[](long int c) const { if(m_r<0||m_r>=m_a.nrow() || c<0||c>=m_a.ncol()) { - std::cerr << "Range error in AlSymMatBase::operator[][]" << std::endl; - return m_a.elemc(0,0); + throw std::out_of_range( "Range error in AlSymMatBase::operator[][]" ); } else { return m_a.elemc(m_r,c); } diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlVec.h b/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlVec.h index 8e2bf3c0df7e3ebab16ee4589cb239ccf120dc6a..e32c8ca5c359460968523476f2cce2a04ee70d99 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlVec.h +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/TrkAlgebraUtils/AlVec.h @@ -7,7 +7,7 @@ // PBdR (17Apr2007) -#include <iostream> +#include <exception> #include <map> #include <vector> @@ -91,13 +91,11 @@ inline double* AlVec::ptrData() const { inline double& AlVec::operator[](int i) { if( i < 0 ) { - std::cerr << "AlVec: Index < zero! " << std::endl; - return m_ptr_data[0]; + throw std::out_of_range( "AlVec: Index < zero! " ); } if( i >= m_size ) { - std::cerr << "AlVec: Index too large! " << std::endl; - return m_ptr_data[0]; + throw std::out_of_range( "AlVec: Index too large! "); } return *(m_ptr_data+i); @@ -105,13 +103,11 @@ inline double& AlVec::operator[](int i) { inline const double& AlVec::operator[](int i) const { if( i < 0 ) { - std::cerr << "AlVec: Index < zero! " << std::endl; - return m_ptr_data[0]; + throw std::out_of_range( "AlVec: Index < zero! " ); } if( i >= m_size ) { - std::cerr << "AlVec: Index too large! " << std::endl; - return m_ptr_data[0]; + throw std::out_of_range( "AlVec: Index too large! " ); } return *(m_ptr_data+i); diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlMat.cxx b/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlMat.cxx index 25fbb6a7dad948b09e2cfba29bbf2bc94fc59fa2..ec817d14ce151a47420cc94fdb56e8c0038afe06 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlMat.cxx +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlMat.cxx @@ -14,6 +14,7 @@ #include <fstream> #include <sstream> #include <stdint.h> +#include <exception> namespace Trk { @@ -49,14 +50,14 @@ AlMat::AlMat(const AlMat& m) { } AlMat::~AlMat() -{if( m_ptr_data != NULL) delete [] m_ptr_data;} +{if( m_ptr_data != nullptr ) delete [] m_ptr_data;} void AlMat::copy(const AlMat& m) { int nr = nrow(); int nc = ncol(); if( nr != m.nrow() || nc != m.ncol() ) { - std::cerr << "AlMat::copy: sizes do not match!" << std::endl; - return; } + throw std::range_error( "AlMat::copy: sizes do not match!" ); + } for( int i=0; i<nr; i++ ) { for( int j=0; j<nc; j++ ) { @@ -68,8 +69,8 @@ void AlMat::copy(const AlMat& m) { void AlMat::copy(const AlSymMatBase& m) { long int n = m.size(); if( nrow() != n || ncol() != n ) { - std::cerr << "AlMat::copy: sizes do not match!" << std::endl; - return; } + throw std::range_error( "AlMat::copy: sizes do not match!" ); + } for( int i=0; i<n; i++ ) { for( int j=0; j<n; j++ ) { @@ -80,10 +81,10 @@ void AlMat::copy(const AlSymMatBase& m) { double& AlMat::elemr(long int i,long int j) { #ifdef _DEBUG - if( i<0 ) { std::cerr << "AlMat::elemr: Index 1 < zero! " << i << std::endl; return *(m_ptr_data); }; - if( i>=size ) { std::cerr << "AlMat::elemr: Index 1 too large! " << i << std::endl; return *(m_ptr_data); }; - if( j<0 ) { std::cerr << "AlMat::elemr: Index 2 < zero! " << j << std::endl; return *(m_ptr_data); }; - if( j>=size ) { std::cerr << "AlMat::elemr: Index 2 too large! " << j << std::endl; return *(m_ptr_data); }; + if( i<0 ) { throw std::out_of_range( "AlMat::elemr: Index 1 < zero! " ); }; + if( i>=size ) { throw std::out_of_range( "AlMat::elemr: Index 1 too large!" ); }; + if( j<0 ) { throw std::out_of_range( "AlMat::elemr: Index 2 < zero! " ); }; + if( j>=size ) { throw std::out_of_range( "AlMat::elemr: Index 2 too large!" ); }; #endif if( m_transpose ) return *(m_ptr_data+j*m_ncol+i); @@ -92,10 +93,10 @@ double& AlMat::elemr(long int i,long int j) { double AlMat::elemc(long int i,long int j) const { #ifdef _DEBUG - if( i<0 ) { std::cerr << "AlMat::elemc: Index 1 < zero! " << i << std::endl; return *(m_ptr_data); }; - if( i>=size ) { std::cerr << "AlMat::elemc: Index 1 too large! " << i << std::endl; return *(m_ptr_data); }; - if( j<0 ) { std::cerr << "AlMat::elemc: Index 2 < zero! " << j << std::endl; return *(m_ptr_data); }; - if( j>=size ) { std::cerr << "AlMat::elemc: Index 2 too large! " << j << std::endl; return *(m_ptr_data); }; + if( i<0 ) { throw std::out_of_range( "AlMat::elemr: Index 1 < zero! " ); }; + if( i>=size ) { throw std::out_of_range( "AlMat::elemr: Index 1 too large!" ); }; + if( j<0 ) { throw std::out_of_range( "AlMat::elemr: Index 2 < zero! " ); }; + if( j>=size ) { throw std::out_of_range( "AlMat::elemr: Index 2 too large!" ); }; #endif if( m_transpose ) return *(m_ptr_data+j*m_ncol+i); @@ -104,10 +105,10 @@ double AlMat::elemc(long int i,long int j) const { long int AlMat::elem(long int i,long int j) const { #ifdef _DEBUG - if( i<0 ) { std::cerr << "AlMat::elem: Index 1 < zero! " << i << std::endl; return *(m_ptr_data); }; - if( i>=size ) { std::cerr << "AlMat::elem: Index 1 too large! " << i << std::endl; return *(m_ptr_data); }; - if( j<0 ) { std::cerr << "AlMat::elem: Index 2 < zero! " << j << std::endl; return *(m_ptr_data); }; - if( j>=size ) { std::cerr << "AlMat::elem: Index 2 too large! " << j << std::endl; return *(m_ptr_data); }; + if( i<0 ) { throw std::out_of_range( "AlMat::elemr: Index 1 < zero! " ); }; + if( i>=size ) { throw std::out_of_range( "AlMat::elemr: Index 1 too large!" ); }; + if( j<0 ) { throw std::out_of_range( "AlMat::elemr: Index 2 < zero! " ); }; + if( j>=size ) { throw std::out_of_range( "AlMat::elemr: Index 2 too large!" ); }; #endif if( m_transpose ) return (j*m_ncol+i); @@ -127,7 +128,9 @@ AlMat& AlMat::operator=(const AlMat& m) { if (this==&m) return *this; if(( m_nrow!=0 || m_ncol!=0) && (m_nrow != m.nrow() || m_ncol != m.ncol() )) - { std::cerr << "AlMat=AlMat Assignment: size do not match!" << std::endl; return *this; } + { + throw std::range_error( "AlMat=AlMat Assignment: size do not match!" ); + } if ( m_ptr_data != m.m_ptr_data ) { reSize(m.nrow(), m.ncol()); @@ -138,7 +141,9 @@ AlMat& AlMat::operator=(const AlMat& m) { AlMat& AlMat::operator=(const AlSymMat& m) { if( ( m_nrow!=0 || m_ncol!=0) && (m_nrow != m.size() || m_ncol != m.size() )) - { std::cerr << "AlMat=AlSymMatBase Assignment: size do not match!" << std::endl; return *this; } + { + throw std::range_error( "AlMat=AlSymMatBase Assignment: size do not match!" ); + } if ( m_ptr_data != m.ptrData() ) { reSize(m.size(), m.size()); @@ -149,7 +154,9 @@ AlMat& AlMat::operator=(const AlSymMat& m) { AlMat AlMat::operator+(const AlMat& m) const { if( m_nrow != m.m_nrow || m_ncol != m.m_ncol ) - { std::cerr << "AlMat: operator+: size do not match!" << std::endl; return *this; } + { + throw std::range_error( "AlMat: operator+: size do not match!" ); + } AlMat b( m_nrow, m_ncol ); @@ -164,7 +171,9 @@ AlMat AlMat::operator+(const AlMat& m) const { AlMat& AlMat::operator+=(const AlMat& m) { if( m_nrow != m.m_nrow || m_ncol != m.m_ncol ) - { std::cerr << "AlMat: operator+=: size do not match!" << std::endl; return *this; } + { + throw std::range_error( "AlMat: operator+=: size do not match!" ); + } double* p = m_ptr_data + m_nele; double* q = m.m_ptr_data + m_nele; @@ -175,7 +184,9 @@ AlMat& AlMat::operator+=(const AlMat& m) { AlMat AlMat::operator-(const AlMat& m) const { if( m_nrow != m.m_nrow || m_ncol != m.m_ncol ) - { std::cerr << "AlMat: operator-: size do not match!" << std::endl; return *this; } + { + throw std::range_error( "AlMat: operator-: size do not match!" ); + } AlMat b( m_nrow, m_ncol ); @@ -189,7 +200,9 @@ AlMat AlMat::operator-(const AlMat& m) const { AlMat& AlMat::operator-=(const AlMat& m) { if( m_nrow != m.m_nrow || m_ncol != m.m_ncol ) - { std::cerr << "AlMat: operator-=: size do not match!" << std::endl; return *this; } + { + throw std::range_error( "AlMat: operator-=: size do not match!"); + } double* p = m_ptr_data + m_nele; double* q = m.m_ptr_data + m_nele; @@ -199,8 +212,10 @@ AlMat& AlMat::operator-=(const AlMat& m) { } AlMat AlMat::operator*(const AlMat& m) const { - if( ncol() != m.nrow() ) { std::cerr << "AlMat: operator*: size do not match!" << std::endl; - return m; } + if( ncol() != m.nrow() ) + { + throw std::range_error( "AlMat: operator*: size do not match!" ); + } int k(nrow()); int l(m.ncol()); @@ -216,8 +231,10 @@ AlMat AlMat::operator*(const AlMat& m) const { } AlMat AlMat::operator*(const AlSymMatBase& m) const { - if( ncol() != m.size()) { std::cerr << "AlMat: operator*: size do not match!" << std::endl; - return *this; } + if( ncol() != m.size()) + { + throw std::range_error( "AlMat: operator*: size do not match!" ); + } int k(nrow()); int l(m.size()); @@ -234,7 +251,9 @@ AlMat AlMat::operator*(const AlSymMatBase& m) const { AlVec AlMat::operator*(const AlVec& v) const { if( ncol() != v.size() ) - { std::cerr << "AlMat: operator*: size do not match! " << std::endl; return v; } + { + throw std::range_error( "AlMat: operator*: size do not match! " ); + } int k(nrow()); int l(ncol()); @@ -290,8 +309,7 @@ AlMat& AlMat::Normal() { //invert sym matrix declared as non-symetric for convenience void AlMat::invertS(int& ierr, double Norm = 1.) { if(m_nrow!=m_ncol) { - std::cerr << "AlMat invertS: non-square matrix!" << std::endl; - return; + throw std::range_error( "AlMat invertS: non-square matrix!" ); } AlSymMat b(m_nrow); diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlSpaMat.cxx b/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlSpaMat.cxx index 7a9dde91cce68c9561327bc78e113d7190fbb43d..a8a508c04619e00d7b8675c3067bbf75e8ce8093 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlSpaMat.cxx +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlSpaMat.cxx @@ -19,26 +19,15 @@ #include <math.h> #include <float.h> #include <stdint.h> +#include <stdexcept> #include <TMatrixDSparse.h> -extern"C" { - void ma27id_(int ICNTL[],double CNTL[]); - void ma27ad_(int *N,int *NZ,int IRN[],int ICN[], - int IW[],int *LIW,int IKEEP[],int IW1p[], - int *NSTEPS,int *IFLAG,int ICNTL[],double CNTL[], - int INFO[],double *OPS); +#include <Eigen/Core> +#include <Eigen/IterativeLinearSolvers> +#include <Eigen/SparseCholesky> - void ma27bd_(int *N,int *NZ,int IRN[],int ICN[], - double A[],int *LA,int IW[],int *LIW,int IKEEP[], - int *NSTEPS,int *MAXFRT, int IW1[],int ICNTL[], - double CNTL[], int INFO[]); - - void ma27cd_(int *N, double A[],int *LA,int IW[],int *LIW, - double W[],int *MAXFRT,double RHS[],int IW1[],int *NSTEPS, - int ICNTL[], int INFO[]); -} namespace Trk { @@ -48,8 +37,8 @@ AlSpaMat::AlSpaMat() m_matrix_type = 2; m_size = 0; m_nele = 0; - m_ptr_row = NULL; - m_ptr_col = NULL; // set pointer to null + m_ptr_row = nullptr; + m_ptr_col = nullptr; // set pointer to null } //______________________________________________________________________________ @@ -58,8 +47,8 @@ AlSpaMat::AlSpaMat(long int N) m_matrix_type = 2; m_size = N; m_nele = 0; - m_ptr_row = NULL; - m_ptr_col = NULL; // set pointer to null + m_ptr_row = nullptr; + m_ptr_col = nullptr; // set pointer to null } //______________________________________________________________________________ @@ -68,8 +57,8 @@ AlSpaMat::AlSpaMat(const AlSpaMat& m) { m_matrix_type = 2; m_size = m.size(); - m_ptr_row = NULL; - m_ptr_col = NULL; // set pointer to null + m_ptr_row = nullptr; + m_ptr_col = nullptr; // set pointer to null copy(m); } @@ -78,8 +67,8 @@ AlSpaMat::AlSpaMat(const AlSymMat& m) { m_matrix_type = 2; m_size = m.size(); - m_ptr_row = NULL; - m_ptr_col = NULL; // set pointer to null + m_ptr_row = nullptr; + m_ptr_col = nullptr; // set pointer to null copy(m); } @@ -87,16 +76,15 @@ AlSpaMat::AlSpaMat(const AlSymMat& m) AlSpaMat::~AlSpaMat() { m_ptr_map.clear(); - if( m_ptr_row != NULL ) delete [] m_ptr_row; - if( m_ptr_col != NULL ) delete [] m_ptr_col; + if( m_ptr_row != nullptr ) delete [] m_ptr_row; + if( m_ptr_col != nullptr ) delete [] m_ptr_col; } //______________________________________________________________________________ void AlSpaMat::copy(const AlSpaMat& m) { if( size() != m.size()) { - std::cerr << "AlSpaMat::copy: size do not match!" << std::endl; - return; + throw std::range_error( "AlSpaMat::copy: size do not match!" ); } m_ptr_map.clear(); m_nele=m.m_nele; @@ -108,8 +96,7 @@ void AlSpaMat::copy(const AlSpaMat& m) void AlSpaMat::copy(const AlSymMat& m) { if( size() != m.size()) { - std::cerr << "AlSpaMat::copy: size do not match!" << std::endl; - return; + throw std::range_error( "AlSpaMat::copy: size do not match!" ); } m_ptr_map.clear(); m_nele=0; @@ -129,8 +116,7 @@ void AlSpaMat::copy(const AlSymMat& m) void AlSpaMat::copy(const AlMat& m) { if( size() != m.nrow() || size() != m.ncol() ) { - std::cerr << "AlSpaMat::copy: size do not match!" << std::endl; - return; + throw std::range_error( "AlSpaMat::copy: size do not match!" ); } // copy just the lower triangle: @@ -153,20 +139,16 @@ double& AlSpaMat::elemr(long int i,long int j) { #ifdef _DEBUG if( i<0 ) { - std::cerr << "AlSpaMat::elemr: Index 1 < zero! " << i << std::endl; - return m_ptr_map.begin()->second; + throw std::out_of_range( "AlSpaMat::elemr: Index 1 < zero! " ); } if( i>=size() ) { - std::cerr << "AlSpaMat::elemr: Index 1 too large! " << i << std::endl; - return m_ptr_map.begin()->second; + throw std::out_of_range( "AlSpaMat::elemr: Index 1 too large! " ); } if( j<0 ) { - std::cerr << "AlSpaMat::elemr: Index 2 < zero! " << j << std::endl; - return m_ptr_map.begin()->second; + throw std::out_of_range( "AlSpaMat::elemr: Index 2 < zero! " ); } if( j>=size() ) { - std::cerr << "AlSpaMat::elemr: Index 2 too large! " << j << std::endl; - return m_ptr_map.begin()->second; + throw std::out_of_range("AlSpaMat::elemr: Index 2 too large! " );; } #endif // try fast referencing: @@ -193,20 +175,16 @@ double AlSpaMat::elemc(long int i,long int j) const { #ifdef _DEBUG if( i<0 ) { - std::cerr << "AlSpaMat::elemc: Index 1 < zero! " << i << std::endl; - return 0.0; + throw std::out_of_range( "AlSpaMat::elemc: Index 1 < zero! " ); } if( i>=size() ) { - std::cerr << "AlSpaMat::elemc: Index 1 too large! " << i << std::endl; - return 0.0; + throw std::out_of_range( "AlSpaMat::elemc: Index 1 too large! " ); } if( j<0 ) { - std::cerr << "AlSpaMat::elemc: Index 2 < zero! " << j << std::endl; - return 0.0; + throw std::out_of_range( "AlSpaMat::elemc: Index 2 < zero! " ); } if( j>=size() ) { - std::cerr << "AlSpaMat::elemc: Index 2 too large! " << j << std::endl; - return 0.0; + throw std::out_of_range( "AlSpaMat::elemc: Index 2 too large! " ); } #endif // try fast referencing: @@ -228,20 +206,16 @@ indices AlSpaMat::elem(long int i,long int j) const // ATTENTION! the key value is returned: #ifdef _DEBUG if( i<0 ) { - std::cerr << "AlSpaMat::elem: Index 1 < zero! " << i << std::endl; - return std::make_pair(0,0); + throw std::out_of_range( "AlSpaMat::elem: Index 1 < zero! " ); } if( i>=size() ) { - std::cerr << "AlSpaMat::elem: Index 1 too large! " << i << std::endl; - return std::make_pair(0,0); + throw std::out_of_range( "AlSpaMat::elem: Index 1 too large! " ); } if( j<0 ) { - std::cerr << "AlSpaMat::elem: Index 2 < zero! " << j << std::endl; - return std::make_pair(0,0); + throw std::out_of_range( "AlSpaMat::elem: Index 2 < zero! " ); } if( j>=size() ) { - std::cerr << "AlSpaMat::elem: Index 2 too large! " << j << std::endl; - return std::make_pair(0,0); + throw std::out_of_range( "AlSpaMat::elem: Index 2 too large! " ); } #endif @@ -272,8 +246,7 @@ AlSpaMat& AlSpaMat::operator=(const AlSymMat& m) AlSpaMat& AlSpaMat::operator=(const AlMat& m) { if( m.nrow() != m.ncol() ) { - std::cerr << "AlSpaMat::=operator: allowed for square matrices only!" << std::endl; - return *this; + throw std::range_error( "AlSpaMat::=operator: allowed for square matrices only!" ); } m_size=m.nrow(); @@ -295,8 +268,7 @@ AlSpaMat& AlSpaMat::operator=(const double& d) AlSpaMat AlSpaMat::operator+(const AlSpaMat& m) const { if( size() != m.size()) { - std::cerr << "AlSpaMat::operator+: size do not match!" << std::endl; - return *this; + throw std::range_error( "AlSpaMat::operator+: size do not match!" ); } AlSpaMat b(m); @@ -312,8 +284,7 @@ AlSpaMat AlSpaMat::operator+(const AlSpaMat& m) const AlSpaMat& AlSpaMat::operator+=(const AlSpaMat& m) { if( size() != m.size()) { - std::cerr << "AlSpaMat::operator+=: size do not match!" << std::endl; - return *this; + throw std::range_error( "AlSpaMat::operator+=: size do not match!" ); } const_mapiterator pos; @@ -328,8 +299,7 @@ AlSpaMat& AlSpaMat::operator+=(const AlSpaMat& m) AlSpaMat AlSpaMat::operator-(const AlSpaMat& m) const { if( size() != m.size()) { - std::cerr << "AlSpaMat::operator-: size do not match!" << std::endl; - return *this; + throw std::range_error( "AlSpaMat::operator-: size do not match!" ); } AlSpaMat b(m); @@ -345,8 +315,7 @@ AlSpaMat AlSpaMat::operator-(const AlSpaMat& m) const AlSpaMat& AlSpaMat::operator-=(const AlSpaMat& m) { if( size() != m.size()) { - std::cerr << "AlSpaMat::operator-=: size do not match!" << std::endl; - return *this; + throw std::range_error( "AlSpaMat::operator-=: size do not match!" ); } const_mapiterator pos; @@ -361,9 +330,7 @@ AlSpaMat& AlSpaMat::operator-=(const AlSpaMat& m) AlMat AlSpaMat::operator*(const AlSymMatBase& m) const { if( size() != m.size() ) { - std::cerr << "AlSpaMat::operator*: size do not match!" << std::endl; - AlMat b( size(), m.size()); - return b; + throw std::range_error( "AlSpaMat::operator*: size do not match!" ); } long int isiz(size()); @@ -380,8 +347,7 @@ AlMat AlSpaMat::operator*(const AlSymMatBase& m) const //______________________________________________________________________________ AlMat AlSpaMat::operator*(const AlMat& m) const { if( size() != m.nrow() ) { - std::cerr << "AlSpaMat::operator*: size do not match!" << std::endl; - return m; + throw std::range_error( "AlSpaMat::operator*: size do not match!" ); } long int isiz(size()); @@ -400,8 +366,7 @@ AlMat AlSpaMat::operator*(const AlMat& m) const { AlVec AlSpaMat::operator*(const AlVec& v) const { if( size() != v.size() ) { - std::cerr << "AlSpaMat::operator*: size do not match! " << std::endl; - return v; + throw std::range_error( "AlSpaMat::operator*: size do not match! " ); } long int isiz(size()); @@ -438,118 +403,94 @@ AlSpaMat AlSpaMat::operator*(const double& d) const //______________________________________________________________________________ double AlSpaMat::determinant() { - double deter = 1.; - - std::cerr << "AlSpaMat::determinant: not implemented!" << std::endl; - - return deter; + throw std::invalid_argument( "AlSpaMat::determinant: not implemented!" ); } -//______________________________________________________________________________ -int AlSpaMat::***REMOVED***Solve(AlVec& RHS) -{ - int ICNTL[30]; - double CNTL[5]; - ma27id_(ICNTL,CNTL); - - double* ptr_data = new double[m_nele]; - m_ptr_row = new int[m_nele]; - m_ptr_col = new int[m_nele]; - - int Size(m_size); - int Nele(m_nele); - - //Convert Storage System +int AlSpaMat::SolveWithEigen(AlVec& RHS){ + + if(RHS.size() != size() ){ + throw std::range_error( "AlSpaMat::SolveWithEigen vector size is incorrect" ); + } + + Eigen::VectorXd eigenBigVector( RHS.size() ); + for(int i(0); i< RHS.size(); ++i ){ + eigenBigVector[i] = RHS[i]; + } + Eigen::SparseMatrix<double> eigenBigMatrix( m_size, m_size ); + + typedef Eigen::Triplet<double> Triplet; + std::vector<Triplet> tripletList; + tripletList.reserve(m_nele); long int i, j; long int counter(0); mapiterator pos; for (pos = m_ptr_map.begin(); pos!=m_ptr_map.end(); pos++){ elem(pos->first, i, j); - *(ptr_data+counter)=pos->second; - *(m_ptr_row+counter)= i+1; - *(m_ptr_col+counter)= j+1; + tripletList.push_back(Triplet(i,j,pos->second)); + if(i!=j) tripletList.push_back(Triplet(j,i,pos->second)); counter++; } + eigenBigMatrix.setFromTriplets(tripletList.begin(), tripletList.end()); - int LIW =3/2*(2*Nele+3*Size+1); - int* IW = new int[LIW]; - int* IKEEP = new int[3*Size]; - int* IW1 = new int[2*Size]; - int NSTEPS; - int IFLAG = 0; - int INFO[20]; - double OPS; - - ma27ad_(&Size, &Nele,m_ptr_row,m_ptr_col, - IW,&LIW,IKEEP,IW1, - &NSTEPS,&IFLAG,ICNTL,CNTL, - INFO,&OPS); - - int MAXFRT; - int LA =2*INFO[4]; + // Eigen::CholmodSupernodalLLT is much much quicker (x50) so it would be great to move to that in the future + // requires an external package SuiteSparse + // BiCGSTAB was the fastest iterative solver in Eigen from a quick test + // SimplicialLDLT was the fastest direct solver in Eigen (x2 slower than BiCGSTAB ) - double* TempA = new double[Nele]; - for (int i=0; i<Nele ;i++) - *(TempA+i) = *(ptr_data+i); + // Eigen::BiCGSTAB<Eigen::SparseMatrix<double> > solver; + Eigen::SimplicialLDLT<Eigen::SparseMatrix<double> > solver; - delete [] ptr_data; - ptr_data = new double[LA]; - - for (int i=0; i<LA ;i++) - *(ptr_data+i)=0; - - for (int i=0; i<Nele ;i++) - *(ptr_data+i)= *(TempA+i); - - delete [] TempA; - - ma27bd_(&Size,&Nele,m_ptr_row,m_ptr_col, - ptr_data,&LA,IW,&LIW,IKEEP, - &NSTEPS,&MAXFRT,IW1,ICNTL, - CNTL,INFO); + solver.compute(eigenBigMatrix); + if(solver.info()!=Eigen::Success) { + // decomposition failed + throw std::domain_error("AlSpaMat::SolveWithEigen: failed to compute: -- is the input matrix singular?" ); + return 1; + } - double* W =new double[MAXFRT]; + Eigen::VectorXd x = solver.solve( eigenBigVector ); + if(solver.info()!=Eigen::Success) { + // solving failed + throw std::domain_error("AlSpaMat::SolveWithEigen: Failed to solve: -- is your matrix singular? "); + return 2; + } + + //Copy results into vector + for(int i(0); i< RHS.size(); ++i ){ + RHS[i] = x[i]; + } - double* RHStemp =new double[Size]; - for (int i=0; i<Size; i++) - RHStemp[i] = RHS[i]; + //Check accuracy + Eigen::VectorXd residual = eigenBigMatrix * x - eigenBigVector; + double sumresidual = 0; + for( int i=0; i<residual.size(); ++i){ + sumresidual += fabs(residual[i]); + } + sumresidual /= (double) residual.size(); + + if( sumresidual > 1e-3 ){ + throw std::overflow_error( "AlSpaMat::SolveWithEigen: your solution is no good! "); + return 3; + } - ma27cd_(&Size, ptr_data,&LA,IW,&LIW, - W,&MAXFRT,RHStemp,IW1,&NSTEPS, - ICNTL,INFO); + return 0; - for (int i=0; i<Size; i++) - RHS[i] = RHStemp[i]; - delete [] RHStemp; - delete [] IW; - delete [] IKEEP; - delete [] IW1; - delete [] W; +} - delete [] ptr_data; ptr_data=NULL; - delete [] m_ptr_row; m_ptr_row=NULL; - delete [] m_ptr_col; m_ptr_col=NULL; - return INFO[0]; -} //______________________________________________________________________________ //jlove int AlSpaMat::diagonalize(char jobz, AlVec& w, AlMat& z) { int AlSpaMat::diagonalize(char, AlVec&, AlMat&) { - std::cerr << "AlSpaMat::diagonalize: not implemented!" << std::endl; - int ierr = -1; - return ierr; + throw std::invalid_argument( "AlSpaMat::diagonalize: not implemented!" ); } //______________________________________________________________________________ int AlSpaMat::invert() { - std::cerr << "AlSpaMat::invert: not implemented!" << std::endl; - int ierr = -1; - return ierr; + throw std::invalid_argument( "AlSpaMat::invert: not implemented!" ); } //______________________________________________________________________________ @@ -595,11 +536,10 @@ int AlSpaMat::RemoveCollsRows(std::vector<int> indices) { int n = indices.size(); if (n==0) { - std::cerr<<"Vector of indices to remove is empty."<<std::endl; return m_size; } if (n>m_size) { - std::cerr<<"Vector of indices larger than matrix size."<<std::endl; + throw std::invalid_argument( "AlSpaMat::RemoveCollsRows: Vector of indices larger than matrix size." ); return m_size; } @@ -616,8 +556,7 @@ int AlSpaMat::RemoveCollsRows(std::vector<int> indices) // remove rows and columns starting from largest indices for (int i=0;i<n;i++) { if (indices[i] > m_size-1) { - std::cerr<<"Index "<<indices[i]<<" goes beyond matrix (size "<<m_size<<")."<<std::endl; - continue; + throw std::out_of_range( "AlSpaMat::RemoveCollsRows: Index goes beyond matrix." ); } RemoveDoF(indices[i]); } @@ -728,7 +667,7 @@ void AlSpaMat::SetPathTxt(const std::string &path) //jlove StatusCode AlSpaMat::Write(const std::string &filename, bool binary, // bool square, double scale, float version){ StatusCode AlSpaMat::Write(const std::string &filename, bool binary, - bool square, double, float version) + bool /*square*/, double, float version) { std::ofstream outmat; @@ -744,9 +683,6 @@ StatusCode AlSpaMat::Write(const std::string &filename, bool binary, outmat.write((char*)&msizz, sizeof (msizz)); outmat.write((char*)&version, sizeof (version)); outmat.write((char*)&nelem, sizeof (nelem)); - // std::cout << "AlSpaMat::Write: msizz = " << msizz << std::endl; - // std::cout << "AlSpaMat::Write: version = " << version << std::endl; - // std::cout << "AlSpaMat::Write: nelem = " << nelem << std::endl; } else { outmat.open((m_pathtxt+filename).c_str()); @@ -777,8 +713,6 @@ StatusCode AlSpaMat::Write(const std::string &filename, bool binary, outmat << std::setw(6) << i << std::setw(6) << j << std::setw(18) << melem << std::endl; } outmat.close(); - if(square) - std::cout << "AlSpaMat::Write: square flag has been ignored!" << std::endl; return StatusCode::SUCCESS; } @@ -805,8 +739,6 @@ StatusCode AlSpaMat::CheckMatVersion(const std::string filename, bool &StdUnits) inmat.close(); - // std::cout << "AlSpaMat::StdUnits: " << StdUnits << std::endl; - return StatusCode::SUCCESS; } @@ -817,8 +749,6 @@ StatusCode AlSpaMat::Read(const std::string &filename, int &dofs, bool &triang, if (StatusCode::SUCCESS != CheckMatVersion(m_pathbin+filename, stdUnits)) return StatusCode::FAILURE; - // std::cout << "AlSpaMat::StdUnits: " << stdUnits << std::endl; - std::ifstream inmat((m_pathbin+filename).c_str(), std::ios::binary); if(inmat.fail()) return StatusCode::FAILURE; @@ -836,7 +766,6 @@ StatusCode AlSpaMat::Read(const std::string &filename, int &dofs, bool &triang, if (stdUnits) inmat.read((char*)&version, sizeof (version)); - // std::cout << "AlSpaMat::Write: version = " << version << std::endl; double melem=0; int32_t i, j; @@ -845,7 +774,6 @@ StatusCode AlSpaMat::Read(const std::string &filename, int &dofs, bool &triang, triang=false; inmat.read((char*)&nelem, sizeof (nelem)); m_nele=nelem; - // std::cout << "AlSpaMat::Write: nelem = " << nelem << std::endl; for(int k=0; k<nelem; k++) { inmat.read((char*)&i, sizeof (i)); inmat.read((char*)&j, sizeof (j)); @@ -858,7 +786,6 @@ StatusCode AlSpaMat::Read(const std::string &filename, int &dofs, bool &triang, for(int32_t i=0; i<msiz; i++) { for(int32_t j=0; j<msiz; j++) { inmat.read((char*)&melem, sizeof (melem)); - // std::cout << "AlSpaMat::Write: nelem = " << nelem << std::endl; if( i>=j && melem!=0. ) m_ptr_map.insert(std::make_pair(std::make_pair(i,j), melem)); } @@ -867,7 +794,6 @@ StatusCode AlSpaMat::Read(const std::string &filename, int &dofs, bool &triang, else { // triangular format triang=true; msiz = (-1)*msiz; - // std::cout << "msiz=" << msiz << std::endl; for( int32_t i=0; i<msiz; i++) { for( int32_t j=0; j<=i; j++) { inmat.read((char*)&melem, sizeof (melem)); @@ -910,7 +836,6 @@ StatusCode AlSpaMat::ReadProjected(const std::string &filename, int &dofs, triang=false; inmat.read((char*)&nelem, sizeof (nelem)); m_nele=nelem; -// std::cout << "AlSpaMat::Write: nelem = " << nelem << std::endl; for(int k=0; k<nelem; k++) { inmat.read((char*)&i, sizeof (i)); inmat.read((char*)&j, sizeof (j)); @@ -931,7 +856,6 @@ StatusCode AlSpaMat::ReadProjected(const std::string &filename, int &dofs, else { // triangular format triang=true; msiz = (-1)*msiz; -// std::cout << "msiz=" << msiz << std::endl; for( int32_t i=0; i<msiz; i++) { for( int32_t j=0; j<=i; j++) { inmat.read((char*)&melem, sizeof (melem)); @@ -966,8 +890,6 @@ TMatrixDSparse* AlSpaMat::makeTMatrix() counter++; } - std::cout << counter << " " << nonZeroElements << " size " << m_size <<std::endl; - TMatrixDSparse* myTMatrix = new TMatrixDSparse(0,m_size-1,0,m_size-1); myTMatrix->SetMatrixArray(nonZeroElements,irow,icol,val); diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlSymMat.cxx b/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlSymMat.cxx index 8b5c064dbd6ff458b2ab62fbf0390de691dd2139..249be984baa93ee9a8205639d1ce319a9b596fac 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlSymMat.cxx +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlSymMat.cxx @@ -16,6 +16,7 @@ #include <math.h> #include <float.h> //for DBL_EPSILON #include <stdint.h> +#include <stdexcept> #include <TMatrixDSparse.h> @@ -41,7 +42,7 @@ AlSymMat::AlSymMat() m_matrix_type = 1; m_size = 0; m_nele = 0; - m_ptr_data = NULL; // set pointer to null + m_ptr_data = nullptr; // set pointer to null m_pathbin="./"; m_pathtxt="./"; } @@ -105,7 +106,7 @@ AlSymMat& AlSymMat::operator=(const AlSpaMat& m) //______________________________________________________________________________ AlSymMat::~AlSymMat() { - if( m_ptr_data != NULL ) delete [] m_ptr_data; + if( m_ptr_data != nullptr ) delete [] m_ptr_data; //ptr_map.clear(); } @@ -114,8 +115,7 @@ void AlSymMat::copy(const AlSymMat& m) { // this one implements the fast copy alg. if( size() != m.size()) { - std::cerr << "AlSymMat::copy: size do not match!" << std::endl; - return; + throw std::range_error( "AlSymMat::copy: size do not match!" ); } double * p = m_ptr_data + m_nele; @@ -130,8 +130,7 @@ void AlSymMat::copy(const AlSpaMat& m) { // if( size() != m.size()) { - std::cerr << "AlSymMat::copy: size do not match!" << std::endl; - return; + throw std::range_error( "AlSymMat::copy: size do not match!" ); } (*this) = 0.; @@ -152,8 +151,7 @@ void AlSymMat::copy(const AlMat& m) // copy the lower triangle only! int si = size(); if( si != m.nrow() || si != m.ncol() ) { - std::cerr << "AlSymMat::copy: sizes do not match!" << std::endl; - return; + throw std::range_error("AlSymMat::copy: sizes do not match!" ); } for( int i=0; i<si; i++ ) @@ -178,8 +176,7 @@ AlSymMat& AlSymMat::operator=(const AlSymMat& m) AlSymMat& AlSymMat::operator=(const AlMat& m) { if( m.nrow() != m.ncol() ) { - std::cerr << "AlSymMat::operator=: a squared matrix is required!" << std::endl; - return *this; + throw std::range_error( "AlSymMat::operator=: a squared matrix is required!" ); } reSize(m.nrow()); @@ -201,8 +198,7 @@ AlSymMat& AlSymMat::operator=(const double& d) AlSymMat AlSymMat::operator+(const AlSymMat& m) const { if( size() != m.size()) { - std::cerr << "AlSymMat::operator+: size do not match!" << std::endl; - return *this; + throw std::range_error( "AlSymMat::operator+: size do not match!" ); } AlSymMat b(size()); @@ -218,8 +214,7 @@ AlSymMat AlSymMat::operator+(const AlSymMat& m) const AlSymMat& AlSymMat::operator+=(const AlSymMat& m) { if( size() != m.size()){ - std::cerr << "AlSymMat::operator+=: size do not match!" << std::endl; - return *this; + throw std::range_error( "AlSymMat::operator+=: size do not match!" ); } double * p = m_ptr_data + m_nele; @@ -233,8 +228,7 @@ AlSymMat& AlSymMat::operator+=(const AlSymMat& m) AlSymMat AlSymMat::operator-(const AlSymMat& m) const { if( size() != m.size()) { - std::cerr << "AlSymMat::operator-: size do not match!" << std::endl; - return *this; + throw std::range_error( "AlSymMat::operator-: size do not match!" ); } AlSymMat b(size()); @@ -250,8 +244,7 @@ AlSymMat AlSymMat::operator-(const AlSymMat& m) const AlSymMat& AlSymMat::operator-=(const AlSymMat& m) { if( size() != m.size()) { - std::cerr << "AlSymMat::operator-=: size do not match!" << std::endl; - return *this; + throw std::range_error( "AlSymMat::operator-=: size do not match!" ); } double * p = m_ptr_data + m_nele; @@ -265,9 +258,7 @@ AlSymMat& AlSymMat::operator-=(const AlSymMat& m) AlMat AlSymMat::operator*(const AlSymMat& m) const { if( size() != m.size() ) { - std::cerr << "AlSymMat::operator*: size do not match!" << std::endl; - AlMat b( size(), m.size()); - return b; + throw std::range_error( "AlSymMat::operator*: size do not match!" ); } AlMat b( size(), size()); @@ -305,8 +296,7 @@ AlMat AlSymMat::operator*(const AlSymMat& m) const AlMat AlSymMat::operator*(const AlMat& m) const { if( size() != m.nrow() ) { - std::cerr << "AlSymMat::operator*: size do not match!" << std::endl; - return m; + throw std::range_error("AlSymMat::operator*: size do not match!" ); } AlMat b( size(), m.ncol()); @@ -334,8 +324,7 @@ AlMat AlSymMat::operator*(const AlMat& m) const AlVec AlSymMat::operator*(const AlVec& v) const { if( size() != v.size() ) { - std::cerr << "AlSymMat::operator*: size do not match! " << std::endl; - return v; + throw std::range_error( "AlSymMat::operator*: size do not match! " ); } AlVec b(size()); @@ -512,12 +501,10 @@ int AlSymMat::RemoveCollsRows(std::vector<int> indices) { int n = indices.size(); if (n==0) { - std::cerr<<"Vector of indices to remove is empty."<<std::endl; return m_size; } if (n>m_size) { - std::cerr<<"Vector of indices larger than matrix size."<<std::endl; - return m_size; + throw std::range_error("Vector of indices larger than matrix size."); } // first sort the list of indices descending @@ -534,8 +521,7 @@ int AlSymMat::RemoveCollsRows(std::vector<int> indices) for (int i=0;i<n;i++) { int index = indices[i]; if (index > m_size-1) { - std::cerr<<"Index "<<index<<" goes beyond matrix (size "<<m_size<<")."<<std::endl; - continue; + throw std::out_of_range("AlSymMat::RemoveCollsRows: Index goes beyond matrix."); } for (int j=index; j<m_size-1; j++) @@ -811,20 +797,16 @@ double& AlSymMat::elemr(long int i,long int j) { #ifdef _DEBUG if( i<0 ) { - std::cerr << "AlSymMat::elemr: Index 1 < zero! " << i << std::endl; - return *(m_ptr_data); + throw std::underflow_error( "AlSymMat::elemr: Index 1 < zero!" ); } if( i>=size() ) { - std::cerr << "AlSymMat::elemr: Index 1 too large! " << i << std::endl; - return *(m_ptr_data); + throw std::overflow_error( "AlSymMat::elemr: Index 1 too large!" ); } if( j<0 ) { - std::cerr << "AlSymMat::elemr: Index 2 < zero! " << j << std::endl; - return *(m_ptr_data); + throw std::underflow_error( "AlSymMat::elemr: Index 2 < zero!" ); } if( j>=size() ) { - std::cerr << "AlSymMat::elemr: Index 2 too large! " << j << std::endl; - return *(m_ptr_data); + throw std::overflow_error( "AlSymMat::elemr: Index 2 too large!" ); } #endif if( j<=i ) @@ -838,20 +820,16 @@ double AlSymMat::elemc(long int i,long int j) const { #ifdef _DEBUG if( i<0 ) { - std::cerr << "AlSymMat::elemc: Index 1 < zero! " << i << std::endl; - return *(m_ptr_data); + throw std::underflow_error( "AlSymMat::elemc: Index 1 < zero!" ); } if( i>=size() ) { - std::cerr << "AlSymMat::elemc: Index 1 too large! " << i << std::endl; - return *(m_ptr_data); + throw std::overflow_error( "AlSymMat::elemc: Index 1 too large!" ); } if( j<0 ) { - std::cerr << "AlSymMat::elemc: Index 2 < zero! " << j << std::endl; - return *(m_ptr_data); + throw std::underflow_error( "AlSymMat::elemc: Index 2 < zero!" ); } if( j>=size() ) { - std::cerr << "AlSymMat::elemc: Index 2 too large! " << j << std::endl; - return *(m_ptr_data); + throw std::overflow_error( "AlSymMat::elemc: Index 2 too large!" ); } #endif if( j<=i ) diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlVec.cxx b/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlVec.cxx index 4f6346721bdf1809e9f219922a62d700a19d897d..8e466e45825d3a0263334e142c33cff4f82249f2 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlVec.cxx +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/src/AlVec.cxx @@ -12,6 +12,7 @@ #include <fstream> #include <stdint.h> #include <math.h> +#include <exception> namespace Trk { @@ -53,8 +54,7 @@ AlVec::~AlVec() //______________________________________________________________________________ void AlVec::copy(const AlVec& v) { if(m_size!=v.m_size) { - std::cerr << "AlVec Assignment: size does not match!" << std::endl; - return; + throw std::range_error( "AlVec Assignment: size does not match!" ); } double* p = m_ptr_data + m_size; @@ -76,8 +76,7 @@ AlVec& AlVec::operator=(const AlVec& v) { if (this==&v) return *this; if(m_size!=0 && m_size!=v.m_size) { - std::cerr << "AlVec Assignment: size does not match!" << std::endl; - return *this; + throw std::range_error( "AlVec Assignment: size does not match!" ); } if ( m_ptr_data != v.m_ptr_data ) copy(v); @@ -88,8 +87,7 @@ AlVec& AlVec::operator=(const AlVec& v) { //______________________________________________________________________________ AlVec AlVec::operator+(const AlVec& v) const { if( m_size != v.m_size ) { - std::cerr << "operator+: vectors size does not match!" << std::endl; - return *this; + throw std::range_error( "operator+: vectors size does not match!" ); } AlVec b(m_size); @@ -105,8 +103,7 @@ AlVec AlVec::operator+(const AlVec& v) const { //______________________________________________________________________________ AlVec& AlVec::operator+=(const AlVec& v) { if( m_size != v.m_size ) { - std::cerr << "operator+=: vectors size does not match!" << std::endl; - return *this; + throw std::range_error( "operator+=: vectors size does not match!" ); } double* p = m_ptr_data + m_size; @@ -119,8 +116,7 @@ AlVec& AlVec::operator+=(const AlVec& v) { //______________________________________________________________________________ AlVec AlVec::operator-(const AlVec& v) const { if( m_size != v.m_size ) { - std::cerr << "operator-: vectors size does not match!" << std::endl; - return *this; + throw std::range_error( "operator-: vectors size does not match!" ); } AlVec b(m_size); @@ -136,8 +132,7 @@ AlVec AlVec::operator-(const AlVec& v) const { //______________________________________________________________________________ AlVec& AlVec::operator-=(const AlVec& v) { if( m_size != v.m_size ) { - std::cerr << "operator+=: vectors size does not match!" << std::endl; - return *this; + throw std::range_error( "operator+=: vectors size does not match!" ); } double* p = m_ptr_data + m_size; @@ -151,8 +146,7 @@ AlVec& AlVec::operator-=(const AlVec& v) { double AlVec::operator*(const AlVec& v) const { double b=0.; if( m_size != v.m_size ) { - std::cerr << "scalar product: vectors size does not match!" << std::endl; - return b; + throw std::range_error( "scalar product: vectors size does not match!" ); } double* p = m_ptr_data + m_size; @@ -165,8 +159,7 @@ double AlVec::operator*(const AlVec& v) const { //______________________________________________________________________________ AlVec AlVec::operator*(const AlMat& m) const { if (m_size != m.nrow()) { - std::cerr << "Left hand vector-matrix multiplication: size does not match!" << std::endl; - return *this; + throw std::range_error( "Left hand vector-matrix multiplication: size does not match!" ); } AlVec b(m.ncol()); @@ -180,8 +173,7 @@ AlVec AlVec::operator*(const AlMat& m) const { //______________________________________________________________________________ AlVec AlVec::operator*(const AlSymMatBase& m) const { if (m_size != m.size()) { - std::cerr << "Left hand vector-matrix multiplication: size does not match!" << std::endl; - return *this; + throw std::range_error( "Left hand vector-matrix multiplication: size does not match!" ); } AlVec b(m_size); @@ -224,7 +216,6 @@ void AlVec::reSize(int Nnew) { m_ptr_data = new double[Nnew]; m_size = Nnew; int k = m_size <= size_old ? m_size : size_old; - p += k; double* q = m_ptr_data + k; while (q > m_ptr_data) *(--q) = *(--p); @@ -268,12 +259,10 @@ int AlVec::RemoveElements(std::vector<int> indices) { int n = indices.size(); if (n==0) { - std::cerr<<"Vector of indices to remove is empty."<<std::endl; return m_size; } if (n>m_size) { - std::cerr<<"Vector of indices larger than matrix size."<<std::endl; - return m_size; + throw std::range_error( "Vector of indices larger than matrix size." ); } // first sort the list of indices descending @@ -290,7 +279,7 @@ int AlVec::RemoveElements(std::vector<int> indices) for (int i=0;i<n;i++) { int index = indices[i]; if (index > m_size-1) { - std::cerr<<"Index "<<index<<" goes beyond matrix (size "<<m_size<<")."<<std::endl; + throw std::out_of_range( "AlVec::RemoveElements: Index goes beyond matrix " ); continue; } @@ -490,13 +479,13 @@ StatusCode AlVec::ReadPartial(const std::string &filename, double &scale, { bool stdUnits = true; if (StatusCode::SUCCESS != CheckVecVersion(m_pathbin+filename, stdUnits)) { - std::cout<<"CheckVecVersion failed"<<std::endl; + //std::cout<<"CheckVecVersion failed"<<std::endl; return StatusCode::FAILURE; } std::ifstream invec((m_pathbin+filename).c_str(), std::ios::binary); if(invec.fail()) { - std::cout<<"ifstream failed"<<std::endl; + //std::cout<<"ifstream failed"<<std::endl; return StatusCode::FAILURE; } @@ -569,6 +558,7 @@ StatusCode AlVec::Read(const std::string &filename, double &scale, bool stdUnits = true; if (StatusCode::SUCCESS != CheckVecVersion(m_pathbin+filename, stdUnits)) { std::cout<<"CheckVecVersion failed"<<std::endl; + //std::cout<<"CheckVecVersion failed"<<std::endl; return StatusCode::FAILURE; } diff --git a/Tracking/TrkAlignment/TrkAlgebraUtils/src/IntVec.cxx b/Tracking/TrkAlignment/TrkAlgebraUtils/src/IntVec.cxx index 69dce01ea023430177c0da94aa767f8527562031..b9dbfde12b1b14e0993986a83f0721366c82460a 100644 --- a/Tracking/TrkAlignment/TrkAlgebraUtils/src/IntVec.cxx +++ b/Tracking/TrkAlignment/TrkAlgebraUtils/src/IntVec.cxx @@ -6,6 +6,7 @@ #include "TrkAlgebraUtils/IntVec.h" #include <iostream> #include <stdint.h> +#include <exception> namespace Trk { @@ -40,8 +41,7 @@ IntVec::~IntVec(){ IntVec& IntVec::operator=(const IntVec& v) { if(m_Nele!=0 && m_Nele!=v.m_Nele) { - std::cerr << "IntVec Assignment: size does not match!" << std::endl; - return *this; + throw std::range_error( "IntVec Assignment: size does not match!" ); } if ( m_ptr_data != v.m_ptr_data ) { @@ -55,12 +55,10 @@ IntVec& IntVec::operator=(const IntVec& v) { int& IntVec::operator[](int i) { if(i<0) { - std::cerr << "IntVec: Index < zero! " << std::endl; - return m_ptr_data[0]; + throw std::out_of_range( "IntVec: Index < zero! " ); } else if(i>=m_Nele) { - std::cerr << "IntVec: Index too large! " << std::endl; - return m_ptr_data[0]; + throw std::out_of_range( "IntVec: Index too large! " ); } return *(m_ptr_data+i); @@ -68,12 +66,10 @@ int& IntVec::operator[](int i) { const int& IntVec::operator[](int i) const { if(i<0) { - std::cerr << "IntVec: Index < zero! " << std::endl; - return m_ptr_data[0]; + throw std::out_of_range( "IntVec: Index < zero! " ); } else if(i>=m_Nele) { - std::cerr << "IntVec: Index too large! " << std::endl; - return m_ptr_data[0]; + throw std::out_of_range( "IntVec: Index too large! " ); } return *(m_ptr_data+i); @@ -81,8 +77,7 @@ const int& IntVec::operator[](int i) const { IntVec IntVec::operator+(const IntVec& v) { if( m_Nele != v.m_Nele ) { - std::cerr << "operator+: vectors size does not match!" << std::endl; - return *this; + throw std::range_error( "operator+: vectors size does not match!" ); } IntVec b(m_Nele); @@ -94,8 +89,7 @@ IntVec IntVec::operator+(const IntVec& v) { IntVec& IntVec::operator+=(const IntVec& v) { if( m_Nele != v.m_Nele ) { - std::cerr << "operator+=: vectors size does not match!" << std::endl; - return *this; + throw std::range_error( "operator+=: vectors size does not match!" ); } for (int i=0;i<m_Nele;i++) @@ -106,8 +100,7 @@ IntVec& IntVec::operator+=(const IntVec& v) { IntVec IntVec::operator-(const IntVec& v) { if( m_Nele != v.m_Nele ) { - std::cerr << "operator+: vectors size does not match!" << std::endl; - return *this; + throw std::range_error( "operator+: vectors size does not match!" ); } IntVec b(m_Nele); @@ -119,8 +112,7 @@ IntVec IntVec::operator-(const IntVec& v) { IntVec& IntVec::operator-=(const IntVec& v) { if( m_Nele != v.m_Nele ) { - std::cerr << "operator+=: vectors size does not match!" << std::endl; - return *this; + throw std::range_error( "operator+=: vectors size does not match!" ); } for (int i=0;i<m_Nele;i++) diff --git a/Tracking/TrkAlignment/TrkAlignGenTools/TrkAlignGenTools/MatrixTool.h b/Tracking/TrkAlignment/TrkAlignGenTools/TrkAlignGenTools/MatrixTool.h index f3e963d6abe9f1d8fe59310e93c8ad973d67fbb2..ff84d8727a2a6ba4ef1681ee5d91cfe5d618d15c 100644 --- a/Tracking/TrkAlignment/TrkAlignGenTools/TrkAlignGenTools/MatrixTool.h +++ b/Tracking/TrkAlignment/TrkAlignGenTools/TrkAlignGenTools/MatrixTool.h @@ -58,9 +58,9 @@ namespace Trk { enum SolveOption { NONE = 0, //!< not solve in any case (to be used when ipc) SOLVE = 1, //!< solving after data accumulation (LAPACK) - SOLVE_FAST = 2, //!< Fast (***REMOVED*** method) solving after data accumulation + SOLVE_FAST = 2, //!< Fast (Eigen method) solving after data accumulation DIRECT_SOLVE = 3, //!< direct solving (LAPACK), already available matrix & vector - DIRECT_SOLVE_FAST = 4, //!< direct Fast (***REMOVED*** method) solving, already available matrix & vector + DIRECT_SOLVE_FAST = 4, //!< direct Fast (Eigen method) solving, already available matrix & vector DIRECT_SOLVE_CLUSTER = 5, //!< computation of alignment parameters from SCALAPAK already solved matrix SOLVE_ROOT = 6, //!< computation using ROOT SOLVE_CLHEP = 7 //!< computation using CLHEP @@ -128,7 +128,7 @@ namespace Trk { int solveROOT(); int solveCLHEP(); int solveLapack(); - int solve***REMOVED***(); + int solveSparseEigen(); int solveLocal(); StatusCode spuriousRemoval(); diff --git a/Tracking/TrkAlignment/TrkAlignGenTools/src/MatrixTool.cxx b/Tracking/TrkAlignment/TrkAlignGenTools/src/MatrixTool.cxx index ac3eff5ace29bc0f7a68bb3f1549d58a81a38fe2..b497e4b94f3980f8ff7da505f303f6e9e4fa7f39 100644 --- a/Tracking/TrkAlignment/TrkAlignGenTools/src/MatrixTool.cxx +++ b/Tracking/TrkAlignment/TrkAlignGenTools/src/MatrixTool.cxx @@ -1555,7 +1555,7 @@ namespace Trk { case SOLVE_FAST: case DIRECT_SOLVE_FAST: - info = solve***REMOVED***(); + info = solveSparseEigen(); break; default: @@ -2276,13 +2276,13 @@ namespace Trk { } //________________________________________________________________________ - int MatrixTool::solve***REMOVED***() + int MatrixTool::solveSparseEigen() { - ATH_MSG_INFO("solving Global using ***REMOVED***"); + ATH_MSG_INFO("solving Global using SparseEigen"); if(m_logStream) { *m_logStream<<"*************************************************************"<<std::endl; *m_logStream<<"************** solving using Global method ****************"<<std::endl; - *m_logStream<<"************** using ***REMOVED*** ****************"<<std::endl; + *m_logStream<<"************** using SparseEigen ****************"<<std::endl; *m_logStream<<"*************************************************************"<<std::endl; } @@ -2334,17 +2334,17 @@ namespace Trk { ATH_MSG_DEBUG("running the solving"); // solve - int info = (*aBetterMat).***REMOVED***Solve(*aBetterVec); + int info = (*aBetterMat).SolveWithEigen(*aBetterVec); if(info == 0) { - ATH_MSG_INFO("***REMOVED*** solving OK"); + ATH_MSG_INFO("SolveWithEigen solving OK"); if(m_logStream) - *m_logStream<<"***REMOVED*** solving OK."<<std::endl; + *m_logStream<<"SolveWithEigen solving OK."<<std::endl; } else { - msg(MSG::ERROR)<<"***REMOVED*** error code (0 if OK) = "<<info<<endmsg; + ATH_MSG_ERROR( "SolveWithEigen error code (0 if OK) = "<<info ); if(m_logStream) - *m_logStream<<"***REMOVED*** error code (0 if OK) = "<<info<<std::endl; + *m_logStream<<"SolveWithEigen error code (0 if OK) = "<<info<<std::endl; } if( isCopy ) @@ -2354,11 +2354,11 @@ namespace Trk { // stop measuring time clock_t stoptime = clock(); double totaltime = (stoptime-starttime)/double(CLOCKS_PER_SEC); - ATH_MSG_INFO("Time spent in solve***REMOVED***: "<<totaltime<<" s"); + ATH_MSG_INFO("Time spent in SolveWithEigen: "<<totaltime<<" s"); ATH_MSG_DEBUG("Alignment constants:"); // compute alignment corrections (translations in mm and rotations in rad) - // for ***REMOVED*** variances are not calculated + // for solveSparseEigen variances are not calculated for(int i=0; i<m_aNDoF; i++) { double param = -(*aBetterVec)[i]; @@ -2402,7 +2402,7 @@ namespace Trk { delete aBetterVec; // need to do this since success return value from Lapack is 0 - // and from solve***REMOVED***() it is 1 + // and from SolveWithEigen() it is 1 if (info==0) info = 1; diff --git a/Tracking/TrkAlignment/TrkAlignInterfaces/TrkAlignInterfaces/IDerivCalcTool.h b/Tracking/TrkAlignment/TrkAlignInterfaces/TrkAlignInterfaces/IDerivCalcTool.h index d5bb42b75811f6f0c532f4f39220c763c9bc9713..5d80d02c73f0d4a26aec5c574e0f781093c0232d 100644 --- a/Tracking/TrkAlignment/TrkAlignInterfaces/TrkAlignInterfaces/IDerivCalcTool.h +++ b/Tracking/TrkAlignment/TrkAlignInterfaces/TrkAlignInterfaces/IDerivCalcTool.h @@ -41,9 +41,9 @@ namespace Trk { enum SolveOption { NONE = 0, //!< not solve in any case (to be used when ipc) SOLVE = 1, //!< solving after data accumulation (LAPACK) - SOLVE_FAST = 2, //!< Fast (***REMOVED*** method) solving after data accumulation + SOLVE_FAST = 2, //!< Fast (Eigen method) solving after data accumulation DIRECT_SOLVE = 3, //!< direct solving (LAPACK), already available matrix & vector - DIRECT_SOLVE_FAST = 4, //!< direct Fast (***REMOVED*** method) solving, already available matrix & vector + DIRECT_SOLVE_FAST = 4, //!< direct Fast (Eigen method) solving, already available matrix & vector DIRECT_SOLVE_CLUSTER = 5 //!< computation of alignment parameters from SCALAPAK already solved matrix }; // this is also defined in TrkGlobAlign class diff --git a/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muCombMT.h b/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muCombMT.h index dfb85aa23f4cbe6e37a2aa59d87dcbb6db779bbf..1cb386fbdf8c1dffc1cac424980fad8e374e122b 100644 --- a/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muCombMT.h +++ b/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muCombMT.h @@ -77,7 +77,7 @@ class muCombMT : public AthAlgorithm "MuonL2CBInfo", // default value of StoreGate key "output CB Muon container name"}; - ToolHandle<GenericMonitoringTool> m_monTool; + ToolHandle<GenericMonitoringTool> m_monTool{this,"MonTool","","Monitoring tool"}; /** Handle to the G4 backExtrapolator tool */ //ToolHandle<Trk::IExtrapolator> m_backExtrapolatorG4; diff --git a/Trigger/TrigAlgorithms/TrigmuComb/src/muCombMT.cxx b/Trigger/TrigAlgorithms/TrigmuComb/src/muCombMT.cxx index 29a0986c4f4ad2069931f57c9370526e96565129..8f4604b5e7775da53922f4ddbb823babf209e056 100755 --- a/Trigger/TrigAlgorithms/TrigmuComb/src/muCombMT.cxx +++ b/Trigger/TrigAlgorithms/TrigmuComb/src/muCombMT.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ // ******************************************************************** @@ -33,7 +33,6 @@ muCombMT::muCombMT(const std::string& name, ISvcLocator* pSvcLocator): AthAlgorithm(name, pSvcLocator), m_MagFieldSvc(0) { - declareProperty("MonTool", m_monTool=VoidMonitoringTool(this), "Monitoring tool"); } StatusCode muCombMT::initialize() diff --git a/Trigger/TrigAnalysis/TrigDecisionTool/Root/CacheGlobalMemory.cxx b/Trigger/TrigAnalysis/TrigDecisionTool/Root/CacheGlobalMemory.cxx index 3c91afc99a743fe678fc11d409e2b2de26bbef4e..3ea04e520a9303292739d398707d6484860eb887 100644 --- a/Trigger/TrigAnalysis/TrigDecisionTool/Root/CacheGlobalMemory.cxx +++ b/Trigger/TrigAnalysis/TrigDecisionTool/Root/CacheGlobalMemory.cxx @@ -174,7 +174,6 @@ void Trig::CacheGlobalMemory::update(const TrigConf::HLTChainList* confChains, // -- assume that the groups and streams have all changed!!! m_groups.clear(); m_streams.clear(); - std::vector<std::string>::iterator gpIt; for(auto ch : *m_confChains) { if (( ch->level() == "EF" || ch->level() == "HLT") && ch->streams().size()>0 ) { diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.cxx b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.cxx index 1b155906f3e90b587bacc80eb06c81c9e8bf311a..f9ad97a05df21486be7ebe3cb3d0e42818812aac 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.cxx +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.cxx @@ -58,8 +58,10 @@ StatusCode TrigL2ElectronHypoAlgMT::execute_r( const EventContext& context ) con std::map<const xAOD::TrigEMCluster*, size_t> clusterToIndexMap; size_t clusterCounter = 0; for ( auto previousDecision : *previousDecisionsHandle){ - ElementLink<xAOD::TrigEMClusterContainer> clusterLink; - recursivelyFindFeature(previousDecision, clusterLink); + TrigCompositeUtils::LinkInfo<xAOD::TrigEMClusterContainer> linkInfo = + TrigCompositeUtils::findLink<xAOD::TrigEMClusterContainer>(previousDecision, "feature"); + ElementLink<xAOD::TrigEMClusterContainer> clusterLink = linkInfo.link; + ATH_CHECK( clusterLink.isValid() ); const xAOD::TrigEMCluster* cluster = *clusterLink; clusterToIndexMap.insert( std::make_pair( cluster, clusterCounter ) ); @@ -132,18 +134,6 @@ StatusCode TrigL2ElectronHypoAlgMT::execute_r( const EventContext& context ) con return StatusCode::SUCCESS; } -bool TrigL2ElectronHypoAlgMT::recursivelyFindFeature( const TrigCompositeUtils::Decision* start, ElementLink<xAOD::TrigEMClusterContainer>& clusterlink) const{ - //recursively find in the seeds - if ( start->hasObjectLink( "feature" ) ) { - clusterlink=start->objectLink<xAOD::TrigEMClusterContainer>( "feature" ); - return true; - } - if (TrigCompositeUtils::hasLinkToPrevious(start) ){ - auto thelinkToPrevious =TrigCompositeUtils::linkToPrevious( start); - return recursivelyFindFeature( *thelinkToPrevious, clusterlink); - } - return false; - } diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.h b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.h index 6d2e04dfcc0e66ddc7da9b7db8f5b000ac55bb03..de5c9354cfb0b23c729732835722c0ce09bc46ba 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.h +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.h @@ -43,8 +43,6 @@ class TrigL2ElectronHypoAlgMT : public ::HypoBase SG::ReadHandleKey< xAOD::TrigElectronContainer > m_electronsKey {this, "Electrons", "L2ElectronContainer", "Input"}; - bool recursivelyFindFeature( const TrigCompositeUtils::Decision* d, ElementLink<xAOD::TrigEMClusterContainer>& clusterlink) const; - }; diff --git a/Trigger/TrigT1/TrigT1CaloSim/src/EnergyCMX.cxx b/Trigger/TrigT1/TrigT1CaloSim/src/EnergyCMX.cxx index 18f117a81f1fb6f1ac84fafffa0e69fa709d0543..74f9b1cb61fcceea296e5de1c575859a0ef5edce 100755 --- a/Trigger/TrigT1/TrigT1CaloSim/src/EnergyCMX.cxx +++ b/Trigger/TrigT1/TrigT1CaloSim/src/EnergyCMX.cxx @@ -127,10 +127,13 @@ StatusCode EnergyCMX::execute( ) m_resultsFull = &resultsFull; /** Find restructed eta range. - * This will use the min/max values for any threshold in the range 9-16 to define the ranges + * This will use the min/max values for the first valid threshold in the range 9-16 to define the ranges */ - float etaTruncXE = 4.9; - float etaTruncTE = 4.9; + uint32_t maskXE = 0; + uint32_t maskTE = 0; + bool maskXESet = false; + bool maskTESet = false; + const float moduleEta[8] = {-4.,-2.,-1.2,-0.4,0.4,1.2,2.,4.}; L1DataDef def; std::vector<TriggerThreshold*> thresholds = m_configSvc->ctpConfig()->menu().thresholdVector(); @@ -140,14 +143,24 @@ StatusCode EnergyCMX::execute( ) if ( ( (*it)->type() == def.xeType() || (*it)->type() == def.teType()) && (*it)->thresholdNumber() > 7 ) { std::vector<TriggerThresholdValue*> ttvs = (*it)->thresholdValueVector(); std::vector<TriggerThresholdValue*>::const_iterator itv; + // Make sure only set masks from the first valid threshold in the range (for each type) + if (maskXE > 0) maskXESet = true; + if (maskTE > 0) maskTESet = true; for (itv = ttvs.begin(); itv != ttvs.end(); ++itv) { - if ( (*it)->type() == def.xeType() ) { - if ( abs((*itv)->etamin())*0.1 < etaTruncXE ) etaTruncXE = abs((*itv)->etamin())*0.1; - if ( abs((*itv)->etamax())*0.1 < etaTruncXE ) etaTruncXE = abs((*itv)->etamax())*0.1; + // Bits are set false by default, so ignore thresholds that are just doing that + if ((*itv)->thresholdValueCount() >= 0x7fff) continue; + // Set bits true if module centre between etaMin and etaMax + if ( (*it)->type() == def.xeType() && !maskXESet ) { + for (unsigned int bin = 0; bin < 8; ++bin) { + if (moduleEta[bin] > (*itv)->etamin()*0.1 && moduleEta[bin] < (*itv)->etamax()*0.1) + maskXE |= (1<<bin); + } } - else if ( (*it)->type() == def.teType() ) { - if ( abs((*itv)->etamin())*0.1 < etaTruncTE ) etaTruncTE = abs((*itv)->etamin())*0.1; - if ( abs((*itv)->etamax())*0.1 < etaTruncTE ) etaTruncTE = abs((*itv)->etamax())*0.1; + else if ( (*it)->type() == def.teType() && !maskTESet ) { + for (unsigned int bin = 0; bin < 8; ++bin) { + if (moduleEta[bin] > (*itv)->etamin()*0.1 && moduleEta[bin] < (*itv)->etamax()*0.1) + maskTE |= (1<<bin); + } } } // loop over TTV } // Is this XE or TE threshold? @@ -155,7 +168,7 @@ StatusCode EnergyCMX::execute( ) // form crate sums (restricted eta range). Explicitly set restricted eta flag regardless of eta range DataVector<CrateEnergy>* cratesTrunc = new DataVector<CrateEnergy>; - m_EtTool->crateSums(jemContainer, cratesTrunc, etaTruncXE, etaTruncTE, true); + m_EtTool->crateSums(jemContainer, cratesTrunc, maskXE, maskTE, true); // system summation and threshold tests SystemEnergy resultsTrunc = m_EtTool->systemSums(cratesTrunc); m_resultsTrunc = &resultsTrunc; diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EtTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EtTools.h index 7e241bfe599c25d15fd92b99efbd37104722c6da..ad87a8cf47ab331306770c3b3e23aadefd65ea93 100755 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EtTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EtTools.h @@ -38,16 +38,16 @@ Interface definition for L1EtTools virtual void moduleSums(const xAOD::JetElementMap_t* jemap, DataVector<ModuleEnergy>* modules, int slice = -1) const = 0; virtual void crateSums(const DataVector<ModuleEnergy>* modules, - DataVector<CrateEnergy>* crates, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const = 0 ; + DataVector<CrateEnergy>* crates, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const = 0 ; virtual void crateSums(const DataVector<EnergyCMXData>* modules, - DataVector<CrateEnergy>* crates, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const = 0 ; + DataVector<CrateEnergy>* crates, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const = 0 ; virtual void crateSums(const xAOD::JetElementContainer* jetelements, - DataVector<CrateEnergy>* crates, int slice = -1, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const = 0; + DataVector<CrateEnergy>* crates, int slice = -1, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const = 0; virtual void crateSums(const xAOD::JetElementMap_t* jemap, - DataVector<CrateEnergy>* crates, int slice = -1, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const = 0; + DataVector<CrateEnergy>* crates, int slice = -1, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const = 0; virtual SystemEnergy systemSums(const DataVector<CrateEnergy>* crates) const = 0; - virtual SystemEnergy systemSums(const xAOD::JetElementContainer* jetelements, int slice = -1, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const = 0; - virtual SystemEnergy systemSums(const xAOD::JetElementMap_t* jemap, int slice = -1, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const = 0; + virtual SystemEnergy systemSums(const xAOD::JetElementContainer* jetelements, int slice = -1, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const = 0; + virtual SystemEnergy systemSums(const xAOD::JetElementMap_t* jemap, int slice = -1, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const = 0; }; diff --git a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EnergyCMXTools.h b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EnergyCMXTools.h index 3387336d4ac3dddca817a8875d3e5c3e02de73d5..5419d682953514277baefea6a5784e7794cdf0b6 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EnergyCMXTools.h +++ b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EnergyCMXTools.h @@ -115,7 +115,7 @@ class L1EnergyCMXTools : virtual public IL1EnergyCMXTools, public AthAlgTool /** Convert maps from internal SystemEnergy objects to CMXEtSums objects */ void etMapsToEtSums(const MultiSliceSystemEnergy &systemVec, xAOD::CMXEtSumsContainer *cmxEtSumsVec, int peak) const; - void findRestrictedEta(float &etaTruncXE, float &etaTruncTE) const; + void findRestrictedEta(uint32_t &maskXE, uint32_t &maskTE) const; /** trigger configuration service */ ServiceHandle<TrigConf::ITrigConfigSvc> m_configSvc; /** Tool for JetElement map */ @@ -127,8 +127,8 @@ class L1EnergyCMXTools : virtual public IL1EnergyCMXTools, public AthAlgTool /** Find restructed eta range. * This will use the min/max values for any threshold in the range 9-16 to define the ranges */ - float m_etaTruncXE; - float m_etaTruncTE; + uint32_t m_maskXE; + uint32_t m_maskTE; }; } // end of namespace diff --git a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EtTools.h b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EtTools.h index 93404888476b8c6b65ab700abc5f2a496ed2bf5a..81e6dadf05eb4d3eeb1daf9820ffd2605a2cfcf3 100755 --- a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EtTools.h +++ b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EtTools.h @@ -77,19 +77,19 @@ namespace LVL1 DataVector<ModuleEnergy>* modules, int slice = -1) const; /** Returns a vector of LVL1::CrateEnergy objects */ virtual void crateSums(const DataVector<ModuleEnergy>* modules, - DataVector<CrateEnergy>* crates, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const; + DataVector<CrateEnergy>* crates, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const; virtual void crateSums(const DataVector<EnergyCMXData>* modules, - DataVector<CrateEnergy>* crates, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const; + DataVector<CrateEnergy>* crates, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const; /** Directly obtain LVL1::CrateEnergy objects */ virtual void crateSums(const xAOD::JetElementContainer* jetelements, - DataVector<CrateEnergy>* crates, int slice = -1, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const; + DataVector<CrateEnergy>* crates, int slice = -1, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const; virtual void crateSums(const xAOD::JetElementMap_t* jemap, - DataVector<CrateEnergy>* crates, int slice = -1, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const; + DataVector<CrateEnergy>* crates, int slice = -1, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const; /** Returns a LVL1::SystemEnergy object */ virtual SystemEnergy systemSums(const DataVector<CrateEnergy>* crates) const; /** Directly obtain a LVL1::SystemEnergy object */ - virtual SystemEnergy systemSums(const xAOD::JetElementContainer* jetelements, int slice = -1, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const; - virtual SystemEnergy systemSums(const xAOD::JetElementMap_t* jemap, int slice = -1, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false) const; + virtual SystemEnergy systemSums(const xAOD::JetElementContainer* jetelements, int slice = -1, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const; + virtual SystemEnergy systemSums(const xAOD::JetElementMap_t* jemap, int slice = -1, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const; private: diff --git a/Trigger/TrigT1/TrigT1CaloTools/src/L1EnergyCMXTools.cxx b/Trigger/TrigT1/TrigT1CaloTools/src/L1EnergyCMXTools.cxx index 6c421738d7b2f77cce9c518863094643a002c700..3f01facc531baf0b43c96c0fc08b337668a6f156 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/src/L1EnergyCMXTools.cxx +++ b/Trigger/TrigT1/TrigT1CaloTools/src/L1EnergyCMXTools.cxx @@ -77,10 +77,10 @@ StatusCode L1EnergyCMXTools::initialize() return sc; } - findRestrictedEta(m_etaTruncXE, m_etaTruncTE); - ATH_MSG_INFO("Restricted eta ranges etaTruncXE=" << m_etaTruncXE << " etaTruncTE=" << m_etaTruncTE); + findRestrictedEta(m_maskXE, m_maskTE); + ATH_MSG_DEBUG("Restricted eta masks: XE=" << MSG::hex << m_maskXE << ", TE=" << m_maskTE << MSG::dec); - ATH_MSG_INFO("Initialization completed"); + ATH_MSG_DEBUG("Initialization completed"); return sc; } @@ -201,10 +201,13 @@ void L1EnergyCMXTools::formCMXEtSumsModule( } /** form partial CMXEtSums (crate) from module CMXEtSums */ -void L1EnergyCMXTools::findRestrictedEta(float &etaTruncXE, float &etaTruncTE) const +void L1EnergyCMXTools::findRestrictedEta(uint32_t &maskXE, uint32_t &maskTE) const { - etaTruncXE = 4.9; - etaTruncTE = 4.9; + const float moduleEta[8] = {-4.,-2.,-1.2,-0.4,0.4,1.2,2.,4.}; + maskXE = 0; + maskTE = 0; + bool maskXESet = false; + bool maskTESet = false; TrigConf::L1DataDef def; @@ -212,21 +215,26 @@ void L1EnergyCMXTools::findRestrictedEta(float &etaTruncXE, float &etaTruncTE) c { if ((it->type() == def.xeType() || it->type() == def.teType()) && it->thresholdNumber() > 7) { + if (maskXE > 0) maskXESet = true; + if (maskTE > 0) maskTESet = true; for (auto itv : it->thresholdValueVector()) { - if (it->type() == def.xeType()) + // Already initialised mask to zero, so only need to check where threshold is active + if (itv->thresholdValueCount() >= 0x7fff) continue; + // Set bits for modules within the range of any restricted eta threshold + if (it->type() == def.xeType() && !maskXESet) { - if (abs(itv->etamin()) * 0.1 < etaTruncXE) - etaTruncXE = abs(itv->etamin()) * 0.1; - if (abs(itv->etamax()) * 0.1 < etaTruncXE) - etaTruncXE = abs(itv->etamax()) * 0.1; + for (unsigned int bin = 0; bin < 8; ++bin) { + if (moduleEta[bin] > itv->etamin()*0.1 && moduleEta[bin] < itv->etamax()*0.1) + maskXE |= (1<<bin); + } } - else if (it->type() == def.teType()) + else if (it->type() == def.teType() && !maskTESet) { - if (abs(itv->etamin()) * 0.1 < etaTruncTE) - etaTruncTE = abs(itv->etamin()) * 0.1; - if (abs(itv->etamax()) * 0.1 < etaTruncTE) - etaTruncTE = abs(itv->etamax()) * 0.1; + for (unsigned int bin = 0; bin < 8; ++bin) { + if (moduleEta[bin] > itv->etamin()*0.1 && moduleEta[bin] < itv->etamax()*0.1) + maskTE |= (1<<bin); + } } } // loop over TTV } // Is this XE or TE threshold? @@ -236,9 +244,9 @@ void L1EnergyCMXTools::formCMXEtSumsCrate( const xAOD::CMXEtSumsContainer *cmxEtSumsMod, xAOD::CMXEtSumsContainer *cmxEtSumsCrate) const { - float etaTruncXE, etaTruncTE; - findRestrictedEta(etaTruncXE, etaTruncTE); - ATH_MSG_INFO("Restricted eta ranges etaTruncXE=" << etaTruncXE << " etaTruncTE=" << etaTruncTE); + uint32_t maskXE, maskTE; + findRestrictedEta(maskXE, maskTE); + ATH_MSG_DEBUG("Restricted eta masks: XE=" << MSG::hex << maskXE << ", TE=" << maskTE << MSG::dec); // Convert to internal containers int peak = 0; MultiSliceModuleEnergy modulesVec; @@ -254,7 +262,7 @@ void L1EnergyCMXTools::formCMXEtSumsCrate( cratesVecFull.push_back(cratesFull); cratesVecRestricted.push_back(cratesRestricted); m_etTool->crateSums(modules, cratesFull); - m_etTool->crateSums(modules, cratesRestricted, etaTruncXE, etaTruncTE, true); + m_etTool->crateSums(modules, cratesRestricted, maskXE, maskTE, true); delete modules; } @@ -840,7 +848,7 @@ void L1EnergyCMXTools::etMapsToEtSums( }else{ nslicesFull++; } - // ATH_MSG_INFO("isRestriced=" << isRestricted << " slice=" << (isRestricted? nslicesRestricted: nslicesFull) + // ATH_MSG_DEBUG("isRestriced=" << isRestricted << " slice=" << (isRestricted? nslicesRestricted: nslicesFull) // << " et=" << systemVec[i]->et() << " etSumHits=" << systemVec[i]->etSumHits()); } @@ -903,7 +911,7 @@ void L1EnergyCMXTools::etMapsToEtSums( (*sumEt)->addEy(etVec, *error); (*sumEt)->addEt(etVec, *error); - // ATH_MSG_INFO("slice=" << slice << " restricted=" << restricted << " etVec=" << (*sumEt)->etVec() << " etSumHits=" << etSumHits); + // ATH_MSG_DEBUG("slice=" << slice << " restricted=" << restricted << " etVec=" << (*sumEt)->etVec() << " etSumHits=" << etSumHits); } unsigned int etMissHits = energy->etMissHits(); if (etMissHits) diff --git a/Trigger/TrigT1/TrigT1CaloTools/src/L1EtTools.cxx b/Trigger/TrigT1/TrigT1CaloTools/src/L1EtTools.cxx index e35bce24fbef7961490d474ebff49087698bb4d5..cfc569108fb568a46b612c187d1f81af205f1a8a 100755 --- a/Trigger/TrigT1/TrigT1CaloTools/src/L1EtTools.cxx +++ b/Trigger/TrigT1/TrigT1CaloTools/src/L1EtTools.cxx @@ -170,12 +170,12 @@ void L1EtTools::moduleSums(const xAOD::JetElementMap_t* jemap, //=====================Form JE Crate ET sums ==================== -void L1EtTools::crateSums(const DataVector<ModuleEnergy>* modules, DataVector<CrateEnergy>* crates, float etaMaxXE, float etaMaxTE, bool restricted) const { +void L1EtTools::crateSums(const DataVector<ModuleEnergy>* modules, DataVector<CrateEnergy>* crates, uint32_t maskXE, uint32_t maskTE, bool restricted) const { crates->clear(); // Loop over crates and create set of CrateEnergy objects for (int crate = 0; crate < 2; ++crate) { - crates->push_back( new CrateEnergy(crate, modules, etaMaxXE, etaMaxTE, restricted) ); + crates->push_back( new CrateEnergy(crate, modules, maskXE, maskTE, restricted) ); } return; @@ -183,12 +183,12 @@ void L1EtTools::crateSums(const DataVector<ModuleEnergy>* modules, DataVector<Cr //=====================Form JE Crate ET sums ==================== -void L1EtTools::crateSums(const DataVector<EnergyCMXData>* modules, DataVector<CrateEnergy>* crates, float etaMaxXE, float etaMaxTE, bool restricted) const { +void L1EtTools::crateSums(const DataVector<EnergyCMXData>* modules, DataVector<CrateEnergy>* crates, uint32_t maskXE, uint32_t maskTE, bool restricted) const { crates->clear(); // Loop over crates and create set of CrateEnergy objects for (int crate = 0; crate < 2; ++crate) { - crates->push_back( new CrateEnergy(crate, modules, etaMaxXE, etaMaxTE, restricted) ); + crates->push_back( new CrateEnergy(crate, modules, maskXE, maskTE, restricted) ); } return; @@ -207,7 +207,7 @@ SystemEnergy L1EtTools::systemSums(const DataVector<CrateEnergy>* crates) const //=====================Return JE Crate ET sums directly ============= void L1EtTools::crateSums(const xAOD::JetElementContainer* jetelements, - DataVector<CrateEnergy>* crates, int slice, float etaMaxXE, float etaMaxTE, bool restricted) const { + DataVector<CrateEnergy>* crates, int slice, uint32_t maskXE, uint32_t maskTE, bool restricted) const { crates->clear(); @@ -218,7 +218,7 @@ void L1EtTools::crateSums(const xAOD::JetElementContainer* jetelements, // Loop over crates and create set of CrateEnergy objects for (int crate = 0; crate < 2; ++crate) { - crates->push_back( new CrateEnergy(crate, modules, etaMaxXE, etaMaxTE, restricted) ); + crates->push_back( new CrateEnergy(crate, modules, maskXE, maskTE, restricted) ); } delete modules; @@ -229,7 +229,7 @@ void L1EtTools::crateSums(const xAOD::JetElementContainer* jetelements, //=====================Return JE Crate ET sums directly ============= void L1EtTools::crateSums(const xAOD::JetElementMap_t* jemap, - DataVector<CrateEnergy>* crates, int slice, float etaMaxXE, float etaMaxTE, bool restricted) const { + DataVector<CrateEnergy>* crates, int slice, uint32_t maskXE, uint32_t maskTE, bool restricted) const { crates->clear(); @@ -240,7 +240,7 @@ void L1EtTools::crateSums(const xAOD::JetElementMap_t* jemap, // Loop over crates and create set of CrateEnergy objects for (int crate = 0; crate < 2; ++crate) { - crates->push_back( new CrateEnergy(crate, modules, etaMaxXE, etaMaxTE, restricted) ); + crates->push_back( new CrateEnergy(crate, modules, maskXE, maskTE, restricted) ); } delete modules; @@ -250,12 +250,12 @@ void L1EtTools::crateSums(const xAOD::JetElementMap_t* jemap, //=====================Return final System ET sums directly ============= -SystemEnergy L1EtTools::systemSums(const xAOD::JetElementContainer* jetelements, int slice, float etaMaxXE, float etaMaxTE, bool restricted) const { +SystemEnergy L1EtTools::systemSums(const xAOD::JetElementContainer* jetelements, int slice, uint32_t maskXE, uint32_t maskTE, bool restricted) const { // First need to form modules and crates DataVector<CrateEnergy>* crates = new DataVector<CrateEnergy>; - crateSums(jetelements, crates, slice, etaMaxXE, etaMaxTE, restricted); + crateSums(jetelements, crates, slice, maskXE, maskTE, restricted); // Then do the final summing, thresholding etc SystemEnergy result(crates, m_configSvc); @@ -266,12 +266,12 @@ SystemEnergy L1EtTools::systemSums(const xAOD::JetElementContainer* jetelements, //=====================Return final System ET sums directly ============= -SystemEnergy L1EtTools::systemSums(const xAOD::JetElementMap_t* jemap, int slice, float etaMaxXE, float etaMaxTE, bool restricted) const { +SystemEnergy L1EtTools::systemSums(const xAOD::JetElementMap_t* jemap, int slice, uint32_t maskXE, uint32_t maskTE, bool restricted) const { // First need to form modules and crates DataVector<CrateEnergy>* crates = new DataVector<CrateEnergy>; - crateSums(jemap, crates, slice, etaMaxXE, etaMaxTE, restricted); + crateSums(jemap, crates, slice, maskXE, maskTE, restricted); // Then do the final summing, thresholding etc SystemEnergy result(crates, m_configSvc); diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CrateEnergy.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CrateEnergy.h index 98557c770bd381292df9aceaf5bcf815d9150f7e..80e4cdbcb874b705bfb6d2b65e5a31131c9287be 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CrateEnergy.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CrateEnergy.h @@ -35,8 +35,8 @@ System CMM logic is done in EnergyTrigger*/ class CrateEnergy { public: - CrateEnergy(unsigned int crate, const DataVector<ModuleEnergy>* modules, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false); - CrateEnergy(unsigned int crate, const DataVector<EnergyCMXData>* modules, float etaMaxXE = 5., float etaMaxTE = 5., bool restricted = false); + CrateEnergy(unsigned int crate, const DataVector<ModuleEnergy>* modules, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false); + CrateEnergy(unsigned int crate, const DataVector<EnergyCMXData>* modules, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false); CrateEnergy(unsigned int crate, unsigned int et, unsigned int exTC, unsigned int eyTC, unsigned int overflowT, unsigned int overflowX, unsigned int overflowY, bool restricted = false); diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/CrateEnergy.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/CrateEnergy.cxx index f5102b079d7ebffd67132d343719ca62d7c0a50d..c19fb0a7aafb35ef4fd54de9fc4e6633d6d33b96 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/CrateEnergy.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/CrateEnergy.cxx @@ -19,7 +19,7 @@ namespace LVL1 { -CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<ModuleEnergy>* JEMs, float etaMaxXE, float etaMaxTE, bool restricted): +CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<ModuleEnergy>* JEMs, uint32_t maskXE, uint32_t maskTE, bool restricted): m_crate(crate), m_crateEt(0), m_crateEx(0), @@ -34,19 +34,7 @@ CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<ModuleEnergy>* JEM if (m_crate > 1) return; /** Added for restricted eta triggers in Run 2 */ - int moduleMinXE = 0; - if (etaMaxXE <= 2.41) moduleMinXE = 1; - if (etaMaxXE <= 1.61) moduleMinXE = 2; - if (etaMaxXE <= 0.81) moduleMinXE = 3; - int moduleMaxXE = 7 - moduleMinXE; - - int moduleMinTE = 0; - if (etaMaxTE <= 2.41) moduleMinTE = 1; - if (etaMaxTE <= 1.61) moduleMinTE = 2; - if (etaMaxTE <= 0.81) moduleMinTE = 3; - int moduleMaxTE = 7 - moduleMinTE; - - if (moduleMinXE > 0 || moduleMinTE > 0) m_restricted = true; + if ((maskXE&0xff) != 0xff || (maskTE&0xff) != 0xff) m_restricted = true; /** Summing within a crate proceeds as follows: <br> unsigned 14 bit Ex, Ey, Et sums are formed for each half crate<br> @@ -63,11 +51,11 @@ CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<ModuleEnergy>* JEM int moduleInQuad = (*it)->module() % 8; if ((*it)->crate() == m_crate) { int quad = ( (*it)->module() < 8 ? 0 : 1 ); - if (moduleInQuad >= moduleMinTE && moduleInQuad <= moduleMaxTE) { + if ((maskTE>>moduleInQuad)&1) { eT[quad] += (*it)->et(); if ( (*it)->et() >= m_jemEtSaturation ) m_overflowT = 1; } - if (moduleInQuad >= moduleMinXE && moduleInQuad <= moduleMaxXE) { + if ((maskXE>>moduleInQuad)&1) { eX[quad] += (*it)->ex(); eY[quad] += (*it)->ey(); if ( (*it)->ex() >= m_jemEtSaturation ) m_overflowX = 1; @@ -109,7 +97,7 @@ CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<ModuleEnergy>* JEM } -CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<EnergyCMXData>* JEMs, float etaMaxXE, float etaMaxTE, bool restricted): +CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<EnergyCMXData>* JEMs, uint32_t maskXE, uint32_t maskTE, bool restricted): m_crate(crate), m_crateEt(0), m_crateEx(0), @@ -124,19 +112,7 @@ CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<EnergyCMXData>* JE if (m_crate > 1) return; /** Added for restricted eta triggers in Run 2 */ - int moduleMinXE = 0; - if (etaMaxXE <= 2.41) moduleMinXE = 1; - if (etaMaxXE <= 1.61) moduleMinXE = 2; - if (etaMaxXE <= 0.81) moduleMinXE = 3; - int moduleMaxXE = 7 - moduleMinXE; - - int moduleMinTE = 0; - if (etaMaxTE <= 2.41) moduleMinTE = 1; - if (etaMaxTE <= 1.61) moduleMinTE = 2; - if (etaMaxTE <= 0.81) moduleMinTE = 3; - int moduleMaxTE = 7 - moduleMinTE; - - if (moduleMinXE > 0 || moduleMinTE > 0) m_restricted = true; + if ((maskXE&0xff) != 0xff || (maskTE&0xff) != 0xff) m_restricted = true; /** Summing within a crate proceeds as follows: <br> unsigned 14 bit Ex, Ey, Et sums are formed for each half crate<br> @@ -154,11 +130,11 @@ CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<EnergyCMXData>* JE if ((unsigned int)(*it)->crate() == m_crate) { int quad = ( (*it)->module() < 8 ? 0 : 1 ); - if (moduleInQuad >= moduleMinTE && moduleInQuad <= moduleMaxTE) { + if ((maskTE>>moduleInQuad)&1) { eT[quad] += (*it)->Et(); if ( (*it)->Et() >= m_jemEtSaturation ) m_overflowT = 1; } - if (moduleInQuad >= moduleMinXE && moduleInQuad <= moduleMaxXE) { + if ((maskXE>>moduleInQuad)&1) { eX[quad] += (*it)->Ex(); eY[quad] += (*it)->Ey(); if ( (*it)->Ex() >= m_jemEtSaturation ) m_overflowX = 1; diff --git a/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.cxx b/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.cxx index 2bb4e3dae6d2add7acdae64cb0dc21720c3262df..90a0057e7d5dbffe92c09c4b205bc9cebe71aab0 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.cxx +++ b/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.cxx @@ -47,8 +47,8 @@ namespace HLTTest { // find features: std::vector<const FeatureOBJ*> featureFromDecision; for ( auto previousDecision: *previousDecisionsHandle ) { - ElementLink<FeatureContainer> featureLink; - recursivelyFindFeature(previousDecision, featureLink); + TrigCompositeUtils::LinkInfo<FeatureContainer> linkInfo = TrigCompositeUtils::findLink<FeatureContainer>(previousDecision, m_linkName.value()); + ElementLink<FeatureContainer> featureLink = linkInfo.link; //auto featureLink = (previousDecision)->objectLink<FeatureContainer>( m_linkName.value() ); CHECK( featureLink.isValid() ); const FeatureOBJ* feature = *featureLink; @@ -121,21 +121,5 @@ namespace HLTTest { return StatusCode::SUCCESS; } - -bool TestHypoAlg::recursivelyFindFeature( const TrigCompositeUtils::Decision* start, ElementLink<FeatureContainer>& featurelink) const{ - //recursively find in the seeds - if ( start->hasObjectLink( m_linkName.value() ) ) { - featurelink=start->objectLink<FeatureContainer>( m_linkName.value() ); - return true; - } - if (TrigCompositeUtils::hasLinkToPrevious(start) ){ - auto thelinkToPrevious =TrigCompositeUtils::linkToPrevious( start); - return recursivelyFindFeature( *thelinkToPrevious, featurelink); - } - return false; - } - - - } //> end namespace HLTTest diff --git a/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.h b/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.h index 5018731d2a59dd0ff54ba861b90da3d9de4d0666..17f3acd6bf34ae342433ed92f330537c0921dc29 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.h +++ b/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.h @@ -44,7 +44,6 @@ namespace HLTTest { SG::ReadHandleKey<xAOD::TrigCompositeContainer> m_recoInput { this, "Input", "Input", "Key for reco input"}; StringProperty m_linkName {this, "LinkName", "initialRoI", "name of the link to the features in the decision, e.g. 'feature', 'initialRoI'"}; - bool recursivelyFindFeature( const TrigCompositeUtils::Decision* d, ElementLink<FeatureContainer>& featurelink) const; }; } //> end namespace HLTTest