void eventDisplay(TString inFile = "sim.root", TString parFile="par.root", TString digiFile = "hit.root", TString outid="n") { // Load libraries gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C"); rootlogon(); gSystem->Load("libEve"); gSystem->Load("libEventDisplay"); // ----- Reconstruction run ------------------------------------------- FairRunAna *fRun= new FairRunAna(); fRun->SetInputFile(inFile); fRun->AddFriend(digiFile); fRun->SetOutputFile("tst.root"); FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); FairParRootFileIo* parInput1 = new FairParRootFileIo(); parInput1->open(parFile); rtdb->setFirstInput(parInput1); FairEventManager *fMan= new FairEventManager(); FairMCTracks *Track = new FairMCTracks ("Monte-Carlo Tracks"); FairMCPointDraw *PndBarPoint = new FairMCPointDraw ("DrcBarPoint",kViolet, kFullSquare); FairMCPointDraw *PndEVPoint = new FairMCPointDraw ("DrcEVPoint",kViolet, kFullSquare); FairMCPointDraw *PndPdPoint = new FairMCPointDraw ("DrcPDPoint",kBlue, kFullSquare); PndDrcAccuDigiPixelDraw *PndAccuDigi = new PndDrcAccuDigiPixelDraw ("DrcPDHit",digiFile,7.); //7. //3 fMan->AddTask(Track); fMan->AddTask(PndBarPoint); fMan->AddTask(PndEVPoint); fMan->AddTask(PndPdPoint); fMan->AddTask(PndAccuDigi); fMan->Init(1,4); TFile* fi = new TFile("vgeo.root","RECREATE"); TGeoVolume *topvol = gGeoManager->GetVolume("cave"); gGeoManager->SetTopVolume(topvol); gGeoManager->CloseGeometry(); topvol->Write(); FairEventManager* fm = FairEventManager::Instance(); fm->NextEvent(); TEveTrackList *eltrack = (TEveTrackList*) fm->FindChild("Cherenkov"); int b=0; Double_t x,y,z; Bool_t storPYtracks = false; if(storPYtracks){ TEveElement::List_t ll = eltrack->RefChildren(); ofstream file; file.open ("trackst.py"); for ( TEveElement::List_i ii = ll.begin(); ii != ll.end();++ii){ TEveTrack * tr = (TEveTrack*)(*ii); Int_t size = tr->Size(); if(size<10) continue; TString blendtrack = "listOfVectors = ["; for(Int_t i=0; iGetPoint(i,x,y,z); blendtrack += Form("Vector((%f,%f,%f)),",x,y,z); } blendtrack = blendtrack.Strip(TString::kTrailing,',') + "] \n"; blendtrack += Form("MakePolyLine(\"Track_%d\", \"TrackN_%d\", listOfVectors) \n",i,i); file<< blendtrack; } file.close(); } // //fm->DisableListElements(); // TEveElement *el = fm->FindChild("DrcPDPoint"); // el->Destroy(); // el = fm->FindChild("DrcEVPoint"); // el->Destroy(); TGLViewer *v = gEve->GetDefaultGLViewer(); // v->SetClearColor(0); v->SetIgnoreSizesOnUpdate(kTRUE); v->UpdateScene(kTRUE); TGLSAViewer *sav = (TGLSAViewer *)v; sav->SetDrawCameraCenter(false); // TGLCamera & cam=(TGLOrthoCamera &)v->CurrentCamera(); // Double_t c[] = {46.8, 8.9, -120.}; // Double_t c[] = {10, 125, -125}; // cam.Configure(16.5,1,c,-0.3,1.8); // cam.SetExternalCenter(false); TGLCamera & cam=(TGLOrthoCamera &)v->CurrentCamera(); // Double_t c[] = {180, 0, -200}; // for hits // cam.Configure(13,1,c,-0.2,1.3); // for hits // Double_t c[] = {90, 8.9, -150.}; // cam.Configure(25,1,c,-0.4,0.9); // for geom // cam.SetExternalCenter(false); v->DoDraw(); fm->EnableListElements(); gEve->DoRedraw3D(); v->DoDraw(); v->SavePicture("geometry.png"); // v->SavePicture("anim_"+outid+".png"); }