Index: trunk/Utilities/Hector/include/H_AbstractBeamLine.h
===================================================================
--- trunk/Utilities/Hector/include/H_AbstractBeamLine.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_AbstractBeamLine.h	(revision 216)
@@ -67,5 +67,5 @@
 		const TMatrix getPartialMatrix(const unsigned int ) const;
 		///     Returns the transport matrix for a part of the beam from the IP to a given element, given energy loss/mass/charge
-		const TMatrix getPartialMatrix(const string, const float, const float, const float);
+		const TMatrix getPartialMatrix(const string&, const float, const float, const float);
 		///     Returns the ith element of the beamline
 		//@{
@@ -75,6 +75,6 @@
 		///	Returns a given element of the beamline, choosen by name 
 		//@{
-		H_OpticalElement * getElement(const string );
-		H_OpticalElement * getElement(const string ) const;
+		H_OpticalElement * getElement(const string& );
+		H_OpticalElement * getElement(const string& ) const;
 		//@}
 		///	Print some info
@@ -99,9 +99,9 @@
 		void drawY(const float, const float) const;
 		///	Moves an element in the list, reorders the lists and recomputes the transport matrix
-		void moveElement(const string, const float ); 
+		void moveElement(const string&, const float ); 
 		/// Moves the given element tranversely by given amounts.
-		void alignElement(const string, const float, const float);
+		void alignElement(const string&, const float, const float);
 		/// Tilts the given element tranversely by given angles.
-		void tiltElement(const string, const float, const float);
+		void tiltElement(const string&, const float, const float);
 		///	Offsets all element in X pos from the start position
 		void offsetElements(const float start, const float offset);
Index: trunk/Utilities/Hector/include/H_Aperture.h
===================================================================
--- trunk/Utilities/Hector/include/H_Aperture.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_Aperture.h	(revision 216)
@@ -42,5 +42,5 @@
 		H_Aperture(const H_Aperture&);
 		H_Aperture& operator=(const H_Aperture&);
-		virtual ~H_Aperture() { return; };
+		virtual ~H_Aperture() { };
 		virtual H_Aperture* clone() const { return new H_Aperture(type,x1,x2,x3,x4,fx,fy); };
 		//@}
Index: trunk/Utilities/Hector/include/H_BeamLine.h
===================================================================
--- trunk/Utilities/Hector/include/H_BeamLine.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_BeamLine.h	(revision 216)
@@ -36,15 +36,15 @@
 		H_BeamLine(const int, const float);
 		H_BeamLine& operator=(const H_BeamLine& );
-		~H_BeamLine() {return;};
+		~H_BeamLine() {};
 	//@
 		///     Finds the IP position (s) from the MAD table. Should be "IP5" or "IP1".
 		//@{
-		void findIP(const string);
-		void findIP(const string, const string);
+		void findIP(const string&);
+		void findIP(const string&, const string&);
 		//@}
 		///     Reader for the external MAD table
 		//@{
-		void fill(const string);
-		void fill(const string, const int, const string );
+		void fill(const string&);
+		void fill(const string&, const int, const string& );
 		//@}
 		///     Returns the IP position (s)
Index: trunk/Utilities/Hector/include/H_BeamLineParser.h
===================================================================
--- trunk/Utilities/Hector/include/H_BeamLineParser.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_BeamLineParser.h	(revision 216)
@@ -71,5 +71,5 @@
 */
 
-extern int column_identification(const string );
+extern int column_identification(const string& );
 
 /// \brief Reader for madx tables to use in H_BeamLine
@@ -82,5 +82,5 @@
 	//@{
 		H_BeamLineParser() {init();}
-		~H_BeamLineParser() {return;}
+		~H_BeamLineParser() {}
 	//@}
 		void init();
Index: trunk/Utilities/Hector/include/H_BeamParticle.h
===================================================================
--- trunk/Utilities/Hector/include/H_BeamParticle.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_BeamParticle.h	(revision 216)
@@ -46,5 +46,5 @@
 		H_BeamParticle(const double, const double);
 		H_BeamParticle& operator=(const H_BeamParticle&);
-		~H_BeamParticle() {if(stop_position) delete stop_position; if(!stop_element) delete stop_element; positions.clear(); return; }
+		~H_BeamParticle() {if(stop_position) delete stop_position; if(!stop_element) delete stop_element; positions.clear();}
 		//@}
 		/// Smears the (x,y) coordinates of the particle [\f$ \mu m \f$]
