fixed a shortcoming of the outdated TLemRunHeader class which could lead to a crash of any2many (see MUSR-246)
This commit is contained in:
@ -25,6 +25,8 @@ NEW 2012-05-12 added dump_header. This is a little program which dumps the
|
|||||||
NEW 2012-04-24 added a first version for negative muon fitting. At the same
|
NEW 2012-04-24 added a first version for negative muon fitting. At the same
|
||||||
time substaintial bug fixing has been carried out (mainly the
|
time substaintial bug fixing has been carried out (mainly the
|
||||||
logx/logy handling).
|
logx/logy handling).
|
||||||
|
FIXED 2012-12-18 fixed a shortcoming of the outdated TLemRunHeader class
|
||||||
|
(see MUSR-246).
|
||||||
FIXED 2012-11-19 fixes issue with too many t0's in the msr-file (see
|
FIXED 2012-11-19 fixes issue with too many t0's in the msr-file (see
|
||||||
MUSR-238).
|
MUSR-238).
|
||||||
FIXED 2012-11-19 the Fourier transform had 1 Bin too much, this is fixed now
|
FIXED 2012-11-19 the Fourier transform had 1 Bin too much, this is fixed now
|
||||||
|
@ -4463,9 +4463,17 @@ Bool_t PRunDataHandler::WriteRootFile(TString fln)
|
|||||||
header->SetNHist(fData[0].GetNoOfHistos());
|
header->SetNHist(fData[0].GetNoOfHistos());
|
||||||
header->SetCuts("none");
|
header->SetCuts("none");
|
||||||
header->SetModerator("none");
|
header->SetModerator("none");
|
||||||
// feed t0's
|
|
||||||
Double_t *tt0 = new Double_t[fData[0].GetNoOfHistos()];
|
// feed t0's if possible
|
||||||
for (UInt_t i=0; i<fData[0].GetNoOfHistos(); i++) {
|
UInt_t NoT0s = fData[0].GetNoOfHistos();
|
||||||
|
if (fData[0].GetNoOfHistos() > NHIST) {
|
||||||
|
cerr << endl << ">> PRunDataHandler::WriteRootFile: **WARNING** found more T0's (" << NoT0s << ") than can be handled (" << NHIST << ").";
|
||||||
|
cerr << endl << ">> Will only write the first " << NHIST << " T0s!!" << endl;
|
||||||
|
NoT0s = NHIST;
|
||||||
|
}
|
||||||
|
Double_t *tt0 = new Double_t[NoT0s];
|
||||||
|
|
||||||
|
for (UInt_t i=0; i<NoT0s; i++) {
|
||||||
dataSet = fData[0].GetDataSet(i, false); // i.e. the false means, that i is the index and NOT the histo number
|
dataSet = fData[0].GetDataSet(i, false); // i.e. the false means, that i is the index and NOT the histo number
|
||||||
tt0[i] = dataSet->GetTimeZeroBin()/fAny2ManyInfo->rebin;
|
tt0[i] = dataSet->GetTimeZeroBin()/fAny2ManyInfo->rebin;
|
||||||
}
|
}
|
||||||
@ -4481,7 +4489,7 @@ Bool_t PRunDataHandler::WriteRootFile(TString fln)
|
|||||||
for (UInt_t i=0; i<fData[0].GetNoOfHistos(); i++) {
|
for (UInt_t i=0; i<fData[0].GetNoOfHistos(); i++) {
|
||||||
dataSet = fData[0].GetDataSet(i, false); // i.e. the false means, that i is the index and NOT the histo number
|
dataSet = fData[0].GetDataSet(i, false); // i.e. the false means, that i is the index and NOT the histo number
|
||||||
if (dataSet == 0) { // something is really wrong
|
if (dataSet == 0) { // something is really wrong
|
||||||
cerr << endl << ">> PRunDataHandler::WriteNexusFile: **ERROR** Couldn't get data set (idx=0" << i << ")";
|
cerr << endl << ">> PRunDataHandler::WriteRootFile: **ERROR** Couldn't get data set (idx=0" << i << ")";
|
||||||
cerr << endl << ">> something is really wrong!" << endl;
|
cerr << endl << ">> something is really wrong!" << endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -4703,7 +4711,7 @@ Bool_t PRunDataHandler::WriteNexusFile(TString fln)
|
|||||||
}
|
}
|
||||||
size = dataSet->GetData()->size();
|
size = dataSet->GetData()->size();
|
||||||
for (UInt_t j=0; j<size; j++) {
|
for (UInt_t j=0; j<size; j++) {
|
||||||
data.push_back(dataSet->GetData()->at(j));
|
data.push_back((UInt_t)dataSet->GetData()->at(j));
|
||||||
}
|
}
|
||||||
nxs->GetEntryIdf1()->GetData()->SetHisto(data, i);
|
nxs->GetEntryIdf1()->GetData()->SetHisto(data, i);
|
||||||
data.clear();
|
data.clear();
|
||||||
|
10
src/external/TLemRunHeader/TLemRunHeader.cxx
vendored
10
src/external/TLemRunHeader/TLemRunHeader.cxx
vendored
@ -5,6 +5,9 @@
|
|||||||
//
|
//
|
||||||
// $Id: TLemRunHeader.cxx 3897 2009-05-01 22:06:11Z l_wojek $
|
// $Id: TLemRunHeader.cxx 3897 2009-05-01 22:06:11Z l_wojek $
|
||||||
//
|
//
|
||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
#include "TLemRunHeader.h"
|
#include "TLemRunHeader.h"
|
||||||
|
|
||||||
ClassImp(TLemRunHeader)
|
ClassImp(TLemRunHeader)
|
||||||
@ -190,10 +193,13 @@ void TLemRunHeader::SetModerator(const Char_t *moderator){
|
|||||||
}
|
}
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
void TLemRunHeader::SetTimeZero(const Double_t *value){
|
void TLemRunHeader::SetTimeZero(const Double_t *value){
|
||||||
|
Int_t noT0s = fNHist;
|
||||||
|
if (noT0s > NHIST)
|
||||||
|
noT0s = NHIST;
|
||||||
TString str;
|
TString str;
|
||||||
str = "16 t0: ";
|
str = "16 t0: ";
|
||||||
for (Int_t i = 0; i < fNHist; i++){
|
for (Int_t i = 0; i < noT0s; i++){
|
||||||
//fTimeZero.push_back(value[i]);
|
//fTimeZero.push_back(value[i]);
|
||||||
fTimeZero[i] = value[i];
|
fTimeZero[i] = value[i];
|
||||||
str += value[i];
|
str += value[i];
|
||||||
str += " ";
|
str += " ";
|
||||||
|
Reference in New Issue
Block a user