Merged the TLemRunHeader-lib into the musrfit tree and extended the Makefiles to work on further platforms - still some tests on non-Linux systems are missing...
This commit is contained in:
parent
4fdedbefad
commit
eb131cddbb
389
src/external/TLemRunHeader/TLemRunHeader.cxx
vendored
Normal file
389
src/external/TLemRunHeader/TLemRunHeader.cxx
vendored
Normal file
@ -0,0 +1,389 @@
|
||||
// TLemRunHeader.C
|
||||
//
|
||||
// T. Prokscha
|
||||
// 18/06/2006
|
||||
//
|
||||
// $Id: TLemRunHeader.cxx 3897 2009-05-01 22:06:11Z l_wojek $
|
||||
//
|
||||
#include "TLemRunHeader.h"
|
||||
|
||||
ClassImp(TLemRunHeader)
|
||||
|
||||
//----------------------------------------------------------
|
||||
TLemRunHeader::TLemRunHeader(){
|
||||
fRunTitle.SetString("");
|
||||
fLemSetup.SetString("");
|
||||
fStartTimeString.SetString("");
|
||||
fStopTimeString.SetString("");
|
||||
fRunNumber = 0; // -1 not possible since UInt_t
|
||||
fRunNumberString.SetString("");
|
||||
fStartTime = 0; // -1 not possible since UInt_t
|
||||
fStopTime = 0; // -1 not possible since UInt_t
|
||||
fModeratorHV = -999.0;
|
||||
fModeratorHVError = -999.0;
|
||||
fModeratorHVString.SetString("");
|
||||
fSampleHV = -999.0;
|
||||
fSampleHVError = -999.0;
|
||||
fSampleHVString.SetString("");
|
||||
fImpEnergy = -999.0;
|
||||
fImpEnergyString.SetString("");
|
||||
fSampleTemperature = -999.0;
|
||||
fSampleTemperatureError = -999.0;
|
||||
fSampleTemperatureString.SetString("");
|
||||
fSampleBField = -999.0;
|
||||
fSampleBFieldError = -999.0;
|
||||
fSampleBFieldString.SetString("");
|
||||
fTimeResolution = -999.0;
|
||||
fTimeResolutionString.SetString("");
|
||||
fNChannels = -1;
|
||||
fNChannelsString.SetString("");
|
||||
fNHist = -1;
|
||||
fNHistString.SetString("");
|
||||
fCuts.SetString("");
|
||||
fModerator.SetString("");
|
||||
for (int i=0; i<NHIST; i++)
|
||||
fTimeZero[i] = -1.;
|
||||
fTimeZeroString.SetString("");
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
TLemRunHeader::~TLemRunHeader(){
|
||||
//fTimeZero.clear();
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetRunTitle(const Char_t *title){
|
||||
TString str;
|
||||
str = "00 Title: ";
|
||||
str += title;
|
||||
fRunTitle.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetLemSetup(const Char_t *setup){
|
||||
TString str;
|
||||
str = "01 Setup: ";
|
||||
str += setup;
|
||||
fLemSetup.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetRunNumber(UInt_t runNo){
|
||||
TString str;
|
||||
fRunNumber = runNo;
|
||||
str = "02 Run Number: ";
|
||||
str += runNo;
|
||||
fRunNumberString.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetStartTimeString(const Char_t *start){
|
||||
TString str;
|
||||
str = "03 Run Start Time: ";
|
||||
str += start;
|
||||
fStartTimeString.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetStopTimeString(const Char_t *stop){
|
||||
TString str;
|
||||
str = "04 Run Stop Time: ";
|
||||
str += stop;
|
||||
fStopTimeString.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetModeratorHV(Float_t modHV, Float_t error){
|
||||
TString str;
|
||||
char s[80];
|
||||
sprintf(s, "05 Moderator HV: %8.2f(%5.2f)", modHV, error);
|
||||
str = s;
|
||||
fModeratorHVString.SetString(str);
|
||||
fModeratorHV = modHV;
|
||||
fModeratorHVError = error;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetSampleHV(Float_t value, Float_t error){
|
||||
TString str;
|
||||
char s[80];
|
||||
sprintf(s,"06 Sample HV: %8.2f(%5.2f)", value, error);
|
||||
str = s;
|
||||
fSampleHVString.SetString(str);
|
||||
fSampleHV = value;
|
||||
fSampleHVError = error;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetImpEnergy(Float_t value){
|
||||
TString str;
|
||||
char s[80];
|
||||
sprintf(s,"07 Impl. Energy: %8.2f", value);
|
||||
str = s;
|
||||
fImpEnergyString.SetString(str);
|
||||
fImpEnergy = value;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetSampleTemperature(Float_t value, Float_t error){
|
||||
TString str;
|
||||
char s[80];
|
||||
sprintf(s,"08 Sample T: %8.2f(%5.2f)", value, error);
|
||||
str = s;
|
||||
fSampleTemperatureString.SetString(str);
|
||||
fSampleTemperature = value;
|
||||
fSampleTemperatureError = error;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetSampleBField(Float_t value, Float_t error){
|
||||
TString str;
|
||||
char s[80];
|
||||
sprintf(s,"09 Sample B: %8.2f(%5.2f)", value, error);
|
||||
str = s;
|
||||
fSampleBFieldString.SetString(str);
|
||||
fSampleBField = value;
|
||||
fSampleBFieldError = error;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetTimeResolution(Float_t value){
|
||||
TString str;
|
||||
char s[80];
|
||||
sprintf(s,"10 Time Res.: %10.7f", value);
|
||||
str = s;
|
||||
fTimeResolutionString.SetString(str);
|
||||
fTimeResolution = value;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetNChannels(Int_t value){
|
||||
TString str;
|
||||
char s[80];
|
||||
sprintf(s,"11 N Channels: %8d", value);
|
||||
str = s;
|
||||
fNChannelsString.SetString(str);
|
||||
fNChannels = value;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetNHist(Int_t value){
|
||||
TString str;
|
||||
char s[80];
|
||||
sprintf(s,"12 N Histograms: %6d", value);
|
||||
str = s;
|
||||
fNHistString.SetString(str);
|
||||
fNHist = value;
|
||||
SetNPosDetectors(fNHist);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetCuts(const Char_t *cuts){
|
||||
TString str;
|
||||
str = "13 Cuts: ";
|
||||
str += cuts;
|
||||
fCuts.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetModerator(const Char_t *moderator){
|
||||
TString str;
|
||||
str = "14 Moderator: ";
|
||||
str += moderator;
|
||||
fModerator.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::SetTimeZero(const Double_t *value){
|
||||
TString str;
|
||||
str = "15 t0: ";
|
||||
for (Int_t i = 0; i < fNHist; i++){
|
||||
//fTimeZero.push_back(value[i]);
|
||||
fTimeZero[i] = value[i];
|
||||
str += value[i];
|
||||
str += " ";
|
||||
}
|
||||
fTimeZeroString.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
TObjString TLemRunHeader::GetRunTitle() const {
|
||||
TObjString ostr;
|
||||
TString str;
|
||||
Int_t delIndex;
|
||||
|
||||
str = fRunTitle.GetString();
|
||||
delIndex = str.First(":") + 2;
|
||||
str.Remove(0, delIndex);
|
||||
ostr.SetString(str);
|
||||
return ostr;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
TObjString TLemRunHeader::GetLemSetup() const {
|
||||
TObjString ostr;
|
||||
TString str;
|
||||
Int_t delIndex;
|
||||
|
||||
str = fLemSetup.GetString();
|
||||
delIndex = str.First(":") + 2;
|
||||
str.Remove(0, delIndex);
|
||||
ostr.SetString(str);
|
||||
return ostr;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
//Int_t TLemRunHeader::GetRunNumber() const {
|
||||
// TString str;
|
||||
// Int_t delIndex;
|
||||
//
|
||||
// str = fRunNumberString.GetString();
|
||||
// delIndex = str.First(":") + 1;
|
||||
// str.Remove(0, delIndex);
|
||||
// return str.Atoi();
|
||||
//}
|
||||
//----------------------------------------------------------
|
||||
TObjString TLemRunHeader::GetStartTimeString() const {
|
||||
TObjString ostr;
|
||||
TString str;
|
||||
Int_t delIndex;
|
||||
|
||||
str = fStartTimeString.GetString();
|
||||
delIndex = str.First(":") + 2;
|
||||
str.Remove(0, delIndex);
|
||||
ostr.SetString(str);
|
||||
return ostr;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
TObjString TLemRunHeader::GetStopTimeString() const {
|
||||
TObjString ostr;
|
||||
TString str;
|
||||
Int_t delIndex;
|
||||
|
||||
str = fStopTimeString.GetString();
|
||||
delIndex = str.First(":") + 2;
|
||||
str.Remove(0, delIndex);
|
||||
ostr.SetString(str);
|
||||
return ostr;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
TObjString TLemRunHeader::GetCuts() const {
|
||||
TObjString ostr;
|
||||
TString str;
|
||||
Int_t delIndex;
|
||||
|
||||
str = fCuts.GetString();
|
||||
delIndex = str.First(":") + 2;
|
||||
str.Remove(0, delIndex);
|
||||
ostr.SetString(str);
|
||||
return ostr;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
TObjString TLemRunHeader::GetModerator() const {
|
||||
TObjString ostr;
|
||||
TString str;
|
||||
Int_t delIndex;
|
||||
|
||||
str = fModerator.GetString();
|
||||
delIndex = str.First(":") + 2;
|
||||
str.Remove(0, delIndex);
|
||||
ostr.SetString(str);
|
||||
return ostr;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemRunHeader::DumpHeader() const {
|
||||
TObjString oTitle, oSetup, oStart, oStop, oCuts, oMod;
|
||||
const char *title, *setup, *runStart, *runStop, *cuts, *mod;
|
||||
|
||||
oTitle = GetRunTitle();
|
||||
title = oTitle.GetName();
|
||||
oSetup = GetLemSetup();
|
||||
setup = oSetup.GetName();
|
||||
oStart = GetStartTimeString();
|
||||
runStart = oStart.GetName();
|
||||
oStop = GetStopTimeString();
|
||||
runStop = oStop.GetName();
|
||||
oCuts = GetCuts();
|
||||
cuts = oCuts.GetName();
|
||||
oMod = GetModerator();
|
||||
mod = oMod.GetName();
|
||||
|
||||
printf("Title: %s\n",title);
|
||||
printf("Setup: %s\n",setup);
|
||||
printf("Run Number: %04d\n", GetRunNumber());
|
||||
printf("Start Time: %s\n", runStart);
|
||||
printf("Stop Time: %s\n", runStop);
|
||||
printf("Moderator HV: %10.2f kV\n", fModeratorHV);
|
||||
printf("Sample HV: %10.2f kV\n", fSampleHV);
|
||||
printf("Impl. Energy: %10.2f keV\n", fImpEnergy);
|
||||
printf("Sample T: %10.2f K\n", fSampleTemperature);
|
||||
printf("Sample B: %10.2f G\n", fSampleBField);
|
||||
printf("Time Res.: %10.7f ns\n", fTimeResolution);
|
||||
printf("N Channels: %10d\n", fNChannels);
|
||||
printf("N Histograms: %10d\n", fNHist);
|
||||
printf("Cuts: %s\n", cuts);
|
||||
printf("Moderator: %s\n", mod);
|
||||
printf("t0: ");
|
||||
for (Int_t i=0; i<fNHist; i++)
|
||||
printf(" %7.2f ", fTimeZero[i]);
|
||||
printf("\n");
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
//void TLemRunHeader::Browse(TBrowser *b){
|
||||
void TLemRunHeader::DrawHeader() const {
|
||||
TPaveText *pt;
|
||||
TText *text;
|
||||
TCanvas *ca;
|
||||
Char_t str[256], helpstr[256];
|
||||
TObjString oTitle, oSetup, oStart, oStop, oCuts, oMod;
|
||||
const char *title, *setup, *runStart, *runStop, *cuts, *mod;
|
||||
|
||||
oTitle = GetRunTitle();
|
||||
title = oTitle.GetName();
|
||||
oSetup = GetLemSetup();
|
||||
setup = oSetup.GetName();
|
||||
oStart = GetStartTimeString();
|
||||
runStart = oStart.GetName();
|
||||
oStop = GetStopTimeString();
|
||||
runStop = oStop.GetName();
|
||||
oCuts = GetCuts();
|
||||
cuts = oCuts.GetName();
|
||||
oMod = GetModerator();
|
||||
mod = oMod.GetName();
|
||||
|
||||
ca = new TCanvas("LEM RunHeader","LEM RunHeader", 147,37,699,527);
|
||||
ca->Range(0., 0., 100., 100.);
|
||||
|
||||
pt = new TPaveText(10.,10.,90.,90.,"br");
|
||||
pt->SetFillColor(19);
|
||||
pt->SetTextAlign(12);
|
||||
strcpy(str, "Title: ");
|
||||
strcat(str, title);
|
||||
text = pt->AddText(str);
|
||||
strcpy(str, "Setup: ");
|
||||
strcat(str, setup);
|
||||
text = pt->AddText(str);
|
||||
strcpy(str, "Run Start: ");
|
||||
strcat(str, runStart);
|
||||
text = pt->AddText(str);
|
||||
strcpy(str, "Run Stop: ");
|
||||
strcat(str, runStop);
|
||||
text = pt->AddText(str);
|
||||
sprintf(str, "Run Number: %10d", GetRunNumber());
|
||||
text = pt->AddText(str);
|
||||
sprintf(str, "Moderator HV: %10.2f kV", fModeratorHV);
|
||||
text = pt->AddText(str);
|
||||
sprintf(str, "Sample HV: %10.2f kV", fSampleHV);
|
||||
text = pt->AddText(str);
|
||||
sprintf(str, "Impl. Energy: %10.2f keV", fImpEnergy);
|
||||
text = pt->AddText(str);
|
||||
sprintf(str, "Sample T: %10.2f K", fSampleTemperature);
|
||||
text = pt->AddText(str);
|
||||
sprintf(str, "Sample B: %10.2f G", fSampleBField);
|
||||
text = pt->AddText(str);
|
||||
sprintf(str, "Time Res.: %10.7f ns", fTimeResolution);
|
||||
text = pt->AddText(str);
|
||||
sprintf(str, "N Channels: %10d", fNChannels);
|
||||
text = pt->AddText(str);
|
||||
sprintf(str, "N Histograms: %10d", fNHist);
|
||||
text = pt->AddText(str);
|
||||
strcpy(str, "Cuts: ");
|
||||
strcat(str, cuts);
|
||||
text = pt->AddText(str);
|
||||
strcpy(str, "Moderator: ");
|
||||
strcat(str, mod);
|
||||
text = pt->AddText(str);
|
||||
|
||||
strcpy(str,"t0: ");
|
||||
for (Int_t i=0; i<fNHist; i++){
|
||||
sprintf(helpstr, " %7.2f ", fTimeZero[i]);
|
||||
strcat(str, helpstr);
|
||||
}
|
||||
text = pt->AddText(str);
|
||||
|
||||
pt->Draw();
|
||||
|
||||
ca->Modified(kTRUE);
|
||||
|
||||
}
|
||||
//----------------------------------------------------------
|
119
src/external/TLemRunHeader/TLemRunHeader.h
vendored
Normal file
119
src/external/TLemRunHeader/TLemRunHeader.h
vendored
Normal file
@ -0,0 +1,119 @@
|
||||
// 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 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 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 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;
|
||||
|
||||
// 4th version including lemStats
|
||||
ClassDef(TLemRunHeader,4) // LEM Run Header
|
||||
};
|
||||
#endif
|
15
src/external/TLemRunHeader/TLemRunHeaderLinkDef.h
vendored
Normal file
15
src/external/TLemRunHeader/TLemRunHeaderLinkDef.h
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
#ifdef __CINT__
|
||||
|
||||
#pragma link off all globals;
|
||||
#pragma link off all classes;
|
||||
#pragma link off all functions;
|
||||
|
||||
//#pragma link C++ class TLemStartTime+;
|
||||
//#pragma link C++ class TLemStopTime+;
|
||||
//#pragma link C++ class TLemRunTitle+;
|
||||
//#pragma link C++ class TLemSetup+;
|
||||
//#pragma link C++ class TLemRunNumber+;
|
||||
//#pragma link C++ class TLemStats+;
|
||||
#pragma link C++ class TLemRunHeader+;
|
||||
|
||||
#endif
|
97
src/external/TLemRunHeader/TLemStats.cxx
vendored
Normal file
97
src/external/TLemRunHeader/TLemStats.cxx
vendored
Normal file
@ -0,0 +1,97 @@
|
||||
// TLemStats.C
|
||||
//
|
||||
// T. Prokscha
|
||||
// 25/04/2007
|
||||
//
|
||||
#include "TLemStats.h"
|
||||
|
||||
ClassImp(TLemStats)
|
||||
|
||||
//----------------------------------------------------------
|
||||
TLemStats::TLemStats(){
|
||||
fIpSum = fScalerClockSum = fTdcClockSum = fTdSum = 1.;
|
||||
fTdCleanSum = fTdGoodSum = fNevents = 1.;
|
||||
for (int i=0; i<NHIST; i++)
|
||||
fPosSum[i] = -1.;
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
TLemStats::~TLemStats(){
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemStats::SetIpSum(Double_t value){
|
||||
TString str;
|
||||
fIpSum = value;
|
||||
str = "20 Sum Ip : ";
|
||||
str += value;
|
||||
str += " ";
|
||||
|
||||
if (fScalerClockSum > 0. ){
|
||||
str += value/fScalerClockSum*0.1;
|
||||
str += " /mAs";
|
||||
}
|
||||
|
||||
fIpSumString.SetString(str);
|
||||
//printf("String = %s\n", (const char*) str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemStats::SetScalerClockSum(Double_t value){
|
||||
TString str;
|
||||
fScalerClockSum = value;
|
||||
str = "21 Sum Clock (Scaler) : ";
|
||||
str += value;
|
||||
fScalerClockSumString.SetString(str);
|
||||
//printf("String = %s\n", (const char*) str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemStats::SetTdcClockSum(Double_t value){
|
||||
TString str;
|
||||
fTdcClockSum = value;
|
||||
str = "22 Sum Clock (TDC) : ";
|
||||
str += value;
|
||||
fTdcClockSumString.SetString(str);
|
||||
//printf("String = %s\n", (const char*) str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemStats::SetNevents(Double_t value){
|
||||
TString str;
|
||||
fNevents = value;
|
||||
str = "23 Sum Slow Muon Events: ";
|
||||
str += value;
|
||||
fNeventsString.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemStats::SetTdSum(Double_t value){
|
||||
TString str;
|
||||
fTdSum = value;
|
||||
str = "24 Sum TD : ";
|
||||
str += value;
|
||||
fTdSumString.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemStats::SetTdCleanSum(Double_t value){
|
||||
TString str;
|
||||
fTdCleanSum = value;
|
||||
str = "25 Sum TD_Clean : ";
|
||||
str += value;
|
||||
fTdCleanSumString.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemStats::SetTdGoodSum(Double_t value){
|
||||
TString str;
|
||||
fTdGoodSum = value;
|
||||
str = "26 Sum TD_Good : ";
|
||||
str += value;
|
||||
fTdGoodSumString.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
void TLemStats::SetPosSum(const Double_t *value){
|
||||
TString str;
|
||||
str = "27 Sum Positrons : ";
|
||||
for (Int_t i = 0; i < fNPosDetectors; i++){
|
||||
fPosSum[i] = value[i];
|
||||
str += value[i];
|
||||
str += " ";
|
||||
}
|
||||
fPosSumString.SetString(str);
|
||||
}
|
||||
//----------------------------------------------------------
|
86
src/external/TLemRunHeader/TLemStats.h
vendored
Normal file
86
src/external/TLemRunHeader/TLemStats.h
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
// TLemStats.h
|
||||
//
|
||||
// T.Prokscha, 25-April-2007
|
||||
//
|
||||
// Lem Statistics for LEM Run Header. Define own class which
|
||||
// appears as a subdirectory in the /RunInfo/TLemRunHeader
|
||||
// directory of a root file.
|
||||
//
|
||||
// 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 __TLemStats__
|
||||
#define __TLemStats__
|
||||
|
||||
//#include <iostream>
|
||||
//#include "TSystem.h"
|
||||
#include "TObject.h"
|
||||
#include "TObjString.h"
|
||||
//#include "TMath.h"
|
||||
//#include "TApplication.h"
|
||||
//#include "TCanvas.h"
|
||||
//#include "TText.h"
|
||||
//#include "TPaveText.h"
|
||||
|
||||
#define NHIST 32
|
||||
//using std::cout;
|
||||
//using std::endl;
|
||||
|
||||
//------------------------------------------------
|
||||
// class for LEM statistics
|
||||
class TLemStats : public TObject {
|
||||
|
||||
private:
|
||||
TObjString fIpSumString; //sum of Ip counts in one run
|
||||
Double_t fIpSum;
|
||||
TObjString fScalerClockSumString; //sum of 10kHz counts in one run
|
||||
Double_t fScalerClockSum; //extracted from VME scaler module
|
||||
TObjString fTdcClockSumString; //sum of 10kHz counts in one run,
|
||||
Double_t fTdcClockSum; //extracted from VME TDC
|
||||
TObjString fNeventsString; //total number of slow muon events
|
||||
Double_t fNevents;
|
||||
TObjString fTdSumString; //total number of TD hits (muon start detector for LEM)
|
||||
Double_t fTdSum;
|
||||
TObjString fTdCleanSumString; //total number of TD hits without pre-pileup
|
||||
Double_t fTdCleanSum;
|
||||
TObjString fTdGoodSumString; //total number of TD hirs without pre- and post-pileup
|
||||
Double_t fTdGoodSum;
|
||||
TObjString fPosSumString; //total number of slow muon events
|
||||
Double_t fPosSum[NHIST]; //total number of positron detector hits inLEM detectors
|
||||
Int_t fNPosDetectors; //number of e+ detectors/histograms
|
||||
|
||||
public:
|
||||
TLemStats();
|
||||
virtual ~TLemStats();
|
||||
virtual Bool_t IsFolder() const { return kTRUE; } // make object "browsable"
|
||||
|
||||
virtual void SetIpSum(Double_t value);
|
||||
virtual void SetScalerClockSum(Double_t value);
|
||||
virtual void SetTdcClockSum(Double_t value);
|
||||
virtual void SetNevents(Double_t value);
|
||||
virtual void SetTdSum(Double_t value);
|
||||
virtual void SetTdCleanSum(Double_t value);
|
||||
virtual void SetTdGoodSum(Double_t value);
|
||||
virtual void SetPosSum(const Double_t *value);
|
||||
virtual void SetNPosDetectors(Int_t n) { fNPosDetectors = n; }
|
||||
|
||||
virtual Double_t GetIpSum() const { return fIpSum; }
|
||||
virtual Double_t GetScalerClockSum() const { return fScalerClockSum; }
|
||||
virtual Double_t GetTdcClockSum() const { return fTdcClockSum; }
|
||||
virtual Double_t GetNevents() const { return fNevents; }
|
||||
virtual Double_t GetTdSum() const { return fTdSum; }
|
||||
virtual Double_t GetTdCleanSum() const { return fTdCleanSum; }
|
||||
virtual Double_t GetTdGoodSum() const { return fTdGoodSum; }
|
||||
virtual Double_t *GetPosSum() { return fPosSum; }
|
||||
TObjString GetIpSumString() const { return fIpSumString; }
|
||||
virtual Int_t GetNPosDetectors() const { return fNPosDetectors;}
|
||||
|
||||
//2nd version of TLemStats
|
||||
ClassDef(TLemStats,2) //LEM Statistics
|
||||
};
|
||||
#endif
|
14
src/external/TLemRunHeader/TLemStatsLinkDef.h
vendored
Normal file
14
src/external/TLemRunHeader/TLemStatsLinkDef.h
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
#ifdef __CINT__
|
||||
|
||||
#pragma link off all globals;
|
||||
#pragma link off all classes;
|
||||
#pragma link off all functions;
|
||||
|
||||
//#pragma link C++ class TLemStartTime+;
|
||||
//#pragma link C++ class TLemStopTime+;
|
||||
//#pragma link C++ class TLemRunTitle+;
|
||||
//#pragma link C++ class TLemSetup+;
|
||||
//#pragma link C++ class TLemRunNumber+;
|
||||
#pragma link C++ class TLemStats+;
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user