Changes in / [f6b6ee7:fcdb8bc] in git
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
display/Delphes3DGeometry.cc
rf6b6ee7 rfcdb8bc 42 42 using namespace std; 43 43 44 Delphes3DGeometry::Delphes3DGeometry(TGeoManager *geom , bool transp) {44 Delphes3DGeometry::Delphes3DGeometry(TGeoManager *geom) { 45 45 46 46 //--- the geometry manager … … 51 51 TGeoMaterial *matVacuum = new TGeoMaterial("Vacuum", 0,0,0); 52 52 TGeoMaterial *matAl = new TGeoMaterial("Al", 26.98,13,2.7); // placeholder 53 if(transp) { 54 matVacuum->SetTransparency(85); 55 matAl->SetTransparency(85); 56 } 53 matVacuum->SetTransparency(85); 54 matAl->SetTransparency(85); 57 55 58 56 //--- define some media -
display/Delphes3DGeometry.h
rf6b6ee7 rfcdb8bc 35 35 class Delphes3DGeometry { 36 36 public: 37 Delphes3DGeometry(TGeoManager *geom = NULL , bool transp = false);37 Delphes3DGeometry(TGeoManager *geom = NULL); 38 38 ~Delphes3DGeometry() {} 39 39 -
display/DelphesEventDisplay.cc
rf6b6ee7 rfcdb8bc 156 156 TEveCaloLego *lego = new TEveCaloLego(container); 157 157 lego->InitMainTrans(); 158 // lego->RefMainTrans().SetScale(TMath::TwoPi(), TMath::TwoPi(), TMath::Pi()); 159 lego->RefMainTrans().SetScale(100, 100, TMath::Pi()); 158 lego->RefMainTrans().SetScale(TMath::TwoPi(), TMath::TwoPi(), TMath::Pi()); 160 159 lego->SetAutoRebin(kFALSE); 161 160 lego->Set2DMode(TEveCaloLego::kValSizeOutline); -
display/DelphesEventDisplay.h
rf6b6ee7 rfcdb8bc 111 111 } 112 112 113 void DisplayProgress(Int_t p) { 113 void DisplayProgress(Int_t p) { //TODO replace by a progress bar 114 114 fStatusBar_->SetText(Form("Processing... %d %%",p), 1); 115 115 gSystem->ProcessEvents(); -
display/DelphesPlotSummary.cc
rf6b6ee7 rfcdb8bc 49 49 histograms.push_back(h); 50 50 histograms_[(*data)->GetName()] = histograms; 51 // the event histograms52 TH1F* h1 = (TH1F*)histograms[0]->Clone(); h1->Reset(); h1->SetLineColor(kBlue);53 TH1F* h2 = (TH1F*)histograms[1]->Clone(); h2->Reset(); h2->SetLineColor(kBlue);54 TH1F* h3 = (TH1F*)histograms[2]->Clone(); h3->Reset(); h3->SetLineColor(kBlue);55 std::vector<TH1F*> hv;56 hv.push_back(h1);57 hv.push_back(h2);58 hv.push_back(h3);59 eventProfiles_[(*data)->GetName()] = hv;60 // the event markers61 TMarker *m;62 std::vector<TMarker*> mv;63 m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);64 mv.push_back(m);65 m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);66 mv.push_back(m);67 m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);68 mv.push_back(m);69 m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);70 mv.push_back(m);71 m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);72 mv.push_back(m);73 m = new TMarker(0,0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3);74 mv.push_back(m);75 eventMarkers_[(*data)->GetName()] = mv;76 51 } 77 52 } … … 120 95 eventProfiles[i]->Draw("same"); 121 96 } else { 122 eventMarkers[i-3]->Draw("same"); 97 if(eventMarkers.size()>(unsigned int)(i-3)) { 98 eventMarkers[i-3]->Draw("same"); 99 } 123 100 } 124 101 } … … 127 104 } 128 105 129 void DelphesPlotSummary::FillEvent() { 130 // clear event histograms and markers 106 void DelphesPlotSummary::FillEvent() { //TODO make it faster... try to reuse objects and simply change the values 107 // clear previous markers 108 for(std::map< TString, std::vector<TMarker*> >::iterator mv = eventMarkers_.begin(); mv!=eventMarkers_.end();++mv) { 109 for(std::vector<TMarker*>::iterator m = mv->second.begin(); m<mv->second.end();++m) { 110 delete *m; 111 } 112 } 113 eventMarkers_.clear(); 131 114 for(std::map< TString, std::vector<TH1F*> >::iterator hv = eventProfiles_.begin(); hv!=eventProfiles_.end();++hv) { 132 115 for(std::vector<TH1F*>::iterator h = hv->second.begin(); h<hv->second.end();++h) { 133 (*h)->Reset();116 delete *h; 134 117 } 135 118 } 136 for(std::map< TString, std::vector<TMarker*> >::iterator mv = eventMarkers_.begin(); mv!=eventMarkers_.end();++mv) { 137 for(std::vector<TMarker*>::iterator m = mv->second.begin(); m<mv->second.end();++m) { 138 (*m)->SetMarkerSize(0); 139 } 140 } 119 eventProfiles_.clear(); 141 120 // loop over the elements and fill markers with event data 121 TMarker *m; 142 122 for(std::vector<DelphesBranchBase*>::iterator element = elements_->begin();element<elements_->end();++element) { 123 std::vector<TMarker*> mv; 143 124 std::vector<TLorentzVector> vectors = (*element)->GetVectors(); 144 125 std::sort(vectors.begin(), vectors.end(), vecsorter); 145 std::vector<TH1F*> hv = eventProfiles_[(*element)->GetName()]; 146 TH1F* h1 = hv[0]; h1->Reset(); 147 TH1F* h2 = hv[1]; h1->Reset(); 148 TH1F* h3 = hv[2]; h1->Reset(); 149 std::vector<TMarker*> mv = eventMarkers_[(*element)->GetName()]; 126 std::vector<TH1F*> histograms = histograms_[(*element)->GetName()]; 127 TH1F* h1 = (TH1F*)histograms[0]->Clone(); h1->Reset(); h1->SetLineColor(kBlue); 128 TH1F* h2 = (TH1F*)histograms[1]->Clone(); h2->Reset(); h2->SetLineColor(kBlue); 129 TH1F* h3 = (TH1F*)histograms[2]->Clone(); h3->Reset(); h3->SetLineColor(kBlue); 150 130 for(std::vector<TLorentzVector>::iterator it=vectors.begin(); it<vectors.end();++it) { 151 131 h1->Fill(it->Pt()); … … 153 133 h3->Fill(it->Phi()); 154 134 if(it==vectors.begin()) { 155 mv[0]->SetX(it->Pt()); mv[0]->SetMarkerSize(3); 156 mv[1]->SetX(it->Eta()); mv[1]->SetMarkerSize(3); 157 mv[2]->SetX(it->Phi()); mv[2]->SetMarkerSize(3); 135 m = new TMarker(it->Pt(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3); 136 mv.push_back(m); 137 m = new TMarker(it->Eta(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3); 138 mv.push_back(m); 139 m = new TMarker(it->Phi(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3); 140 mv.push_back(m); 158 141 } 159 142 if(it==vectors.begin()+1) { 160 mv[3]->SetX(it->Pt()); mv[3]->SetMarkerSize(3); 161 mv[4]->SetX(it->Eta()); mv[4]->SetMarkerSize(3); 162 mv[5]->SetX(it->Phi()); mv[5]->SetMarkerSize(3); 143 m = new TMarker(it->Pt(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3); 144 mv.push_back(m); 145 m = new TMarker(it->Eta(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3); 146 mv.push_back(m); 147 m = new TMarker(it->Phi(),0,29); m->SetMarkerColor(kBlue); m->SetMarkerSize(3); 148 mv.push_back(m); 163 149 } 164 150 } 151 std::vector<TH1F*> hv; 152 hv.push_back(h1); 153 hv.push_back(h2); 154 hv.push_back(h3); 155 eventProfiles_[(*element)->GetName()] = hv; 156 eventMarkers_[(*element)->GetName()] = mv; 165 157 } 166 158 } -
examples/EventDisplay.C
rf6b6ee7 rfcdb8bc 1 /* Example:2 * root -l 'EventDisplay.C("delphes_card_CMS.tcl","../delphes_output.root")'3 * root -l 'EventDisplay.C("delphes_card_FCC_basic.tcl","../delphes_output.root","ParticlePropagator","ChargedHadronTrackingEfficiency","MuonTrackingEfficiency","Ecal,Hcal")'4 */5 1 6 void EventDisplay(const char* configfile = "delphes_card_CMS.tcl", const char* datafile = "delphes_output.root", 7 const char* ParticlePropagator="ParticlePropagator", 8 const char* TrackingEfficiency="ChargedHadronTrackingEfficiency", 9 const char* MuonEfficiency="MuonEfficiency", 10 const char* Calorimeters="Calorimeter", 11 bool displayGeometryOnly = false) 2 void evdisplay(const char* configfile = "delphes_card_CMS.tcl", const char* datafile = "delphes_output.root", 3 const char* ParticlePropagator="ParticlePropagator", 4 const char* TrackingEfficiency="ChargedHadronTrackingEfficiency", 5 const char* MuonEfficiency="MuonEfficiency", 6 const char* Calorimeters="Calorimeter") 12 7 { 13 8 // load the libraries … … 16 11 gSystem->Load("../libDelphesDisplay"); 17 12 18 if(displayGeometryOnly) { 19 // create the detector representation without transparency 20 Delphes3DGeometry det3D_geom(new TGeoManager("delphes", "Delphes geometry"), false); 21 det3D_geom.readFile(configfile, ParticlePropagator, TrackingEfficiency, MuonEfficiency, Calorimeters); 13 // create the detector representation 14 Delphes3DGeometry det3D(new TGeoManager("delphes", "Delphes geometry")); 15 det3D.readFile(configfile, ParticlePropagator, TrackingEfficiency, MuonEfficiency, Calorimeters); 22 16 23 // display24 det3D_geom.getDetector()->Draw("ogl");17 // create the application items 18 DelphesEventDisplay* display = new DelphesEventDisplay(configfile, datafile, det3D); 25 19 26 } else { 27 28 // create the detector representation 29 Delphes3DGeometry det3D(new TGeoManager("delphes", "Delphes geometry"), true); 30 det3D.readFile(configfile, ParticlePropagator, TrackingEfficiency, MuonEfficiency, Calorimeters); 31 32 // create the application 33 DelphesEventDisplay* display = new DelphesEventDisplay(configfile, datafile, det3D); 34 35 } 20 /* 21 // EClipType not exported to CINT (see TGLUtil.h): 22 // 0 - no clip, 1 - clip plane, 2 - clip box 23 TGLViewer *v = gEve->GetDefaultGLViewer(); 24 //Double_t plane[4] = { 0., 1., 0., 0. }; 25 //v->GetClipSet()->SetClipState(1,plane); 26 //v->GetClipSet()->SetClipType(1); 27 //v->ColorSet().Background().SetColor(kMagenta+4); 28 //v->SetGuideState(TGLUtil::kAxesEdge, kTRUE, kFALSE, 0); 29 v->RefreshPadEditor(v); 30 v->CurrentCamera().RotateRad(-1.2, 0.5); 31 v->DoDraw(); 32 */ 36 33 } 37 34
Note:
See TracChangeset
for help on using the changeset viewer.