ChainMonitor.C find the time and canvas title
This commit is contained in:
parent
f9c9363944
commit
e6c6620426
|
@ -316,7 +316,7 @@ DetGeo detGeo;
|
||||||
ReactionConfig reactionConfig;
|
ReactionConfig reactionConfig;
|
||||||
|
|
||||||
void LoadDetGeoAndReactionConfigFile(std::string detGeoFileName = "detectorGeo.txt", std::string reactionConfigFileName = "reactionConfig.txt"){
|
void LoadDetGeoAndReactionConfigFile(std::string detGeoFileName = "detectorGeo.txt", std::string reactionConfigFileName = "reactionConfig.txt"){
|
||||||
printf("=======================\n");
|
printf("=====================================================\n");
|
||||||
printf(" loading detector geometery : %s.", detGeoFileName.c_str());
|
printf(" loading detector geometery : %s.", detGeoFileName.c_str());
|
||||||
TMacro * haha = new TMacro();
|
TMacro * haha = new TMacro();
|
||||||
if( haha->ReadFile(detGeoFileName.c_str()) > 0 ) {
|
if( haha->ReadFile(detGeoFileName.c_str()) > 0 ) {
|
||||||
|
@ -327,7 +327,7 @@ void LoadDetGeoAndReactionConfigFile(std::string detGeoFileName = "detectorGeo.t
|
||||||
printf("... fail\n");
|
printf("... fail\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("=======================\n");
|
printf("=====================================================\n");
|
||||||
printf(" loading reaction config : %s.", reactionConfigFileName.c_str());
|
printf(" loading reaction config : %s.", reactionConfigFileName.c_str());
|
||||||
TMacro * kaka = new TMacro();
|
TMacro * kaka = new TMacro();
|
||||||
if( kaka->ReadFile(reactionConfigFileName.c_str()) > 0 ) {
|
if( kaka->ReadFile(reactionConfigFileName.c_str()) > 0 ) {
|
||||||
|
@ -495,7 +495,7 @@ void LoadReactionParas(bool verbose = false){
|
||||||
printf("\tslope : %f MeV/mm \n", alpha * betRel);
|
printf("\tslope : %f MeV/mm \n", alpha * betRel);
|
||||||
printf("\tdet radius: %f mm \n", detGeo.detPerpDist);
|
printf("\tdet radius: %f mm \n", detGeo.detPerpDist);
|
||||||
printf("\tG-coeff : %f MeV \n", G);
|
printf("\tG-coeff : %f MeV \n", G);
|
||||||
printf("=================================\n");
|
printf("=====================================================\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
@ -554,6 +554,8 @@ std::vector<double> CalExTheta(double e, double z){
|
||||||
|
|
||||||
TObjArray * LoadListOfTCut(TString fileName, TString cutName = "cutList"){
|
TObjArray * LoadListOfTCut(TString fileName, TString cutName = "cutList"){
|
||||||
|
|
||||||
|
if( fileName == "" ) return nullptr;
|
||||||
|
|
||||||
TObjArray * cutList = nullptr;
|
TObjArray * cutList = nullptr;
|
||||||
|
|
||||||
TFile * fCut = new TFile(fileName);
|
TFile * fCut = new TFile(fileName);
|
||||||
|
@ -583,6 +585,7 @@ TObjArray * LoadListOfTCut(TString fileName, TString cutName = "cutList"){
|
||||||
|
|
||||||
TCutG * LoadSingleTCut( TString fileName, TString cutName = "cutEZ"){
|
TCutG * LoadSingleTCut( TString fileName, TString cutName = "cutEZ"){
|
||||||
|
|
||||||
|
if( fileName == "" ) return nullptr;
|
||||||
TCutG * cut = nullptr;
|
TCutG * cut = nullptr;
|
||||||
|
|
||||||
TFile * fCut = new TFile(fileName);
|
TFile * fCut = new TFile(fileName);
|
||||||
|
|
|
@ -17,6 +17,8 @@ void GeneralSortAgent(Int_t runNum, int nWorker = 1, int traceMethod = -1){
|
||||||
|
|
||||||
printf("\033[1;33m---------------------total number of Events %llu\033[0m\n", chain->GetEntries());
|
printf("\033[1;33m---------------------total number of Events %llu\033[0m\n", chain->GetEntries());
|
||||||
|
|
||||||
|
if( chain->GetEntries() == 0 ) return;
|
||||||
|
|
||||||
//this is the option for TSelector, the first one is traceMethod, 2nd is save fileName;
|
//this is the option for TSelector, the first one is traceMethod, 2nd is save fileName;
|
||||||
TString option;
|
TString option;
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
|
|
||||||
#include <TMath.h>
|
#include <TMath.h>
|
||||||
#include <TCanvas.h>
|
#include <TCanvas.h>
|
||||||
#include "../working/Mapping.h"
|
|
||||||
|
|
||||||
//This file runs after on Monitor.C
|
//This file runs after on Monitor.C
|
||||||
//This file is parasite on Monitor.C
|
//This file is parasite on Monitor.C
|
||||||
|
@ -15,19 +14,17 @@ void listDraws(void) {
|
||||||
printf(" newCanvas() - Create a new Canvas\n");
|
printf(" newCanvas() - Create a new Canvas\n");
|
||||||
printf("-----------------------------------------------------\n");
|
printf("-----------------------------------------------------\n");
|
||||||
printf(" rawID() - Raw \033[0;31me\033[0m, \033[0;31mring\033[0m, \033[0;31mxf\033[0m, \033[0;31mxn\033[0m vs detID\n");
|
printf(" rawID() - Raw \033[0;31me\033[0m, \033[0;31mring\033[0m, \033[0;31mxf\033[0m, \033[0;31mxn\033[0m vs detID\n");
|
||||||
printf(" rawe() - Raw \033[0;31me\033[0m for all %d detectors\n", mapping::NARRAY);
|
printf(" rawe() - Raw \033[0;31me\033[0m for all %d detectors\n", numDet);
|
||||||
printf(" rawxf() - Raw \033[0;31mxf\033[0m for all %d detectors\n", mapping::NARRAY);
|
printf(" rawxf() - Raw \033[0;31mxf\033[0m for all %d detectors\n", numDet);
|
||||||
printf(" rawxn() - Raw \033[0;31mxn\033[0m for all %d detectors\n", mapping::NARRAY);
|
printf(" rawxn() - Raw \033[0;31mxn\033[0m for all %d detectors\n", numDet);
|
||||||
printf(" xfVxn() - Raw \033[0;31mxf\033[0m vs. \033[0;31mxn\033[0m for all %d detectors\n", mapping::NARRAY);
|
printf(" rawxfVxn() - Raw \033[0;31mxf\033[0m vs. \033[0;31mxn\033[0m for all %d detectors\n", numDet);
|
||||||
printf(" eVxs() - Raw \033[0;31me\033[0m vs. Raw \033[0;31mxs = xf + xn\033[0m for all %d detectors\n", mapping::NARRAY);
|
printf(" raweVxs() - Raw \033[0;31me\033[0m vs. Raw \033[0;31mxs = xf + xn\033[0m for all %d detectors\n", numDet);
|
||||||
printf(" eVx() - Raw \033[0;31me\033[0m vs. RAW \033[0;31mx\033[0m for all %d detectors\n", mapping::NARRAY);
|
printf(" raweVx() - Raw \033[0;31me\033[0m vs. RAW \033[0;31mx\033[0m for all %d detectors\n", numDet);
|
||||||
printf("-----------------------------------------------------\n");
|
printf("-----------------------------------------------------\n");
|
||||||
printf(" eVxsCal() - Raw \033[0;31me\033[0m vs. Corrected \033[0;31mxs\033[0m for all %d detectors\n", mapping::NARRAY);
|
printf(" eVxsCal() - Raw \033[0;31me\033[0m vs. Corrected \033[0;31mxs\033[0m for all %d detectors\n", numDet);
|
||||||
printf(" ecal() - Calibrated \033[0;31me\033[0m for all %d detectors\n", mapping::NARRAY);
|
printf(" ecal() - Calibrated \033[0;31me\033[0m for all %d detectors\n", numDet);
|
||||||
printf(" ecal2() - Calibrated \033[0;31me\033[0m for all %d detectors (same row or same col)\n", mapping::NARRAY);
|
printf("xfCalVxnCal() - Calibrated \033[0;31mxf\033[0m vs. \033[0;31mxn\033[0m for all %d detectors\n", numDet);
|
||||||
printf("xfCalVxnCal() - Calibrated \033[0;31mxf\033[0m vs. \033[0;31mxn\033[0m for all %d detectors\n", mapping::NARRAY);
|
printf(" eCalVxCal() - Cal \033[0;31me\033[0m vs. \033[0;31mx\033[0m for all %d detectors\n", numDet);
|
||||||
printf("-----------------------------------------------------\n");
|
|
||||||
printf(" eCalVxCal() - Cal \033[0;31me\033[0m vs. \033[0;31mx\033[0m for all %d detectors\n", mapping::NARRAY);
|
|
||||||
printf("-----------------------------------------------------\n");
|
printf("-----------------------------------------------------\n");
|
||||||
printf(" recoils() - Raw DE vs. E Recoil spectra\n");
|
printf(" recoils() - Raw DE vs. E Recoil spectra\n");
|
||||||
//printf(" elum() - Luminosity Energy Spectra\n");
|
//printf(" elum() - Luminosity Energy Spectra\n");
|
||||||
|
@ -37,21 +34,19 @@ void listDraws(void) {
|
||||||
printf(" eCalVzRow() - Energy vs. Z for each row\n");
|
printf(" eCalVzRow() - Energy vs. Z for each row\n");
|
||||||
printf(" excite() - Excitation Energy\n");
|
printf(" excite() - Excitation Energy\n");
|
||||||
printf(" ExThetaCM() - Ex vs ThetaCM\n");
|
printf(" ExThetaCM() - Ex vs ThetaCM\n");
|
||||||
printf(" ExVxCal() - Ex vs X for all %d detectors\n", mapping::NARRAY);
|
printf(" ExVxCal() - Ex vs X for all %d detectors\n", numDet);
|
||||||
//printf(" eSVeRaw() - e(Ex,z) vs eRaw for all %d detectors\n", mapping::NARRAY);
|
|
||||||
printf("-----------------------------------------------------\n");
|
printf("-----------------------------------------------------\n");
|
||||||
printf(" ShowFitMethod() - Shows various fitting methods \n");
|
printf(" ShowFitMethod() - Shows various fitting methods \n");
|
||||||
printf(" RDTCutCreator() - Create RDT Cuts [May need to edit]\n");
|
printf(" RDTCutCreator() - Create RDT Cuts [May need to edit]\n");
|
||||||
printf(" Check_rdtGate() - Check RDT Cuts. \n");
|
printf(" Check_rdtGate() - Check RDT Cuts. \n");
|
||||||
printf(" readTrace() - read trace from gen_runXXX.root \n");
|
printf(" readTrace() - read trace from gen_runXXX.root \n");
|
||||||
printf(" readRawTrace() - read trace from runXXX.root \n");
|
printf(" readRawTrace() - read trace from runXXX.root \n");
|
||||||
// printf(" Check1D() - Count Integral within a range\n");
|
printf(" Check1D() - Count Integral within a range\n");
|
||||||
printf("-----------------------------------------------------\n");
|
printf("-----------------------------------------------------\n");
|
||||||
printf(" %s\n", canvasTitle.Data());
|
printf(" %s\n", canvasTitle.Data());
|
||||||
printf("-----------------------------------------------------\n");
|
printf("-----------------------------------------------------\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int xD, yD;
|
int xD, yD;
|
||||||
void FindBesCanvasDivision(int nPad){
|
void FindBesCanvasDivision(int nPad){
|
||||||
for( int i = TMath::Sqrt(nPad); i >= 2 ; i--){
|
for( int i = TMath::Sqrt(nPad); i >= 2 ; i--){
|
||||||
|
@ -71,10 +66,6 @@ void newCanvas(int sizeX = 800, int sizeY = 600, int posX = 0, int posY = 0){
|
||||||
cNewCanvas->cd();
|
cNewCanvas->cd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//TODO set histogram y-axis all the same heigh
|
|
||||||
|
|
||||||
|
|
||||||
void rawID(){
|
void rawID(){
|
||||||
TCanvas * cRawID = (TCanvas *) gROOT->FindObjectAny("cRawID");
|
TCanvas * cRawID = (TCanvas *) gROOT->FindObjectAny("cRawID");
|
||||||
if( cRawID == NULL ) cRawID = new TCanvas("cRawID", Form("Raw e, Ring, xf, xn vs ID | %s", canvasTitle.Data()), canvasSize[0], canvasSize[1]);
|
if( cRawID == NULL ) cRawID = new TCanvas("cRawID", Form("Raw e, Ring, xf, xn vs ID | %s", canvasTitle.Data()), canvasSize[0], canvasSize[1]);
|
||||||
|
@ -89,7 +80,7 @@ void rawe(Bool_t isLogy = false) {
|
||||||
TCanvas *cRawE = (TCanvas *) gROOT->FindObjectAny("cRawE");
|
TCanvas *cRawE = (TCanvas *) gROOT->FindObjectAny("cRawE");
|
||||||
if( cRawE == NULL ) cRawE = new TCanvas("cRawE",Form("E raw | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
if( cRawE == NULL ) cRawE = new TCanvas("cRawE",Form("E raw | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
||||||
cRawE->Clear();cRawE->Divide(numCol,numRow);
|
cRawE->Clear();cRawE->Divide(numCol,numRow);
|
||||||
for (Int_t i=0; i < mapping::NARRAY; i++) {
|
for (Int_t i=0; i < numDet; i++) {
|
||||||
cRawE->cd(i+1);
|
cRawE->cd(i+1);
|
||||||
cRawE->cd(i+1)->SetGrid();
|
cRawE->cd(i+1)->SetGrid();
|
||||||
if( isLogy ) cRawE->cd(i+1)->SetLogy();
|
if( isLogy ) cRawE->cd(i+1)->SetLogy();
|
||||||
|
@ -101,7 +92,7 @@ void rawxf(Bool_t isLogy = false) {
|
||||||
TCanvas *cRawXf = (TCanvas *) gROOT->FindObjectAny("cRawXf");
|
TCanvas *cRawXf = (TCanvas *) gROOT->FindObjectAny("cRawXf");
|
||||||
if( cRawXf == NULL ) cRawXf = new TCanvas("cRawXf",Form("Xf raw | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
if( cRawXf == NULL ) cRawXf = new TCanvas("cRawXf",Form("Xf raw | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
||||||
cRawXf->Clear();cRawXf->Divide(numCol,numRow);
|
cRawXf->Clear();cRawXf->Divide(numCol,numRow);
|
||||||
for (Int_t i=0; i<mapping::NARRAY; i++) {
|
for (Int_t i=0; i<numDet; i++) {
|
||||||
cRawXf->cd(i+1);
|
cRawXf->cd(i+1);
|
||||||
cRawXf->cd(i+1)->SetGrid();
|
cRawXf->cd(i+1)->SetGrid();
|
||||||
if( isLogy ) cRawXf->cd(i+1)->SetLogy();
|
if( isLogy ) cRawXf->cd(i+1)->SetLogy();
|
||||||
|
@ -113,7 +104,7 @@ void rawxn(Bool_t isLogy = false) {
|
||||||
TCanvas *cRawXn = (TCanvas *) gROOT->FindObjectAny("cRawXn");
|
TCanvas *cRawXn = (TCanvas *) gROOT->FindObjectAny("cRawXn");
|
||||||
if( cRawXn == NULL ) cRawXn = new TCanvas("cRawXn",Form("Xn raw | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
if( cRawXn == NULL ) cRawXn = new TCanvas("cRawXn",Form("Xn raw | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
||||||
cRawXn->Clear();cRawXn->Divide(numCol,numRow);
|
cRawXn->Clear();cRawXn->Divide(numCol,numRow);
|
||||||
for (Int_t i=0; i<mapping::NARRAY; i++) {
|
for (Int_t i=0; i<numDet; i++) {
|
||||||
cRawXn->cd(i+1);
|
cRawXn->cd(i+1);
|
||||||
cRawXn->cd(i+1)->SetGrid();
|
cRawXn->cd(i+1)->SetGrid();
|
||||||
if( isLogy ) cRawXn->cd(i+1)->SetLogy();
|
if( isLogy ) cRawXn->cd(i+1)->SetLogy();
|
||||||
|
@ -121,23 +112,23 @@ void rawxn(Bool_t isLogy = false) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void xfVxn(void) {
|
void rawxfVxn(void) {
|
||||||
TCanvas *cxfxn = (TCanvas *) gROOT->FindObjectAny("cxfxn");
|
TCanvas *cxfxn = (TCanvas *) gROOT->FindObjectAny("cxfxn");
|
||||||
if( cxfxn == NULL ) cxfxn = new TCanvas("cxfxn",Form("XF vs. XN | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
if( cxfxn == NULL ) cxfxn = new TCanvas("cxfxn",Form("XF vs. XN | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
||||||
cxfxn->Clear(); cxfxn->Divide(numCol,numRow);
|
cxfxn->Clear(); cxfxn->Divide(numCol,numRow);
|
||||||
for (Int_t i=0;i<mapping::NARRAY;i++) {
|
for (Int_t i=0;i<numDet;i++) {
|
||||||
cxfxn->cd(i+1);
|
cxfxn->cd(i+1);
|
||||||
cxfxn->cd(i+1)->SetGrid();
|
cxfxn->cd(i+1)->SetGrid();
|
||||||
hxfVxn[i]->Draw("col");
|
hxfVxn[i]->Draw("col");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void eVxs(void) {
|
void raweVxs(void) {
|
||||||
TCanvas *cxfxne = (TCanvas *) gROOT->FindObjectAny("cxfxne");
|
TCanvas *cxfxne = (TCanvas *) gROOT->FindObjectAny("cxfxne");
|
||||||
if( cxfxne == NULL ) cxfxne = new TCanvas("cxfxne",Form("E - XF+XN | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
if( cxfxne == NULL ) cxfxne = new TCanvas("cxfxne",Form("E - XF+XN | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
||||||
cxfxne->Clear(); cxfxne->Divide(numCol,numRow);
|
cxfxne->Clear(); cxfxne->Divide(numCol,numRow);
|
||||||
TLine line(0,0, 4000, 4000); line.SetLineColor(2);
|
TLine line(0,0, 4000, 4000); line.SetLineColor(2);
|
||||||
for (Int_t i=0;i<mapping::NARRAY;i++) {
|
for (Int_t i=0;i<numDet;i++) {
|
||||||
cxfxne->cd(i+1);
|
cxfxne->cd(i+1);
|
||||||
cxfxne->cd(i+1)->SetGrid();
|
cxfxne->cd(i+1)->SetGrid();
|
||||||
heVxs[i]->Draw("col");
|
heVxs[i]->Draw("col");
|
||||||
|
@ -145,11 +136,33 @@ void eVxs(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void raweVx(void) {
|
||||||
|
TCanvas *ceVx = (TCanvas *) gROOT->FindObjectAny("ceVx");
|
||||||
|
if(ceVx == NULL) ceVx = new TCanvas("ceVx",Form("E vs. X = (xf-xn)/e | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
||||||
|
ceVx->Clear(); ceVx->Divide(numCol,numRow);
|
||||||
|
for (Int_t i=0;i<numDet;i++) {
|
||||||
|
ceVx->cd(i+1); heVx[i]->Draw("col");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void eVxsCal(void) {
|
||||||
|
TCanvas *cxfxneC = (TCanvas *) gROOT->FindObjectAny("cxfxneC");
|
||||||
|
if(cxfxneC == NULL)cxfxneC = new TCanvas("cxfxneC",Form("Raw E - Corrected XF+XN | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
||||||
|
cxfxneC->Clear(); cxfxneC->Divide(numCol,numRow);
|
||||||
|
TLine line(0,0, 4000, 4000); line.SetLineColor(2);
|
||||||
|
for (Int_t i=0;i<numDet;i++) {
|
||||||
|
cxfxneC->cd(i+1);
|
||||||
|
cxfxneC->cd(i+1)->SetGrid();
|
||||||
|
heVxsCal[i]->Draw("col");
|
||||||
|
line.Draw("same");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ecal(void) {
|
void ecal(void) {
|
||||||
TCanvas *cEC = (TCanvas *) gROOT->FindObjectAny("cEC");
|
TCanvas *cEC = (TCanvas *) gROOT->FindObjectAny("cEC");
|
||||||
if(cEC == NULL) cEC = new TCanvas("cEC",Form("E corrected | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
if(cEC == NULL) cEC = new TCanvas("cEC",Form("E corrected | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
||||||
cEC->Clear();cEC->Divide(numCol,numRow);
|
cEC->Clear();cEC->Divide(numCol,numRow);
|
||||||
for (Int_t i=0; i<mapping::NARRAY; i++) {
|
for (Int_t i=0; i<numDet; i++) {
|
||||||
cEC->cd(i+1);
|
cEC->cd(i+1);
|
||||||
cEC->cd(i+1)->SetGrid();
|
cEC->cd(i+1)->SetGrid();
|
||||||
heCal[i]->Draw("");
|
heCal[i]->Draw("");
|
||||||
|
@ -161,90 +174,51 @@ void ecal(void) {
|
||||||
heCalID->Draw("colz");
|
heCalID->Draw("colz");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ecal2(void) {
|
|
||||||
TCanvas *cECall = (TCanvas *) gROOT->FindObjectAny("cECall");
|
|
||||||
if(cECall == NULL) cECall = new TCanvas("cECall",Form("E corrected | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
|
||||||
|
|
||||||
int maxRC = TMath::Max(numRow, numCol);
|
|
||||||
cECall->Clear();cECall->Divide(maxRC,2);
|
|
||||||
//plot same position
|
|
||||||
for(int i = 0; i < numCol ; i++){
|
|
||||||
cECall->cd(i+1);
|
|
||||||
cECall->cd(i+1)->SetGrid();
|
|
||||||
heCal[i]->SetLineColor(1); heCal[i]->Draw("");
|
|
||||||
for(int j = 1 ; j < numRow; j++){
|
|
||||||
heCal[numCol*j + i]->SetLineColor(j+1);
|
|
||||||
heCal[numCol*j + i]->Draw("same");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//plot same side
|
|
||||||
TH1F * heC2[mapping::NARRAY];
|
|
||||||
for (Int_t i = 0; i< numRow; i++) {
|
|
||||||
cECall->cd(i+maxRC+1);
|
|
||||||
cECall->cd(i+maxRC+1)->SetGrid();
|
|
||||||
heC2[numCol*i] = (TH1F* )heCal[numCol*i]->Clone();
|
|
||||||
heC2[numCol*i]->SetLineColor(1); heC2[numCol*i]->Draw("");
|
|
||||||
for( int j = 1; j < numCol; j++){
|
|
||||||
heC2[numCol*i+j] = (TH1F* )heCal[numCol*i+j]->Clone();
|
|
||||||
heC2[numCol*i+j]->SetLineColor(j+1);
|
|
||||||
heC2[numCol*i+j]->Draw("same");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void xfCalVxnCal(void) {
|
void xfCalVxnCal(void) {
|
||||||
TCanvas *cxfxnC = (TCanvas *) gROOT->FindObjectAny("cxfxnC");
|
TCanvas *cxfxnC = (TCanvas *) gROOT->FindObjectAny("cxfxnC");
|
||||||
if(cxfxnC == NULL) cxfxnC = new TCanvas("cxfxnC",Form("XF vs XN corrected | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
if(cxfxnC == NULL) cxfxnC = new TCanvas("cxfxnC",Form("XF vs XN corrected | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
||||||
cxfxnC->Clear(); cxfxnC->Divide(numCol,numRow);
|
cxfxnC->Clear(); cxfxnC->Divide(numCol,numRow);
|
||||||
for (Int_t i=0;i<mapping::NARRAY;i++) {
|
for (Int_t i=0;i<numDet;i++) {
|
||||||
cxfxnC->cd(i+1);
|
cxfxnC->cd(i+1);
|
||||||
cxfxnC->cd(i+1)->SetGrid();
|
cxfxnC->cd(i+1)->SetGrid();
|
||||||
hxfCalVxnCal[i]->Draw("col");
|
hxfCalVxnCal[i]->Draw("col");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void eVxsCal(void) {
|
|
||||||
TCanvas *cxfxneC = (TCanvas *) gROOT->FindObjectAny("cxfxneC");
|
|
||||||
if(cxfxneC == NULL)cxfxneC = new TCanvas("cxfxneC",Form("Raw E - Corrected XF+XN | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
|
||||||
cxfxneC->Clear(); cxfxneC->Divide(numCol,numRow);
|
|
||||||
TLine line(0,0, 4000, 4000); line.SetLineColor(2);
|
|
||||||
for (Int_t i=0;i<mapping::NARRAY;i++) {
|
|
||||||
cxfxneC->cd(i+1);
|
|
||||||
cxfxneC->cd(i+1)->SetGrid();
|
|
||||||
heVxsCal[i]->Draw("col");
|
|
||||||
line.Draw("same");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void eVx(void) {
|
|
||||||
TCanvas *ceVx = (TCanvas *) gROOT->FindObjectAny("ceVx");
|
|
||||||
if(ceVx == NULL) ceVx = new TCanvas("ceVx",Form("E vs. X = (xf-xn)/e | %s", canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
|
||||||
ceVx->Clear(); ceVx->Divide(numCol,numRow);
|
|
||||||
for (Int_t i=0;i<mapping::NARRAY;i++) {
|
|
||||||
ceVx->cd(i+1); heVx[i]->Draw("col");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void eCalVxCal(void) {
|
void eCalVxCal(void) {
|
||||||
TCanvas *cecalVxcal = (TCanvas *) gROOT->FindObjectAny("cecalVxcal");
|
TCanvas *cecalVxcal = (TCanvas *) gROOT->FindObjectAny("cecalVxcal");
|
||||||
if( cecalVxcal == NULL ) cecalVxcal = new TCanvas("cecalVxcal",Form("ECALVXCAL | %s",canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
if( cecalVxcal == NULL ) cecalVxcal = new TCanvas("cecalVxcal",Form("ECALVXCAL | %s",canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
||||||
cecalVxcal->Clear(); cecalVxcal->Divide(numCol,numRow);
|
cecalVxcal->Clear(); cecalVxcal->Divide(numCol,numRow);
|
||||||
for (Int_t i=0;i<mapping::NARRAY;i++) {
|
for (Int_t i=0;i<numDet;i++) {
|
||||||
cecalVxcal->cd(i+1);
|
cecalVxcal->cd(i+1);
|
||||||
heCalVxCal[i]->SetMarkerStyle(7);
|
heCalVxCal[i]->SetMarkerStyle(7);
|
||||||
heCalVxCal[i]->Draw("");
|
heCalVxCal[i]->Draw("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void eCalVxCalG(void) {
|
void recoils(bool isLogz = false) {
|
||||||
TCanvas *cecalVxcalG = (TCanvas *) gROOT->FindObjectAny("cecalVxcalG");
|
TCanvas *crdt = (TCanvas *) gROOT->FindObjectAny("crdt");
|
||||||
if( cecalVxcalG == NULL ) cecalVxcalG = new TCanvas("cecalVxcalG",Form("ECALVXCAL | %s",canvasTitle.Data()),canvasSize[0], canvasSize[1]);
|
if( crdt == NULL ) crdt = new TCanvas("crdt",Form("raw RDT | %s", canvasTitle.Data()),1700, 0, 1000,1000);
|
||||||
cecalVxcalG->Clear(); cecalVxcalG->Divide(numCol,numRow);
|
crdt->Clear();crdt->Divide(2,2);
|
||||||
for (Int_t i=0;i<mapping::NARRAY;i++) {
|
|
||||||
cecalVxcalG->cd(i+1);
|
if( isLogz ) crdt->cd(1)->SetLogz(); crdt->cd(1); hrdt2D[0]->Draw("col");
|
||||||
heCalVxCalG[i]->SetMarkerStyle(7);
|
if( isLogz ) crdt->cd(2)->SetLogz(); crdt->cd(2); hrdt2D[1]->Draw("col");
|
||||||
heCalVxCalG[i]->Draw("");
|
if( isLogz ) crdt->cd(3)->SetLogz(); crdt->cd(3); hrdt2D[3]->Draw("col");
|
||||||
|
if( isLogz ) crdt->cd(4)->SetLogz(); crdt->cd(4); hrdt2D[2]->Draw("col");
|
||||||
|
|
||||||
|
TCanvas *crdtID = (TCanvas *) gROOT->FindObjectAny("crdtID");
|
||||||
|
if( crdtID == NULL ) crdtID = new TCanvas("crdtID",Form("raw RDT ID | %s", canvasTitle.Data()),0,0, 500, 500);
|
||||||
|
crdtID->Clear();
|
||||||
|
if( isLogz ) crdtID->SetLogz();
|
||||||
|
hrdtID->Draw("colz");
|
||||||
|
|
||||||
|
TCanvas *crdtS = (TCanvas *) gROOT->FindObjectAny("crdtS");
|
||||||
|
if( crdtS == NULL ) crdtS = new TCanvas("crdtS",Form("raw RDT | %s", canvasTitle.Data()),600, 0, 1000, 1000);
|
||||||
|
crdtS->Clear(); crdtS->Divide(2,4);
|
||||||
|
for( int i = 0; i < 8; i ++){
|
||||||
|
crdtS->cd(i+1);
|
||||||
|
if( isLogz ) crdtS->cd(i+1)->SetLogy();
|
||||||
|
hrdt[i]->Draw("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -264,65 +238,21 @@ void eCalVxCalG(void) {
|
||||||
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// void apollo(void) {
|
|
||||||
// TCanvas *capollo = (TCanvas *) gROOT->FindObjectAny("capollo");
|
// void ic(){
|
||||||
// if( capollo == NULL ) capollo = new TCanvas("capollo",Form("APOLLO | %s", canvasTitle.Data()),1000,1000);
|
// TCanvas *cic = (TCanvas *) gROOT->FindObjectAny("cic");
|
||||||
// capollo->Clear(); capollo->Divide(5,4);
|
// if( cic == NULL ) cic = new TCanvas("cic",Form("Ionization Chamber | %s", canvasTitle.Data() ),1200,800);
|
||||||
// for( int i = 0 ; i < 20 ; i++){
|
|
||||||
// capollo->cd(i+1);
|
// cic->Clear(); cic->SetGrid(0); cic->Divide(3,2);
|
||||||
// hApollo[i]->Draw("");
|
// gStyle->SetOptStat("neiou");
|
||||||
|
|
||||||
|
// cic->cd(1); hic0->Draw();
|
||||||
|
// cic->cd(2); hic1->Draw();
|
||||||
|
// cic->cd(3); hic2->Draw();
|
||||||
|
// cic->cd(4); hic01->Draw("colz");
|
||||||
|
// cic->cd(5); hic02->Draw("colz");
|
||||||
|
// cic->cd(6); hic12->Draw("colz");
|
||||||
// }
|
// }
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
void recoils(bool isLogz = false) {
|
|
||||||
TCanvas *crdt = (TCanvas *) gROOT->FindObjectAny("crdt");
|
|
||||||
if( crdt == NULL ) crdt = new TCanvas("crdt",Form("raw RDT | %s", canvasTitle.Data()),1700, 0, 1000,1000);
|
|
||||||
crdt->Clear();crdt->Divide(2,2);
|
|
||||||
|
|
||||||
if( isLogz ) crdt->cd(1)->SetLogz(); crdt->cd(1); hrdt2D[0]->Draw("col");
|
|
||||||
if( isLogz ) crdt->cd(2)->SetLogz(); crdt->cd(2); hrdt2D[1]->Draw("col");
|
|
||||||
if( isLogz ) crdt->cd(3)->SetLogz(); crdt->cd(3); hrdt2D[3]->Draw("col");
|
|
||||||
if( isLogz ) crdt->cd(4)->SetLogz(); crdt->cd(4); hrdt2D[2]->Draw("col");
|
|
||||||
|
|
||||||
|
|
||||||
//TCanvas *crdtSum = (TCanvas *) gROOT->FindObjectAny("crdtSum");
|
|
||||||
//if( crdtSum == NULL ) crdtSum = new TCanvas("crdtSum",Form("raw RDT dE-Esum | %s", canvasTitle.Data()),100, 0, 1000,1000);
|
|
||||||
//crdtSum->Clear();crdtSum->Divide(2,2);
|
|
||||||
//
|
|
||||||
//if( isLogz ) crdtSum->cd(1)->SetLogz(); crdtSum->cd(1); hrdt2Dsum[0]->Draw("col");
|
|
||||||
//if( isLogz ) crdtSum->cd(2)->SetLogz(); crdtSum->cd(2); hrdt2Dsum[1]->Draw("col");
|
|
||||||
//if( isLogz ) crdtSum->cd(3)->SetLogz(); crdtSum->cd(3); hrdt2Dsum[3]->Draw("col");
|
|
||||||
//if( isLogz ) crdtSum->cd(4)->SetLogz(); crdtSum->cd(4); hrdt2Dsum[2]->Draw("col");
|
|
||||||
|
|
||||||
TCanvas *crdtID = (TCanvas *) gROOT->FindObjectAny("crdtID");
|
|
||||||
if( crdtID == NULL ) crdtID = new TCanvas("crdtID",Form("raw RDT ID | %s", canvasTitle.Data()),0,0, 500, 500);
|
|
||||||
crdtID->Clear();
|
|
||||||
if( isLogz ) crdtID->SetLogz();
|
|
||||||
hrdtID->Draw("colz");
|
|
||||||
|
|
||||||
TCanvas *crdtS = (TCanvas *) gROOT->FindObjectAny("crdtS");
|
|
||||||
if( crdtS == NULL ) crdtS = new TCanvas("crdtS",Form("raw RDT | %s", canvasTitle.Data()),600, 0, 1000, 1000);
|
|
||||||
crdtS->Clear(); crdtS->Divide(2,4);
|
|
||||||
for( int i = 0; i < 8; i ++){
|
|
||||||
crdtS->cd(i+1);
|
|
||||||
if( isLogz ) crdtS->cd(i+1)->SetLogy();
|
|
||||||
hrdt[i]->Draw("");
|
|
||||||
}
|
|
||||||
|
|
||||||
//TCanvas *crdtTAC = (TCanvas *) gROOT->FindObjectAny("crdtTAC");
|
|
||||||
//if( crdtTAC == NULL ) crdtTAC = new TCanvas("crdtTAC",Form("raw RDTtac | %s", canvasTitle.Data()),0,0, 1600, 1600);
|
|
||||||
//crdtTAC->Clear(); crdtTAC->Divide(2,4);
|
|
||||||
//for( int i = 0; i < 8; i ++){
|
|
||||||
// crdtTAC->cd(i+1);
|
|
||||||
// htacRecoil[i]->Draw("colz");
|
|
||||||
//}
|
|
||||||
//for( int i = 0; i < 4; i ++){
|
|
||||||
// crdtTAC->cd(i+1+8);
|
|
||||||
// htacRecoilsum[i]->Draw("colz");
|
|
||||||
//}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void eCalVz(void) {
|
void eCalVz(void) {
|
||||||
TCanvas *cecalVz = (TCanvas *) gROOT->FindObjectAny("cecalVz");
|
TCanvas *cecalVz = (TCanvas *) gROOT->FindObjectAny("cecalVz");
|
||||||
|
@ -345,7 +275,6 @@ void eCalVzRow() {
|
||||||
cecalVzRow->cd(row+1)->SetGrid();
|
cecalVzRow->cd(row+1)->SetGrid();
|
||||||
hecalVzRow[row]->Draw("colz");
|
hecalVzRow[row]->Draw("colz");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void excite(void) {
|
void excite(void) {
|
||||||
|
@ -360,14 +289,12 @@ void excite(void) {
|
||||||
if( cexI == NULL ) cexI = new TCanvas("cexI",Form("EX : %s", canvasTitle.Data()),500, 0, 1600,1000);
|
if( cexI == NULL ) cexI = new TCanvas("cexI",Form("EX : %s", canvasTitle.Data()),500, 0, 1600,1000);
|
||||||
cexI->Clear();cexI->Divide(numCol,numRow);
|
cexI->Clear();cexI->Divide(numCol,numRow);
|
||||||
gStyle->SetOptStat("neiou");
|
gStyle->SetOptStat("neiou");
|
||||||
for( int i = 0; i < mapping::NARRAY; i++){
|
for( int i = 0; i < numDet; i++){
|
||||||
cexI->cd(i+1);
|
cexI->cd(i+1);
|
||||||
hExi[i]->Draw("");
|
hExi[i]->Draw("");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ExThetaCM(void) {
|
void ExThetaCM(void) {
|
||||||
TCanvas *cExThetaCM = (TCanvas *) gROOT->FindObjectAny("cExThetaCM");
|
TCanvas *cExThetaCM = (TCanvas *) gROOT->FindObjectAny("cExThetaCM");
|
||||||
if( cExThetaCM == NULL ) cExThetaCM = new TCanvas("cExThetaCM",Form("EX - ThetaCM | %s", canvasTitle.Data()),650,650);
|
if( cExThetaCM == NULL ) cExThetaCM = new TCanvas("cExThetaCM",Form("EX - ThetaCM | %s", canvasTitle.Data()),650,650);
|
||||||
|
@ -383,99 +310,50 @@ void ExVxCal(TString drawOpt = "") {
|
||||||
gStyle->SetOptStat("neiou");
|
gStyle->SetOptStat("neiou");
|
||||||
|
|
||||||
cExVxCal->Divide(numCol,numRow);
|
cExVxCal->Divide(numCol,numRow);
|
||||||
for( int i = 0; i < mapping::NARRAY; i++){
|
for( int i = 0; i < numDet; i++){
|
||||||
cExVxCal->cd(i+1);
|
cExVxCal->cd(i+1);
|
||||||
if( drawOpt == "" )hExVxCal[i]->SetMarkerStyle(7);
|
if( drawOpt == "" )hExVxCal[i]->SetMarkerStyle(7);
|
||||||
hExVxCal[i]->Draw(drawOpt);
|
hExVxCal[i]->Draw(drawOpt);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Count1DH(TString name, TH1F * hist, TCanvas * canvas, int padID, double x1, double x2, Color_t color){
|
||||||
|
|
||||||
|
int k1 = hist->FindBin(x1);
|
||||||
|
int k2 = hist->FindBin(x2);
|
||||||
|
|
||||||
|
int hight = 0 ;
|
||||||
|
for( int i = k1; i < k2 ; i ++){
|
||||||
|
int temp = hist->GetBinContent(i);
|
||||||
|
if( temp > hight ) hight = temp;
|
||||||
|
}
|
||||||
|
hight = hight * 1.2;
|
||||||
|
int max = hist->GetMaximum();
|
||||||
|
|
||||||
|
canvas->cd(padID);
|
||||||
|
|
||||||
|
if( color != 0 ){
|
||||||
|
TBox box;
|
||||||
|
box.SetFillColorAlpha(color, 0.1);
|
||||||
|
box.DrawBox(x1, 0, x2, hight);
|
||||||
|
}
|
||||||
|
|
||||||
|
int count = hist->Integral(k1, k2);
|
||||||
|
|
||||||
|
TLatex text;
|
||||||
|
text.SetTextFont(82);
|
||||||
|
text.SetTextSize(0.06);
|
||||||
|
if( color != 0 ){
|
||||||
|
text.SetTextColor(color);
|
||||||
|
text.DrawLatex(x1, hight, Form("%d", count));
|
||||||
|
}else{
|
||||||
|
text.DrawLatex((x1+x2)/2., max, Form("%d", count));
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(" %s : %d \n", name.Data(), count);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//void eSVeRaw(void) {
|
|
||||||
// TCanvas *ceSVeRaw = (TCanvas *) gROOT->FindObjectAny("ceSVeRaw");
|
|
||||||
// if( ceSVeRaw == NULL ) ceSVeRaw = new TCanvas("ceSVeRaw",Form("e(Ex,z) vs eRaw | %s", canvasTitle.Data()),1000,650);
|
|
||||||
// ceSVeRaw->Clear();
|
|
||||||
// gStyle->SetOptStat("neiou");
|
|
||||||
//
|
|
||||||
// ceSVeRaw->Divide(numCol,numRow);
|
|
||||||
// for( int i = 0; i < mapping::NARRAY; i++){
|
|
||||||
// ceSVeRaw->cd(i+1);
|
|
||||||
// heSVeRaw[i]->SetMarkerStyle(7);
|
|
||||||
// heSVeRaw[i]->Draw("");
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
|
|
||||||
// void tac(void) {
|
|
||||||
// TCanvas *ctac = (TCanvas *) gROOT->FindObjectAny("ctac");
|
|
||||||
// if( ctac == NULL ) ctac = new TCanvas("ctac",Form("ARRAY-RDT | %s", canvasTitle.Data() ),1000,650);
|
|
||||||
// ctac->Clear();ctac->SetGrid(0);ctac->Divide(numCol,numRow);
|
|
||||||
// gStyle->SetOptStat("neiou");
|
|
||||||
// for (Int_t i=0;i<mapping::NARRAY;i++) {
|
|
||||||
// ctac->cd(i+1); htacArray[i]->Draw("");
|
|
||||||
// // cutG = (TCutG *)cutList->At(i);
|
|
||||||
// // cutG->Draw("same");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// void ic(){
|
|
||||||
|
|
||||||
// TCanvas *cic = (TCanvas *) gROOT->FindObjectAny("cic");
|
|
||||||
// if( cic == NULL ) cic = new TCanvas("cic",Form("Ionization Chamber | %s", canvasTitle.Data() ),1200,800);
|
|
||||||
|
|
||||||
// cic->Clear(); cic->SetGrid(0); cic->Divide(3,2);
|
|
||||||
// gStyle->SetOptStat("neiou");
|
|
||||||
|
|
||||||
// cic->cd(1); hic0->Draw();
|
|
||||||
// cic->cd(2); hic1->Draw();
|
|
||||||
// cic->cd(3); hic2->Draw();
|
|
||||||
// cic->cd(4); hic01->Draw("colz");
|
|
||||||
// cic->cd(5); hic02->Draw("colz");
|
|
||||||
// cic->cd(6); hic12->Draw("colz");
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// void Count1DH(TString name, TH1F * hist, TCanvas * canvas, int padID, double x1, double x2, Color_t color){
|
|
||||||
|
|
||||||
// int k1 = hist->FindBin(x1);
|
|
||||||
// int k2 = hist->FindBin(x2);
|
|
||||||
|
|
||||||
// int hight = 0 ;
|
|
||||||
// for( int i = k1; i < k2 ; i ++){
|
|
||||||
// int temp = hist->GetBinContent(i);
|
|
||||||
// if( temp > hight ) hight = temp;
|
|
||||||
// }
|
|
||||||
// hight = hight * 1.2;
|
|
||||||
// int max = hist->GetMaximum();
|
|
||||||
|
|
||||||
// canvas->cd(padID);
|
|
||||||
|
|
||||||
// if( color != 0 ){
|
|
||||||
// TBox box;
|
|
||||||
// box.SetFillColorAlpha(color, 0.1);
|
|
||||||
// box.DrawBox(x1, 0, x2, hight);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// int count = hist->Integral(k1, k2);
|
|
||||||
|
|
||||||
// TLatex text;
|
|
||||||
// text.SetTextFont(82);
|
|
||||||
// text.SetTextSize(0.06);
|
|
||||||
// if( color != 0 ){
|
|
||||||
// text.SetTextColor(color);
|
|
||||||
// text.DrawLatex(x1, hight, Form("%d", count));
|
|
||||||
// }else{
|
|
||||||
// text.DrawLatex((x1+x2)/2., max, Form("%d", count));
|
|
||||||
// }
|
|
||||||
|
|
||||||
// printf(" %s : %d \n", name.Data(), count);
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -21,6 +21,13 @@ USR=solaris
|
||||||
if [ ${RUN} == "all" ]; then
|
if [ ${RUN} == "all" ]; then
|
||||||
|
|
||||||
if [ ${PCID} -eq 2 ]; then
|
if [ ${PCID} -eq 2 ]; then
|
||||||
|
|
||||||
|
#=========== Ping to check the connectivity
|
||||||
|
echo "Checking $IP connetivity, max wait for 3 sec...."
|
||||||
|
ping -c 3 -W 3 $IP #> /dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -e "$RED !!!!!!! $IP is not alive $NC"
|
||||||
|
else
|
||||||
#============ Get the raw data
|
#============ Get the raw data
|
||||||
rsync -avuht --progress $USR@$IP:$rawDataPath/$expName_* $MacRawDataPath/data/.
|
rsync -avuht --progress $USR@$IP:$rawDataPath/$expName_* $MacRawDataPath/data/.
|
||||||
|
|
||||||
|
@ -29,13 +36,14 @@ if [ ${RUN} == "all" ]; then
|
||||||
|
|
||||||
echo -e "$YELLOW======== rsync expName.sh $NC"
|
echo -e "$YELLOW======== rsync expName.sh $NC"
|
||||||
rsync -avuht --progress $USR@$IP:Analysis/working/expName.sh $SOLARISANADIR/working/.
|
rsync -avuht --progress $USR@$IP:Analysis/working/expName.sh $SOLARISANADIR/working/.
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "$RED############### Only in SOLARIS MAC can donwload data. skip.$NC"
|
||||||
|
fi
|
||||||
|
|
||||||
echo -e "$YELLOW=============================================$NC"
|
echo -e "$YELLOW=============================================$NC"
|
||||||
tail -10 $MacRawDataPath/data/RunTimeStamp.dat
|
tail -10 $MacRawDataPath/data/RunTimeStamp.dat
|
||||||
echo -e "$YELLOW=============================================$NC"
|
echo -e "$YELLOW=============================================$NC"
|
||||||
else
|
|
||||||
echo -e "$RED############### Only in SOLARIS MAC can donwload data. skip.$NC"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -50,12 +58,17 @@ else
|
||||||
fi
|
fi
|
||||||
RUN=$(printf '%03d' ${RUN})
|
RUN=$(printf '%03d' ${RUN})
|
||||||
|
|
||||||
echo $RUN
|
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
#################### Download raw data
|
#################### Download raw data
|
||||||
echo -e "${RED}######################### Download raw data: run ${RUN}${NC}"
|
echo -e "${RED}######################### Download raw data: run ${RUN}${NC}"
|
||||||
if [ ${PCID} -eq 2 ]; then
|
if [ ${PCID} -eq 2 ]; then
|
||||||
|
|
||||||
|
#=========== Ping to check the connectivity
|
||||||
|
echo "Checking $IP connetivity, max wait for 3 sec...."
|
||||||
|
ping -c 3 $IP -W 3 #> /dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -e "$RED !!!!!!! $IP is not alive $NC"
|
||||||
|
else
|
||||||
#============ Get the raw data
|
#============ Get the raw data
|
||||||
echo -e "================= RUN $RUN: Get the raw data `date`"
|
echo -e "================= RUN $RUN: Get the raw data `date`"
|
||||||
|
|
||||||
|
@ -66,15 +79,15 @@ if [ ${PCID} -eq 2 ]; then
|
||||||
|
|
||||||
echo -e "$YELLOW======== rsync expName.sh $NC"
|
echo -e "$YELLOW======== rsync expName.sh $NC"
|
||||||
rsync -avuht --progress $USR@$IP:Analysis/working/expName.sh $SOLARISANADIR/working/.
|
rsync -avuht --progress $USR@$IP:Analysis/working/expName.sh $SOLARISANADIR/working/.
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "$RED############### Only in SOLARIS MAC can donwload data. skip.$NC"
|
||||||
|
fi
|
||||||
|
|
||||||
echo -e "$YELLOW=============================================$NC"
|
echo -e "$YELLOW=============================================$NC"
|
||||||
tail -10 $MacRawDataPath/data/RunTimeStamp.dat
|
tail -10 $MacRawDataPath/data/RunTimeStamp.dat
|
||||||
echo -e "$YELLOW=============================================$NC"
|
echo -e "$YELLOW=============================================$NC"
|
||||||
|
|
||||||
else
|
|
||||||
echo -e "$RED############### Only in SOLARIS MAC can donwload data. skip.$NC"
|
|
||||||
fi
|
|
||||||
|
|
||||||
count=`ls -1 $SOLARISANADIR/data_raw/${expName}_${RUN}_*.sol 2>/dev/null | wc -l`
|
count=`ls -1 $SOLARISANADIR/data_raw/${expName}_${RUN}_*.sol 2>/dev/null | wc -l`
|
||||||
echo -e "========== Number of Files : ${count}${NC}"
|
echo -e "========== Number of Files : ${count}${NC}"
|
||||||
if [ ${count} -eq 0 ]; then
|
if [ ${count} -eq 0 ]; then
|
||||||
|
@ -82,9 +95,11 @@ if [ ${count} -eq 0 ]; then
|
||||||
echo "==== RAW Files of RUN-${RUN} not found! "
|
echo "==== RAW Files of RUN-${RUN} not found! "
|
||||||
echo "============================================"
|
echo "============================================"
|
||||||
|
|
||||||
|
isRunDataExist=false
|
||||||
|
exit 1
|
||||||
else
|
else
|
||||||
echo -e "${YELLOW}"
|
echo -e "${YELLOW}"
|
||||||
du -hc $SOLARISANADIR/data_raw/${expName}_${RUN}_*.sol
|
du -hc $SOLARISANADIR/data_raw/${expName}_${RUN}_*.sol
|
||||||
echo -e "$NC============================================="
|
echo -e "$NC============================================="
|
||||||
|
isRunDataExist=true
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -11,13 +11,12 @@ fi
|
||||||
|
|
||||||
|
|
||||||
if [ $# -eq 0 ] || [ $1 == "-help" ]; then
|
if [ $# -eq 0 ] || [ $1 == "-help" ]; then
|
||||||
echo "$ Process_Run [RunNum] [EventBuild] [GeneralSort] [TraceMethod] [DataHoSei]"
|
echo "$ Process_Run [RunNum] [EventBuild] [GeneralSort] [TraceMethod] [Monitor]"
|
||||||
echo " RunNum = run number / \"lastRun\" "
|
echo " RunNum = run number / \"lastRun\" "
|
||||||
echo " EventBld = 2/1/0/-1/-2 || 2 = with Trace"
|
echo " EventBld = 2/1/0/-1/-2 || 2 = with Trace"
|
||||||
echo " GeneralSort = n/0/-n || n = number of worker"
|
echo " GeneralSort = n/0/-n || n = number of worker"
|
||||||
echo " TraceMethod = -1/0/1/2 || -1 no trace, 0 save trace, 1 fit, 2 trapezoid(not implemented)"
|
echo " TraceMethod = -1/0/1/2 || -1 no trace, 0 save trace, 1 fit, 2 trapezoid(not implemented)"
|
||||||
echo " DataHoSei = 2/1/0 || 1 = single run, 2 = using the list in ChainMonitors.C"
|
echo " Monitor = 2/1/0 || 1 = single run, 2 = using the list in ChainMonitors.C"
|
||||||
echo " 10 = single run and post to websrv, 20 = list runs and post to websrv"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo " * negative option = force (except for TraceMethod)."
|
echo " * negative option = force (except for TraceMethod)."
|
||||||
echo " * Defult timeWindow for Event builder is 100 tick = 800 ns."
|
echo " * Defult timeWindow for Event builder is 100 tick = 800 ns."
|
||||||
|
@ -28,9 +27,9 @@ fi;
|
||||||
|
|
||||||
RUN=$1
|
RUN=$1
|
||||||
runNum=$1
|
runNum=$1
|
||||||
EventBld=0
|
EventBld=2
|
||||||
nWorker=1
|
nWorker=1
|
||||||
TraceMethod=0
|
TraceMethod=-1
|
||||||
isMonitor=0
|
isMonitor=0
|
||||||
|
|
||||||
if [ $# -ge 2 ]; then EventBld=$2; fi
|
if [ $# -ge 2 ]; then EventBld=$2; fi
|
||||||
|
@ -38,9 +37,6 @@ if [ $# -ge 3 ]; then nWorker=$3; fi
|
||||||
if [ $# -ge 4 ]; then TraceMethod=$4; fi
|
if [ $# -ge 4 ]; then TraceMethod=$4; fi
|
||||||
if [ $# -ge 5 ]; then isMonitor=$5; fi
|
if [ $# -ge 5 ]; then isMonitor=$5; fi
|
||||||
|
|
||||||
source ${SOLARISANADIR}/armory/Process_BasicConfig
|
|
||||||
source ${SOLARISANADIR}/working/expName.sh
|
|
||||||
|
|
||||||
if [ "$RUN" == "lastRun" ]; then
|
if [ "$RUN" == "lastRun" ]; then
|
||||||
RUN=$runID
|
RUN=$runID
|
||||||
fi
|
fi
|
||||||
|
@ -48,21 +44,41 @@ fi
|
||||||
RUN=${RUN%0} #remove zero
|
RUN=${RUN%0} #remove zero
|
||||||
RUN=$(printf '%03d' $RUN) ##add back the zero
|
RUN=$(printf '%03d' $RUN) ##add back the zero
|
||||||
|
|
||||||
####################################
|
################################### Setting display
|
||||||
if [ ${PCID} -eq 1 ]; then
|
echo "#################################################"
|
||||||
source Process_EventBuilder $RUN $EventBld $timeWin
|
echo "### Process_Run #####"
|
||||||
|
echo "#################################################"
|
||||||
|
echo "### RunID : ${RUN}"
|
||||||
|
echo "### Event Builder : $EventBld"
|
||||||
|
echo "### General Sort : $nWorker worker(s)"
|
||||||
|
echo "### Trace Method : $TraceMethod"
|
||||||
|
echo "### Monitor : $isMonitor"
|
||||||
|
echo "#################################################"
|
||||||
|
|
||||||
else
|
source ${SOLARISANADIR}/armory/Process_BasicConfig
|
||||||
|
source ${SOLARISANADIR}/working/expName.sh
|
||||||
|
|
||||||
|
if [ "$PWD" != "${SOLARISANADIR}/working" ]; then
|
||||||
|
echo "============= go to the Working directory"
|
||||||
|
cd "${SOLARISANADIR}/working"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#################################### CHECK IS RUN DATA EXIST
|
||||||
|
isRunDataExist=true
|
||||||
|
|
||||||
|
#################################### EVENT BUILDER
|
||||||
source Process_Download $RUN
|
source Process_Download $RUN
|
||||||
|
|
||||||
|
if [ $isRunDataExist ]; then
|
||||||
source Process_EventBuilder $RUN $EventBld $timeWin
|
source Process_EventBuilder $RUN $EventBld $timeWin
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#################################### GeneralSort
|
#################################### GeneralSort
|
||||||
|
|
||||||
|
if [ $isRunDataExist ]; then
|
||||||
source Process_Sort $RUN $nWorker $TraceMethod
|
source Process_Sort $RUN $nWorker $TraceMethod
|
||||||
|
fi
|
||||||
#################################### Monitor
|
#################################### Monitor
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,45 +2,19 @@
|
||||||
#include "TObjArray.h"
|
#include "TObjArray.h"
|
||||||
#include "TFile.h"
|
#include "TFile.h"
|
||||||
#include "TMacro.h"
|
#include "TMacro.h"
|
||||||
|
std::string create_range_string(const std::vector<int>& nums);
|
||||||
|
|
||||||
std::string create_range_string(const std::vector<int>& nums) {
|
|
||||||
char range_str[100]; // buffer to hold the range string
|
|
||||||
int pos = 0; // current position in the buffer
|
|
||||||
int start = 0; // start of the current range
|
|
||||||
int end = 0; // end of the current range
|
|
||||||
for (int i = 1; i <= nums.size(); i++) {
|
|
||||||
if (i == nums.size() || nums[i] != nums[i-1]+1) {
|
|
||||||
end = i-1;
|
|
||||||
if (start == end) {
|
|
||||||
pos += std::sprintf(range_str+pos, "%d", nums[start]);
|
|
||||||
} else if (end == start+1) {
|
|
||||||
pos += std::sprintf(range_str+pos, "%d_%d", nums[start], nums[end]);
|
|
||||||
} else {
|
|
||||||
pos += std::sprintf(range_str+pos, "%d-%d", nums[start], nums[end]);
|
|
||||||
}
|
|
||||||
if (i < nums.size()) {
|
|
||||||
pos += std::sprintf(range_str+pos, "_");
|
|
||||||
}
|
|
||||||
start = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return std::string(range_str, pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChainMonitors(int RUNNUM = -1, int RUNNUM2 = -1) {
|
void ChainMonitors(int RUNNUM = -1, int RUNNUM2 = -1) {
|
||||||
|
|
||||||
|
|
||||||
///default saveCanvas = false, no save Cavas
|
///default saveCanvas = false, no save Cavas
|
||||||
/// = true, save Canvas
|
/// = true, save Canvas
|
||||||
|
|
||||||
TChain * chain = new TChain("gen_tree");
|
TChain * chain = new TChain("gen_tree");
|
||||||
|
|
||||||
if( RUNNUM == -1){
|
if( RUNNUM == -1){
|
||||||
/// this list only for manual Chain sort
|
/// this list only for manual Chain sort
|
||||||
///********** start Marker for AutoCalibration.
|
///********** start Marker for AutoCalibration.
|
||||||
|
|
||||||
chain->Add("../root_data/gen_run005.root");
|
chain->Add("../root_data/gen_run005.root");
|
||||||
|
chain->Add("../root_data/gen_run003.root");
|
||||||
///chain->Add("../root_data/trace_run135.root");
|
///chain->Add("../root_data/trace_run135.root");
|
||||||
|
|
||||||
///********** end Marker for AutoCalibration.
|
///********** end Marker for AutoCalibration.
|
||||||
|
@ -101,6 +75,36 @@ void ChainMonitors(int RUNNUM = -1, int RUNNUM2 = -1) {
|
||||||
//Some input to TSelector
|
//Some input to TSelector
|
||||||
Monitor * selector = new Monitor();
|
Monitor * selector = new Monitor();
|
||||||
selector->SetCanvasTitle(title);
|
selector->SetCanvasTitle(title);
|
||||||
|
selector->SetStartStopTimes(startTime, stopTime);
|
||||||
chain->Process(selector, "");
|
chain->Process(selector, "");
|
||||||
|
|
||||||
|
delete chain;
|
||||||
|
delete selector;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::string create_range_string(const std::vector<int>& nums) {
|
||||||
|
std::string range_str;
|
||||||
|
int lastNum = nums[0];
|
||||||
|
int rangeStart = lastNum;
|
||||||
|
for (int i = 1; i < nums.size(); i++) {
|
||||||
|
if (nums[i] == lastNum + 1) {
|
||||||
|
lastNum = nums[i];
|
||||||
|
} else {
|
||||||
|
if (rangeStart == lastNum) {
|
||||||
|
range_str += std::to_string(rangeStart) + "_";
|
||||||
|
} else {
|
||||||
|
range_str += std::to_string(rangeStart) + "-" + std::to_string(lastNum) + "_";
|
||||||
|
}
|
||||||
|
rangeStart = lastNum = nums[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Add the last range
|
||||||
|
if (rangeStart == lastNum) {
|
||||||
|
range_str += std::to_string(rangeStart);
|
||||||
|
} else {
|
||||||
|
range_str += std::to_string(rangeStart) + "-" + std::to_string(lastNum);
|
||||||
|
}
|
||||||
|
return range_str;
|
||||||
}
|
}
|
|
@ -24,6 +24,9 @@
|
||||||
#include "../Cleopatra/Isotope.h"
|
#include "../Cleopatra/Isotope.h"
|
||||||
#include "Mapping.h"
|
#include "Mapping.h"
|
||||||
|
|
||||||
|
#define tick2ns 8. // 1clock tick = 8 ns
|
||||||
|
#define tick2min tick2ns / 1e9/60.
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
//############################################ User setting
|
//############################################ User setting
|
||||||
|
@ -119,7 +122,6 @@ TH1F ** hrdtg;
|
||||||
|
|
||||||
TH2F ** hrdt2D;
|
TH2F ** hrdt2D;
|
||||||
TH2F ** hrdt2Dg;
|
TH2F ** hrdt2Dg;
|
||||||
TH2F ** hrdt2Dsum;
|
|
||||||
|
|
||||||
TH1F * hrdtRate1;
|
TH1F * hrdtRate1;
|
||||||
TH1F * hrdtRate2;
|
TH1F * hrdtRate2;
|
||||||
|
@ -139,7 +141,7 @@ TH1I * htdiffg;
|
||||||
double zRange[2] = {-1000, 0}; // zMin, zMax
|
double zRange[2] = {-1000, 0}; // zMin, zMax
|
||||||
TLatex text;
|
TLatex text;
|
||||||
|
|
||||||
int numCol, numRow;
|
int numCol, numRow, numDet;
|
||||||
ULong64_t NumEntries = 0;
|
ULong64_t NumEntries = 0;
|
||||||
ULong64_t ProcessedEntries = 0;
|
ULong64_t ProcessedEntries = 0;
|
||||||
Float_t Frac = 0.1; ///Progress bar
|
Float_t Frac = 0.1; ///Progress bar
|
||||||
|
@ -175,8 +177,6 @@ void Monitor::Begin(TTree *tree){
|
||||||
printf("###########################################################\n");
|
printf("###########################################################\n");
|
||||||
|
|
||||||
//===================================================== loading parameter
|
//===================================================== loading parameter
|
||||||
printf("################## loading parameter files\n");
|
|
||||||
|
|
||||||
AnalysisLib::LoadDetGeoAndReactionConfigFile();
|
AnalysisLib::LoadDetGeoAndReactionConfigFile();
|
||||||
AnalysisLib::LoadXNCorr();
|
AnalysisLib::LoadXNCorr();
|
||||||
AnalysisLib::LoadXFXN2ECorr();
|
AnalysisLib::LoadXFXN2ECorr();
|
||||||
|
@ -193,6 +193,15 @@ void Monitor::Begin(TTree *tree){
|
||||||
|
|
||||||
numRow = AnalysisLib::detGeo.nDet;
|
numRow = AnalysisLib::detGeo.nDet;
|
||||||
numCol = mapping::NARRAY/numRow;
|
numCol = mapping::NARRAY/numRow;
|
||||||
|
numDet = mapping::NARRAY;
|
||||||
|
|
||||||
|
zRange[0] = AnalysisLib::detGeo.zMax - 50;
|
||||||
|
zRange[1] = AnalysisLib::detGeo.zMax + 50;
|
||||||
|
|
||||||
|
printf("=====================================================\n");
|
||||||
|
printf(" z Range : %5.0f - %5.0f mm\n", zRange[0], zRange[1]);
|
||||||
|
printf(" time Range : %5.0f - %5.0f min\n", timeRangeInMin[0], timeRangeInMin[1]);
|
||||||
|
printf("=====================================================\n");
|
||||||
|
|
||||||
//================ Get Recoil cuts;
|
//================ Get Recoil cuts;
|
||||||
cutG = new TCutG();
|
cutG = new TCutG();
|
||||||
|
@ -205,7 +214,7 @@ void Monitor::Begin(TTree *tree){
|
||||||
|
|
||||||
|
|
||||||
//========================= Generate all of the histograms needed for drawing later on
|
//========================= Generate all of the histograms needed for drawing later on
|
||||||
printf("======================================== Histograms declaration\n");
|
printf("============================================ Histograms declaration\n");
|
||||||
|
|
||||||
gROOT->cd();
|
gROOT->cd();
|
||||||
|
|
||||||
|
@ -263,7 +272,6 @@ void Monitor::Begin(TTree *tree){
|
||||||
|
|
||||||
hrdt2D = new TH2F * [mapping::NRDT/2];
|
hrdt2D = new TH2F * [mapping::NRDT/2];
|
||||||
hrdt2Dg = new TH2F * [mapping::NRDT/2];
|
hrdt2Dg = new TH2F * [mapping::NRDT/2];
|
||||||
hrdt2Dsum = new TH2F * [mapping::NRDT/2];
|
|
||||||
|
|
||||||
for (Int_t i = 0; i < mapping::NRDT ; i++) {
|
for (Int_t i = 0; i < mapping::NRDT ; i++) {
|
||||||
if( i % 2 == 0 ) hrdt[i] = new TH1F(Form("hrdt%d",i), Form("Raw Recoil E(ch=%d); E (channel)",i), 500, rdtERange[0], rdtERange[1]);
|
if( i % 2 == 0 ) hrdt[i] = new TH1F(Form("hrdt%d",i), Form("Raw Recoil E(ch=%d); E (channel)",i), 500, rdtERange[0], rdtERange[1]);
|
||||||
|
@ -276,12 +284,11 @@ void Monitor::Begin(TTree *tree){
|
||||||
int tempID = i / 2;
|
int tempID = i / 2;
|
||||||
hrdt2D[tempID] = new TH2F(Form("hrdt2D%d",tempID), Form("Raw Recoil DE vs Eres (dE=%d, E=%d); Eres (channel); DE (channel)", i+1, i), 500, rdtERange[0], rdtERange[1],500,rdtDERange[0],rdtDERange[1]);
|
hrdt2D[tempID] = new TH2F(Form("hrdt2D%d",tempID), Form("Raw Recoil DE vs Eres (dE=%d, E=%d); Eres (channel); DE (channel)", i+1, i), 500, rdtERange[0], rdtERange[1],500,rdtDERange[0],rdtDERange[1]);
|
||||||
hrdt2Dg[tempID] = new TH2F(Form("hrdt2Dg%d",tempID), Form("Gated Raw Recoil DE vs Eres (dE=%d, E=%d); Eres (channel); DE (channel)",i+1, i), 500, rdtERange[0], rdtERange[1],500,rdtDERange[0], rdtDERange[1]);
|
hrdt2Dg[tempID] = new TH2F(Form("hrdt2Dg%d",tempID), Form("Gated Raw Recoil DE vs Eres (dE=%d, E=%d); Eres (channel); DE (channel)",i+1, i), 500, rdtERange[0], rdtERange[1],500,rdtDERange[0], rdtDERange[1]);
|
||||||
hrdt2Dsum[tempID] = new TH2F(Form("hrdt2Dsum%d",tempID), Form("Raw Recoil DE vs Eres+DE (dE=%d, E=%d); Eres+DE (channel); DE (channel)", i+1, i), 500, rdtERange[0], rdtERange[1]+rdtDERange[1], 500, rdtDERange[0], rdtDERange[1]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
hrdtRate1 = new TH1F("hrdtRate1", "recoil rate 1 / min; min; count / 1 min", timeRange[1] - timeRange[0], timeRange[0], timeRange[1]);
|
hrdtRate1 = new TH1F("hrdtRate1", "recoil rate 1 / min; min; count / 1 min", timeRangeInMin[1] - timeRangeInMin[0], timeRangeInMin[0], timeRangeInMin[1]);
|
||||||
hrdtRate2 = new TH1F("hrdtRate2", "recoil rate 2 / min; min; count / 1 min", timeRange[1] - timeRange[0], timeRange[0], timeRange[1]);
|
hrdtRate2 = new TH1F("hrdtRate2", "recoil rate 2 / min; min; count / 1 min", timeRangeInMin[1] - timeRangeInMin[0], timeRangeInMin[0], timeRangeInMin[1]);
|
||||||
hrdtRate1->SetLineColor(2);
|
hrdtRate1->SetLineColor(2);
|
||||||
hrdtRate2->SetLineColor(4);
|
hrdtRate2->SetLineColor(4);
|
||||||
|
|
||||||
|
@ -295,7 +302,7 @@ void Monitor::Begin(TTree *tree){
|
||||||
htdiff = new TH1I("htdiff" ,"Coincident time (recoil-dE - array); time [ch = 10ns]; count", coinTimeRange[1] - coinTimeRange[0], coinTimeRange[0], coinTimeRange[1]);
|
htdiff = new TH1I("htdiff" ,"Coincident time (recoil-dE - array); time [ch = 10ns]; count", coinTimeRange[1] - coinTimeRange[0], coinTimeRange[0], coinTimeRange[1]);
|
||||||
htdiffg = new TH1I("htdiffg","Coincident time (recoil-dE - array) w/ recoil gated; time [ch = 10ns]; count", coinTimeRange[1] - coinTimeRange[0], coinTimeRange[0], coinTimeRange[1]);
|
htdiffg = new TH1I("htdiffg","Coincident time (recoil-dE - array) w/ recoil gated; time [ch = 10ns]; count", coinTimeRange[1] - coinTimeRange[0], coinTimeRange[0], coinTimeRange[1]);
|
||||||
|
|
||||||
printf("======================================== End of histograms Declaration\n");
|
printf("============================================ End of histograms Declaration\n");
|
||||||
StpWatch.Start();
|
StpWatch.Start();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -305,13 +312,17 @@ void Monitor::Begin(TTree *tree){
|
||||||
//^###########################################################
|
//^###########################################################
|
||||||
Bool_t Monitor::Process(Long64_t entry){
|
Bool_t Monitor::Process(Long64_t entry){
|
||||||
|
|
||||||
if( entry == 0 ) printf("========== %s \n", __func__);
|
if( entry == 0 ) {
|
||||||
|
treeID ++;
|
||||||
|
baseTimeStamp = (treeID == 0 ? 0 : endTime[treeID-1]);
|
||||||
|
printf("============================================ %s , treeID : %d\n", __func__, treeID);
|
||||||
|
}
|
||||||
|
|
||||||
if( ProcessedEntries > maxNumberEvent ) return kTRUE;
|
if( ProcessedEntries > maxNumberEvent ) return kTRUE;
|
||||||
ProcessedEntries++;
|
ProcessedEntries++;
|
||||||
|
|
||||||
//@*********** Progress Bar ******************************************/
|
//@*********** Progress Bar ******************************************/
|
||||||
if (ProcessedEntries>NumEntries*Frac-1) {
|
if (ProcessedEntries >= NumEntries*Frac - 1 ) {
|
||||||
TString msg; msg.Form("%llu", NumEntries/1000);
|
TString msg; msg.Form("%llu", NumEntries/1000);
|
||||||
int len = msg.Sizeof();
|
int len = msg.Sizeof();
|
||||||
printf(" %3.0f%% (%*llu/%llu k) processed in %6.1f sec | expect %6.1f sec\n",
|
printf(" %3.0f%% (%*llu/%llu k) processed in %6.1f sec | expect %6.1f sec\n",
|
||||||
|
@ -534,12 +545,13 @@ Bool_t Monitor::Process(Long64_t entry){
|
||||||
hrdt[i]->Fill(rdt[i]);
|
hrdt[i]->Fill(rdt[i]);
|
||||||
|
|
||||||
if( i % 2 == 0 ){
|
if( i % 2 == 0 ){
|
||||||
|
|
||||||
recoilMulti++; // when both dE and E are hit
|
recoilMulti++; // when both dE and E are hit
|
||||||
hrdt2D[i/2]->Fill(rdt[i],rdt[i+1]); //E-dE
|
hrdt2D[i/2]->Fill(rdt[i],rdt[i+1]); //E-dE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hrdtRate1->Fill( (e_t[1] + baseTimeStamp) * tick2min );
|
||||||
|
|
||||||
//@******************* Multi-hit *************************************/
|
//@******************* Multi-hit *************************************/
|
||||||
hmultEZ->Fill(multiEZ);
|
hmultEZ->Fill(multiEZ);
|
||||||
hmult->Fill(recoilMulti,arrayMulti);
|
hmult->Fill(recoilMulti,arrayMulti);
|
||||||
|
@ -597,7 +609,7 @@ Bool_t Monitor::Process(Long64_t entry){
|
||||||
//^ * Terminate
|
//^ * Terminate
|
||||||
//^###########################################################
|
//^###########################################################
|
||||||
void Monitor::Terminate(){
|
void Monitor::Terminate(){
|
||||||
printf("============================== finishing.\n");
|
printf("============================================ Drawing Canvas.\n");
|
||||||
|
|
||||||
gROOT->cd();
|
gROOT->cd();
|
||||||
|
|
||||||
|
@ -700,7 +712,7 @@ void Monitor::Terminate(){
|
||||||
///----------------------------------- Canvas - 10
|
///----------------------------------- Canvas - 10
|
||||||
//PlotRDT(3,0);
|
//PlotRDT(3,0);
|
||||||
|
|
||||||
//TH1F * helumDBIC = new TH1F("helumDBIC", "elum(d)/BIC; time [min]; count/min", timeRange[1]-timeRange[0], timeRange[0], timeRange[1]);
|
//TH1F * helumDBIC = new TH1F("helumDBIC", "elum(d)/BIC; time [min]; count/min", timeRangeInMin[1]-timeRangeInMin[0], timeRangeInMin[0], timeRangeInMin[1]);
|
||||||
//helumDBIC = (TH1F*) helum4D->Clone();
|
//helumDBIC = (TH1F*) helum4D->Clone();
|
||||||
//helumDBIC->SetTitle("elum(d)/BIC; time [min]; count/min");
|
//helumDBIC->SetTitle("elum(d)/BIC; time [min]; count/min");
|
||||||
//helumDBIC->SetName("helumDBIC");
|
//helumDBIC->SetName("helumDBIC");
|
||||||
|
@ -726,10 +738,8 @@ void Monitor::Terminate(){
|
||||||
//padID++; cCanvas->cd(padID);
|
//padID++; cCanvas->cd(padID);
|
||||||
//htac->Draw();
|
//htac->Draw();
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
///----------------------------------- Canvas - 13
|
///----------------------------------- Canvas - 13
|
||||||
padID++; cCanvas->cd(padID);
|
//padID++; cCanvas->cd(padID);
|
||||||
|
|
||||||
///hicT14N->Draw("");
|
///hicT14N->Draw("");
|
||||||
///hicT14C->Draw("same");
|
///hicT14C->Draw("same");
|
||||||
|
@ -741,35 +751,27 @@ void Monitor::Terminate(){
|
||||||
///----------------------------------- Canvas - 14
|
///----------------------------------- Canvas - 14
|
||||||
padID++; cCanvas->cd(padID);
|
padID++; cCanvas->cd(padID);
|
||||||
|
|
||||||
///hrdtRate1->Draw("");
|
hrdtRate1->Draw("");
|
||||||
///hrdtRate2->Draw("same");
|
hrdtRate2->Draw("same");
|
||||||
|
|
||||||
///----------------------------------- Canvas - 15
|
///----------------------------------- Canvas - 15
|
||||||
padID++; cCanvas->cd(padID);
|
//padID++; cCanvas->cd(padID);
|
||||||
|
|
||||||
///----------------------------------- Canvas - 16
|
///----------------------------------- Canvas - 16
|
||||||
padID++; cCanvas->cd(padID);
|
//padID++; cCanvas->cd(padID);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///----------------------------------- Canvas - 17
|
///----------------------------------- Canvas - 17
|
||||||
padID++; cCanvas->cd(padID);
|
//padID++; cCanvas->cd(padID);
|
||||||
|
|
||||||
|
|
||||||
///----------------------------------- Canvas - 18
|
///----------------------------------- Canvas - 18
|
||||||
padID++; cCanvas->cd(padID);
|
//padID++; cCanvas->cd(padID);
|
||||||
|
|
||||||
|
|
||||||
///----------------------------------- Canvas - 19
|
///----------------------------------- Canvas - 19
|
||||||
padID++; cCanvas->cd(padID);
|
//padID++; cCanvas->cd(padID);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///----------------------------------- Canvas - 20
|
///----------------------------------- Canvas - 20
|
||||||
padID++; cCanvas->cd(padID);
|
//padID++; cCanvas->cd(padID);
|
||||||
|
|
||||||
htac->Draw();
|
|
||||||
*/
|
|
||||||
|
|
||||||
/************************************/
|
/************************************/
|
||||||
gStyle->GetAttDate()->SetTextSize(0.02);
|
gStyle->GetAttDate()->SetTextSize(0.02);
|
||||||
|
@ -780,19 +782,19 @@ void Monitor::Terminate(){
|
||||||
/************************************/
|
/************************************/
|
||||||
StpWatch.Start(kFALSE);
|
StpWatch.Start(kFALSE);
|
||||||
|
|
||||||
//gROOT->ProcessLine(".L ../armory/Monitor_Util.C"); //TODO some pointer is empty
|
gROOT->ProcessLine(".L ../armory/Monitor_Util.C"); //TODO some pointer is empty
|
||||||
//printf("=============== loaded Monitor_Utils.C\n");
|
printf("============================================ loaded Monitor_Utils.C\n");
|
||||||
gROOT->ProcessLine(".L ../armory/AutoFit.C");
|
//gROOT->ProcessLine(".L ../armory/AutoFit.C");
|
||||||
printf("=============== loaded armory/AutoFit.C\n");
|
//printf("============================================ loaded armory/AutoFit.C\n");
|
||||||
// gROOT->ProcessLine(".L ../armory/RDTCutCreator.C");
|
// gROOT->ProcessLine(".L ../armory/RDTCutCreator.C");
|
||||||
// printf("=============== loaded armory/RDTCutCreator.C\n");
|
// printf("============================================ loaded armory/RDTCutCreator.C\n");
|
||||||
// gROOT->ProcessLine(".L ../armory/Check_rdtGate.C");
|
// gROOT->ProcessLine(".L ../armory/Check_rdtGate.C");
|
||||||
// printf("=============== loaded armory/Check_rdtGate.C\n");
|
// printf("============================================ loaded armory/Check_rdtGate.C\n");
|
||||||
// gROOT->ProcessLine(".L ../armory/readTrace.C");
|
// gROOT->ProcessLine(".L ../armory/readTrace.C");
|
||||||
// printf("=============== loaded Armory/readTrace.C\n");
|
// printf("============================================ loaded Armory/readTrace.C\n");
|
||||||
// gROOT->ProcessLine(".L ../armory/readRawTrace.C");
|
// gROOT->ProcessLine(".L ../armory/readRawTrace.C");
|
||||||
// printf("=============== loaded Armory/readRawTrace.C\n");
|
// printf("============================================ loaded Armory/readRawTrace.C\n");
|
||||||
// gROOT->ProcessLine("listDraws()");
|
gROOT->ProcessLine("listDraws()");
|
||||||
|
|
||||||
/************************* Save histograms to root file*/
|
/************************* Save histograms to root file*/
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <TFile.h>
|
#include <TFile.h>
|
||||||
#include <TSelector.h>
|
#include <TSelector.h>
|
||||||
#include <TH1.h>
|
#include <TH1.h>
|
||||||
|
#include <TMath.h>
|
||||||
#include <TH2.h>
|
#include <TH2.h>
|
||||||
#include <TStyle.h>
|
#include <TStyle.h>
|
||||||
#include <TCutG.h>
|
#include <TCutG.h>
|
||||||
|
@ -67,15 +68,17 @@ public :
|
||||||
float * x, * z;
|
float * x, * z;
|
||||||
float * xCal, * xfCal, * xnCal, * eCal;
|
float * xCal, * xfCal, * xnCal, * eCal;
|
||||||
|
|
||||||
ULong64_t startTime ;
|
std::vector<ULong64_t> startTime ;
|
||||||
ULong64_t endTime ;
|
std::vector<ULong64_t> endTime ;
|
||||||
|
|
||||||
|
double timeRangeInMin[2];
|
||||||
|
ULong64_t baseTimeStamp;
|
||||||
|
int treeID;
|
||||||
|
|
||||||
int padID;
|
int padID;
|
||||||
|
|
||||||
Monitor(TTree * /*tree*/ =0) : fChain(0) {
|
Monitor(TTree * /*tree*/ =0) : fChain(0) {
|
||||||
|
|
||||||
printf("------ %s\n", __func__);
|
|
||||||
|
|
||||||
e = new Float_t [mapping::NARRAY];
|
e = new Float_t [mapping::NARRAY];
|
||||||
xf = new Float_t [mapping::NARRAY];
|
xf = new Float_t [mapping::NARRAY];
|
||||||
xn = new Float_t [mapping::NARRAY];
|
xn = new Float_t [mapping::NARRAY];
|
||||||
|
@ -100,14 +103,18 @@ public :
|
||||||
|
|
||||||
padID = 0;
|
padID = 0;
|
||||||
|
|
||||||
timeRange[0] = 0;
|
timeRangeInMin[0] = 0;
|
||||||
timeRange[1] = 100;
|
timeRangeInMin[1] = 100;
|
||||||
|
|
||||||
|
startTime.clear();
|
||||||
|
endTime.clear();
|
||||||
|
|
||||||
|
baseTimeStamp = 0;
|
||||||
|
treeID = -1;
|
||||||
|
|
||||||
}
|
}
|
||||||
virtual ~Monitor() {
|
virtual ~Monitor() {
|
||||||
|
|
||||||
printf("------ %s\n", __func__);
|
|
||||||
|
|
||||||
delete e ;
|
delete e ;
|
||||||
delete xf ;
|
delete xf ;
|
||||||
delete xn ;
|
delete xn ;
|
||||||
|
@ -124,8 +131,6 @@ public :
|
||||||
delete xnCal;
|
delete xnCal;
|
||||||
delete eCal;
|
delete eCal;
|
||||||
|
|
||||||
printf("------end of %s\n", __func__);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
virtual Int_t Version() const { return 2; }
|
virtual Int_t Version() const { return 2; }
|
||||||
virtual void Begin(TTree *tree);
|
virtual void Begin(TTree *tree);
|
||||||
|
@ -145,9 +150,20 @@ public :
|
||||||
void SetCanvasTitle(TString title) {fCanvasTitle = title;}
|
void SetCanvasTitle(TString title) {fCanvasTitle = title;}
|
||||||
TString GetCanvasTitle() const {return fCanvasTitle;}
|
TString GetCanvasTitle() const {return fCanvasTitle;}
|
||||||
|
|
||||||
int timeRange[2];
|
void SetStartStopTimes(std::vector<ULong64_t> t1, std::vector<ULong64_t> t2) {
|
||||||
void SetTimeRange0(int minute){ timeRange[0] = minute;}
|
startTime = t1;
|
||||||
void SetTimeRange1(int minute){ timeRange[1] = minute;}
|
endTime = t2;
|
||||||
|
|
||||||
|
timeRangeInMin[0] = startTime[0] * tick2min;
|
||||||
|
timeRangeInMin[1] = endTime[0] * tick2min;
|
||||||
|
for( int i = 1; i < (int) endTime.size(); i++) timeRangeInMin[1] += ((endTime[i] - startTime[i]) * tick2min);
|
||||||
|
|
||||||
|
double duration = timeRangeInMin[1] - timeRangeInMin[0];
|
||||||
|
|
||||||
|
timeRangeInMin[0] = TMath::Floor( timeRangeInMin[0] - duration * 0.1);
|
||||||
|
timeRangeInMin[1] = TMath::Ceil( timeRangeInMin[1] + duration * 0.1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void Draw2DHist(TH2F * hist);
|
void Draw2DHist(TH2F * hist);
|
||||||
|
|
||||||
|
@ -168,7 +184,7 @@ public :
|
||||||
#ifdef Monitor_cxx
|
#ifdef Monitor_cxx
|
||||||
void Monitor::Init(TTree *tree){
|
void Monitor::Init(TTree *tree){
|
||||||
|
|
||||||
printf("========== %s \n", __func__);
|
printf("============================================ Branch Pointer Inititization. \n");
|
||||||
|
|
||||||
// Set branch addresses and branch pointers
|
// Set branch addresses and branch pointers
|
||||||
if (!tree) return;
|
if (!tree) return;
|
||||||
|
@ -184,10 +200,10 @@ void Monitor::Init(TTree *tree){
|
||||||
|
|
||||||
TBranch * br = (TBranch *) fChain->GetListOfBranches()->FindObject("rdt");
|
TBranch * br = (TBranch *) fChain->GetListOfBranches()->FindObject("rdt");
|
||||||
if( br == NULL ){
|
if( br == NULL ){
|
||||||
printf(" ++++++++ no Recoil.\n");
|
printf(" ++++++++ no Recoil Branch.\n");
|
||||||
isRDTExist = false;
|
isRDTExist = false;
|
||||||
}else{
|
}else{
|
||||||
printf(" ++++++++ FOund Recoil.\n");
|
printf(" ++++++++ Found Recoil Branch.\n");
|
||||||
isRDTExist = true;
|
isRDTExist = true;
|
||||||
fChain->SetBranchAddress("rdt" , rdt, &b_RDT);
|
fChain->SetBranchAddress("rdt" , rdt, &b_RDT);
|
||||||
fChain->SetBranchAddress("rdt_t", rdt_t, &b_RDTTimestamp);
|
fChain->SetBranchAddress("rdt_t", rdt_t, &b_RDTTimestamp);
|
||||||
|
@ -226,14 +242,11 @@ void Monitor::Init(TTree *tree){
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
printf("============================================ End of Branch Pointer Inititization. \n");
|
||||||
startTime = 0;
|
|
||||||
endTime = 0;
|
|
||||||
|
|
||||||
printf("=================================== End of Branch Pointer Inititization. \n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Bool_t Monitor::Notify(){
|
Bool_t Monitor::Notify(){
|
||||||
|
|
||||||
return kTRUE;
|
return kTRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user