diff --git a/test/bench.cxx b/test/bench.cxx
index 1446741480580a987d7221d9a9906f876a934a05..c333e89f27a045733fd81f57f4ed48928d239487 100644
--- a/test/bench.cxx
+++ b/test/bench.cxx
@@ -880,7 +880,7 @@ int main(int argc, char **argv)
   Double_t cp11r = timer.CpuTime();
   cptot += cp11r;
   printf("9 Clones2  r: RT=%6.2f s  Cpu=%6.2f s\n",rt11r,cp11r);
-  Double_t cpref = 102.46;
+  Double_t cpref = 104.43;
   Double_t rootmarks = cpref*900/cptot;
 
   //print all results
@@ -957,32 +957,32 @@ int main(int argc, char **argv)
   printf("******************************************************************************\n");
   printf("* Time to write in seconds      comp 0    Reference    comp 1    Reference   *\n");
   printf("******************************************************************************\n");
-  printf("* vector<THit>                  %6.2f        0.53    %6.2f        1.69     *\n",cp2w-cp1, cp3w-cp1);
-  printf("* list<THit>                    %6.2f        0.37    %6.2f        1.72     *\n",cp2wL-cp1L,cp3wL-cp1L);
-  printf("* deque<THit>                   %6.2f        0.35    %6.2f        1.68     *\n",cp2wD-cp1D,cp3wD-cp1D);
-  printf("* set<THit>                     %6.2f        0.41    %6.2f        1.57     *\n",cp2wS-cp1S,cp3wS-cp1S);
-  printf("* multiset<THit>                %6.2f        0.40    %6.2f        1.77     *\n",cp2wM-cp1M,cp3wM-cp1M);
-  printf("* map<int,THit>                 %6.2f        0.42    %6.2f        1.89     *\n",cp2wMAP-cp1MAP,cp3wMAP-cp1MAP);
-  printf("* multimap<int,THit>            %6.2f        0.41    %6.2f        1.78     *\n",cp2wMMAP-cp1MMAP,cp3wMMAP-cp1MMAP);
-  printf("* vector<THit*>                 %6.2f        0.17    %6.2f        1.62     *\n",cp5w-cp1, cp6w-cp1);
-  printf("* list<THit*>                   %6.2f        0.38    %6.2f        1.67     *\n",cp2wLS-cp1LS,cp3wLS-cp1LS);
-  printf("* deque<THit*>                  %6.2f        0.36    %6.2f        1.84     *\n",cp2wDS-cp1DS,cp3wDS-cp1DS);
-  printf("* set<THit*>                    %6.2f        0.36    %6.2f        1.37     *\n",cp2wSS-cp1SS,cp3wSS-cp1SS);
-  printf("* multiset<THit*>               %6.2f        0.33    %6.2f        1.64     *\n",cp2wMS-cp1MS,cp3wMS-cp1MS);
-  printf("* map<int,THit*>                %6.2f        0.80    %6.2f        2.77     *\n",cp2wMAPS-cp1MAPS,cp3wMAPS-cp1MAPS);
-  printf("* multimap<int,THit*>           %6.2f        0.78    %6.2f        2.70     *\n",cp2wMMAPS-cp1MMAPS,cp3wMMAPS-cp1MMAPS);
-  printf("* vector<THit*>NS               %6.2f        0.51    %6.2f        2.51     *\n",cp5wNS-cp1, cp6wNS-cp1);
-  printf("* list<THit*>NS                 %6.2f        0.72    %6.2f        2.08     *\n",cp2wLSNS-cp1LSNS,cp3wLSNS-cp1LSNS);
-  printf("* deque<THit*>NS                %6.2f        0.70    %6.2f        2.60     *\n",cp2wDSNS-cp1DSNS,cp3wDSNS-cp1DSNS);
-  printf("* set<THit*>NS                  %6.2f        0.76    %6.2f        2.45     *\n",cp2wSSNS-cp1SSNS,cp3wSSNS-cp1SSNS);
-  printf("* multiset<THit*>NS             %6.2f        0.72    %6.2f        2.50     *\n",cp2wMSNS-cp1MSNS,cp3wMSNS-cp1MSNS);
-  printf("* TClonesArray(TObjHit)         %6.2f        0.09    %6.2f        1.47     *\n",cp8w-cp1, cp9w-cp1);
-  printf("* TClonesArray(TObjHit) split   %6.2f        0.09    %6.2f        1.50     *\n",cp10w-cp1,cp11w-cp1);
+  printf("* vector<THit>                  %6.2f        0.96    %6.2f        2.14     *\n",cp2w, cp3w);
+  printf("* list<THit>                    %6.2f        0.73    %6.2f        1.70     *\n",cp2wL,cp3wL);
+  printf("* deque<THit>                   %6.2f        0.70    %6.2f        2.06     *\n",cp2wD,cp3wD);
+  printf("* set<THit>                     %6.2f        0.78    %6.2f        2.03     *\n",cp2wS,cp3wS);
+  printf("* multiset<THit>                %6.2f        0.84    %6.2f        2.22     *\n",cp2wM,cp3wM);
+  printf("* map<int,THit>                 %6.2f        0.88    %6.2f        2.43     *\n",cp2wMAP,cp3wMAP);
+  printf("* multimap<int,THit>            %6.2f        0.88    %6.2f        2.33     *\n",cp2wMMAP,cp3wMMAP);
+  printf("* vector<THit*>                 %6.2f        0.58    %6.2f        1.95     *\n",cp5w, cp6w);
+  printf("* list<THit*>                   %6.2f        0.64    %6.2f        1.91     *\n",cp2wLS,cp3wLS);
+  printf("* deque<THit*>                  %6.2f        0.65    %6.2f        2.13     *\n",cp2wDS,cp3wDS);
+  printf("* set<THit*>                    %6.2f        0.73    %6.2f        1.67     *\n",cp2wSS,cp3wSS);
+  printf("* multiset<THit*>               %6.2f        0.71    %6.2f        1.96     *\n",cp2wMS,cp3wMS);
+  printf("* map<int,THit*>                %6.2f        1.18    %6.2f        3.34     *\n",cp2wMAPS,cp3wMAPS);
+  printf("* multimap<int,THit*>           %6.2f        1.18    %6.2f        3.32     *\n",cp2wMMAPS,cp3wMMAPS);
+  printf("* vector<THit*>NS               %6.2f        0.99    %6.2f        3.03     *\n",cp5wNS, cp6wNS);
+  printf("* list<THit*>NS                 %6.2f        1.07    %6.2f        2.74     *\n",cp2wLSNS,cp3wLSNS);
+  printf("* deque<THit*>NS                %6.2f        1.03    %6.2f        2.93     *\n",cp2wDSNS,cp3wDSNS);
+  printf("* set<THit*>NS                  %6.2f        1.17    %6.2f        3.03     *\n",cp2wSSNS,cp3wSSNS);
+  printf("* multiset<THit*>NS             %6.2f        1.17    %6.2f        3.01     *\n",cp2wMSNS,cp3wMSNS);
+  printf("* TClonesArray(TObjHit)         %6.2f        0.63    %6.2f        1.76     *\n",cp8w, cp9w);
+  printf("* TClonesArray(TObjHit) split   %6.2f        0.62    %6.2f        1.72     *\n",cp10w,cp11w);
   printf("******************************************************************************\n");
   printf("* Time to read in seconds       comp 0    Reference    comp 1    Reference   *\n");
   printf("******************************************************************************\n");
   printf("* vector<THit>                  %6.2f        0.32    %6.2f        0.61     *\n",cp2r,cp3r);
