]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TFluka/rflctv.cxx
No debug by default.
[u/mrichter/AliRoot.git] / TFluka / rflctv.cxx
index d312b0ed074dae57f7b28a61e12756c5aefa8514..5d24f95ed280c7db03e976a374741f193e75ee71 100644 (file)
@@ -1,15 +1,27 @@
 #include "Fdimpar.h"  //(DIMPAR) fluka include
 #include "Ftrackr.h"  //(TRACKR) fluka common
 #include "Fiounit.h"  //(IOUNIT) fluka common
+#include "TFluka.h"
+#include "TGeoMaterial.h"
+#include "TFlukaCerenkov.h"
+
+
 #ifndef WIN32
 # define rflctv rflctv_
 #else
 # define rflctv RFLCTV
 #endif
 extern "C" {
-Double_t rflctv(Double_t& wvlngt, Double_t& omgpho, Int_t& mmat)
+Double_t rflctv(Double_t& wvlngt, Double_t& /*omgpho*/, Int_t& mmat)
 {
-    printf("rflctv called  %e %e %d \n", wvlngt, omgpho, mmat);
-    return (0.);
+//
+//  Return reflectivity (1-r) for given photon energy and material
+//
+    TFluka* fluka =  (TFluka*) gMC;
+    TGeoMaterial*    material =  (TGeoMaterial*) (fluka->GetFlukaMaterials())->At(fluka->GetMaterialIndex(mmat));
+    TFlukaCerenkov*  cerenkov = dynamic_cast<TFlukaCerenkov*> (material->GetCerenkovProperties());
+    Double_t y = 0.;
+    if (cerenkov->IsMetal()) y =  (cerenkov->GetReflectivityByWaveLength(wvlngt));
+    return (y);
 }
 }