- Float_t rmin, rmax, dx, dy, dz, dr, xpos, ypos, zpos;
- Float_t dzc1=4.; // tracking chambers
- Float_t dzc2=15.; // trigger chambers
- Float_t hole=102.; // x-y hole around beam pipe for trig. chambers
- Float_t zscale; // scaling parameter trigger chambers
- Float_t halfx, halfy;
- char nameChamber[9], nameSense[9], nameFrame[9], nameNode[8];
- char nameSense1[9], nameSense2[9];
- for (Int_t i=0; i<7; i++) {
- for (Int_t j=0; j<2; j++) {
- Int_t id=2*i+j+1;
- if (i<5) { // tracking chambers
- if (j==0) {
- zpos=kCz[i]-dzc1;
- } else {
- zpos=kCz[i]+dzc1;
- }
- } else {
- if (j==0) {
- zpos=kCz[i];
- } else {
- zpos=kCz[i]+dzc2;
- }
- }
- sprintf(nameChamber,"C_MUON%d",id);
- sprintf(nameSense,"S_MUON%d",id);
- sprintf(nameSense1,"S1_MUON%d",id);
- sprintf(nameSense2,"S2_MUON%d",id);
- sprintf(nameFrame,"F_MUON%d",id);
- if (i<5) { // tracking chambers
- rmin = kDmin[i]/2.-3;
- rmax = kDmax[i]/2.+3;
- new TTUBE(nameChamber,"Mother","void",rmin,rmax,0.25,1.);
- rmin = kDmin[i]/2.;
- rmax = kDmax[i]/2.;
- new TTUBE(nameSense,"Sens. region","void",rmin,rmax,0.25, 1.);
- dx=(rmax-rmin)/2;
- dy=3.;
- dz=0.25;
- TBRIK* frMUON = new TBRIK(nameFrame,"Frame","void",dx,dy,dz);
- top->cd();
- sprintf(nameNode,"MUON%d",100+id);
- node = new TNode(nameNode,"ChamberNode",nameChamber,0,0,zpos,"");
- node->SetLineColor(kColorMUON);
- fNodes->Add(node);
- node->cd();
- sprintf(nameNode,"MUON%d",200+id);
- node = new TNode(nameNode,"Sens. Region Node",nameSense,0,0,0,"");
- node->SetLineColor(kColorMUON);
- node->cd();
- dr=dx+rmin;
- sprintf(nameNode,"MUON%d",300+id);
- nodeF = new TNode(nameNode,"Frame0",frMUON,dr, 0, 0,rot000,"");
- nodeF->SetLineColor(kColorMUON);
- node->cd();
- sprintf(nameNode,"MUON%d",400+id);
- nodeF = new TNode(nameNode,"Frame1",frMUON,0 ,dr,0,rot090,"");
- nodeF->SetLineColor(kColorMUON);
- node->cd();
- sprintf(nameNode,"MUON%d",500+id);
- nodeF = new TNode(nameNode,"Frame2",frMUON,-dr,0,0,rot180,"");
- nodeF->SetLineColor(kColorMUON);
- node ->cd();
- sprintf(nameNode,"MUON%d",600+id);
- nodeF = new TNode(nameNode,"Frame3",frMUON,0,-dr,0,rot270,"");
- nodeF->SetLineColor(kColorMUON);
- } else {
- zscale=zpos/kCz[5];
- Float_t xsize=kDmin[i]*zscale;
- Float_t ysize=kDmax[i]*zscale;
- Float_t holeScaled=hole*zscale;
-
- halfx=xsize/2.+3.;
- halfy=ysize/2.+3.;
- new TBRIK(nameChamber,"Mother","void",halfx,halfy,0.25);
- top->cd();
- sprintf(nameNode,"MUON%d",100+id);
- node = new TNode(nameNode,"Chambernode",nameChamber,0,0,zpos,"");
- node->SetLineColor(kColorMUON2);
- fNodes->Add(node);
-
-// up/down of beam pipe
- halfx=xsize/2.;
- halfy=(ysize/2.-holeScaled/2.)/2.;
- new TBRIK(nameSense,"Sens. region","void",halfx,halfy,0.25);
-
- node->cd();
- ypos=holeScaled/2.+((ysize/2.-holeScaled/2.)/2.);
- sprintf(nameNode,"MUON%d",200+id);
- nodeS = new TNode(nameNode,"Sens. Region Node",nameSense,0,ypos,0,"");
- nodeS->SetLineColor(kColorMUON2);
-
- node->cd();
- ypos=-1.*ypos;
- sprintf(nameNode,"MUON%d",300+id);
- nodeS = new TNode(nameNode,"Sens. Region Node",nameSense,0,ypos,0,"");
- nodeS->SetLineColor(kColorMUON2);
-
-// left/right of beam pipe
- halfx=(xsize/2.-holeScaled/2.)/2.;
- halfy=holeScaled/2.;
- new TBRIK(nameSense1,"Sens. region","void",halfx,halfy,0.25);
-
- node->cd();
- xpos=holeScaled/2.+((xsize/2.-holeScaled/2.)/2.);
- sprintf(nameNode,"MUON%d",400+id);
- nodeS = new TNode(nameNode,"Sens. Region Node",nameSense1,xpos,0,0,"");
- nodeS->SetLineColor(kColorMUON2);
-
- node->cd();
- xpos=-1.*xpos;
- sprintf(nameNode,"MUON%d",500+id);
- nodeS = new TNode(nameNode,"Sens. Region Node",nameSense1,xpos,0,0,"");
- nodeS->SetLineColor(kColorMUON2);
-
-// missing corners
- halfx=17.*zscale/2.;
- halfy=halfx;
- new TBRIK(nameSense2,"Sens. region","void",halfx,halfy,0.25);
-
- node->cd();
- xpos=holeScaled/2.-halfx;
- ypos=xpos;
- sprintf(nameNode,"MUON%d",600+id);
- nodeS = new TNode(nameNode,"Sens. Region Node",nameSense2,xpos,ypos,0,"");
- nodeS->SetLineColor(kColorMUON2);
-
- node->cd();
- ypos=-1.*xpos;
- sprintf(nameNode,"MUON%d",700+id);
- nodeS = new TNode(nameNode,"Sens. Region Node",nameSense2,xpos,ypos,0,"");
- nodeS->SetLineColor(kColorMUON2);
-
- node->cd();
- xpos=-1.*xpos;
- sprintf(nameNode,"MUON%d",800+id);
- nodeS = new TNode(nameNode,"Sens. Region Node",nameSense2,xpos,ypos,0,"");
- nodeS->SetLineColor(kColorMUON2);
-
- node->cd();
- ypos=-1.*xpos;
- sprintf(nameNode,"MUON%d",900+id);
- nodeS = new TNode(nameNode,"Sens. Region Node",nameSense2,xpos,ypos,0,"");
- nodeS->SetLineColor(kColorMUON2);
- }
- }
- }