@@ -112,5 +112,5 @@
 		void propagate(const H_AbstractBeamLine *, const H_OpticalElement *);
 		/// Propagates the particle accross the beamline until a given element
-		void propagate(const H_AbstractBeamLine *, const string);
+		void propagate(const H_AbstractBeamLine *, const string&);
 		/// Propagates the particle until the end of the beamline
 		void propagate(const H_AbstractBeamLine *);
Index: trunk/Utilities/Hector/include/H_CircularAperture.h
===================================================================
--- trunk/Utilities/Hector/include/H_CircularAperture.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_CircularAperture.h	(revision 216)
@@ -28,5 +28,5 @@
 		H_CircularAperture():H_EllipticAperture(0,0,0,0) {type = CIRCULAR; setApertureString();}
 		H_CircularAperture(const float, const float, const float);
-		~H_CircularAperture() {return;};
+		~H_CircularAperture() {};
 		H_CircularAperture* clone() const;
 		//@}
Index: trunk/Utilities/Hector/include/H_Dipole.h
===================================================================
--- trunk/Utilities/Hector/include/H_Dipole.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_Dipole.h	(revision 216)
@@ -26,6 +26,6 @@
 		H_Dipole():H_OpticalElement() {}
 		H_Dipole(const int dtype, const double s, const double k, const double l):H_OpticalElement(dtype,s,k,l){}
-		H_Dipole(const string nameE, const int dtype, const double s, const double k, const double l):H_OpticalElement(nameE,dtype,s,k,l){}
-	        virtual ~H_Dipole() {return;};
+		H_Dipole(const string& nameE, const int dtype, const double s, const double k, const double l):H_OpticalElement(nameE,dtype,s,k,l){}
+	        virtual ~H_Dipole() {};
 		//@}
 		/// Prints the properties of the element
Index: trunk/Utilities/Hector/include/H_Drift.h
===================================================================
--- trunk/Utilities/Hector/include/H_Drift.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_Drift.h	(revision 216)
@@ -25,12 +25,12 @@
 	/// Constructors and destructor
 	//@{
-			H_Drift():H_OpticalElement(DRIFT,0.,0.,0.) {init();}
+		H_Drift():H_OpticalElement(DRIFT,0.,0.,0.) {init();}
         	H_Drift(const double s, const double l):H_OpticalElement(DRIFT,s,0.,l){init();}
-	        H_Drift(const string nameE, const double s, const double l):H_OpticalElement(nameE,DRIFT,s,0.,l){init();}
-	        ~H_Drift() { return; };
+	        H_Drift(const string& nameE, const double s, const double l):H_OpticalElement(nameE,DRIFT,s,0.,l){init();}
+	        ~H_Drift() { };
 	//@}
         	virtual void printProperties() const;
 	        void init();
-			H_Drift* clone() const;
+		H_Drift* clone() const;
 
 	protected:
Index: trunk/Utilities/Hector/include/H_EllipticAperture.h
===================================================================
--- trunk/Utilities/Hector/include/H_EllipticAperture.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_EllipticAperture.h	(revision 216)
@@ -27,5 +27,5 @@
 		H_EllipticAperture():H_Aperture(ELLIPTIC,0,0,0,0,0,0) {}
 		H_EllipticAperture(const float, const float, const float, const float);
-		~H_EllipticAperture() {return;};
+		~H_EllipticAperture() {};
 		virtual H_EllipticAperture* clone() const;
 		//@}
Index: trunk/Utilities/Hector/include/H_HorizontalKicker.h
===================================================================
--- trunk/Utilities/Hector/include/H_HorizontalKicker.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_HorizontalKicker.h	(revision 216)
@@ -29,6 +29,6 @@
 		H_HorizontalKicker():H_Kicker(HKICKER,0.,0.,0.) {init();}
 		H_HorizontalKicker(const double s, const double k, const double l) :H_Kicker(HKICKER,s,k,l){init();}
-		H_HorizontalKicker(const string nameE, const double s, const double k, const double l) :H_Kicker(nameE,HKICKER,s,k,l){init();}
-		~H_HorizontalKicker() {return;};
+		H_HorizontalKicker(const string &nameE, const double s, const double k, const double l) :H_Kicker(nameE,HKICKER,s,k,l){init();}
+		~H_HorizontalKicker() {};
 	//@}
 		H_HorizontalKicker* clone() const;
