/*
$Log$
+Revision 1.18 2001/03/12 17:46:43 hristov
+Changes needed on Sun with CC 5.0
+
Revision 1.17 2001/01/26 19:59:53 hristov
Major upgrade of AliRoot code
// START define the different volumes
new TRotMatrix("rot999","rot999", 90,0,90,90,180,0);
- new TTUBE("S_STR1","START volume 1","void",5.,10.7,5.3);
+ new TTUBE("S_0ST1","START volume 1","void",5.,10.7,5.3);
top->cd();
- node = new TNode("STR1","STR1","S_STR1",0,0,75.,"");
+ node = new TNode("0ST1","0ST01","S_0ST1",0,0,75.,"");
node->SetLineColor(kColorSTART);
fNodes->Add(node);
- new TTUBE("S_STR2","START volume 2","void",5.,10.7,5.3);
+ new TTUBE("S_0ST2","START volume 2","void",5.,10.7,5.3);
top->cd();
- node = new TNode("STR2","STR2","S_STR2",0,0,-75,"rot999");
+ node = new TNode("0ST2","0ST2","S_0ST2",0,0,-75,"rot999");
node->SetLineColor(kColorSTART);
fNodes->Add(node);
}
// Here the START initialisation code (if any!)
for(i=0;i<80;i++) printf("*");
printf("\n");
- //
- //
- // fIdSensRad=gMC->VolId("PTOP");
- // fIdSensPC =gMC->VolId("T0PC");
}
/*
$Log$
+Revision 1.10 2000/12/04 08:48:19 alibrary
+Fixing problems in the HEAD
+
Revision 1.9 2000/10/02 21:28:13 fca
Removal of useless dependecies via forward declarations
//-------------------------------------------------------------------
AliMatrix(idrotm[901], 90., 0., 90., 90., 180., 0.);
- gMC->Gsvolu("STRT","TUBE",idtmed[1],pstart,3);
- gMC->Gspos("STRT",1,"ALIC",0.,0.,zdet,0,"ONLY");
- gMC->Gspos("STRT",2,"ALIC",0.,0.,-zdet,idrotm[901],"ONLY");
+ gMC->Gsvolu("0STA","TUBE",idtmed[1],pstart,3);
+ gMC->Gspos("0STA",1,"ALIC",0.,0.,zdet,0,"ONLY");
+ gMC->Gspos("0STA",2,"ALIC",0.,0.,-zdet,idrotm[901],"ONLY");
//START interior
- gMC->Gsvolu("PMT ","TUBE",idtmed[3],ppmt,3);
- gMC->Gsvolu("DIVI","TUBE",idtmed[3],pdivider,3);
+ gMC->Gsvolu("0PMT","TUBE",idtmed[3],ppmt,3);
+ gMC->Gsvolu("0DIV","TUBE",idtmed[3],pdivider,3);
// first ring: 12 units of Scintillator+PMT+divider
Double_t dang1 = 2*TMath::Pi()/12;
x=6.5*TMath::Sin(is*dang1);
y=6.5*TMath::Cos(is*dang1);
z=-pstart[2]+ppmt[2];
- gMC->Gspos("PMT ",is,"STRT",x,y,z,0,"ONLY");
+ gMC->Gspos("0PMT",is,"0STA",x,y,z,0,"ONLY");
printf("z PMT %f\n",z);
z=z+ppmt[2]+pdiv2[2];
printf(" is %d, z Divider %f\n",is,z);
- gMC->Gspos("DIVI",is,"STRT",x,y,z,0,"ONLY");
+ gMC->Gspos("0DIV",is,"0STA",x,y,z,0,"ONLY");
}
/*
//second ring: 20 units of Scintillator+PMT+divider
x=9.3*TMath::Sin(dang2+(is-13)*dang3);
y=9.3*TMath::Cos(dang2+(is-13)*dang3);
z=-pstart[2]+ppmt[2];
- gMC->Gspos("PMT ",is,"STRT",x,y,z,0,"ONLY");
+ gMC->Gspos("0PMT",is,"0ST",x,y,z,0,"ONLY");
z=z+ppmt[2]+pdiv2[2];
- gMC->Gspos("DIVI",is,"STRT",x,y,z,0,"ONLY");
+ gMC->Gspos("0DI",is,"0ST",x,y,z,0,"ONLY");
}
*/
// PMT
// Entry window (glass)
- gMC->Gsvolu("PTOP","TUBE",idtmed[6],ptop,3);
+ gMC->Gsvolu("0TOP","TUBE",idtmed[6],ptop,3);
z=-ppmt[2]+ptop[2];
- gMC->Gspos("PTOP",1,"PMT ",0,0,z,0,"ONLY");
+ gMC->Gspos("0TOP",1,"0PMT",0,0,z,0,"ONLY");
// printf("Z PTOP %f -ppmt[2] %f ptop[2] %f\n",z,-ppmt[2],ptop[2]);
// Bottom glass
- gMC->Gsvolu("PBOT","TUBE",idtmed[6],pbot,3);
+ gMC->Gsvolu("0BO","TUBE",idtmed[6],pbot,3);
z=ppmt[2]-pbot[2];
printf("Z bottom %f\n",z);
- gMC->Gspos("PBOT",1,"PMT ",0,0,z,0,"ONLY");
+ gMC->Gspos("0BO",1,"0PMT",0,0,z,0,"ONLY");
// Side cylinder glass
- gMC->Gsvolu("POUT","TUBE",idtmed[6],pglass,3);
+ gMC->Gsvolu("0UO","TUBE",idtmed[6],pglass,3);
z=ppmt[2]-pglass[2];
// printf("Z glass %f\n",z);
- gMC->Gspos("POUT",1,"PMT ",0,0,z,0,"ONLY");
+ gMC->Gspos("0OU",1,"0PMT",0,0,z,0,"ONLY");
//PMT electrodes support structure
- gMC->Gsvolu("PCER","TUBE",idtmed[4],pcer,3);
- gMC->Gsvolu("PSTE","TUBE",idtmed[8],psteel,3);
+ gMC->Gsvolu("0CE","TUBE",idtmed[4],pcer,3);
+ gMC->Gsvolu("0IR","TUBE",idtmed[8],psteel,3);
z=-ppmt[2]+2*ptop[2]+0.3;;
// printf("Z Cer 1 %f\n",z);
for (is=1; is<=15; is++)
{
z=z+psteel[2]+pcer[2];
- gMC->Gspos("PCER",is,"PMT",0,0,z,0,"ONLY");
+ gMC->Gspos("0CE",is,"0PMT",0,0,z,0,"ONLY");
z=z+psteel[2]+pcer[2];
- gMC->Gspos("PSTE",is,"PMT",0,0,z,0,"ONLY");
+ gMC->Gspos("0IR",is,"0PMT",0,0,z,0,"ONLY");
}
// Divider
// Knob at the bottom of PMT baloon
- gMC->Gsvolu("KNOB","TUBE",idtmed[6],pknob,3);
+ gMC->Gsvolu("0OB","TUBE",idtmed[6],pknob,3);
z=-pdivider[2]+pknob[2];
// printf("zknob %f\n",z);
- gMC->Gspos("KNOB",1,"DIVI",0,0,z,0,"ONLY");
- gMC->Gsvolu("KNBO","TUBE",idtmed[6],pknob_bot,3);
+ gMC->Gspos("0OB",1,"0DIV",0,0,z,0,"ONLY");
+ gMC->Gsvolu("0KB","TUBE",idtmed[6],pknob_bot,3);
z=-pdivider[2]+2*pknob[2]+pknob_bot[2];
// printf("knobbot %f\n",z);
- gMC->Gspos("KNBO",1,"DIVI ",0,0,z,0,"ONLY");
- gMC->Gsvolu("KNVA","TUBE",idtmed[6],pknob_vac,3);
+ gMC->Gspos("0KB",1,"0DIV",0,0,z,0,"ONLY");
+ gMC->Gsvolu("0VA","TUBE",idtmed[6],pknob_vac,3);
z=-pdivider[2]+pknob_vac[2];
// printf("knobvac %f\n",z);
- gMC->Gspos("KNVA",1,"DIVI",0,0,z,0,"ONLY");
+ gMC->Gspos("0VA",1,"0DIV",0,0,z,0,"ONLY");
//Steel pins + pin holes
- gMC->Gsvolu("PINS","TUBE",idtmed[8],ppins,3);
+ gMC->Gsvolu("0PI","TUBE",idtmed[8],ppins,3);
z=-pdivider[2]+ppins[2];
- gMC->Gspos("PINS",1,"DIVI",0,0,z,0,"ONLY");
- gMC->Gsvolu("HOLE","TUBE",idtmed[11],phole,3);
+ gMC->Gspos("0PI",1,"0DIV",0,0,z,0,"ONLY");
+ gMC->Gsvolu("0HO","TUBE",idtmed[11],phole,3);
z=-pdivider[2]+2*ppins[2]+phole[2];
- gMC->Gspos("HOLE",1,"DIVI",0,0,z,0,"ONLY");
+ gMC->Gspos("0HO",1,"0DIV",0,0,z,0,"ONLY");
//Socket
- gMC->Gsvolu("DIV1","TUBE",idtmed[4],pdiv1,3);
+ gMC->Gsvolu("0V1","TUBE",idtmed[4],pdiv1,3);
z=-pdivider[2]+pdiv1[2];
- gMC->Gspos("DIV1",1,"DIVI",0,0,z,0,"ONLY");
+ gMC->Gspos("0V1",1,"0DIV",0,0,z,0,"ONLY");
//Resistors
- gMC->Gsvolu("DIV2","TUBE",idtmed[1],pdiv2,3);
+ gMC->Gsvolu("0V2","TUBE",idtmed[1],pdiv2,3);
z=pdivider[2]-pdiv2[2];
- gMC->Gspos("DIV2",1,"DIVI",0,0,z,0,"ONLY");
- gMC->Gsvolu("DRES","TUBE",idtmed[4],presist,3);
+ gMC->Gspos("0V2",1,"0DIV",0,0,z,0,"ONLY");
+ gMC->Gsvolu("0DR","TUBE",idtmed[4],presist,3);
z=-pdiv2[2]+presist[2];
- gMC->Gspos("DRES",1,"DIV2",0,0,z,0,"ONLY");
- gMC->Gsvolu("DRIB","TUBE",idtmed[9],pribber,3);
+ gMC->Gspos("0DR",1,"0V2",0,0,z,0,"ONLY");
+ gMC->Gsvolu("0RB","TUBE",idtmed[9],pribber,3);
z=pdiv2[2]-pribber[2];
- gMC->Gspos("DRIB",1,"DIV2",0,0,z,0,"ONLY");
+ gMC->Gspos("0RB",1,"0V2",0,0,z,0,"ONLY");
// printf("z DRIB %f\n",z);
gMC->Gsatt("ALIC","SEEN",0);
//
//Set volumes visible
- gMC->Gsatt("STRT","SEEN",0);
- gMC->Gsatt("PMT ","SEEN",1);
- gMC->Gsatt("DIVI","SEEN",1);
+ gMC->Gsatt("0STA","SEEN",0);
+ gMC->Gsatt("0PMT","SEEN",1);
+ gMC->Gsatt("0DIV","SEEN",1);
//
gMC->Gdopt("hide","on");
gMC->Gdopt("shad","on");
//
//Int_t *idtmed = gAlice->Idtmed();
AliSTART::Init();
- fIdSens1=gMC->VolId("PTOP");
+ fIdSens1=gMC->VolId("0TOP");
printf("*** START version 0 initialized ***\n");
}
Float_t theta=(180./3.1415)*TMath::ATan(6.5/zdet);
AliMatrix(idrotm[901], 90., 0., 90., 90., 180., 0.);
- gMC->Gsvolu("STRT","TUBE",idtmed[1],pstart,3);
- gMC->Gspos("STRT",1,"ALIC",0.,0.,zdet,0,"ONLY");
- gMC->Gspos("STRT",2,"ALIC",0.,0.,-zdet,idrotm[901],"ONLY");
+ gMC->Gsvolu("0STA","TUBE",idtmed[1],pstart,3);
+ gMC->Gspos("0STA",1,"ALIC",0.,0.,zdet,0,"ONLY");
+ gMC->Gspos("0STA",2,"ALIC",0.,0.,-zdet,idrotm[901],"ONLY");
//START interior
- gMC->Gsvolu("INST","TUBE",idtmed[1],pinstart,3);
- gMC->Gsvolu("PMT ","TUBE",idtmed[3],ppmt,3);
- gMC->Gsvolu("DIVI","TUBE",idtmed[3],pdivider,3);
+ gMC->Gsvolu("0INS","TUBE",idtmed[1],pinstart,3);
+ gMC->Gsvolu("0PMT","TUBE",idtmed[3],ppmt,3);
+ gMC->Gsvolu("0DIV","TUBE",idtmed[3],pdivider,3);
// first ring: 12 units of Scintillator+PMT+divider
Double_t dang1 = 2*TMath::Pi()/12;
x=6.5*TMath::Sin(is*dang1);
y=6.5*TMath::Cos(is*dang1);
z=-pstart[2]+pinstart[2];
- gMC->Gspos("INST",is,"STRT",x,y,z,idrotm[901+is],"ONLY");
+ gMC->Gspos("0INS",is,"0STA",x,y,z,idrotm[901+is],"ONLY");
printf("z PMT %f\n",z);
y=0;
z=-pinstart[2]+ppmt[2];
printf(" is %d, z Divider %f\n",is,z);
- gMC->Gspos("PMT ",is,"INST",x,y,z,0,"ONLY");
+ gMC->Gspos("0PMT",is,"0INS",x,y,z,0,"ONLY");
z=pinstart[2]-pdivider[2];
- gMC->Gspos("DIVI",is,"INST",x,y,z,0,"ONLY");
+ gMC->Gspos("0DIV",is,"0INS",x,y,z,0,"ONLY");
}
/*
//second ring: 20 units of Scintillator+PMT+divider
x=9.3*TMath::Sin(dang2+(is-13)*dang3);
y=9.3*TMath::Cos(dang2+(is-13)*dang3);
z=-pstart[2]+ppmt[2];
- gMC->Gspos("PMT ",is,"STRT",x,y,z,0,"ONLY");
+ gMC->Gspos("0PMT",is,"0STA",x,y,z,0,"ONLY");
z=z+ppmt[2]+pdiv2[2];
- gMC->Gspos("DIVI",is,"STRT",x,y,z,0,"ONLY");
+ gMC->Gspos("0DIV",is,"0STA",x,y,z,0,"ONLY");
}
*/
// PMT
// Entry window (glass)
- gMC->Gsvolu("PTOP","TUBE",idtmed[6],ptop,3);
+ gMC->Gsvolu("0TOP","TUBE",idtmed[6],ptop,3);
z=-ppmt[2]+ptop[2];
- gMC->Gspos("PTOP",1,"PMT ",0,0,z,0,"ONLY");
+ gMC->Gspos("0TOP",1,"0PMT",0,0,z,0,"ONLY");
// printf("Z PTOP %f -ppmt[2] %f ptop[2] %f\n",z,-ppmt[2],ptop[2]);
// Bottom glass
- gMC->Gsvolu("PBOT","TUBE",idtmed[6],pbot,3);
+ gMC->Gsvolu("0BOT","TUBE",idtmed[6],pbot,3);
z=ppmt[2]-pbot[2];
printf("Z bottom %f\n",z);
- gMC->Gspos("PBOT",1,"PMT ",0,0,z,0,"ONLY");
+ gMC->Gspos("0BOT",1,"0PMT",0,0,z,0,"ONLY");
// Side cylinder glass
- gMC->Gsvolu("POUT","TUBE",idtmed[6],pglass,3);
+ gMC->Gsvolu("0OUT","TUBE",idtmed[6],pglass,3);
z=ppmt[2]-pglass[2];
// printf("Z glass %f\n",z);
- gMC->Gspos("POUT",1,"PMT ",0,0,z,0,"ONLY");
+ gMC->Gspos("0OUT",1,"0PMT",0,0,z,0,"ONLY");
//PMT electrodes support structure
- gMC->Gsvolu("PCER","TUBE",idtmed[4],pcer,3);
- gMC->Gsvolu("PSTE","TUBE",idtmed[8],psteel,3);
+ gMC->Gsvolu("0CER","TUBE",idtmed[4],pcer,3);
+ gMC->Gsvolu("0STE","TUBE",idtmed[8],psteel,3);
z=-ppmt[2]+2*ptop[2]+0.3;;
// printf("Z Cer 1 %f\n",z);
for (is=1; is<=15; is++)
{
z=z+psteel[2]+pcer[2];
- gMC->Gspos("PCER",is,"PMT",0,0,z,0,"ONLY");
+ gMC->Gspos("0CER",is,"0PMT",0,0,z,0,"ONLY");
z=z+psteel[2]+pcer[2];
- gMC->Gspos("PSTE",is,"PMT",0,0,z,0,"ONLY");
+ gMC->Gspos("0STE",is,"0PMT",0,0,z,0,"ONLY");
}
// Divider
// Knob at the bottom of PMT baloon
- gMC->Gsvolu("KNOB","TUBE",idtmed[6],pknob,3);
+ gMC->Gsvolu("0NB","TUBE",idtmed[6],pknob,3);
z=-pdivider[2]+pknob[2];
// printf("zknob %f\n",z);
- gMC->Gspos("KNOB",1,"DIVI",0,0,z,0,"ONLY");
- gMC->Gsvolu("KNBO","TUBE",idtmed[6],pknob_bot,3);
+ gMC->Gspos("0NB",1,"0DIV",0,0,z,0,"ONLY");
+ gMC->Gsvolu("0KB","TUBE",idtmed[6],pknob_bot,3);
z=-pdivider[2]+2*pknob[2]+pknob_bot[2];
- // printf("knobbot %f\n",z);
- gMC->Gspos("KNBO",1,"DIVI ",0,0,z,0,"ONLY");
- gMC->Gsvolu("KNVA","TUBE",idtmed[3],pknob_vac,3);
+ // printf(knobbot %f\n",z);
+ gMC->Gspos("0KB",1,"0DIV ",0,0,z,0,"ONLY");
+ gMC->Gsvolu("0VAC","TUBE",idtmed[3],pknob_vac,3);
z=-pdivider[2]+pknob_vac[2];
// printf("knobvac %f\n",z);
- gMC->Gspos("KNVA",1,"DIVI",0,0,z,0,"ONLY");
+ gMC->Gspos("0VAC",1,"0DIV",0,0,z,0,"ONLY");
//Steel pins + pin holes
- gMC->Gsvolu("PINS","TUBE",idtmed[8],ppins,3);
+ gMC->Gsvolu("0PIN","TUBE",idtmed[8],ppins,3);
z=-pdivider[2]+ppins[2];
- gMC->Gspos("PINS",1,"DIVI",0,0,z,0,"ONLY");
- gMC->Gsvolu("HOLE","TUBE",idtmed[11],phole,3);
+ gMC->Gspos("0PIN",1,"0DIV",0,0,z,0,"ONLY");
+ gMC->Gsvolu("0HOL","TUBE",idtmed[11],phole,3);
z=-pdivider[2]+2*ppins[2]+phole[2];
- gMC->Gspos("HOLE",1,"DIVI",0,0,z,0,"ONLY");
+ gMC->Gspos("0HOL",1,"0DIV",0,0,z,0,"ONLY");
//Socket
- gMC->Gsvolu("DIV1","TUBE",idtmed[4],pdiv1,3);
+ gMC->Gsvolu("0V1","TUBE",idtmed[4],pdiv1,3);
z=-pdivider[2]+pdiv1[2];
- gMC->Gspos("DIV1",1,"DIVI",0,0,z,0,"ONLY");
+ gMC->Gspos("0V1",1,"0DIV",0,0,z,0,"ONLY");
//Resistors
- gMC->Gsvolu("DIV2","TUBE",idtmed[1],pdiv2,3);
+ gMC->Gsvolu("0V2","TUBE",idtmed[1],pdiv2,3);
z=pdivider[2]-pdiv2[2];
- gMC->Gspos("DIV2",1,"DIVI",0,0,z,0,"ONLY");
- gMC->Gsvolu("DRES","TUBE",idtmed[4],presist,3);
+ gMC->Gspos("0V2",1,"0DIV",0,0,z,0,"ONLY");
+ gMC->Gsvolu("0RS","TUBE",idtmed[4],presist,3);
z=-pdiv2[2]+presist[2];
- gMC->Gspos("DRES",1,"DIV2",0,0,z,0,"ONLY");
- gMC->Gsvolu("DRIB","TUBE",idtmed[9],pribber,3);
+ gMC->Gspos("0RS",1,"0V2",0,0,z,0,"ONLY");
+ gMC->Gsvolu("0RB","TUBE",idtmed[9],pribber,3);
z=pdiv2[2]-pribber[2];
- gMC->Gspos("DRIB",1,"DIV2",0,0,z,0,"ONLY");
+ gMC->Gspos("0RB",1,"0V2",0,0,z,0,"ONLY");
// printf("z DRIB %f\n",z);
gMC->Gsatt("ALIC","SEEN",0);
//
//Set volumes visible
- // gMC->Gsatt("STRT","SEEN",0);
- gMC->Gsatt("INST","SEEN",0);
- gMC->Gsatt("PMT ","SEEN",1);
- gMC->Gsatt("DIVI","SEEN",1);
+ // gMC->Gsatt("0ST","SEEN",0);
+ gMC->Gsatt("0INS","SEEN",0);
+ gMC->Gsatt("0PMT","SEEN",1);
+ gMC->Gsatt("0DIV","SEEN",1);
//
gMC->Gdopt("hide","on");
gMC->Gdopt("shad","on");
//
//Int_t *idtmed = gAlice->Idtmed();
AliSTART::Init();
- fIdSens1=gMC->VolId("PTOP");
+ fIdSens1=gMC->VolId("0TOP");
printf("*** START version 0 initialized ***\n");
}
if(id==fIdSens1 ) {
if(gMC->IsTrackEntering()) {
gMC->CurrentVolOffID(2,copy);
- vol[0]=copy;
- gMC->CurrentVolOffID(1,copy1);
- vol[1]=copy1;
+ vol[1]=copy;
+ gMC->CurrentVolOffID(3,copy1);
+ vol[0]=copy1;
gMC->TrackPosition(pos);
hits[0] = pos[0];
hits[1] = pos[1];
void ViewSTART()
{
// gMC->Gsatt("STRT","seen",0);
- gMC->Gsatt("INST","seen",0);
- gMC->Gsatt("PMT","seen",1);
- gMC->Gsatt("DIVI","seen",1);
+ gMC->Gsatt("0IN","seen",0);
+ gMC->Gsatt("0PM","seen",1);
+ gMC->Gsatt("0DI","seen",1);
}