some more work towards musrt0
This commit is contained in:
parent
b38e8beffc
commit
b076b4d957
@ -50,6 +50,7 @@ ClassImpQ(PMusrT0)
|
|||||||
*/
|
*/
|
||||||
PMusrT0::PMusrT0()
|
PMusrT0::PMusrT0()
|
||||||
{
|
{
|
||||||
|
fMainCanvas = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
@ -62,6 +63,57 @@ PMusrT0::PMusrT0()
|
|||||||
*/
|
*/
|
||||||
PMusrT0::PMusrT0(PRawRunData *rawRunData, unsigned int histoNo)
|
PMusrT0::PMusrT0(PRawRunData *rawRunData, unsigned int histoNo)
|
||||||
{
|
{
|
||||||
|
cout << endl << "run Name = " << rawRunData->fRunName.Data() << ", histoNo = " << histoNo << endl;
|
||||||
|
|
||||||
|
TString str = rawRunData->fRunName + TString(" : ");
|
||||||
|
str += histoNo;
|
||||||
|
|
||||||
|
// feed necessary objects
|
||||||
|
|
||||||
|
// feed raw data histo
|
||||||
|
Int_t noOfBins = rawRunData->fDataBin[histoNo].size();
|
||||||
|
Double_t start = -0.5;
|
||||||
|
Double_t end = noOfBins + 0.5;
|
||||||
|
fHisto = new TH1F("fHisto", str.Data(), noOfBins, start, end);
|
||||||
|
fHisto->SetMarkerStyle(21);
|
||||||
|
fHisto->SetMarkerSize(1);
|
||||||
|
fHisto->SetMarkerColor(TColor::GetColor(0,0,0)); // black
|
||||||
|
|
||||||
|
for (unsigned int i=0; i<rawRunData->fDataBin[histoNo].size(); i++) {
|
||||||
|
fHisto->SetBinContent(i+1, rawRunData->fDataBin[histoNo][i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate canvas etc
|
||||||
|
fMainCanvas = new TCanvas("fMainCanvas", str);
|
||||||
|
|
||||||
|
// add canvas menu
|
||||||
|
fImp = (TRootCanvas*)fMainCanvas->GetCanvasImp();
|
||||||
|
fBar = fImp->GetMenuBar();
|
||||||
|
fPopupMain = fBar->AddPopup("&MusrT0");
|
||||||
|
|
||||||
|
fPopupMain->AddEntry("&T0", P_MENU_ID_T0);
|
||||||
|
fPopupMain->AddSeparator();
|
||||||
|
fPopupMain->AddEntry("First Bkg Channel", P_MENU_ID_FIRST_BKG_CHANNEL);
|
||||||
|
fPopupMain->AddEntry("Last Bkg Channel", P_MENU_ID_LAST_BKG_CHANNEL);
|
||||||
|
fPopupMain->AddSeparator();
|
||||||
|
fPopupMain->AddEntry("First Data Channel", P_MENU_ID_FIRST_DATA_CHANNEL);
|
||||||
|
fPopupMain->AddEntry("Last Data Channel", P_MENU_ID_LAST_DATA_CHANNEL);
|
||||||
|
fPopupMain->AddSeparator();
|
||||||
|
fPopupMain->AddEntry("UnZoom", P_MENU_ID_UNZOOM);
|
||||||
|
|
||||||
|
|
||||||
|
fBar->MapSubwindows();
|
||||||
|
fBar->Layout();
|
||||||
|
fPopupMain->Connect("TGPopupMenu", "Activated(Int_t)", "PMusrT0", this, "HandleMenuPopup(Int_t)");
|
||||||
|
|
||||||
|
fMainCanvas->cd();
|
||||||
|
fMainCanvas->Show();
|
||||||
|
|
||||||
|
fMainCanvas->Connect("ProcessedEvent(Int_t,Int_t,Int_t,TObject*)", "PMusrT0",
|
||||||
|
this, "HandleCmdKey(Int_t,Int_t,Int_t,TObject*)");
|
||||||
|
|
||||||
|
// draw histos etc
|
||||||
|
fHisto->Draw("p");
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
@ -72,6 +124,14 @@ PMusrT0::PMusrT0(PRawRunData *rawRunData, unsigned int histoNo)
|
|||||||
*/
|
*/
|
||||||
PMusrT0::~PMusrT0()
|
PMusrT0::~PMusrT0()
|
||||||
{
|
{
|
||||||
|
if (fMainCanvas) {
|
||||||
|
delete fMainCanvas;
|
||||||
|
fMainCanvas = 0;
|
||||||
|
}
|
||||||
|
if (fHisto) {
|
||||||
|
delete fHisto;
|
||||||
|
fHisto = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
@ -134,6 +194,36 @@ void PMusrT0::HandleMenuPopup(Int_t id)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// HandleMenuPopup (SLOT)
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMusrT0::SetMsrHandler(PMsrHandler *msrHandler)
|
||||||
|
{
|
||||||
|
fMsrHandler = msrHandler;
|
||||||
|
|
||||||
|
InitDataAndBkg();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// HandleMenuPopup (SLOT)
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMusrT0::InitDataAndBkg()
|
||||||
|
{
|
||||||
|
// feed data range histo
|
||||||
|
|
||||||
|
// feed background histo
|
||||||
|
|
||||||
|
// add lines
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
// END
|
// END
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
@ -38,8 +38,21 @@
|
|||||||
#include <TRootCanvas.h>
|
#include <TRootCanvas.h>
|
||||||
#include <TGMenu.h>
|
#include <TGMenu.h>
|
||||||
#include <TCanvas.h>
|
#include <TCanvas.h>
|
||||||
|
#include <TH1.h>
|
||||||
|
#include <TLine.h>
|
||||||
|
|
||||||
#include "PMusr.h"
|
#include "PMusr.h"
|
||||||
|
#ifndef __MAKECINT__
|
||||||
|
#include "PMsrHandler.h"
|
||||||
|
#endif // __MAKECINT__
|
||||||
|
|
||||||
|
// Canvas menu id's
|
||||||
|
#define P_MENU_ID_T0 100
|
||||||
|
#define P_MENU_ID_FIRST_BKG_CHANNEL 101
|
||||||
|
#define P_MENU_ID_LAST_BKG_CHANNEL 102
|
||||||
|
#define P_MENU_ID_FIRST_DATA_CHANNEL 103
|
||||||
|
#define P_MENU_ID_LAST_DATA_CHANNEL 104
|
||||||
|
#define P_MENU_ID_UNZOOM 105
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
@ -54,11 +67,39 @@ class PMusrT0 : public TObject, public TQObject
|
|||||||
|
|
||||||
virtual ~PMusrT0();
|
virtual ~PMusrT0();
|
||||||
|
|
||||||
private:
|
|
||||||
virtual void Done(Int_t status=0); // *SIGNAL*
|
virtual void Done(Int_t status=0); // *SIGNAL*
|
||||||
virtual void HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected); // SLOT
|
virtual void HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected); // SLOT
|
||||||
virtual void HandleMenuPopup(Int_t id); // SLOT
|
virtual void HandleMenuPopup(Int_t id); // SLOT
|
||||||
|
|
||||||
|
#ifndef __MAKECINT__
|
||||||
|
virtual void SetMsrHandler(PMsrHandler *msrHandler);
|
||||||
|
#endif // __MAKECINT__
|
||||||
|
|
||||||
|
private:
|
||||||
|
#ifndef __MAKECINT__
|
||||||
|
PMsrHandler *fMsrHandler;
|
||||||
|
#endif // __MAKECINT__
|
||||||
|
|
||||||
|
// canvas menu related variables
|
||||||
|
TRootCanvas *fImp;
|
||||||
|
TGMenuBar *fBar;
|
||||||
|
TGPopupMenu *fPopupMain;
|
||||||
|
|
||||||
|
// canvas related variables
|
||||||
|
TCanvas *fMainCanvas;
|
||||||
|
|
||||||
|
TH1F *fHisto;
|
||||||
|
TH1F *fData;
|
||||||
|
TH1F *fBkg;
|
||||||
|
|
||||||
|
TLine *fT0Line;
|
||||||
|
TLine *fFirstBkgLine;
|
||||||
|
TLine *fLastBkgLine;
|
||||||
|
TLine *fFirstDataLine;
|
||||||
|
TLine *fLastDataLine;
|
||||||
|
|
||||||
|
void InitDataAndBkg();
|
||||||
|
|
||||||
ClassDef(PMusrT0, 1)
|
ClassDef(PMusrT0, 1)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,6 +62,34 @@ void musrt0_syntax()
|
|||||||
cout << endl << endl;
|
cout << endl << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
bool musrt0_item(TApplication &app, PMsrHandler *msrHandler, PRawRunData *rawRunData, unsigned int histoNo)
|
||||||
|
{
|
||||||
|
PMusrT0 *musrT0 = new PMusrT0(rawRunData, histoNo);
|
||||||
|
|
||||||
|
if (musrT0 == 0) {
|
||||||
|
cout << endl << "**ERROR** Couldn't invoke musrT0 ...";
|
||||||
|
cout << endl << " run name " << rawRunData->fRunName.Data();
|
||||||
|
cout << endl << " histo No " << histoNo;
|
||||||
|
cout << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
musrT0->SetMsrHandler(msrHandler);
|
||||||
|
|
||||||
|
musrT0->Connect("Done(Int_t)", "TApplication", &app, "Terminate(Int_t)");
|
||||||
|
|
||||||
|
app.Run(true); // true needed that Run will return after quit
|
||||||
|
delete musrT0;
|
||||||
|
musrT0 = 0;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
@ -165,40 +193,37 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
vector<PMusrT0*> t0Vector;
|
|
||||||
if (success) {
|
if (success) {
|
||||||
/*
|
|
||||||
// generate Root application needed for PMusrCanvas
|
// generate Root application needed for PMusrCanvas
|
||||||
TApplication app("App", &argc, argv);
|
TApplication app("App", &argc, argv);
|
||||||
*/
|
|
||||||
// generate vector of all necessary PMusrT0 objects
|
// generate vector of all necessary PMusrT0 objects
|
||||||
PMusrT0 *musrT0;
|
|
||||||
for (unsigned int i=0; i<runList->size(); i++) {
|
for (unsigned int i=0; i<runList->size(); i++) {
|
||||||
switch (runList->at(i).fFitType) {
|
switch (runList->at(i).fFitType) {
|
||||||
case MSR_FITTYPE_SINGLE_HISTO:
|
case MSR_FITTYPE_SINGLE_HISTO:
|
||||||
for (unsigned int j=0; j<runList->at(i).fRunName.size(); j++) { // necessary in case of ADDRUN
|
for (unsigned int j=0; j<runList->at(i).fRunName.size(); j++) { // necessary in case of ADDRUN
|
||||||
musrT0 = new PMusrT0(dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fForwardHistoNo);
|
if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fForwardHistoNo))
|
||||||
t0Vector.push_back(musrT0);
|
exit(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MSR_FITTYPE_ASYM:
|
case MSR_FITTYPE_ASYM:
|
||||||
for (unsigned int j=0; j<runList->at(i).fRunName.size(); j++) { // necessary in case of ADDRUN
|
for (unsigned int j=0; j<runList->at(i).fRunName.size(); j++) { // necessary in case of ADDRUN
|
||||||
musrT0 = new PMusrT0(dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fForwardHistoNo);
|
if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fForwardHistoNo))
|
||||||
t0Vector.push_back(musrT0);
|
exit(0);
|
||||||
musrT0 = new PMusrT0(dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fBackwardHistoNo);
|
if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fBackwardHistoNo))
|
||||||
t0Vector.push_back(musrT0);
|
exit(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MSR_FITTYPE_ASYM_RRF:
|
case MSR_FITTYPE_ASYM_RRF:
|
||||||
for (unsigned int j=0; j<runList->at(i).fRunName.size(); j++) { // necessary in case of ADDRUN
|
for (unsigned int j=0; j<runList->at(i).fRunName.size(); j++) { // necessary in case of ADDRUN
|
||||||
musrT0 = new PMusrT0(dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fForwardHistoNo);
|
if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fForwardHistoNo))
|
||||||
t0Vector.push_back(musrT0);
|
exit(0);
|
||||||
musrT0 = new PMusrT0(dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fBackwardHistoNo);
|
if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fBackwardHistoNo))
|
||||||
t0Vector.push_back(musrT0);
|
exit(0);
|
||||||
musrT0 = new PMusrT0(dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fRightHistoNo);
|
if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fRightHistoNo))
|
||||||
t0Vector.push_back(musrT0);
|
exit(0);
|
||||||
musrT0 = new PMusrT0(dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fLeftHistoNo);
|
if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(runList->at(i).fRunName[j]), runList->at(i).fLeftHistoNo))
|
||||||
t0Vector.push_back(musrT0);
|
exit(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -289,15 +314,6 @@ cout << endl;
|
|||||||
delete dataHandler;
|
delete dataHandler;
|
||||||
dataHandler = 0;
|
dataHandler = 0;
|
||||||
}
|
}
|
||||||
if (t0Vector.size() > 0) {
|
|
||||||
for (unsigned int i=0; i<t0Vector.size(); i++) {
|
|
||||||
if (t0Vector[i] != 0) {
|
|
||||||
delete t0Vector[i];
|
|
||||||
t0Vector[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
t0Vector.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user