Index: trunk/Utilities/Hector/include/H_HorizontalQuadrupole.h
===================================================================
--- trunk/Utilities/Hector/include/H_HorizontalQuadrupole.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_HorizontalQuadrupole.h	(revision 216)
@@ -27,6 +27,6 @@
 		H_HorizontalQuadrupole():H_Quadrupole(HQUADRUPOLE,0.,0.,0.) {init();}
 		H_HorizontalQuadrupole(const double s, const double k, const double l) : H_Quadrupole(HQUADRUPOLE,s,k,l){init();}
-		H_HorizontalQuadrupole(const string nameE, const double s, const double k, const double l) : H_Quadrupole(nameE,HQUADRUPOLE,s,k,l){init();}
-		~H_HorizontalQuadrupole() {return;};
+		H_HorizontalQuadrupole(const string& nameE, const double s, const double k, const double l) : H_Quadrupole(nameE,HQUADRUPOLE,s,k,l){init();}
+		~H_HorizontalQuadrupole() {};
 	//@}
 		H_HorizontalQuadrupole* clone() const ;
Index: trunk/Utilities/Hector/include/H_Kicker.h
===================================================================
--- trunk/Utilities/Hector/include/H_Kicker.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_Kicker.h	(revision 216)
@@ -28,6 +28,6 @@
 		H_Kicker():H_OpticalElement() {}
 		H_Kicker(const int dtype, const double s, const double k, const double l):H_OpticalElement(dtype,s,k,l){}
-		H_Kicker(const string nameE, const int dtype, const double s, const double k, const double l):H_OpticalElement(nameE,dtype,s,k,l){}
-		virtual ~H_Kicker() {return;};
+		H_Kicker(const string& nameE, const int dtype, const double s, const double k, const double l):H_OpticalElement(nameE,dtype,s,k,l){}
+		virtual ~H_Kicker() {};
 	//@}
 	/// prints the kicker properties
Index: trunk/Utilities/Hector/include/H_Marker.h
===================================================================
--- trunk/Utilities/Hector/include/H_Marker.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_Marker.h	(revision 216)
@@ -27,6 +27,6 @@
 		H_Marker():H_Drift() { type = MARKER; init();}
         	H_Marker(const double s):H_Drift(s,0.) { type =MARKER; init();}
-	        H_Marker(const string nameE, const double s):H_Drift(nameE,s,0.) { type=MARKER; init();}
-	        ~H_Marker() { return; };
+	        H_Marker(const string& nameE, const double s):H_Drift(nameE,s,0.) { type=MARKER; init();}
+	        ~H_Marker() { };
 	//@}
         	virtual void printProperties() const;
Index: trunk/Utilities/Hector/include/H_OpticalElement.h
===================================================================
--- trunk/Utilities/Hector/include/H_OpticalElement.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_OpticalElement.h	(revision 216)
@@ -70,10 +70,10 @@
 	public:
         ///     init method for constructors
-                void init(const string, const int , const double , const double , const double);
+                void init(const string&, const int , const double , const double , const double);
 		/// Constructors and destructor
 		//@{
-		H_OpticalElement(const string, const int, const double, const double, const double, H_Aperture*);
+		H_OpticalElement(const string&, const int, const double, const double, const double, H_Aperture*);
 		H_OpticalElement(const int, const double, const double, const double, H_Aperture*);
-		H_OpticalElement(const string, const int, const double, const double, const double);
+		H_OpticalElement(const string&, const int, const double, const double, const double);
 		H_OpticalElement(const int, const double, const double, const double);
 		H_OpticalElement();
Index: trunk/Utilities/Hector/include/H_Quadrupole.h
===================================================================
--- trunk/Utilities/Hector/include/H_Quadrupole.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_Quadrupole.h	(revision 216)
@@ -27,6 +27,6 @@
 		H_Quadrupole():H_OpticalElement() {}
 		H_Quadrupole(const int dtype, const double s, const double k, const double l) : H_OpticalElement(dtype,s,k,l) {}
-		H_Quadrupole(const string nameE, const int dtype, const double s, const double k, const double l) : H_OpticalElement(nameE,dtype,s,k,l) {}
-		virtual ~H_Quadrupole() {return;};
+		H_Quadrupole(const string& nameE, const int dtype, const double s, const double k, const double l) : H_OpticalElement(nameE,dtype,s,k,l) {}
+		virtual ~H_Quadrupole() {};
 	//@}	
 		virtual void printProperties() const;
