Index: display/DelphesEventDisplay.cc
===================================================================
--- display/DelphesEventDisplay.cc	(revision f185c2406715e0b60ce11f93bcdbe9020a21efa7)
+++ display/DelphesEventDisplay.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
@@ -156,5 +156,6 @@
        TEveCaloLego *lego = new TEveCaloLego(container);
        lego->InitMainTrans();
-       lego->RefMainTrans().SetScale(TMath::TwoPi(), TMath::TwoPi(), TMath::Pi());
+ //    lego->RefMainTrans().SetScale(TMath::TwoPi(), TMath::TwoPi(), TMath::Pi());
+       lego->RefMainTrans().SetScale(100, 100, TMath::Pi());
        lego->SetAutoRebin(kFALSE);
        lego->Set2DMode(TEveCaloLego::kValSizeOutline);
@@ -415,7 +416,4 @@
    browser->SetTabTitle("Event Control", 0);
 
-   // Geometry tab
-   // TODO add a tab with the full geometry
-   
    // the summary tab
    htmlSummary_ = new DelphesHtmlSummary("Delphes Event Display Summary Table");
Index: display/DelphesEventDisplay.h
===================================================================
--- display/DelphesEventDisplay.h	(revision f185c2406715e0b60ce11f93bcdbe9020a21efa7)
+++ display/DelphesEventDisplay.h	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
@@ -111,5 +111,5 @@
     }
 
-    void DisplayProgress(Int_t p) { //TODO replace by a progress bar
+    void DisplayProgress(Int_t p) { 
          fStatusBar_->SetText(Form("Processing... %d %%",p), 1);
          gSystem->ProcessEvents();
Index: display/DelphesPlotSummary.cc
===================================================================
--- display/DelphesPlotSummary.cc	(revision f185c2406715e0b60ce11f93bcdbe9020a21efa7)
+++ display/DelphesPlotSummary.cc	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
@@ -49,4 +49,29 @@
     histograms.push_back(h);
     histograms_[(*data)->GetName()] = histograms;
+    // the event histograms
+    TH1F* h1 = (TH1F*)histograms[0]->Clone(); h1->Reset(); h1->SetLineColor(kBlue);
+    TH1F* h2 = (TH1F*)histograms[1]->Clone(); h2->Reset(); h2->SetLineColor(kBlue);
+    TH1F* h3 = (TH1F*)histograms[2]->Clone(); h3->Reset(); h3->SetLineColor(kBlue);
+    std::vector<TH1F*> hv;
+    hv.push_back(h1);
+    hv.push_back(h2);
+    hv.push_back(h3);
+    eventProfiles_[(*data)->GetName()] = hv;
+    // the event markers
+    TMarker *m;
+    std::vector<TMarker*> mv;
+    m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
+    mv.push_back(m);
+    m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
+    mv.push_back(m);
+    m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
+    mv.push_back(m);
+    m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
+    mv.push_back(m);
+    m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
+    mv.push_back(m);
+    m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
+    mv.push_back(m);
+    eventMarkers_[(*data)->GetName()] = mv;
   }
 }
@@ -95,7 +120,5 @@
         eventProfiles[i]->Draw("same");
       } else {
-        if(eventMarkers.size()>(unsigned int)(i-3)) {
-          eventMarkers[i-3]->Draw("same");
-        }
+        eventMarkers[i-3]->Draw("same");
       }
     }
@@ -104,28 +127,25 @@
 }
 
