musrfit/src/external/TLemRunHeader/TLemRunHeader.h

124 lines
5.0 KiB
C++

// TLemRunHeader.h
//
// T.Prokscha, 18-June-2006
//
// Lem Run header test. It inherits now from class
// TLemStats to have important scaler data as well included.
//
// use TObjString class: this has the advantage, that
// we can "see" the header in the root browser; also, have to
// "number" the lines so that they appear in the right order
// in TBrowser.
// Anyway, this is just a test - and a final "root" header
// definition should be closer to uSR Nexus definition?
//
//
#ifndef __TLemRunHeader__
#define __TLemRunHeader__
//#include <iostream>
//#include <vector>
#include "TObjString.h"
#include "TCanvas.h"
#include "TText.h"
#include "TPaveText.h"
#include "TLemStats.h"
//#define NHIST 32
//using std::cout;
//using std::endl;
//using std::vector;
//------------------------------------------------
// now the main class definition
class TLemRunHeader : public TLemStats {
private:
TObjString fRunTitle; // LEM Run Title
TObjString fLemSetup; // LEM Setup
TObjString fStartTimeString; // Run Start time
TObjString fStopTimeString; // Run Stop time
UInt_t fOffsetPPCHistograms; // ID offset for post-pileup rejected histograms, default 20
TObjString fOffsetPPCHistogramsString;
UInt_t fRunNumber;
TObjString fRunNumberString;
UInt_t fStartTime; // ASCII of start time
UInt_t fStopTime; // ASCII of stop time
Float_t fModeratorHV, fModeratorHVError;
TObjString fModeratorHVString;
Float_t fSampleHV, fSampleHVError;
TObjString fSampleHVString;
Float_t fImpEnergy;
TObjString fImpEnergyString;
Float_t fSampleTemperature, fSampleTemperatureError;
TObjString fSampleTemperatureString;
Float_t fSampleBField, fSampleBFieldError;
TObjString fSampleBFieldString;
Float_t fTimeResolution; //time resolution in ns
TObjString fTimeResolutionString;
Int_t fNChannels; // number of channels in one histogram
TObjString fNChannelsString;
Int_t fNHist; // number of histograms
TObjString fNHistString;
TObjString fCuts;
TObjString fModerator;
// vector<Double_t> fTimeZero; // time zero's of e+ detectors
Double_t fTimeZero[NHIST]; // time zero's of e+ detectors
TObjString fTimeZeroString; //
public:
TLemRunHeader();
virtual ~TLemRunHeader();
virtual Bool_t IsFolder() const { return kTRUE; } // make object "browsable"
//virtual void Browse(TBrowser *b);
virtual void SetRunTitle(const Char_t *title);
virtual void SetLemSetup(const Char_t *setup);
virtual void SetRunNumber(UInt_t runNo);
virtual void SetStartTimeString(const Char_t *start);
virtual void SetStopTimeString(const Char_t *stop);
virtual void SetOffsetPPCHistograms(UInt_t value);
virtual void SetStartTime(UInt_t value) { fStartTime = value; }
virtual void SetStopTime(UInt_t value) { fStopTime = value; }
virtual void SetModeratorHV(Float_t modHV, Float_t error);
virtual void SetSampleHV(Float_t value, Float_t error);
virtual void SetImpEnergy(Float_t value);
virtual void SetSampleTemperature(Float_t value, Float_t error);
virtual void SetSampleBField(Float_t value, Float_t error);
virtual void SetTimeResolution(Float_t value);
virtual void SetNChannels(Int_t value);
virtual void SetNHist(Int_t value);
virtual void SetCuts(const Char_t *cuts);
virtual void SetModerator(const Char_t *moderator);
virtual void SetTimeZero(const Double_t *value);
TObjString GetStartTimeString() const;
TObjString GetStopTimeString() const ;
TObjString GetRunTitle() const;
TObjString GetLemSetup() const;
virtual UInt_t GetRunNumber() const { return fRunNumber; }
virtual UInt_t GetOffsetPPCHistograms() const { return fOffsetPPCHistograms; }
virtual UInt_t GetStartTime() const { return fStartTime; }
virtual UInt_t GetStopTime() const { return fStopTime; }
virtual Int_t GetNChannels() const { return fNChannels; }
virtual Int_t GetNHist() const { return fNHist; }
virtual Float_t GetModeratorHV() const { return fModeratorHV; }
virtual Float_t GetSampleHV() const { return fSampleHV; }
virtual Float_t GetModeratorHVError() const { return fModeratorHVError; }
virtual Float_t GetSampleHVError() const { return fSampleHVError; }
virtual Float_t GetImpEnergy() const { return fImpEnergy; }
virtual Float_t GetSampleTemperature() const { return fSampleTemperature; }
virtual Float_t GetSampleBField() const { return fSampleBField; }
virtual Float_t GetSampleTemperatureError() const { return fSampleTemperatureError; }
virtual Float_t GetSampleBFieldError() const { return fSampleBFieldError; }
virtual Float_t GetTimeResolution() const { return fTimeResolution; }
TObjString GetCuts() const;
TObjString GetModerator() const;
// virtual Double_t *GetTimeZero() { return &fTimeZero.front(); }
virtual Double_t *GetTimeZero() { return fTimeZero; }
virtual void DumpHeader() const;
virtual void DrawHeader() const;
// 5th version including ID offset for PPC histograms
ClassDef(TLemRunHeader,5) // LEM Run Header
};
#endif