Index: trunk/Utilities/Hector/include/H_RectEllipticAperture.h
===================================================================
--- trunk/Utilities/Hector/include/H_RectEllipticAperture.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_RectEllipticAperture.h	(revision 216)
@@ -27,5 +27,5 @@
 		H_RectEllipticAperture():H_Aperture(RECTELLIPSE,0,0,0,0,0,0) {}
 		H_RectEllipticAperture(const float,const float,const float,const float, const float, const float);
-		~H_RectEllipticAperture() {return;};
+		~H_RectEllipticAperture() {};
 		H_RectEllipticAperture* clone() const;
 		//@}
Index: trunk/Utilities/Hector/include/H_RectangularAperture.h
===================================================================
--- trunk/Utilities/Hector/include/H_RectangularAperture.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_RectangularAperture.h	(revision 216)
@@ -27,5 +27,5 @@
 		H_RectangularAperture():H_Aperture(RECTANGULAR,0,0,0,0,0,0) {}
 		H_RectangularAperture(const float,const float,const float,const float);
-		~H_RectangularAperture() {return;};
+		~H_RectangularAperture() {};
 		H_RectangularAperture* clone() const;
 		//@}
Index: trunk/Utilities/Hector/include/H_RectangularCollimator.h
===================================================================
--- trunk/Utilities/Hector/include/H_RectangularCollimator.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_RectangularCollimator.h	(revision 216)
@@ -27,6 +27,6 @@
 		H_RectangularCollimator():H_Drift() {type = RCOLLIMATOR; init();}
 		H_RectangularCollimator(const double, const double );
-		H_RectangularCollimator(const string, const double, const double );
-		~H_RectangularCollimator() { return; };
+		H_RectangularCollimator(const string&, const double, const double );
+		~H_RectangularCollimator() {};
 	//@}
 		virtual void printProperties() const;
Index: trunk/Utilities/Hector/include/H_RectangularDipole.h
===================================================================
--- trunk/Utilities/Hector/include/H_RectangularDipole.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_RectangularDipole.h	(revision 216)
@@ -26,6 +26,6 @@
 		H_RectangularDipole():H_Dipole(RDIPOLE,0.,0.,0.) {init();}
 		H_RectangularDipole(const double s, const double k, const double l) :H_Dipole(RDIPOLE,s,k,l){init();}
-		H_RectangularDipole(const string nameE, const double s, const double k, const double l) :H_Dipole(nameE,RDIPOLE,s,k,l){init();}
-		~H_RectangularDipole() { return; };
+		H_RectangularDipole(const string& nameE, const double s, const double k, const double l) :H_Dipole(nameE,RDIPOLE,s,k,l){init();}
+		~H_RectangularDipole() {};
 		//@}
 		H_RectangularDipole* clone() const ;
Index: trunk/Utilities/Hector/include/H_RomanPot.h
===================================================================
--- trunk/Utilities/Hector/include/H_RomanPot.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_RomanPot.h	(revision 216)
@@ -28,7 +28,7 @@
 	//@{
 		H_RomanPot():H_Drift() {type = RP; init();}
-		H_RomanPot(const string, const double, const double);
+		H_RomanPot(const string&, const double, const double);
 		H_RomanPot(const double, const double);
-		~H_RomanPot() { return; };
+		~H_RomanPot() {};
 	//@}
 		virtual void printProperties() const;
Index: trunk/Utilities/Hector/include/H_SectorDipole.h
===================================================================
--- trunk/Utilities/Hector/include/H_SectorDipole.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_SectorDipole.h	(revision 216)
@@ -27,5 +27,5 @@
 		H_SectorDipole(const double s, const double k, const double l) :H_Dipole(SDIPOLE,s,k,l){init();}
 		H_SectorDipole(const string nameE, const double s, const double k, const double l) :H_Dipole(nameE,SDIPOLE,s,k,l){init();}
-		~H_SectorDipole() {return;};
+		~H_SectorDipole() {};
 		//@}
 		H_SectorDipole* clone() const ;