-  printf("* list<THit>                    %6.2f        0.51    %6.2f        0.63     *\n",cp2rL,cp3rL);
+  printf("* list<THit>                    %6.2f        0.35    %6.2f        0.63     *\n",cp2rL,cp3rL);
   printf("* deque<THit>                   %6.2f        0.29    %6.2f        0.71     *\n",cp2rD,cp3rD);
   printf("* set<THit>                     %6.2f        0.64    %6.2f        0.70     *\n",cp2rS,cp3rS);
   printf("* multiset<THit>                %6.2f        0.46    %6.2f        0.68     *\n",cp2rM,cp3rM);
@@ -997,9 +997,9 @@ int main(int argc, char **argv)
   printf("* multimap<int,THit*>           %6.2f        0.95    %6.2f        1.28     *\n",cp2rMMAPS,cp3rMMAPS);
   printf("* vector<THit*>NS               %6.2f        0.72    %6.2f        1.14     *\n",cp5rNS,cp6rNS);
   printf("* list<THit*>NS                 %6.2f        0.78    %6.2f        1.20     *\n",cp2rLSNS,cp3rLSNS);
-  printf("* deque<THit*>NS                %6.2f        0.82    %6.2f        1.17     *\n",cp2rDSNS,cp3rDSNS);
-  printf("* set<THit*>NS                  %6.2f        0.92    %6.2f        1.21     *\n",cp2rSSNS,cp3rSSNS);
-  printf("* multiset<THit*> NS            %6.2f        0.84    %6.2f        1.21     *\n",cp2rMSNS,cp3rMSNS);
+  printf("* deque<THit*>NS                %6.2f        0.86    %6.2f        1.17     *\n",cp2rDSNS,cp3rDSNS);
+  printf("* set<THit*>NS                  %6.2f        0.85    %6.2f        1.21     *\n",cp2rSSNS,cp3rSSNS);
+  printf("* multiset<THit*> NS            %6.2f        0.85    %6.2f        1.21     *\n",cp2rMSNS,cp3rMSNS);
   printf("* TClonesArray(TObjHit)         %6.2f        0.17    %6.2f        0.50     *\n",cp8r,cp9r);
   printf("* TClonesArray(TObjHit) split   %6.2f        0.17    %6.2f        0.45     *\n",cp10r,cp11r);
   printf("******************************************************************************\n");