FairRoot/PandaRoot
Functions | Variables
modifyRootFscGeometryFile.C File Reference

Go to the source code of this file.

Functions

gSystem Load ("libGeoBase")
 
gSystem Load ("libParBase")
 
gSystem Load ("libBase")
 
gSystem Load ("libPndData")
 
gSystem Load ("libPassive")
 
geoFace setMediaFile ("$VMCWORKDIR/geometry/media_pnd.geo")
 
geoFace readMedia ()
 
geoFace print ()
 
gGeoMan SetTopVolume (top)
 
SuperModuleVolume SetLineColor (2)
 
TyvekVolume SetLineColor (3)
 
SuperModuleVolume AddNode (TyvekVolume, 0)
 
 for (int ix=1;ix<=nClsSuperModuleX;ix++)
 
LeadVolume SetLineColor (4)
 
LayerHolderVolume AddNode (LeadVolume, 0, iCombTrans)
 
SciVolume SetLineColor (5)
 
LayerHolderVolume AddNode (SciVolume, 0, iCombTrans)
 
FiberHoleVolume AddNode (FiberVolume, 0, iCombTrans)
 
fb Close ()
 
MechFsc Print ()
 
MechFsc PrintNodes ()
 
rotMechFsc RotateX (-90.)
 
rotMechFsc RotateY (180.)
 
top AddNode (MFscVol, 0, new TGeoCombiTrans(11.0, 4.8,-38.9, new TGeoRotation(rotMechFsc)))
 
gGeoMan CloseGeometry ()
 
fi cd ()
 
top Write ()
 
top Draw ("ogl")
 

Variables

const Double_t zpos = 760.0
 
const Int_t numcellsx = 54
 
const Int_t numcellsy = 28
 
const Double_t tyvekbundle = 0.025
 
const Double_t paperbundle = 0.025
 
Double_t crystalspace = tyvekbundle+paperbundle
 
const Double_t Absorb_xsize = 5.5
 
const Double_t Absorb_ysize = 5.5
 
const Double_t Air_thickness = 0.0
 
const Double_t Pb_thickness = 0.0275
 
const Double_t Sci_thickness = 0.15
 
const Double_t Sci_xsize = 5.5
 
const Double_t Sci_ysize = 5.5
 
const Int_t EMCnumlayers = 380
 
const Int_t numfibers = 6
 
const Double_t fiber_r = 0.06
 
const Double_t fiber_hole_r = 0.07
 
const Int_t nClsSuperModuleX = 2
 
const Int_t nClsSuperModuleY = 2
 
Double_t cellxsize = TMath::Max(Absorb_xsize,Sci_xsize)
 
Double_t cellysize = TMath::Max(Absorb_ysize,Sci_ysize)
 
Double_t suprModXsize = 2.*cellxsize + 2.*crystalspace + Air_thickness
 
Double_t suprModYsize = 2.*cellysize + 2.*crystalspace + Air_thickness
 
Double_t xsize = suprModXsize*numcellsx/nClsSuperModuleX
 
Double_t ysize = suprModYsize*numcellsy/nClsSuperModuleY
 
Double_t cell_thickness = 2.0*Air_thickness+Pb_thickness+Sci_thickness
 
Double_t thickness = cell_thickness*EMCnumlayers + 2.*crystalspace
 
Double_t holder_thickness = cell_thickness*EMCnumlayers
 
Double_t hole_xsize = 6.*cellxsize
 
Double_t hole_ysize = 6.*cellysize
 
Double_t hole_xpos = 2.0*cellxsize
 
Double_t hole_ypos = 1.0*cellxsize
 
TString outfile = "new_module5_fsc.root"
 
TFile * fi = new TFile(outfile,"RECREATE")
 
FairGeoLoader * geoLoad = new FairGeoLoader("TGeo","FairGeoLoader")
 
FairGeoInterface * geoFace = geoLoad->getGeoInterface()
 
FairGeoMedia * Media = geoFace->getMedia()
 
FairGeoBuilder * geobuild =geoLoad->getGeoBuilder()
 
FairGeoMedium * MediumAir = Media->getMedium("air")
 
FairGeoMedium * MediumTyvek = Media->getMedium("tyvek")
 
