}
//_____________________________________________________________________________________________________________________________________
-TArrayD* AliFragmentationFunctionCorrections::GetHistoBins(const Int_t jetPtSlice, const Int_t type)
+TArrayD* AliFragmentationFunctionCorrections::GetHistoBins(const Int_t& jetPtSlice, const Int_t& type)
{
// set histo bins for jet pt slice
// if binning undefined for any slice, original binning will be used
//________________________________________________________________________________________________________________
void AliFragmentationFunctionCorrections::WriteBgrJetSecCorr(TString strInfile, TString strBgrID, TString strID, TString strOutfile,
- Bool_t updateOutfile, TString strOutDir)
+ Bool_t updateOutfile, TString strOutDir,Double_t scaleFacBgrRec)
{
// read task ouput from MC and write secondary correction - standard dir/list
TString strdir = "PWGJE_FragmentationFunction_" + strID;
TString strlist = "fracfunc_" + strID;
- WriteJetSecCorr(strInfile,strdir,strlist,strOutfile,updateOutfile, strOutDir,kTRUE,strBgrID);
+ WriteJetSecCorr(strInfile,strdir,strlist,strOutfile,updateOutfile, strOutDir,kTRUE,strBgrID,scaleFacBgrRec);
}
//___________________________________________________________________________________________________________________________________
void AliFragmentationFunctionCorrections::WriteJetSecCorr(TString strInfile, TString strdir, TString strlist,
TString strOutfile, Bool_t updateOutfile, TString strOutDir,
- Bool_t writeBgr, TString strBgrID)
+ Bool_t writeBgr, TString strBgrID,Double_t scaleFacBgrRec)
{
// read task output from MC and write secondary correction in jet pt slices as function of pt, z, xi
// argument strlist optional - read from directory strdir if not specified
hdNdzMCSecRecSsc[i]->SetNameTitle(strNameFFZSecRecSsc,"");
hdNdxiMCSecRecSsc[i]->SetNameTitle(strNameFFXiSecRecSsc,"");
- // normalize
+ // normalize
Double_t nJetsBin = fh1FFJetPtRecEffRec->Integral(binLo,binUp);
+ // scale fac for perp2 bgr
+ if(writeBgr && scaleFacBgrRec && (scaleFacBgrRec != 1)) nJetsBin /= scaleFacBgrRec;
+
NormalizeTH1(hdNdptTracksMCPrimRec[i],nJetsBin);
NormalizeTH1(hdNdzMCPrimRec[i],nJetsBin);
NormalizeTH1(hdNdxiMCPrimRec[i],nJetsBin);
Int_t nBinsResponse[4] = {nBinsRecPt,nBinsTrackPt,nBinsGenPt,nBinsTrackPt};
- Double_t binMinResponse[4] = {loLimRecPt,loLimTrackPt,loLimGenPt,loLimTrackPt};
- Double_t binMaxResponse[4] = {upLimRecPt,upLimTrackPt,upLimGenPt,upLimTrackPt};
+ Double_t binMinResponse[4] = { static_cast<Double_t>(loLimRecPt), static_cast<Double_t>(loLimTrackPt), static_cast<Double_t>(loLimGenPt), static_cast<Double_t>(loLimTrackPt)};
+ Double_t binMaxResponse[4] = { static_cast<Double_t>(upLimRecPt), static_cast<Double_t>(upLimTrackPt), static_cast<Double_t>(upLimGenPt), static_cast<Double_t>(upLimTrackPt)};
const char* labelsResponseSinglePt[4] = {"rec jet p_{T} (GeV/c)", "rec track p_{T} (GeV/c)", "gen jet p_{T} (GeV/c)", "gen track p_{T} (GeV/c)"};
//________________________________________________________________________________________________________________
void AliFragmentationFunctionCorrections::WriteBinShiftCorr(TString strInfile, TString strIDGen, TString strIDRec,
TString strOutfile, Bool_t updateOutfile, Bool_t useRecPrim,
- TString strOutDir)
+ TString strOutDir,Double_t scaleFacBgrRec)
{
TString strdirGen = "PWGJE_FragmentationFunction_" + strIDGen;
TString strlistGen = "fracfunc_" + strIDGen;
TString strdirRec = "PWGJE_FragmentationFunction_" + strIDRec;
TString strlistRec = "fracfunc_" + strIDRec;
- WriteBinShiftCorr(strInfile,strdirGen,strlistGen,strdirRec,strlistRec,strOutfile,updateOutfile,useRecPrim, strOutDir, kFALSE, "");
+ WriteBinShiftCorr(strInfile,strdirGen,strlistGen,strdirRec,strlistRec,strOutfile,updateOutfile,useRecPrim, strOutDir, kFALSE, "",scaleFacBgrRec);
}
//________________________________________________________________________________________________________________
void AliFragmentationFunctionCorrections::WriteBgrBinShiftCorr(TString strInfile, TString strBgrID, TString strIDGen, TString strIDRec,
TString strOutfile, Bool_t updateOutfile, Bool_t useRecPrim,
- TString strOutDir)
+ TString strOutDir,Double_t scaleFacBgrRec)
{
TString strdirGen = "PWGJE_FragmentationFunction_" + strIDGen;
TString strlistGen = "fracfunc_" + strIDGen;
TString strdirRec = "PWGJE_FragmentationFunction_" + strIDRec;
TString strlistRec = "fracfunc_" + strIDRec;
- WriteBinShiftCorr(strInfile,strdirGen,strlistGen,strdirRec,strlistRec,strOutfile,updateOutfile,useRecPrim, strOutDir, kTRUE, strBgrID);
+ WriteBinShiftCorr(strInfile,strdirGen,strlistGen,strdirRec,strlistRec,strOutfile,updateOutfile,useRecPrim, strOutDir, kTRUE, strBgrID,scaleFacBgrRec);
}
//___________________________________________________________________________________________________________________________________
void AliFragmentationFunctionCorrections::WriteBinShiftCorr(TString strInfile, TString strdirGen, TString strlistGen,
TString strdirRec, TString strlistRec,
TString strOutfile, Bool_t updateOutfile, Bool_t useRecPrim,
- TString strOutDir, Bool_t writeBgr, TString strBgrID)
+ TString strOutDir, Bool_t writeBgr, TString strBgrID, Double_t scaleFacBgrRec)
{
if((writeBgr && strBgrID.Length() == 0) || (!writeBgr && strBgrID.Length()>0) ){
Double_t nJetsBinGen = fh1FFJetPtMCGen->Integral(binLo,binUp);
Double_t nJetsBinRec = fh1FFJetPtMCRec->Integral(binLo,binUp);
+ // scale fac for perp2 bgr
+ if(useRecPrim && writeBgr && scaleFacBgrRec && (scaleFacBgrRec != 1)) nJetsBinRec /= scaleFacBgrRec;
+
NormalizeTH1(hdNdptTracksMCGen[i],nJetsBinGen);
NormalizeTH1(hdNdzMCGen[i],nJetsBinGen);
NormalizeTH1(hdNdxiMCGen[i],nJetsBinGen);