added spin rotation angle to the LEM MusrRoot file

This commit is contained in:
suter_a 2012-05-22 13:51:56 +00:00
parent 765d1a3faf
commit bf1d8cc96d
6 changed files with 15 additions and 0 deletions

View File

@ -6,6 +6,7 @@
changes since 0.11.0
===================================
NEW 2012-05-22 added spin rotation angle to the LEM MusrRoot file.
NEW 2012-05-12 added dump_header. This is a little program which dumps the
header information of a given muSR data file onto the standard
output. Since dump_header also includes the option of

View File

@ -519,6 +519,7 @@ PRawRunData::PRawRunData()
fMuonSource = TString("n/a");
fMuonSpecies = TString("n/a");
fMuonBeamMomentum = PMUSR_UNDEFINED;
fMuonSpinAngle = PMUSR_UNDEFINED;
fRunName = TString("n/a");
fRunNumber = -1;
fRunTitle = TString("n/a");

View File

@ -1472,6 +1472,11 @@ Bool_t PRunDataHandler::ReadRootFile()
if (ok)
runData.SetMuonSource(str);
header->Get("RunInfo/Muon Spin Angle", prop, ok);
if (ok) {
runData.SetMuonSpinAngle(prop.GetValue());
}
header->Get("RunInfo/Setup", str, ok);
if (ok)
runData.SetSetup(str);

View File

@ -190,6 +190,7 @@ int dump_header_root(const string fileName, const string fileFormat)
*/
int dump_header_nexus(const string fileName) {
#ifdef PNEXUS_ENABLED
PNeXus *nxs_file = new PNeXus(fileName.c_str());
if (nxs_file->IsValid(false)) {
@ -198,6 +199,9 @@ int dump_header_nexus(const string fileName) {
if (nxs_file)
delete nxs_file;
#else
cout << endl << "NeXus not enabled, hence the header information cannot be dumped." << endl << endl;
#endif
return 0;
}

View File

@ -125,6 +125,7 @@
<xs:element name="Moderator_HV" type="TMusrRunPhysicalQuantity"/>
<xs:element name="Sample_HV" type="TMusrRunPhysicalQuantity"/>
<xs:element name="Implantation_Energy" type="TMusrRunPhysicalQuantity"/>
<xs:element name="Muon_Spin_Angle" type="TMusrRunPhysicalQuantity"/>
<xs:element name="Cuts" type="TString"/>
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/> <!-- here can go any additional stuff you like -->
</xs:sequence>

View File

@ -358,6 +358,7 @@ class PRawRunData {
virtual const TString* GetMuonSource() { return &fMuonSource; }
virtual const TString* GetMuonSpecies() { return &fMuonSpecies; }
virtual const Double_t GetMuonBeamMomentum() { return fMuonBeamMomentum; }
virtual const Double_t GetMuonSpinAngle() { return fMuonSpinAngle; }
virtual const Int_t GetRunNumber() { return fRunNumber; }
virtual const TString* GetRunTitle() { return &fRunTitle; }
virtual const TString* GetSetup() { return &fSetup; }
@ -404,6 +405,7 @@ class PRawRunData {
virtual void SetMuonSource(const TString &str) { fMuonSource = str; }
virtual void SetMuonSpecies(const TString &str) { fMuonSpecies = str; }
virtual void SetMuonBeamMomentum(const Double_t dval) { fMuonBeamMomentum = dval; }
virtual void SetMuonSpinAngle(const Double_t dval) { fMuonSpinAngle = dval; }
virtual void SetRunName(const TString &str) { fRunName = str; }
virtual void SetRunNumber(const Int_t &val) { fRunNumber = val; }
virtual void SetRunTitle(const TString str) { fRunTitle = str; }
@ -444,6 +446,7 @@ class PRawRunData {
TString fMuonSource; ///< keeps the type of muon source, e.g. continous surface beam, pulsed beam, low energy muon beam
TString fMuonSpecies; ///< positive muon or negative muon
Double_t fMuonBeamMomentum; ///< given in MeV/c, for LEM this is the momentum of the secondary beamline and NOT the momentum of the low energy beam
Double_t fMuonSpinAngle; ///< gives the muon spin angle in degrees (reference frame depends on the instrument)
TString fRunName; ///< name of the run as found in the msr-file
Int_t fRunNumber; ///< run number
TString fRunTitle; ///< run title