diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h index 63bf4729653537bd349239d1d08dc51a0402c862..51c96bbed445350fad34bb9f4b0495b05c703cc0 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h @@ -19,13 +19,15 @@ class TGCCableSSWToROD : public TGCCable public: // Constructor & Destructor TGCCableSSWToROD(std::string filename); + TGCCableSSWToROD (const TGCCableSSWToROD&); + TGCCableSSWToROD& operator=(const TGCCableSSWToROD&); virtual ~TGCCableSSWToROD(void); virtual TGCModuleMap* getModule(const TGCModuleId* moduleId) const; private: - TGCCableSSWToROD(void) {} + TGCCableSSWToROD(void); virtual TGCModuleMap* getModuleIn(const TGCModuleId* rod) const; virtual TGCModuleMap* getModuleOut(const TGCModuleId* ssw) const; TGCDatabase* database; diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h index f3811d67f5d220d20bb354f8207cf23957e9f613..80136eaceeba22dcfba5f2511d094217f407246f 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h @@ -33,7 +33,13 @@ class TGCModuleSLB; class TGCCabling : public TGCCablingBase { -public: + private: //hide default constructor, copy constructor and assignment + TGCCabling (void); + TGCCabling (const TGCCabling&); + TGCCabling& operator= (const TGCCabling&); + + + public: // Constructor & Destructor TGCCabling(std::string filenameASDToPP, std::string filenameInPP, @@ -179,7 +185,6 @@ private: TGCCableHPBToSL* cableHPBToSL; TGCCableSLBToSSW* cableSLBToSSW; TGCCableSSWToROD* cableSSWToROD; - TGCCabling(void) {} mutable std::map<int, TGCModuleId*> m_slbModuleIdMap; int getIndexFromReadoutWithoutChannel(const TGCIdBase::SideType side, diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h index 45d4eb2e41f2b1a748b7baa57bd27a1c642954fc..3825703c809d63dd08a27425c65a6af7999f1528 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h @@ -100,6 +100,9 @@ private: /** This bool variable is used to know the database is common or sector specific */ bool m_isCommon; + + /** hidden assignment operator */ + TGCDatabaseASDToPP & operator=(const TGCDatabaseASDToPP &right); }; } // end of namespace diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h index b6cf30ef8c3d0832060e1a283dceeea4438aab55..8cfedb918a2fa881d87c085ff2e0c8596d9cc764 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h @@ -67,6 +67,9 @@ private: int NIndexDBIn; int maxIndexIn[NIndexIn]; int minIndexIn[NIndexIn]; + + /** hidden assignment operator */ + TGCDatabaseInPP & operator=(const TGCDatabaseInPP &right); }; } // end of namespace diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h index 358ff48d9fd9d1b7ec8b89c9c829a0bb17519a9c..0f99a6d965b5e365e6e5af756504a0d1cff9c227 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h @@ -27,6 +27,9 @@ public: private: virtual void readDB(void); TGCDatabasePPToSL(void) {} + + /** hidden assignment operator */ + TGCDatabasePPToSL & operator=(const TGCDatabasePPToSL &right); }; } // end of namespace diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h index f20d4d060a04a6a691fc42ee5cbbb4c799a1126e..473507a5e5d56ae5c7becbe684ef47a8ab1ecf84 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h @@ -28,6 +28,9 @@ public: private: virtual void readDB(void); TGCDatabaseSLBToROD(void) {} + + /** hidden assignment operator */ + TGCDatabaseSLBToROD & operator=(const TGCDatabaseSLBToROD &right); }; } // end of namespace diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx index 96f6622204def49e14a44ac2a3f2c91ce6f0bdbb..de51b3bfc6d4948731b3f48fbd37cb1e94f5dbe1 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx @@ -859,7 +859,10 @@ bool MuonTGC_CablingSvc::getOfflineIDfromOnlineID(Identifier & offlineId, case 21: // T11S channel -= OffsetForT11S; - if(channel<=0) return false; + if(channel<=0) { + delete asdin; + return false; + } break; default: break; diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx index bf2c2e5db7c53d2494174125b45bea8e84d4f334..572f0a2c6f9082d23ae51fc6b721cc3ac8dc00ce 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx @@ -17,6 +17,28 @@ TGCCableSSWToROD::TGCCableSSWToROD(std::string filename) { database = new TGCDatabaseSLBToROD(filename,"SSW ALL"); } + +TGCCableSSWToROD::TGCCableSSWToROD (void) + : TGCCable(TGCCable::SSWToROD), + database(0) +{ +} + +TGCCableSSWToROD::TGCCableSSWToROD (const TGCCableSSWToROD& right) + : TGCCable(TGCCable::SSWToROD), + database(0) +{ + database = new TGCDatabaseSLBToROD(*dynamic_cast<TGCDatabaseSLBToROD*>(right.database)); +} + +TGCCableSSWToROD& TGCCableSSWToROD::operator=(const TGCCableSSWToROD& right) +{ + if (this != &right) { + delete database; + database = new TGCDatabaseSLBToROD(*dynamic_cast<TGCDatabaseSLBToROD*>(right.database)); + } + return *this; +} TGCCableSSWToROD::~TGCCableSSWToROD(void) { diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx index d696b04fdb0e6e511c3c62d5896a622a2488ebd6..f665b2dc953239ff4a36a922f2999157551efb13 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx @@ -25,6 +25,43 @@ namespace MuonTGC_Cabling { // Constructor & Destructor +TGCCabling::TGCCabling (void) + : TGCCablingBase(), + cableInASD(0), + cableASDToPP(0), + cableInPP(0), + cablePPToSLB(0), + cableInSLB(0), + cableSLBToHPB(0), + cableHPBToSL(0), + cableSLBToSSW(0), + cableSSWToROD(0) +{ + // do nothing +} + +TGCCabling::TGCCabling (const TGCCabling&) + : TGCCablingBase(), + cableInASD(0), + cableASDToPP(0), + cableInPP(0), + cablePPToSLB(0), + cableInSLB(0), + cableSLBToHPB(0), + cableHPBToSL(0), + cableSLBToSSW(0), + cableSSWToROD(0) +{ + // do nothing +} + +TGCCabling& TGCCabling::operator= (const TGCCabling&) +{ + // do nothing + return *this; +} + + TGCCabling::TGCCabling(std::string filenameASDToPP, std::string filenameInPP, std::string filenamePPToSL,