FairGeoMedium * MediumCarbon = Media->getMedium("carbon")
 
FairGeoMedium * MediumLead = Media->getMedium("lead")
 
FairGeoMedium * MediumScint = Media->getMedium("FscScint")
 
FairGeoMedium * MediumFiber = Media->getMedium("FscFiber")
 
Int_t nmed =geobuild->createMedium(MediumAir)
 
TGeoManager * gGeoMan = (TGeoManager*)gROOT->FindObject("FAIRGeom")
 
TGeoVolume * top = new TGeoVolumeAssembly("Emc5")
 
TString name = "FscSuperModuleShape"
 
TGeoShape * SuperModuleShape = new TGeoBBox(name,suprModXsize/2.,suprModYsize/2.,thickness/2.)
 
TString medium = "carbon"
 
TGeoVolume * SuperModuleVolume = new TGeoVolume(name, SuperModuleShape, gGeoMan->GetMedium(medium))
 
TGeoShape * TyvekShape = new TGeoBBox(name,suprModXsize/2. - paperbundle,suprModYsize/2. - paperbundle,thickness/2. - paperbundle)
 
TGeoVolume * TyvekVolume = new TGeoVolume(name, TyvekShape, gGeoMan->GetMedium(medium))
 
TGeoShape * ModuleShape = new TGeoBBox(name,cellxsize/2.,cellysize/2.,holder_thickness/2.)
 
TGeoVolume * ModuleVolume = new TGeoVolume(name, ModuleShape, gGeoMan->GetMedium(medium))
 
TGeoCombiTrans * iCombTrans = NULL
 
TGeoRotation rot
 
Int_t iCopy = 0
 
Double_t x
 
Double_t y
 
TGeoShape * LayerHolderShape = new TGeoBBox(name, cellxsize/2. - crystalspace, cellysize/2. - crystalspace, cell_thickness/2.)
 
TGeoVolume * LayerHolderVolume = new TGeoVolumeAssembly(name)
 
TGeoShape * LeadShape = new TGeoBBox(name, cellxsize/2. - crystalspace, cellysize/2. - crystalspace, Pb_thickness/2.)
 
TGeoVolume * LeadVolume = new TGeoVolume(name, LeadShape, gGeoMan->GetMedium(medium))
 
TGeoShape * SciShape = new TGeoBBox(name, cellxsize/2. - crystalspace, cellysize/2. - crystalspace, Sci_thickness/2.)
 
TGeoVolume * SciVolume = new TGeoVolume(name, SciShape, gGeoMan->GetMedium(medium))
 
Double_t z
 
TGeoShape * FiberHoleShape = new TGeoTube(name, 0., fiber_hole_r, (holder_thickness)/2.)
 
TGeoVolume * FiberHoleVolume = new TGeoVolume(name, FiberHoleShape, gGeoMan->GetMedium(medium))
 
TGeoShape * FiberShape = new TGeoTube(name, 0., fiber_r, (holder_thickness)/2.)
 
TGeoVolume * FiberVolume = new TGeoVolume(name, FiberShape, gGeoMan->GetMedium(medium))
 
Int_t CopyCode =0
 
TString FileName = "fsc_cad2root_mech_support.root"
 
TFile * fb = new TFile(FileName)
 
TGeoVolume * MechFsc =(TGeoVolume *)fb->Get("topNode")
 
TGeoNode * n =MechFsc->GetNode(0)
 
TGeoVolume * MFscVol = n->GetVolume()
 
TGeoRotation rotMechFsc
 

Function Documentation

SuperModuleVolume AddNode ( TyvekVolume  ,
 
)
LayerHolderVolume AddNode ( LeadVolume  ,
,
iCombTrans   
)
LayerHolderVolume AddNode ( SciVolume  ,
,
iCombTrans   
)
FiberHoleVolume AddNode ( FiberVolume  ,
,
iCombTrans   
)
top AddNode ( MFscVol  ,
,
new   TGeoCombiTrans11.0, 4.8,-38.9, new TGeoRotation(rotMechFsc) 
)
fi cd ( )
fb Close ( )
gGeoMan CloseGeometry ( )
top Draw ( "ogl"  )
for ( int  ix = 1; ix <= nClsSuperModuleX; ix++)

