//----------------------------------------------------------------------
+
+AliITSv11GeometrySPD *gspd;
+AliITSv11GeometrySDD *gsdd;
+AliITSv11GeometrySupport *gsupp;
+AliITSv11GeometrySSD *gssd;
+//
+//----------------------------------------------------------------------
void Displayv11(const char* filename=""){
// Display AliITSv11 Geometry
// Inputs:
//
TGeoMaterial *vacmat = new TGeoMaterial("Vacume",0,0,0);
TGeoMedium *vacmed = new TGeoMedium("Vacume_med",1,vacmat);
- TGeoVolume *ALIC = mgr2->MakeBox("ALIC",vacmed,100.,100.,200.);
+ TGeoVolume *ALIC = mgr2->MakeBox("ALIC",vacmed,1000.,1000.,2000.);
mgr2->SetTopVolume(ALIC);
+ TGeoVolume *ITS = mgr2->MakeBox("ITSV",vacmed,990.,990.,1990.);
+ TGeoVolumeAssembly *ITSspd = new TGeoVolumeAssembly("ITSspd");
+ ITS->AddNode(ITSspd,1);
+ ALIC->AddNode(ITS,1);
//
+ /*
AliITSv11 *its = new AliITSv11(0,3);
its->SetDebug(ISetits(0,-1));
its->GetSPDGeometry()->SetDebug(ISetits(0,-1));
its->GetSupGeometry()->SetDebug(ISetits(0,-1));
its->CreateMaterials();
its->CreateGeometry();
+ */
+ gspd = new AliITSv11GeometrySPD(0);
+ //gsdd = new AliITSv11GeometrySDD();
+ gsupp = new AliITSv11GeometrySupport(0);
+ //gssd = new AliITSv11GeometrySSD();
+ //
+ Int_t imat=1,imed=1,ireturn=0;
+ ireturn = gspd->CreateSPDCentralMaterials(imed,imat);
+ gspd->SPDSector(ITSspd,mgr2);
+ gsupp->SPDCone(ITS,mgr2);
+ gsupp->SetDebug(0);
+ gsupp->SDDCone(ITS,mgr2);
+ //gsdd->Layer3(ITS);
+ //gsdd->Layer4(ITS);
+ gsupp->SSDCone(ITS,mgr2);
+ gsupp->ServicesCableSupport(ITS);
//
mgr2->CloseGeometry();
//
bar->AddButton("Set RayTrace off","ISetits(5,0)","Perspective off");
bar->AddButton("Set circle/80","ISetits(1,80)","circles ~ by 80 lines");
bar->AddButton("Display Geometry","Displayit()","Run Displayit");
- bar->AddButton("Display SPD Ceneral Volume","EngineeringSPDLayer()",
- "Run EngineeringSPDLayer");
+ bar->AddButton("Display SPD Sector Volume","EngineeringSPDSector()",
+ "Run EngineeringSPDSector");
+ bar->AddButton("Display SPD Ceneral Volume","EngineeringSPDCenter()",
+ "Run EngineeringSPDCenter");
bar->AddButton("Display SPD Thermal Sheald","EngineeringSPDThS()",
"Run EngineeringSPDThS");
+ bar->AddButton("Display SPD Sector Cross Sections","EngineeringSPDSCS()",
+ "Run EngineeringSPDSCS");
bar->AddButton("Display SDD Layer 3","EngineeringSDDLayer3()",
"Run EngineeringSDDLayer3");
bar->AddButton("Display SDD Layer 4","EngineeringSDDLayer4()",
"Run EngineeringSupTrayRB24");
bar->AddButton("Display SUP RB26 side","EngineeringSupRB26()",
"Run EngineeringSupRB26");
+ bar->AddButton("Save Geometry to File","ExportToFile()",
+ "Run ExportToFile");
bar->AddButton("Quit/Exit",".q","Exit");
bar->Show();
gROOT->SaveContext();
//Displayit();
}
//----------------------------------------------------------------------
+void ExportToFile(){
+ // Quirry file name and write geometry to a root file.
+ // Inputs:
+ // const char* filename output file with the display in it
+ // Outputs:
+ // none.
+ // Retrurn:
+ // none.
+ Char_t filename[100];
+
+ printf("Eneter File name:");
+ scanf("%s",filename);
+
+ gGeoManager->Export(filename);
+}
+//----------------------------------------------------------------------
Int_t ISetits(Int_t t,Int_t v){
static Int_t itsdebug=1,nsegments=80,cut=0,axis=1,perspective=0,ray=0;
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->RotateView(60.,30.);
if(ISetits(3,-1)!=0) view2->ShowAxis();
if(view3){
view3->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view3->SetParralel();
+ if(ISetits(4,-1)==0) view3->SetParallel();
else view3->SetPerspective();
view3->Top();
if(ISetits(3,-1)!=0) view3->ShowAxis();
if(view4){
view4->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view4->SetParralel();
+ if(ISetits(4,-1)==0) view4->SetParallel();
else view4->SetPerspective();
view4->Side();
if(ISetits(3,-1)!=0) view4->ShowAxis();
//
}
//----------------------------------------------------------------------
-void EngineeringSPDLayer(){
- // Display SPD Layer Geometry
+void EngineeringSPDSCS(){
+ // Display SPD Carbon Fiber Sector Cross sections A and B
+ // Inputs:
+ // none.
+ // Outputs:
+ // none.
+ // Return:
+ // none.
+ TPolyLine *a0,*a1,*b0,*b1;
+ TPolyMarker *p;
+ TCanvas *cSPDSCS=0;
+ Int_t i;
+ Double_t max=0.0;
+
+ a0 = new TPolyLine();
+ a1 = new TPolyLine();
+ b0 = new TPolyLine();
+ b1 = new TPolyLine();
+ p = new TPolyMarker();
+ a0->SetLineColor(1);
+ a1->SetLineColor(4);
+ b0->SetLineColor(3);
+ b0->SetLineStyle(2); // dashed
+ b1->SetLineColor(6);
+ b1->SetLineStyle(2); // dashed
+ p->SetMarkerColor(2);
+ p->SetMarkerStyle(5);
+ if(gspd->Make2DcrossSections(*a0,*a1,*b0,*b1,*p)==kFALSE) return;
+ for(i=0;i<a0->GetN();i++) {
+ if(TMath::Abs(a0->GetX()[i])>max) max = TMath::Abs(a0->GetX()[i]);
+ if(TMath::Abs(a0->GetY()[i])>max) max = TMath::Abs(a0->GetY()[i]);
+ } // end for i
+ for(i=0;i<a1->GetN();i++) {
+ if(TMath::Abs(a1->GetX()[i])>max) max = TMath::Abs(a0->GetX()[i]);
+ if(TMath::Abs(a1->GetY()[i])>max) max = TMath::Abs(a1->GetY()[i]);
+ } // end for i
+ for(i=0;i<b0->GetN();i++) {
+ if(TMath::Abs(b0->GetX()[i])>max) max = TMath::Abs(b0->GetX()[i]);
+ if(TMath::Abs(b0->GetY()[i])>max) max = TMath::Abs(b0->GetY()[i]);
+ } // end for i
+ for(i=0;i<b1->GetN();i++) {
+ if(TMath::Abs(b1->GetX()[i])>max) max = TMath::Abs(b1->GetX()[i]);
+ if(TMath::Abs(b1->GetY()[i])>max) max = TMath::Abs(b1->GetY()[i]);
+ } // end for i
+ max *= 1.05;
+ cSPDSCS = gROOT->FindObject("cSPDSCS");
+ if(cSPDSCS==0) delete cSPDSCS;
+ cSPDSCS = new TCanvas("cSPDSCS","SPD Carbon Fiber Sector Cross sections",2);
+ cSPDSCS->Range(-max,-max,max,max);
+ //cSPDSCS->RangeAxis();
+ cSPDSCS->SetFixedAspectRatio(kTRUE);
+ //
+ a0->Draw("");
+ a1->Draw("same");
+ p->Draw("same");
+ b0->Draw("same");
+ b1->Draw("same");
+ cSPDSCS->Update();
+ return;
+}
+//----------------------------------------------------------------------
+void EngineeringSPDSector(){
+ // Display SPD Sector Geometry
// Inputs:
// none.
// Outputs:
TCanvas *c4;
if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
c4 = new TCanvas("C4","ITS SPD Layer Geometry Side View",500,500);
- TGeoVolume *ITS,*SPDLay=0;
+ TGeoVolume *ITS,*ITSspd,*SPDLay=0;
TGeoNode *node;
TArrow *arrow=new TArrow();
//
node = ALIC->FindNode("ITSV_1");
ITS = node->GetVolume();
- node = ITS->FindNode("ITSSPDSensitiveVirtualvolumeM0_1");
+ node = ITS->FindNode("ITSspd_1");
+ ITSspd = node->GetVolume();
+ node = ITSspd->FindNode("ITSSPDCarbonFiberSectorV_1");
+ //node = ITSspd->FindNode("ITSSPDTempSPDMotherVolume_1");
SPDLay = node->GetVolume();
//
mgr2->SetNsegments(ISetits(1,-1));
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(ISetits(5,-1)==1) SPDLay->Raytrace();
//
if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
- c5 = new TCanvas("C5","ITS SPD Layer Geometry End View",500,500);
+ c5 = new TCanvas("C5","ITS SPD Sector Geometry End View",500,500);
SPDLay->Draw();
TView *view2 = c5->GetView();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Top();
if(ISetits(3,-1)!=0) view2->ShowAxis();
//
}
//----------------------------------------------------------------------
+void EngineeringSPDCenter(){
+ // Display SPD Centeral Geometry
+ // Inputs:
+ // none.
+ // Outputs:
+ // none.
+ // Retrurn:
+ // none.
+ Int_t irr;
+ //
+ TGeoManager *mgr2 = gGeoManager;
+ TGeoVolume *ALIC = mgr2->GetTopVolume();
+ TCanvas *c4;
+ if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
+ c4 = new TCanvas("C4","ITS SPD Layer Geometry Side View",500,500);
+ TGeoVolume *ITS,*ITSspd,*SPDLay=0;
+ TGeoNode *node;
+ TArrow *arrow=new TArrow();
+ //
+ node = ALIC->FindNode("ITSV_1");
+ ITS = node->GetVolume();
+ node = ITS->FindNode("ITSspd_1");
+ ITSspd = node->GetVolume();
+ //
+ mgr2->SetNsegments(ISetits(1,-1));
+ //
+ mgr2->SetVisLevel(6);
+ mgr2->SetVisOption(0);
+ //mgr2->CheckOverlaps(0.01);
+ //mgr2->PrintOverlaps();
+ if(ISetits(2,-1)==1){
+ TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
+ mgr2->SetClippingShape(clip);
+ } // end if
+ mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
+ if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
+ //
+ ITSspd->Draw();
+ TView *view1 = c4->GetView();
+ if(view1){
+ view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
+ if(irr) cout <<"error="<<irr<<endl;
+ if(ISetits(4,-1)==0) view1->SetParallel();
+ else view1->SetPerspective();
+ view1->Front();
+ if(ISetits(3,-1)!=0) view1->ShowAxis();
+ } // end if view1
+ if(ISetits(5,-1)==1) SPDLay->Raytrace();
+ //
+ if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
+ c5 = new TCanvas("C5","ITS SPD Centeral Geometry End View",500,500);
+ ITSspd->Draw();
+ TView *view2 = c5->GetView();
+ if(view2){
+ view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
+ if(irr) cout <<"error="<<irr<<endl;
+ if(ISetits(4,-1)==0) view2->SetParallel();
+ else view2->SetPerspective();
+ view2->Top();
+ if(ISetits(3,-1)!=0) view2->ShowAxis();
+ } // end if view2
+ if(ISetits(5,-1)==1) ITSspd->Raytrace();
+ //
+}
+//----------------------------------------------------------------------
void EngineeringSPDThS(){
// Display SPD Thermal Sheald Geometry
// Inputs:
//
node = ALIC->FindNode("ITSV_1");
ITS = node->GetVolume();
- node = ITS->FindNode("ITSspdThermalShealdMotherM_1");
+ node = ITS->FindNode("ITSspdThermalShealdMother_1");
SPDThS = node->GetVolume();
//
mgr2->SetNsegments(ISetits(1,-1));
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Top();
if(ISetits(3,-1)!=0) view2->ShowAxis();
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Top();
if(ISetits(3,-1)!=0) view2->ShowAxis();
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Top();
if(ISetits(3,-1)!=0) view2->ShowAxis();
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Top();
if(ISetits(3,-1)!=0) view2->ShowAxis();
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Top();
if(ISetits(3,-1)!=0) view2->ShowAxis();
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Top();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Front();
if(ISetits(3,-1)!=0) view2->ShowAxis();
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Top();
if(ISetits(3,-1)!=0) view2->ShowAxis();
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Top();
if(ISetits(3,-1)!=0) view2->ShowAxis();
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Top();
if(ISetits(3,-1)!=0) view2->ShowAxis();
if(view1){
view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view1->SetParralel();
+ if(ISetits(4,-1)==0) view1->SetParallel();
else view1->SetPerspective();
view1->Front();
if(ISetits(3,-1)!=0) view1->ShowAxis();
if(view2){
view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
if(irr) cout <<"error="<<irr<<endl;
- if(ISetits(4,-1)==0) view2->SetParralel();
+ if(ISetits(4,-1)==0) view2->SetParallel();
else view2->SetPerspective();
view2->Top();
if(ISetits(3,-1)!=0) view2->ShowAxis();
} // end if view2
if(ISetits(5,-1)==1) SUPRB26->Raytrace();
//
-}
+}
\ No newline at end of file