static void InitAODpidUtil(Int_t type=0);
static void InitEstimatorAvg(const Char_t* filename);
static void InitTRDpidEffHistograms(const Char_t* filename);
- static Bool_t InitEffMap(const Char_t* filename);
+ static void SetLegEffMap(THnBase *map) { fgEffMap=map; }
static void SetVZEROCalibrationFile(const Char_t* filename) {fgVZEROCalibrationFile = filename;}
static void SetVZERORecenteringFile(const Char_t* filename) {fgVZERORecenteringFile = filename;}
Fill(leg1, valuesLeg1);
Fill(leg2, valuesLeg2);
values[AliDielectronVarManager::kPairEff] = valuesLeg1[AliDielectronVarManager::kLegEff] *valuesLeg2[AliDielectronVarManager::kLegEff];
- values[AliDielectronVarManager::kOneOverPairEff] = (values[AliDielectronVarManager::kPairEff]>0.0 ? 1./values[AliDielectronVarManager::kPairEff] : 0.0);
+ values[AliDielectronVarManager::kOneOverPairEff] = (values[AliDielectronVarManager::kPairEff]>0.0 ? 1./values[AliDielectronVarManager::kPairEff] : 1.0);
}
values[AliDielectronVarManager::kRndmPair] = gRandom->Rndm();
values[AliDielectronVarManager::kv0C3rpH2]) );
Double_t ZDCqvec[3][2];
- memset(ZDCqvec, 0, sizeof(ZDCqvec));
+ memset(ZDCqvec, 999, sizeof(ZDCqvec));
GetZDCRP(event, ZDCqvec);
values[AliDielectronVarManager::kZDCArpH1] = TMath::ATan2(ZDCqvec[0][1], ZDCqvec[0][0]);
}
}
-inline Bool_t AliDielectronVarManager::InitEffMap(const Char_t* filename) {
- //
- // init an efficiency object for on-the-fly correction calculations
- //
- fgEffMap=0x0;
- TFile* file=TFile::Open(filename);
- if(!file) return 0;
- THnBase *hGen = (THnBase*) file->Get("hGenerated");
- THnBase *hFnd = (THnBase*) file->Get("hFound");
- if(!hFnd || !hGen) return 0;
-
- fgEffMap = (THnBase*) hFnd->Clone("effMap");
- fgEffMap->Reset();
- fgEffMap->Sumw2();
- fgEffMap->Divide(hFnd, hGen);//, 1, 1, ""); //assume uncorrelated err, otherwise give option "B"
- printf("[I] AliDielectronVarManager::InitEffMap efficiency maps loaded! \n");
- return 1;
-
-}
-
inline Double_t AliDielectronVarManager::GetSingleLegEff(Double_t * const values) {
//
// get the single leg efficiency for a given particle
for(Int_t idim=0; idim<dim; idim++) {
UInt_t var = GetValueType(fgEffMap->GetAxis(idim)->GetName());
idx[idim] = fgEffMap->GetAxis(idim)->FindBin(values[var]);
- /* if(idx[idim] < 0 || idx[idim]>fgEffMap->GetAxis(idim)->GetNbins()) */
+ if(idx[idim] < 0 || idx[idim]>fgEffMap->GetAxis(idim)->GetNbins()) return 0.0;
/* printf(" [E] AliDielectronVarManager::GetSingleLegEff values %f for %s not found in axis range \n",values[var],fgEffMap->GetAxis(idim)->GetName()); */
// printf(" (%d,%f,%s) \t",idx[idim],values[var],fgEffMap->GetAxis(idim)->GetName());
}
// printf(" bin content %f+-%f \n",fgEffMap->GetBinContent(idx), fgEffMap->GetBinError(idx));
- if(fgEffMap->GetBinContent(idx)<0.01 || fgEffMap->GetBinError(idx)/fgEffMap->GetBinContent(idx)>0.2) return 0.0;
+ // if(fgEffMap->GetBinContent(idx)<0.01) return 0.0;
+ // if(fgEffMap->GetBinError(idx)/fgEffMap->GetBinContent(idx)>0.2) return 0.0;
return (fgEffMap->GetBinContent(idx));
}
TFile file(fgZDCRecenteringFile.Data());
if (!file.IsOpen()) return;
- cout << fgZDCRecenteringFile << endl;
+
fgZDCRecentering[0][0] = (TProfile3D*)file.Get(Form("RUN%06d_QxA_Recent", runNo));
fgZDCRecentering[0][1] = (TProfile3D*)file.Get(Form("RUN%06d_QyA_Recent", runNo));
fgZDCRecentering[1][0] = (TProfile3D*)file.Get(Form("RUN%06d_QxC_Recent", runNo));
{ 20, 0.04, 0.08}, // vertex x nbin, min, max
{ 20, 0.25, 0.29} }; // vertex y nbin, min, max
+ if(!event->GetZDCData()) return;
AliVZDC* aliZDC = event->GetZDCData();
ZDCTEnergy[Aside] = (Double_t *)aliZDC -> GetZNATowerEnergy();
ZDCTEnergy[Cside] = (Double_t *)aliZDC -> GetZNCTowerEnergy();