!NO OVERLAPS

Definition at line 131 of file modifyRootFscGeometryFile.C.

References Double_t, iCopy, and nClsSuperModuleY.

132  {
133  for (int iy = 1; iy <= nClsSuperModuleY; iy++)
134  {
135  x = -cellxsize + 2.*(cellxsize/(Double_t)nClsSuperModuleX)*(ix - 0.5);
136  y = -cellxsize + 2.*(cellxsize/(Double_t)nClsSuperModuleY)*(iy - 0.5);
137  cout<<"===Inside supermodule"<<endl;
138  cout <<"x="<<x<<" y="<<y<<endl;
139  cout <<"ix="<<ix<<" iy="<<iy<<endl;
140 
141  iCombTrans = new TGeoCombiTrans(x,y,0, new TGeoRotation(rot));
142  name = "FscModuleVolume";
143  name+=iCopy;
144  iCombTrans->SetName(name);
145  iCombTrans->RegisterYourself();
147  iCopy++;
148  }
149  }
const Int_t nClsSuperModuleX
TGeoVolume * TyvekVolume
const Int_t nClsSuperModuleY
Double_t
TString name
Double_t x
TGeoRotation rot
TGeoCombiTrans * iCombTrans
Double_t y
Double_t cellxsize
TGeoVolume * ModuleVolume
gSystem Load ( "libGeoBase"  )
gSystem Load ( "libParBase"  )
gSystem Load ( "libBase"  )
gSystem Load ( "libPndData"  )
gSystem Load ( "libPassive"  )
MFscVol Print ( )
MFscVol PrintNodes ( )
geoFace readMedia ( )
rotMechFsc RotateX ( 90.)
rotMechFsc RotateY ( 180.  )
SuperModuleVolume SetLineColor ( )
TyvekVolume SetLineColor ( )
LeadVolume SetLineColor ( )
SciVolume SetLineColor ( )
geoFace setMediaFile ( "$VMCWORKDIR/geometry/media_pnd.geo"  )
gGeoMan SetTopVolume ( top  )
top Write ( )

Variable Documentation

const Double_t Absorb_xsize = 5.5

Definition at line 19 of file modifyRootFscGeometryFile.C.

const Double_t Absorb_ysize = 5.5

Definition at line 20 of file modifyRootFscGeometryFile.C.

const Double_t Air_thickness = 0.0

Definition at line 21 of file modifyRootFscGeometryFile.C.

Definition at line 41 of file modifyRootFscGeometryFile.C.

Double_t cellxsize = TMath::Max(Absorb_xsize,Sci_xsize)

Definition at line 34 of file modifyRootFscGeometryFile.C.

Double_t cellysize = TMath::Max(Absorb_ysize,Sci_ysize)

Definition at line 35 of file modifyRootFscGeometryFile.C.

Int_t CopyCode =0

Definition at line 234 of file modifyRootFscGeometryFile.C.

Definition at line 18 of file modifyRootFscGeometryFile.C.

const Int_t EMCnumlayers = 380

Definition at line 26 of file modifyRootFscGeometryFile.C.

TFile* fb = new TFile(FileName)
TFile* fi = new TFile(outfile,"RECREATE")

Definition at line 63 of file modifyRootFscGeometryFile.C.

const Double_t fiber_hole_r = 0.07

Definition at line 29 of file modifyRootFscGeometryFile.C.

const Double_t fiber_r = 0.06

Definition at line 28 of file modifyRootFscGeometryFile.C.

TGeoShape* FiberHoleShape = new TGeoTube(name, 0., fiber_hole_r, (holder_thickness)/2.)

Definition at line 198 of file modifyRootFscGeometryFile.C.

TGeoVolume* FiberHoleVolume = new TGeoVolume(name, FiberHoleShape, gGeoMan->GetMedium(medium))

Definition at line 201 of file modifyRootFscGeometryFile.C.

TGeoShape* FiberShape = new TGeoTube(name, 0., fiber_r, (holder_thickness)/2.)

Definition at line 224 of file modifyRootFscGeometryFile.C.

