hi -

it has long been that the methods that dereference a const
datavector&lt;t&gt; (operator[], etc), return a `const t*',
even though the value_type is `t*'.

however, datavector&lt;t&gt;::const_iterator has been inconsistent with this,
in that dereferencing the iterator returns a `t*'.

we are trying to change this feature of datavector::const_iterator, so that
dereferencing it will also return a `const t*', consistent with
datavector.  we hope this will help catch instances where
data objects are unintentionally modified.

these changes are in datamodel-00-23-21.
unfortunately, this requires some changes in client packages.

here are the changes in staco that were required to be
compatible with these changes.


+verbatim+
index: src/stacobuilder.cxx
===================================================================
--- src/stacobuilder.cxx	(revision 447210)
+++ src/stacobuilder.cxx	(working copy)
@@ -564,7 +564,7 @@
   return xi2min;
 }
 
-const trk::measuredperigee* stacobuilder::ownmeasuredperigeefromoriginaltrack(rec::trackparticle* ptrackparticle){
+const trk::measuredperigee* stacobuilder::ownmeasuredperigeefromoriginaltrack(const rec::trackparticle* ptrackparticle){
 
   const trk::measuredperigee* pmeasuredperigee = ptrackparticle-&gt;measuredperigee ();   
   if ( pmeasuredperigee == 0 ) return 0 ;
index: staco/stacobuilder.h
===================================================================
--- staco/stacobuilder.h	(revision 447210)
+++ staco/stacobuilder.h	(working copy)
@@ -102,7 +102,7 @@
    int m_allowpropagation ; //allowing propagation
 
    /**get measuredperigee from originaltrack of ptrackparticle */
-   const trk::measuredperigee* ownmeasuredperigeefromoriginaltrack(rec::trackparticle* ptrackparticle) ;
+   const trk::measuredperigee* ownmeasuredperigeefromoriginaltrack(const rec::trackparticle* ptrackparticle) ;
 
    /**get measuredperigee from measuredperigee of ptrackparticle */
    /**combination procedure */
-verbatim-

we also need this change in order to compile with gcc 4.5 or later:

+verbatim+
index: src/mboyrestore.cxx
===================================================================
--- src/mboyrestore.cxx	(revision 447210)
+++ src/mboyrestore.cxx	(working copy)
@@ -386,7 +386,7 @@
  
   datavector&lt;const trk::trackstateonsurface&gt;* trackstates = new datavector&lt;const trk::trackstateonsurface&gt;;
 
-  std::bitset&lt;trk::trackstateonsurface::numberoftrackstateonsurfacetypes&gt; first_typepattern(0); 
+  std::bitset&lt;trk::trackstateonsurface::numberoftrackstateonsurfacetypes&gt; first_typepattern; 
   first_typepattern.set(trk::trackstateonsurface::perigee);
  
   const trk::perigee* pperigee = pmeasuredperigee-&gt;clone() ;
@@ -403,7 +403,7 @@
  
       for ( datavector&lt;const trk::trackstateonsurface&gt;::const_iterator ittsos = ptrack_oldstates-&gt;begin(); ittsos!=ptrack_oldstates-&gt;end(); ++ittsos) {
             
-        std::bitset&lt;trk::trackstateonsurface::numberoftrackstateonsurfacetypes&gt; typepattern(0); 
+        std::bitset&lt;trk::trackstateonsurface::numberoftrackstateonsurfacetypes&gt; typepattern; 
         const trk::measurementbase* rot = 0;
         const trk::trackparameters* parameters = 0;
 
-verbatim-
