- // 2. air gap
- ppsdboxnode->cd() ;
- y = ( fGeom->GetPPSDBoxSize(1) - 2 * fGeom->GetMicromegas1Thickness() - fGeom->GetMicro1ToLeadGap() ) / 2. ;
- sprintf(nodename, "%s%d", "GapUp", i) ;
- TNode * gapupnode = new TNode(nodename, nodename, "LeadToM", 0, y, 0) ;
- gapupnode->SetLineColor(kColorAir) ;
- fNodes->Add(gapupnode) ;
- // 3. lead converter
- y = y - fGeom->GetMicro1ToLeadGap() / 2. - fGeom->GetLeadConverterThickness() / 2. ;
- sprintf(nodename, "%s%d", "LeadC", i) ;
- TNode * leadcnode = new TNode(nodename, nodename, "Lead", 0, y, 0) ;
- leadcnode->SetLineColor(kColorPPSD) ;
- fNodes->Add(leadcnode) ;
- // 4. air gap
- y = y - fGeom->GetLeadConverterThickness() / 2. - fGeom->GetLeadToMicro2Gap() / 2. ;
- sprintf(nodename, "%s%d", "GapDown", i) ;
- TNode * gapdownnode = new TNode(nodename, nodename, "MToLead", 0, y, 0) ;
- gapdownnode->SetLineColor(kColorAir) ;
- fNodes->Add(gapdownnode) ;
- // 5. fNumberOfModulesPhi x fNumberOfModulesZ bottom micromegas
- x = ( fGeom->GetPPSDBoxSize(0) - fGeom->GetPPSDModuleSize(0) ) / 2. - fGeom->GetPhiDisplacement() ;
- {
- for ( Int_t iphi = 1; iphi <= fGeom->GetNumberOfModulesPhi(); iphi++ ) {
- Float_t z = ( fGeom->GetPPSDBoxSize(2) - fGeom->GetPPSDModuleSize(2) ) / 2. - fGeom->GetZDisplacement() ;;
- TNode * micro2node ;
- for ( Int_t iz = 1; iz <= fGeom->GetNumberOfModulesZ(); iz++ ) {
- y = - ( fGeom->GetPPSDBoxSize(1) - fGeom->GetMicromegas2Thickness() ) / 2. ;
- sprintf(nodename, "%s%d%d%d", "Mic2", i, iphi, iz) ;
- micro2node = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
- micro2node->SetLineColor(kColorPPSD) ;
- fNodes->Add(micro2node) ;
- // inside bottom micromegas
- micro2node->cd() ;
- // a. top lid
- y = ( fGeom->GetMicromegas2Thickness() - fGeom->GetLidThickness() ) / 2. ;
- sprintf(nodename, "%s%d", "Lidb", i) ;
- TNode * toplidbnode = new TNode(nodename, nodename, "TopLid", 0, y, 0) ;
- toplidbnode->SetLineColor(kColorPPSD) ;
- fNodes->Add(toplidbnode) ;
- // b. composite panel
- y = y - fGeom->GetLidThickness() / 2. - fGeom->GetCompositeThickness() / 2. ;
- sprintf(nodename, "%s%d", "CompUb", i) ;
- TNode * compupbnode = new TNode(nodename, nodename, "TopPanel", 0, y, 0) ;
- compupbnode->SetLineColor(kColorPPSD) ;
- fNodes->Add(compupbnode) ;
- // c. anode
- y = y - fGeom->GetCompositeThickness() / 2. - fGeom->GetAnodeThickness() / 2. ;
- sprintf(nodename, "%s%d", "Anob", i) ;
- TNode * anodebnode = new TNode(nodename, nodename, "Anode", 0, y, 0) ;
- anodebnode->SetLineColor(kColorPPSD) ;
- fNodes->Add(anodebnode) ;
- // d. conversion gas
- y = y - fGeom->GetAnodeThickness() / 2. - ( fGeom->GetConversionGap() + fGeom->GetAvalancheGap() ) / 2. ;
- sprintf(nodename, "%s%d", "GGapb", i) ;
- TNode * ggapbnode = new TNode(nodename, nodename, "GasGap", 0, y, 0) ;
- ggapbnode->SetLineColor(kColorGas) ;
- fNodes->Add(ggapbnode) ;
- // f. cathode
- y = y - ( fGeom->GetConversionGap() + fGeom->GetAvalancheGap() ) / 2. - fGeom->GetCathodeThickness() / 2. ;
- sprintf(nodename, "%s%d", "Cathodeb", i) ;
- TNode * cathodebnode = new TNode(nodename, nodename, "Cathode", 0, y, 0) ;
- cathodebnode->SetLineColor(kColorPPSD) ;
- fNodes->Add(cathodebnode) ;
- // g. printed circuit
- y = y - fGeom->GetCathodeThickness() / 2. - fGeom->GetPCThickness() / 2. ;
- sprintf(nodename, "%s%d", "PCb", i) ;
- TNode * pcbnode = new TNode(nodename, nodename, "PCBoard", 0, y, 0) ;
- pcbnode->SetLineColor(kColorPPSD) ;
- fNodes->Add(pcbnode) ;
- // h. composite pane
- y = y - fGeom->GetPCThickness() / 2. - fGeom->GetCompositeThickness() / 2. ;
- sprintf(nodename, "%s%d", "CompDownb", i) ;
- TNode * compdownbnode = new TNode(nodename, nodename, "BottomPanel", 0, y, 0) ;
- compdownbnode->SetLineColor(kColorPPSD) ;
- fNodes->Add(compdownbnode) ;
- z = z - fGeom->GetPPSDModuleSize(2) ;
- ppsdboxnode->cd() ;
- } // end of Z module loop
- x = x - fGeom->GetPPSDModuleSize(0) ;
- ppsdboxnode->cd() ;
- } // end of phi module loop