beam replaced by beamcm
[u/mrichter/AliRoot.git] / TFluka / abscff.cxx
1 #include "Fdimpar.h"  //(DIMPAR) fluka include
2 #include "Ftrackr.h"  //(TRACKR) fluka common
3 #include "Fiounit.h"  //(IOUNIT) fluka common
4 #include "TFluka.h"
5 #include "TGeoMaterial.h"
6 #include "TFlukaCerenkov.h"
7
8
9 #ifndef WIN32
10 # define abscff abscff_
11 #else
12 # define abscff ABSCFF
13 #endif
14 extern "C" {
15 Double_t abscff(Double_t& wvlngt, Double_t& /*omgpho*/, Int_t& mmat)
16 {
17 //
18 //  Return absorption length  for given photon energy and material
19 //
20     
21     TFluka* fluka =  (TFluka*) gMC;
22 //
23 //  Check if stopping has been required by user
24 //
25     if (fluka->GetStoppingCondition()) {
26         fluka->ResetStoppingCondition();
27         return (1.e15);
28     }
29 //
30 //  Get absorption coefficient for current material
31 //    
32     TGeoMaterial*    material =  (TGeoMaterial*) (fluka->GetFlukaMaterials())->At(fluka->GetMaterialIndex(mmat));
33     TFlukaCerenkov*  cerenkov = dynamic_cast<TFlukaCerenkov*> (material->GetCerenkovProperties());
34     Double_t y = (cerenkov->GetAbsorptionCoefficientByWaveLength(wvlngt));
35     return (y);
36     
37 }
38 }
39
40