--- PamCut/CollectionActions/LiveTimeAction/LiveTimeAction.cpp 2009/08/05 17:43:15 1.3 +++ PamCut/CollectionActions/LiveTimeAction/LiveTimeAction.cpp 2009/10/27 10:18:20 1.5 @@ -17,7 +17,7 @@ _textHisto.assign(_bins.size() - 1, 0); _rootHisto.SetName("ltHisto"); _rootHisto.SetTitle(Form("Live time (thr.: %.2f)", _thresholdCoeff)); - _rootHisto.GetXaxis()->SetTitle("R"); + _rootHisto.GetXaxis()->SetTitle("R [GV]"); _rootHisto.GetYaxis()->SetTitle("Events"); Double_t *auxArray = new Double_t[_bins.size()]; @@ -33,7 +33,7 @@ LiveTimeAction::LiveTimeAction(const char *actionName, TString outFileBase, vector &bins, float thresholdCoeff) : CollectionAction(actionName), _outFileBase(outFileBase), _bins(0), _rootHisto(), _textHisto(0), _thresholdCoeff( - thresholdCoeff), _total(0.), _zeroBin(0.) + thresholdCoeff), _totalNorm(0.), _infBin(0.), _nGoodHisto(0), _nGoodInfBin(0) #ifdef DEBUGPAMCUT , _outUp(0), _outDown(0) #endif @@ -43,7 +43,7 @@ LiveTimeAction::LiveTimeAction(const char *actionName, TString outFileBase, TString rigBinsFile, float thresholdCoeff) : CollectionAction(actionName), _outFileBase(outFileBase), _bins(0), _rootHisto(), _textHisto(0), _thresholdCoeff( - thresholdCoeff), _total(0.), _zeroBin(0.) + thresholdCoeff), _totalNorm(0.), _infBin(0.), _nGoodHisto(0), _nGoodInfBin(0) #ifdef DEBUGPAMCUT , _outUp(0), _outDown(0) #endif @@ -69,22 +69,27 @@ void LiveTimeAction::OnGood(PamLevel2 *event) { - float lt = 0.16 * (float) event->GetTrigLevel2()->dltime[0] / 1000.; // In seconds - _total += lt; + double lt = 0.16 * (double) event->GetTrigLevel2()->dltime[0] / 1000.; // In seconds + +// cout << 0.16 * event->GetTrigLevel2()->dltime[0] / 1000. << endl; +// cout << lt << endl; + float cRig = _thresholdCoeff * event->GetOrbitalInfo()->GetCutoffSVL(); if (cRig >= _bins[0]) { int i = 1; int binningSize = _bins.size(); bool found = false; while (!found && i < binningSize) { - if (cRig < _bins[i]) + if (cRig < _bins[i]) // less than bin[i-1] maximum edge found = true; else i++; } if (found) { - _textHisto[i - 1] += lt; + _totalNorm += lt; // use double for sums of many real numbers + _textHisto[i - 1] += lt; // use double for sums of many real numbers _rootHisto.Fill(cRig, lt); + _nGoodHisto++; } #ifdef DEBUGPAMCUT @@ -93,8 +98,9 @@ #endif } - else { - _zeroBin += lt; + else if (cRig > 0.) { + _infBin += lt; + _nGoodInfBin++; #ifdef DEBUGPAMCUT _outDown++; #endif @@ -106,7 +112,7 @@ if (_outFileBase != "") { // Write the text file - ofstream outTextFile((_outFileBase + ".txt").Data(), ios_base::out); + ofstream outTextFile((_outFileBase + "-" + GetName() + ".txt").Data(), ios_base::out); streamsize oldPrec = cout.precision(); streamsize newPrec = 4; outTextFile.precision(newPrec); @@ -114,15 +120,14 @@ for (unsigned int i = 0; i < _textHisto.size(); i++) outTextFile << _textHisto[i] << "\n"; outTextFile.close(); - outTextFile.open((_outFileBase + "-report.txt").Data(), ios_base::out); - outTextFile << "Zero bin: " << GetZeroBin() << "\n"; - outTextFile << "Total live time: " << GetTotalLT() << "\n"; + outTextFile.open((_outFileBase + "-" + GetName() + "-InfBin.txt").Data(), ios_base::out); + outTextFile << GetLTInfBin() << endl; outTextFile.close(); outTextFile.precision(oldPrec); outTextFile << resetiosflags(ios::floatfield); // Write the ROOT file - TFile outRootFile((_outFileBase + ".root"), "RECREATE"); + TFile outRootFile((_outFileBase + "-" + GetName() + ".root"), "RECREATE"); outRootFile.cd(); _rootHisto.Write(); outRootFile.Close();