TGeoVolume* FiberVolume = new TGeoVolume(name, FiberShape, gGeoMan->GetMedium(medium))

Definition at line 227 of file modifyRootFscGeometryFile.C.

TString FileName = "fsc_cad2root_mech_support.root"
FairGeoBuilder* geobuild =geoLoad->getGeoBuilder()

Definition at line 74 of file modifyRootFscGeometryFile.C.

FairGeoInterface* geoFace = geoLoad->getGeoInterface()

Definition at line 66 of file modifyRootFscGeometryFile.C.

FairGeoLoader* geoLoad = new FairGeoLoader("TGeo","FairGeoLoader")

Definition at line 65 of file modifyRootFscGeometryFile.C.

TGeoManager* gGeoMan = (TGeoManager*)gROOT->FindObject("FAIRGeom")

Definition at line 90 of file modifyRootFscGeometryFile.C.

Double_t holder_thickness = cell_thickness*EMCnumlayers

Definition at line 43 of file modifyRootFscGeometryFile.C.

Double_t hole_xpos = 2.0*cellxsize

Definition at line 48 of file modifyRootFscGeometryFile.C.

Double_t hole_xsize = 6.*cellxsize

Definition at line 45 of file modifyRootFscGeometryFile.C.

Double_t hole_ypos = 1.0*cellxsize

Definition at line 49 of file modifyRootFscGeometryFile.C.

Double_t hole_ysize = 6.*cellysize

Definition at line 46 of file modifyRootFscGeometryFile.C.

iCombTrans = NULL

Definition at line 126 of file modifyRootFscGeometryFile.C.

iCopy = 0

Definition at line 128 of file modifyRootFscGeometryFile.C.

TGeoShape* LayerHolderShape = new TGeoBBox(name, cellxsize/2. - crystalspace, cellysize/2. - crystalspace, cell_thickness/2.)

Definition at line 153 of file modifyRootFscGeometryFile.C.

TGeoVolume* LayerHolderVolume = new TGeoVolumeAssembly(name)

Definition at line 158 of file modifyRootFscGeometryFile.C.

TGeoShape* LeadShape = new TGeoBBox(name, cellxsize/2. - crystalspace, cellysize/2. - crystalspace, Pb_thickness/2.)

Definition at line 163 of file modifyRootFscGeometryFile.C.

TGeoVolume* LeadVolume = new TGeoVolume(name, LeadShape, gGeoMan->GetMedium(medium))

Definition at line 166 of file modifyRootFscGeometryFile.C.

TGeoVolume* MechFsc =(TGeoVolume *)fb->Get("topNode")

Definition at line 271 of file modifyRootFscGeometryFile.C.

FairGeoMedia* Media = geoFace->getMedia()

Definition at line 73 of file modifyRootFscGeometryFile.C.

medium = "carbon"

Definition at line 106 of file modifyRootFscGeometryFile.C.

FairGeoMedium* MediumAir = Media->getMedium("air")

Definition at line 76 of file modifyRootFscGeometryFile.C.

FairGeoMedium* MediumCarbon = Media->getMedium("carbon")

Definition at line 78 of file modifyRootFscGeometryFile.C.

FairGeoMedium* MediumFiber = Media->getMedium("FscFiber")

Definition at line 81 of file modifyRootFscGeometryFile.C.

FairGeoMedium* MediumLead = Media->getMedium("lead")

Definition at line 79 of file modifyRootFscGeometryFile.C.

FairGeoMedium* MediumScint = Media->getMedium("FscScint")

Definition at line 80 of file modifyRootFscGeometryFile.C.

FairGeoMedium* MediumTyvek = Media->getMedium("tyvek")

Definition at line 77 of file modifyRootFscGeometryFile.C.

TGeoVolume* MFscVol = n->GetVolume()

Definition at line 281 of file modifyRootFscGeometryFile.C.

TGeoShape* ModuleShape = new TGeoBBox(name,cellxsize/2.,cellysize/2.,holder_thickness/2.)

Definition at line 121 of file modifyRootFscGeometryFile.C.

TGeoVolume* ModuleVolume = new TGeoVolume(name, ModuleShape, gGeoMan->GetMedium(medium))

