some more work towards musrt0
This commit is contained in:
parent
3a5df41971
commit
f632aa5ba9
@ -64,6 +64,11 @@ PMusrT0::PMusrT0()
|
|||||||
fData = 0;
|
fData = 0;
|
||||||
fBkg = 0;
|
fBkg = 0;
|
||||||
|
|
||||||
|
fDataRange[0] = 0;
|
||||||
|
fDataRange[1] = 0;
|
||||||
|
fBkgRange[0] = 0;
|
||||||
|
fBkgRange[1] = 0;
|
||||||
|
|
||||||
fT0Line = 0;
|
fT0Line = 0;
|
||||||
fFirstBkgLine = 0;
|
fFirstBkgLine = 0;
|
||||||
fLastBkgLine = 0;
|
fLastBkgLine = 0;
|
||||||
@ -85,9 +90,10 @@ PMusrT0::PMusrT0(PRawRunData *rawRunData, int runNo, int histoNo, int detectorTa
|
|||||||
|
|
||||||
fStatus = 0; // default is quit locally
|
fStatus = 0; // default is quit locally
|
||||||
|
|
||||||
fRunNo = runNo;
|
fRunNo = runNo;
|
||||||
fDetectorTag = detectorTag;
|
fDetectorTag = detectorTag;
|
||||||
fAddRunNo = addRunNo;
|
fAddRunNo = addRunNo;
|
||||||
|
fAddRunOffset = 0;
|
||||||
|
|
||||||
TString str = rawRunData->fRunName + TString(" : ");
|
TString str = rawRunData->fRunName + TString(" : ");
|
||||||
str += histoNo;
|
str += histoNo;
|
||||||
@ -111,28 +117,6 @@ PMusrT0::PMusrT0(PRawRunData *rawRunData, int runNo, int histoNo, int detectorTa
|
|||||||
fMainCanvas = new TCanvas("fMainCanvas", str);
|
fMainCanvas = new TCanvas("fMainCanvas", str);
|
||||||
fMainCanvas->SetFillColor(TColor::GetColor(255,255,255));
|
fMainCanvas->SetFillColor(TColor::GetColor(255,255,255));
|
||||||
|
|
||||||
// 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->SetCrosshair(2);
|
|
||||||
fMainCanvas->Show();
|
fMainCanvas->Show();
|
||||||
|
|
||||||
fMainCanvas->Connect("ProcessedEvent(Int_t,Int_t,Int_t,TObject*)", "PMusrT0",
|
fMainCanvas->Connect("ProcessedEvent(Int_t,Int_t,Int_t,TObject*)", "PMusrT0",
|
||||||
@ -209,8 +193,11 @@ void PMusrT0::Done(Int_t status)
|
|||||||
*/
|
*/
|
||||||
void PMusrT0::HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected)
|
void PMusrT0::HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected)
|
||||||
{
|
{
|
||||||
if (event != kKeyPress)
|
if (event != kKeyPress) {
|
||||||
return;
|
fPx = x;
|
||||||
|
fPy = y;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// handle keys and popup menu entries
|
// handle keys and popup menu entries
|
||||||
if (x == 'q') { // quit
|
if (x == 'q') { // quit
|
||||||
@ -224,47 +211,18 @@ void PMusrT0::HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected)
|
|||||||
} else if (x == 't') { // set t0 channel
|
} else if (x == 't') { // set t0 channel
|
||||||
SetT0Channel();
|
SetT0Channel();
|
||||||
} else if (x == 'b') { // set first background channel
|
} else if (x == 'b') { // set first background channel
|
||||||
cout << endl << "will set first background channel ..." << endl;
|
SetBkgFirstChannel();
|
||||||
} else if (x == 'B') { // set last background channel
|
} else if (x == 'B') { // set last background channel
|
||||||
cout << endl << "will set last background channel ..." << endl;
|
SetBkgLastChannel();
|
||||||
} else if (x == 'd') { // set first data channel
|
} else if (x == 'd') { // set first data channel
|
||||||
cout << endl << "will set first data channel ..." << endl;
|
SetDataFirstChannel();
|
||||||
} else if (x == 'D') { // set last data channel
|
} else if (x == 'D') { // set last data channel
|
||||||
cout << endl << "will set last data channel ..." << endl;
|
SetDataLastChannel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
// HandleMenuPopup (SLOT)
|
// SetMsrHandler
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void PMusrT0::HandleMenuPopup(Int_t id)
|
|
||||||
{
|
|
||||||
switch (id) {
|
|
||||||
case P_MENU_ID_T0:
|
|
||||||
SetT0Channel();
|
|
||||||
break;
|
|
||||||
case P_MENU_ID_FIRST_BKG_CHANNEL:
|
|
||||||
break;
|
|
||||||
case P_MENU_ID_LAST_BKG_CHANNEL:
|
|
||||||
break;
|
|
||||||
case P_MENU_ID_FIRST_DATA_CHANNEL:
|
|
||||||
break;
|
|
||||||
case P_MENU_ID_LAST_DATA_CHANNEL:
|
|
||||||
break;
|
|
||||||
case P_MENU_ID_UNZOOM:
|
|
||||||
UnZoom();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
// HandleMenuPopup (SLOT)
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -278,7 +236,7 @@ void PMusrT0::SetMsrHandler(PMsrHandler *msrHandler)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
// HandleMenuPopup (SLOT)
|
// InitDataAndBkg
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -287,26 +245,24 @@ void PMusrT0::SetMsrHandler(PMsrHandler *msrHandler)
|
|||||||
void PMusrT0::InitDataAndBkg()
|
void PMusrT0::InitDataAndBkg()
|
||||||
{
|
{
|
||||||
// get addRun offset which depends on the fit type
|
// get addRun offset which depends on the fit type
|
||||||
int addRunOffset = 0;
|
|
||||||
int fitType = fMsrHandler->GetMsrRunList()->at(fRunNo).fFitType;
|
int fitType = fMsrHandler->GetMsrRunList()->at(fRunNo).fFitType;
|
||||||
if (fitType == MSR_FITTYPE_SINGLE_HISTO) {
|
if (fitType == MSR_FITTYPE_SINGLE_HISTO) {
|
||||||
addRunOffset = 2;
|
fAddRunOffset = 2;
|
||||||
} else if (fitType == MSR_FITTYPE_ASYM) {
|
} else if (fitType == MSR_FITTYPE_ASYM) {
|
||||||
addRunOffset = 4;
|
fAddRunOffset = 4;
|
||||||
} else if (fitType == MSR_FITTYPE_ASYM_RRF) {
|
} else if (fitType == MSR_FITTYPE_ASYM_RRF) {
|
||||||
addRunOffset = 8;
|
fAddRunOffset = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
// feed data range histo
|
// feed data range histo
|
||||||
int dataRange[2];
|
|
||||||
switch (fDetectorTag) {
|
switch (fDetectorTag) {
|
||||||
case DETECTOR_TAG_FORWARD:
|
case DETECTOR_TAG_FORWARD:
|
||||||
dataRange[0] = fMsrHandler->GetMsrRunList()->at(fRunNo).fDataRange[0 + fAddRunNo * addRunOffset];
|
fDataRange[0] = fMsrHandler->GetMsrRunList()->at(fRunNo).fDataRange[0 + fAddRunNo * fAddRunOffset];
|
||||||
dataRange[1] = fMsrHandler->GetMsrRunList()->at(fRunNo).fDataRange[1 + fAddRunNo * addRunOffset];
|
fDataRange[1] = fMsrHandler->GetMsrRunList()->at(fRunNo).fDataRange[1 + fAddRunNo * fAddRunOffset];
|
||||||
break;
|
break;
|
||||||
case DETECTOR_TAG_BACKWARD:
|
case DETECTOR_TAG_BACKWARD:
|
||||||
dataRange[0] = fMsrHandler->GetMsrRunList()->at(fRunNo).fDataRange[2 + fAddRunNo * addRunOffset];
|
fDataRange[0] = fMsrHandler->GetMsrRunList()->at(fRunNo).fDataRange[2 + fAddRunNo * fAddRunOffset];
|
||||||
dataRange[1] = fMsrHandler->GetMsrRunList()->at(fRunNo).fDataRange[3 + fAddRunNo * addRunOffset];
|
fDataRange[1] = fMsrHandler->GetMsrRunList()->at(fRunNo).fDataRange[3 + fAddRunNo * fAddRunOffset];
|
||||||
break;
|
break;
|
||||||
case DETECTOR_TAG_RIGHT:
|
case DETECTOR_TAG_RIGHT:
|
||||||
// not clear yet what to be done
|
// not clear yet what to be done
|
||||||
@ -319,29 +275,29 @@ void PMusrT0::InitDataAndBkg()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Int_t noOfBins = dataRange[1]-dataRange[0]+1;
|
Int_t noOfBins = fDataRange[1]-fDataRange[0]+1;
|
||||||
Double_t start = dataRange[0] - 0.5;
|
Double_t start = fDataRange[0] - 0.5;
|
||||||
Double_t end = dataRange[1] + 0.5;
|
Double_t end = fDataRange[1] + 0.5;
|
||||||
fData = new TH1F("fData", "fData", noOfBins, start, end);
|
fData = new TH1F("fData", "fData", noOfBins, start, end);
|
||||||
fData->SetMarkerStyle(21);
|
fData->SetMarkerStyle(21);
|
||||||
fData->SetMarkerSize(0.5);
|
fData->SetMarkerSize(0.5);
|
||||||
fData->SetMarkerColor(TColor::GetColor(0,0,255)); // blue
|
fData->SetMarkerColor(TColor::GetColor(0,0,255)); // blue
|
||||||
|
|
||||||
for (int i=0; i<noOfBins; i++) {
|
for (int i=0; i<noOfBins; i++) {
|
||||||
fData->SetBinContent(i+1, fHisto->GetBinContent(dataRange[0]+i+1));
|
fData->SetBinContent(i+1, fHisto->GetBinContent(fDataRange[0]+i+1));
|
||||||
}
|
}
|
||||||
fData->Draw("p0 9 hist same");
|
fData->Draw("p0 9 hist same");
|
||||||
|
|
||||||
// feed background histo
|
// feed background histo
|
||||||
int bkgRange[2];
|
int fBkgRange[2];
|
||||||
switch (fDetectorTag) {
|
switch (fDetectorTag) {
|
||||||
case DETECTOR_TAG_FORWARD:
|
case DETECTOR_TAG_FORWARD:
|
||||||
bkgRange[0] = fMsrHandler->GetMsrRunList()->at(fRunNo).fBkgRange[0 + fAddRunNo * addRunOffset];
|
fBkgRange[0] = fMsrHandler->GetMsrRunList()->at(fRunNo).fBkgRange[0 + fAddRunNo * fAddRunOffset];
|
||||||
bkgRange[1] = fMsrHandler->GetMsrRunList()->at(fRunNo).fBkgRange[1 + fAddRunNo * addRunOffset];
|
fBkgRange[1] = fMsrHandler->GetMsrRunList()->at(fRunNo).fBkgRange[1 + fAddRunNo * fAddRunOffset];
|
||||||
break;
|
break;
|
||||||
case DETECTOR_TAG_BACKWARD:
|
case DETECTOR_TAG_BACKWARD:
|
||||||
bkgRange[0] = fMsrHandler->GetMsrRunList()->at(fRunNo).fBkgRange[2 + fAddRunNo * addRunOffset];
|
fBkgRange[0] = fMsrHandler->GetMsrRunList()->at(fRunNo).fBkgRange[2 + fAddRunNo * fAddRunOffset];
|
||||||
bkgRange[1] = fMsrHandler->GetMsrRunList()->at(fRunNo).fBkgRange[3 + fAddRunNo * addRunOffset];
|
fBkgRange[1] = fMsrHandler->GetMsrRunList()->at(fRunNo).fBkgRange[3 + fAddRunNo * fAddRunOffset];
|
||||||
break;
|
break;
|
||||||
case DETECTOR_TAG_RIGHT:
|
case DETECTOR_TAG_RIGHT:
|
||||||
// not clear yet what to be done
|
// not clear yet what to be done
|
||||||
@ -354,16 +310,16 @@ void PMusrT0::InitDataAndBkg()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
noOfBins = bkgRange[1]-bkgRange[0]+1;
|
noOfBins = fBkgRange[1]-fBkgRange[0]+1;
|
||||||
start = bkgRange[0] - 0.5;
|
start = fBkgRange[0] - 0.5;
|
||||||
end = bkgRange[1] + 0.5;
|
end = fBkgRange[1] + 0.5;
|
||||||
fBkg = new TH1F("fBkg", "fBkg", noOfBins, start, end);
|
fBkg = new TH1F("fBkg", "fBkg", noOfBins, start, end);
|
||||||
fBkg->SetMarkerStyle(21);
|
fBkg->SetMarkerStyle(21);
|
||||||
fBkg->SetMarkerSize(0.5);
|
fBkg->SetMarkerSize(0.5);
|
||||||
fBkg->SetMarkerColor(TColor::GetColor(255,0,0)); // red
|
fBkg->SetMarkerColor(TColor::GetColor(255,0,0)); // red
|
||||||
|
|
||||||
for (int i=0; i<noOfBins; i++) {
|
for (int i=0; i<noOfBins; i++) {
|
||||||
fBkg->SetBinContent(i+1, fHisto->GetBinContent(bkgRange[0]+i+1));
|
fBkg->SetBinContent(i+1, fHisto->GetBinContent(fBkgRange[0]+i+1));
|
||||||
}
|
}
|
||||||
fBkg->Draw("p0 9 hist same");
|
fBkg->Draw("p0 9 hist same");
|
||||||
|
|
||||||
@ -372,10 +328,10 @@ void PMusrT0::InitDataAndBkg()
|
|||||||
int t0Bin;
|
int t0Bin;
|
||||||
switch (fDetectorTag) {
|
switch (fDetectorTag) {
|
||||||
case DETECTOR_TAG_FORWARD:
|
case DETECTOR_TAG_FORWARD:
|
||||||
t0Bin = fMsrHandler->GetMsrRunList()->at(fRunNo).fT0[0 + fAddRunNo * addRunOffset/2];
|
t0Bin = fMsrHandler->GetMsrRunList()->at(fRunNo).fT0[0 + fAddRunNo * fAddRunOffset/2];
|
||||||
break;
|
break;
|
||||||
case DETECTOR_TAG_BACKWARD:
|
case DETECTOR_TAG_BACKWARD:
|
||||||
t0Bin = fMsrHandler->GetMsrRunList()->at(fRunNo).fT0[1 + fAddRunNo * addRunOffset/2];
|
t0Bin = fMsrHandler->GetMsrRunList()->at(fRunNo).fT0[1 + fAddRunNo * fAddRunOffset/2];
|
||||||
break;
|
break;
|
||||||
case DETECTOR_TAG_RIGHT:
|
case DETECTOR_TAG_RIGHT:
|
||||||
// not clear yet what to be done
|
// not clear yet what to be done
|
||||||
@ -395,26 +351,26 @@ void PMusrT0::InitDataAndBkg()
|
|||||||
fT0Line->Draw();
|
fT0Line->Draw();
|
||||||
|
|
||||||
// data lines
|
// data lines
|
||||||
fFirstDataLine = new TLine((double)dataRange[0], 0.0, (double)dataRange[0], max);
|
fFirstDataLine = new TLine((double)fDataRange[0], 0.0, (double)fDataRange[0], max);
|
||||||
fFirstDataLine->SetLineStyle(3); // doted
|
fFirstDataLine->SetLineStyle(3); // doted
|
||||||
fFirstDataLine->SetLineColor(TColor::GetColor(0,0,255)); // blue
|
fFirstDataLine->SetLineColor(TColor::GetColor(0,0,255)); // blue
|
||||||
fFirstDataLine->SetLineWidth(2);
|
fFirstDataLine->SetLineWidth(2);
|
||||||
fFirstDataLine->Draw();
|
fFirstDataLine->Draw();
|
||||||
|
|
||||||
fLastDataLine = new TLine((double)dataRange[1], 0.0, (double)dataRange[1], max);
|
fLastDataLine = new TLine((double)fDataRange[1], 0.0, (double)fDataRange[1], max);
|
||||||
fLastDataLine->SetLineStyle(3); // doted
|
fLastDataLine->SetLineStyle(3); // doted
|
||||||
fLastDataLine->SetLineColor(TColor::GetColor(0,0,255)); // blue
|
fLastDataLine->SetLineColor(TColor::GetColor(0,0,255)); // blue
|
||||||
fLastDataLine->SetLineWidth(2);
|
fLastDataLine->SetLineWidth(2);
|
||||||
fLastDataLine->Draw();
|
fLastDataLine->Draw();
|
||||||
|
|
||||||
// bkg lines
|
// bkg lines
|
||||||
fFirstBkgLine = new TLine((double)bkgRange[0], 0.0, (double)bkgRange[0], max);
|
fFirstBkgLine = new TLine((double)fBkgRange[0], 0.0, (double)fBkgRange[0], max);
|
||||||
fFirstBkgLine->SetLineStyle(6); // _..._...
|
fFirstBkgLine->SetLineStyle(6); // _..._...
|
||||||
fFirstBkgLine->SetLineColor(TColor::GetColor(255,0,0)); // red
|
fFirstBkgLine->SetLineColor(TColor::GetColor(255,0,0)); // red
|
||||||
fFirstBkgLine->SetLineWidth(2);
|
fFirstBkgLine->SetLineWidth(2);
|
||||||
fFirstBkgLine->Draw();
|
fFirstBkgLine->Draw();
|
||||||
|
|
||||||
fLastBkgLine = new TLine((double)bkgRange[1], 0.0, (double)bkgRange[1], max);
|
fLastBkgLine = new TLine((double)fBkgRange[1], 0.0, (double)fBkgRange[1], max);
|
||||||
fLastBkgLine->SetLineStyle(6); // _..._...
|
fLastBkgLine->SetLineStyle(6); // _..._...
|
||||||
fLastBkgLine->SetLineColor(TColor::GetColor(255,0,0)); // red
|
fLastBkgLine->SetLineColor(TColor::GetColor(255,0,0)); // red
|
||||||
fLastBkgLine->SetLineWidth(2);
|
fLastBkgLine->SetLineWidth(2);
|
||||||
@ -432,7 +388,188 @@ void PMusrT0::InitDataAndBkg()
|
|||||||
*/
|
*/
|
||||||
void PMusrT0::SetT0Channel()
|
void PMusrT0::SetT0Channel()
|
||||||
{
|
{
|
||||||
cout << endl << "Set T0 Channel";
|
double x=0, y=0;
|
||||||
|
fMainCanvas->AbsPixeltoXY(fPx,fPy,x,y);
|
||||||
|
|
||||||
|
// get binx to set t0 corresponding to fPx
|
||||||
|
Int_t binx = fHisto->GetXaxis()->FindFixBin(x);
|
||||||
|
|
||||||
|
// set t0 bin in msr-Handler
|
||||||
|
|
||||||
|
// shift line to the proper position
|
||||||
|
fT0Line->SetX1(x);
|
||||||
|
fT0Line->SetX2(x);
|
||||||
|
|
||||||
|
fMainCanvas->Modified(); // needed that Update is actually working
|
||||||
|
fMainCanvas->Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// SetDataFirstChannel
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMusrT0::SetDataFirstChannel()
|
||||||
|
{
|
||||||
|
double x=0, y=0;
|
||||||
|
fMainCanvas->AbsPixeltoXY(fPx,fPy,x,y);
|
||||||
|
|
||||||
|
// get binx to set the data first channel corresponding to fPx
|
||||||
|
fDataRange[0] = fHisto->GetXaxis()->FindFixBin(x);
|
||||||
|
|
||||||
|
// set the data first bin in msr-Handler
|
||||||
|
|
||||||
|
// shift line to the proper position
|
||||||
|
fFirstDataLine->SetX1(x);
|
||||||
|
fFirstDataLine->SetX2(x);
|
||||||
|
|
||||||
|
// recreate data histo
|
||||||
|
delete fData;
|
||||||
|
fData = 0;
|
||||||
|
|
||||||
|
// refill data histo
|
||||||
|
Int_t noOfBins = fDataRange[1]-fDataRange[0]+1;
|
||||||
|
Double_t start = fDataRange[0] - 0.5;
|
||||||
|
Double_t end = fDataRange[1] + 0.5;
|
||||||
|
fData = new TH1F("fData", "fData", noOfBins, start, end);
|
||||||
|
fData->SetMarkerStyle(21);
|
||||||
|
fData->SetMarkerSize(0.5);
|
||||||
|
fData->SetMarkerColor(TColor::GetColor(0,0,255)); // blue
|
||||||
|
for (int i=0; i<noOfBins; i++) {
|
||||||
|
fData->SetBinContent(i+1, fHisto->GetBinContent(fDataRange[0]+i+1));
|
||||||
|
}
|
||||||
|
fData->Draw("p0 9 hist same");
|
||||||
|
|
||||||
|
fMainCanvas->Modified(); // needed that Update is actually working
|
||||||
|
fMainCanvas->Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// SetDataLastChannel
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMusrT0::SetDataLastChannel()
|
||||||
|
{
|
||||||
|
double x=0, y=0;
|
||||||
|
fMainCanvas->AbsPixeltoXY(fPx,fPy,x,y);
|
||||||
|
|
||||||
|
// get binx to set the data last channel corresponding to fPx
|
||||||
|
fDataRange[1] = fHisto->GetXaxis()->FindFixBin(x);
|
||||||
|
|
||||||
|
// set the data last bin in msr-Handler
|
||||||
|
|
||||||
|
// shift line to the proper position
|
||||||
|
fLastDataLine->SetX1(x);
|
||||||
|
fLastDataLine->SetX2(x);
|
||||||
|
|
||||||
|
// recreate data histo
|
||||||
|
delete fData;
|
||||||
|
fData = 0;
|
||||||
|
|
||||||
|
// refill data histo
|
||||||
|
Int_t noOfBins = fDataRange[1]-fDataRange[0]+1;
|
||||||
|
Double_t start = fDataRange[0] - 0.5;
|
||||||
|
Double_t end = fDataRange[1] + 0.5;
|
||||||
|
fData = new TH1F("fData", "fData", noOfBins, start, end);
|
||||||
|
fData->SetMarkerStyle(21);
|
||||||
|
fData->SetMarkerSize(0.5);
|
||||||
|
fData->SetMarkerColor(TColor::GetColor(0,0,255)); // blue
|
||||||
|
for (int i=0; i<noOfBins; i++) {
|
||||||
|
fData->SetBinContent(i+1, fHisto->GetBinContent(fDataRange[0]+i+1));
|
||||||
|
}
|
||||||
|
fData->Draw("p0 9 hist same");
|
||||||
|
|
||||||
|
fMainCanvas->Modified(); // needed that Update is actually working
|
||||||
|
fMainCanvas->Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// SetBkgFirstChannel
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMusrT0::SetBkgFirstChannel()
|
||||||
|
{
|
||||||
|
double x=0, y=0;
|
||||||
|
fMainCanvas->AbsPixeltoXY(fPx,fPy,x,y);
|
||||||
|
|
||||||
|
// get binx to set the background first channel corresponding to fPx
|
||||||
|
fBkgRange[0] = fHisto->GetXaxis()->FindFixBin(x);
|
||||||
|
|
||||||
|
// set the background first bin in msr-Handler
|
||||||
|
|
||||||
|
// shift line to the proper position
|
||||||
|
fFirstBkgLine->SetX1(x);
|
||||||
|
fFirstBkgLine->SetX2(x);
|
||||||
|
|
||||||
|
// recreate data histo
|
||||||
|
delete fBkg;
|
||||||
|
fBkg = 0;
|
||||||
|
|
||||||
|
// refill data histo
|
||||||
|
Int_t noOfBins = fBkgRange[1]-fBkgRange[0]+1;
|
||||||
|
Double_t start = fBkgRange[0] - 0.5;
|
||||||
|
Double_t end = fBkgRange[1] + 0.5;
|
||||||
|
fBkg = new TH1F("fBkg", "fBkg", noOfBins, start, end);
|
||||||
|
fBkg->SetMarkerStyle(21);
|
||||||
|
fBkg->SetMarkerSize(0.5);
|
||||||
|
fBkg->SetMarkerColor(TColor::GetColor(255,0,0)); // red
|
||||||
|
for (int i=0; i<noOfBins; i++) {
|
||||||
|
fBkg->SetBinContent(i+1, fHisto->GetBinContent(fBkgRange[0]+i+1));
|
||||||
|
}
|
||||||
|
fBkg->Draw("p0 9 hist same");
|
||||||
|
|
||||||
|
fMainCanvas->Modified(); // needed that Update is actually working
|
||||||
|
fMainCanvas->Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// SetBkgLastChannel
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMusrT0::SetBkgLastChannel()
|
||||||
|
{
|
||||||
|
double x=0, y=0;
|
||||||
|
fMainCanvas->AbsPixeltoXY(fPx,fPy,x,y);
|
||||||
|
|
||||||
|
// get binx to set the background last channel corresponding to fPx
|
||||||
|
fBkgRange[1] = fHisto->GetXaxis()->FindFixBin(x);
|
||||||
|
|
||||||
|
// set the background last bin in msr-Handler
|
||||||
|
|
||||||
|
// shift line to the proper position
|
||||||
|
fLastBkgLine->SetX1(x);
|
||||||
|
fLastBkgLine->SetX2(x);
|
||||||
|
|
||||||
|
// recreate data histo
|
||||||
|
delete fBkg;
|
||||||
|
fBkg = 0;
|
||||||
|
|
||||||
|
// refill data histo
|
||||||
|
Int_t noOfBins = fBkgRange[1]-fBkgRange[0]+1;
|
||||||
|
Double_t start = fBkgRange[0] - 0.5;
|
||||||
|
Double_t end = fBkgRange[1] + 0.5;
|
||||||
|
fBkg = new TH1F("fBkg", "fBkg", noOfBins, start, end);
|
||||||
|
fBkg->SetMarkerStyle(21);
|
||||||
|
fBkg->SetMarkerSize(0.5);
|
||||||
|
fBkg->SetMarkerColor(TColor::GetColor(255,0,0)); // red
|
||||||
|
for (int i=0; i<noOfBins; i++) {
|
||||||
|
fBkg->SetBinContent(i+1, fHisto->GetBinContent(fBkgRange[0]+i+1));
|
||||||
|
}
|
||||||
|
fBkg->Draw("p0 9 hist same");
|
||||||
|
|
||||||
|
fMainCanvas->Modified(); // needed that Update is actually working
|
||||||
|
fMainCanvas->Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
@ -46,14 +46,6 @@
|
|||||||
#include "PMsrHandler.h"
|
#include "PMsrHandler.h"
|
||||||
#endif // __MAKECINT__
|
#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
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* <p>The preprocessor tag __MAKECINT__ is used to hide away from rootcint
|
* <p>The preprocessor tag __MAKECINT__ is used to hide away from rootcint
|
||||||
@ -69,7 +61,6 @@ class PMusrT0 : public TObject, public TQObject
|
|||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
#ifndef __MAKECINT__
|
#ifndef __MAKECINT__
|
||||||
virtual void SetMsrHandler(PMsrHandler *msrHandler);
|
virtual void SetMsrHandler(PMsrHandler *msrHandler);
|
||||||
@ -87,11 +78,7 @@ class PMusrT0 : public TObject, public TQObject
|
|||||||
int fRunNo;
|
int fRunNo;
|
||||||
int fDetectorTag;
|
int fDetectorTag;
|
||||||
int fAddRunNo;
|
int fAddRunNo;
|
||||||
|
int fAddRunOffset;
|
||||||
// canvas menu related variables
|
|
||||||
TRootCanvas *fImp;
|
|
||||||
TGMenuBar *fBar;
|
|
||||||
TGPopupMenu *fPopupMain;
|
|
||||||
|
|
||||||
// canvas related variables
|
// canvas related variables
|
||||||
TCanvas *fMainCanvas;
|
TCanvas *fMainCanvas;
|
||||||
@ -106,8 +93,18 @@ class PMusrT0 : public TObject, public TQObject
|
|||||||
TLine *fFirstDataLine;
|
TLine *fFirstDataLine;
|
||||||
TLine *fLastDataLine;
|
TLine *fLastDataLine;
|
||||||
|
|
||||||
|
Int_t fPx;
|
||||||
|
Int_t fPy;
|
||||||
|
|
||||||
|
Int_t fDataRange[2];
|
||||||
|
Int_t fBkgRange[2];
|
||||||
|
|
||||||
void InitDataAndBkg();
|
void InitDataAndBkg();
|
||||||
void SetT0Channel();
|
void SetT0Channel();
|
||||||
|
void SetDataFirstChannel();
|
||||||
|
void SetDataLastChannel();
|
||||||
|
void SetBkgFirstChannel();
|
||||||
|
void SetBkgLastChannel();
|
||||||
void UnZoom();
|
void UnZoom();
|
||||||
|
|
||||||
ClassDef(PMusrT0, 1)
|
ClassDef(PMusrT0, 1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user