Shift Macro Template
Shift業務を簡略化するマクロのテンプレート
解析を開始し、HTTP Serverを立てるマクロ
void shift(const std::string &runnum)
{
std::string cmd = "add steering/chkstrone.yaml DIR=tdcdata IDX=00 NUM=" + runnum;
gROOT->ProcessLine(cmd.c_str());
std::cout << "Starting the loop... " << std::endl;
THttpServer *tht = new THttpServer("http:9954");
gROOT->ProcessLine("res");
gROOT->ProcessLine("sus");
}
各図の描画と印刷を行うマクロ
void draw(const bool print = false)
{
gROOT->ProcessLine("sus");
gROOT->ProcessLine("cd");
art::TAnalysisInfo * anain = (art::TAnalysisInfo*)gROOT->FindObject("analysisInfo");
if( anain->GetAnalyzedEventNumber() < 600000 ){
std::cout << "+------------------------------------------------------------------+" << std::endl;
std::cout << "AnalyzedEventNumber : " << anain->GetAnalyzedEventNumber() << std::endl;
std::cout << "Low Statistics..." << std::endl;
std::cout << "Please wait up to AnalyzedEventNumber > 600000" << std::endl;
std::cout << "+------------------------------------------------------------------+" << std::endl;
gROOT->ProcessLine("res");
return;
}
std::string num = anain->GetRunNumber();
std::string cmd = "gcom run" + num;
gROOT->ProcessLine(cmd.c_str());
/// Draw Plastic Info 1
gROOT->ProcessLine("cd");
gROOT->ProcessLine("cd experimental");
gROOT->ProcessLine("cd hpla_att");
gROOT->ProcessLine("zone 3 3");
//gROOT->ProcessLine("ht 5:13 colz");
gROOT->ProcessLine("ht hQL1VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht hQR1VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht hQ1VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht hQL2VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht hQR2VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht hQ2VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht hQL3VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht hQR3VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht hQ3VDCX1_att colz");
gROOT->ProcessLine("lgz");
if( print == true){
gROOT->ProcessLine("save");
//gROOT->ProcessLine("pri");
gROOT->ProcessLine("artcanvas->Print(\"./shift_fig/fig1.pdf\")");
}
// Draw VDC Info 1
gROOT->ProcessLine("cd ");
gROOT->ProcessLine("cd experimental");
gROOT->ProcessLine("cd vdc");
gROOT->ProcessLine("zone 3 3");
gROOT->ProcessLine("ht vdcid colz");
gROOT->ProcessLine("ht vdctiming colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht vdccharge colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht effx1g");
gROOT->ProcessLine("ht effu1g");
gROOT->ProcessLine("ht effx1u1g colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht XA colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht YB colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht X6He");
if( print == true){
gROOT->ProcessLine("save");
//gROOT->ProcessLine("pri");
gROOT->ProcessLine("artcanvas->Print(\"./shift_fig/fig2.pdf\")");
}
/// Draw Plastic Info 2
gROOT->ProcessLine("cd");
gROOT->ProcessLine("cd experimental");
gROOT->ProcessLine("cd hpla_att");
gROOT->ProcessLine("hQL1VDCX1_att->ProjectionY(\"pry_pla1l\",40,41)");
gROOT->ProcessLine("hQR1VDCX1_att->ProjectionY(\"pry_pla1r\",160,161)");
TH1D*thpla1l = (TH1D*)gROOT->FindObject("pry_pla1l");
TH1D*thpla1r = (TH1D*)gROOT->FindObject("pry_pla1r");
gROOT->ProcessLine("hQL2VDCX1_att->ProjectionY(\"pry_pla2l\",40,41)");
gROOT->ProcessLine("hQR2VDCX1_att->ProjectionY(\"pry_pla2r\",160,161)");
TH1D*thpla2l = (TH1D*)gROOT->FindObject("pry_pla2l");
TH1D*thpla2r = (TH1D*)gROOT->FindObject("pry_pla2r");
gROOT->ProcessLine("hQL3VDCX1_att->ProjectionY(\"pry_pla3l\",40,41)");
gROOT->ProcessLine("hQR3VDCX1_att->ProjectionY(\"pry_pla3r\",160,161)");
TH1D*thpla3l = (TH1D*)gROOT->FindObject("pry_pla3l");
TH1D*thpla3r = (TH1D*)gROOT->FindObject("pry_pla3r");
/*
Int_t maxpeaks = 2;
TSpectrum *s1l = new TSpectrum(maxpeaks);
TSpectrum *s1r = new TSpectrum(maxpeaks);
TSpectrum *s2l = new TSpectrum(maxpeaks);
TSpectrum *s2r = new TSpectrum(maxpeaks);
TSpectrum *s3l = new TSpectrum(1);
TSpectrum *s3r = new TSpectrum(1);
s1l->Search(thpla1l, 0.75, "new");
s1r->Search(thpla1r, 0.75, "new");
s2l->Search(thpla2l, 0.75, "new");
s2r->Search(thpla2r, 0.75, "new");
s3l->Search(thpla3l, 0.75, "new");
s3r->Search(thpla3r, 0.75, "new");
double *xpeaks1l = s1l->GetPositionX();
double *xpeaks1r = s1r->GetPositionX();
double *xpeaks2l = s2l->GetPositionX();
double *xpeaks2r = s2r->GetPositionX();
double *xpeaks3l = s3l->GetPositionX();
double *xpeaks3r = s3r->GetPositionX();
thpla1l->Fit("gaus","","",xpeaks1l[1]-20,xpeaks1l[1]+20);
thpla1r->Fit("gaus","","",xpeaks1r[1]-20,xpeaks1r[1]+20);
thpla2l->Fit("gaus","","",xpeaks2l[1]-20,xpeaks2l[1]+20);
thpla2r->Fit("gaus","","",xpeaks2r[1]-20,xpeaks2r[1]+20);
thpla3l->Fit("gaus","","",xpeaks3l[0]-20,xpeaks3l[0]+20);
thpla3r->Fit("gaus","","",xpeaks3r[0]-20,xpeaks3r[0]+20);
*/
/*
thpla1l->Fit("gaus","","",130,220);
thpla1r->Fit("gaus","","",160,220);
thpla2l->Fit("gaus","","",230,400);
thpla2r->Fit("gaus","","",355,500);
thpla3l->Fit("gaus","","",250,600);
thpla3r->Fit("gaus","","",400,600);
TF1* gauspla1l = (TF1*)thpla1l->FindObject("gaus");
TF1* gauspla1r = (TF1*)thpla1r->FindObject("gaus");
TF1* gauspla2l = (TF1*)thpla2l->FindObject("gaus");
TF1* gauspla2r = (TF1*)thpla2r->FindObject("gaus");
TF1* gauspla3l = (TF1*)thpla3l->FindObject("gaus");
TF1* gauspla3r = (TF1*)thpla3r->FindObject("gaus");
*/
gROOT->ProcessLine("zone 4 3");
// Pla1
gROOT->ProcessLine("ht hQL1VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht pry_pla1l");
gROOT->ProcessLine("ht hQR1VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht pry_pla1r");
// Pla2
gROOT->ProcessLine("ht hQL2VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht pry_pla2l");
gROOT->ProcessLine("ht hQR2VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht pry_pla2r");
// Pla3
gROOT->ProcessLine("ht hQL3VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht pry_pla3l");
gROOT->ProcessLine("ht hQR3VDCX1_att colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht pry_pla3r");
if( print == true){
gROOT->ProcessLine("save");
//gROOT->ProcessLine("pri");
{gROOT->ProcessLine("artcanvas->Print(\"./shift_fig/fig3.pdf\")");}
}
// Draw PID Info 1
gROOT->ProcessLine("cd ");
gROOT->ProcessLine("cd experimental");
gROOT->ProcessLine("cd phys");
gROOT->ProcessLine("zone 2 2");
gROOT->ProcessLine("ht 0 colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht 1 colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht 2 colz");
gROOT->ProcessLine("lgz");
gROOT->ProcessLine("ht 3 colz");
if( print == true){
gROOT->ProcessLine("save");
//gROOT->ProcessLine("pri");
{gROOT->ProcessLine("artcanvas->Print(\"./shift_fig/fig4.pdf\")");}
}
/*
double mean_pla1_l = gauspla1l->GetParameter(1);
double mean_pla1_r = gauspla1r->GetParameter(1);
double mean_pla2_l = gauspla2l->GetParameter(1);
double mean_pla2_r = gauspla2r->GetParameter(1);
double mean_pla3_l = gauspla3l->GetParameter(1);
double mean_pla3_r = gauspla3r->GetParameter(1);
std::cout << "Pla 1L, Fitted Mean Values at VDCX1 ID = 40 : " << mean_pla1_l << std::endl;
std::cout << "Pla 1R, Fitted Mean Values at VDCX1 ID = 160 : " << mean_pla1_r << std::endl;
std::cout << "Pla 2L, Fitted Mean Values at VDCX1 ID = 40 : " << mean_pla2_l << std::endl;
std::cout << "Pla 2R, Fitted Mean Values at VDCX1 ID = 160 : " << mean_pla2_r << std::endl;
std::cout << "Pla 3L, Fitted Mean Values at VDCX1 ID = 40 : " << mean_pla3_l << std::endl;
std::cout << "Pla 3R, Fitted Mean Values at VDCX1 ID = 160 : " << mean_pla3_r << std::endl;
std::cout << mean_pla1_l << " " << mean_pla1_r << " " << mean_pla2_l << " " << mean_pla2_r << " " << mean_pla3_l << " " << mean_pla3_r << std::endl;
*/
{
if( print == true){
gROOT->ProcessLine(".! convert -density 600 -geometry 4960x7016 ./shift_fig/fig1.pdf ./shift_fig/print1.pdf");
gROOT->ProcessLine(".! convert -density 600 -geometry 4960x7016 ./shift_fig/fig2.pdf ./shift_fig/print2.pdf");
gROOT->ProcessLine(".! convert -density 600 -geometry 4960x7016 ./shift_fig/fig3.pdf ./shift_fig/print3.pdf");
gROOT->ProcessLine(".! convert -density 600 -geometry 4960x7016 ./shift_fig/fig4.pdf ./shift_fig/print4.pdf");
}
}
{
if( print == true){
gROOT->ProcessLine(".! lpr -Prcc4000a ./shift_fig/print1.pdf");
gROOT->ProcessLine(".! lpr -Prcc4000a ./shift_fig/print2.pdf");
gROOT->ProcessLine(".! lpr -Prcc4000a ./shift_fig/print3.pdf");
gROOT->ProcessLine(".! lpr -Prcc4000a ./shift_fig/print4.pdf");
}
}
{
if( print == true){
gROOT->ProcessLine(".! rm ./shift_fig/print1.pdf");
gROOT->ProcessLine(".! rm ./shift_fig/print2.pdf");
gROOT->ProcessLine(".! rm ./shift_fig/print3.pdf");
gROOT->ProcessLine(".! rm ./shift_fig/print4.pdf");
}
}
gROOT->ProcessLine("res");
}