+ // Process transparency monitoring data and calculates Emean
+
+ Double_t sEnergProb=0, sProb=0;
+
+ Double_t tRefCR5 = 19. ; // mean temperature of CR5 where the system is in place
+
+ Double_t eMean = 0;
+
+ AliDCSValue *pVal;
+
+ for(Int_t i=0; i<30; i++){
+
+ // evaluate wavelenght
+ TObjArray *pWaveLenght = (TObjArray*)pMap->GetValue(Form("HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.waveLenght",i));
+ if(!pWaveLenght){
+ AliWarning(Form("No Data Point values for HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.waveLenght -----> Default E mean used!!!!!",i));
+ return DefaultEMean(); // to be checked
+ }
+
+ pVal=(AliDCSValue*)pWaveLenght->At(0);
+ Double_t lambda = pVal->GetFloat();
+
+ if(lambda<150. || lambda>230.){
+ AliWarning(Form("Wrong value for HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.waveLenght -----> Default E mean used!!!!!",i));
+ return DefaultEMean(); // to be checked
+ }
+
+ Double_t photEn = 1239.842609/lambda; // 1239.842609 from nm to eV
+
+ if(photEn<AliHMPIDParam::EPhotMin() || photEn>AliHMPIDParam::EPhotMax()) continue;
+
+ // evaluate phototube current for argon reference
+ TObjArray *pArgonRef = (TObjArray*)pMap->GetValue(Form("HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.argonReference",i));
+ if(!pArgonRef){
+ AliWarning(Form("No Data Point values for HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.argonReference -----> Default E mean used!!!!!",i));
+ return DefaultEMean(); // to be checked
+ }
+
+ pVal=(AliDCSValue*)pArgonRef->At(0);
+ Double_t aRefArgon = pVal->GetFloat();
+
+ // evaluate phototube current for argon cell
+ TObjArray *pArgonCell = (TObjArray*)pMap->GetValue(Form("HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.argonCell",i));
+ if(!pArgonCell){
+ AliWarning(Form("No Data Point values for HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.argonCell -----> Default E mean used!!!!!",i));
+ return DefaultEMean(); // to be checked
+ }
+
+ pVal=(AliDCSValue*)pArgonRef->At(0);
+ Double_t aCellArgon = pVal->GetFloat();
+
+ //evaluate phototube current for freon reference
+ TObjArray *pFreonRef = (TObjArray*)pMap->GetValue(Form("HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.c6f14Reference",i));
+ if(!pFreonRef){
+ AliWarning(Form("No Data Point values for HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.c6f14Reference -----> Default E mean used!!!!!",i));
+ return DefaultEMean(); // to be checked
+ }
+
+ pVal=(AliDCSValue*)pFreonRef->At(0);
+ Double_t aRefFreon = pVal->GetFloat();
+
+ //evaluate phototube current for freon cell
+ TObjArray *pFreonCell = (TObjArray*)pMap->GetValue(Form("HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.c6f14Cell",i));
+ if(!pFreonCell){
+ AliWarning(Form("No Data Point values for HMP_DET/HMP_INFR/HMP_INFR_TRANPLANT/HMP_INFR_TRANPLANT_MEASURE.mesure%i.c6f14Cell -----> Default E mean used!!!!!",i));
+ return DefaultEMean(); // to be checked
+ }
+
+ pVal=(AliDCSValue*)pFreonCell->At(0);
+ Double_t aCellFreon = pVal->GetFloat();
+
+ //evaluate correction factor to calculate trasparency (Ref. NIMA 486 (2002) 590-609)
+
+ Double_t aN1 = AliHMPIDParam::NIdxRad(photEn,tRefCR5);
+ Double_t aN2 = AliHMPIDParam::NMgF2Idx(photEn);
+ Double_t aN3 = 1; // Argon Idx
+
+ Double_t aR1 = ((aN1 - aN2)*(aN1 - aN2))/((aN1 + aN2)*(aN1 + aN2));
+ Double_t aR2 = ((aN2 - aN3)*(aN2 - aN3))/((aN2 + aN3)*(aN2 + aN3));
+ Double_t aT1 = (1 - aR1);
+ Double_t aT2 = (1 - aR2);
+ Double_t aCorrFactor = (aT1*aT1)/(aT2*aT2);
+
+ // evaluate 15 mm of thickness C6F14 Trans
+ Double_t aTransRad;
+
+ if(aRefFreon*aRefArgon>0) {
+ aTransRad = TMath::Power((aCellFreon/aRefFreon)/(aCellArgon/aRefArgon)*aCorrFactor,1.5);
+ } else {
+ return DefaultEMean();
+ }
+
+ // evaluate 0.5 mm of thickness SiO2 Trans
+ Double_t aTransSiO2 = TMath::Exp(-0.5/AliHMPIDParam::LAbsWin(photEn));
+
+ // evaluate 80 cm of thickness Gap (low density CH4) transparency
+ Double_t aTransGap = TMath::Exp(-80./AliHMPIDParam::LAbsGap(photEn));
+
+ // evaluate CsI quantum efficiency
+ Double_t aCsIQE = AliHMPIDParam::QEffCSI(photEn);
+
+ // evaluate total convolution of all material optical properties
+ Double_t aTotConvolution = aTransRad*aTransSiO2*aTransGap*aCsIQE;
+
+ sEnergProb+=aTotConvolution*photEn;
+
+ sProb+=aTotConvolution;
+}
+ if(sProb>0) {
+ eMean = sEnergProb/sProb;
+ } else {
+ return DefaultEMean();
+ }
+ Log(Form(" Mean energy photon calculated ---> %f eV ",eMean));
+
+ if(eMean<AliHMPIDParam::EPhotMin() || eMean>AliHMPIDParam::EPhotMax()) return DefaultEMean();
+