Switch to negative values of logical output units to obtain binary output
[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 //    printf("abscff%f %d\n", wvlngt, mmat);
18     
19 //
20 //  Return absorption length  for given photon energy and material
21 //
22     
23     TFluka* fluka =  (TFluka*) gMC;
24 //
25 //  Check if stopping has been required by user
26 //
27     if (fluka->GetStoppingCondition()) {
28         fluka->ResetStoppingCondition();
29         return (1.e15);
30     }
31 //
32 //  Get absorption coefficient for current material
33 //    
34     TGeoMaterial*    material =  (TGeoMaterial*) (fluka->GetFlukaMaterials())->At(fluka->GetMaterialIndex(mmat));
35     TFlukaCerenkov*  cerenkov = dynamic_cast<TFlukaCerenkov*> (material->GetCerenkovProperties());
36     Double_t y = (cerenkov->GetAbsorptionCoefficientByWaveLength(wvlngt));
37     return (y);
38     
39 }
40 }
41
42