AliMatrix (idrotm[901], 90., 0., 90., 90., 180., 0.);
- gMC->Gsvolu ("0RST", "TUBE", idtmed[3], pstart, 3);
- gMC->Gsvolu ("0LST", "TUBE", idtmed[3], pstart, 3);
- gMC->Gspos ("0RST", 1, "ALIC", 0., 0., -zRight, 0, "ONLY");
- gMC->Gspos ("0LST", 1, "ALIC", 0., 0., zLeft, idrotm[901], "ONLY");
+ TVirtualMC::GetMC()->Gsvolu ("0RST", "TUBE", idtmed[3], pstart, 3);
+ TVirtualMC::GetMC()->Gsvolu ("0LST", "TUBE", idtmed[3], pstart, 3);
+ TVirtualMC::GetMC()->Gspos ("0RST", 1, "ALIC", 0., 0., -zRight, 0, "ONLY");
+ TVirtualMC::GetMC()->Gspos ("0LST", 1, "ALIC", 0., 0., zLeft, idrotm[901], "ONLY");
// 12 unit: PMT + divider
- gMC->Gsvolu("0INS", "TUBE", idtmed[3], pinstart, 3);
+ TVirtualMC::GetMC()->Gsvolu("0INS", "TUBE", idtmed[3], pinstart, 3);
z = 0;
for (i = 0; i < 12; i++)
{
90. + theta, phi[1],
theta, phi[2]);
- gMC->Gspos ("0INS", i + 1, "0RST", x, y, z, idrotm[902 + i], "ONLY");
- gMC->Gspos ("0INS", i + 13, "0LST", x, y, z, 0, "ONLY");
+ TVirtualMC::GetMC()->Gspos ("0INS", i + 1, "0RST", x, y, z, idrotm[902 + i], "ONLY");
+ TVirtualMC::GetMC()->Gspos ("0INS", i + 13, "0LST", x, y, z, 0, "ONLY");
}
- gMC->Gsvolu ("0PMT", "TUBE", idtmed[1], ppmt, 3);
+ TVirtualMC::GetMC()->Gsvolu ("0PMT", "TUBE", idtmed[1], ppmt, 3);
x = y = 0;
z = -pinstart[2] + ppmt[2];
- gMC->Gspos ("0PMT", 1, "0INS", x, y, z, 0, "ONLY");
+ TVirtualMC::GetMC()->Gspos ("0PMT", 1, "0INS", x, y, z, 0, "ONLY");
// PMT
// Entry window (glass)
- gMC->Gsvolu ("0TOP", "TUBE", idtmed[6], ptop, 3);
+ TVirtualMC::GetMC()->Gsvolu ("0TOP", "TUBE", idtmed[6], ptop, 3);
z = -ppmt[2] + ptop[2];
- gMC->Gspos ("0TOP", 1, "0PMT", 0, 0, z, 0, "ONLY");
+ TVirtualMC::GetMC()->Gspos ("0TOP", 1, "0PMT", 0, 0, z, 0, "ONLY");
- gMC->Gsvolu ("0REG", "TUBE", idtmed[6], preg, 3);
+ TVirtualMC::GetMC()->Gsvolu ("0REG", "TUBE", idtmed[6], preg, 3);
z = -ppmt[2] + 2 * ptop[2] + preg[2];
- gMC->Gspos ("0REG", 1, "0PMT", 0, 0, z, 0, "ONLY");
+ TVirtualMC::GetMC()->Gspos ("0REG", 1, "0PMT", 0, 0, z, 0, "ONLY");
- gMC->Gsvolu ("0DES", "TUBE", idtmed[6], pdes, 3);
+ TVirtualMC::GetMC()->Gsvolu ("0DES", "TUBE", idtmed[6], pdes, 3);
z = -ppmt[2] + 2 * ptop[2] + preg[2];
- gMC->Gspos ("0DES", 1, "0PMT", 0, 0, z, 0, "ONLY");
+ TVirtualMC::GetMC()->Gspos ("0DES", 1, "0PMT", 0, 0, z, 0, "ONLY");
}
//////////////////////////////////////////////////////////////////////
void AliT0v2::CreateMaterials()
{
- Int_t isxfld = gAlice->Field()->Integ();
- Float_t sxmgmx = gAlice->Field()->Max();
+ Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
+ Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
+
+ Double_t a, z, d, radl, absl;
+ TArrayT par;
- Float_t a, z, d, radl, absl, buf[1];
- Int_t nbuf;
// Scintillator CH
Float_t ascin[2] = {1.01, 12.01};
AliMixture (3, "Al2O3 $", aal2o3, zal2o3, denscer, -2, wal2o3);
AliMixture (4, "PMT glass $", aglass, zglass, dglass, -2, wglass);
- char namate[21]="";
- gMC->Gfmate ((*fIdmate)[3], namate, a, z, d, radl, absl, buf, nbuf);
+ TString namate;
+ TVirtualMC::GetMC()->GetMaterial((*fIdmate)[3], namate, a, z, d, radl, absl, par);
acer[0] = a;
zcer[0] = z;
- gMC->Gfmate ((*fIdmate)[4], namate, a, z, d, radl, absl, buf, nbuf);
+ TVirtualMC::GetMC()->GetMaterial((*fIdmate)[4], namate, a, z, d, radl, absl, par);
acer[1] = a;
zcer[1] = z;
}
-//////////////////////////////////////////////////////////////////////
-// Draw a shaded view of the Forward multiplicity detector version 2
-//////////////////////////////////////////////////////////////////////
-void AliT0v2::DrawModule() const
-{
- //Set ALIC mother transparent
- gMC->Gsatt ("ALIC", "SEEN", 0);
-
- //Set volumes visible
- gMC->Gsatt ("0STA", "SEEN", 0);
- gMC->Gsatt ("0PMT", "SEEN", 1);
- gMC->Gsatt ("0DIV", "SEEN", 1);
-
- gMC->Gdopt ("hide", "on");
- gMC->Gdopt ("shad", "on");
- gMC->SetClipBox (".");
- gMC->SetClipBox ("*", 0, 1000, -1000, 1000, -1000, 1000);
- gMC->DefaultRange();
- gMC->Gdraw ("alic", 40, 30, 0, 12, 9.5, 0.7, 0.7);
- gMC->Gdhead (1111, "T-Zero detector");
- gMC->Gdopt ("hide", "off");
-}
//////////////////////////////////////////////////////////////////////
// Definition of optical properties for the Forward Multiplicity Detector
Int_t *idtmed = fIdtmed->GetArray();
- gMC->SetCerenkov (idtmed[6], NUMENTRIES, ppckov, absor_qwarz, effic_all, rindex_qwarz);
- gMC->SetCerenkov (idtmed[1], NUMENTRIES, ppckov, absor_air, effic_all, rindex_air);
+ TVirtualMC::GetMC()->SetCerenkov (idtmed[6], NUMENTRIES, ppckov, absor_qwarz, effic_all, rindex_qwarz);
+ TVirtualMC::GetMC()->SetCerenkov (idtmed[1], NUMENTRIES, ppckov, absor_air, effic_all, rindex_air);
}
//////////////////////////////////////////////////////////////////////
void AliT0v2::Init()
{
AliT0::Init();
- fIdSens1 = gMC->VolId ("0REG");
+ fIdSens1 = TVirtualMC::GetMC()->VolId ("0REG");
printf ("*** T0 version 2 initialized ***\n");
}
TLorentzVector mom;
- if(!gMC->IsTrackAlive()) return; // particle has disappeared
+ if(!TVirtualMC::GetMC()->IsTrackAlive()) return; // particle has disappeared
-// TGeant3 *g3 = (TGeant3*) gMC;
+// TGeant3 *g3 = (TGeant3*) TVirtualMC::GetMC();
// g3->Gpcxyz();
TClonesArray &lhits = *fHits;
///////////////////////////////////////////////
// If particles is photon then ...
- if (gMC->TrackPid() == 50000050)
+ if (TVirtualMC::GetMC()->TrackPid() == 50000050)
{
- id = gMC->CurrentVolID(copy);
+ id = TVirtualMC::GetMC()->CurrentVolID(copy);
// Check the sensetive volume
if (id == fIdSens1)
{
- if (gMC->IsTrackEntering())
+ if (TVirtualMC::GetMC()->IsTrackEntering())
{
- gMC->CurrentVolOffID(2,copy);
+ TVirtualMC::GetMC()->CurrentVolOffID(2,copy);
if (copy < 13)
{
vol[0] = RIGHT_ARRAY;
vol[1] = copy - 12;
}
- gMC->TrackPosition(pos);
- gMC->TrackMomentum(mom);
+ TVirtualMC::GetMC()->TrackPosition(pos);
+ TVirtualMC::GetMC()->TrackMomentum(mom);
XYZ[0] = pos[0];
XYZ[1] = pos[1];
XYZ[2] = pos[2];
- gMC->Gmtod (XYZ, xyz, 1);
+ TVirtualMC::GetMC()->Gmtod (XYZ, xyz, 1);
hitPhoton[0] = sqrt (xyz[0] * xyz[0] + xyz[1] * xyz[1]);
hitPhoton[1] = mom[0];
hitPhoton[2] = mom[1];
hitPhoton[3] = mom[2];
- hitPhoton[4] = 1e9 * gMC->TrackTime();
- hitPhoton[5] = 1e9 * gMC->Etot();
+ hitPhoton[4] = 1e9 * TVirtualMC::GetMC()->TrackTime();
+ hitPhoton[5] = 1e9 * TVirtualMC::GetMC()->Etot();
AddHitPhoton (gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hitPhoton);
}
- gMC->StopTrack();
+ TVirtualMC::GetMC()->StopTrack();
}
else
- if (id == gMC->VolId ("0DES")) gMC->StopTrack();
+ if (id == TVirtualMC::GetMC()->VolId ("0DES")) TVirtualMC::GetMC()->StopTrack();
}
// end photon particalary
///////////////////////////////////////////////
// If particles is charge then ...
- // Float_t charge = gMC->TrackCharge();
+ // Float_t charge = TVirtualMC::GetMC()->TrackCharge();
// if(TMath::Abs(charge) <= 0.) return;
- id = gMC->CurrentVolID(copy);
+ id = TVirtualMC::GetMC()->CurrentVolID(copy);
- // printf("gMC->ckine->ipart %d",gMC->ckine->ipart);
+ // printf("TVirtualMC::GetMC()->ckine->ipart %d",TVirtualMC::GetMC()->ckine->ipart);
// Check the sensetive volume
- if(id==gMC->VolId("0TOP") ) {
- if(gMC->IsTrackEntering()) {
- gMC->CurrentVolOffID(2,copy);
+ if(id==TVirtualMC::GetMC()->VolId("0TOP") ) {
+ if(TVirtualMC::GetMC()->IsTrackEntering()) {
+ TVirtualMC::GetMC()->CurrentVolOffID(2,copy);
if (copy < 13)
{
vol[0] = RIGHT_ARRAY;
vol[1] = copy - 12;
}
- gMC->TrackPosition(pos);
+ TVirtualMC::GetMC()->TrackPosition(pos);
hits[0] = pos[0];
hits[1] = pos[1];
hits[2] = pos[2];
- Float_t etot = gMC->Etot();
+ Float_t etot = TVirtualMC::GetMC()->Etot();
hits[4] = etot;
- Int_t part = gMC->TrackPid();
+ Int_t part = TVirtualMC::GetMC()->TrackPid();
hits[5] = part;
- Float_t ttime = gMC->TrackTime();
+ Float_t ttime = TVirtualMC::GetMC()->TrackTime();
hits[6] = ttime*1e9;
edep = 0;
}
- if(gMC->IsTrackInside()) {
- Float_t de = gMC->Edep();
+ if(TVirtualMC::GetMC()->IsTrackInside()) {
+ Float_t de = TVirtualMC::GetMC()->Edep();
edep = edep + de;
// printf ("E deposition %f\n",edep);
// for (i=0; i<=6; i++){
// printf(" HITS on T0 inside %f\n",hits[i]); }
}
- if(gMC->IsTrackExiting()) {
- Float_t de = gMC->Edep();
+ if(TVirtualMC::GetMC()->IsTrackExiting()) {
+ Float_t de = TVirtualMC::GetMC()->Edep();
edep = edep + de;
hits[3] = edep * 1e3;