83 if (bkgRange[0] >= -1) {
88 if (bkgRange[1] >= -1) {
100 errMsg = TString::Format(
"start bkg range < 0 (given: %d), will ignore it.", bkgRange[0]);
103 errMsg = TString::Format(
"end bkg range < 0 (given: %d), will ignore it.", bkgRange[1]);
106 errMsg = TString::Format(
"start/end bkg range < 0 (given: %d/%d), will ignore it.", bkgRange[0], bkgRange[1]);
109 errMsg = TString(
"??");
114 std::cerr << std::endl <<
">> PPrepFourier::SetBkgRange: **WARNING** " << errMsg << std::endl;
128 for (UInt_t i=0; i<bkg.size(); i++)
129 fBkg.push_back(bkg[i]);
145 std::cerr << std::endl <<
">> PPrepFourier::SetPacking: **WARNING** found packing=" << packing <<
" < 0, will ignore it." << std::endl;
183 for (UInt_t i=0; i<
fRawData.size(); i++) {
185 std::cerr << std::endl <<
"PPrepFourier::DoBkgCorrection() **ERROR** bkg-range out of data-range!";
191 for (UInt_t i=0; i<
fRawData.size(); i++) {
197 std::cout <<
"info> background " << i <<
": " << bkg << std::endl;
200 for (UInt_t j=0; j<
fData[i].size(); j++)
205 if (
fBkg.size() == 0)
210 std::cerr << std::endl <<
"PPrepFourier::DoBkgCorrection() **ERROR** #bkg values != #histos. Will do nothing here." << std::endl;
214 for (UInt_t i=0; i<
fData.size(); i++)
215 for (UInt_t j=0; j<
fData[i].size(); j++)
238 for (UInt_t i=0; i<
fData.size(); i++) {
241 for (UInt_t j=0; j<
fData[i].size(); j++) {
242 if ((j %
fPacking == 0) && (j != 0)) {
243 tmpData.push_back(dval);
274 for (UInt_t i=0; i<
fData.size(); i++) {
276 for (UInt_t j=0; j<
fData[i].size(); j++) {
277 fData[i][j] *= exp(j*scale);
284 for (UInt_t i=0; i<
fData.size(); i++) {
286 for (UInt_t j=0; j<
fData[i].size(); j++) {
289 N0 = dval/
fData[i].size();
291 for (UInt_t j=0; j<
fData[i].size(); j++) {
343 std::vector<TH1F*> data;
344 data.resize(
fData.size());
347 if (
fData.size() == 0)
358 for (UInt_t i=0; i<
fData.size(); i++) {
359 name = TString::Format(
"histo%2d", i);
365 size =
fData[i].size();
371 size =
static_cast<UInt_t
>((end-start)/dt);
373 startIdx =
static_cast<UInt_t
>(start/dt)+1;
374 endIdx =
static_cast<UInt_t
>(end/dt)+1;
376 std::cerr << std::endl <<
">> PPrepFourier::GetData **WARNING** found start time < 0.0, will set it to 0.0" << std::endl;
377 endIdx =
static_cast<UInt_t
>(end/dt)+1;
388 end = (
fData[i].size()-1)*dt+dt/2.0;
393 data[i] =
new TH1F(name.Data(),
fRawData[i].info.Data(), size, start, end);
394 for (UInt_t j=startIdx; j<endIdx; j++)
395 data[i]->SetBinContent(j-startIdx+1,
fData[i][j]);
412 if (
fData.size() == 0)
415 if (idx >
fData.size())
418 TString name = TString::Format(
"histo%2d", idx);
420 Double_t start =
fRawData[idx].timeRange[0];
421 Double_t end =
fRawData[idx].timeRange[1];
422 UInt_t size =
fData[idx].size();
424 UInt_t endIdx = size;
428 size =
static_cast<UInt_t
>((end-start)/dt);
430 startIdx =
static_cast<UInt_t
>(start/dt)+1;
431 endIdx =
static_cast<UInt_t
>(end/dt)+1;
433 std::cerr << std::endl <<
">> PPrepFourier::GetData **WARNING** found start time < 0.0, will set it to 0.0" << std::endl;
434 endIdx =
static_cast<UInt_t
>(end/dt)+1;
445 end = (
fData[idx].size()-1)*dt+dt/2.0;
450 TH1F *data =
new TH1F(name.Data(),
fRawData[idx].info.Data(), size, start, end);
451 for (UInt_t i=startIdx; i<endIdx; i++)
452 data->SetBinContent(i-startIdx+1,
fData[idx][i]);
467 for (UInt_t i=0; i<
fRawData.size(); i++) {
472 for (UInt_t j=t0; j<
fRawData[i].rawData.size(); j++) {
TString GetInfo(const UInt_t idx)
virtual void DoBkgCorrection()
std::vector< TH1F * > GetData()
std::vector< musrFT_data > fRawData
virtual void SetPacking(const Int_t packing)
std::vector< Double_t > PDoubleVector
virtual void SetBkgRange(const Int_t *bkgRange)
std::vector< PDoubleVector > fData
Int_t GetDataSetTag(const UInt_t idx)
virtual void DoLifeTimeCorrection(Double_t fudge)
virtual void SetBkg(PDoubleVector bkg)
virtual void AddData(musrFT_data &data)