improved handling for grouping and addrun
This commit is contained in:
@ -40,12 +40,76 @@
|
||||
#include <TCanvas.h>
|
||||
#include <TH1.h>
|
||||
#include <TLine.h>
|
||||
#include <TLatex.h>
|
||||
|
||||
#include "PMusr.h"
|
||||
#ifndef __MAKECINT__
|
||||
#include "PMsrHandler.h"
|
||||
#endif // __MAKECINT__
|
||||
|
||||
#define PMUSRT0_FORWARD 0
|
||||
#define PMUSRT0_BACKWARD 1
|
||||
|
||||
#define PMUSRT0_GET_T0 0
|
||||
#define PMUSRT0_GET_DATA_AND_BKG_RANGE 1
|
||||
#define PMUSRT0_GET_T0_DATA_AND_BKG_RANGE 2
|
||||
|
||||
/*
|
||||
#define PMUSRT0_NOADDRUN_NOGROUPING 0
|
||||
#define PMUSRT0_ADDRUN_NOGROUPING 1
|
||||
#define PMUSRT0_NOADDRUN_GROUPING 2
|
||||
#define PMUSRT0_ADDRUN_GROUPING 3
|
||||
*/
|
||||
|
||||
class PMusrT0Data {
|
||||
public:
|
||||
PMusrT0Data();
|
||||
virtual ~PMusrT0Data();
|
||||
|
||||
|
||||
virtual void InitData();
|
||||
|
||||
virtual Bool_t IsSingleHisto() { return fSingleHisto; }
|
||||
virtual UInt_t GetRawRunDataSize() { return fRawRunData.size(); }
|
||||
virtual PRawRunData* GetRawRunData(Int_t idx);
|
||||
virtual Int_t GetRunNo() { return fRunNo; }
|
||||
virtual Int_t GetAddRunIdx() { return fAddRunIdx; }
|
||||
virtual Int_t GetHistoNoIdx() { return fHistoNoIdx; }
|
||||
virtual UInt_t GetHistoNoSize() { return fHistoNo.size(); }
|
||||
virtual Int_t GetHistoNo(UInt_t idx);
|
||||
virtual Int_t GetDetectorTag() { return fDetectorTag; }
|
||||
virtual Int_t GetCmdTag() { return fCmdTag; }
|
||||
virtual UInt_t GetT0Size() { return fT0.size(); }
|
||||
virtual Int_t GetT0(UInt_t idx);
|
||||
virtual UInt_t GetAddT0Entries() { return fAddT0.size(); }
|
||||
virtual UInt_t GetAddT0Size(UInt_t idx);
|
||||
virtual Int_t GetAddT0(UInt_t addRunIdx, UInt_t idx);
|
||||
|
||||
virtual void SetSingleHisto(const Bool_t flag) { fSingleHisto = flag; }
|
||||
virtual void SetRawRunData(const vector<PRawRunData*> rawRunData) { fRawRunData = rawRunData; }
|
||||
virtual void SetRunNo(const UInt_t runNo) { fRunNo = runNo; }
|
||||
virtual void SetAddRunIdx(const UInt_t addRunIdx) { fAddRunIdx = addRunIdx; }
|
||||
virtual void SetHistoNoIdx(const UInt_t histoNoIdx) { fHistoNoIdx = histoNoIdx; }
|
||||
virtual void SetHistoNo(const PIntVector histoNo) { fHistoNo = histoNo; }
|
||||
virtual void SetDetectorTag(const UInt_t detectorTag) { fDetectorTag = detectorTag; }
|
||||
virtual void SetCmdTag(const UInt_t cmdTag) { fCmdTag = cmdTag; }
|
||||
virtual void SetT0(UInt_t val, UInt_t idx);
|
||||
virtual void SetAddT0(UInt_t val, UInt_t addRunIdx, UInt_t idx);
|
||||
|
||||
private:
|
||||
Bool_t fSingleHisto; ///< true if single histo fit, false for asymmetry fit
|
||||
vector<PRawRunData*> fRawRunData; ///< holds the raw data of the needed runs, idx=0 the run, idx>0 the addruns
|
||||
Int_t fRunNo; ///< msr-file run number
|
||||
Int_t fAddRunIdx; ///< msr-file addrun index
|
||||
Int_t fHistoNoIdx; ///< msr-file histo number index
|
||||
PIntVector fHistoNo; ///< msr-file histo numbers
|
||||
Int_t fDetectorTag; ///< detector tag. forward=0,backward=1
|
||||
Int_t fCmdTag; ///< command tag. 0=get t0, 1=get data-/bkg-range, 2=get t0, and data-/bkg-range
|
||||
PIntVector fT0; ///< holding the t0's of the run
|
||||
vector<PIntVector> fAddT0; ///< holding the t0's of the addruns
|
||||
};
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
/**
|
||||
* <p>The preprocessor tag __MAKECINT__ is used to hide away from rootcint
|
||||
@ -55,10 +119,12 @@ class PMusrT0 : public TObject, public TQObject
|
||||
{
|
||||
public:
|
||||
PMusrT0();
|
||||
PMusrT0(PRawRunData *rawRunData, Int_t runNo, Int_t histoNo, Int_t detectorTag, Int_t addRunNo);
|
||||
PMusrT0(PMusrT0Data &data);
|
||||
|
||||
virtual ~PMusrT0();
|
||||
|
||||
virtual Bool_t IsValid() { return fValid; }
|
||||
|
||||
virtual void Done(Int_t status=0); // *SIGNAL*
|
||||
virtual void HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected); // SLOT
|
||||
|
||||
@ -66,6 +132,8 @@ class PMusrT0 : public TObject, public TQObject
|
||||
virtual void SetMsrHandler(PMsrHandler *msrHandler);
|
||||
#endif // __MAKECINT__
|
||||
|
||||
virtual void InitT0();
|
||||
virtual void InitDataAndBkg();
|
||||
virtual Int_t GetStatus() { return fStatus; }
|
||||
|
||||
private:
|
||||
@ -73,13 +141,15 @@ class PMusrT0 : public TObject, public TQObject
|
||||
PMsrHandler *fMsrHandler;
|
||||
#endif // __MAKECINT__
|
||||
|
||||
Bool_t fValid;
|
||||
|
||||
Int_t fStatus;
|
||||
|
||||
Int_t fRunNo;
|
||||
Int_t fDetectorTag;
|
||||
Int_t fAddRunNo;
|
||||
Int_t fAddRunOffset;
|
||||
Int_t fT0Estimated;
|
||||
PMusrT0Data fMusrT0Data;
|
||||
|
||||
Bool_t fDataAndBkgEnabled;
|
||||
Bool_t fT0Enabled;
|
||||
Int_t fT0Estimated;
|
||||
|
||||
// canvas related variables
|
||||
TCanvas *fMainCanvas;
|
||||
@ -88,6 +158,8 @@ class PMusrT0 : public TObject, public TQObject
|
||||
TH1F *fData;
|
||||
TH1F *fBkg;
|
||||
|
||||
TLatex *fToDoInfo;
|
||||
|
||||
TLine *fT0Line;
|
||||
TLine *fFirstBkgLine;
|
||||
TLine *fLastBkgLine;
|
||||
@ -100,7 +172,6 @@ class PMusrT0 : public TObject, public TQObject
|
||||
Int_t fDataRange[2];
|
||||
Int_t fBkgRange[2];
|
||||
|
||||
void InitDataAndBkg();
|
||||
void SetT0Channel();
|
||||
void SetEstimatedT0Channel();
|
||||
void SetDataFirstChannel();
|
||||
@ -108,6 +179,7 @@ class PMusrT0 : public TObject, public TQObject
|
||||
void SetBkgFirstChannel();
|
||||
void SetBkgLastChannel();
|
||||
void UnZoom();
|
||||
void ZoomT0();
|
||||
|
||||
ClassDef(PMusrT0, 1)
|
||||
};
|
||||
|
Reference in New Issue
Block a user