00001 /* @version $Revision: 1585 $ * @modifiedby $Author: jacquem $ * @lastmodified $Date: 2012-03-13 11:03:35 +0100 (Tue, 13 Mar 2012) $ */ 00002 #include "root/MTDetector.hh" 00003 #include "root/MTChamber.hh" 00004 // 00005 #include "tools/MicroException.hh" 00006 #include <iostream> 00007 #include <time.h> 00008 00009 #include "geometry/Detector.hh" 00010 #include "geometry/Chamber.hh" 00011 #include "tools/Log.hh" 00012 00013 00014 using namespace std; 00015 00016 ClassImp(MTDetector) 00017 00018 MTDetector::MTDetector() 00019 { 00020 name = ""; 00021 id = 0; 00022 } 00023 00024 //______________________________________________________________________________ 00025 MTDetector::MTDetector(const Detector& aDetector) 00026 { 00027 (*this) = aDetector; // appelle operator= 00028 } 00029 //______________________________________________________________________________ 00030 MTDetector::~MTDetector() 00031 { 00032 for( map<UInt_t,MTChamber*>::const_iterator iiChamber=this->chambers.begin(); iiChamber!=this->chambers.end(); ++iiChamber) 00033 { 00034 delete (*iiChamber).second; 00035 } 00036 } 00037 //______________________________________________________________________________ 00038 MTDetector& MTDetector::operator=(const Detector& aDetector) 00039 { 00040 try 00041 { 00042 name = aDetector.getName(); 00043 description = aDetector.getDescription(); 00044 00045 const ChamberMap_t& detChambers = aDetector.getChambers(); 00046 00047 for (ChamberMap_t::const_iterator chamberIt = detChambers.begin(); chamberIt != detChambers.end(); ++chamberIt) 00048 { 00049 Chamber& chamber = *(chamberIt->second); 00050 MTChamber *mtChamber = new MTChamber(chamber); 00051 this->chambers[chamber.getId()] = mtChamber; 00052 } 00053 00054 } //try block 00055 catch (MicroException e) 00056 { 00057 throw MicroException(e.getMessage()); 00058 } 00059 // Save all objects in this file 00060 return *this; 00061 } 00062 00063 //______________________________________________________________________________ 00064 void MTDetector::Info() const 00065 { 00066 00067 TString recDate; 00068 00069 cout << "**** Detector informations ****" << endl << endl ; 00070 cout << " Id: " << id << " " << endl ; 00071 cout << " Name: " << name << " " << endl ; 00072 } 00073