Index: trunk/Utilities/Hector/include/H_VerticalKicker.h
===================================================================
--- trunk/Utilities/Hector/include/H_VerticalKicker.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_VerticalKicker.h	(revision 216)
@@ -31,5 +31,5 @@
 		H_VerticalKicker(const double s, const double k, const double l) :H_Kicker(VKICKER,s,k,l){init();}
 		H_VerticalKicker(const string nameE, const double s, const double k, const double l) :H_Kicker(nameE,VKICKER,s,k,l){init();}
-		~H_VerticalKicker() {return;};
+		~H_VerticalKicker() {};
 	//@}
 		H_VerticalKicker* clone() const ;
Index: trunk/Utilities/Hector/include/H_VerticalQuadrupole.h
===================================================================
--- trunk/Utilities/Hector/include/H_VerticalQuadrupole.h	(revision 3)
+++ trunk/Utilities/Hector/include/H_VerticalQuadrupole.h	(revision 216)
@@ -28,5 +28,5 @@
 		H_VerticalQuadrupole(const double s, const double k, const double l):H_Quadrupole(VQUADRUPOLE,s,k,l) {init();}
 		H_VerticalQuadrupole(string nameE, const double s, const double k, const double l):H_Quadrupole(nameE,VQUADRUPOLE,s,k,l) {init();}
-		~H_VerticalQuadrupole() {return;};
+		~H_VerticalQuadrupole() {};
 	//@}
 		H_VerticalQuadrupole* clone() const ;
Index: trunk/Utilities/Hector/src/H_AbstractBeamLine.cc
===================================================================
--- trunk/Utilities/Hector/src/H_AbstractBeamLine.cc	(revision 3)
+++ trunk/Utilities/Hector/src/H_AbstractBeamLine.cc	(revision 216)
@@ -134,5 +134,5 @@
 }
 
