{ //=========Macro generated from canvas: Trajectories/Trajectories //========= (Fri Mar 4 15:40:33 2011) by ROOT version5.29/01 gStyle->SetCanvasPreferGL(kTRUE); TCanvas *Trajectories = new TCanvas("Trajectories", "Trajectories",20,64,1000,734); Trajectories->ToggleEventStatus(); Trajectories->Range(-1,-1,1,1); TView *view = TView::CreateView(1); view->SetRange(-48.86517,-42.31847,0,48.86517,42.31847,90); Trajectories->SetFillColor(10); Trajectories->SetBorderSize(2); Trajectories->SetTheta(31.31195); Trajectories->SetPhi(-32.53012); Trajectories->SetFrameFillColor(0); new TGeoManager("simple1", "Simple geometry"); Double_t dx,dy,dz; Double_t dx1, dx2, dy1, dy2; Double_t vert[20], par[20]; Double_t theta, phi, h1, bl1, tl1, alpha1, h2, bl2, tl2, alpha2; Double_t twist; Double_t origin[3]; Double_t rmin, rmax, rmin1, rmax1, rmin2, rmax2; Double_t r, rlo, rhi; Double_t phi1, phi2; Double_t a,b; Double_t point[3], norm[3]; Double_t rin, stin, rout, stout; Double_t thx, phx, thy, phy, thz, phz; Double_t alpha, theta1, theta2, phi1, phi2, dphi; Double_t tr[3], rot[9]; Double_t z, density, radl, absl, w; Double_t lx,ly,lz,tx,ty,tz; Double_t xvert[50], yvert[50]; Double_t zsect,x0,y0,scale0; Int_t nel, numed, nz, nedges, nvert; TGeoBoolNode *pBoolNode = 0; // MATERIALS, MIXTURES AND TRACKING MEDIA // Material: Vacuum a = 0.000000; z = 0.000000; density = 0.000000; radl = 1000000000000000019884624838656.000000; absl = 1000000000000000019884624838656.000000; pMat1 = new TGeoMaterial("Vacuum", a,z,density,radl,absl); pMat1->SetIndex(0); // Medium: Vacuum numed = 1; // medium number par[0] = 0.000000; // isvol par[1] = 0.000000; // ifield par[2] = 0.000000; // fieldm par[3] = 0.000000; // tmaxfd par[4] = 0.000000; // stemax par[5] = 0.000000; // deemax par[6] = 0.000000; // epsil par[7] = 0.000000; // stmin pMed1 = new TGeoMedium("Vacuum", numed,pMat1, par); // Material: Ge a = 72.590000; z = 32.000000; density = 5.320000; radl = 2.301536; absl = 27.348711; pMat2 = new TGeoMaterial("Ge", a,z,density,radl,absl); pMat2->SetIndex(1); // Medium: MED numed = 1; // medium number par[0] = 0.000000; // isvol par[1] = 0.000000; // ifield par[2] = 0.000000; // fieldm par[3] = 0.000000; // tmaxfd par[4] = 0.000000; // stemax par[5] = 0.000000; // deemax par[6] = 0.000000; // epsil par[7] = 0.000000; // stmin pMed2 = new TGeoMedium("MED", numed,pMat2, par); // TRANSFORMATION MATRICES // Shape: TOP type: TGeoBBox dx = 500.000000; dy = 500.000000; dz = 500.000000; TGeoShape *pTOP_1 = new TGeoBBox("TOP", dx,dy,dz); // Volume: TOP pTOP_1071a1db0 = new TGeoVolume("TOP",pTOP_1, pMed1); pTOP_1071a1db0->SetVisLeaves(kTRUE); // SET TOP VOLUME OF GEOMETRY gGeoManager->SetTopVolume(pTOP_1071a1db0); // SHAPES, VOLUMES AND GEOMETRICAL HIERARCHY // Shape: plug_3 type: TGeoTube rmin = 0.000000; rmax = 5.000000; dz = 6.500000; TGeoShape *pplug_3_4 = new TGeoTube("plug_3",rmin,rmax,dz); // Shape: tempcyl_3 type: TGeoTube rmin = 5.000000; rmax = 40.000000; dz = 45.000000; TGeoShape *ptempcyl_3_3 = new TGeoTube("tempcyl_3",rmin,rmax,dz); // Translation: plugtrans_3 dx = 0.000000; dy = 0.000000; dz = -38.500000; TGeoTranslation *pMatrix3 = new TGeoTranslation("plugtrans_3",dx,dy,dz); pBoolNode = new TGeoUnion(pplug_3_4,ptempcyl_3_3,pMatrix3,0); // Shape: pluggedtempcyl_3 type: TGeoCompositeShape TGeoShape *ppluggedtempcyl_3_5 = new TGeoCompositeShape("pluggedtempcyl_3", pBoolNode); ppluggedtempcyl_3_5->SetTitle("(plug_3:plugtrans_3+tempcyl_3)"); // Shape: xtru_3 type: TGeoXtru nz = 2; nvert = 6; TGeoXtru *xtru = new TGeoXtru(nz); xtru->SetName("xtru_3"); xvert[0] = 24.432583; yvert[0] = -42.318475; xvert[1] = -24.432583; yvert[1] = -42.318475; xvert[2] = -48.865166; yvert[2] = 0.000000; xvert[3] = -24.432583; yvert[3] = 42.318475; xvert[4] = 24.432583; yvert[4] = 42.318475; xvert[5] = 48.865166; yvert[5] = 0.000000; xtru->DefinePolygon(nvert,xvert,yvert); zsect = 0.000000; x0 = 0.000000; y0 = 0.000000; scale0 = 0.625000; xtru->DefineSection(0,zsect,x0,y0,scale0); zsect = 90.000000; x0 = 0.000000; y0 = 0.000000; scale0 = 1.000000; xtru->DefineSection(1,zsect,x0,y0,scale0); TGeoShape *pxtru_3_2 = xtru; // Translation: cyltrans_3 dx = 0.000000; dy = 0.000000; dz = 45.000000; TGeoTranslation *pMatrix4 = new TGeoTranslation("cyltrans_3",dx,dy,dz); pBoolNode = new TGeoIntersection(ppluggedtempcyl_3_5,pxtru_3_2,pMatrix4,0); // Shape: AGATAcrystalComposite_3 type: TGeoCompositeShape TGeoShape *pAGATAcrystalComposite_3_6 = new TGeoCompositeShape("AGATAcrystalComposite_3", pBoolNode); pAGATAcrystalComposite_3_6->SetTitle("(pluggedtempcyl_3:cyltrans_3*xtru_3)"); // Volume: AGATAcrystalType_3 pAGATAcrystalType_3_1071a46e0 = new TGeoVolume("AGATAcrystalType_3",pAGATAcrystalComposite_3_6, pMed2); pAGATAcrystalType_3_1071a46e0->SetLineColor(5); pAGATAcrystalType_3_1071a46e0->SetLineWidth(2); pAGATAcrystalType_3_1071a46e0->SetVisLeaves(kTRUE); pTOP_1071a1db0->AddNode(pAGATAcrystalType_3_1071a46e0, 0); // CLOSE GEOMETRY gGeoManager->CloseGeometry(); gGeoManager->GetTopVolume()->Draw(); Trajectories->Modified(); Trajectories->cd(); Trajectories->SetSelected(Trajectories); }