-void DelphesPlotSummary::FillEvent() { //TODO make it faster... try to reuse objects and simply change the values
-  // clear previous markers
+void DelphesPlotSummary::FillEvent() {
+  // clear event histograms and markers
+  for(std::map< TString, std::vector<TH1F*> >::iterator hv = eventProfiles_.begin(); hv!=eventProfiles_.end();++hv) {
+    for(std::vector<TH1F*>::iterator h = hv->second.begin(); h<hv->second.end();++h) {
+      (*h)->Reset();
+    }
+  }
   for(std::map< TString, std::vector<TMarker*> >::iterator mv = eventMarkers_.begin(); mv!=eventMarkers_.end();++mv) {
     for(std::vector<TMarker*>::iterator m = mv->second.begin(); m<mv->second.end();++m) {
-      delete *m;
+      (*m)->SetMarkerSize(0);
     }
   }
-  eventMarkers_.clear();
-  for(std::map< TString, std::vector<TH1F*> >::iterator hv = eventProfiles_.begin(); hv!=eventProfiles_.end();++hv) {
-    for(std::vector<TH1F*>::iterator h = hv->second.begin(); h<hv->second.end();++h) {
-      delete *h;
-    }
-  }
-  eventProfiles_.clear();
   // loop over the elements and fill markers with event data
-  TMarker *m;
   for(std::vector<DelphesBranchBase*>::iterator element = elements_->begin();element<elements_->end();++element) {
-    std::vector<TMarker*> mv;
     std::vector<TLorentzVector> vectors = (*element)->GetVectors();
     std::sort(vectors.begin(), vectors.end(), vecsorter); 
-    std::vector<TH1F*> histograms = histograms_[(*element)->GetName()];
-    TH1F* h1 = (TH1F*)histograms[0]->Clone(); h1->Reset(); h1->SetLineColor(kBlue);
-    TH1F* h2 = (TH1F*)histograms[1]->Clone(); h2->Reset(); h2->SetLineColor(kBlue);
-    TH1F* h3 = (TH1F*)histograms[2]->Clone(); h3->Reset(); h3->SetLineColor(kBlue);
+    std::vector<TH1F*> hv = eventProfiles_[(*element)->GetName()];
+    TH1F* h1 = hv[0]; h1->Reset();
+    TH1F* h2 = hv[1]; h1->Reset();
+    TH1F* h3 = hv[2]; h1->Reset();
+    std::vector<TMarker*> mv = eventMarkers_[(*element)->GetName()];
     for(std::vector<TLorentzVector>::iterator it=vectors.begin(); it<vectors.end();++it) {
       h1->Fill(it->Pt());
@@ -133,26 +153,14 @@
       h3->Fill(it->Phi());
       if(it==vectors.begin()) {
-        m = new TMarker(it->Pt(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
-        mv.push_back(m);
-        m = new TMarker(it->Eta(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
-        mv.push_back(m);
-        m = new TMarker(it->Phi(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
-        mv.push_back(m);
+        mv[0]->SetX(it->Pt()); mv[0]->SetMarkerSize(3);
+        mv[1]->SetX(it->Eta()); mv[1]->SetMarkerSize(3);
+        mv[2]->SetX(it->Phi()); mv[2]->SetMarkerSize(3);
       }
       if(it==vectors.begin()+1) {
-        m = new TMarker(it->Pt(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
-        mv.push_back(m);
-        m = new TMarker(it->Eta(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
-        mv.push_back(m);
-        m = new TMarker(it->Phi(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);
-        mv.push_back(m);
+        mv[3]->SetX(it->Pt()); mv[3]->SetMarkerSize(3);
+        mv[4]->SetX(it->Eta()); mv[4]->SetMarkerSize(3);
+        mv[5]->SetX(it->Phi()); mv[5]->SetMarkerSize(3);
       }
     }
-    std::vector<TH1F*> hv;
-    hv.push_back(h1);
-    hv.push_back(h2);
-    hv.push_back(h3);
-    eventProfiles_[(*element)->GetName()] = hv;
-    eventMarkers_[(*element)->GetName()] = mv;
   }
 }
Index: examples/EventDisplay.C
===================================================================
--- examples/EventDisplay.C	(revision f185c2406715e0b60ce11f93bcdbe9020a21efa7)
+++ examples/EventDisplay.C	(revision c3c9ac56bcd38b9487ed3bdd295d5b9c0606f3e6)
@@ -8,5 +8,6 @@
                   const char* TrackingEfficiency="ChargedHadronTrackingEfficiency",
                   const char* MuonEfficiency="MuonEfficiency",
-                  const char* Calorimeters="Calorimeter") 
+                  const char* Calorimeters="Calorimeter",
+                  bool displayGeometryOnly = false) 
 {
    // load the libraries
@@ -15,16 +16,22 @@
    gSystem->Load("../libDelphesDisplay");
 
-   // create the detector representation
-   Delphes3DGeometry det3D(new TGeoManager("delphes", "Delphes geometry"), true);
-   det3D.readFile(configfile, ParticlePropagator, TrackingEfficiency, MuonEfficiency, Calorimeters);
+   if(displayGeometryOnly) {
+     // create the detector representation without transparency
+     Delphes3DGeometry det3D_geom(new TGeoManager("delphes", "Delphes geometry"), false);
+     det3D_geom.readFile(configfile, ParticlePropagator, TrackingEfficiency, MuonEfficiency, Calorimeters);
 
-   // create the application
-   DelphesEventDisplay* display = new DelphesEventDisplay(configfile, datafile, det3D);
+     // display
+     det3D_geom.getDetector()->Draw("ogl");
 
-   // another view of the geometry, in another window and without transparency
-   Delphes3DGeometry det3D_geom(new TGeoManager("delphes", "Delphes geometry"), false);
-   det3D_geom.readFile(configfile, ParticlePropagator, TrackingEfficiency, MuonEfficiency, Calorimeters);
-   new TCanvas;
-   det3D_geom.getDetector()->Draw();
+   } else {
+
+     // create the detector representation
+     Delphes3DGeometry det3D(new TGeoManager("delphes", "Delphes geometry"), true);
+     det3D.readFile(configfile, ParticlePropagator, TrackingEfficiency, MuonEfficiency, Calorimeters);
+
+     // create the application
+     DelphesEventDisplay* display = new DelphesEventDisplay(configfile, datafile, det3D);
+
+   }
 }
 