-const TMatrix H_AbstractBeamLine::getPartialMatrix(const string elname, const float eloss, const float p_mass, const float p_charge) {
+const TMatrix H_AbstractBeamLine::getPartialMatrix(const string& elname, const float eloss, const float p_mass, const float p_charge) {
 
 	vector<H_OpticalElement*>::iterator element_i;
@@ -186,5 +186,5 @@
 
 
-H_OpticalElement * H_AbstractBeamLine::getElement(const string el_name) {
+H_OpticalElement * H_AbstractBeamLine::getElement(const string& el_name) {
 	for(unsigned int i=0; i < elements.size(); i++) {
 		if( (*(elements.begin()+i))->getName() == el_name ) 
@@ -195,5 +195,5 @@
 }
 
-H_OpticalElement * H_AbstractBeamLine::getElement(const string el_name) const {
+H_OpticalElement * H_AbstractBeamLine::getElement(const string& el_name) const {
         for(unsigned int i=0; i < elements.size(); i++) {
 		if( (*(elements.begin()+i))->getName() == el_name)
@@ -435,5 +435,5 @@
 }
 
-void H_AbstractBeamLine::moveElement(const string name, const float new_s) {
+void H_AbstractBeamLine::moveElement(const string& name, const float new_s) {
 	/// @param name identifies the element to move
 	/// @param new_s is where to put it
@@ -448,5 +448,5 @@
 }
 
-void H_AbstractBeamLine::alignElement(const string name, const float disp_x, const float disp_y) {
+void H_AbstractBeamLine::alignElement(const string& name, const float disp_x, const float disp_y) {
 	/// @param name identifies the element to move
 	/// @param disp_x identifies the displacement to add in x [\f$ \mu m \f$]
@@ -464,5 +464,5 @@
 }
 
-void H_AbstractBeamLine::tiltElement(const string name, const float ang_x, const float ang_y) {
+void H_AbstractBeamLine::tiltElement(const string& name, const float ang_x, const float ang_y) {
 	/// @param name identifies the element to move
 	/// @param ang_x identifies the angle to add in x
Index: trunk/Utilities/Hector/src/H_BeamLine.cc
===================================================================
--- trunk/Utilities/Hector/src/H_BeamLine.cc	(revision 3)
+++ trunk/Utilities/Hector/src/H_BeamLine.cc	(revision 216)
@@ -68,10 +68,10 @@
 }
 
-void H_BeamLine::findIP(const string filename) {
+void H_BeamLine::findIP(const string& filename) {
 	findIP(filename,"IP5");
 	return;
 }
 
-void H_BeamLine::findIP(const string filename, const string ipname) {
+void H_BeamLine::findIP(const string& filename, const string& ipname) {
 	// searches for the IP position in the extended table.
 	ifstream tabfile(filename.c_str());
@@ -127,5 +127,5 @@
 }
 
-void H_BeamLine::fill(const string filename) {
+void H_BeamLine::fill(const string& filename) {
 	fill(filename,1,"IP5");
 	return;
@@ -133,5 +133,5 @@
 
 
-void H_BeamLine::fill(const string filename, const int dir, const string ipname) {
+void H_BeamLine::fill(const string& filename, const int dir, const string& ipname) {
 	string headers[40];  // table of all column headers
 	int header_type[40]; // table of all column types
Index: trunk/Utilities/Hector/src/H_BeamLineParser.cc
===================================================================
--- trunk/Utilities/Hector/src/H_BeamLineParser.cc	(revision 3)
+++ trunk/Utilities/Hector/src/H_BeamLineParser.cc	(revision 216)
@@ -31,5 +31,5 @@
 
 /// Identifies the column content from its header
-int column_identification(const string header) {
+int column_identification(const string& header) {
 	// identifies the column type from its name
 
Index: trunk/Utilities/Hector/src/H_BeamParticle.cc
===================================================================
--- trunk/Utilities/Hector/src/H_BeamParticle.cc	(revision 3)
+++ trunk/Utilities/Hector/src/H_BeamParticle.cc	(revision 216)
@@ -444,5 +444,5 @@
 }
 
-void H_BeamParticle::propagate(const H_AbstractBeamLine * beam, const string el_name) {
+void H_BeamParticle::propagate(const H_AbstractBeamLine * beam, const string& el_name) {
 	propagate(beam->getElement(el_name)->getS()+beam->getElement(el_name)->getLength());
 	return;
Index: trunk/Utilities/Hector/src/H_OpticalElement.cc
===================================================================
--- trunk/Utilities/Hector/src/H_OpticalElement.cc	(revision 3)
+++ trunk/Utilities/Hector/src/H_OpticalElement.cc	(revision 216)
@@ -28,5 +28,5 @@
 
 /// called by the constructors
-void H_OpticalElement::init(const string nameE, const int typeE, const double s, const double k, const double l) {
+void H_OpticalElement::init(const string& nameE, const int typeE, const double s, const double k, const double l) {
 	// this is called by the constructors
 	// must be in public section !
@@ -56,9 +56,9 @@
 }
 
-H_OpticalElement::H_OpticalElement(const string nameE, const int typeE, const double s, const double k, const double l) : element_aperture(new H_Aperture()) {
+H_OpticalElement::H_OpticalElement(const string& nameE, const int typeE, const double s, const double k, const double l) : element_aperture(new H_Aperture()) {
 	init(nameE,typeE,s,k,l);
 }
 
-H_OpticalElement::H_OpticalElement(const string nameE, const int typeE, const double s, const double k, const double l, H_Aperture* the_app) : element_aperture(the_app->clone()) {
+H_OpticalElement::H_OpticalElement(const string& nameE, const int typeE, const double s, const double k, const double l, H_Aperture* the_app) : element_aperture(the_app->clone()) {
 	init(nameE,typeE,s,k,l);
 }
Index: trunk/Utilities/Hector/src/H_RectangularCollimator.cc
===================================================================
--- trunk/Utilities/Hector/src/H_RectangularCollimator.cc	(revision 3)
+++ trunk/Utilities/Hector/src/H_RectangularCollimator.cc	(revision 216)
@@ -30,5 +30,5 @@
 }
 
-H_RectangularCollimator::H_RectangularCollimator(const string nameE, const double s, const double l) :H_Drift(nameE,s,l){
+H_RectangularCollimator::H_RectangularCollimator(const string& nameE, const double s, const double l) :H_Drift(nameE,s,l){
 	type = RCOLLIMATOR;
 	init();
Index: trunk/Utilities/Hector/src/H_RomanPot.cc
===================================================================
--- trunk/Utilities/Hector/src/H_RomanPot.cc	(revision 3)
+++ trunk/Utilities/Hector/src/H_RomanPot.cc	(revision 216)
@@ -32,5 +32,5 @@
 }
 
-H_RomanPot::H_RomanPot(const string nameE, const double s, const double app) :H_Drift(nameE,s,RP_LENGTH){
+H_RomanPot::H_RomanPot(const string& nameE, const double s, const double app) :H_Drift(nameE,s,RP_LENGTH){
 		type = RP;
 		init();