Definition at line 124 of file modifyRootFscGeometryFile.C.

TGeoNode* n =MechFsc->GetNode(0)

Definition at line 276 of file modifyRootFscGeometryFile.C.

name = "FscSuperModuleShape"

Definition at line 103 of file modifyRootFscGeometryFile.C.

const Int_t nClsSuperModuleX = 2

Definition at line 31 of file modifyRootFscGeometryFile.C.

const Int_t nClsSuperModuleY = 2

Definition at line 32 of file modifyRootFscGeometryFile.C.

Referenced by for().

Definition at line 83 of file modifyRootFscGeometryFile.C.

const Int_t numcellsx = 54

Definition at line 14 of file modifyRootFscGeometryFile.C.

const Int_t numcellsy = 28

Definition at line 15 of file modifyRootFscGeometryFile.C.

const Int_t numfibers = 6

Definition at line 27 of file modifyRootFscGeometryFile.C.

TString outfile = "new_module5_fsc.root"

Definition at line 61 of file modifyRootFscGeometryFile.C.

const Double_t paperbundle = 0.025

Definition at line 17 of file modifyRootFscGeometryFile.C.

const Double_t Pb_thickness = 0.0275

Definition at line 22 of file modifyRootFscGeometryFile.C.

TGeoRotation rot

Definition at line 127 of file modifyRootFscGeometryFile.C.

TGeoRotation rotMechFsc

Definition at line 290 of file modifyRootFscGeometryFile.C.

const Double_t Sci_thickness = 0.15

Definition at line 23 of file modifyRootFscGeometryFile.C.

const Double_t Sci_xsize = 5.5

Definition at line 24 of file modifyRootFscGeometryFile.C.

const Double_t Sci_ysize = 5.5

Definition at line 25 of file modifyRootFscGeometryFile.C.

TGeoShape* SciShape = new TGeoBBox(name, cellxsize/2. - crystalspace, cellysize/2. - crystalspace, Sci_thickness/2.)

Definition at line 172 of file modifyRootFscGeometryFile.C.

TGeoVolume* SciVolume = new TGeoVolume(name, SciShape, gGeoMan->GetMedium(medium))

Definition at line 175 of file modifyRootFscGeometryFile.C.

TGeoShape* SuperModuleShape = new TGeoBBox(name,suprModXsize/2.,suprModYsize/2.,thickness/2.)

Definition at line 104 of file modifyRootFscGeometryFile.C.

TGeoVolume* SuperModuleVolume = new TGeoVolume(name, SuperModuleShape, gGeoMan->GetMedium(medium))

Definition at line 107 of file modifyRootFscGeometryFile.C.

Double_t suprModXsize = 2.*cellxsize + 2.*crystalspace + Air_thickness

Definition at line 36 of file modifyRootFscGeometryFile.C.

Double_t suprModYsize = 2.*cellysize + 2.*crystalspace + Air_thickness

Definition at line 37 of file modifyRootFscGeometryFile.C.

Definition at line 42 of file modifyRootFscGeometryFile.C.

TGeoVolume* top = new TGeoVolumeAssembly("Emc5")

Definition at line 94 of file modifyRootFscGeometryFile.C.

const Double_t tyvekbundle = 0.025

Definition at line 16 of file modifyRootFscGeometryFile.C.

TGeoShape* TyvekShape = new TGeoBBox(name,suprModXsize/2. - paperbundle,suprModYsize/2. - paperbundle,thickness/2. - paperbundle)

Definition at line 112 of file modifyRootFscGeometryFile.C.

TGeoVolume* TyvekVolume = new TGeoVolume(name, TyvekShape, gGeoMan->GetMedium(medium))

Definition at line 115 of file modifyRootFscGeometryFile.C.

Definition at line 129 of file modifyRootFscGeometryFile.C.

Definition at line 38 of file modifyRootFscGeometryFile.C.

Definition at line 129 of file modifyRootFscGeometryFile.C.

Definition at line 39 of file modifyRootFscGeometryFile.C.

Definition at line 181 of file modifyRootFscGeometryFile.C.

const Double_t zpos = 760.0

Definition at line 13 of file modifyRootFscGeometryFile.C.