t0 unsigned int -> double. Add dummy musrview
This commit is contained in:
parent
67e3efa5ba
commit
2a924374c7
@ -76,23 +76,24 @@ MNLIB = -L$(ROOTSYS)/lib -lMinuit2
|
|||||||
GSLLIB = -lgslcblas -lgsl
|
GSLLIB = -lgslcblas -lgsl
|
||||||
|
|
||||||
|
|
||||||
# some definitions: headers, sources, objects,...
|
# some definitions: headers (used to generate *Dict* stuff), sources, objects,...
|
||||||
HEADERS =
|
HEADERS =
|
||||||
HEADERS += PStartupHandler.h
|
# HEADERS += PStartupHandler.h
|
||||||
HEADERS += PMsrHandler.h
|
# HEADERS += PMsrHandler.h
|
||||||
HEADERS += PRunDataHandler.h
|
# HEADERS += PRunDataHandler.h
|
||||||
HEADERS += PFunctionHandler.h
|
# HEADERS += PFunctionHandler.h
|
||||||
HEADERS += PFunctionGrammar.h
|
# HEADERS += PFunctionGrammar.h
|
||||||
HEADERS += PFunction.h
|
# HEADERS += PFunction.h
|
||||||
HEADERS += PRunBase.h
|
# HEADERS += PRunBase.h
|
||||||
HEADERS += PRunSingleHisto.h
|
# HEADERS += PRunSingleHisto.h
|
||||||
HEADERS += PRunAsymmetry.h
|
# HEADERS += PRunAsymmetry.h
|
||||||
HEADERS += PRunRRF.h
|
# HEADERS += PRunRRF.h
|
||||||
HEADERS += PRunNonMusr.h
|
# HEADERS += PRunNonMusr.h
|
||||||
HEADERS += PRunListCollection.h
|
# HEADERS += PRunListCollection.h
|
||||||
HEADERS += PTheory.h
|
# HEADERS += PTheory.h
|
||||||
HEADERS += PFitterFcn.h
|
# HEADERS += PFitterFcn.h
|
||||||
HEADERS += PFitter.h
|
# HEADERS += PFitter.h
|
||||||
|
HEADERS += ../include/PMusrCanvas.h
|
||||||
|
|
||||||
OBJS =
|
OBJS =
|
||||||
OBJS += PStartupHandler.o
|
OBJS += PStartupHandler.o
|
||||||
@ -109,6 +110,10 @@ OBJS += PRunListCollection.o
|
|||||||
OBJS += PTheory.o
|
OBJS += PTheory.o
|
||||||
OBJS += PFitterFcn.o
|
OBJS += PFitterFcn.o
|
||||||
OBJS += PFitter.o
|
OBJS += PFitter.o
|
||||||
|
OBJS += PMusrCanvas.o PMusrCanvasDict.o
|
||||||
|
|
||||||
|
DICT =
|
||||||
|
DICT += PMusrCanvasDict.cpp
|
||||||
|
|
||||||
SHLIB = libPMusr.so
|
SHLIB = libPMusr.so
|
||||||
|
|
||||||
@ -133,6 +138,10 @@ clean:; @rm -f $(OBJS) *Dict* core*
|
|||||||
$(OBJS): %.o: %.cpp
|
$(OBJS): %.o: %.cpp
|
||||||
$(CXX) $(INCLUDES) $(CXXFLAGS) -c $<
|
$(CXX) $(INCLUDES) $(CXXFLAGS) -c $<
|
||||||
|
|
||||||
|
$(DICT): $(HEADERS)
|
||||||
|
@echo "Generating dictionary files"
|
||||||
|
rootcint -f $@ -c $^
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
@echo "Installing shared lib: libPMusr.so ( you must be root ;-) )"
|
@echo "Installing shared lib: libPMusr.so ( you must be root ;-) )"
|
||||||
ifeq ($(OS),LINUX)
|
ifeq ($(OS),LINUX)
|
||||||
|
259
src/classes/PMusrCanvas.cpp
Normal file
259
src/classes/PMusrCanvas.cpp
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
PMusrCanvas.cpp
|
||||||
|
|
||||||
|
Author: Andreas Suter
|
||||||
|
e-mail: andreas.suter@psi.ch
|
||||||
|
|
||||||
|
$Id$
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2007 by Andreas Suter *
|
||||||
|
* andreas.suter@psi.ch *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the *
|
||||||
|
* Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
#include <TColor.h>
|
||||||
|
|
||||||
|
#include "PMusrCanvas.h"
|
||||||
|
|
||||||
|
ClassImpQ(PMusrCanvas)
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Constructor
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
PMusrCanvas::PMusrCanvas()
|
||||||
|
{
|
||||||
|
fValid = false;
|
||||||
|
|
||||||
|
fMainCanvas = 0;
|
||||||
|
fTitlePad = 0;
|
||||||
|
fDataTheoryPad = 0;
|
||||||
|
fParameterTheoryPad = 0;
|
||||||
|
fInfoPad = 0;
|
||||||
|
fKeyboardHandlerText = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Constructor
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
PMusrCanvas::PMusrCanvas(const char* title, Int_t wtopx, Int_t wtopy, Int_t ww, Int_t wh)
|
||||||
|
{
|
||||||
|
fValid = false;
|
||||||
|
|
||||||
|
fMainCanvas = 0;
|
||||||
|
fTitlePad = 0;
|
||||||
|
fDataTheoryPad = 0;
|
||||||
|
fParameterTheoryPad = 0;
|
||||||
|
fInfoPad = 0;
|
||||||
|
fKeyboardHandlerText = 0;
|
||||||
|
|
||||||
|
// invoke canvas
|
||||||
|
fMainCanvas = new TCanvas("fMainCanvas", title, wtopx, wtopy, ww, wh);
|
||||||
|
cout << "fMainCanvas = " << fMainCanvas << endl;
|
||||||
|
if (fMainCanvas == 0) {
|
||||||
|
cout << endl << "PMusrCanvas::PMusrCanvas: **PANIC ERROR**: Couldn't invoke fMainCanvas";
|
||||||
|
cout << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// divide the canvas into 4 pads
|
||||||
|
// title pad
|
||||||
|
fTitlePad = new TPaveText(0.0, YTITLE, 1.0, 1.0, "NDC");
|
||||||
|
if (fTitlePad == 0) {
|
||||||
|
cout << endl << "PMusrCanvas::PMusrCanvas: **PANIC ERROR**: Couldn't invoke fTitlePad";
|
||||||
|
cout << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fTitlePad->SetFillColor(TColor::GetColor(255,255,255));
|
||||||
|
fTitlePad->SetTextAlign(12); // middle, left
|
||||||
|
fTitlePad->AddText("This is a title, this is a title, this is a title, this is a title, ...");
|
||||||
|
fTitlePad->Draw();
|
||||||
|
|
||||||
|
// data/theory pad
|
||||||
|
fDataTheoryPad = new TPad("dataTheoryPad", "dataTheoryPad", 0.0, YINFO, XTHEO-0.02, YTITLE);
|
||||||
|
fDataTheoryPad = new TPad("dataTheoryPad", "dataTheoryPad", 0.0, YINFO, XTHEO, YTITLE);
|
||||||
|
if (fDataTheoryPad == 0) {
|
||||||
|
cout << endl << "PMusrCanvas::PMusrCanvas: **PANIC ERROR**: Couldn't invoke fDataTheoryPad";
|
||||||
|
cout << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fDataTheoryPad->SetFillColor(TColor::GetColor(255,255,255));
|
||||||
|
fDataTheoryPad->Draw();
|
||||||
|
|
||||||
|
// parameter/theory pad
|
||||||
|
fParameterTheoryPad = new TPaveText(XTHEO, 0.1, 1.0, YTITLE, "NDC");
|
||||||
|
if (fParameterTheoryPad == 0) {
|
||||||
|
cout << endl << "PMusrCanvas::PMusrCanvas: **PANIC ERROR**: Couldn't invoke fParameterTheoryPad";
|
||||||
|
cout << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fParameterTheoryPad->SetFillColor(TColor::GetColor(255,255,255));
|
||||||
|
fParameterTheoryPad->SetTextAlign(13); // top, left
|
||||||
|
fParameterTheoryPad->SetTextFont(102); // courier bold, scalable so that greek parameters will be plotted properly
|
||||||
|
fParameterTheoryPad->AddText("parameter/theory pad ...");
|
||||||
|
fParameterTheoryPad->AddText("1 alphaLR 0.9157 0.01075");
|
||||||
|
fParameterTheoryPad->AddText("2 alphaTB 0.8777 0.007409");
|
||||||
|
fParameterTheoryPad->AddText("3 asyS 0.1555 0.004631");
|
||||||
|
fParameterTheoryPad->AddText("4 lambdaS 0.06726 0.01466");
|
||||||
|
fParameterTheoryPad->AddText("5 field 7.444 0.1995");
|
||||||
|
fParameterTheoryPad->AddText("6 phaseLR 18.3 4.1");
|
||||||
|
fParameterTheoryPad->AddText("7 phaseTB -83.1 2.1");
|
||||||
|
fParameterTheoryPad->AddText(" ");
|
||||||
|
fParameterTheoryPad->AddText("asymmetry 3");
|
||||||
|
fParameterTheoryPad->AddText("simplExpo 4 (#lambda)");
|
||||||
|
fParameterTheoryPad->AddText("TFieldCos map1 fun1 (#phi #nu)");
|
||||||
|
fParameterTheoryPad->AddText(" ");
|
||||||
|
fParameterTheoryPad->AddText("fun1 = par5 * 0.01355");
|
||||||
|
fParameterTheoryPad->Draw();
|
||||||
|
|
||||||
|
// info pad
|
||||||
|
fInfoPad = new TPaveText(0.0, 0.0, 1.0, YINFO, "NDC");
|
||||||
|
if (fInfoPad == 0) {
|
||||||
|
cout << endl << "PMusrCanvas::PMusrCanvas: **PANIC ERROR**: Couldn't invoke fInfoPad";
|
||||||
|
cout << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fInfoPad->SetFillColor(TColor::GetColor(255,255,255));
|
||||||
|
fInfoPad->SetTextAlign(12); // middle, left
|
||||||
|
fInfoPad->AddText("musrfit info pad ...");
|
||||||
|
fInfoPad->AddText(" this is the 1st info line ...");
|
||||||
|
fInfoPad->AddText(" this is the 2nd info line ...");
|
||||||
|
fInfoPad->AddText(" this is the 2nd info line ...");
|
||||||
|
fInfoPad->Draw();
|
||||||
|
|
||||||
|
// fKeyboardHandlerText Pad init
|
||||||
|
fDataTheoryPad->cd();
|
||||||
|
fKeyboardHandlerText = new TPaveText(0.1, 0.1, 0.3, 0.2, "rb");
|
||||||
|
if (fKeyboardHandlerText == 0) {
|
||||||
|
cout << endl << "PMusrCanvas::PMusrCanvas: **PANIC ERROR**: Couldn't invoke fKeyboardHandlerText";
|
||||||
|
cout << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fKeyboardHandlerText->AddText("none");
|
||||||
|
fKeyboardHandlerText->Draw();
|
||||||
|
fDataTheoryPad->Modified();
|
||||||
|
|
||||||
|
fValid = true;
|
||||||
|
|
||||||
|
fMainCanvas->cd();
|
||||||
|
fMainCanvas->Show();
|
||||||
|
fMainCanvas->Connect("ProcessedEvent(Int_t,Int_t,Int_t,TObject*)", "PMusrCanvas",
|
||||||
|
this, "HandleCmdKey(Int_t,Int_t,Int_t,TObject*)");
|
||||||
|
|
||||||
|
cout << "this " << this << endl;
|
||||||
|
cout << "fMainCanvas " << fMainCanvas << endl;
|
||||||
|
cout << "fTitlePad " << fTitlePad << endl;
|
||||||
|
cout << "fDataTheoryPad " << fDataTheoryPad << endl;
|
||||||
|
cout << "fParameterTheoryPad " << fParameterTheoryPad << endl;
|
||||||
|
cout << "fInfoPad " << fInfoPad << endl;
|
||||||
|
cout << "fKeyboardHandlerText " << fKeyboardHandlerText << endl;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Destructor
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
PMusrCanvas::~PMusrCanvas()
|
||||||
|
{
|
||||||
|
// cleanup
|
||||||
|
if (fKeyboardHandlerText) {
|
||||||
|
delete fKeyboardHandlerText;
|
||||||
|
fKeyboardHandlerText = 0;
|
||||||
|
}
|
||||||
|
if (fTitlePad) {
|
||||||
|
delete fTitlePad;
|
||||||
|
fTitlePad = 0;
|
||||||
|
}
|
||||||
|
if (fDataTheoryPad) {
|
||||||
|
delete fDataTheoryPad;
|
||||||
|
fDataTheoryPad = 0;
|
||||||
|
}
|
||||||
|
if (fParameterTheoryPad) {
|
||||||
|
delete fParameterTheoryPad;
|
||||||
|
fParameterTheoryPad = 0;
|
||||||
|
}
|
||||||
|
if (fInfoPad) {
|
||||||
|
delete fInfoPad;
|
||||||
|
fInfoPad = 0;
|
||||||
|
}
|
||||||
|
if (fMainCanvas) {
|
||||||
|
delete fMainCanvas;
|
||||||
|
fMainCanvas = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Done (SIGNAL)
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMusrCanvas::Done(Int_t status)
|
||||||
|
{
|
||||||
|
Emit("Done(Int_t)", status);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// HandleCmdKey (SLOT)
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMusrCanvas::HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected)
|
||||||
|
{
|
||||||
|
if (event != kKeyPress)
|
||||||
|
return;
|
||||||
|
|
||||||
|
cout << ">this " << this << endl;
|
||||||
|
cout << ">fMainCanvas " << fMainCanvas << endl;
|
||||||
|
cout << ">selected " << selected << endl;
|
||||||
|
|
||||||
|
cout << "px: " << (char)fMainCanvas->GetEventX() << endl;
|
||||||
|
|
||||||
|
TString str((Char_t)x);
|
||||||
|
if (x == 'q') {
|
||||||
|
Done(0);
|
||||||
|
} else {
|
||||||
|
if (fKeyboardHandlerText) {
|
||||||
|
fDataTheoryPad->cd();
|
||||||
|
delete fKeyboardHandlerText;
|
||||||
|
fKeyboardHandlerText = 0;
|
||||||
|
fKeyboardHandlerText = new TPaveText(0.1, 0.1, 0.3, 0.2, "rb");
|
||||||
|
fKeyboardHandlerText->AddText(str.Data());
|
||||||
|
fKeyboardHandlerText->Draw();
|
||||||
|
fMainCanvas->cd();
|
||||||
|
}
|
||||||
|
fMainCanvas->Update();
|
||||||
|
}
|
||||||
|
}
|
@ -371,7 +371,7 @@ bool PRunAsymmetry::PrepareData()
|
|||||||
// first get start data, end data, and t0
|
// first get start data, end data, and t0
|
||||||
unsigned int start[2] = {fRunInfo->fDataRange[0], fRunInfo->fDataRange[2]};
|
unsigned int start[2] = {fRunInfo->fDataRange[0], fRunInfo->fDataRange[2]};
|
||||||
unsigned int end[2] = {fRunInfo->fDataRange[1], fRunInfo->fDataRange[3]};
|
unsigned int end[2] = {fRunInfo->fDataRange[1], fRunInfo->fDataRange[3]};
|
||||||
unsigned int t0[2] = {fT0s[0], fT0s[1]};
|
double t0[2] = {fT0s[0], fT0s[1]};
|
||||||
// check if start, end, and t0 make any sense
|
// check if start, end, and t0 make any sense
|
||||||
// 1st check if start and end are in proper order
|
// 1st check if start and end are in proper order
|
||||||
for (unsigned int i=0; i<2; i++) {
|
for (unsigned int i=0; i<2; i++) {
|
||||||
|
@ -333,7 +333,7 @@ bool PRunSingleHisto::PrepareData()
|
|||||||
// first get start data, end data, and t0
|
// first get start data, end data, and t0
|
||||||
unsigned int start = fRunInfo->fDataRange[0];
|
unsigned int start = fRunInfo->fDataRange[0];
|
||||||
unsigned int end = fRunInfo->fDataRange[1];
|
unsigned int end = fRunInfo->fDataRange[1];
|
||||||
unsigned int t0 = fT0s[0];
|
double t0 = fT0s[0];
|
||||||
// check if start, end, and t0 make any sense
|
// check if start, end, and t0 make any sense
|
||||||
// 1st check if start and end are in proper order
|
// 1st check if start and end are in proper order
|
||||||
if (end < start) { // need to swap them
|
if (end < start) { // need to swap them
|
||||||
|
Loading…
x
Reference in New Issue
Block a user