#include <EventDisplay.hh>
Inheritance diagram for EventDisplay:
Public Member Functions | |
EventDisplay (const TGWindow *p, UInt_t w, UInt_t h) | |
EventDisplay (std::string &rootfileName, const TGWindow *p, UInt_t w, UInt_t h) | |
EventDisplay (std::string &rootfileName, std::string &xmlfileName, const TGWindow *p, UInt_t w, UInt_t h) | |
~EventDisplay () | |
Bool_t | ProcessMessage (Long_t msg, Long_t parm1, Long_t parm2) |
void | PrevEvent () |
void | NextEvent () |
void | SetEventNum () |
void | HandleMenu (int) |
void | Zoom () |
void | UnZoom () |
void | DoSlider () |
void | SetSliderRange () |
void | SliderReleased () |
void | ShowChamberClick () |
virtual Bool_t | HandleConfigureNotify (Event_t *event) |
void | processZoom (void) |
Static Public Member Functions | |
static void | zoomC1 (void) |
Private Member Functions | |
void | Display (bool updateDT) |
void | Init (UInt_t width, UInt_t height) |
void | DisplayMTEvent (bool updateDT) |
void | DisplayCaloEvent (bool updateDT) |
void | adjustSlider () |
void | fillTreeInfo (const TFile &file) |
TreeInfo_t * | getTreeInfo (UInt_t eventNum) |
bool | IsMicromegas (UInt_t chamberId) |
bool | buildDetector () |
void | OpenFile () |
void | OpenXMLFile () |
Private Attributes | |
TGMenuBar * | fMenuBar |
TGPopupMenu * | fMenuFile |
TGPopupMenu * | fMenuHelp |
TGLabel * | fLbRootFile |
TGNumberEntryField * | LbEventNum |
TGTextButton * | prevButton |
TGTextButton * | exitButton |
TGTextButton * | nextButton |
TGTextButton * | zoomup |
TGTextButton * | zoomdown |
TGCheckButton * | fChkBut |
TGCheckButton * | fShowOnlyMicromegas |
TGLayoutHints * | fLayout |
TGDoubleHSlider * | slider |
TGVerticalFrame * | mainFrame |
UInt_t | eventNum |
TFile * | file |
string | steername |
UInt_t | eventType |
TGStatusBar * | fStatusBar |
TCanvas * | c1 |
TGCanvas * | gCanvas |
TH1I * | dtHist |
TGeoMaterial * | mat |
TGeoMedium * | med |
TGeoVolume * | world |
TGeoManager * | frame |
std::map< string, TGeoVolume * > | nodes |
std::map< string, TGeoTranslation * > | trans |
std::vector< TreeInfo_t * > | treeInfos |
Detector * | detector |
bool | onlyMicromegas |
bool | hitMicromegas |
bool | drawChamber |
TGToolBar * | fToolBar |
TCanvas * | dtCan |
TGNumberEntryField * | deltaTMin |
TGNumberEntryField * | deltaTMax |
Static Private Attributes | |
static std::vector< EventDisplay * > | frames |
Definition at line 58 of file EventDisplay.hh.
EventDisplay::EventDisplay | ( | const TGWindow * | p, | |
UInt_t | w, | |||
UInt_t | h | |||
) |
Definition at line 165 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_37(), G__GuiClass_857_0_38(), and G__GuiClass_857_0_39().
00166 : TGMainFrame(p, w, h,kMainFrame | kVerticalFrame), eventNum(-1) , file(NULL), steername("") , c1(NULL) , detector(NULL) 00167 , hitMicromegas(false), onlyMicromegas(false),drawChamber(false), world(NULL), dtHist(NULL) ,dtCan(NULL), deltaTMax(NULL), deltaTMin(NULL) 00168 { 00169 this->Init(w,h); 00170 frames.push_back(this); 00171 }
EventDisplay::EventDisplay | ( | std::string & | rootfileName, | |
const TGWindow * | p, | |||
UInt_t | w, | |||
UInt_t | h | |||
) |
Definition at line 153 of file EventDisplay.cpp.
00154 : TGMainFrame(p, w, h,kMainFrame | kVerticalFrame), eventNum(-1), c1(NULL), eventType(UNDEFINED), detector(NULL), steername("") 00155 , hitMicromegas(false) , onlyMicromegas(false),drawChamber(false), world(NULL), dtHist(NULL) ,dtCan(NULL), deltaTMax(NULL), deltaTMin(NULL) 00156 { 00157 file = new TFile(rootfileName.c_str(),"READONLY"); 00158 this->Init(w,h); 00159 fillTreeInfo(*file); 00160 fStatusBar->SetText(rootfileName.c_str(),1); 00161 frames.push_back(this); 00162 }
EventDisplay::EventDisplay | ( | std::string & | rootfileName, | |
std::string & | xmlfileName, | |||
const TGWindow * | p, | |||
UInt_t | w, | |||
UInt_t | h | |||
) |
Definition at line 141 of file EventDisplay.cpp.
00142 : TGMainFrame(p, w, h,kMainFrame | kVerticalFrame), eventNum(-1), steername(xmlfileName) , c1(NULL), detector(NULL), eventType(UNDEFINED) 00143 , hitMicromegas(false), onlyMicromegas(false),drawChamber(false), world(NULL), dtHist(NULL) ,dtCan(NULL), deltaTMax(NULL), deltaTMin(NULL) 00144 { 00145 file = new TFile(rootfileName.c_str(),"READONLY"); 00146 this->Init(w,h); 00147 fillTreeInfo(*file); 00148 fStatusBar->SetText(rootfileName.c_str(),1); 00149 buildDetector(); 00150 frames.push_back(this); 00151 }
EventDisplay::~EventDisplay | ( | ) |
void EventDisplay::Display | ( | bool | updateDT | ) | [private] |
Definition at line 620 of file EventDisplay.cpp.
Referenced by NextEvent(), PrevEvent(), processZoom(), SetEventNum(), SetSliderRange(), ShowChamberClick(), and SliderReleased().
00621 { 00622 if ( file == NULL ) { return ; } 00623 if ( file->IsZombie()) { 00624 exit(-1); 00625 } 00626 00627 if ( world ) { world->ClearNodes(); } 00628 frame =new TGeoManager("Frame","mM event displayer"); 00629 mat = new TGeoMaterial("SomeMaterial",1,1,1); 00630 med = new TGeoMedium("SomeMedium",1,mat); 00631 world = frame->MakeBox("World", med, 1, 1, 1); // x, y , z size unit cm 00632 00633 00634 00635 00636 if (detector != NULL && drawChamber && steername.compare("") != 0) 00637 { 00638 ChamberMap_t chambers = detector->getChambers(); 00639 for ( ChamberMap_t::const_iterator iter = chambers.begin(); iter!=chambers.end(); iter++) 00640 { 00641 Chamber *chamber = (*iter).second; 00642 TGeoVolume *pad = frame->MakeBox("1" ,med,chamber->getYLength(),chamber->getXLength(),9600 ); 00643 unsigned int color = 17; 00644 00645 if ( chamber->getType().find("MICROROC") != string::npos ) 00646 { color = 7 ; } 00647 00648 world->AddNode(pad,1,new TGeoTranslation(chamber->getX(),chamber->getY(),chamber->getZ())); 00649 pad->SetLineColor(color); 00650 } 00651 } 00652 00653 TreeInfo_t* info = getTreeInfo(eventNum); 00654 if ( info != NULL ) 00655 { 00656 if ( info->type == CALOEVENT ) 00657 { 00658 this->DisplayCaloEvent(updateDt); 00659 } 00660 else if ( info->type == MTEVENT ) 00661 { 00662 this->DisplayMTEvent(updateDt); 00663 } 00664 } 00665 }
void EventDisplay::Init | ( | UInt_t | width, | |
UInt_t | height | |||
) | [private] |
Definition at line 173 of file EventDisplay.cpp.
Referenced by EventDisplay().
00174 { 00175 gSystem->Load("libGeom"); 00176 00177 // construct Menu Bar 00178 fMenuBar = new TGMenuBar(this, 35, 10, kHorizontalFrame); 00179 fMenuFile = new TGPopupMenu(gClient->GetRoot()); 00180 00181 fMenuFile->AddEntry(" &Open Event file...", M_FILE_EVENT_OPEN, 0, gClient->GetPicture("bld_open.png")); 00182 fMenuFile->AddEntry(" &Open XML steer file...", M_FILE_XML_OPEN,0,gClient->GetPicture("bld_open.png")); 00183 fMenuFile->AddEntry(" &Exit ...", M_FILE_EXIT); 00184 00185 fMenuFile->Connect("Activated(Int_t)", "EventDisplay", this, 00186 "HandleMenu(int)"); 00187 00188 fMenuBar->AddPopup("&File", fMenuFile, new TGLayoutHints(kLHintsTop|kLHintsLeft, 0, 4, 0, 0)); 00189 00190 this->AddFrame(fMenuBar, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 2, 2, 2, 5)); 00191 00192 // Create menubar and popup menus. 00193 00194 // layout hint items 00195 TGLayoutHints *fMenuBarLayout = new TGLayoutHints(kLHintsTop| kLHintsLeft | kLHintsExpandX, 00196 0, 0, 0, 0); 00197 TGLayoutHints *fMenuBarItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 4, 0, 0); 00198 TGLayoutHints *fMenuBarHelpLayout = new TGLayoutHints(kLHintsTop | kLHintsRight); 00199 00200 TGMenuBar *fMenuBar = new TGMenuBar(this, 1, 1, kHorizontalFrame | kRaisedFrame); 00201 00202 //---- toolbar 00203 int spacing = 12; 00204 fToolBar = new TGToolBar(this, 60, 20, kHorizontalFrame | kRaisedFrame); 00205 for (int i = 0; xpm_names[i]; i++) { 00206 TString iconname(gProgPath); 00207 iconname += "/icons/"; 00208 iconname += xpm_names[i]; 00209 tb_data[i].fPixmap = iconname.Data(); 00210 if (strlen(xpm_names[i]) == 0) { 00211 fToolBar->AddFrame(new TGVertical3DLine(fToolBar), new TGLayoutHints(kLHintsExpandY, 4, 4)); 00212 continue; 00213 } 00214 const TGPicture *pic = fClient->GetPicture(tb_data[i].fPixmap); 00215 TGPictureButton *pb = new TGPictureButton(fToolBar, pic, tb_data[i].fId); 00216 pb->SetToolTipText(tb_data[i].fTipText); 00217 tb_data[i].fButton = pb; 00218 00219 fToolBar->AddButton(this, pb, spacing); 00220 // spacing = 0; 00221 } 00222 AddFrame(fToolBar, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 0, 0, 0, 0)); 00223 fToolBar->GetButton(M_ONLY_MICROMEGAS)->SetState(kButtonDisabled); 00224 fToolBar->GetButton(M_SHOW_CHAMBER)->SetState(kButtonDisabled); 00225 fToolBar->GetButton(M_COLOR_MICROMEGAS_HIT)->SetState(kButtonDisabled); 00226 00227 00228 // main frame Management 00229 this->SetMWMHints(kMWMDecorAll, 00230 kMWMFuncAll, 00231 kMWMInputModeless); 00232 this->MapSubwindows(); 00233 00234 this->Resize(this->GetDefaultSize()); 00235 this->MapWindow(); 00236 this->Resize(width,height); 00237 00238 // Event Control 00239 // Construct event information prev and next button 00240 TGHorizontalFrame *controls = new TGHorizontalFrame(this); 00241 AddFrame(controls, new TGLayoutHints(kLHintsExpandX)); 00242 00243 TGLabel *fLbEvent = new TGLabel(controls, "Event number"); 00244 LbEventNum = new TGNumberEntryField(controls); 00245 LbEventNum->SetIntNumber(-1); 00246 00247 controls->AddFrame(fLbEvent, new TGLayoutHints(kLHintsLeft|kLHintsCenterY, 5, 2, 2, 2)); 00248 controls->AddFrame(LbEventNum, new TGLayoutHints(kLHintsLeft|kLHintsCenterY, 5, 2, 2, 2)); 00249 LbEventNum->Connect(" ReturnPressed()", "EventDisplay", this, "SetEventNum()"); 00250 00251 // DeltaT Control 00252 ULong_t ucolor; // will reflect user color changes 00253 gClient->GetColorByName("#ccccff",ucolor); 00254 00255 // horizontal frame 00256 TGVerticalFrame *dtFrame = new TGVerticalFrame(this,240,120,kVerticalFrame | kSunkenFrame | kRaisedFrame ,ucolor); 00257 this->AddFrame(dtFrame, new TGLayoutHints(kLHintsExpandX )); 00258 00259 00260 TGLabel *deltaTLabel = new TGLabel(dtFrame, "DeltaT"); 00261 deltaTLabel->SetBackgroundColor(ucolor); 00262 deltaTLabel->SetForegroundColor(kBlack); 00263 dtFrame->AddFrame(deltaTLabel, new TGLayoutHints(kLHintsCenterX)); 00264 00265 00266 TGHorizontalFrame *dtBottomFrame = new TGHorizontalFrame(dtFrame,1,1,kHorizontalFrame| kSunkenFrame ,ucolor); 00267 dtFrame->AddFrame(dtBottomFrame, new TGLayoutHints(kLHintsExpandX)); 00268 00269 slider = new TGDoubleHSlider(dtBottomFrame, 200, kScaleNo, 10, 00270 kHorizontalFrame, 00271 GetDefaultFrameBackground(), 00272 kFALSE, kFALSE); 00273 slider->SetBackgroundColor(ucolor); 00274 slider->Connect("PositionChanged()", "EventDisplay", 00275 this, "DoSlider()"); 00276 00277 slider->Connect("Released()", "EventDisplay", 00278 this, "SliderReleased()"); 00279 00280 slider->SetRange(0,1); 00281 slider->SetPosition(0,1); 00282 00283 00284 deltaTMin = new TGNumberEntryField(dtBottomFrame); 00285 deltaTMin-> SetBackgroundColor(ucolor); 00286 deltaTMin-> SetForegroundColor(kBlack); 00287 deltaTMin->SetState(true); 00288 deltaTMin->Connect(" ReturnPressed()", "EventDisplay", this, "SetSliderRange()"); 00289 00290 00291 dtBottomFrame->AddFrame(deltaTMin, new TGLayoutHints(kLHintsLeft)); 00292 dtBottomFrame->AddFrame(slider, new TGLayoutHints(kLHintsExpandX)); 00293 00294 00295 deltaTMax = new TGNumberEntryField(dtBottomFrame); 00296 deltaTMax-> SetBackgroundColor(ucolor); 00297 deltaTMax-> SetForegroundColor(kBlack); 00298 deltaTMax->Connect(" ReturnPressed()", "EventDisplay", this, "SetSliderRange()"); 00299 00300 dtBottomFrame->AddFrame(deltaTMax, new TGLayoutHints(kLHintsRight)); 00301 deltaTMax->SetState(true); 00302 00303 00304 TGLabel *fooLabel = new TGLabel(dtFrame, " "); 00305 fooLabel->SetBackgroundColor(ucolor); 00306 fooLabel->SetForegroundColor(kBlack); 00307 dtFrame->AddFrame(fooLabel, new TGLayoutHints(kLHintsCenterX)); 00308 00309 00310 00311 // EventDisplay 00312 // Display Option Frame 00313 mainFrame = new TGVerticalFrame(this,240,120,kHorizontalFrame | kSunkenFrame | kRaisedFrame ); 00314 this->AddFrame(mainFrame, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY | kSunkenFrame | kRaisedFrame)); 00315 00316 TGCompositeFrame *canvasZone = new TGCompositeFrame(mainFrame,1,1, kHorizontalFrame | kRaisedFrame); 00317 00318 00319 TGHorizontalFrame *fV1 = new TGHorizontalFrame(canvasZone, 800, 1 ,kSunkenFrame | kFixedWidth ); 00320 TGHorizontalFrame *fV2 = new TGHorizontalFrame(canvasZone, 1, 1,kSunkenFrame); 00321 00322 00323 canvasZone->AddFrame(fV1, new TGLayoutHints( kLHintsLeft | kLHintsExpandY,2,0,2,2)); 00324 00325 TGVSplitter *splitter = new TGVSplitter(canvasZone, 10); 00326 splitter->SetFrame(fV1, kTRUE); 00327 canvasZone->AddFrame(splitter, new TGLayoutHints(kLHintsLeft | kLHintsExpandY, 0, 0 ,0, 0)); 00328 canvasZone->AddFrame(fV2, new TGLayoutHints( kLHintsRight | kLHintsExpandX |kLHintsExpandY,0,2,2,2)); 00329 00330 00331 // 3D View 00332 gCanvas = new TGCanvas(fV2,1,1); 00333 TGViewPort *viewPort = gCanvas->GetViewPort(); 00334 00335 TGCompositeFrame *compositeFrame = new TGCompositeFrame(viewPort,1,1 ); 00336 00337 TRootEmbeddedCanvas *rootEmbeddedCanvas = new TRootEmbeddedCanvas(0,compositeFrame,1100,900); 00338 c1 = rootEmbeddedCanvas->GetCanvas(); 00339 00340 gCanvas->SetContainer(compositeFrame); 00341 00342 c1->SetFillColor(kBlack); 00343 compositeFrame->AddFrame(rootEmbeddedCanvas, new TGLayoutHints( kLHintsExpandX )); 00344 00345 viewPort->AddFrame(compositeFrame); 00346 fV2->AddFrame(gCanvas, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX | kLHintsExpandY,0,0,0,0)); 00347 //fV2->AddFrame(gCanvas); 00348 00349 // DT Histogram 00350 TGCompositeFrame *compositeFrameDt = new TGCompositeFrame(fV1,1,1 ); 00351 00352 TRootEmbeddedCanvas *embeddedCanvasDt = new TRootEmbeddedCanvas(0,compositeFrameDt,800,600); 00353 dtCan = embeddedCanvasDt->GetCanvas(); 00354 00355 compositeFrameDt->AddFrame(embeddedCanvasDt, new TGLayoutHints(kLHintsExpandX )); 00356 fV1->AddFrame(compositeFrameDt, new TGLayoutHints(kLHintsLeft | kLHintsBottom | kLHintsExpandX | kLHintsExpandY ,0,0,0,0)); 00357 00358 mainFrame->AddFrame(canvasZone, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY)); 00359 00360 00361 00362 // Create status bar 00363 Int_t parts[] = {25, 60,15}; 00364 fStatusBar = new TGStatusBar(this, 50, 10, kHorizontalFrame); 00365 fStatusBar->SetParts(parts, 3); 00366 this->AddFrame(fStatusBar, new TGLayoutHints(kLHintsBottom| kLHintsExpandX, 0, 0, 0, 0)); 00367 fStatusBar->SetText("Waiting to read event ...",0); 00368 00369 MapSubwindows(); 00370 SetWindowName("Micromegas LAPP Event Viewer"); 00371 SetIconName("Micromegas LAPP Event Viewer"); 00372 Layout(); 00373 MapWindow(); 00374 00375 00376 }
void EventDisplay::DisplayMTEvent | ( | bool | updateDT | ) | [private] |
Definition at line 800 of file EventDisplay.cpp.
Referenced by Display().
00801 { 00802 if ( updateDT ) 00803 { 00804 if ( dtHist != NULL ) { delete dtHist; } 00805 dtHist = new TH1I("dt", "dt", deltaTMax->GetNumber()-deltaTMin->GetNumber()+2, deltaTMin->GetNumber()-1,deltaTMax->GetNumber()+1); 00806 00807 TExec *ex = new TExec("ex","EventDisplay::zoomC1()"); 00808 dtHist->GetListOfFunctions()->Add(ex); 00809 } 00810 00811 00812 MTEvent *mtEvt = NULL; 00813 int padNumber = 0; 00814 UInt_t curEvent = 0; 00815 00816 TTree *tree = NULL; 00817 TBranch *branch= NULL; 00818 Int_t nbEvent = 0; 00819 00820 mtEvt = new MTEvent(); 00821 TreeInfo_t* info = getTreeInfo(eventNum); 00822 if ( info != NULL ) 00823 { 00824 tree = info->tree; 00825 branch= tree->GetBranch("MTEvent"); 00826 branch->SetAddress(&mtEvt); 00827 } 00828 else { return; } 00829 00830 tree->GetEntry(this->eventNum-info->min); 00831 00832 Int_t NC = mtEvt->GetNchannel(); 00833 //NC = 3000; 00834 frame->SetMaxVisNodes(NC+100); 00835 00836 UInt_t minSlider = deltaTMin->GetNumber(); 00837 UInt_t maxSlider = deltaTMax->GetNumber(); 00838 00839 00840 map<string,TGeoVolume*> pads; 00841 map<string,int> padsDigitalValue; 00842 float x,y,z; 00843 TGeoTranslation *tr = NULL; 00844 UInt_t drawHits = 0; 00845 for(int i=0;i<NC ;i++) 00846 { 00847 //if ( padNumber < 169300) 00848 { 00849 MTChannel* mtChannel=NULL; 00850 //the only known way to get the information from the channels number i 00851 mtChannel = (MTChannel*)mtEvt->GetChannels()->UncheckedAt(i); 00852 00853 UInt_t t2 = mtChannel->GetBcIdDif(); 00854 UInt_t t3 = mtChannel->GetBcIdHit(); 00855 UInt_t dt = t2 - t3; 00856 if (onlyMicromegas && !this->IsMicromegas(mtChannel->GetChamberId()) ) {continue;} 00857 if ( dt < minSlider || dt > maxSlider ) { continue; } 00858 drawHits++; 00859 00860 if ( updateDT ) dtHist->Fill(dt); 00861 float xLength = 9600 ; //micron 00862 float yLength = 9600 ; //micron 00863 float zLength = 2000; //micron 00864 // ChannelPad name 00865 string padID=""; 00866 stringstream currentpad;// (stringstream::in | stringstream::out); 00867 padNumber++; 00868 currentpad<<padNumber; 00869 padID="pad_"+currentpad.str(); 00870 00871 x=mtChannel->GetX();//*10000 ; 00872 y=mtChannel->GetY();//*10000 ; 00873 z=mtChannel->GetZ();//*10000 ; 00874 00875 ostringstream ox,oy,oz; 00876 ox << x; oy << y; oz <<z ; 00877 string key = "x[" + ox.str() + "]y[" + oy.str() + "]z[" + oz.str() +"]" ; 00878 TGeoVolume *pad = NULL; 00879 00880 int color; 00881 int colors[3] = {kBlue,kGreen,kRed}; 00882 if ( hitMicromegas && !this->IsMicromegas(mtChannel->GetChamberId())) 00883 { colors[0] = colors[1] = colors[2] = kGray; } 00884 00885 if ( pads.find(key) == pads.end()) 00886 { 00887 pad = frame->MakeBox(padID.c_str(),med,yLength/2,xLength/2,zLength/2 ); 00888 pads.insert(make_pair(key,pad)); 00889 tr = new TGeoTranslation(x,y,z); 00890 world->AddNode(pad,1,tr); 00891 //set now the color of the pad 00892 00893 // padsDigitalValue.insert(make_pair(key,colors[mtChannel->GetDigitalValue()-1])); 00894 padsDigitalValue.insert(make_pair(key,mtChannel->GetDigitalValue()-1)); 00895 00896 color = colors[mtChannel->GetDigitalValue()-1]; 00897 00898 } 00899 else { 00900 pad = pads.find(key)->second ; 00901 int oldDigitalValue = padsDigitalValue.find(key)->second; 00902 int digitalValue = 0; 00903 if ( mtChannel->GetDigitalValue() > oldDigitalValue ) 00904 { 00905 digitalValue = mtChannel->GetDigitalValue() ; 00906 } 00907 else 00908 { 00909 digitalValue = oldDigitalValue; 00910 } 00911 color = colors[digitalValue-1]; 00912 } 00913 00914 00915 Char_t strtmp[250]; 00916 sprintf(strtmp,"Hits reading : %4d, please wait...",i); 00917 fStatusBar->SetText(strtmp,0); 00918 // Update display here to not slow down too much... 00919 gSystem->ProcessEvents(); 00920 00921 00922 00923 stringstream ch; 00924 ch<<i; 00925 00926 if ( pad ) 00927 { 00928 pad->SetLineColor(color); 00929 pad->SetFillColor(color); 00930 pad->SetFillStyle(4100); 00931 } 00932 else { cout << "Pad not found[" << key << "]" << endl; return ; } 00933 } 00934 } 00935 cout << " number of pad["<< padNumber << "]" << endl; 00936 00937 string str = "Done: "; 00938 Toolbox::addIntToString(str, drawHits); 00939 str = str + " hits / " ; 00940 Toolbox::addIntToString(str, mtEvt->GetNchannel()); 00941 fStatusBar->SetText(str.c_str(),0); 00942 00943 00944 00945 00946 frame->SetTopVolume(world); 00947 00948 if ( !frame->IsClosed() ) frame->CloseGeometry(); 00949 dtCan->cd(); 00950 if ( updateDT ) dtHist->Draw(); 00951 c1->cd(); 00952 world->Draw(); 00953 if ( updateDT ) dtCan->Update(); 00954 c1->Update(); 00955 00956 delete mtEvt; 00957 }
void EventDisplay::DisplayCaloEvent | ( | bool | updateDT | ) | [private] |
Definition at line 668 of file EventDisplay.cpp.
Referenced by Display().
00669 { 00670 if ( updateDT ) 00671 { 00672 if ( dtHist != NULL ) { delete dtHist ;} 00673 dtHist = new TH1I("dt", "dt", deltaTMax->GetNumber()-deltaTMin->GetNumber()+2, deltaTMin->GetNumber()-1,deltaTMax->GetNumber()+1); 00674 TExec *ex = new TExec("ex","EventDisplay::zoomC1()"); 00675 dtHist->GetListOfFunctions()->Add(ex); 00676 } 00677 00678 CaloEvent *caloEvt = NULL; 00679 // TKey *key; 00680 int padNumber = 0; 00681 UInt_t curEvent = 0; 00682 00683 TTree *tree = NULL; 00684 TBranch *branch= NULL; 00685 Int_t nbEvent = 0; 00686 00687 caloEvt = new CaloEvent(); 00688 TreeInfo_t* info = getTreeInfo(eventNum); 00689 if ( info != NULL ) 00690 { 00691 tree = info->tree; 00692 branch= tree->GetBranch("CaloEvent"); 00693 branch->SetAddress(&caloEvt); 00694 } 00695 else { return; } 00696 00697 00698 tree->GetEntry(this->eventNum-info->min); 00699 string foo = "EventId "; 00700 Toolbox::addIntToString(foo, this->eventNum-info->min); 00701 fStatusBar->SetText(foo.c_str(),2); 00702 00703 Int_t NC=caloEvt->GetNHits(); 00704 frame->SetMaxVisNodes(NC+100); 00705 00706 float x,y,z; 00707 UInt_t drawHits = 0; 00708 for(int i=0;i<NC ;i++) 00709 { 00710 if ( padNumber < 169300) 00711 { 00712 CaloHit* caloChannel = NULL; 00713 //the only known way to get the information from the channels number i 00714 caloChannel = (CaloHit*)caloEvt->GetHits()->UncheckedAt(i); 00715 00716 00717 Int_t dt= caloChannel->GetDeltaT(); 00718 00719 bool chamberMicromegas = false; 00720 00721 00722 00723 if (onlyMicromegas && !this->IsMicromegas(caloChannel->GetLayer()) ) {continue;} 00724 if ( dt < deltaTMin->GetNumber() || dt> deltaTMax->GetNumber() ) 00725 { 00726 continue; 00727 00728 } 00729 00730 drawHits++; 00731 00732 if ( updateDT ) dtHist->Fill(dt); 00733 float xLength = 9600 ; //micron 00734 float yLength = 9600 ; //micron 00735 float zLength = 2000; //micron 00736 // ChannelPad name 00737 string padID=""; 00738 stringstream currentpad;// (stringstream::in | stringstream::out); 00739 padNumber++; 00740 currentpad<<padNumber; 00741 padID="pad_"+currentpad.str(); 00742 00743 TGeoVolume *pad = frame->MakeBox(padID.c_str(),med,yLength/2,xLength/2,zLength/2 ); 00744 x=caloChannel->GetX();//*10000 ; 00745 y=caloChannel->GetY();//*10000 ; 00746 z=caloChannel->GetZ();//*10000 ; 00747 //set now the color of the pad 00748 int color; 00749 int colors[3] = {kBlue,kGreen,kRed}; 00750 if ( hitMicromegas && !this->IsMicromegas(caloChannel->GetLayer())) 00751 { 00752 colors[0] = 31; 00753 colors[1] = 41; 00754 colors[2] = 44; } 00755 stringstream ch; 00756 ch<<i; 00757 00758 color = colors[caloChannel->GetThreshold()-1]; 00759 00760 ostringstream ox,oy,oz; 00761 ox << x; oy << y; oz <<z ; 00762 { 00763 world->AddNode(pad,1,new TGeoTranslation(x,y,z)); 00764 } 00765 pad->SetLineColor(color); 00766 pad->SetFillColor(color); 00767 pad->SetFillStyle(4100); 00768 Char_t strtmp[250]; 00769 sprintf(strtmp,"Hits reading : %4d, please wait...",i); 00770 // Update display here to not slow down too much... 00771 gSystem->ProcessEvents(); 00772 fStatusBar->SetText(strtmp,0); 00773 00774 } 00775 else 00776 { 00777 break; 00778 } 00779 } 00780 string str = "Done: "; 00781 Toolbox::addIntToString(str, drawHits); 00782 str = str + " hits / " ; 00783 Toolbox::addIntToString(str, caloEvt->GetNHits()); 00784 fStatusBar->SetText(str.c_str(),0); 00785 00786 00787 frame->SetTopVolume(world); 00788 00789 frame->CloseGeometry(); 00790 dtCan->cd(); 00791 if ( updateDT ) dtHist->Draw(); 00792 c1->cd(); 00793 world->Draw(); 00794 c1->Update(); 00795 if ( updateDT && dtCan ) dtCan->Update(); 00796 delete caloEvt; 00797 00798 }
void EventDisplay::adjustSlider | ( | ) | [private] |
Definition at line 465 of file EventDisplay.cpp.
Referenced by NextEvent(), PrevEvent(), and SetEventNum().
00466 { 00467 UInt_t min = 0; 00468 UInt_t max = 0xffffffff; 00469 slider->SetRange(min, max); 00470 deltaTMin->SetNumber(min); 00471 00472 deltaTMax->SetNumber(max); 00473 slider->SetPosition(min,max); 00474 TTree *tree = NULL; 00475 TBranch *branch= NULL; 00476 Int_t nbEvent = 0; 00477 00478 00479 TreeInfo_t* info = getTreeInfo(eventNum); 00480 00481 if ( info->type == CALOEVENT ) 00482 { 00483 CaloEvent* caloEvt = new CaloEvent(); 00484 tree = info->tree; 00485 branch= tree->GetBranch("CaloEvent"); 00486 branch->SetAddress(&caloEvt); 00487 tree->GetEntry(this->eventNum-info->min); 00488 00489 Int_t NC=caloEvt->GetNHits(); 00490 UInt_t min = 0xffffffff; 00491 UInt_t max = 0; 00492 00493 for(int i=0;i<NC ;i++) 00494 { 00495 CaloHit* caloChannel = (CaloHit*)caloEvt->GetHits()->UncheckedAt(i); 00496 UInt_t dt= caloChannel->GetDeltaT(); 00497 if ( dt < min ) { min = dt; } 00498 if ( dt > max ) { max = dt; } 00499 } 00500 00501 slider->SetRange(min, max); 00502 deltaTMin->SetNumber(min); 00503 00504 deltaTMax->SetNumber(max); 00505 slider->SetPosition(min-1,max+1); 00506 delete caloEvt; 00507 } 00508 else 00509 { 00510 MTEvent* mtEvt = new MTEvent(); 00511 tree = info->tree; 00512 branch= tree->GetBranch("MTEvent"); 00513 branch->SetAddress(&mtEvt); 00514 tree->GetEntry(this->eventNum-info->min); 00515 00516 Int_t NC=mtEvt->GetNchannel(); 00517 UInt_t min = 0xffffffff; 00518 UInt_t max = 0; 00519 00520 for(int i=0;i<NC ;i++) 00521 { 00522 MTChannel* caloChannel = (MTChannel*)mtEvt->GetChannels()->UncheckedAt(i); 00523 UInt_t t2 = caloChannel->GetBcIdDif(); 00524 UInt_t t3 = caloChannel->GetBcIdHit(); 00525 UInt_t dt = t2 - t3; 00526 00527 00528 if ( dt < min ) { min = dt; } 00529 if ( dt > max ) { max = dt; } 00530 } 00531 00532 slider->SetRange(min, max); 00533 deltaTMin->SetNumber(min); 00534 deltaTMax->SetNumber(max); 00535 slider->SetPosition(min,max); 00536 00537 00538 delete mtEvt; 00539 } 00540 }
void EventDisplay::fillTreeInfo | ( | const TFile & | file | ) | [private] |
Definition at line 980 of file EventDisplay.cpp.
Referenced by EventDisplay(), and OpenFile().
00981 { 00982 treeInfos.clear(); 00983 00984 TIter nextkey(file.GetListOfKeys()); 00985 TKey *key; 00986 UInt_t nbEvent = 0; 00987 while (key = (TKey*)nextkey()) 00988 { 00989 TreeInfo_t *foo = new TreeInfo_t(); 00990 00991 TTree *tree = (TTree*)key->ReadObj(); 00992 foo->min=nbEvent; 00993 foo->max=foo->min+tree->GetEntries()-1; 00994 nbEvent = foo->max+1; 00995 foo->tree = tree; 00996 if ( tree->FindBranch("CaloEvent")!= NULL) 00997 { 00998 foo->type = CALOEVENT; 00999 } 01000 else if ( tree->FindBranch("MTEvent")!= NULL) 01001 { 01002 foo->type = MTEVENT; 01003 } 01004 01005 treeInfos.push_back(foo); 01006 } 01007 01008 }
TreeInfo_t * EventDisplay::getTreeInfo | ( | UInt_t | eventNum | ) | [private] |
Definition at line 1011 of file EventDisplay.cpp.
Referenced by adjustSlider(), Display(), DisplayCaloEvent(), and DisplayMTEvent().
01012 { 01013 01014 01015 std::vector<TreeInfo_t*>::const_iterator iter; 01016 01017 for( iter = treeInfos.begin(); iter != treeInfos.end(); iter++) 01018 { 01019 TreeInfo_t* info= *iter; 01020 if ( eventNum >= info->min && eventNum <= info->max ) 01021 { 01022 return info; 01023 } 01024 } 01025 return NULL; 01026 }
bool EventDisplay::IsMicromegas | ( | UInt_t | chamberId | ) | [private] |
Definition at line 1029 of file EventDisplay.cpp.
01030 { 01031 Chamber *chamber = NULL; 01032 if ( detector != NULL ) 01033 { 01034 chamber = &(detector->getChamberById(chamberId)); 01035 if ( chamber != NULL ) 01036 { 01037 if ( chamber->getType().find("MICROROC") != string::npos ) 01038 { 01039 return true; 01040 } 01041 } 01042 } 01043 return false; 01044 }
bool EventDisplay::buildDetector | ( | ) | [private] |
Definition at line 1048 of file EventDisplay.cpp.
Referenced by EventDisplay(), and OpenXMLFile().
01049 { 01050 if (steername.compare("") !=0 ) 01051 { 01052 XMLTool xml; 01053 SteerDesc steerDesc; 01054 xml.parse(steerDesc, steername); // parse steer file and fill steerDesc 01055 detector = new Detector(); 01056 01057 UInt_t nbChamber= detector->build(steerDesc); 01058 01059 if ( nbChamber == 0 || nbChamber!= steerDesc.chambers.size() ) 01060 { 01061 fToolBar->GetButton(M_ONLY_MICROMEGAS)->SetState(kButtonDisabled); 01062 fToolBar->GetButton(M_SHOW_CHAMBER)->SetState(kButtonDisabled); 01063 fToolBar->GetButton(M_COLOR_MICROMEGAS_HIT)->SetState(kButtonDisabled); 01064 return false; 01065 } 01066 fToolBar->GetButton(M_ONLY_MICROMEGAS)->SetState(kButtonUp); 01067 fToolBar->GetButton(M_SHOW_CHAMBER)->SetState(kButtonUp); 01068 fToolBar->GetButton(M_COLOR_MICROMEGAS_HIT)->SetState(kButtonUp); 01069 } 01070 01071 return true; 01072 }
void EventDisplay::OpenFile | ( | ) | [private] |
Definition at line 1076 of file EventDisplay.cpp.
Referenced by HandleMenu(), and ProcessMessage().
01077 { 01078 TRootHelpDialog *hd; 01079 static TString dir("."); 01080 TGFileInfo fi; 01081 fi.fFileTypes = dnd_types; 01082 fi.fIniDir = StrDup(dir); 01083 01084 fi.fFileTypes = filetypes; 01085 new TGFileDialog(gClient->GetRoot(), this, kFDOpen, &fi); 01086 if ( fi.fFilename != NULL ) 01087 { 01088 string *full; 01089 full = new string(fi.fFilename); 01090 if ( file != NULL ) 01091 { 01092 std::vector<TreeInfo_t*>::const_iterator iter; 01093 for( iter = treeInfos.begin(); iter != treeInfos.end(); iter++) 01094 { 01095 TreeInfo_t* info= *iter; 01096 { 01097 delete info; 01098 } 01099 } 01100 treeInfos.clear(); 01101 delete dtHist; 01102 dtHist = NULL; 01103 file->Close(); 01104 delete file; 01105 eventNum = 0; 01106 LbEventNum->SetIntNumber(eventNum); 01107 } 01108 01109 01110 file = new TFile(full->c_str(),"READONLY"); 01111 fStatusBar->SetText(full->c_str(),1); 01112 fillTreeInfo(*file); 01113 } 01114 01115 }
void EventDisplay::OpenXMLFile | ( | ) | [private] |
Definition at line 1118 of file EventDisplay.cpp.
Referenced by HandleMenu(), and ProcessMessage().
01119 { 01120 TRootHelpDialog *hd; 01121 static TString dir("."); 01122 TGFileInfo fi; 01123 fi.fFileTypes = dnd_types; 01124 fi.fIniDir = StrDup(dir); 01125 fi.fFileTypes = filetypes; 01126 new TGFileDialog(gClient->GetRoot(), this, kFDOpen, &fi); 01127 if ( fi.fFilename != NULL ) 01128 { 01129 steername = fi.fFilename; 01130 buildDetector(); 01131 } 01132 }
Bool_t EventDisplay::ProcessMessage | ( | Long_t | msg, | |
Long_t | parm1, | |||
Long_t | parm2 | |||
) |
Definition at line 546 of file EventDisplay.cpp.
00548 { 00549 Window_t wdummy; 00550 int ax, ay; 00551 TRootHelpDialog *hd; 00552 //TGListTreeItem *item; 00553 TGFileInfo fi; 00554 Char_t strtmp[250]; 00555 00556 // Process events generated by the buttons in the frame. 00557 switch (GET_MSG(msg)) { 00558 00559 case kC_COMMAND: 00560 00561 switch (GET_SUBMSG(msg)) { 00562 case kCM_BUTTON: 00563 switch (parm1) { 00564 00565 case M_FILE_EVENT_OPEN: 00566 OpenFile(); 00567 break; 00568 case M_FILE_XML_OPEN: 00569 OpenXMLFile(); 00570 break; 00571 case M_EVENT_PREV: 00572 PrevEvent(); 00573 break; 00574 case M_EVENT_NEXT: 00575 NextEvent(); 00576 break; 00577 case M_EVENT_SELECT: 00578 SetEventNum(); 00579 break; 00580 case M_ZOOM_PLUS: 00581 Zoom(); 00582 break; 00583 case M_ZOOM_MOINS: 00584 UnZoom(); 00585 break; 00586 case M_SHOW_CHAMBER: 00587 drawChamber = !drawChamber; 00588 fToolBar->GetButton(M_SHOW_CHAMBER)->SetDown(drawChamber); 00589 ShowChamberClick(); 00590 break; 00591 case M_COLOR_MICROMEGAS_HIT: 00592 hitMicromegas = !hitMicromegas; 00593 fToolBar->GetButton(M_COLOR_MICROMEGAS_HIT)->SetDown(hitMicromegas); 00594 ShowChamberClick(); 00595 break; 00596 case M_ONLY_MICROMEGAS: 00597 onlyMicromegas = !onlyMicromegas; 00598 fToolBar->GetButton(M_ONLY_MICROMEGAS)->SetDown(onlyMicromegas); 00599 ShowChamberClick(); 00600 break; 00601 case M_FILE_EXIT: 00602 CloseWindow(); 00603 break; 00604 } 00605 break; 00606 00607 00608 default: 00609 break; 00610 } 00611 default: 00612 break; 00613 } 00614 return kTRUE; 00615 }
void EventDisplay::PrevEvent | ( | ) |
Definition at line 443 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_41(), and ProcessMessage().
00444 { 00445 if ( file == NULL ) { return ; } 00446 if ( eventNum == 0 ) eventNum = 1; 00447 eventNum--; 00448 00449 LbEventNum->SetIntNumber(eventNum); 00450 adjustSlider(); 00451 this->Display(true); 00452 }
void EventDisplay::NextEvent | ( | ) |
Definition at line 455 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_42(), and ProcessMessage().
00456 { 00457 if ( file == NULL ) { return ; } 00458 eventNum++; 00459 LbEventNum->SetIntNumber(eventNum); 00460 adjustSlider(); 00461 this->Display(true); 00462 }
void EventDisplay::SetEventNum | ( | ) |
Definition at line 424 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_43(), and ProcessMessage().
00425 { 00426 if ( file == NULL ) { return ; } 00427 if ( LbEventNum->GetIntNumber() >= 0) 00428 { 00429 eventNum = LbEventNum->GetIntNumber(); 00430 adjustSlider(); 00431 this->Display(true); 00432 } 00433 }
void EventDisplay::HandleMenu | ( | int | ) |
Definition at line 960 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_44().
00961 { 00962 // Handle menu events. 00963 00964 switch (menu_id) { 00965 case M_FILE_EXIT: 00966 // close the window and quit application 00967 CloseWindow(); 00968 gApplication->Terminate(0); 00969 break; 00970 case M_FILE_EVENT_OPEN: 00971 OpenFile(); 00972 break; 00973 case M_FILE_XML_OPEN: 00974 OpenXMLFile(); 00975 break; 00976 } 00977 }
void EventDisplay::Zoom | ( | ) |
Definition at line 415 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_45(), and ProcessMessage().
00416 { 00417 c1->cd(); 00418 c1->GetView()->ZoomView(0, 1.25); 00419 c1->Modified(); 00420 c1->Update(); 00421 00422 }
void EventDisplay::UnZoom | ( | ) |
Definition at line 405 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_46(), and ProcessMessage().
00406 { 00407 00408 c1->cd(); 00409 c1->GetView()->UnzoomView(0, 1.25); 00410 c1->Modified(); 00411 c1->Update(); 00412 00413 }
void EventDisplay::DoSlider | ( | ) |
Definition at line 390 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_47().
00391 { 00392 deltaTMin->SetNumber(slider->GetMinPosition()); 00393 00394 deltaTMax->SetNumber(slider->GetMaxPosition()); 00395 }
void EventDisplay::SetSliderRange | ( | ) |
Definition at line 397 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_48().
00398 { 00399 if ( deltaTMin->GetIntNumber() < 0 ) { deltaTMin->SetNumber(0 ); } 00400 else if ( deltaTMax->GetIntNumber() < 0 ) { deltaTMax->SetNumber(0 ); } 00401 slider->SetPosition(deltaTMin->GetIntNumber(),deltaTMax->GetIntNumber()); 00402 this->Display(true); 00403 }
void EventDisplay::SliderReleased | ( | ) |
Definition at line 385 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_49().
00386 { 00387 this->Display(true); 00388 }
void EventDisplay::ShowChamberClick | ( | ) |
Definition at line 436 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_50(), and ProcessMessage().
00437 { 00438 gSystem->ProcessEvents(); 00439 this->Display(true); 00440 }
Bool_t EventDisplay::HandleConfigureNotify | ( | Event_t * | event | ) | [virtual] |
Definition at line 1135 of file EventDisplay.cpp.
01136 { 01137 // This event is generated when the frame is resized. 01138 01139 TGFrame* f = (TGFrame*)this; 01140 if ((event->fWidth != f->GetWidth()) || (event->fHeight != f->GetHeight())) { 01141 UInt_t w = event->fWidth; 01142 UInt_t h = event->fHeight; 01143 f->Resize(w,h); 01144 f->Layout(); 01145 } 01146 return kTRUE; 01147 }
void EventDisplay::processZoom | ( | void | ) |
Definition at line 1151 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_52().
01152 { 01153 01154 if ( deltaTMin->GetNumber() != dtCan->GetUxmin() || deltaTMax->GetNumber() != dtCan->GetUxmax() ) 01155 { 01156 01157 if ( dtCan->GetUxmin() < 0 ) 01158 { 01159 deltaTMin->SetNumber(0); 01160 } 01161 else 01162 { 01163 deltaTMin->SetNumber(dtCan->GetUxmin()); 01164 } 01165 01166 deltaTMax->SetNumber(dtCan->GetUxmax()); 01167 this->Display(false); 01168 } 01169 }
void EventDisplay::zoomC1 | ( | void | ) | [static] |
Definition at line 1172 of file EventDisplay.cpp.
Referenced by G__GuiClass_857_0_53(), and G__setup_memfuncEventDisplay().
01173 { 01174 01175 for ( std::vector<EventDisplay*>::const_iterator iter = frames.begin() ; iter != frames.end(); iter++) 01176 { 01177 01178 (*iter)->processZoom(); 01179 } 01180 }
TGMenuBar* EventDisplay::fMenuBar [private] |
TGPopupMenu* EventDisplay::fMenuFile [private] |
TGPopupMenu* EventDisplay::fMenuHelp [private] |
Definition at line 64 of file EventDisplay.hh.
TGLabel* EventDisplay::fLbRootFile [private] |
Definition at line 65 of file EventDisplay.hh.
TGNumberEntryField* EventDisplay::LbEventNum [private] |
Definition at line 66 of file EventDisplay.hh.
Referenced by Init(), NextEvent(), OpenFile(), PrevEvent(), and SetEventNum().
TGTextButton* EventDisplay::prevButton [private] |
Definition at line 68 of file EventDisplay.hh.
TGTextButton * EventDisplay::exitButton [private] |
Definition at line 68 of file EventDisplay.hh.
TGTextButton * EventDisplay::nextButton [private] |
Definition at line 68 of file EventDisplay.hh.
TGTextButton * EventDisplay::zoomup [private] |
Definition at line 68 of file EventDisplay.hh.
TGTextButton * EventDisplay::zoomdown [private] |
Definition at line 68 of file EventDisplay.hh.
TGCheckButton* EventDisplay::fChkBut [private] |
Definition at line 69 of file EventDisplay.hh.
TGCheckButton* EventDisplay::fShowOnlyMicromegas [private] |
Definition at line 70 of file EventDisplay.hh.
TGLayoutHints* EventDisplay::fLayout [private] |
Definition at line 71 of file EventDisplay.hh.
TGDoubleHSlider* EventDisplay::slider [private] |
Definition at line 79 of file EventDisplay.hh.
Referenced by adjustSlider(), DoSlider(), Init(), and SetSliderRange().
TGVerticalFrame* EventDisplay::mainFrame [private] |
UInt_t EventDisplay::eventNum [private] |
Definition at line 83 of file EventDisplay.hh.
Referenced by adjustSlider(), Display(), DisplayCaloEvent(), DisplayMTEvent(), NextEvent(), OpenFile(), PrevEvent(), and SetEventNum().
TFile* EventDisplay::file [private] |
Definition at line 84 of file EventDisplay.hh.
Referenced by Display(), EventDisplay(), NextEvent(), OpenFile(), PrevEvent(), and SetEventNum().
string EventDisplay::steername [private] |
Definition at line 85 of file EventDisplay.hh.
Referenced by buildDetector(), Display(), and OpenXMLFile().
UInt_t EventDisplay::eventType [private] |
Definition at line 87 of file EventDisplay.hh.
TGStatusBar* EventDisplay::fStatusBar [private] |
Definition at line 89 of file EventDisplay.hh.
Referenced by DisplayCaloEvent(), DisplayMTEvent(), EventDisplay(), Init(), and OpenFile().
TCanvas* EventDisplay::c1 [private] |
Definition at line 90 of file EventDisplay.hh.
Referenced by DisplayCaloEvent(), DisplayMTEvent(), Init(), UnZoom(), and Zoom().
TGCanvas* EventDisplay::gCanvas [private] |
TH1I* EventDisplay::dtHist [private] |
Definition at line 92 of file EventDisplay.hh.
Referenced by DisplayCaloEvent(), DisplayMTEvent(), and OpenFile().
TGeoMaterial* EventDisplay::mat [private] |
TGeoMedium* EventDisplay::med [private] |
Definition at line 94 of file EventDisplay.hh.
Referenced by Display(), DisplayCaloEvent(), and DisplayMTEvent().
TGeoVolume* EventDisplay::world [private] |
Definition at line 95 of file EventDisplay.hh.
Referenced by Display(), DisplayCaloEvent(), and DisplayMTEvent().
TGeoManager* EventDisplay::frame [private] |
Definition at line 96 of file EventDisplay.hh.
Referenced by Display(), DisplayCaloEvent(), and DisplayMTEvent().
std::map<string, TGeoVolume*> EventDisplay::nodes [private] |
Definition at line 97 of file EventDisplay.hh.
std::map<string, TGeoTranslation*> EventDisplay::trans [private] |
Definition at line 98 of file EventDisplay.hh.
std::vector<TreeInfo_t*> EventDisplay::treeInfos [private] |
Definition at line 100 of file EventDisplay.hh.
Referenced by fillTreeInfo(), getTreeInfo(), and OpenFile().
Detector* EventDisplay::detector [private] |
Definition at line 102 of file EventDisplay.hh.
Referenced by buildDetector(), Display(), and IsMicromegas().
bool EventDisplay::onlyMicromegas [private] |
Definition at line 104 of file EventDisplay.hh.
Referenced by DisplayCaloEvent(), DisplayMTEvent(), and ProcessMessage().
bool EventDisplay::hitMicromegas [private] |
Definition at line 105 of file EventDisplay.hh.
Referenced by DisplayCaloEvent(), DisplayMTEvent(), and ProcessMessage().
bool EventDisplay::drawChamber [private] |
TGToolBar* EventDisplay::fToolBar [private] |
Definition at line 107 of file EventDisplay.hh.
Referenced by buildDetector(), Init(), and ProcessMessage().
TCanvas* EventDisplay::dtCan [private] |
Definition at line 109 of file EventDisplay.hh.
Referenced by DisplayCaloEvent(), DisplayMTEvent(), Init(), and processZoom().
TGNumberEntryField* EventDisplay::deltaTMin [private] |
Definition at line 110 of file EventDisplay.hh.
Referenced by adjustSlider(), DisplayCaloEvent(), DisplayMTEvent(), DoSlider(), Init(), processZoom(), and SetSliderRange().
TGNumberEntryField* EventDisplay::deltaTMax [private] |
Definition at line 111 of file EventDisplay.hh.
Referenced by adjustSlider(), DisplayCaloEvent(), DisplayMTEvent(), DoSlider(), Init(), processZoom(), and SetSliderRange().
std::vector<EventDisplay*> EventDisplay::frames [static, private] |