00001 #include "TCanvas.h"
00002 #include "TNode.h"
00003 #include "TTUBE.h"
00004 #include "TTUBS.h"
00005 #include "TBRIK.h"
00006 #include "TFile.h"
00007 #include "TPolyMarker3D.h"
00008 #include "TPolyLine3D.h"
00009 #include "TControlBar.h"
00010 #include <iostream.h>
00011
00012 Int_t openFile(Char_t *name);
00013 void drawControlPanel(Int_t tracks, Int_t found, Int_t unused);
00014 void showNode();
00015 void deleteNode();
00016 void deleteAxis();
00017 void showFoundCluster(Bool_t clusters);
00018 void showUnusedCluster(Bool_t clusters);
00019 void showTracks(Bool_t tracks);
00020 void createDependencies();
00021 void toggleFoundClusterVisibility();
00022 void toggleUnusedClusterVisibility();
00023 void toggleTrackVisibility();
00024 void toggleAxisVisibility();
00025 void toggleFrameVisibility();
00026 void toggleDeadAreaVisibility();
00027 void togglePadVisibility();
00028 void detectorOn();
00029 void detectorOff();
00030 void measurementsOn();
00031 void measurementsOff();
00032 void setFrameVisibility();
00033 void setPadVisibility();
00034 void setDeadAreaVisibility();
00035 void setDefaults();
00036 void defineDefaults();
00037 void toggleFrameDensity();
00038 void setFrameDensity();
00039 void clear();
00040 void show(Int_t s, Bool_t erase = kTRUE);
00041 void showAll();
00042 void showEast();
00043 void showWest();
00044 void showBoth();
00045 void showAxis();
00046 void generateAxis(Float_t arrowSize);
00047 void closeX3d();
00048 void quit();
00049
00050 TBRIK *origin;
00051 TTUBE *ftpc1_out, *ftpc2_out, *ftpc1_in, *ftpc2_in;
00052 TTUBS *dead_seg1, *dead_seg2, *dead_seg3, *dead_seg4, *dead_seg5, *dead_seg6;
00053 TTUBS *padrow1, *padrow2, *padrow3, *padrow4, *padrow5, *padrow6;
00054 TNode *node0, *node1, *node2, *node01_out, *node01_in, *node02_out, *node02_in, *node1_out, *node1_in, *node2_out, *node2_in;
00055 TNode *node01_seg1, *node01_seg2, *node01_seg3, *node01_seg4, *node01_seg5, *node01_seg6;
00056 TNode *node02_seg1, *node02_seg2, *node02_seg3, *node02_seg4, *node02_seg5, *node02_seg6;
00057 TNode *node1_seg1, *node1_seg2, *node1_seg3, *node1_seg4, *node1_seg5, *node1_seg6;
00058 TNode *node2_seg1, *node2_seg2, *node2_seg3, *node2_seg4, *node2_seg5, *node2_seg6;
00059 TNode *node01_pad01, *node01_pad11, *node01_pad21, *node01_pad31, *node01_pad41, *node01_pad51, *node01_pad61, *node01_pad71, *node01_pad81, *node01_pad91;
00060 TNode *node01_pad02, *node01_pad12, *node01_pad22, *node01_pad32, *node01_pad42, *node01_pad52, *node01_pad62, *node01_pad72, *node01_pad82, *node01_pad92;
00061 TNode *node01_pad03, *node01_pad13, *node01_pad23, *node01_pad33, *node01_pad43, *node01_pad53, *node01_pad63, *node01_pad73, *node01_pad83, *node01_pad93;
00062 TNode *node01_pad04, *node01_pad14, *node01_pad24, *node01_pad34, *node01_pad44, *node01_pad54, *node01_pad64, *node01_pad74, *node01_pad84, *node01_pad94;
00063 TNode *node01_pad05, *node01_pad15, *node01_pad25, *node01_pad35, *node01_pad45, *node01_pad55, *node01_pad65, *node01_pad75, *node01_pad85, *node01_pad95;
00064 TNode *node01_pad06, *node01_pad16, *node01_pad26, *node01_pad36, *node01_pad46, *node01_pad56, *node01_pad66, *node01_pad76, *node01_pad86, *node01_pad96;
00065 TNode *node02_pad01, *node02_pad11, *node02_pad21, *node02_pad31, *node02_pad41, *node02_pad51, *node02_pad61, *node02_pad71, *node02_pad81, *node02_pad91;
00066 TNode *node02_pad02, *node02_pad12, *node02_pad22, *node02_pad32, *node02_pad42, *node02_pad52, *node02_pad62, *node02_pad72, *node02_pad82, *node02_pad92;
00067 TNode *node02_pad03, *node02_pad13, *node02_pad23, *node02_pad33, *node02_pad43, *node02_pad53, *node02_pad63, *node02_pad73, *node02_pad83, *node02_pad93;
00068 TNode *node02_pad04, *node02_pad14, *node02_pad24, *node02_pad34, *node02_pad44, *node02_pad54, *node02_pad64, *node02_pad74, *node02_pad84, *node02_pad94;
00069 TNode *node02_pad05, *node02_pad15, *node02_pad25, *node02_pad35, *node02_pad45, *node02_pad55, *node02_pad65, *node02_pad75, *node02_pad85, *node02_pad95;
00070 TNode *node02_pad06, *node02_pad16, *node02_pad26, *node02_pad36, *node02_pad46, *node02_pad56, *node02_pad66, *node02_pad76, *node02_pad86, *node02_pad96;
00071 TNode *node1_pad01, *node1_pad11, *node1_pad21, *node1_pad31, *node1_pad41, *node1_pad51, *node1_pad61, *node1_pad71, *node1_pad81, *node1_pad91;
00072 TNode *node1_pad02, *node1_pad12, *node1_pad22, *node1_pad32, *node1_pad42, *node1_pad52, *node1_pad62, *node1_pad72, *node1_pad82, *node1_pad92;
00073 TNode *node1_pad03, *node1_pad13, *node1_pad23, *node1_pad33, *node1_pad43, *node1_pad53, *node1_pad63, *node1_pad73, *node1_pad83, *node1_pad93;
00074 TNode *node1_pad04, *node1_pad14, *node1_pad24, *node1_pad34, *node1_pad44, *node1_pad54, *node1_pad64, *node1_pad74, *node1_pad84, *node1_pad94;
00075 TNode *node1_pad05, *node1_pad15, *node1_pad25, *node1_pad35, *node1_pad45, *node1_pad55, *node1_pad65, *node1_pad75, *node1_pad85, *node1_pad95;
00076 TNode *node1_pad06, *node1_pad16, *node1_pad26, *node1_pad36, *node1_pad46, *node1_pad56, *node1_pad66, *node1_pad76, *node1_pad86, *node1_pad96;
00077 TNode *node2_pad01, *node2_pad11, *node2_pad21, *node2_pad31, *node2_pad41, *node2_pad51, *node2_pad61, *node2_pad71, *node2_pad81, *node2_pad91;
00078 TNode *node2_pad02, *node2_pad12, *node2_pad22, *node2_pad32, *node2_pad42, *node2_pad52, *node2_pad62, *node2_pad72, *node2_pad82, *node2_pad92;
00079 TNode *node2_pad03, *node2_pad13, *node2_pad23, *node2_pad33, *node2_pad43, *node2_pad53, *node2_pad63, *node2_pad73, *node2_pad83, *node2_pad93;
00080 TNode *node2_pad04, *node2_pad14, *node2_pad24, *node2_pad34, *node2_pad44, *node2_pad54, *node2_pad64, *node2_pad74, *node2_pad84, *node2_pad94;
00081 TNode *node2_pad05, *node2_pad15, *node2_pad25, *node2_pad35, *node2_pad45, *node2_pad55, *node2_pad65, *node2_pad75, *node2_pad85, *node2_pad95;
00082 TNode *node2_pad06, *node2_pad16, *node2_pad26, *node2_pad36, *node2_pad46, *node2_pad56, *node2_pad66, *node2_pad76, *node2_pad86, *node2_pad96;
00083
00084 Int_t side, def_side = 1;
00085 Bool_t axis, def_axis = kTRUE;
00086 Bool_t pads, def_pads = kFALSE;
00087 Bool_t frame_on, def_frame_on = kTRUE;
00088 Bool_t dead_area, def_dead_area = kFALSE;
00089 Bool_t divisions, def_divisions = kFALSE;
00090 Int_t divi = 50;
00091 Int_t divipad = 16;
00092 Bool_t foundclusters, def_foundclusters = kTRUE;
00093 Bool_t unusedclusters, def_unusedclusters = kTRUE;
00094 Bool_t tracks, def_tracks = kTRUE;
00095
00096 TControlBar *bar;
00097 TCanvas *canvas;
00098 TFile *file;
00099 Int_t tr, fo, un;
00100 TPolyLine3D *lx[3], *ly[3], *lz[3];
00101
00102
00103 Int_t FtpcDisplay(Char_t *filename = 0)
00104 {
00105
00106
00107
00108 if (openFile(filename) == 0) {
00109
00110
00111 canvas = new TCanvas("canvas", "3D views of FTPC", 300, 100);
00112 canvas->Divide(3,1);
00113
00114
00115 origin = new TBRIK("origin", "origin", "void", 0.1, 0.1, 0.1);
00116
00117
00118 node0 = new TNode("node0", "node0", "origin");
00119 node1 = new TNode("node1", "node1", "origin");
00120 node2 = new TNode("node2", "node2", "origin");
00121
00122 generateAxis(70.);
00123
00124 setDefaults();
00125 showAll();
00126 drawControlPanel(tr, fo, un);
00127
00128 return 0;
00129 }
00130
00131 else {
00132 return -1;
00133 }
00134
00135 return 0;
00136 }
00137
00138 void setDefaults() {
00139
00140
00141 axis = def_axis;
00142
00143 frame_on = def_frame_on;
00144 dead_area = def_dead_area;
00145 pads = def_pads;
00146 divisions = def_divisions;
00147
00148 tracks = def_tracks;
00149 unusedclusters = def_unusedclusters;
00150 foundclusters = def_foundclusters;
00151
00152 side = def_side;
00153 }
00154
00155 void defineDefaults() {
00156
00157
00158 def_axis = axis;
00159
00160 def_frame_on = frame_on;
00161 def_dead_area = dead_area;
00162 def_pads = pads;
00163 def_divisions = divisions;
00164
00165 def_tracks = tracks;
00166 def_unusedclusters = unusedclusters;
00167 def_foundclusters = foundclusters;
00168
00169 def_side = side;
00170 }
00171
00172 Int_t openFile(Char_t *name) {
00173
00174
00175 if (!name) {
00176 file = new TFile("ftpc_display.root", "READ");
00177
00178 if (!file->IsOpen()) {
00179 cout << "Sorry, file (ftpc_display.root) not found!" << endl;
00180 return -1;
00181 }
00182 }
00183
00184 else {
00185 file = new TFile(name, "READ");
00186
00187 if (!file->IsOpen()) {
00188 cout << "Sorry, file (" << name << ") not found!" << endl;
00189 return -1;
00190 }
00191 }
00192
00193 return 0;
00194 }
00195
00196 void showNode() {
00197
00198
00199 canvas->cd(1);
00200 node0->cd();
00201 node0->Draw("same");
00202 canvas->cd(2);
00203 node2->cd();
00204 node2->Draw("same");
00205 canvas->cd(3);
00206 node1->cd();
00207 node1->Draw("same");
00208 }
00209
00210 void showAxis() {
00211
00212
00213 Int_t s;
00214
00215 if (axis) {
00216
00217 for (s = 0; s < 3; s++) {
00218 canvas->cd(s+1);
00219 lx[s]->Draw("same");
00220 ly[s]->Draw("same");
00221 lz[s]->Draw("same");
00222 }
00223 }
00224 }
00225
00226 void showTracks(Bool_t tracks) {
00227
00228
00229 if (tracks) {
00230 TPolyLine3D *l;
00231 Int_t l_count = 1;
00232 Char_t name[20];
00233 sprintf(name, "TPolyLine3D;%d", l_count);
00234
00235 while ((l = (TPolyLine3D *)file->Get(name))) {
00236 Float_t *coord = l->GetP();
00237
00238 if (coord[2] > 0.) {
00239 canvas->cd(3);
00240 }
00241
00242 else {
00243 canvas->cd(2);
00244 }
00245
00246 l->Draw("same");
00247 canvas->cd(1);
00248 l->Draw("same");
00249
00250 sprintf(name, "TPolyLine3D;%d", ++l_count);
00251 }
00252
00253 tr = l_count - 1;
00254 }
00255 }
00256
00257 void showFoundCluster(Bool_t clusters) {
00258
00259
00260 if (clusters) {
00261 TPolyMarker3D *p;
00262
00263 p = (TPolyMarker3D *)file->Get("TPolyMarker3D;2");
00264
00265 if (p->Size() > 1) {
00266 canvas->cd(3);
00267 p->Draw("same");
00268 }
00269
00270 p = (TPolyMarker3D *)file->Get("TPolyMarker3D;3");
00271
00272 if (p->Size() > 1) {
00273 canvas->cd(2);
00274 p->Draw("same");
00275 }
00276
00277 p = (TPolyMarker3D *)file->Get("TPolyMarker3D;1");
00278
00279 if (p->Size() > 1) {
00280 canvas->cd(1);
00281 p->Draw("same");
00282 }
00283
00284 fo = p->Size();
00285 }
00286 }
00287
00288 void showUnusedCluster(Bool_t clusters) {
00289
00290
00291 if (clusters) {
00292 TPolyMarker3D *p;
00293
00294 p = (TPolyMarker3D *)file->Get("TPolyMarker3D;5");
00295
00296 if (p->Size() > 1) {
00297 canvas->cd(3);
00298 p->Draw("same");
00299 }
00300
00301 p = (TPolyMarker3D *)file->Get("TPolyMarker3D;6");
00302
00303 if (p->Size() > 1) {
00304 canvas->cd(2);
00305 p->Draw("same");
00306 }
00307
00308 p = (TPolyMarker3D *)file->Get("TPolyMarker3D;4");
00309
00310 if (p->Size() > 1) {
00311 canvas->cd(1);
00312 p->Draw("same");
00313 }
00314
00315 un = p->Size();
00316 }
00317 }
00318
00319 void deleteAxis() {
00320
00321
00322 for (Int_t i = 0; i < 3; i++) {
00323 delete lx[i];
00324 delete ly[i];
00325 delete lz[i];
00326 }
00327 }
00328
00329 void toggleAxisVisibility() {
00330
00331
00332 axis = !axis;
00333 clear();
00334 showAll();
00335 }
00336
00337 void toggleFoundClusterVisibility() {
00338
00339
00340 foundclusters = !foundclusters;
00341 clear();
00342 showAll();
00343 }
00344
00345 void toggleUnusedClusterVisibility() {
00346
00347
00348 unusedclusters = !unusedclusters;
00349 clear();
00350 showAll();
00351 }
00352
00353 void toggleTrackVisibility() {
00354
00355
00356 tracks = !tracks;
00357 clear();
00358 showAll();
00359 }
00360
00361 void detectorOn() {
00362
00363
00364 if (!frame_on) {
00365 frame_on = kTRUE;
00366
00367 }
00368
00369 if (!pads) {
00370 pads = kTRUE;
00371
00372 }
00373
00374 if (!dead_area) {
00375 dead_area = kTRUE;
00376
00377 }
00378
00379 clear();
00380 showAll();
00381 }
00382
00383 void detectorOff() {
00384
00385
00386 if (frame_on) {
00387 frame_on = kFALSE;
00388
00389 }
00390
00391 if (pads) {
00392 pads = kFALSE;
00393
00394 }
00395
00396 if (dead_area) {
00397 dead_area = kFALSE;
00398
00399 }
00400
00401 clear();
00402 showAll();
00403 }
00404
00405 void measurementsOn() {
00406
00407
00408 if (!tracks) tracks = kTRUE;
00409 if (!unusedclusters) unusedclusters = kTRUE;
00410 if (!foundclusters) foundclusters = kTRUE;
00411
00412 clear();
00413 showAll();
00414 }
00415
00416 void measurementsOff() {
00417
00418
00419 if (tracks) tracks = kFALSE;
00420 if (unusedclusters) unusedclusters = kFALSE;
00421 if (foundclusters) foundclusters = kFALSE;
00422
00423 clear();
00424 showAll();
00425 }
00426
00427 void showAll() {
00428
00429
00430 createDependencies();
00431 setFrameDensity();
00432 setFrameVisibility();
00433 setDeadAreaVisibility();
00434 setPadVisibility();
00435 showNode();
00436 showTracks(tracks);
00437 showFoundCluster(foundclusters);
00438 showUnusedCluster(unusedclusters);
00439 showAxis();
00440 canvas->Update();
00441 show(side, kFALSE);
00442 }
00443
00444 void clear() {
00445
00446
00447 closeX3d();
00448 canvas->Clear();
00449 deleteNode();
00450 canvas->Divide(3,1);
00451 }
00452
00453 void toggleFrameVisibility() {
00454
00455
00456 frame_on = !frame_on;
00457 setFrameVisibility();
00458 show(side);
00459 }
00460
00461 void toggleDeadAreaVisibility() {
00462
00463
00464 dead_area = !dead_area;
00465 setDeadAreaVisibility();
00466 show(side);
00467 }
00468
00469 void togglePadVisibility() {
00470
00471
00472 pads = !pads;
00473 setPadVisibility();
00474 show(side);
00475 }
00476
00477 void setFrameVisibility() {
00478
00479
00480 ftpc1_out->SetVisibility(frame_on);
00481 ftpc2_out->SetVisibility(frame_on);
00482 ftpc1_in->SetVisibility(frame_on);
00483 ftpc2_in->SetVisibility(frame_on);
00484 }
00485
00486 void setDeadAreaVisibility() {
00487
00488
00489 dead_seg1->SetVisibility(dead_area);
00490 dead_seg2->SetVisibility(dead_area);
00491 dead_seg3->SetVisibility(dead_area);
00492 dead_seg4->SetVisibility(dead_area);
00493 dead_seg5->SetVisibility(dead_area);
00494 dead_seg6->SetVisibility(dead_area);
00495 }
00496
00497 void setPadVisibility() {
00498
00499
00500 padrow1->SetVisibility(pads);
00501 padrow2->SetVisibility(pads);
00502 padrow3->SetVisibility(pads);
00503 padrow4->SetVisibility(pads);
00504 padrow5->SetVisibility(pads);
00505 padrow6->SetVisibility(pads);
00506 }
00507
00508 void toggleFrameDensity() {
00509
00510
00511 if (divisions) {
00512 divisions = !divisions;
00513 divi = 50;
00514 divipad = 16;
00515 }
00516
00517 else {
00518 divisions = !divisions;
00519 divi = 250;
00520 divipad = 160;
00521 }
00522
00523 setFrameDensity();
00524 show(side);
00525 }
00526
00527 void setFrameDensity() {
00528
00529
00530 ftpc1_out->SetNumberOfDivisions(divi);
00531 ftpc2_out->SetNumberOfDivisions(divi);
00532 ftpc1_in->SetNumberOfDivisions(divi);
00533 ftpc2_in->SetNumberOfDivisions(divi);
00534
00535 dead_seg1->SetNumberOfDivisions(1);
00536 dead_seg2->SetNumberOfDivisions(1);
00537 dead_seg3->SetNumberOfDivisions(1);
00538 dead_seg4->SetNumberOfDivisions(1);
00539 dead_seg5->SetNumberOfDivisions(1);
00540 dead_seg6->SetNumberOfDivisions(1);
00541
00542 padrow1->SetNumberOfDivisions(divipad);
00543 padrow2->SetNumberOfDivisions(divipad);
00544 padrow3->SetNumberOfDivisions(divipad);
00545 padrow4->SetNumberOfDivisions(divipad);
00546 padrow5->SetNumberOfDivisions(divipad);
00547 padrow6->SetNumberOfDivisions(divipad);
00548 }
00549
00550 void show(Int_t s, Bool_t erase) {
00551
00552
00553 if (erase) {
00554 closeX3d();
00555 }
00556
00557 canvas->cd(s);
00558 gPad->x3d();
00559 side = s;
00560 }
00561
00562 void showEast() {
00563
00564
00565 if (side != 2) {
00566 show(2);
00567 }
00568 }
00569
00570 void showWest() {
00571
00572
00573 if (side != 3) {
00574 show(3);
00575 }
00576 }
00577
00578 void showBoth() {
00579
00580
00581 if (side != 1) {
00582 show(1);
00583 }
00584 }
00585
00586 void closeX3d() {
00587
00588
00589 gROOT->ProcessLine("R__x3d->CloseWindow()");
00590 }
00591
00592 void quit() {
00593
00594
00595 gROOT->ProcessLine(".q");
00596 }
00597
00598 void close() {
00599
00600
00601 closeX3d();
00602 canvas->Clear();
00603 deleteNode();
00604 deleteAxis();
00605
00606 file->Close();
00607 delete file;
00608 delete bar;
00609 delete canvas;
00610 }
00611
00612 void drawControlPanel(Int_t tracks, Int_t found, Int_t unused) {
00613
00614
00615 Char_t n1[40];
00616 Char_t n2[40];
00617 Char_t n3[40];
00618
00619 sprintf(n1, "tracks (%d) [green]", tr);
00620 sprintf(n2, "clusters on tracks (%d) [red]", fo);
00621 sprintf(n3, "unused clusters (%d) [yellow]", un);
00622
00623 bar = new TControlBar("vertical", "3D view control bar");
00624
00625 bar->AddButton("show both FTPCs", "showBoth();", "3D view of both FTPCs");
00626 bar->AddButton("show FTPC east", "showEast();", "3D view of FTPC east");
00627 bar->AddButton("show FTPC west", "showWest();", "3D view FTPC of west");
00628 bar->AddButton("ALL MEASUREMENTS ON", "measurementsOn();", "switchs all clusters and tracks on");
00629 bar->AddButton("ALL MEASUREMENTS OFF", "measurementsOff();", "switchs all clusters and tracks off");
00630 bar->AddButton(n1, "toggleTrackVisibility();", "switchs tracks on/off");
00631 bar->AddButton(n2, "toggleFoundClusterVisibility();", "switchs found clusters on/off");
00632 bar->AddButton(n3, "toggleUnusedClusterVisibility();", "switchs unused clusters on/off");
00633 bar->AddButton("DETECTOR ON", "detectorOn();", "switchs complete detector on");
00634 bar->AddButton("DETECTOR OFF", "detectorOff();", "switchs complete detector off");
00635 bar->AddButton("frame [blue] visibility", "toggleFrameVisibility();", "switchs frames on/off");
00636 bar->AddButton("pad [yellow] visibility", "togglePadVisibility();", "switchs pads on/off");
00637 bar->AddButton("dead segments [red] visibility", "toggleDeadAreaVisibility();", "switchs dead segments on/off");
00638 bar->AddButton("line density","toggleFrameDensity();", "switchs frame grid density");
00639 bar->AddButton("axis (x,y,z) = (yellow, green, red)", "toggleAxisVisibility();", "switchs axis visibility");
00640 bar->AddButton("BACK TO DEFAULT SETTINGS", "setDefaults(); clear(); showAll();", "resets all changes");
00641 bar->AddButton("set default settings", "defineDefaults();", "defines current settings as default");
00642 bar->AddButton("close x3d display", "close();", "closes x3d window and control panel");
00643 bar->AddButton("quit ROOT", "quit();", "quits ROOT");
00644
00645 bar->Show();
00646 }
00647
00648 void generateAxis(Float_t arrowSize) {
00650
00651
00652
00653
00654
00655
00657
00658
00659
00660
00661
00662
00663
00664
00665
00666 const Float_t arrowWidthFactor = 0.25;
00667
00668 Float_t origin[3] = {0,0,0};
00669 Float_t x = 0;
00670 Float_t y = 0;
00671 Float_t z = 0;
00672 Int_t indx = 0;
00673
00674
00675 const Float_t arrowHeadLegth = 0.2*arrowSize;
00676 const Float_t arrWidth = arrowWidthFactor*arrowHeadLegth;
00677
00678
00679 for (Int_t ii = 0; ii < 3; ii++) {
00680 indx = 0;
00681
00682 lx[ii] = new TPolyLine3D(5,"L");
00683 x = origin[0];
00684 y = origin[1];
00685 z = origin[2];
00686 lx[ii]->SetNextPoint(x,y,z);
00687 x += arrowSize;
00688 lx[ii]->SetNextPoint(x,y,z);
00689
00690 x -= arrowHeadLegth;
00691 y += arrWidth;
00692 lx[ii]->SetNextPoint(x,y,z);
00693 x = origin[indx] + arrowSize;
00694 y = origin[1];
00695 lx[ii]->SetNextPoint(x,y,z);
00696 x -= arrowHeadLegth;
00697 y -= arrWidth;
00698 lx[ii]->SetNextPoint(x,y,z);
00699
00700 lx[ii]->SetLineColor(kYellow);
00701
00702
00703 indx++;
00704 ly[ii] = new TPolyLine3D(5,"L");
00705 x = origin[0];
00706 y = origin[1];
00707 z = origin[2];
00708 ly[ii]->SetNextPoint(x,y,z);
00709 y = origin[indx] + arrowSize;
00710 ly[ii]->SetNextPoint(x,y,z);
00711
00712 y -= arrowHeadLegth;
00713 x += arrWidth;
00714 ly[ii]->SetNextPoint(x,y,z);
00715 x = origin[0];
00716 y = origin[indx] + arrowSize;
00717 ly[ii]->SetNextPoint(x,y,z);
00718 y -= arrowHeadLegth;
00719 x -= arrWidth;
00720 ly[ii]->SetNextPoint(x,y,z);
00721
00722 ly[ii]->SetLineColor(kGreen);
00723
00724
00725 indx++;
00726 lz[ii] = new TPolyLine3D(5,"L");
00727 x = origin[0];
00728 y = origin[1];
00729 z = origin[2];
00730 lz[ii]->SetNextPoint(x,y,z);
00731 z += arrowSize;
00732 lz[ii]->SetNextPoint(x,y,z);
00733
00734 z -= arrowHeadLegth;
00735 x += arrWidth;
00736 lz[ii]->SetNextPoint(x,y,z);
00737 x = origin[0];
00738 z = origin[indx] + arrowSize;
00739 lz[ii]->SetNextPoint(x,y,z);
00740 z -= arrowHeadLegth;
00741 x -= arrWidth;
00742 lz[ii]->SetNextPoint(x,y,z);
00743 lz[ii]->SetLineColor(kRed);
00744 }
00745 }
00746
00747 void createDependencies() {
00748
00749
00750 Float_t inner_radius = 7.73;
00751 Float_t outer_radius = 30.05;
00752 Float_t padlength = 2.;
00753 Float_t z_first = 162.75 - 7.5;
00754 Float_t z_last = 256.45 + 7.5;
00755 Float_t z[10] = {162.75, 171.25, 184.05, 192.55, 205.35, 213.85, 226.65, 235.15, 247.95, 256.45};
00756
00757
00758
00759 Float_t dead_angle = outer_radius/8./TMath::Pi()*1.6;
00760 Float_t used_angle = 30.-dead_angle;
00761 Float_t angle = 30.;
00762
00763 dead_seg1 = new TTUBS("dead_seg1", "dead_seg1", "void", inner_radius, outer_radius, (z[9]-z[0]+padlength)/2., -dead_angle+angle, dead_angle+angle);
00764 padrow1 = new TTUBS("padrow1", "padrow1", "void", outer_radius, outer_radius, padlength, -used_angle+angle - 30., used_angle+angle - 30.);
00765 angle += 60.;
00766 dead_seg2 = new TTUBS("dead_seg2", "dead_seg2", "void", inner_radius, outer_radius, (z[9]-z[0]+padlength)/2., -dead_angle+angle, dead_angle+angle);
00767 padrow2 = new TTUBS("padrow2", "padrow2", "void", outer_radius, outer_radius, padlength, -used_angle+angle - 30., used_angle+angle - 30.);
00768 angle += 60.;
00769 dead_seg3 = new TTUBS("dead_seg3", "dead_seg3", "void", inner_radius, outer_radius, (z[9]-z[0]+padlength)/2., -dead_angle+angle, dead_angle+angle);
00770 padrow3 = new TTUBS("padrow3", "padrow3", "void", outer_radius, outer_radius, padlength, -used_angle+angle - 30., used_angle+angle - 30.);
00771 angle += 60.;
00772 dead_seg4 = new TTUBS("dead_seg4", "dead_seg4", "void", inner_radius, outer_radius, (z[9]-z[0]+padlength)/2., -dead_angle+angle, dead_angle+angle);
00773 padrow4 = new TTUBS("padrow4", "padrow4", "void", outer_radius, outer_radius, padlength, -used_angle+angle - 30., used_angle+angle - 30.);
00774 angle += 60.;
00775 dead_seg5 = new TTUBS("dead_seg5", "dead_seg5", "void", inner_radius, outer_radius, (z[9]-z[0]+padlength)/2., -dead_angle+angle, dead_angle+angle);
00776 padrow5 = new TTUBS("padrow5", "padrow5", "void", outer_radius, outer_radius, padlength, -used_angle+angle - 30., used_angle+angle - 30.);
00777 angle += 60.;
00778 dead_seg6 = new TTUBS("dead_seg6", "dead_seg6", "void", inner_radius, outer_radius, (z[9]-z[0]+padlength)/2., -dead_angle+angle, dead_angle+angle);
00779 padrow6 = new TTUBS("padrow6", "padrow6", "void", outer_radius, outer_radius, padlength, -used_angle+angle - 30., used_angle+angle - 30.);
00780 angle += 60.;
00781
00782
00783 ftpc1_out = new TTUBE("ftpc1_out", "Ftpc + (out)", "void", outer_radius, outer_radius, (z_last-z_first)/2., 1);
00784 ftpc1_in = new TTUBE("ftpc1_in", "Ftpc + (in)", "void", inner_radius, inner_radius, (z_last-z_first)/2., 1);
00785 ftpc2_out = new TTUBE("ftpc2_out", "Ftpc - (out)", "void", outer_radius, outer_radius, (z_last-z_first)/2., 1);
00786 ftpc2_in = new TTUBE("ftpc2_in", "Ftpc - (in)", "void", inner_radius, inner_radius, (z_last-z_first)/2., 1);
00787
00788
00789 origin->SetLineColor(1);
00790 ftpc1_out->SetLineColor(4);
00791 ftpc1_in->SetLineColor(4);
00792 ftpc2_out->SetLineColor(4);
00793 ftpc2_in->SetLineColor(4);
00794
00795 dead_seg1->SetLineColor(kRed);
00796 dead_seg2->SetLineColor(kRed);
00797 dead_seg3->SetLineColor(kRed);
00798 dead_seg4->SetLineColor(kRed);
00799 dead_seg5->SetLineColor(kRed);
00800 dead_seg6->SetLineColor(kRed);
00801
00802 padrow1->SetLineColor(kYellow);
00803 padrow2->SetLineColor(kYellow);
00804 padrow3->SetLineColor(kYellow);
00805 padrow4->SetLineColor(kYellow);
00806 padrow5->SetLineColor(kYellow);
00807 padrow6->SetLineColor(kYellow);
00808
00809
00810 canvas->cd(1);
00811 node0->cd();
00812 node01_out = new TNode("node01_out", "node01_out", "ftpc1_out", 0, 0, z_first+(z_last-z_first)/2.);
00813 node01_in = new TNode("node01_in", "node01_in", "ftpc1_in", 0, 0, z_first+(z_last-z_first)/2.);
00814 node02_out = new TNode("node02_out", "node02_out", "ftpc2_out", 0, 0, -z_first-(z_last-z_first)/2.);
00815 node02_in = new TNode("node02_in", "node02_in", "ftpc2_in", 0, 0, -z_first-(z_last-z_first)/2.);
00816
00817 node01_seg1 = new TNode("node01_seg1", "node01_seg1", "dead_seg1", 0., 0., z_first+(z_last-z_first)/2.);
00818 node01_seg2 = new TNode("node01_seg2", "node01_seg2", "dead_seg2", 0., 0., z_first+(z_last-z_first)/2.);
00819 node01_seg3 = new TNode("node01_seg3", "node01_seg3", "dead_seg3", 0., 0., z_first+(z_last-z_first)/2.);
00820 node01_seg4 = new TNode("node01_seg4", "node01_seg4", "dead_seg4", 0., 0., z_first+(z_last-z_first)/2.);
00821 node01_seg5 = new TNode("node01_seg5", "node01_seg5", "dead_seg5", 0., 0., z_first+(z_last-z_first)/2.);
00822 node01_seg6 = new TNode("node01_seg6", "node01_seg6", "dead_seg6", 0., 0., z_first+(z_last-z_first)/2.);
00823 node02_seg1 = new TNode("node02_seg1", "node02_seg1", "dead_seg1", 0., 0., -z_first-(z_last-z_first)/2.);
00824 node02_seg2 = new TNode("node02_seg2", "node02_seg2", "dead_seg2", 0., 0., -z_first-(z_last-z_first)/2.);
00825 node02_seg3 = new TNode("node02_seg3", "node02_seg3", "dead_seg3", 0., 0., -z_first-(z_last-z_first)/2.);
00826 node02_seg4 = new TNode("node02_seg4", "node02_seg4", "dead_seg4", 0., 0., -z_first-(z_last-z_first)/2.);
00827 node02_seg5 = new TNode("node02_seg5", "node02_seg5", "dead_seg5", 0., 0., -z_first-(z_last-z_first)/2.);
00828 node02_seg6 = new TNode("node02_seg6", "node02_seg6", "dead_seg6", 0., 0., -z_first-(z_last-z_first)/2.);
00829
00830 node01_pad01 = new TNode("node01_pad01", "node01_pad01", "padrow1", 0., 0., z[0]);
00831 node01_pad02 = new TNode("node01_pad02", "node01_pad02", "padrow2", 0., 0., z[0]);
00832 node01_pad03 = new TNode("node01_pad03", "node01_pad03", "padrow3", 0., 0., z[0]);
00833 node01_pad04 = new TNode("node01_pad04", "node01_pad04", "padrow4", 0., 0., z[0]);
00834 node01_pad05 = new TNode("node01_pad05", "node01_pad05", "padrow5", 0., 0., z[0]);
00835 node01_pad06 = new TNode("node01_pad06", "node01_pad06", "padrow6", 0., 0., z[0]);
00836 node02_pad01 = new TNode("node02_pad01", "node02_pad01", "padrow1", 0., 0., -z[0]);
00837 node02_pad02 = new TNode("node02_pad02", "node02_pad02", "padrow2", 0., 0., -z[0]);
00838 node02_pad03 = new TNode("node02_pad03", "node02_pad03", "padrow3", 0., 0., -z[0]);
00839 node02_pad04 = new TNode("node02_pad04", "node02_pad04", "padrow4", 0., 0., -z[0]);
00840 node02_pad05 = new TNode("node02_pad05", "node02_pad05", "padrow5", 0., 0., -z[0]);
00841 node02_pad06 = new TNode("node02_pad06", "node02_pad06", "padrow6", 0., 0., -z[0]);
00842
00843 node01_pad11 = new TNode("node01_pad11", "node01_pad11", "padrow1", 0., 0., z[1]);
00844 node01_pad12 = new TNode("node01_pad12", "node01_pad12", "padrow2", 0., 0., z[1]);
00845 node01_pad13 = new TNode("node01_pad13", "node01_pad13", "padrow3", 0., 0., z[1]);
00846 node01_pad14 = new TNode("node01_pad14", "node01_pad14", "padrow4", 0., 0., z[1]);
00847 node01_pad15 = new TNode("node01_pad15", "node01_pad15", "padrow5", 0., 0., z[1]);
00848 node01_pad16 = new TNode("node01_pad16", "node01_pad16", "padrow6", 0., 0., z[1]);
00849 node02_pad11 = new TNode("node02_pad11", "node02_pad11", "padrow1", 0., 0., -z[1]);
00850 node02_pad12 = new TNode("node02_pad12", "node02_pad12", "padrow2", 0., 0., -z[1]);
00851 node02_pad13 = new TNode("node02_pad13", "node02_pad13", "padrow3", 0., 0., -z[1]);
00852 node02_pad14 = new TNode("node02_pad14", "node02_pad14", "padrow4", 0., 0., -z[1]);
00853 node02_pad15 = new TNode("node02_pad15", "node02_pad15", "padrow5", 0., 0., -z[1]);
00854 node02_pad16 = new TNode("node02_pad16", "node02_pad16", "padrow6", 0., 0., -z[1]);
00855
00856 node01_pad21 = new TNode("node01_pad21", "node01_pad21", "padrow1", 0., 0., z[2]);
00857 node01_pad22 = new TNode("node01_pad22", "node01_pad22", "padrow2", 0., 0., z[2]);
00858 node01_pad23 = new TNode("node01_pad23", "node01_pad23", "padrow3", 0., 0., z[2]);
00859 node01_pad24 = new TNode("node01_pad24", "node01_pad24", "padrow4", 0., 0., z[2]);
00860 node01_pad25 = new TNode("node01_pad25", "node01_pad25", "padrow5", 0., 0., z[2]);
00861 node01_pad26 = new TNode("node01_pad26", "node01_pad26", "padrow6", 0., 0., z[2]);
00862 node02_pad21 = new TNode("node02_pad21", "node02_pad21", "padrow1", 0., 0., -z[2]);
00863 node02_pad22 = new TNode("node02_pad22", "node02_pad22", "padrow2", 0., 0., -z[2]);
00864 node02_pad23 = new TNode("node02_pad23", "node02_pad23", "padrow3", 0., 0., -z[2]);
00865 node02_pad24 = new TNode("node02_pad24", "node02_pad24", "padrow4", 0., 0., -z[2]);
00866 node02_pad25 = new TNode("node02_pad25", "node02_pad25", "padrow5", 0., 0., -z[2]);
00867 node02_pad26 = new TNode("node02_pad26", "node02_pad26", "padrow6", 0., 0., -z[2]);
00868
00869 node01_pad31 = new TNode("node01_pad31", "node01_pad31", "padrow1", 0., 0., z[3]);
00870 node01_pad32 = new TNode("node01_pad32", "node01_pad32", "padrow2", 0., 0., z[3]);
00871 node01_pad33 = new TNode("node01_pad33", "node01_pad33", "padrow3", 0., 0., z[3]);
00872 node01_pad34 = new TNode("node01_pad34", "node01_pad34", "padrow4", 0., 0., z[3]);
00873 node01_pad35 = new TNode("node01_pad35", "node01_pad35", "padrow5", 0., 0., z[3]);
00874 node01_pad36 = new TNode("node01_pad36", "node01_pad36", "padrow6", 0., 0., z[3]);
00875 node02_pad31 = new TNode("node02_pad31", "node02_pad31", "padrow1", 0., 0., -z[3]);
00876 node02_pad32 = new TNode("node02_pad32", "node02_pad32", "padrow2", 0., 0., -z[3]);
00877 node02_pad33 = new TNode("node02_pad33", "node02_pad33", "padrow3", 0., 0., -z[3]);
00878 node02_pad34 = new TNode("node02_pad34", "node02_pad34", "padrow4", 0., 0., -z[3]);
00879 node02_pad35 = new TNode("node02_pad35", "node02_pad35", "padrow5", 0., 0., -z[3]);
00880 node02_pad36 = new TNode("node02_pad36", "node02_pad36", "padrow6", 0., 0., -z[3]);
00881
00882 node01_pad41 = new TNode("node01_pad41", "node01_pad41", "padrow1", 0., 0., z[4]);
00883 node01_pad42 = new TNode("node01_pad42", "node01_pad42", "padrow2", 0., 0., z[4]);
00884 node01_pad43 = new TNode("node01_pad43", "node01_pad43", "padrow3", 0., 0., z[4]);
00885 node01_pad44 = new TNode("node01_pad44", "node01_pad44", "padrow4", 0., 0., z[4]);
00886 node01_pad45 = new TNode("node01_pad45", "node01_pad45", "padrow5", 0., 0., z[4]);
00887 node01_pad46 = new TNode("node01_pad46", "node01_pad46", "padrow6", 0., 0., z[4]);
00888 node02_pad41 = new TNode("node02_pad41", "node02_pad41", "padrow1", 0., 0., -z[4]);
00889 node02_pad42 = new TNode("node02_pad42", "node02_pad42", "padrow2", 0., 0., -z[4]);
00890 node02_pad43 = new TNode("node02_pad43", "node02_pad43", "padrow3", 0., 0., -z[4]);
00891 node02_pad44 = new TNode("node02_pad44", "node02_pad44", "padrow4", 0., 0., -z[4]);
00892 node02_pad45 = new TNode("node02_pad45", "node02_pad45", "padrow5", 0., 0., -z[4]);
00893 node02_pad46 = new TNode("node02_pad46", "node02_pad46", "padrow6", 0., 0., -z[4]);
00894
00895 node01_pad51 = new TNode("node01_pad51", "node01_pad51", "padrow1", 0., 0., z[5]);
00896 node01_pad52 = new TNode("node01_pad52", "node01_pad52", "padrow2", 0., 0., z[5]);
00897 node01_pad53 = new TNode("node01_pad53", "node01_pad53", "padrow3", 0., 0., z[5]);
00898 node01_pad54 = new TNode("node01_pad54", "node01_pad54", "padrow4", 0., 0., z[5]);
00899 node01_pad55 = new TNode("node01_pad55", "node01_pad55", "padrow5", 0., 0., z[5]);
00900 node01_pad56 = new TNode("node01_pad56", "node01_pad56", "padrow6", 0., 0., z[5]);
00901 node02_pad51 = new TNode("node02_pad51", "node02_pad51", "padrow1", 0., 0., -z[5]);
00902 node02_pad52 = new TNode("node02_pad52", "node02_pad52", "padrow2", 0., 0., -z[5]);
00903 node02_pad53 = new TNode("node02_pad53", "node02_pad53", "padrow3", 0., 0., -z[5]);
00904 node02_pad54 = new TNode("node02_pad54", "node02_pad54", "padrow4", 0., 0., -z[5]);
00905 node02_pad55 = new TNode("node02_pad55", "node02_pad55", "padrow5", 0., 0., -z[5]);
00906 node02_pad56 = new TNode("node02_pad56", "node02_pad56", "padrow6", 0., 0., -z[5]);
00907
00908 node01_pad61 = new TNode("node01_pad61", "node01_pad61", "padrow1", 0., 0., z[6]);
00909 node01_pad62 = new TNode("node01_pad62", "node01_pad62", "padrow2", 0., 0., z[6]);
00910 node01_pad63 = new TNode("node01_pad63", "node01_pad63", "padrow3", 0., 0., z[6]);
00911 node01_pad64 = new TNode("node01_pad64", "node01_pad64", "padrow4", 0., 0., z[6]);
00912 node01_pad65 = new TNode("node01_pad65", "node01_pad65", "padrow5", 0., 0., z[6]);
00913 node01_pad66 = new TNode("node01_pad66", "node01_pad66", "padrow6", 0., 0., z[6]);
00914 node02_pad61 = new TNode("node02_pad61", "node02_pad61", "padrow1", 0., 0., -z[6]);
00915 node02_pad62 = new TNode("node02_pad62", "node02_pad62", "padrow2", 0., 0., -z[6]);
00916 node02_pad63 = new TNode("node02_pad63", "node02_pad63", "padrow3", 0., 0., -z[6]);
00917 node02_pad64 = new TNode("node02_pad64", "node02_pad64", "padrow4", 0., 0., -z[6]);
00918 node02_pad65 = new TNode("node02_pad65", "node02_pad65", "padrow5", 0., 0., -z[6]);
00919 node02_pad66 = new TNode("node02_pad66", "node02_pad66", "padrow6", 0., 0., -z[6]);
00920
00921 node01_pad71 = new TNode("node01_pad71", "node01_pad71", "padrow1", 0., 0., z[7]);
00922 node01_pad72 = new TNode("node01_pad72", "node01_pad72", "padrow2", 0., 0., z[7]);
00923 node01_pad73 = new TNode("node01_pad73", "node01_pad73", "padrow3", 0., 0., z[7]);
00924 node01_pad74 = new TNode("node01_pad74", "node01_pad74", "padrow4", 0., 0., z[7]);
00925 node01_pad75 = new TNode("node01_pad75", "node01_pad75", "padrow5", 0., 0., z[7]);
00926 node01_pad76 = new TNode("node01_pad76", "node01_pad76", "padrow6", 0., 0., z[7]);
00927 node02_pad71 = new TNode("node02_pad71", "node02_pad71", "padrow1", 0., 0., -z[7]);
00928 node02_pad72 = new TNode("node02_pad72", "node02_pad72", "padrow2", 0., 0., -z[7]);
00929 node02_pad73 = new TNode("node02_pad73", "node02_pad73", "padrow3", 0., 0., -z[7]);
00930 node02_pad74 = new TNode("node02_pad74", "node02_pad74", "padrow4", 0., 0., -z[7]);
00931 node02_pad75 = new TNode("node02_pad75", "node02_pad75", "padrow5", 0., 0., -z[7]);
00932 node02_pad76 = new TNode("node02_pad76", "node02_pad76", "padrow6", 0., 0., -z[7]);
00933
00934 node01_pad81 = new TNode("node01_pad81", "node01_pad81", "padrow1", 0., 0., z[8]);
00935 node01_pad82 = new TNode("node01_pad82", "node01_pad82", "padrow2", 0., 0., z[8]);
00936 node01_pad83 = new TNode("node01_pad83", "node01_pad83", "padrow3", 0., 0., z[8]);
00937 node01_pad84 = new TNode("node01_pad84", "node01_pad84", "padrow4", 0., 0., z[8]);
00938 node01_pad85 = new TNode("node01_pad85", "node01_pad85", "padrow5", 0., 0., z[8]);
00939 node01_pad86 = new TNode("node01_pad86", "node01_pad86", "padrow6", 0., 0., z[8]);
00940 node02_pad81 = new TNode("node02_pad81", "node02_pad81", "padrow1", 0., 0., -z[8]);
00941 node02_pad82 = new TNode("node02_pad82", "node02_pad82", "padrow2", 0., 0., -z[8]);
00942 node02_pad83 = new TNode("node02_pad83", "node02_pad83", "padrow3", 0., 0., -z[8]);
00943 node02_pad84 = new TNode("node02_pad84", "node02_pad84", "padrow4", 0., 0., -z[8]);
00944 node02_pad85 = new TNode("node02_pad85", "node02_pad85", "padrow5", 0., 0., -z[8]);
00945 node02_pad86 = new TNode("node02_pad86", "node02_pad86", "padrow6", 0., 0., -z[8]);
00946
00947 node01_pad91 = new TNode("node01_pad91", "node01_pad91", "padrow1", 0., 0., z[9]);
00948 node01_pad92 = new TNode("node01_pad92", "node01_pad92", "padrow2", 0., 0., z[9]);
00949 node01_pad93 = new TNode("node01_pad93", "node01_pad93", "padrow3", 0., 0., z[9]);
00950 node01_pad94 = new TNode("node01_pad94", "node01_pad94", "padrow4", 0., 0., z[9]);
00951 node01_pad95 = new TNode("node01_pad95", "node01_pad95", "padrow5", 0., 0., z[9]);
00952 node01_pad96 = new TNode("node01_pad96", "node01_pad96", "padrow6", 0., 0., z[9]);
00953 node02_pad91 = new TNode("node02_pad91", "node02_pad91", "padrow1", 0., 0., -z[9]);
00954 node02_pad92 = new TNode("node02_pad92", "node02_pad92", "padrow2", 0., 0., -z[9]);
00955 node02_pad93 = new TNode("node02_pad93", "node02_pad93", "padrow3", 0., 0., -z[9]);
00956 node02_pad94 = new TNode("node02_pad94", "node02_pad94", "padrow4", 0., 0., -z[9]);
00957 node02_pad95 = new TNode("node02_pad95", "node02_pad95", "padrow5", 0., 0., -z[9]);
00958 node02_pad96 = new TNode("node02_pad96", "node02_pad96", "padrow6", 0., 0., -z[9]);
00959
00960
00961
00962 canvas->cd(2);
00963 node2->cd();
00964 node2_out = new TNode("node2_out", "node2_out", "ftpc2_out", 0, 0, -z_first-(z_last-z_first)/2.);
00965 node2_in = new TNode("node2_in", "node2_in", "ftpc2_in", 0, 0, -z_first-(z_last-z_first)/2.);
00966
00967 node2_seg1 = new TNode("node2_seg1", "node2_seg1", "dead_seg1", 0., 0., -z_first-(z_last-z_first)/2.);
00968 node2_seg2 = new TNode("node2_seg2", "node2_seg2", "dead_seg2", 0., 0., -z_first-(z_last-z_first)/2.);
00969 node2_seg3 = new TNode("node2_seg3", "node2_seg3", "dead_seg3", 0., 0., -z_first-(z_last-z_first)/2.);
00970 node2_seg4 = new TNode("node2_seg4", "node2_seg4", "dead_seg4", 0., 0., -z_first-(z_last-z_first)/2.);
00971 node2_seg5 = new TNode("node2_seg5", "node2_seg5", "dead_seg5", 0., 0., -z_first-(z_last-z_first)/2.);
00972 node2_seg6 = new TNode("node2_seg6", "node2_seg6", "dead_seg6", 0., 0., -z_first-(z_last-z_first)/2.);
00973
00974 node2_pad01 = new TNode("node2_pad01", "node2_pad01", "padrow1", 0., 0., -z[0]);
00975 node2_pad02 = new TNode("node2_pad02", "node2_pad02", "padrow2", 0., 0., -z[0]);
00976 node2_pad03 = new TNode("node2_pad03", "node2_pad03", "padrow3", 0., 0., -z[0]);
00977 node2_pad04 = new TNode("node2_pad04", "node2_pad04", "padrow4", 0., 0., -z[0]);
00978 node2_pad05 = new TNode("node2_pad05", "node2_pad05", "padrow5", 0., 0., -z[0]);
00979 node2_pad06 = new TNode("node2_pad06", "node2_pad06", "padrow6", 0., 0., -z[0]);
00980
00981 node2_pad11 = new TNode("node2_pad11", "node2_pad11", "padrow1", 0., 0., -z[1]);
00982 node2_pad12 = new TNode("node2_pad12", "node2_pad12", "padrow2", 0., 0., -z[1]);
00983 node2_pad13 = new TNode("node2_pad13", "node2_pad13", "padrow3", 0., 0., -z[1]);
00984 node2_pad14 = new TNode("node2_pad14", "node2_pad14", "padrow4", 0., 0., -z[1]);
00985 node2_pad15 = new TNode("node2_pad15", "node2_pad15", "padrow5", 0., 0., -z[1]);
00986 node2_pad16 = new TNode("node2_pad16", "node2_pad16", "padrow6", 0., 0., -z[1]);
00987
00988 node2_pad21 = new TNode("node2_pad21", "node2_pad21", "padrow1", 0., 0., -z[2]);
00989 node2_pad22 = new TNode("node2_pad22", "node2_pad22", "padrow2", 0., 0., -z[2]);
00990 node2_pad23 = new TNode("node2_pad23", "node2_pad23", "padrow3", 0., 0., -z[2]);
00991 node2_pad24 = new TNode("node2_pad24", "node2_pad24", "padrow4", 0., 0., -z[2]);
00992 node2_pad25 = new TNode("node2_pad25", "node2_pad25", "padrow5", 0., 0., -z[2]);
00993 node2_pad26 = new TNode("node2_pad26", "node2_pad26", "padrow6", 0., 0., -z[2]);
00994
00995 node2_pad31 = new TNode("node2_pad31", "node2_pad31", "padrow1", 0., 0., -z[3]);
00996 node2_pad32 = new TNode("node2_pad32", "node2_pad32", "padrow2", 0., 0., -z[3]);
00997 node2_pad33 = new TNode("node2_pad33", "node2_pad33", "padrow3", 0., 0., -z[3]);
00998 node2_pad34 = new TNode("node2_pad34", "node2_pad34", "padrow4", 0., 0., -z[3]);
00999 node2_pad35 = new TNode("node2_pad35", "node2_pad35", "padrow5", 0., 0., -z[3]);
01000 node2_pad36 = new TNode("node2_pad36", "node2_pad36", "padrow6", 0., 0., -z[3]);
01001
01002 node2_pad41 = new TNode("node2_pad41", "node2_pad41", "padrow1", 0., 0., -z[4]);
01003 node2_pad42 = new TNode("node2_pad42", "node2_pad42", "padrow2", 0., 0., -z[4]);
01004 node2_pad43 = new TNode("node2_pad43", "node2_pad43", "padrow3", 0., 0., -z[4]);
01005 node2_pad44 = new TNode("node2_pad44", "node2_pad44", "padrow4", 0., 0., -z[4]);
01006 node2_pad45 = new TNode("node2_pad45", "node2_pad45", "padrow5", 0., 0., -z[4]);
01007 node2_pad46 = new TNode("node2_pad46", "node2_pad46", "padrow6", 0., 0., -z[4]);
01008
01009 node2_pad51 = new TNode("node2_pad51", "node2_pad51", "padrow1", 0., 0., -z[5]);
01010 node2_pad52 = new TNode("node2_pad52", "node2_pad52", "padrow2", 0., 0., -z[5]);
01011 node2_pad53 = new TNode("node2_pad53", "node2_pad53", "padrow3", 0., 0., -z[5]);
01012 node2_pad54 = new TNode("node2_pad54", "node2_pad54", "padrow4", 0., 0., -z[5]);
01013 node2_pad55 = new TNode("node2_pad55", "node2_pad55", "padrow5", 0., 0., -z[5]);
01014 node2_pad56 = new TNode("node2_pad56", "node2_pad56", "padrow6", 0., 0., -z[5]);
01015
01016 node2_pad61 = new TNode("node2_pad61", "node2_pad61", "padrow1", 0., 0., -z[6]);
01017 node2_pad62 = new TNode("node2_pad62", "node2_pad62", "padrow2", 0., 0., -z[6]);
01018 node2_pad63 = new TNode("node2_pad63", "node2_pad63", "padrow3", 0., 0., -z[6]);
01019 node2_pad64 = new TNode("node2_pad64", "node2_pad64", "padrow4", 0., 0., -z[6]);
01020 node2_pad65 = new TNode("node2_pad65", "node2_pad65", "padrow5", 0., 0., -z[6]);
01021 node2_pad66 = new TNode("node2_pad66", "node2_pad66", "padrow6", 0., 0., -z[6]);
01022
01023 node2_pad71 = new TNode("node2_pad71", "node2_pad71", "padrow1", 0., 0., -z[7]);
01024 node2_pad72 = new TNode("node2_pad72", "node2_pad72", "padrow2", 0., 0., -z[7]);
01025 node2_pad73 = new TNode("node2_pad73", "node2_pad73", "padrow3", 0., 0., -z[7]);
01026 node2_pad74 = new TNode("node2_pad74", "node2_pad74", "padrow4", 0., 0., -z[7]);
01027 node2_pad75 = new TNode("node2_pad75", "node2_pad75", "padrow5", 0., 0., -z[7]);
01028 node2_pad76 = new TNode("node2_pad76", "node2_pad76", "padrow6", 0., 0., -z[7]);
01029
01030 node2_pad81 = new TNode("node2_pad81", "node2_pad81", "padrow1", 0., 0., -z[8]);
01031 node2_pad82 = new TNode("node2_pad82", "node2_pad82", "padrow2", 0., 0., -z[8]);
01032 node2_pad83 = new TNode("node2_pad83", "node2_pad83", "padrow3", 0., 0., -z[8]);
01033 node2_pad84 = new TNode("node2_pad84", "node2_pad84", "padrow4", 0., 0., -z[8]);
01034 node2_pad85 = new TNode("node2_pad85", "node2_pad85", "padrow5", 0., 0., -z[8]);
01035 node2_pad86 = new TNode("node2_pad86", "node2_pad86", "padrow6", 0., 0., -z[8]);
01036
01037 node2_pad91 = new TNode("node2_pad91", "node2_pad91", "padrow1", 0., 0., -z[9]);
01038 node2_pad92 = new TNode("node2_pad92", "node2_pad92", "padrow2", 0., 0., -z[9]);
01039 node2_pad93 = new TNode("node2_pad93", "node2_pad93", "padrow3", 0., 0., -z[9]);
01040 node2_pad94 = new TNode("node2_pad94", "node2_pad94", "padrow4", 0., 0., -z[9]);
01041 node2_pad95 = new TNode("node2_pad95", "node2_pad95", "padrow5", 0., 0., -z[9]);
01042 node2_pad96 = new TNode("node2_pad96", "node2_pad96", "padrow6", 0., 0., -z[9]);
01043
01044
01045
01046 canvas->cd(3);
01047 node1->cd();
01048 node1_out = new TNode("node1_out", "node1_out", "ftpc1_out", 0, 0, z_first+(z_last-z_first)/2.);
01049 node1_in = new TNode("node1_in", "node1_in", "ftpc1_in", 0, 0, z_first+(z_last-z_first)/2.);
01050
01051 node1_seg1 = new TNode("node1_seg1", "node1_seg1", "dead_seg1", 0., 0., z_first+(z_last-z_first)/2.);
01052 node1_seg2 = new TNode("node1_seg2", "node1_seg2", "dead_seg2", 0., 0., z_first+(z_last-z_first)/2.);
01053 node1_seg3 = new TNode("node1_seg3", "node1_seg3", "dead_seg3", 0., 0., z_first+(z_last-z_first)/2.);
01054 node1_seg4 = new TNode("node1_seg4", "node1_seg4", "dead_seg4", 0., 0., z_first+(z_last-z_first)/2.);
01055 node1_seg5 = new TNode("node1_seg5", "node1_seg5", "dead_seg5", 0., 0., z_first+(z_last-z_first)/2.);
01056 node1_seg6 = new TNode("node1_seg6", "node1_seg6", "dead_seg6", 0., 0., z_first+(z_last-z_first)/2.);
01057
01058 node1_pad01 = new TNode("node1_pad01", "node1_pad01", "padrow1", 0., 0., z[0]);
01059 node1_pad02 = new TNode("node1_pad02", "node1_pad02", "padrow2", 0., 0., z[0]);
01060 node1_pad03 = new TNode("node1_pad03", "node1_pad03", "padrow3", 0., 0., z[0]);
01061 node1_pad04 = new TNode("node1_pad04", "node1_pad04", "padrow4", 0., 0., z[0]);
01062 node1_pad05 = new TNode("node1_pad05", "node1_pad05", "padrow5", 0., 0., z[0]);
01063 node1_pad06 = new TNode("node1_pad06", "node1_pad06", "padrow6", 0., 0., z[0]);
01064
01065 node1_pad11 = new TNode("node1_pad11", "node1_pad11", "padrow1", 0., 0., z[1]);
01066 node1_pad12 = new TNode("node1_pad12", "node1_pad12", "padrow2", 0., 0., z[1]);
01067 node1_pad13 = new TNode("node1_pad13", "node1_pad13", "padrow3", 0., 0., z[1]);
01068 node1_pad14 = new TNode("node1_pad14", "node1_pad14", "padrow4", 0., 0., z[1]);
01069 node1_pad15 = new TNode("node1_pad15", "node1_pad15", "padrow5", 0., 0., z[1]);
01070 node1_pad16 = new TNode("node1_pad16", "node1_pad16", "padrow6", 0., 0., z[1]);
01071
01072 node1_pad21 = new TNode("node1_pad21", "node1_pad21", "padrow1", 0., 0., z[2]);
01073 node1_pad22 = new TNode("node1_pad22", "node1_pad22", "padrow2", 0., 0., z[2]);
01074 node1_pad23 = new TNode("node1_pad23", "node1_pad23", "padrow3", 0., 0., z[2]);
01075 node1_pad24 = new TNode("node1_pad24", "node1_pad24", "padrow4", 0., 0., z[2]);
01076 node1_pad25 = new TNode("node1_pad25", "node1_pad25", "padrow5", 0., 0., z[2]);
01077 node1_pad26 = new TNode("node1_pad26", "node1_pad26", "padrow6", 0., 0., z[2]);
01078
01079 node1_pad31 = new TNode("node1_pad31", "node1_pad31", "padrow1", 0., 0., z[3]);
01080 node1_pad32 = new TNode("node1_pad32", "node1_pad32", "padrow2", 0., 0., z[3]);
01081 node1_pad33 = new TNode("node1_pad33", "node1_pad33", "padrow3", 0., 0., z[3]);
01082 node1_pad34 = new TNode("node1_pad34", "node1_pad34", "padrow4", 0., 0., z[3]);
01083 node1_pad35 = new TNode("node1_pad35", "node1_pad35", "padrow5", 0., 0., z[3]);
01084 node1_pad36 = new TNode("node1_pad36", "node1_pad36", "padrow6", 0., 0., z[3]);
01085
01086 node1_pad41 = new TNode("node1_pad41", "node1_pad41", "padrow1", 0., 0., z[4]);
01087 node1_pad42 = new TNode("node1_pad42", "node1_pad42", "padrow2", 0., 0., z[4]);
01088 node1_pad43 = new TNode("node1_pad43", "node1_pad43", "padrow3", 0., 0., z[4]);
01089 node1_pad44 = new TNode("node1_pad44", "node1_pad44", "padrow4", 0., 0., z[4]);
01090 node1_pad45 = new TNode("node1_pad45", "node1_pad45", "padrow5", 0., 0., z[4]);
01091 node1_pad46 = new TNode("node1_pad46", "node1_pad46", "padrow6", 0., 0., z[4]);
01092
01093 node1_pad51 = new TNode("node1_pad51", "node1_pad51", "padrow1", 0., 0., z[5]);
01094 node1_pad52 = new TNode("node1_pad52", "node1_pad52", "padrow2", 0., 0., z[5]);
01095 node1_pad53 = new TNode("node1_pad53", "node1_pad53", "padrow3", 0., 0., z[5]);
01096 node1_pad54 = new TNode("node1_pad54", "node1_pad54", "padrow4", 0., 0., z[5]);
01097 node1_pad55 = new TNode("node1_pad55", "node1_pad55", "padrow5", 0., 0., z[5]);
01098 node1_pad56 = new TNode("node1_pad56", "node1_pad56", "padrow6", 0., 0., z[5]);
01099
01100 node1_pad61 = new TNode("node1_pad61", "node1_pad61", "padrow1", 0., 0., z[6]);
01101 node1_pad62 = new TNode("node1_pad62", "node1_pad62", "padrow2", 0., 0., z[6]);
01102 node1_pad63 = new TNode("node1_pad63", "node1_pad63", "padrow3", 0., 0., z[6]);
01103 node1_pad64 = new TNode("node1_pad64", "node1_pad64", "padrow4", 0., 0., z[6]);
01104 node1_pad65 = new TNode("node1_pad65", "node1_pad65", "padrow5", 0., 0., z[6]);
01105 node1_pad66 = new TNode("node1_pad66", "node1_pad66", "padrow6", 0., 0., z[6]);
01106
01107 node1_pad71 = new TNode("node1_pad71", "node1_pad71", "padrow1", 0., 0., z[7]);
01108 node1_pad72 = new TNode("node1_pad72", "node1_pad72", "padrow2", 0., 0., z[7]);
01109 node1_pad73 = new TNode("node1_pad73", "node1_pad73", "padrow3", 0., 0., z[7]);
01110 node1_pad74 = new TNode("node1_pad74", "node1_pad74", "padrow4", 0., 0., z[7]);
01111 node1_pad75 = new TNode("node1_pad75", "node1_pad75", "padrow5", 0., 0., z[7]);
01112 node1_pad76 = new TNode("node1_pad76", "node1_pad76", "padrow6", 0., 0., z[7]);
01113
01114 node1_pad81 = new TNode("node1_pad81", "node1_pad81", "padrow1", 0., 0., z[8]);
01115 node1_pad82 = new TNode("node1_pad82", "node1_pad82", "padrow2", 0., 0., z[8]);
01116 node1_pad83 = new TNode("node1_pad83", "node1_pad83", "padrow3", 0., 0., z[8]);
01117 node1_pad84 = new TNode("node1_pad84", "node1_pad84", "padrow4", 0., 0., z[8]);
01118 node1_pad85 = new TNode("node1_pad85", "node1_pad85", "padrow5", 0., 0., z[8]);
01119 node1_pad86 = new TNode("node1_pad86", "node1_pad86", "padrow6", 0., 0., z[8]);
01120
01121 node1_pad91 = new TNode("node1_pad91", "node1_pad91", "padrow1", 0., 0., z[9]);
01122 node1_pad92 = new TNode("node1_pad92", "node1_pad92", "padrow2", 0., 0., z[9]);
01123 node1_pad93 = new TNode("node1_pad93", "node1_pad93", "padrow3", 0., 0., z[9]);
01124 node1_pad94 = new TNode("node1_pad94", "node1_pad94", "padrow4", 0., 0., z[9]);
01125 node1_pad95 = new TNode("node1_pad95", "node1_pad95", "padrow5", 0., 0., z[9]);
01126 node1_pad96 = new TNode("node1_pad96", "node1_pad96", "padrow6", 0., 0., z[9]);
01127
01128
01129
01130
01131
01132
01133
01134
01135
01136
01137
01138
01139
01140
01141
01142
01143
01144
01145
01146
01147
01148
01149
01150
01151
01152
01153
01154
01155
01156
01157
01158
01159
01160
01161
01162
01163
01164
01165
01166
01167
01168
01169
01170
01171
01172
01173
01174
01175
01176
01177
01178
01179 }
01180
01181 void deleteNode() {
01182
01183
01184 delete ftpc1_in;
01185 delete ftpc2_in;
01186 delete ftpc1_out;
01187 delete ftpc2_out;
01188 delete padrow1;
01189 delete padrow2;
01190 delete padrow3;
01191 delete padrow4;
01192 delete padrow5;
01193 delete padrow6;
01194 delete dead_seg1;
01195 delete dead_seg2;
01196 delete dead_seg3;
01197 delete dead_seg4;
01198 delete dead_seg5;
01199 delete dead_seg6;
01200 delete node01_in;
01201 delete node01_out;
01202 delete node02_in;
01203 delete node02_out;
01204 delete node1_in;
01205 delete node1_out;
01206 delete node2_in;
01207 delete node2_out;
01208 delete node01_seg1;
01209 delete node01_seg2;
01210 delete node01_seg3;
01211 delete node01_seg4;
01212 delete node01_seg5;
01213 delete node01_seg6;
01214 delete node02_seg1;
01215 delete node02_seg2;
01216 delete node02_seg3;
01217 delete node02_seg4;
01218 delete node02_seg5;
01219 delete node02_seg6;
01220 delete node1_seg1;
01221 delete node1_seg2;
01222 delete node1_seg3;
01223 delete node1_seg4;
01224 delete node1_seg5;
01225 delete node1_seg6;
01226 delete node2_seg1;
01227 delete node2_seg2;
01228 delete node2_seg3;
01229 delete node2_seg4;
01230 delete node2_seg5;
01231 delete node2_seg6;
01232 delete node01_pad01;
01233 delete node01_pad02;
01234 delete node01_pad03;
01235 delete node01_pad04;
01236 delete node01_pad05;
01237 delete node01_pad06;
01238 delete node02_pad01;
01239 delete node02_pad02;
01240 delete node02_pad03;
01241 delete node02_pad04;
01242 delete node02_pad05;
01243 delete node02_pad06;
01244 delete node1_pad01;
01245 delete node1_pad02;
01246 delete node1_pad03;
01247 delete node1_pad04;
01248 delete node1_pad05;
01249 delete node1_pad06;
01250 delete node2_pad01;
01251 delete node2_pad02;
01252 delete node2_pad03;
01253 delete node2_pad04;
01254 delete node2_pad05;
01255 delete node2_pad06;
01256 delete node1_pad11;
01257 delete node1_pad12;
01258 delete node1_pad13;
01259 delete node1_pad14;
01260 delete node1_pad15;
01261 delete node1_pad16;
01262 delete node2_pad11;
01263 delete node2_pad12;
01264 delete node2_pad13;
01265 delete node2_pad14;
01266 delete node2_pad15;
01267 delete node2_pad16;
01268 delete node01_pad11;
01269 delete node01_pad12;
01270 delete node01_pad13;
01271 delete node01_pad14;
01272 delete node01_pad15;
01273 delete node01_pad16;
01274 delete node02_pad11;
01275 delete node02_pad12;
01276 delete node02_pad13;
01277 delete node02_pad14;
01278 delete node02_pad15;
01279 delete node02_pad16;
01280 delete node1_pad21;
01281 delete node1_pad22;
01282 delete node1_pad23;
01283 delete node1_pad24;
01284 delete node1_pad25;
01285 delete node1_pad26;
01286 delete node2_pad21;
01287 delete node2_pad22;
01288 delete node2_pad23;
01289 delete node2_pad24;
01290 delete node2_pad25;
01291 delete node2_pad26;
01292 delete node01_pad21;
01293 delete node01_pad22;
01294 delete node01_pad23;
01295 delete node01_pad24;
01296 delete node01_pad25;
01297 delete node01_pad26;
01298 delete node02_pad21;
01299 delete node02_pad22;
01300 delete node02_pad23;
01301 delete node02_pad24;
01302 delete node02_pad25;
01303 delete node02_pad26;
01304 delete node1_pad31;
01305 delete node1_pad32;
01306 delete node1_pad33;
01307 delete node1_pad34;
01308 delete node1_pad35;
01309 delete node1_pad36;
01310 delete node2_pad31;
01311 delete node2_pad32;
01312 delete node2_pad33;
01313 delete node2_pad34;
01314 delete node2_pad35;
01315 delete node2_pad36;
01316 delete node01_pad31;
01317 delete node01_pad32;
01318 delete node01_pad33;
01319 delete node01_pad34;
01320 delete node01_pad35;
01321 delete node01_pad36;
01322 delete node02_pad31;
01323 delete node02_pad32;
01324 delete node02_pad33;
01325 delete node02_pad34;
01326 delete node02_pad35;
01327 delete node02_pad36;
01328 delete node1_pad41;
01329 delete node1_pad42;
01330 delete node1_pad43;
01331 delete node1_pad44;
01332 delete node1_pad45;
01333 delete node1_pad46;
01334 delete node2_pad41;
01335 delete node2_pad42;
01336 delete node2_pad43;
01337 delete node2_pad44;
01338 delete node2_pad45;
01339 delete node2_pad46;
01340 delete node01_pad41;
01341 delete node01_pad42;
01342 delete node01_pad43;
01343 delete node01_pad44;
01344 delete node01_pad45;
01345 delete node01_pad46;
01346 delete node02_pad41;
01347 delete node02_pad42;
01348 delete node02_pad43;
01349 delete node02_pad44;
01350 delete node02_pad45;
01351 delete node02_pad46;
01352 delete node1_pad51;
01353 delete node1_pad52;
01354 delete node1_pad53;
01355 delete node1_pad54;
01356 delete node1_pad55;
01357 delete node1_pad56;
01358 delete node2_pad51;
01359 delete node2_pad52;
01360 delete node2_pad53;
01361 delete node2_pad54;
01362 delete node2_pad55;
01363 delete node2_pad56;
01364 delete node01_pad51;
01365 delete node01_pad52;
01366 delete node01_pad53;
01367 delete node01_pad54;
01368 delete node01_pad55;
01369 delete node01_pad56;
01370 delete node02_pad51;
01371 delete node02_pad52;
01372 delete node02_pad53;
01373 delete node02_pad54;
01374 delete node02_pad55;
01375 delete node02_pad56;
01376 delete node1_pad61;
01377 delete node1_pad62;
01378 delete node1_pad63;
01379 delete node1_pad64;
01380 delete node1_pad65;
01381 delete node1_pad66;
01382 delete node2_pad61;
01383 delete node2_pad62;
01384 delete node2_pad63;
01385 delete node2_pad64;
01386 delete node2_pad65;
01387 delete node2_pad66;
01388 delete node01_pad61;
01389 delete node01_pad62;
01390 delete node01_pad63;
01391 delete node01_pad64;
01392 delete node01_pad65;
01393 delete node01_pad66;
01394 delete node02_pad61;
01395 delete node02_pad62;
01396 delete node02_pad63;
01397 delete node02_pad64;
01398 delete node02_pad65;
01399 delete node02_pad66;
01400 delete node1_pad71;
01401 delete node1_pad72;
01402 delete node1_pad73;
01403 delete node1_pad74;
01404 delete node1_pad75;
01405 delete node1_pad76;
01406 delete node2_pad71;
01407 delete node2_pad72;
01408 delete node2_pad73;
01409 delete node2_pad74;
01410 delete node2_pad75;
01411 delete node2_pad76;
01412 delete node01_pad71;
01413 delete node01_pad72;
01414 delete node01_pad73;
01415 delete node01_pad74;
01416 delete node01_pad75;
01417 delete node01_pad76;
01418 delete node02_pad71;
01419 delete node02_pad72;
01420 delete node02_pad73;
01421 delete node02_pad74;
01422 delete node02_pad75;
01423 delete node02_pad76;
01424 delete node1_pad81;
01425 delete node1_pad82;
01426 delete node1_pad83;
01427 delete node1_pad84;
01428 delete node1_pad85;
01429 delete node1_pad86;
01430 delete node2_pad81;
01431 delete node2_pad82;
01432 delete node2_pad83;
01433 delete node2_pad84;
01434 delete node2_pad85;
01435 delete node2_pad86;
01436 delete node01_pad81;
01437 delete node01_pad82;
01438 delete node01_pad83;
01439 delete node01_pad84;
01440 delete node01_pad85;
01441 delete node01_pad86;
01442 delete node02_pad81;
01443 delete node02_pad82;
01444 delete node02_pad83;
01445 delete node02_pad84;
01446 delete node02_pad85;
01447 delete node02_pad86;
01448 delete node1_pad91;
01449 delete node1_pad92;
01450 delete node1_pad93;
01451 delete node1_pad94;
01452 delete node1_pad95;
01453 delete node1_pad96;
01454 delete node2_pad91;
01455 delete node2_pad92;
01456 delete node2_pad93;
01457 delete node2_pad94;
01458 delete node2_pad95;
01459 delete node2_pad96;
01460 delete node01_pad91;
01461 delete node01_pad92;
01462 delete node01_pad93;
01463 delete node01_pad94;
01464 delete node01_pad95;
01465 delete node01_pad96;
01466 delete node02_pad91;
01467 delete node02_pad92;
01468 delete node02_pad93;
01469 delete node02_pad94;
01470 delete node02_pad95;
01471 delete node02_pad96;
01472 }
01473