From e5fa134ad83f5faa4bcfb989b324b4416d431799 Mon Sep 17 00:00:00 2001 From: nemu Date: Thu, 17 Apr 2008 06:00:51 +0000 Subject: [PATCH] added a first legend --- src/classes/PMusrCanvas.cpp | 30 +++++++++++++++-- src/classes/PRunDataHandler.cpp | 13 ++++++++ src/classes/PRunListCollection.cpp | 53 ++++++++++++++++++++++++++++++ src/include/PMusr.h | 1 + src/include/PRunListCollection.h | 5 +++ 5 files changed, 100 insertions(+), 2 deletions(-) diff --git a/src/classes/PMusrCanvas.cpp b/src/classes/PMusrCanvas.cpp index e2a11104..0302d3d8 100644 --- a/src/classes/PMusrCanvas.cpp +++ b/src/classes/PMusrCanvas.cpp @@ -153,7 +153,6 @@ void PMusrCanvas::InitMusrCanvas(const char* title, Int_t wtopx, Int_t wtopy, In TString canvasName = TString("fMainCanvas"); canvasName += fPlotNumber; fMainCanvas = new TCanvas(canvasName.Data(), title, wtopx, wtopy, ww, wh); -cout << canvasName.Data() << " = " << fMainCanvas << endl; if (fMainCanvas == 0) { cout << endl << "PMusrCanvas::PMusrCanvas: **PANIC ERROR**: Couldn't invoke " << canvasName.Data(); cout << endl; @@ -545,6 +544,8 @@ void PMusrCanvas::UpdateInfoPad() fInfoPad->SetHeader(tstr); // get/set run plot info + double dval; + char sval[128]; unsigned int runNo; PMsrPlotStructure plotInfo = fMsrHandler->GetMsrPlotList()->at(fPlotNumber); PMsrRunList runs = *fMsrHandler->GetMsrRunList(); @@ -565,9 +566,34 @@ void PMusrCanvas::UpdateInfoPad() tstr += TString(","); } // temperature if present + tstr += TString("T="); + dval = fRunList->GetTemp(runs[runNo].fRunName); + if (isnan(dval)) { + tstr += TString("??,"); + } else { + sprintf(sval, "%0.2lf", dval); + tstr += TString(sval) + TString("(K),"); + } // field if present + tstr += TString("B="); + dval = fRunList->GetField(runs[runNo].fRunName); + if (isnan(dval)) { + tstr += TString("??,"); + } else { + sprintf(sval, "%0.2lf", dval); + tstr += TString(sval) + TString("(G),"); + } // energy if present - // more stuff if present + tstr += TString("E="); + dval = fRunList->GetEnergy(runs[runNo].fRunName); + if (isnan(dval)) { + tstr += TString("??,"); + } else { + sprintf(sval, "%0.2lf", dval); + tstr += TString(sval) + TString("(keV),"); + } + // setup if present + tstr += fRunList->GetSetup(runs[runNo].fRunName); // add entry fInfoPad->AddEntry(fData[i].data, tstr.Data(), "p"); } diff --git a/src/classes/PRunDataHandler.cpp b/src/classes/PRunDataHandler.cpp index 7905dfd4..8608ecbc 100644 --- a/src/classes/PRunDataHandler.cpp +++ b/src/classes/PRunDataHandler.cpp @@ -356,6 +356,18 @@ bool PRunDataHandler::ReadRootFile() return false; } + // get temperature + runData.fTemp = runHeader->GetSampleTemperature(); + + // get field + runData.fField = runHeader->GetSampleBField(); + + // get implantation energy + runData.fEnergy = runHeader->GetImpEnergy(); + + // get setup + runData.fSetup = runHeader->GetLemSetup().GetString(); + // get time resolution runData.fTimeResolution = runHeader->GetTimeResolution(); @@ -463,6 +475,7 @@ bool PRunDataHandler::ReadNemuFile() runData.fSetup = TString(""); runData.fField = nan("NAN"); runData.fTemp = nan("NAN"); + runData.fEnergy = nan("NAN"); runData.fTimeResolution = nan("NAN"); // open file diff --git a/src/classes/PRunListCollection.cpp b/src/classes/PRunListCollection.cpp index c3d8e608..f8abaafd 100644 --- a/src/classes/PRunListCollection.cpp +++ b/src/classes/PRunListCollection.cpp @@ -423,3 +423,56 @@ PRunData* PRunListCollection::GetNonMusr(unsigned int index, EDataSwitch tag) return 0; } + +//-------------------------------------------------------------------------- +// GetTemp +//-------------------------------------------------------------------------- +/** + *

+ * + * \param runName + */ +double PRunListCollection::GetTemp(TString &runName) +{ + return fData->GetRunData(runName)->fTemp; +} + +//-------------------------------------------------------------------------- +// GetField +//-------------------------------------------------------------------------- +/** + *

+ * + * \param runName + */ +double PRunListCollection::GetField(TString &runName) +{ + return fData->GetRunData(runName)->fField; +} + +//-------------------------------------------------------------------------- +// GetEnergy +//-------------------------------------------------------------------------- +/** + *

+ * + * \param runName + */ +double PRunListCollection::GetEnergy(TString &runName) +{ + return fData->GetRunData(runName)->fEnergy; +} + +//-------------------------------------------------------------------------- +// GetSetup +//-------------------------------------------------------------------------- +/** + *

+ * + * \param runName + */ +const char* PRunListCollection::GetSetup(TString &runName) +{ + return fData->GetRunData(runName)->fSetup.Data(); +} + diff --git a/src/include/PMusr.h b/src/include/PMusr.h index 1a6e1b5a..9e9a51fb 100644 --- a/src/include/PMusr.h +++ b/src/include/PMusr.h @@ -148,6 +148,7 @@ typedef struct { TString fSetup; ///< description of the setup of this run double fField; ///< magnetic field value double fTemp; ///< temperature during the run + double fEnergy; ///< implantation energy of the muon double fTimeResolution; ///< time resolution of the run PDoubleVector fT0s; ///< vector of t0's of a run vector fDataBin; ///< vector of all histos of a run diff --git a/src/include/PRunListCollection.h b/src/include/PRunListCollection.h index 0d11155a..b9ee018a 100644 --- a/src/include/PRunListCollection.h +++ b/src/include/PRunListCollection.h @@ -75,6 +75,11 @@ class PRunListCollection virtual PRunData* GetRRF(unsigned int index, EDataSwitch tag=kIndex); virtual PRunData* GetNonMusr(unsigned int index, EDataSwitch tag=kIndex); + virtual double GetTemp(TString &runName); + virtual double GetField(TString &runName); + virtual double GetEnergy(TString &runName); + virtual const char* GetSetup(TString &runName); + private: PMsrHandler *fMsrInfo; ///< keeps all msr file info PRunDataHandler *fData; ///< handles all raw data