-//_____________________________________________________________________________
-void AliDetector::AliMixture(Int_t imat, const char *name, Float_t *a,
- Float_t *z, Float_t dens, Int_t nlmat,
- Float_t *wmat) const
-{
- //
- // Defines mixture or compound imat as composed by
- // nlmat materials defined by arrays a, z and wmat
- //
- // If nlmat > 0 wmat contains the proportion by
- // weights of each basic material in the mixture
- //
- // If nlmat < 0 wmat contains the number of atoms
- // of eack kind in the molecule of the compound
- // In this case, wmat is changed on output to the relative weigths.
- //
- // imat the material index will be stored in (*fIdmate)[imat]
- // name material name
- // a array of atomic masses
- // z array of atomic numbers
- // dens density
- // nlmat number of components
- // wmat array of concentrations
- //
- Int_t kmat;
- AliMC::GetMC()->Mixture(kmat, name, a, z, dens, nlmat, wmat);
- (*fIdmate)[imat]=kmat;
-}
-
-//_____________________________________________________________________________
-void AliDetector::AliMedium(Int_t numed, const char *name, Int_t nmat,
- Int_t isvol, Int_t ifield, Float_t fieldm,
- Float_t tmaxfd, Float_t stemax, Float_t deemax,
- Float_t epsil, Float_t stmin, Float_t *ubuf,
- Int_t nbuf) const
-{
- //
- // Store the parameters of a tracking medium
- //
- // numed the medium number is stored into (*fIdtmed)[numed-1]
- // name medium name
- // nmat the material number is stored into (*fIdmate)[nmat]
- // isvol sensitive volume if isvol!=0
- // ifield magnetic field flag (see below)
- // fieldm maximum magnetic field
- // tmaxfd maximum deflection angle due to magnetic field
- // stemax maximum step allowed
- // deemax maximum fractional energy loss in one step
- // epsil tracking precision in cm
- // stmin minimum step due to continuous processes
- //
- // ifield = 0 no magnetic field
- // = -1 user decision in guswim
- // = 1 tracking performed with Runge Kutta
- // = 2 tracking performed with helix
- // = 3 constant magnetic field along z
- //
- Int_t kmed;
- Int_t *idtmed = gAlice->Idtmed();
- AliMC::GetMC()->Medium(kmed,name, (*fIdmate)[nmat], isvol, ifield, fieldm,
- tmaxfd, stemax, deemax, epsil, stmin, ubuf, nbuf);
- idtmed[numed-1]=kmed;
-}
-
-//_____________________________________________________________________________
-void AliDetector::AliMatrix(Int_t &nmat, Float_t theta1, Float_t phi1,
- Float_t theta2, Float_t phi2, Float_t theta3,
- Float_t phi3) const
-{
- //
- // Define a rotation matrix. Angles are in degrees.
- //
- // nmat on output contains the number assigned to the rotation matrix
- // theta1 polar angle for axis I
- // phi1 azimuthal angle for axis I
- // theta2 polar angle for axis II
- // phi2 azimuthal angle for axis II
- // theta3 polar angle for axis III
- // phi3 azimuthal angle for axis III
- //
- AliMC::GetMC()->Matrix(nmat, theta1, phi1, theta2, phi2, theta3, phi3);
-}