From 80d89067967972e0e01f253619293c82d6d86583 Mon Sep 17 00:00:00 2001 From: Kodai Okawa Date: Thu, 17 Mar 2022 12:21:10 +0900 Subject: [PATCH 01/15] [add] some macro --- calibration/si26a/mpos.prm | 6 +-- macro/pos_calb_check.C | 16 ++++++++ macro/raw_mpos_check.C | 47 ++++++++++++++---------- macro/resolution_check.C | 69 +++++++++++++++++++++++++++++++++++ src/TCordferBranchManager.cpp | 2 +- 5 files changed, 116 insertions(+), 24 deletions(-) create mode 100644 macro/pos_calb_check.C create mode 100644 macro/resolution_check.C diff --git a/calibration/si26a/mpos.prm b/calibration/si26a/mpos.prm index a2f4d33..7704780 100644 --- a/calibration/si26a/mpos.prm +++ b/calibration/si26a/mpos.prm @@ -1,8 +1,8 @@ # MUX position calibration # channel of the 16 peaks -# for high0272 +# for alpha source calibration # 1ch, 2ch, ... , 16ch ; name -386.0, 401.0, 418.0, 435.0, 455.0, 471.0, 489.0, 506.0, 527.0, 543.0, 562.0, 578.0, 599.0, 615.0, 635.0, 653.0, ; MUX1-1-p0 +395.0, 421.0, 428.0, 445.0, 466.0, 482.0, 500.0, 518.0, 539.0, 556.0, 573.0, 591.0, 611.0, 628.0, 647.0, 666.0, ; MUX1-1-p0 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX1-1-p1 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX1-2-p0 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX1-2-p1 @@ -12,5 +12,5 @@ 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX2-2-p1 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX3-1-p0 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX3-1-p1 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX3-2-p0 +1429.0, 1442.0, 1457.0, 1472.0, 1491.0, 1506.0, 1523.0, 1538.0, 1560.0, 1574.0, 1589.0, 1605.0, 1626.0, 1641.0, 1658.0, 1675.0, ; MUX3-2-p0 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX3-2-p1 diff --git a/macro/pos_calb_check.C b/macro/pos_calb_check.C new file mode 100644 index 0000000..1d6ac2e --- /dev/null +++ b/macro/pos_calb_check.C @@ -0,0 +1,16 @@ +{ + gStyle->SetOptLogy(1); + + //for run307 and 308 + TFile *fin = new TFile("../rootfiles/alpha307_308.root", "read"); + TTree *ctree = (TTree*)fin->Get("ctree"); + + TCanvas *c1 = new TCanvas("c1","c1"); + ctree->Draw("mssd_1_1_1ch>>(2000,0,2000)"); + TCanvas *c2 = new TCanvas("c2","c2"); + ctree->Draw("mssd_1_1_2ch>>(2000,0,2000)"); + TCanvas *c3 = new TCanvas("c3","c3"); + ctree->Draw("mssd_1_1_3ch>>(2000,0,2000)"); + TCanvas *c4 = new TCanvas("c4","c4"); + ctree->Draw("mssd_1_1_4ch>>(2000,0,2000)"); +} diff --git a/macro/raw_mpos_check.C b/macro/raw_mpos_check.C index f5e19e5..5761450 100644 --- a/macro/raw_mpos_check.C +++ b/macro/raw_mpos_check.C @@ -29,22 +29,23 @@ tree->SetBranchAddress("madc2", mux); - //TH1I *hist1 = new TH1I("hist1","mux1-1p1",400,350,750); - //TH1I *hist2 = new TH1I("hist2","mux1-2p1",400,650,1050); - //TH1I *hist3 = new TH1I("hist3","mux2-1p1",400,800,1200); - //TH1I *hist4 = new TH1I("hist4","mux2-2p1",400,1250,1650); - //TH1I *hist5 = new TH1I("hist5","mux3-1p1",400,1350,1750); - //TH1I *hist6 = new TH1I("hist6","mux3-2p1",400,1550,1950); - TH1I *hist1 = new TH1I("hist1","mux1-1p2",400,350,750); - TH1I *hist2 = new TH1I("hist2","mux1-2p2",400,650,1050); - TH1I *hist3 = new TH1I("hist3","mux2-1p2",400,800,1200); - TH1I *hist4 = new TH1I("hist4","mux2-2p2",400,1250,1650); - TH1I *hist5 = new TH1I("hist5","mux3-1p2",400,1350,1750); - TH1I *hist6 = new TH1I("hist6","mux3-2p2",400,1550,1950); + TH1I *hist1 = new TH1I("hist1","mux1-1p1",400,350,750); + TH1I *hist2 = new TH1I("hist2","mux1-2p1",400,650,1050); + TH1I *hist3 = new TH1I("hist3","mux2-1p1",400,800,1200); + TH1I *hist4 = new TH1I("hist4","mux2-2p1",400,1250,1650); + TH1I *hist5 = new TH1I("hist5","mux3-1p1",400,1350,1750); + TH1I *hist6 = new TH1I("hist6","mux3-2p1",400,1550,1950); + //TH1I *hist1 = new TH1I("hist1","mux1-1p2",400,350,750); + //TH1I *hist2 = new TH1I("hist2","mux1-2p2",400,650,1050); + //TH1I *hist3 = new TH1I("hist3","mux2-1p2",400,800,1200); + //TH1I *hist4 = new TH1I("hist4","mux2-2p2",400,1250,1650); + //TH1I *hist5 = new TH1I("hist5","mux3-1p2",400,1350,1750); + //TH1I *hist6 = new TH1I("hist6","mux3-2p2",400,1550,1950); const Int_t N = tree->GetEntries(); const Int_t start_ent = 0; - const Int_t end_ent = 1000000; + //const Int_t end_ent = 1000000; + const Int_t end_ent = N; if(end_ent > N){ cout << "Value Miss!" << endl; } @@ -52,12 +53,18 @@ for(Int_t ientry=start_ent; ientryGetEntry(ientry); - hist1->Fill(mux[3]); - hist2->Fill(mux[7]); - hist3->Fill(mux[19]); - hist4->Fill(mux[15]); - hist5->Fill(mux[19]); - hist6->Fill(mux[23]); + hist1->Fill(mux[2]); + hist2->Fill(mux[6]); + hist3->Fill(mux[18]); + hist4->Fill(mux[14]); + hist5->Fill(mux[18]); + hist6->Fill(mux[22]); + //hist1->Fill(mux[3]); + //hist2->Fill(mux[7]); + //hist3->Fill(mux[19]); + //hist4->Fill(mux[15]); + //hist5->Fill(mux[19]); + //hist6->Fill(mux[23]); } @@ -87,5 +94,5 @@ hist6->Draw(); //tree->Draw("madc2[22]>>MUX3_2p1(400,1550,1950)"); //MUX3-2 pos1 - c1->Print("../figure/alpha_mpos2.png"); + //c1->Print("../figure/alpha_mpos2.png"); } diff --git a/macro/resolution_check.C b/macro/resolution_check.C new file mode 100644 index 0000000..c6b48a6 --- /dev/null +++ b/macro/resolution_check.C @@ -0,0 +1,69 @@ +// ********FOR Si26a************** +// +// --RUN INFORMATION +// run307 alpha calibration Tel1-3 dE1&2, Tel4-5 dE2 +// run308 the same condition +// +// --MUX INFORMATION +// driver for MUX2-1 is missing -> use MUX3-1 +// +// --CHANNEL INFORMATION OF MUX +// madc2[0]-[3] : MUX1-1 +// madc2[4]-[7] : MUX1-2 +// madc2[8]-[11] : MUX2-1 +// madc2[12]-[15]: MUX2-2 +// madc2[16]-[19]: MUX3-1 +// madc2[20]-[23]: MUX3-2 + +{ + //gStyle->SetOptLogy(1); + + //for run307 and 308 + TFile *fin = new TFile("../rootfiles/old_rootfiles/alpha307_308.root", "read"); + TTree *tree = (TTree*)fin->Get("tree"); + //TChain *chain = new TChain("tree", "chain"); + //chain->Add("../rootfiles/old_rootfiles/calib0307.root"); + //chain->Add("../rootfiles/old_rootfiles/calib0308.root"); + + TCanvas *c1 = new TCanvas("c1", "c1", 800, 1000); + c1->Divide(2, 3); + c1->cd(1); + tree->Draw("madc2[2]:madc2[0]>>h1(2000,0,2000,500,300,800)","","colz"); + + c1->cd(2); + tree->Draw("madc2[0]>>h2(2000,0,2000)","madc2[2] > 387 && madc2[2] < 402"); + + c1->cd(3); + tree->Draw("madc2[6]:madc2[4]>>h3(2000,0,2000,600,600,1200)","","colz"); + + c1->cd(4); + tree->Draw("madc2[4]>>h4(2000,0,2000)","madc2[6] > 705 && madc2[6] < 720"); + + c1->cd(5); + tree->Draw("madc2[18]:madc2[16]>>h5(2000,0,2000,400,800,1200)","","colz"); + + c1->cd(6); + tree->Draw("madc2[16]>>h6(2000,0,2000)","madc2[18] > 853 && madc2[18] < 872"); + + TCanvas *c2 = new TCanvas("c2", "c2", 800, 1000); + c2->Divide(2, 3); + c2->cd(1); + tree->Draw("madc2[14]:madc2[12]>>h7(2000,0,2000,500,1200,1700)","","colz"); + + c2->cd(2); + tree->Draw("madc2[12]>>h8(2000,0,2000)","madc2[14] > 1302 && madc2[14] < 1318"); + + c2->cd(3); + tree->Draw("madc2[18]:madc2[16]>>h9(2000,0,2000,500,1300,1800)","","colz"); + + c2->cd(4); + tree->Draw("madc2[16]>>h10(2000,0,2000)","madc2[18] > 1405 && madc2[18] < 1435"); + + c2->cd(5); + tree->Draw("madc2[22]:madc2[20]>>h11(2000,0,2000,500,1500,2000)","","colz"); + + c2->cd(6); + tree->Draw("madc2[20]>>h12(2000,0,2000)","madc2[22] > 1590 && madc2[22] < 1640"); + + +} diff --git a/src/TCordferBranchManager.cpp b/src/TCordferBranchManager.cpp index d96cc99..8181e02 100644 --- a/src/TCordferBranchManager.cpp +++ b/src/TCordferBranchManager.cpp @@ -446,7 +446,7 @@ void TCordferBranchManager::GiveCalibValue(Int_t geo, Int_t ch, Int_t val){ if(calib_status == 1){ return; } else if(calib_status == 0){ cbranch[index]->SetCalibValue(val); } else{ - Int_t add_ch = cbranch[index]->GetAddBranchIndex(mux_id); // for MUX (default = 0) + Int_t add_ch = cbranch[index]->GetAddBranchIndex(mux_id); if(add_ch == -1){ return; } cbranch[index + add_ch]->SetCalibValue(calib_status); } -- GitLab From 0a8b94db0ce27f025e88d7b1abbf577a5403e5dd Mon Sep 17 00:00:00 2001 From: Kodai Okawa Date: Mon, 21 Mar 2022 01:08:28 +0900 Subject: [PATCH 02/15] [mod] mhtdc branch changed of raw tree --- include/CalibrationManager.hh | 15 - include/TCordferRawBranch.hh | 1 - macro/check_calib_tree.C | 540 +++++++++ macro/check_map_tree.C | 425 +++++++ macro/check_raw_tree.C | 2057 +++++++++++++++++++++++++++++++++ macro/check_raw_tree2.C | 402 +++++++ src/CMakeLists.txt | 4 +- src/CalibrationManager.cpp | 17 - src/TCordferBranchManager.cpp | 36 +- src/TCordferRawBranch.cpp | 40 +- "src/\\" | 540 +++++++++ 11 files changed, 3988 insertions(+), 89 deletions(-) delete mode 100644 include/CalibrationManager.hh create mode 100644 macro/check_calib_tree.C create mode 100644 macro/check_map_tree.C create mode 100644 macro/check_raw_tree.C create mode 100644 macro/check_raw_tree2.C delete mode 100644 src/CalibrationManager.cpp create mode 100644 "src/\\" diff --git a/include/CalibrationManager.hh b/include/CalibrationManager.hh deleted file mode 100644 index ccb37fc..0000000 --- a/include/CalibrationManager.hh +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _CALIBRATIONMANAGER_HH_ -#define _CALIBRATIONMANAGER_HH_ - -#include -#include - -#include - -using namespace std; - -//these functions are used to the TCordferCalibBranch -Double_t GetCalibValue(Int_t val, vector params); - - -#endif diff --git a/include/TCordferRawBranch.hh b/include/TCordferRawBranch.hh index a1a3db5..0a469fb 100644 --- a/include/TCordferRawBranch.hh +++ b/include/TCordferRawBranch.hh @@ -48,7 +48,6 @@ class TCordferRawBranch void FreeMemory(){ delete[] bra_val; } void FreeTwoDimMemory(); - //bool SetValue(Int_t ch, Int_t val); //return flag of mhtdc of others void Clear(); void FreeAll(); }; diff --git a/macro/check_calib_tree.C b/macro/check_calib_tree.C new file mode 100644 index 0000000..53f6e68 --- /dev/null +++ b/macro/check_calib_tree.C @@ -0,0 +1,540 @@ +//this macro create all histograms and save as png file +//(for check the code is correct) +//CAUTION: many file will be created + +{ + gStyle->SetOptLogy(1); + + TCanvas *c1 = new TCanvas("c1", "c1"); + ctree->Draw("coin_Single"); + c1->Print("../figure/calib/coin_Single.png"); + ctree->Draw("coin_Coin"); + c1->Print("../figure/calib/coin_Coin.png"); + ctree->Draw("coin_Pileup"); + c1->Print("../figure/calib/coin_Pileup.png"); + ctree->Draw("dssd_Tel1_dE1X_1"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_1.png"); + ctree->Draw("dssd_Tel1_dE1X_2"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_2.png"); + ctree->Draw("dssd_Tel1_dE1X_3"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_3.png"); + ctree->Draw("dssd_Tel1_dE1X_4"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_4.png"); + ctree->Draw("dssd_Tel1_dE1X_5"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_5.png"); + ctree->Draw("dssd_Tel1_dE1X_6"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_6.png"); + ctree->Draw("dssd_Tel1_dE1X_7"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_7.png"); + ctree->Draw("dssd_Tel1_dE1X_8"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_8.png"); + ctree->Draw("dssd_Tel1_dE1X_9"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_9.png"); + ctree->Draw("dssd_Tel1_dE1X_10"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_10.png"); + ctree->Draw("dssd_Tel1_dE1X_11"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_11.png"); + ctree->Draw("dssd_Tel1_dE1X_12"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_12.png"); + ctree->Draw("dssd_Tel1_dE1X_13"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_13.png"); + ctree->Draw("dssd_Tel1_dE1X_14"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_14.png"); + ctree->Draw("dssd_Tel1_dE1X_15"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_15.png"); + ctree->Draw("dssd_Tel1_dE1X_16"); + c1->Print("../figure/calib/dssd_Tel1_dE1X_16.png"); + ctree->Draw("dssd_Tel1_dE2Y_1"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_1.png"); + ctree->Draw("dssd_Tel1_dE2Y_2"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_2.png"); + ctree->Draw("dssd_Tel1_dE2Y_3"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_3.png"); + ctree->Draw("dssd_Tel1_dE2Y_4"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_4.png"); + ctree->Draw("dssd_Tel1_dE2Y_5"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_5.png"); + ctree->Draw("dssd_Tel1_dE2Y_6"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_6.png"); + ctree->Draw("dssd_Tel1_dE2Y_7"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_7.png"); + ctree->Draw("dssd_Tel1_dE2Y_8"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_8.png"); + ctree->Draw("dssd_Tel1_dE2Y_9"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_9.png"); + ctree->Draw("dssd_Tel1_dE2Y_10"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_10.png"); + ctree->Draw("dssd_Tel1_dE2Y_11"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_11.png"); + ctree->Draw("dssd_Tel1_dE2Y_12"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_12.png"); + ctree->Draw("dssd_Tel1_dE2Y_13"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_13.png"); + ctree->Draw("dssd_Tel1_dE2Y_14"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_14.png"); + ctree->Draw("dssd_Tel1_dE2Y_15"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_15.png"); + ctree->Draw("dssd_Tel1_dE2Y_16"); + c1->Print("../figure/calib/dssd_Tel1_dE2Y_16.png"); + ctree->Draw("dssd_Tel2_dE2Y_1"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_1.png"); + ctree->Draw("dssd_Tel2_dE2Y_2"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_2.png"); + ctree->Draw("dssd_Tel2_dE2Y_3"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_3.png"); + ctree->Draw("dssd_Tel2_dE2Y_4"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_4.png"); + ctree->Draw("dssd_Tel2_dE2Y_5"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_5.png"); + ctree->Draw("dssd_Tel2_dE2Y_6"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_6.png"); + ctree->Draw("dssd_Tel2_dE2Y_7"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_7.png"); + ctree->Draw("dssd_Tel2_dE2Y_8"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_8.png"); + ctree->Draw("dssd_Tel2_dE2Y_9"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_9.png"); + ctree->Draw("dssd_Tel2_dE2Y_10"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_10.png"); + ctree->Draw("dssd_Tel2_dE2Y_11"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_11.png"); + ctree->Draw("dssd_Tel2_dE2Y_12"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_12.png"); + ctree->Draw("dssd_Tel2_dE2Y_13"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_13.png"); + ctree->Draw("dssd_Tel2_dE2Y_14"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_14.png"); + ctree->Draw("dssd_Tel2_dE2Y_15"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_15.png"); + ctree->Draw("dssd_Tel2_dE2Y_16"); + c1->Print("../figure/calib/dssd_Tel2_dE2Y_16.png"); + ctree->Draw("dssd_Tel3_dE2Y_1"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_1.png"); + ctree->Draw("dssd_Tel3_dE2Y_2"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_2.png"); + ctree->Draw("dssd_Tel3_dE2Y_3"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_3.png"); + ctree->Draw("dssd_Tel3_dE2Y_4"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_4.png"); + ctree->Draw("dssd_Tel3_dE2Y_5"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_5.png"); + ctree->Draw("dssd_Tel3_dE2Y_6"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_6.png"); + ctree->Draw("dssd_Tel3_dE2Y_7"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_7.png"); + ctree->Draw("dssd_Tel3_dE2Y_8"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_8.png"); + ctree->Draw("dssd_Tel3_dE2Y_9"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_9.png"); + ctree->Draw("dssd_Tel3_dE2Y_10"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_10.png"); + ctree->Draw("dssd_Tel3_dE2Y_11"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_11.png"); + ctree->Draw("dssd_Tel3_dE2Y_12"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_12.png"); + ctree->Draw("dssd_Tel3_dE2Y_13"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_13.png"); + ctree->Draw("dssd_Tel3_dE2Y_14"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_14.png"); + ctree->Draw("dssd_Tel3_dE2Y_15"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_15.png"); + ctree->Draw("dssd_Tel3_dE2Y_16"); + c1->Print("../figure/calib/dssd_Tel3_dE2Y_16.png"); + ctree->Draw("t_dssd_Tel1_dE1X_1"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_1.png"); + ctree->Draw("t_dssd_Tel1_dE1X_2"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_2.png"); + ctree->Draw("t_dssd_Tel1_dE1X_3"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_3.png"); + ctree->Draw("t_dssd_Tel1_dE1X_4"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_4.png"); + ctree->Draw("t_dssd_Tel1_dE1X_5"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_5.png"); + ctree->Draw("t_dssd_Tel1_dE1X_6"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_6.png"); + ctree->Draw("t_dssd_Tel1_dE1X_7"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_7.png"); + ctree->Draw("t_dssd_Tel1_dE1X_8"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_8.png"); + ctree->Draw("t_dssd_Tel1_dE1X_9"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_9.png"); + ctree->Draw("t_dssd_Tel1_dE1X_10"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_10.png"); + ctree->Draw("t_dssd_Tel1_dE1X_11"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_11.png"); + ctree->Draw("t_dssd_Tel1_dE1X_12"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_12.png"); + ctree->Draw("t_dssd_Tel1_dE1X_13"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_13.png"); + ctree->Draw("t_dssd_Tel1_dE1X_14"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_14.png"); + ctree->Draw("t_dssd_Tel1_dE1X_15"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_15.png"); + ctree->Draw("t_dssd_Tel1_dE1X_16"); + c1->Print("../figure/calib/t_dssd_Tel1_dE1X_16.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_1"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_1.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_2"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_2.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_3"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_3.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_4"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_4.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_5"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_5.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_6"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_6.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_7"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_7.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_8"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_8.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_9"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_9.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_10"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_10.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_11"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_11.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_12"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_12.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_13"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_13.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_14"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_14.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_15"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_15.png"); + ctree->Draw("t_dssd_Tel1_dE2Y_16"); + c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_16.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_1"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_1.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_2"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_2.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_3"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_3.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_4"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_4.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_5"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_5.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_6"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_6.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_7"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_7.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_8"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_8.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_9"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_9.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_10"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_10.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_11"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_11.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_12"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_12.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_13"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_13.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_14"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_14.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_15"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_15.png"); + ctree->Draw("t_dssd_Tel2_dE2Y_16"); + c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_16.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_1"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_1.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_2"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_2.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_3"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_3.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_4"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_4.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_5"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_5.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_6"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_6.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_7"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_7.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_8"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_8.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_9"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_9.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_10"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_10.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_11"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_11.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_12"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_12.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_13"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_13.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_14"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_14.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_15"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_15.png"); + ctree->Draw("t_dssd_Tel3_dE2Y_16"); + c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_16.png"); + ctree->Draw("mssd_1_1_1ch"); + c1->Print("../figure/calib/mssd_1_1_1ch.png"); + ctree->Draw("mssd_1_1_2ch"); + c1->Print("../figure/calib/mssd_1_1_2ch.png"); + ctree->Draw("mssd_1_1_3ch"); + c1->Print("../figure/calib/mssd_1_1_3ch.png"); + ctree->Draw("mssd_1_1_4ch"); + c1->Print("../figure/calib/mssd_1_1_4ch.png"); + ctree->Draw("mssd_1_1_5ch"); + c1->Print("../figure/calib/mssd_1_1_5ch.png"); + ctree->Draw("mssd_1_1_6ch"); + c1->Print("../figure/calib/mssd_1_1_6ch.png"); + ctree->Draw("mssd_1_1_7ch"); + c1->Print("../figure/calib/mssd_1_1_7ch.png"); + ctree->Draw("mssd_1_1_8ch"); + c1->Print("../figure/calib/mssd_1_1_8ch.png"); + ctree->Draw("mssd_1_1_9ch"); + c1->Print("../figure/calib/mssd_1_1_9ch.png"); + ctree->Draw("mssd_1_1_10ch"); + c1->Print("../figure/calib/mssd_1_1_10ch.png"); + ctree->Draw("mssd_1_1_11ch"); + c1->Print("../figure/calib/mssd_1_1_11ch.png"); + ctree->Draw("mssd_1_1_12ch"); + c1->Print("../figure/calib/mssd_1_1_12ch.png"); + ctree->Draw("mssd_1_1_13ch"); + c1->Print("../figure/calib/mssd_1_1_13ch.png"); + ctree->Draw("mssd_1_1_14ch"); + c1->Print("../figure/calib/mssd_1_1_14ch.png"); + ctree->Draw("mssd_1_1_15ch"); + c1->Print("../figure/calib/mssd_1_1_15ch.png"); + ctree->Draw("mssd_1_1_16ch"); + c1->Print("../figure/calib/mssd_1_1_16ch.png"); + ctree->Draw("mssd_1_2_1ch"); + c1->Print("../figure/calib/mssd_1_2_1ch.png"); + ctree->Draw("mssd_1_2_2ch"); + c1->Print("../figure/calib/mssd_1_2_2ch.png"); + ctree->Draw("mssd_1_2_3ch"); + c1->Print("../figure/calib/mssd_1_2_3ch.png"); + ctree->Draw("mssd_1_2_4ch"); + c1->Print("../figure/calib/mssd_1_2_4ch.png"); + ctree->Draw("mssd_1_2_5ch"); + c1->Print("../figure/calib/mssd_1_2_5ch.png"); + ctree->Draw("mssd_1_2_6ch"); + c1->Print("../figure/calib/mssd_1_2_6ch.png"); + ctree->Draw("mssd_1_2_7ch"); + c1->Print("../figure/calib/mssd_1_2_7ch.png"); + ctree->Draw("mssd_1_2_8ch"); + c1->Print("../figure/calib/mssd_1_2_8ch.png"); + ctree->Draw("mssd_1_2_9ch"); + c1->Print("../figure/calib/mssd_1_2_9ch.png"); + ctree->Draw("mssd_1_2_10ch"); + c1->Print("../figure/calib/mssd_1_2_10ch.png"); + ctree->Draw("mssd_1_2_11ch"); + c1->Print("../figure/calib/mssd_1_2_11ch.png"); + ctree->Draw("mssd_1_2_12ch"); + c1->Print("../figure/calib/mssd_1_2_12ch.png"); + ctree->Draw("mssd_1_2_13ch"); + c1->Print("../figure/calib/mssd_1_2_13ch.png"); + ctree->Draw("mssd_1_2_14ch"); + c1->Print("../figure/calib/mssd_1_2_14ch.png"); + ctree->Draw("mssd_1_2_15ch"); + c1->Print("../figure/calib/mssd_1_2_15ch.png"); + ctree->Draw("mssd_1_2_16ch"); + c1->Print("../figure/calib/mssd_1_2_16ch.png"); + ctree->Draw("mssd_2_1_1ch"); + c1->Print("../figure/calib/mssd_2_1_1ch.png"); + ctree->Draw("mssd_2_1_2ch"); + c1->Print("../figure/calib/mssd_2_1_2ch.png"); + ctree->Draw("mssd_2_1_3ch"); + c1->Print("../figure/calib/mssd_2_1_3ch.png"); + ctree->Draw("mssd_2_1_4ch"); + c1->Print("../figure/calib/mssd_2_1_4ch.png"); + ctree->Draw("mssd_2_1_5ch"); + c1->Print("../figure/calib/mssd_2_1_5ch.png"); + ctree->Draw("mssd_2_1_6ch"); + c1->Print("../figure/calib/mssd_2_1_6ch.png"); + ctree->Draw("mssd_2_1_7ch"); + c1->Print("../figure/calib/mssd_2_1_7ch.png"); + ctree->Draw("mssd_2_1_8ch"); + c1->Print("../figure/calib/mssd_2_1_8ch.png"); + ctree->Draw("mssd_2_1_9ch"); + c1->Print("../figure/calib/mssd_2_1_9ch.png"); + ctree->Draw("mssd_2_1_10ch"); + c1->Print("../figure/calib/mssd_2_1_10ch.png"); + ctree->Draw("mssd_2_1_11ch"); + c1->Print("../figure/calib/mssd_2_1_11ch.png"); + ctree->Draw("mssd_2_1_12ch"); + c1->Print("../figure/calib/mssd_2_1_12ch.png"); + ctree->Draw("mssd_2_1_13ch"); + c1->Print("../figure/calib/mssd_2_1_13ch.png"); + ctree->Draw("mssd_2_1_14ch"); + c1->Print("../figure/calib/mssd_2_1_14ch.png"); + ctree->Draw("mssd_2_1_15ch"); + c1->Print("../figure/calib/mssd_2_1_15ch.png"); + ctree->Draw("mssd_2_1_16ch"); + c1->Print("../figure/calib/mssd_2_1_16ch.png"); + ctree->Draw("mssd_2_2_1ch"); + c1->Print("../figure/calib/mssd_2_2_1ch.png"); + ctree->Draw("mssd_2_2_2ch"); + c1->Print("../figure/calib/mssd_2_2_2ch.png"); + ctree->Draw("mssd_2_2_3ch"); + c1->Print("../figure/calib/mssd_2_2_3ch.png"); + ctree->Draw("mssd_2_2_4ch"); + c1->Print("../figure/calib/mssd_2_2_4ch.png"); + ctree->Draw("mssd_2_2_5ch"); + c1->Print("../figure/calib/mssd_2_2_5ch.png"); + ctree->Draw("mssd_2_2_6ch"); + c1->Print("../figure/calib/mssd_2_2_6ch.png"); + ctree->Draw("mssd_2_2_7ch"); + c1->Print("../figure/calib/mssd_2_2_7ch.png"); + ctree->Draw("mssd_2_2_8ch"); + c1->Print("../figure/calib/mssd_2_2_8ch.png"); + ctree->Draw("mssd_2_2_9ch"); + c1->Print("../figure/calib/mssd_2_2_9ch.png"); + ctree->Draw("mssd_2_2_10ch"); + c1->Print("../figure/calib/mssd_2_2_10ch.png"); + ctree->Draw("mssd_2_2_11ch"); + c1->Print("../figure/calib/mssd_2_2_11ch.png"); + ctree->Draw("mssd_2_2_12ch"); + c1->Print("../figure/calib/mssd_2_2_12ch.png"); + ctree->Draw("mssd_2_2_13ch"); + c1->Print("../figure/calib/mssd_2_2_13ch.png"); + ctree->Draw("mssd_2_2_14ch"); + c1->Print("../figure/calib/mssd_2_2_14ch.png"); + ctree->Draw("mssd_2_2_15ch"); + c1->Print("../figure/calib/mssd_2_2_15ch.png"); + ctree->Draw("mssd_2_2_16ch"); + c1->Print("../figure/calib/mssd_2_2_16ch.png"); + ctree->Draw("mssd_3_1_1ch"); + c1->Print("../figure/calib/mssd_3_1_1ch.png"); + ctree->Draw("mssd_3_1_2ch"); + c1->Print("../figure/calib/mssd_3_1_2ch.png"); + ctree->Draw("mssd_3_1_3ch"); + c1->Print("../figure/calib/mssd_3_1_3ch.png"); + ctree->Draw("mssd_3_1_4ch"); + c1->Print("../figure/calib/mssd_3_1_4ch.png"); + ctree->Draw("mssd_3_1_5ch"); + c1->Print("../figure/calib/mssd_3_1_5ch.png"); + ctree->Draw("mssd_3_1_6ch"); + c1->Print("../figure/calib/mssd_3_1_6ch.png"); + ctree->Draw("mssd_3_1_7ch"); + c1->Print("../figure/calib/mssd_3_1_7ch.png"); + ctree->Draw("mssd_3_1_8ch"); + c1->Print("../figure/calib/mssd_3_1_8ch.png"); + ctree->Draw("mssd_3_1_9ch"); + c1->Print("../figure/calib/mssd_3_1_9ch.png"); + ctree->Draw("mssd_3_1_10ch"); + c1->Print("../figure/calib/mssd_3_1_10ch.png"); + ctree->Draw("mssd_3_1_11ch"); + c1->Print("../figure/calib/mssd_3_1_11ch.png"); + ctree->Draw("mssd_3_1_12ch"); + c1->Print("../figure/calib/mssd_3_1_12ch.png"); + ctree->Draw("mssd_3_1_13ch"); + c1->Print("../figure/calib/mssd_3_1_13ch.png"); + ctree->Draw("mssd_3_1_14ch"); + c1->Print("../figure/calib/mssd_3_1_14ch.png"); + ctree->Draw("mssd_3_1_15ch"); + c1->Print("../figure/calib/mssd_3_1_15ch.png"); + ctree->Draw("mssd_3_1_16ch"); + c1->Print("../figure/calib/mssd_3_1_16ch.png"); + ctree->Draw("mssd_3_2_1ch"); + c1->Print("../figure/calib/mssd_3_2_1ch.png"); + ctree->Draw("mssd_3_2_2ch"); + c1->Print("../figure/calib/mssd_3_2_2ch.png"); + ctree->Draw("mssd_3_2_3ch"); + c1->Print("../figure/calib/mssd_3_2_3ch.png"); + ctree->Draw("mssd_3_2_4ch"); + c1->Print("../figure/calib/mssd_3_2_4ch.png"); + ctree->Draw("mssd_3_2_5ch"); + c1->Print("../figure/calib/mssd_3_2_5ch.png"); + ctree->Draw("mssd_3_2_6ch"); + c1->Print("../figure/calib/mssd_3_2_6ch.png"); + ctree->Draw("mssd_3_2_7ch"); + c1->Print("../figure/calib/mssd_3_2_7ch.png"); + ctree->Draw("mssd_3_2_8ch"); + c1->Print("../figure/calib/mssd_3_2_8ch.png"); + ctree->Draw("mssd_3_2_9ch"); + c1->Print("../figure/calib/mssd_3_2_9ch.png"); + ctree->Draw("mssd_3_2_10ch"); + c1->Print("../figure/calib/mssd_3_2_10ch.png"); + ctree->Draw("mssd_3_2_11ch"); + c1->Print("../figure/calib/mssd_3_2_11ch.png"); + ctree->Draw("mssd_3_2_12ch"); + c1->Print("../figure/calib/mssd_3_2_12ch.png"); + ctree->Draw("mssd_3_2_13ch"); + c1->Print("../figure/calib/mssd_3_2_13ch.png"); + ctree->Draw("mssd_3_2_14ch"); + c1->Print("../figure/calib/mssd_3_2_14ch.png"); + ctree->Draw("mssd_3_2_15ch"); + c1->Print("../figure/calib/mssd_3_2_15ch.png"); + ctree->Draw("mssd_3_2_16ch"); + c1->Print("../figure/calib/mssd_3_2_16ch.png"); + ctree->Draw("t_mssd_1_1"); + c1->Print("../figure/calib/t_mssd_1_1.png"); + ctree->Draw("t_mssd_1_2"); + c1->Print("../figure/calib/t_mssd_1_2.png"); + ctree->Draw("t_mssd_2_1"); + c1->Print("../figure/calib/t_mssd_2_1.png"); + ctree->Draw("t_mssd_2_2"); + c1->Print("../figure/calib/t_mssd_2_2.png"); + ctree->Draw("t_mssd_3_1"); + c1->Print("../figure/calib/t_mssd_3_1.png"); + ctree->Draw("t_mssd_3_2"); + c1->Print("../figure/calib/t_mssd_3_2.png"); + ctree->Draw("RF1"); + c1->Print("../figure/calib/RF1.png"); + ctree->Draw("RF2"); + c1->Print("../figure/calib/RF2.png"); + ctree->Draw("ssd_Tel1_E1"); + c1->Print("../figure/calib/ssd_Tel1_E1.png"); + ctree->Draw("ssd_Tel1_E2"); + c1->Print("../figure/calib/ssd_Tel1_E2.png"); + ctree->Draw("ssd_Tel2_E1"); + c1->Print("../figure/calib/ssd_Tel2_E1.png"); + ctree->Draw("ssd_Tel2_E2"); + c1->Print("../figure/calib/ssd_Tel2_E2.png"); + ctree->Draw("ssd_Tel3_E1"); + c1->Print("../figure/calib/ssd_Tel3_E1.png"); + ctree->Draw("ssd_Tel3_E2"); + c1->Print("../figure/calib/ssd_Tel3_E2.png"); + ctree->Draw("ssd_Tel4_E1"); + c1->Print("../figure/calib/ssd_Tel4_E1.png"); + ctree->Draw("ssd_Tel4_E2"); + c1->Print("../figure/calib/ssd_Tel4_E2.png"); + ctree->Draw("ssd_Tel5_E1"); + c1->Print("../figure/calib/ssd_Tel5_E1.png"); + ctree->Draw("ssd_Tel5_E2"); + c1->Print("../figure/calib/ssd_Tel5_E2.png"); + ctree->Draw("ssd_Lowgain_1"); + c1->Print("../figure/calib/ssd_Lowgain_1.png"); + ctree->Draw("ssd_Lowgain_2"); + c1->Print("../figure/calib/ssd_Lowgain_2.png"); + ctree->Draw("ssd_Lowgain_3"); + c1->Print("../figure/calib/ssd_Lowgain_3.png"); + ctree->Draw("ssd_Lowgain_4"); + c1->Print("../figure/calib/ssd_Lowgain_4.png"); + ctree->Draw("ssd_F2SSD"); + c1->Print("../figure/calib/ssd_F2SSD.png"); + ctree->Draw("t_ssd_Tel1_E1"); + c1->Print("../figure/calib/t_ssd_Tel1_E1.png"); + ctree->Draw("t_ssd_Tel1_E2"); + c1->Print("../figure/calib/t_ssd_Tel1_E2.png"); + ctree->Draw("t_ssd_Tel2_E1"); + c1->Print("../figure/calib/t_ssd_Tel2_E1.png"); + ctree->Draw("t_ssd_Tel2_E2"); + c1->Print("../figure/calib/t_ssd_Tel2_E2.png"); + ctree->Draw("t_ssd_Tel3_E1"); + c1->Print("../figure/calib/t_ssd_Tel3_E1.png"); + ctree->Draw("t_ssd_Tel3_E2"); + c1->Print("../figure/calib/t_ssd_Tel3_E2.png"); + ctree->Draw("t_ssd_Tel4_E1"); + c1->Print("../figure/calib/t_ssd_Tel4_E1.png"); + ctree->Draw("t_ssd_Tel4_E2"); + c1->Print("../figure/calib/t_ssd_Tel4_E2.png"); + ctree->Draw("t_ssd_Tel5_E1"); + c1->Print("../figure/calib/t_ssd_Tel5_E1.png"); + ctree->Draw("t_ssd_Tel5_E2"); + c1->Print("../figure/calib/t_ssd_Tel5_E2.png"); + ctree->Draw("t_ssd_Lowgain_1"); + c1->Print("../figure/calib/t_ssd_Lowgain_1.png"); + ctree->Draw("t_ssd_Lowgain_2"); + c1->Print("../figure/calib/t_ssd_Lowgain_2.png"); + ctree->Draw("t_ssd_Lowgain_3"); + c1->Print("../figure/calib/t_ssd_Lowgain_3.png"); + ctree->Draw("t_ssd_Lowgain_4"); + c1->Print("../figure/calib/t_ssd_Lowgain_4.png"); + ctree->Draw("t_ssd_F2SSD"); + c1->Print("../figure/calib/t_ssd_F2SSD.png"); +} + diff --git a/macro/check_map_tree.C b/macro/check_map_tree.C new file mode 100644 index 0000000..8a82b51 --- /dev/null +++ b/macro/check_map_tree.C @@ -0,0 +1,425 @@ +//this macro create all histograms and save as png file +//(for check the code is correct) +//CAUTION: many file will be created + +{ + gStyle->SetOptLogy(1); + + TCanvas *c1 = new TCanvas("c1", "c1"); + mtree->Draw("coin_Single[0]"); + c1->Print("../figure/map/coin_Single[0].png"); + mtree->Draw("coin_Coin[0]"); + c1->Print("../figure/map/coin_Coin[0].png"); + mtree->Draw("coin_Pileup[0]"); + c1->Print("../figure/map/coin_Pileup[0].png"); + mtree->Draw("dssd_Tel1_dE1X_1[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_1[0].png"); + mtree->Draw("dssd_Tel1_dE1X_1[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_1[1].png"); + mtree->Draw("dssd_Tel1_dE1X_2[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_2[0].png"); + mtree->Draw("dssd_Tel1_dE1X_2[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_2[1].png"); + mtree->Draw("dssd_Tel1_dE1X_3[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_3[0].png"); + mtree->Draw("dssd_Tel1_dE1X_3[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_3[1].png"); + mtree->Draw("dssd_Tel1_dE1X_4[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_4[0].png"); + mtree->Draw("dssd_Tel1_dE1X_4[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_4[1].png"); + mtree->Draw("dssd_Tel1_dE1X_5[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_5[0].png"); + mtree->Draw("dssd_Tel1_dE1X_5[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_5[1].png"); + mtree->Draw("dssd_Tel1_dE1X_6[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_6[0].png"); + mtree->Draw("dssd_Tel1_dE1X_6[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_6[1].png"); + mtree->Draw("dssd_Tel1_dE1X_7[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_7[0].png"); + mtree->Draw("dssd_Tel1_dE1X_7[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_7[1].png"); + mtree->Draw("dssd_Tel1_dE1X_8[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_8[0].png"); + mtree->Draw("dssd_Tel1_dE1X_8[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_8[1].png"); + mtree->Draw("dssd_Tel1_dE1X_9[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_9[0].png"); + mtree->Draw("dssd_Tel1_dE1X_9[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_9[1].png"); + mtree->Draw("dssd_Tel1_dE1X_10[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_10[0].png"); + mtree->Draw("dssd_Tel1_dE1X_10[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_10[1].png"); + mtree->Draw("dssd_Tel1_dE1X_11[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_11[0].png"); + mtree->Draw("dssd_Tel1_dE1X_11[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_11[1].png"); + mtree->Draw("dssd_Tel1_dE1X_12[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_12[0].png"); + mtree->Draw("dssd_Tel1_dE1X_12[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_12[1].png"); + mtree->Draw("dssd_Tel1_dE1X_13[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_13[0].png"); + mtree->Draw("dssd_Tel1_dE1X_13[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_13[1].png"); + mtree->Draw("dssd_Tel1_dE1X_14[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_14[0].png"); + mtree->Draw("dssd_Tel1_dE1X_14[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_14[1].png"); + mtree->Draw("dssd_Tel1_dE1X_15[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_15[0].png"); + mtree->Draw("dssd_Tel1_dE1X_15[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_15[1].png"); + mtree->Draw("dssd_Tel1_dE1X_16[0]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_16[0].png"); + mtree->Draw("dssd_Tel1_dE1X_16[1]"); + c1->Print("../figure/map/dssd_Tel1_dE1X_16[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_1[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_1[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_1[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_1[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_2[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_2[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_2[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_2[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_3[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_3[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_3[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_3[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_4[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_4[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_4[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_4[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_5[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_5[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_5[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_5[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_6[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_6[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_6[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_6[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_7[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_7[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_7[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_7[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_8[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_8[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_8[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_8[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_9[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_9[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_9[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_9[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_10[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_10[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_10[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_10[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_11[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_11[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_11[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_11[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_12[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_12[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_12[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_12[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_13[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_13[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_13[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_13[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_14[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_14[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_14[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_14[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_15[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_15[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_15[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_15[1].png"); + mtree->Draw("dssd_Tel1_dE2Y_16[0]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_16[0].png"); + mtree->Draw("dssd_Tel1_dE2Y_16[1]"); + c1->Print("../figure/map/dssd_Tel1_dE2Y_16[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_1[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_1[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_1[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_1[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_2[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_2[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_2[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_2[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_3[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_3[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_3[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_3[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_4[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_4[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_4[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_4[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_5[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_5[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_5[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_5[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_6[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_6[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_6[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_6[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_7[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_7[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_7[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_7[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_8[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_8[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_8[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_8[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_9[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_9[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_9[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_9[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_10[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_10[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_10[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_10[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_11[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_11[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_11[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_11[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_12[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_12[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_12[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_12[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_13[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_13[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_13[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_13[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_14[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_14[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_14[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_14[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_15[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_15[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_15[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_15[1].png"); + mtree->Draw("dssd_Tel2_dE2Y_16[0]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_16[0].png"); + mtree->Draw("dssd_Tel2_dE2Y_16[1]"); + c1->Print("../figure/map/dssd_Tel2_dE2Y_16[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_1[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_1[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_1[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_1[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_2[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_2[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_2[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_2[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_3[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_3[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_3[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_3[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_4[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_4[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_4[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_4[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_5[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_5[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_5[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_5[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_6[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_6[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_6[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_6[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_7[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_7[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_7[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_7[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_8[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_8[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_8[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_8[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_9[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_9[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_9[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_9[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_10[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_10[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_10[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_10[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_11[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_11[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_11[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_11[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_12[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_12[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_12[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_12[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_13[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_13[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_13[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_13[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_14[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_14[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_14[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_14[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_15[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_15[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_15[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_15[1].png"); + mtree->Draw("dssd_Tel3_dE2Y_16[0]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_16[0].png"); + mtree->Draw("dssd_Tel3_dE2Y_16[1]"); + c1->Print("../figure/map/dssd_Tel3_dE2Y_16[1].png"); + mtree->Draw("mssd_1_1[0]"); + c1->Print("../figure/map/mssd_1_1[0].png"); + mtree->Draw("mssd_1_1[1]"); + c1->Print("../figure/map/mssd_1_1[1].png"); + mtree->Draw("mssd_1_1[2]"); + c1->Print("../figure/map/mssd_1_1[2].png"); + mtree->Draw("mssd_1_1[3]"); + c1->Print("../figure/map/mssd_1_1[3].png"); + mtree->Draw("mssd_1_1[4]"); + c1->Print("../figure/map/mssd_1_1[4].png"); + mtree->Draw("mssd_1_2[0]"); + c1->Print("../figure/map/mssd_1_2[0].png"); + mtree->Draw("mssd_1_2[1]"); + c1->Print("../figure/map/mssd_1_2[1].png"); + mtree->Draw("mssd_1_2[2]"); + c1->Print("../figure/map/mssd_1_2[2].png"); + mtree->Draw("mssd_1_2[3]"); + c1->Print("../figure/map/mssd_1_2[3].png"); + mtree->Draw("mssd_1_2[4]"); + c1->Print("../figure/map/mssd_1_2[4].png"); + mtree->Draw("mssd_2_1[0]"); + c1->Print("../figure/map/mssd_2_1[0].png"); + mtree->Draw("mssd_2_1[1]"); + c1->Print("../figure/map/mssd_2_1[1].png"); + mtree->Draw("mssd_2_1[2]"); + c1->Print("../figure/map/mssd_2_1[2].png"); + mtree->Draw("mssd_2_1[3]"); + c1->Print("../figure/map/mssd_2_1[3].png"); + mtree->Draw("mssd_2_1[4]"); + c1->Print("../figure/map/mssd_2_1[4].png"); + mtree->Draw("mssd_2_2[0]"); + c1->Print("../figure/map/mssd_2_2[0].png"); + mtree->Draw("mssd_2_2[1]"); + c1->Print("../figure/map/mssd_2_2[1].png"); + mtree->Draw("mssd_2_2[2]"); + c1->Print("../figure/map/mssd_2_2[2].png"); + mtree->Draw("mssd_2_2[3]"); + c1->Print("../figure/map/mssd_2_2[3].png"); + mtree->Draw("mssd_2_2[4]"); + c1->Print("../figure/map/mssd_2_2[4].png"); + mtree->Draw("mssd_3_1[0]"); + c1->Print("../figure/map/mssd_3_1[0].png"); + mtree->Draw("mssd_3_1[1]"); + c1->Print("../figure/map/mssd_3_1[1].png"); + mtree->Draw("mssd_3_1[2]"); + c1->Print("../figure/map/mssd_3_1[2].png"); + mtree->Draw("mssd_3_1[3]"); + c1->Print("../figure/map/mssd_3_1[3].png"); + mtree->Draw("mssd_3_1[4]"); + c1->Print("../figure/map/mssd_3_1[4].png"); + mtree->Draw("mssd_3_2[0]"); + c1->Print("../figure/map/mssd_3_2[0].png"); + mtree->Draw("mssd_3_2[1]"); + c1->Print("../figure/map/mssd_3_2[1].png"); + mtree->Draw("mssd_3_2[2]"); + c1->Print("../figure/map/mssd_3_2[2].png"); + mtree->Draw("mssd_3_2[3]"); + c1->Print("../figure/map/mssd_3_2[3].png"); + mtree->Draw("mssd_3_2[4]"); + c1->Print("../figure/map/mssd_3_2[4].png"); + mtree->Draw("ppac_F1[0]"); + c1->Print("../figure/map/ppac_F1[0].png"); + mtree->Draw("ppac_F1[1]"); + c1->Print("../figure/map/ppac_F1[1].png"); + mtree->Draw("ppac_F1[2]"); + c1->Print("../figure/map/ppac_F1[2].png"); + mtree->Draw("ppac_F1[3]"); + c1->Print("../figure/map/ppac_F1[3].png"); + mtree->Draw("ppac_F1[4]"); + c1->Print("../figure/map/ppac_F1[4].png"); + mtree->Draw("ppac_F2_F3_B[0]"); + c1->Print("../figure/map/ppac_F2_F3_B[0].png"); + mtree->Draw("ppac_F2_F3_B[1]"); + c1->Print("../figure/map/ppac_F2_F3_B[1].png"); + mtree->Draw("ppac_F2_F3_B[2]"); + c1->Print("../figure/map/ppac_F2_F3_B[2].png"); + mtree->Draw("ppac_F2_F3_B[3]"); + c1->Print("../figure/map/ppac_F2_F3_B[3].png"); + mtree->Draw("ppac_F2_F3_B[4]"); + c1->Print("../figure/map/ppac_F2_F3_B[4].png"); + mtree->Draw("ppac_F3_A[0]"); + c1->Print("../figure/map/ppac_F3_A[0].png"); + mtree->Draw("ppac_F3_A[1]"); + c1->Print("../figure/map/ppac_F3_A[1].png"); + mtree->Draw("ppac_F3_A[2]"); + c1->Print("../figure/map/ppac_F3_A[2].png"); + mtree->Draw("ppac_F3_A[3]"); + c1->Print("../figure/map/ppac_F3_A[3].png"); + mtree->Draw("ppac_F3_A[4]"); + c1->Print("../figure/map/ppac_F3_A[4].png"); + mtree->Draw("rf_RF[0]"); + c1->Print("../figure/map/rf_RF[0].png"); + mtree->Draw("rf_RF[1]"); + c1->Print("../figure/map/rf_RF[1].png"); + mtree->Draw("ssd_Tel1_E1[0]"); + c1->Print("../figure/map/ssd_Tel1_E1[0].png"); + mtree->Draw("ssd_Tel1_E1[1]"); + c1->Print("../figure/map/ssd_Tel1_E1[1].png"); + mtree->Draw("ssd_Tel1_E2[0]"); + c1->Print("../figure/map/ssd_Tel1_E2[0].png"); + mtree->Draw("ssd_Tel1_E2[1]"); + c1->Print("../figure/map/ssd_Tel1_E2[1].png"); + mtree->Draw("ssd_Tel2_E1[0]"); + c1->Print("../figure/map/ssd_Tel2_E1[0].png"); + mtree->Draw("ssd_Tel2_E1[1]"); + c1->Print("../figure/map/ssd_Tel2_E1[1].png"); + mtree->Draw("ssd_Tel2_E2[0]"); + c1->Print("../figure/map/ssd_Tel2_E2[0].png"); + mtree->Draw("ssd_Tel2_E2[1]"); + c1->Print("../figure/map/ssd_Tel2_E2[1].png"); + mtree->Draw("ssd_Tel3_E1[0]"); + c1->Print("../figure/map/ssd_Tel3_E1[0].png"); + mtree->Draw("ssd_Tel3_E1[1]"); + c1->Print("../figure/map/ssd_Tel3_E1[1].png"); + mtree->Draw("ssd_Tel3_E2[0]"); + c1->Print("../figure/map/ssd_Tel3_E2[0].png"); + mtree->Draw("ssd_Tel3_E2[1]"); + c1->Print("../figure/map/ssd_Tel3_E2[1].png"); + mtree->Draw("ssd_Tel4_E1[0]"); + c1->Print("../figure/map/ssd_Tel4_E1[0].png"); + mtree->Draw("ssd_Tel4_E1[1]"); + c1->Print("../figure/map/ssd_Tel4_E1[1].png"); + mtree->Draw("ssd_Tel4_E2[0]"); + c1->Print("../figure/map/ssd_Tel4_E2[0].png"); + mtree->Draw("ssd_Tel4_E2[1]"); + c1->Print("../figure/map/ssd_Tel4_E2[1].png"); + mtree->Draw("ssd_Tel5_E1[0]"); + c1->Print("../figure/map/ssd_Tel5_E1[0].png"); + mtree->Draw("ssd_Tel5_E1[1]"); + c1->Print("../figure/map/ssd_Tel5_E1[1].png"); + mtree->Draw("ssd_Tel5_E2[0]"); + c1->Print("../figure/map/ssd_Tel5_E2[0].png"); + mtree->Draw("ssd_Tel5_E2[1]"); + c1->Print("../figure/map/ssd_Tel5_E2[1].png"); + mtree->Draw("ssd_Lowgain_1[0]"); + c1->Print("../figure/map/ssd_Lowgain_1[0].png"); + mtree->Draw("ssd_Lowgain_1[1]"); + c1->Print("../figure/map/ssd_Lowgain_1[1].png"); + mtree->Draw("ssd_Lowgain_2[0]"); + c1->Print("../figure/map/ssd_Lowgain_2[0].png"); + mtree->Draw("ssd_Lowgain_2[1]"); + c1->Print("../figure/map/ssd_Lowgain_2[1].png"); + mtree->Draw("ssd_Lowgain_3[0]"); + c1->Print("../figure/map/ssd_Lowgain_3[0].png"); + mtree->Draw("ssd_Lowgain_3[1]"); + c1->Print("../figure/map/ssd_Lowgain_3[1].png"); + mtree->Draw("ssd_Lowgain_4[0]"); + c1->Print("../figure/map/ssd_Lowgain_4[0].png"); + mtree->Draw("ssd_Lowgain_4[1]"); + c1->Print("../figure/map/ssd_Lowgain_4[1].png"); + mtree->Draw("ssd_F2SSD[0]"); + c1->Print("../figure/map/ssd_F2SSD[0].png"); + mtree->Draw("ssd_F2SSD[1]"); + c1->Print("../figure/map/ssd_F2SSD[1].png"); +} diff --git a/macro/check_raw_tree.C b/macro/check_raw_tree.C new file mode 100644 index 0000000..3c0ff03 --- /dev/null +++ b/macro/check_raw_tree.C @@ -0,0 +1,2057 @@ +//this macro create all histograms and save as png file +//(for check the macro is correct) +//CAUTION: many file will be created + +{ + gStyle->SetOptLogy(1); + + TCanvas *c1 = new TCanvas("c1", "c1"); + tree->Draw("adc1[0]"); + c1->Print("../figure/raw/adc1[0].png"); + tree->Draw("adc1[1]"); + c1->Print("../figure/raw/adc1[1].png"); + tree->Draw("adc1[2]"); + c1->Print("../figure/raw/adc1[2].png"); + tree->Draw("adc1[3]"); + c1->Print("../figure/raw/adc1[3].png"); + tree->Draw("adc1[4]"); + c1->Print("../figure/raw/adc1[4].png"); + tree->Draw("adc1[5]"); + c1->Print("../figure/raw/adc1[5].png"); + tree->Draw("adc1[6]"); + c1->Print("../figure/raw/adc1[6].png"); + tree->Draw("adc1[7]"); + c1->Print("../figure/raw/adc1[7].png"); + tree->Draw("adc1[8]"); + c1->Print("../figure/raw/adc1[8].png"); + tree->Draw("adc1[9]"); + c1->Print("../figure/raw/adc1[9].png"); + tree->Draw("adc1[10]"); + c1->Print("../figure/raw/adc1[10].png"); + tree->Draw("adc1[11]"); + c1->Print("../figure/raw/adc1[11].png"); + tree->Draw("adc1[12]"); + c1->Print("../figure/raw/adc1[12].png"); + tree->Draw("adc1[13]"); + c1->Print("../figure/raw/adc1[13].png"); + tree->Draw("adc1[14]"); + c1->Print("../figure/raw/adc1[14].png"); + tree->Draw("adc1[15]"); + c1->Print("../figure/raw/adc1[15].png"); + tree->Draw("adc1[16]"); + c1->Print("../figure/raw/adc1[16].png"); + tree->Draw("adc1[17]"); + c1->Print("../figure/raw/adc1[17].png"); + tree->Draw("adc1[18]"); + c1->Print("../figure/raw/adc1[18].png"); + tree->Draw("adc1[19]"); + c1->Print("../figure/raw/adc1[19].png"); + tree->Draw("adc1[20]"); + c1->Print("../figure/raw/adc1[20].png"); + tree->Draw("adc1[21]"); + c1->Print("../figure/raw/adc1[21].png"); + tree->Draw("adc1[22]"); + c1->Print("../figure/raw/adc1[22].png"); + tree->Draw("adc1[23]"); + c1->Print("../figure/raw/adc1[23].png"); + tree->Draw("adc1[24]"); + c1->Print("../figure/raw/adc1[24].png"); + tree->Draw("adc1[25]"); + c1->Print("../figure/raw/adc1[25].png"); + tree->Draw("adc1[26]"); + c1->Print("../figure/raw/adc1[26].png"); + tree->Draw("adc1[27]"); + c1->Print("../figure/raw/adc1[27].png"); + tree->Draw("adc1[28]"); + c1->Print("../figure/raw/adc1[28].png"); + tree->Draw("adc1[29]"); + c1->Print("../figure/raw/adc1[29].png"); + tree->Draw("adc1[30]"); + c1->Print("../figure/raw/adc1[30].png"); + tree->Draw("adc1[31]"); + c1->Print("../figure/raw/adc1[31].png"); + tree->Draw("adc2[0]"); + c1->Print("../figure/raw/adc2[0].png"); + tree->Draw("adc2[1]"); + c1->Print("../figure/raw/adc2[1].png"); + tree->Draw("adc2[2]"); + c1->Print("../figure/raw/adc2[2].png"); + tree->Draw("adc2[3]"); + c1->Print("../figure/raw/adc2[3].png"); + tree->Draw("adc2[4]"); + c1->Print("../figure/raw/adc2[4].png"); + tree->Draw("adc2[5]"); + c1->Print("../figure/raw/adc2[5].png"); + tree->Draw("adc2[6]"); + c1->Print("../figure/raw/adc2[6].png"); + tree->Draw("adc2[7]"); + c1->Print("../figure/raw/adc2[7].png"); + tree->Draw("adc2[8]"); + c1->Print("../figure/raw/adc2[8].png"); + tree->Draw("adc2[9]"); + c1->Print("../figure/raw/adc2[9].png"); + tree->Draw("adc2[10]"); + c1->Print("../figure/raw/adc2[10].png"); + tree->Draw("adc2[11]"); + c1->Print("../figure/raw/adc2[11].png"); + tree->Draw("adc2[12]"); + c1->Print("../figure/raw/adc2[12].png"); + tree->Draw("adc2[13]"); + c1->Print("../figure/raw/adc2[13].png"); + tree->Draw("adc2[14]"); + c1->Print("../figure/raw/adc2[14].png"); + tree->Draw("adc2[15]"); + c1->Print("../figure/raw/adc2[15].png"); + tree->Draw("adc2[16]"); + c1->Print("../figure/raw/adc2[16].png"); + tree->Draw("adc2[17]"); + c1->Print("../figure/raw/adc2[17].png"); + tree->Draw("adc2[18]"); + c1->Print("../figure/raw/adc2[18].png"); + tree->Draw("adc2[19]"); + c1->Print("../figure/raw/adc2[19].png"); + tree->Draw("adc2[20]"); + c1->Print("../figure/raw/adc2[20].png"); + tree->Draw("adc2[21]"); + c1->Print("../figure/raw/adc2[21].png"); + tree->Draw("adc2[22]"); + c1->Print("../figure/raw/adc2[22].png"); + tree->Draw("adc2[23]"); + c1->Print("../figure/raw/adc2[23].png"); + tree->Draw("adc2[24]"); + c1->Print("../figure/raw/adc2[24].png"); + tree->Draw("adc2[25]"); + c1->Print("../figure/raw/adc2[25].png"); + tree->Draw("adc2[26]"); + c1->Print("../figure/raw/adc2[26].png"); + tree->Draw("adc2[27]"); + c1->Print("../figure/raw/adc2[27].png"); + tree->Draw("adc2[28]"); + c1->Print("../figure/raw/adc2[28].png"); + tree->Draw("adc2[29]"); + c1->Print("../figure/raw/adc2[29].png"); + tree->Draw("adc2[30]"); + c1->Print("../figure/raw/adc2[30].png"); + tree->Draw("adc2[31]"); + c1->Print("../figure/raw/adc2[31].png"); + tree->Draw("madc1[0]"); + c1->Print("../figure/raw/madc1[0].png"); + tree->Draw("madc1[1]"); + c1->Print("../figure/raw/madc1[1].png"); + tree->Draw("madc1[2]"); + c1->Print("../figure/raw/madc1[2].png"); + tree->Draw("madc1[3]"); + c1->Print("../figure/raw/madc1[3].png"); + tree->Draw("madc1[4]"); + c1->Print("../figure/raw/madc1[4].png"); + tree->Draw("madc1[5]"); + c1->Print("../figure/raw/madc1[5].png"); + tree->Draw("madc1[6]"); + c1->Print("../figure/raw/madc1[6].png"); + tree->Draw("madc1[7]"); + c1->Print("../figure/raw/madc1[7].png"); + tree->Draw("madc1[8]"); + c1->Print("../figure/raw/madc1[8].png"); + tree->Draw("madc1[9]"); + c1->Print("../figure/raw/madc1[9].png"); + tree->Draw("madc1[10]"); + c1->Print("../figure/raw/madc1[10].png"); + tree->Draw("madc1[11]"); + c1->Print("../figure/raw/madc1[11].png"); + tree->Draw("madc1[12]"); + c1->Print("../figure/raw/madc1[12].png"); + tree->Draw("madc1[13]"); + c1->Print("../figure/raw/madc1[13].png"); + tree->Draw("madc1[14]"); + c1->Print("../figure/raw/madc1[14].png"); + tree->Draw("madc1[15]"); + c1->Print("../figure/raw/madc1[15].png"); + tree->Draw("madc1[16]"); + c1->Print("../figure/raw/madc1[16].png"); + tree->Draw("madc1[17]"); + c1->Print("../figure/raw/madc1[17].png"); + tree->Draw("madc1[18]"); + c1->Print("../figure/raw/madc1[18].png"); + tree->Draw("madc1[19]"); + c1->Print("../figure/raw/madc1[19].png"); + tree->Draw("madc1[20]"); + c1->Print("../figure/raw/madc1[20].png"); + tree->Draw("madc1[21]"); + c1->Print("../figure/raw/madc1[21].png"); + tree->Draw("madc1[22]"); + c1->Print("../figure/raw/madc1[22].png"); + tree->Draw("madc1[23]"); + c1->Print("../figure/raw/madc1[23].png"); + tree->Draw("madc1[24]"); + c1->Print("../figure/raw/madc1[24].png"); + tree->Draw("madc1[25]"); + c1->Print("../figure/raw/madc1[25].png"); + tree->Draw("madc1[26]"); + c1->Print("../figure/raw/madc1[26].png"); + tree->Draw("madc1[27]"); + c1->Print("../figure/raw/madc1[27].png"); + tree->Draw("madc1[28]"); + c1->Print("../figure/raw/madc1[28].png"); + tree->Draw("madc1[29]"); + c1->Print("../figure/raw/madc1[29].png"); + tree->Draw("madc1[30]"); + c1->Print("../figure/raw/madc1[30].png"); + tree->Draw("madc1[31]"); + c1->Print("../figure/raw/madc1[31].png"); + tree->Draw("madc2[0]"); + c1->Print("../figure/raw/madc2[0].png"); + tree->Draw("madc2[1]"); + c1->Print("../figure/raw/madc2[1].png"); + tree->Draw("madc2[2]"); + c1->Print("../figure/raw/madc2[2].png"); + tree->Draw("madc2[3]"); + c1->Print("../figure/raw/madc2[3].png"); + tree->Draw("madc2[4]"); + c1->Print("../figure/raw/madc2[4].png"); + tree->Draw("madc2[5]"); + c1->Print("../figure/raw/madc2[5].png"); + tree->Draw("madc2[6]"); + c1->Print("../figure/raw/madc2[6].png"); + tree->Draw("madc2[7]"); + c1->Print("../figure/raw/madc2[7].png"); + tree->Draw("madc2[8]"); + c1->Print("../figure/raw/madc2[8].png"); + tree->Draw("madc2[9]"); + c1->Print("../figure/raw/madc2[9].png"); + tree->Draw("madc2[10]"); + c1->Print("../figure/raw/madc2[10].png"); + tree->Draw("madc2[11]"); + c1->Print("../figure/raw/madc2[11].png"); + tree->Draw("madc2[12]"); + c1->Print("../figure/raw/madc2[12].png"); + tree->Draw("madc2[13]"); + c1->Print("../figure/raw/madc2[13].png"); + tree->Draw("madc2[14]"); + c1->Print("../figure/raw/madc2[14].png"); + tree->Draw("madc2[15]"); + c1->Print("../figure/raw/madc2[15].png"); + tree->Draw("madc2[16]"); + c1->Print("../figure/raw/madc2[16].png"); + tree->Draw("madc2[17]"); + c1->Print("../figure/raw/madc2[17].png"); + tree->Draw("madc2[18]"); + c1->Print("../figure/raw/madc2[18].png"); + tree->Draw("madc2[19]"); + c1->Print("../figure/raw/madc2[19].png"); + tree->Draw("madc2[20]"); + c1->Print("../figure/raw/madc2[20].png"); + tree->Draw("madc2[21]"); + c1->Print("../figure/raw/madc2[21].png"); + tree->Draw("madc2[22]"); + c1->Print("../figure/raw/madc2[22].png"); + tree->Draw("madc2[23]"); + c1->Print("../figure/raw/madc2[23].png"); + tree->Draw("madc2[24]"); + c1->Print("../figure/raw/madc2[24].png"); + tree->Draw("madc2[25]"); + c1->Print("../figure/raw/madc2[25].png"); + tree->Draw("madc2[26]"); + c1->Print("../figure/raw/madc2[26].png"); + tree->Draw("madc2[27]"); + c1->Print("../figure/raw/madc2[27].png"); + tree->Draw("madc2[28]"); + c1->Print("../figure/raw/madc2[28].png"); + tree->Draw("madc2[29]"); + c1->Print("../figure/raw/madc2[29].png"); + tree->Draw("madc2[30]"); + c1->Print("../figure/raw/madc2[30].png"); + tree->Draw("madc2[31]"); + c1->Print("../figure/raw/madc2[31].png"); + tree->Draw("tdc1[0]"); + c1->Print("../figure/raw/tdc1[0].png"); + tree->Draw("tdc1[1]"); + c1->Print("../figure/raw/tdc1[1].png"); + tree->Draw("tdc1[2]"); + c1->Print("../figure/raw/tdc1[2].png"); + tree->Draw("tdc1[3]"); + c1->Print("../figure/raw/tdc1[3].png"); + tree->Draw("tdc1[4]"); + c1->Print("../figure/raw/tdc1[4].png"); + tree->Draw("tdc1[5]"); + c1->Print("../figure/raw/tdc1[5].png"); + tree->Draw("tdc1[6]"); + c1->Print("../figure/raw/tdc1[6].png"); + tree->Draw("tdc1[7]"); + c1->Print("../figure/raw/tdc1[7].png"); + tree->Draw("tdc1[8]"); + c1->Print("../figure/raw/tdc1[8].png"); + tree->Draw("tdc1[9]"); + c1->Print("../figure/raw/tdc1[9].png"); + tree->Draw("tdc1[10]"); + c1->Print("../figure/raw/tdc1[10].png"); + tree->Draw("tdc1[11]"); + c1->Print("../figure/raw/tdc1[11].png"); + tree->Draw("tdc1[12]"); + c1->Print("../figure/raw/tdc1[12].png"); + tree->Draw("tdc1[13]"); + c1->Print("../figure/raw/tdc1[13].png"); + tree->Draw("tdc1[14]"); + c1->Print("../figure/raw/tdc1[14].png"); + tree->Draw("tdc1[15]"); + c1->Print("../figure/raw/tdc1[15].png"); + tree->Draw("tdc1[16]"); + c1->Print("../figure/raw/tdc1[16].png"); + tree->Draw("tdc1[17]"); + c1->Print("../figure/raw/tdc1[17].png"); + tree->Draw("tdc1[18]"); + c1->Print("../figure/raw/tdc1[18].png"); + tree->Draw("tdc1[19]"); + c1->Print("../figure/raw/tdc1[19].png"); + tree->Draw("tdc1[20]"); + c1->Print("../figure/raw/tdc1[20].png"); + tree->Draw("tdc1[21]"); + c1->Print("../figure/raw/tdc1[21].png"); + tree->Draw("tdc1[22]"); + c1->Print("../figure/raw/tdc1[22].png"); + tree->Draw("tdc1[23]"); + c1->Print("../figure/raw/tdc1[23].png"); + tree->Draw("tdc1[24]"); + c1->Print("../figure/raw/tdc1[24].png"); + tree->Draw("tdc1[25]"); + c1->Print("../figure/raw/tdc1[25].png"); + tree->Draw("tdc1[26]"); + c1->Print("../figure/raw/tdc1[26].png"); + tree->Draw("tdc1[27]"); + c1->Print("../figure/raw/tdc1[27].png"); + tree->Draw("tdc1[28]"); + c1->Print("../figure/raw/tdc1[28].png"); + tree->Draw("tdc1[29]"); + c1->Print("../figure/raw/tdc1[29].png"); + tree->Draw("tdc1[30]"); + c1->Print("../figure/raw/tdc1[30].png"); + tree->Draw("tdc1[31]"); + c1->Print("../figure/raw/tdc1[31].png"); + tree->Draw("tdc2[0]"); + c1->Print("../figure/raw/tdc2[0].png"); + tree->Draw("tdc2[1]"); + c1->Print("../figure/raw/tdc2[1].png"); + tree->Draw("tdc2[2]"); + c1->Print("../figure/raw/tdc2[2].png"); + tree->Draw("tdc2[3]"); + c1->Print("../figure/raw/tdc2[3].png"); + tree->Draw("tdc2[4]"); + c1->Print("../figure/raw/tdc2[4].png"); + tree->Draw("tdc2[5]"); + c1->Print("../figure/raw/tdc2[5].png"); + tree->Draw("tdc2[6]"); + c1->Print("../figure/raw/tdc2[6].png"); + tree->Draw("tdc2[7]"); + c1->Print("../figure/raw/tdc2[7].png"); + tree->Draw("tdc2[8]"); + c1->Print("../figure/raw/tdc2[8].png"); + tree->Draw("tdc2[9]"); + c1->Print("../figure/raw/tdc2[9].png"); + tree->Draw("tdc2[10]"); + c1->Print("../figure/raw/tdc2[10].png"); + tree->Draw("tdc2[11]"); + c1->Print("../figure/raw/tdc2[11].png"); + tree->Draw("tdc2[12]"); + c1->Print("../figure/raw/tdc2[12].png"); + tree->Draw("tdc2[13]"); + c1->Print("../figure/raw/tdc2[13].png"); + tree->Draw("tdc2[14]"); + c1->Print("../figure/raw/tdc2[14].png"); + tree->Draw("tdc2[15]"); + c1->Print("../figure/raw/tdc2[15].png"); + tree->Draw("tdc2[16]"); + c1->Print("../figure/raw/tdc2[16].png"); + tree->Draw("tdc2[17]"); + c1->Print("../figure/raw/tdc2[17].png"); + tree->Draw("tdc2[18]"); + c1->Print("../figure/raw/tdc2[18].png"); + tree->Draw("tdc2[19]"); + c1->Print("../figure/raw/tdc2[19].png"); + tree->Draw("tdc2[20]"); + c1->Print("../figure/raw/tdc2[20].png"); + tree->Draw("tdc2[21]"); + c1->Print("../figure/raw/tdc2[21].png"); + tree->Draw("tdc2[22]"); + c1->Print("../figure/raw/tdc2[22].png"); + tree->Draw("tdc2[23]"); + c1->Print("../figure/raw/tdc2[23].png"); + tree->Draw("tdc2[24]"); + c1->Print("../figure/raw/tdc2[24].png"); + tree->Draw("tdc2[25]"); + c1->Print("../figure/raw/tdc2[25].png"); + tree->Draw("tdc2[26]"); + c1->Print("../figure/raw/tdc2[26].png"); + tree->Draw("tdc2[27]"); + c1->Print("../figure/raw/tdc2[27].png"); + tree->Draw("tdc2[28]"); + c1->Print("../figure/raw/tdc2[28].png"); + tree->Draw("tdc2[29]"); + c1->Print("../figure/raw/tdc2[29].png"); + tree->Draw("tdc2[30]"); + c1->Print("../figure/raw/tdc2[30].png"); + tree->Draw("tdc2[31]"); + c1->Print("../figure/raw/tdc2[31].png"); + tree->Draw("mhtdc[0][0]"); + c1->Print("../figure/raw/mhtdc[0][0].png"); + tree->Draw("mhtdc[0][1]"); + c1->Print("../figure/raw/mhtdc[0][1].png"); + tree->Draw("mhtdc[0][2]"); + c1->Print("../figure/raw/mhtdc[0][2].png"); + tree->Draw("mhtdc[0][3]"); + c1->Print("../figure/raw/mhtdc[0][3].png"); + tree->Draw("mhtdc[0][4]"); + c1->Print("../figure/raw/mhtdc[0][4].png"); + tree->Draw("mhtdc[0][5]"); + c1->Print("../figure/raw/mhtdc[0][5].png"); + tree->Draw("mhtdc[0][6]"); + c1->Print("../figure/raw/mhtdc[0][6].png"); + tree->Draw("mhtdc[0][7]"); + c1->Print("../figure/raw/mhtdc[0][7].png"); + tree->Draw("mhtdc[0][8]"); + c1->Print("../figure/raw/mhtdc[0][8].png"); + tree->Draw("mhtdc[0][9]"); + c1->Print("../figure/raw/mhtdc[0][9].png"); + tree->Draw("mhtdc[0][10]"); + c1->Print("../figure/raw/mhtdc[0][10].png"); + tree->Draw("mhtdc[0][11]"); + c1->Print("../figure/raw/mhtdc[0][11].png"); + tree->Draw("mhtdc[1][0]"); + c1->Print("../figure/raw/mhtdc[1][0].png"); + tree->Draw("mhtdc[1][1]"); + c1->Print("../figure/raw/mhtdc[1][1].png"); + tree->Draw("mhtdc[1][2]"); + c1->Print("../figure/raw/mhtdc[1][2].png"); + tree->Draw("mhtdc[1][3]"); + c1->Print("../figure/raw/mhtdc[1][3].png"); + tree->Draw("mhtdc[1][4]"); + c1->Print("../figure/raw/mhtdc[1][4].png"); + tree->Draw("mhtdc[1][5]"); + c1->Print("../figure/raw/mhtdc[1][5].png"); + tree->Draw("mhtdc[1][6]"); + c1->Print("../figure/raw/mhtdc[1][6].png"); + tree->Draw("mhtdc[1][7]"); + c1->Print("../figure/raw/mhtdc[1][7].png"); + tree->Draw("mhtdc[1][8]"); + c1->Print("../figure/raw/mhtdc[1][8].png"); + tree->Draw("mhtdc[1][9]"); + c1->Print("../figure/raw/mhtdc[1][9].png"); + tree->Draw("mhtdc[1][10]"); + c1->Print("../figure/raw/mhtdc[1][10].png"); + tree->Draw("mhtdc[1][11]"); + c1->Print("../figure/raw/mhtdc[1][11].png"); + tree->Draw("mhtdc[2][0]"); + c1->Print("../figure/raw/mhtdc[2][0].png"); + tree->Draw("mhtdc[2][1]"); + c1->Print("../figure/raw/mhtdc[2][1].png"); + tree->Draw("mhtdc[2][2]"); + c1->Print("../figure/raw/mhtdc[2][2].png"); + tree->Draw("mhtdc[2][3]"); + c1->Print("../figure/raw/mhtdc[2][3].png"); + tree->Draw("mhtdc[2][4]"); + c1->Print("../figure/raw/mhtdc[2][4].png"); + tree->Draw("mhtdc[2][5]"); + c1->Print("../figure/raw/mhtdc[2][5].png"); + tree->Draw("mhtdc[2][6]"); + c1->Print("../figure/raw/mhtdc[2][6].png"); + tree->Draw("mhtdc[2][7]"); + c1->Print("../figure/raw/mhtdc[2][7].png"); + tree->Draw("mhtdc[2][8]"); + c1->Print("../figure/raw/mhtdc[2][8].png"); + tree->Draw("mhtdc[2][9]"); + c1->Print("../figure/raw/mhtdc[2][9].png"); + tree->Draw("mhtdc[2][10]"); + c1->Print("../figure/raw/mhtdc[2][10].png"); + tree->Draw("mhtdc[2][11]"); + c1->Print("../figure/raw/mhtdc[2][11].png"); + tree->Draw("mhtdc[3][0]"); + c1->Print("../figure/raw/mhtdc[3][0].png"); + tree->Draw("mhtdc[3][1]"); + c1->Print("../figure/raw/mhtdc[3][1].png"); + tree->Draw("mhtdc[3][2]"); + c1->Print("../figure/raw/mhtdc[3][2].png"); + tree->Draw("mhtdc[3][3]"); + c1->Print("../figure/raw/mhtdc[3][3].png"); + tree->Draw("mhtdc[3][4]"); + c1->Print("../figure/raw/mhtdc[3][4].png"); + tree->Draw("mhtdc[3][5]"); + c1->Print("../figure/raw/mhtdc[3][5].png"); + tree->Draw("mhtdc[3][6]"); + c1->Print("../figure/raw/mhtdc[3][6].png"); + tree->Draw("mhtdc[3][7]"); + c1->Print("../figure/raw/mhtdc[3][7].png"); + tree->Draw("mhtdc[3][8]"); + c1->Print("../figure/raw/mhtdc[3][8].png"); + tree->Draw("mhtdc[3][9]"); + c1->Print("../figure/raw/mhtdc[3][9].png"); + tree->Draw("mhtdc[3][10]"); + c1->Print("../figure/raw/mhtdc[3][10].png"); + tree->Draw("mhtdc[3][11]"); + c1->Print("../figure/raw/mhtdc[3][11].png"); + tree->Draw("mhtdc[4][0]"); + c1->Print("../figure/raw/mhtdc[4][0].png"); + tree->Draw("mhtdc[4][1]"); + c1->Print("../figure/raw/mhtdc[4][1].png"); + tree->Draw("mhtdc[4][2]"); + c1->Print("../figure/raw/mhtdc[4][2].png"); + tree->Draw("mhtdc[4][3]"); + c1->Print("../figure/raw/mhtdc[4][3].png"); + tree->Draw("mhtdc[4][4]"); + c1->Print("../figure/raw/mhtdc[4][4].png"); + tree->Draw("mhtdc[4][5]"); + c1->Print("../figure/raw/mhtdc[4][5].png"); + tree->Draw("mhtdc[4][6]"); + c1->Print("../figure/raw/mhtdc[4][6].png"); + tree->Draw("mhtdc[4][7]"); + c1->Print("../figure/raw/mhtdc[4][7].png"); + tree->Draw("mhtdc[4][8]"); + c1->Print("../figure/raw/mhtdc[4][8].png"); + tree->Draw("mhtdc[4][9]"); + c1->Print("../figure/raw/mhtdc[4][9].png"); + tree->Draw("mhtdc[4][10]"); + c1->Print("../figure/raw/mhtdc[4][10].png"); + tree->Draw("mhtdc[4][11]"); + c1->Print("../figure/raw/mhtdc[4][11].png"); + tree->Draw("mhtdc[5][0]"); + c1->Print("../figure/raw/mhtdc[5][0].png"); + tree->Draw("mhtdc[5][1]"); + c1->Print("../figure/raw/mhtdc[5][1].png"); + tree->Draw("mhtdc[5][2]"); + c1->Print("../figure/raw/mhtdc[5][2].png"); + tree->Draw("mhtdc[5][3]"); + c1->Print("../figure/raw/mhtdc[5][3].png"); + tree->Draw("mhtdc[5][4]"); + c1->Print("../figure/raw/mhtdc[5][4].png"); + tree->Draw("mhtdc[5][5]"); + c1->Print("../figure/raw/mhtdc[5][5].png"); + tree->Draw("mhtdc[5][6]"); + c1->Print("../figure/raw/mhtdc[5][6].png"); + tree->Draw("mhtdc[5][7]"); + c1->Print("../figure/raw/mhtdc[5][7].png"); + tree->Draw("mhtdc[5][8]"); + c1->Print("../figure/raw/mhtdc[5][8].png"); + tree->Draw("mhtdc[5][9]"); + c1->Print("../figure/raw/mhtdc[5][9].png"); + tree->Draw("mhtdc[5][10]"); + c1->Print("../figure/raw/mhtdc[5][10].png"); + tree->Draw("mhtdc[5][11]"); + c1->Print("../figure/raw/mhtdc[5][11].png"); + tree->Draw("mhtdc[6][0]"); + c1->Print("../figure/raw/mhtdc[6][0].png"); + tree->Draw("mhtdc[6][1]"); + c1->Print("../figure/raw/mhtdc[6][1].png"); + tree->Draw("mhtdc[6][2]"); + c1->Print("../figure/raw/mhtdc[6][2].png"); + tree->Draw("mhtdc[6][3]"); + c1->Print("../figure/raw/mhtdc[6][3].png"); + tree->Draw("mhtdc[6][4]"); + c1->Print("../figure/raw/mhtdc[6][4].png"); + tree->Draw("mhtdc[6][5]"); + c1->Print("../figure/raw/mhtdc[6][5].png"); + tree->Draw("mhtdc[6][6]"); + c1->Print("../figure/raw/mhtdc[6][6].png"); + tree->Draw("mhtdc[6][7]"); + c1->Print("../figure/raw/mhtdc[6][7].png"); + tree->Draw("mhtdc[6][8]"); + c1->Print("../figure/raw/mhtdc[6][8].png"); + tree->Draw("mhtdc[6][9]"); + c1->Print("../figure/raw/mhtdc[6][9].png"); + tree->Draw("mhtdc[6][10]"); + c1->Print("../figure/raw/mhtdc[6][10].png"); + tree->Draw("mhtdc[6][11]"); + c1->Print("../figure/raw/mhtdc[6][11].png"); + tree->Draw("mhtdc[7][0]"); + c1->Print("../figure/raw/mhtdc[7][0].png"); + tree->Draw("mhtdc[7][1]"); + c1->Print("../figure/raw/mhtdc[7][1].png"); + tree->Draw("mhtdc[7][2]"); + c1->Print("../figure/raw/mhtdc[7][2].png"); + tree->Draw("mhtdc[7][3]"); + c1->Print("../figure/raw/mhtdc[7][3].png"); + tree->Draw("mhtdc[7][4]"); + c1->Print("../figure/raw/mhtdc[7][4].png"); + tree->Draw("mhtdc[7][5]"); + c1->Print("../figure/raw/mhtdc[7][5].png"); + tree->Draw("mhtdc[7][6]"); + c1->Print("../figure/raw/mhtdc[7][6].png"); + tree->Draw("mhtdc[7][7]"); + c1->Print("../figure/raw/mhtdc[7][7].png"); + tree->Draw("mhtdc[7][8]"); + c1->Print("../figure/raw/mhtdc[7][8].png"); + tree->Draw("mhtdc[7][9]"); + c1->Print("../figure/raw/mhtdc[7][9].png"); + tree->Draw("mhtdc[7][10]"); + c1->Print("../figure/raw/mhtdc[7][10].png"); + tree->Draw("mhtdc[7][11]"); + c1->Print("../figure/raw/mhtdc[7][11].png"); + tree->Draw("mhtdc[8][0]"); + c1->Print("../figure/raw/mhtdc[8][0].png"); + tree->Draw("mhtdc[8][1]"); + c1->Print("../figure/raw/mhtdc[8][1].png"); + tree->Draw("mhtdc[8][2]"); + c1->Print("../figure/raw/mhtdc[8][2].png"); + tree->Draw("mhtdc[8][3]"); + c1->Print("../figure/raw/mhtdc[8][3].png"); + tree->Draw("mhtdc[8][4]"); + c1->Print("../figure/raw/mhtdc[8][4].png"); + tree->Draw("mhtdc[8][5]"); + c1->Print("../figure/raw/mhtdc[8][5].png"); + tree->Draw("mhtdc[8][6]"); + c1->Print("../figure/raw/mhtdc[8][6].png"); + tree->Draw("mhtdc[8][7]"); + c1->Print("../figure/raw/mhtdc[8][7].png"); + tree->Draw("mhtdc[8][8]"); + c1->Print("../figure/raw/mhtdc[8][8].png"); + tree->Draw("mhtdc[8][9]"); + c1->Print("../figure/raw/mhtdc[8][9].png"); + tree->Draw("mhtdc[8][10]"); + c1->Print("../figure/raw/mhtdc[8][10].png"); + tree->Draw("mhtdc[8][11]"); + c1->Print("../figure/raw/mhtdc[8][11].png"); + tree->Draw("mhtdc[9][0]"); + c1->Print("../figure/raw/mhtdc[9][0].png"); + tree->Draw("mhtdc[9][1]"); + c1->Print("../figure/raw/mhtdc[9][1].png"); + tree->Draw("mhtdc[9][2]"); + c1->Print("../figure/raw/mhtdc[9][2].png"); + tree->Draw("mhtdc[9][3]"); + c1->Print("../figure/raw/mhtdc[9][3].png"); + tree->Draw("mhtdc[9][4]"); + c1->Print("../figure/raw/mhtdc[9][4].png"); + tree->Draw("mhtdc[9][5]"); + c1->Print("../figure/raw/mhtdc[9][5].png"); + tree->Draw("mhtdc[9][6]"); + c1->Print("../figure/raw/mhtdc[9][6].png"); + tree->Draw("mhtdc[9][7]"); + c1->Print("../figure/raw/mhtdc[9][7].png"); + tree->Draw("mhtdc[9][8]"); + c1->Print("../figure/raw/mhtdc[9][8].png"); + tree->Draw("mhtdc[9][9]"); + c1->Print("../figure/raw/mhtdc[9][9].png"); + tree->Draw("mhtdc[9][10]"); + c1->Print("../figure/raw/mhtdc[9][10].png"); + tree->Draw("mhtdc[9][11]"); + c1->Print("../figure/raw/mhtdc[9][11].png"); + tree->Draw("mhtdc[10][0]"); + c1->Print("../figure/raw/mhtdc[10][0].png"); + tree->Draw("mhtdc[10][1]"); + c1->Print("../figure/raw/mhtdc[10][1].png"); + tree->Draw("mhtdc[10][2]"); + c1->Print("../figure/raw/mhtdc[10][2].png"); + tree->Draw("mhtdc[10][3]"); + c1->Print("../figure/raw/mhtdc[10][3].png"); + tree->Draw("mhtdc[10][4]"); + c1->Print("../figure/raw/mhtdc[10][4].png"); + tree->Draw("mhtdc[10][5]"); + c1->Print("../figure/raw/mhtdc[10][5].png"); + tree->Draw("mhtdc[10][6]"); + c1->Print("../figure/raw/mhtdc[10][6].png"); + tree->Draw("mhtdc[10][7]"); + c1->Print("../figure/raw/mhtdc[10][7].png"); + tree->Draw("mhtdc[10][8]"); + c1->Print("../figure/raw/mhtdc[10][8].png"); + tree->Draw("mhtdc[10][9]"); + c1->Print("../figure/raw/mhtdc[10][9].png"); + tree->Draw("mhtdc[10][10]"); + c1->Print("../figure/raw/mhtdc[10][10].png"); + tree->Draw("mhtdc[10][11]"); + c1->Print("../figure/raw/mhtdc[10][11].png"); + tree->Draw("mhtdc[11][0]"); + c1->Print("../figure/raw/mhtdc[11][0].png"); + tree->Draw("mhtdc[11][1]"); + c1->Print("../figure/raw/mhtdc[11][1].png"); + tree->Draw("mhtdc[11][2]"); + c1->Print("../figure/raw/mhtdc[11][2].png"); + tree->Draw("mhtdc[11][3]"); + c1->Print("../figure/raw/mhtdc[11][3].png"); + tree->Draw("mhtdc[11][4]"); + c1->Print("../figure/raw/mhtdc[11][4].png"); + tree->Draw("mhtdc[11][5]"); + c1->Print("../figure/raw/mhtdc[11][5].png"); + tree->Draw("mhtdc[11][6]"); + c1->Print("../figure/raw/mhtdc[11][6].png"); + tree->Draw("mhtdc[11][7]"); + c1->Print("../figure/raw/mhtdc[11][7].png"); + tree->Draw("mhtdc[11][8]"); + c1->Print("../figure/raw/mhtdc[11][8].png"); + tree->Draw("mhtdc[11][9]"); + c1->Print("../figure/raw/mhtdc[11][9].png"); + tree->Draw("mhtdc[11][10]"); + c1->Print("../figure/raw/mhtdc[11][10].png"); + tree->Draw("mhtdc[11][11]"); + c1->Print("../figure/raw/mhtdc[11][11].png"); + tree->Draw("mhtdc[12][0]"); + c1->Print("../figure/raw/mhtdc[12][0].png"); + tree->Draw("mhtdc[12][1]"); + c1->Print("../figure/raw/mhtdc[12][1].png"); + tree->Draw("mhtdc[12][2]"); + c1->Print("../figure/raw/mhtdc[12][2].png"); + tree->Draw("mhtdc[12][3]"); + c1->Print("../figure/raw/mhtdc[12][3].png"); + tree->Draw("mhtdc[12][4]"); + c1->Print("../figure/raw/mhtdc[12][4].png"); + tree->Draw("mhtdc[12][5]"); + c1->Print("../figure/raw/mhtdc[12][5].png"); + tree->Draw("mhtdc[12][6]"); + c1->Print("../figure/raw/mhtdc[12][6].png"); + tree->Draw("mhtdc[12][7]"); + c1->Print("../figure/raw/mhtdc[12][7].png"); + tree->Draw("mhtdc[12][8]"); + c1->Print("../figure/raw/mhtdc[12][8].png"); + tree->Draw("mhtdc[12][9]"); + c1->Print("../figure/raw/mhtdc[12][9].png"); + tree->Draw("mhtdc[12][10]"); + c1->Print("../figure/raw/mhtdc[12][10].png"); + tree->Draw("mhtdc[12][11]"); + c1->Print("../figure/raw/mhtdc[12][11].png"); + tree->Draw("mhtdc[13][0]"); + c1->Print("../figure/raw/mhtdc[13][0].png"); + tree->Draw("mhtdc[13][1]"); + c1->Print("../figure/raw/mhtdc[13][1].png"); + tree->Draw("mhtdc[13][2]"); + c1->Print("../figure/raw/mhtdc[13][2].png"); + tree->Draw("mhtdc[13][3]"); + c1->Print("../figure/raw/mhtdc[13][3].png"); + tree->Draw("mhtdc[13][4]"); + c1->Print("../figure/raw/mhtdc[13][4].png"); + tree->Draw("mhtdc[13][5]"); + c1->Print("../figure/raw/mhtdc[13][5].png"); + tree->Draw("mhtdc[13][6]"); + c1->Print("../figure/raw/mhtdc[13][6].png"); + tree->Draw("mhtdc[13][7]"); + c1->Print("../figure/raw/mhtdc[13][7].png"); + tree->Draw("mhtdc[13][8]"); + c1->Print("../figure/raw/mhtdc[13][8].png"); + tree->Draw("mhtdc[13][9]"); + c1->Print("../figure/raw/mhtdc[13][9].png"); + tree->Draw("mhtdc[13][10]"); + c1->Print("../figure/raw/mhtdc[13][10].png"); + tree->Draw("mhtdc[13][11]"); + c1->Print("../figure/raw/mhtdc[13][11].png"); + tree->Draw("mhtdc[14][0]"); + c1->Print("../figure/raw/mhtdc[14][0].png"); + tree->Draw("mhtdc[14][1]"); + c1->Print("../figure/raw/mhtdc[14][1].png"); + tree->Draw("mhtdc[14][2]"); + c1->Print("../figure/raw/mhtdc[14][2].png"); + tree->Draw("mhtdc[14][3]"); + c1->Print("../figure/raw/mhtdc[14][3].png"); + tree->Draw("mhtdc[14][4]"); + c1->Print("../figure/raw/mhtdc[14][4].png"); + tree->Draw("mhtdc[14][5]"); + c1->Print("../figure/raw/mhtdc[14][5].png"); + tree->Draw("mhtdc[14][6]"); + c1->Print("../figure/raw/mhtdc[14][6].png"); + tree->Draw("mhtdc[14][7]"); + c1->Print("../figure/raw/mhtdc[14][7].png"); + tree->Draw("mhtdc[14][8]"); + c1->Print("../figure/raw/mhtdc[14][8].png"); + tree->Draw("mhtdc[14][9]"); + c1->Print("../figure/raw/mhtdc[14][9].png"); + tree->Draw("mhtdc[14][10]"); + c1->Print("../figure/raw/mhtdc[14][10].png"); + tree->Draw("mhtdc[14][11]"); + c1->Print("../figure/raw/mhtdc[14][11].png"); + tree->Draw("mhtdc[15][0]"); + c1->Print("../figure/raw/mhtdc[15][0].png"); + tree->Draw("mhtdc[15][1]"); + c1->Print("../figure/raw/mhtdc[15][1].png"); + tree->Draw("mhtdc[15][2]"); + c1->Print("../figure/raw/mhtdc[15][2].png"); + tree->Draw("mhtdc[15][3]"); + c1->Print("../figure/raw/mhtdc[15][3].png"); + tree->Draw("mhtdc[15][4]"); + c1->Print("../figure/raw/mhtdc[15][4].png"); + tree->Draw("mhtdc[15][5]"); + c1->Print("../figure/raw/mhtdc[15][5].png"); + tree->Draw("mhtdc[15][6]"); + c1->Print("../figure/raw/mhtdc[15][6].png"); + tree->Draw("mhtdc[15][7]"); + c1->Print("../figure/raw/mhtdc[15][7].png"); + tree->Draw("mhtdc[15][8]"); + c1->Print("../figure/raw/mhtdc[15][8].png"); + tree->Draw("mhtdc[15][9]"); + c1->Print("../figure/raw/mhtdc[15][9].png"); + tree->Draw("mhtdc[15][10]"); + c1->Print("../figure/raw/mhtdc[15][10].png"); + tree->Draw("mhtdc[15][11]"); + c1->Print("../figure/raw/mhtdc[15][11].png"); + tree->Draw("mhtdc[16][0]"); + c1->Print("../figure/raw/mhtdc[16][0].png"); + tree->Draw("mhtdc[16][1]"); + c1->Print("../figure/raw/mhtdc[16][1].png"); + tree->Draw("mhtdc[16][2]"); + c1->Print("../figure/raw/mhtdc[16][2].png"); + tree->Draw("mhtdc[16][3]"); + c1->Print("../figure/raw/mhtdc[16][3].png"); + tree->Draw("mhtdc[16][4]"); + c1->Print("../figure/raw/mhtdc[16][4].png"); + tree->Draw("mhtdc[16][5]"); + c1->Print("../figure/raw/mhtdc[16][5].png"); + tree->Draw("mhtdc[16][6]"); + c1->Print("../figure/raw/mhtdc[16][6].png"); + tree->Draw("mhtdc[16][7]"); + c1->Print("../figure/raw/mhtdc[16][7].png"); + tree->Draw("mhtdc[16][8]"); + c1->Print("../figure/raw/mhtdc[16][8].png"); + tree->Draw("mhtdc[16][9]"); + c1->Print("../figure/raw/mhtdc[16][9].png"); + tree->Draw("mhtdc[16][10]"); + c1->Print("../figure/raw/mhtdc[16][10].png"); + tree->Draw("mhtdc[16][11]"); + c1->Print("../figure/raw/mhtdc[16][11].png"); + tree->Draw("mhtdc[17][0]"); + c1->Print("../figure/raw/mhtdc[17][0].png"); + tree->Draw("mhtdc[17][1]"); + c1->Print("../figure/raw/mhtdc[17][1].png"); + tree->Draw("mhtdc[17][2]"); + c1->Print("../figure/raw/mhtdc[17][2].png"); + tree->Draw("mhtdc[17][3]"); + c1->Print("../figure/raw/mhtdc[17][3].png"); + tree->Draw("mhtdc[17][4]"); + c1->Print("../figure/raw/mhtdc[17][4].png"); + tree->Draw("mhtdc[17][5]"); + c1->Print("../figure/raw/mhtdc[17][5].png"); + tree->Draw("mhtdc[17][6]"); + c1->Print("../figure/raw/mhtdc[17][6].png"); + tree->Draw("mhtdc[17][7]"); + c1->Print("../figure/raw/mhtdc[17][7].png"); + tree->Draw("mhtdc[17][8]"); + c1->Print("../figure/raw/mhtdc[17][8].png"); + tree->Draw("mhtdc[17][9]"); + c1->Print("../figure/raw/mhtdc[17][9].png"); + tree->Draw("mhtdc[17][10]"); + c1->Print("../figure/raw/mhtdc[17][10].png"); + tree->Draw("mhtdc[17][11]"); + c1->Print("../figure/raw/mhtdc[17][11].png"); + tree->Draw("mhtdc[18][0]"); + c1->Print("../figure/raw/mhtdc[18][0].png"); + tree->Draw("mhtdc[18][1]"); + c1->Print("../figure/raw/mhtdc[18][1].png"); + tree->Draw("mhtdc[18][2]"); + c1->Print("../figure/raw/mhtdc[18][2].png"); + tree->Draw("mhtdc[18][3]"); + c1->Print("../figure/raw/mhtdc[18][3].png"); + tree->Draw("mhtdc[18][4]"); + c1->Print("../figure/raw/mhtdc[18][4].png"); + tree->Draw("mhtdc[18][5]"); + c1->Print("../figure/raw/mhtdc[18][5].png"); + tree->Draw("mhtdc[18][6]"); + c1->Print("../figure/raw/mhtdc[18][6].png"); + tree->Draw("mhtdc[18][7]"); + c1->Print("../figure/raw/mhtdc[18][7].png"); + tree->Draw("mhtdc[18][8]"); + c1->Print("../figure/raw/mhtdc[18][8].png"); + tree->Draw("mhtdc[18][9]"); + c1->Print("../figure/raw/mhtdc[18][9].png"); + tree->Draw("mhtdc[18][10]"); + c1->Print("../figure/raw/mhtdc[18][10].png"); + tree->Draw("mhtdc[18][11]"); + c1->Print("../figure/raw/mhtdc[18][11].png"); + tree->Draw("mhtdc[19][0]"); + c1->Print("../figure/raw/mhtdc[19][0].png"); + tree->Draw("mhtdc[19][1]"); + c1->Print("../figure/raw/mhtdc[19][1].png"); + tree->Draw("mhtdc[19][2]"); + c1->Print("../figure/raw/mhtdc[19][2].png"); + tree->Draw("mhtdc[19][3]"); + c1->Print("../figure/raw/mhtdc[19][3].png"); + tree->Draw("mhtdc[19][4]"); + c1->Print("../figure/raw/mhtdc[19][4].png"); + tree->Draw("mhtdc[19][5]"); + c1->Print("../figure/raw/mhtdc[19][5].png"); + tree->Draw("mhtdc[19][6]"); + c1->Print("../figure/raw/mhtdc[19][6].png"); + tree->Draw("mhtdc[19][7]"); + c1->Print("../figure/raw/mhtdc[19][7].png"); + tree->Draw("mhtdc[19][8]"); + c1->Print("../figure/raw/mhtdc[19][8].png"); + tree->Draw("mhtdc[19][9]"); + c1->Print("../figure/raw/mhtdc[19][9].png"); + tree->Draw("mhtdc[19][10]"); + c1->Print("../figure/raw/mhtdc[19][10].png"); + tree->Draw("mhtdc[19][11]"); + c1->Print("../figure/raw/mhtdc[19][11].png"); + tree->Draw("mhtdc[20][0]"); + c1->Print("../figure/raw/mhtdc[20][0].png"); + tree->Draw("mhtdc[20][1]"); + c1->Print("../figure/raw/mhtdc[20][1].png"); + tree->Draw("mhtdc[20][2]"); + c1->Print("../figure/raw/mhtdc[20][2].png"); + tree->Draw("mhtdc[20][3]"); + c1->Print("../figure/raw/mhtdc[20][3].png"); + tree->Draw("mhtdc[20][4]"); + c1->Print("../figure/raw/mhtdc[20][4].png"); + tree->Draw("mhtdc[20][5]"); + c1->Print("../figure/raw/mhtdc[20][5].png"); + tree->Draw("mhtdc[20][6]"); + c1->Print("../figure/raw/mhtdc[20][6].png"); + tree->Draw("mhtdc[20][7]"); + c1->Print("../figure/raw/mhtdc[20][7].png"); + tree->Draw("mhtdc[20][8]"); + c1->Print("../figure/raw/mhtdc[20][8].png"); + tree->Draw("mhtdc[20][9]"); + c1->Print("../figure/raw/mhtdc[20][9].png"); + tree->Draw("mhtdc[20][10]"); + c1->Print("../figure/raw/mhtdc[20][10].png"); + tree->Draw("mhtdc[20][11]"); + c1->Print("../figure/raw/mhtdc[20][11].png"); + tree->Draw("mhtdc[21][0]"); + c1->Print("../figure/raw/mhtdc[21][0].png"); + tree->Draw("mhtdc[21][1]"); + c1->Print("../figure/raw/mhtdc[21][1].png"); + tree->Draw("mhtdc[21][2]"); + c1->Print("../figure/raw/mhtdc[21][2].png"); + tree->Draw("mhtdc[21][3]"); + c1->Print("../figure/raw/mhtdc[21][3].png"); + tree->Draw("mhtdc[21][4]"); + c1->Print("../figure/raw/mhtdc[21][4].png"); + tree->Draw("mhtdc[21][5]"); + c1->Print("../figure/raw/mhtdc[21][5].png"); + tree->Draw("mhtdc[21][6]"); + c1->Print("../figure/raw/mhtdc[21][6].png"); + tree->Draw("mhtdc[21][7]"); + c1->Print("../figure/raw/mhtdc[21][7].png"); + tree->Draw("mhtdc[21][8]"); + c1->Print("../figure/raw/mhtdc[21][8].png"); + tree->Draw("mhtdc[21][9]"); + c1->Print("../figure/raw/mhtdc[21][9].png"); + tree->Draw("mhtdc[21][10]"); + c1->Print("../figure/raw/mhtdc[21][10].png"); + tree->Draw("mhtdc[21][11]"); + c1->Print("../figure/raw/mhtdc[21][11].png"); + tree->Draw("mhtdc[22][0]"); + c1->Print("../figure/raw/mhtdc[22][0].png"); + tree->Draw("mhtdc[22][1]"); + c1->Print("../figure/raw/mhtdc[22][1].png"); + tree->Draw("mhtdc[22][2]"); + c1->Print("../figure/raw/mhtdc[22][2].png"); + tree->Draw("mhtdc[22][3]"); + c1->Print("../figure/raw/mhtdc[22][3].png"); + tree->Draw("mhtdc[22][4]"); + c1->Print("../figure/raw/mhtdc[22][4].png"); + tree->Draw("mhtdc[22][5]"); + c1->Print("../figure/raw/mhtdc[22][5].png"); + tree->Draw("mhtdc[22][6]"); + c1->Print("../figure/raw/mhtdc[22][6].png"); + tree->Draw("mhtdc[22][7]"); + c1->Print("../figure/raw/mhtdc[22][7].png"); + tree->Draw("mhtdc[22][8]"); + c1->Print("../figure/raw/mhtdc[22][8].png"); + tree->Draw("mhtdc[22][9]"); + c1->Print("../figure/raw/mhtdc[22][9].png"); + tree->Draw("mhtdc[22][10]"); + c1->Print("../figure/raw/mhtdc[22][10].png"); + tree->Draw("mhtdc[22][11]"); + c1->Print("../figure/raw/mhtdc[22][11].png"); + tree->Draw("mhtdc[23][0]"); + c1->Print("../figure/raw/mhtdc[23][0].png"); + tree->Draw("mhtdc[23][1]"); + c1->Print("../figure/raw/mhtdc[23][1].png"); + tree->Draw("mhtdc[23][2]"); + c1->Print("../figure/raw/mhtdc[23][2].png"); + tree->Draw("mhtdc[23][3]"); + c1->Print("../figure/raw/mhtdc[23][3].png"); + tree->Draw("mhtdc[23][4]"); + c1->Print("../figure/raw/mhtdc[23][4].png"); + tree->Draw("mhtdc[23][5]"); + c1->Print("../figure/raw/mhtdc[23][5].png"); + tree->Draw("mhtdc[23][6]"); + c1->Print("../figure/raw/mhtdc[23][6].png"); + tree->Draw("mhtdc[23][7]"); + c1->Print("../figure/raw/mhtdc[23][7].png"); + tree->Draw("mhtdc[23][8]"); + c1->Print("../figure/raw/mhtdc[23][8].png"); + tree->Draw("mhtdc[23][9]"); + c1->Print("../figure/raw/mhtdc[23][9].png"); + tree->Draw("mhtdc[23][10]"); + c1->Print("../figure/raw/mhtdc[23][10].png"); + tree->Draw("mhtdc[23][11]"); + c1->Print("../figure/raw/mhtdc[23][11].png"); + tree->Draw("mhtdc[24][0]"); + c1->Print("../figure/raw/mhtdc[24][0].png"); + tree->Draw("mhtdc[24][1]"); + c1->Print("../figure/raw/mhtdc[24][1].png"); + tree->Draw("mhtdc[24][2]"); + c1->Print("../figure/raw/mhtdc[24][2].png"); + tree->Draw("mhtdc[24][3]"); + c1->Print("../figure/raw/mhtdc[24][3].png"); + tree->Draw("mhtdc[24][4]"); + c1->Print("../figure/raw/mhtdc[24][4].png"); + tree->Draw("mhtdc[24][5]"); + c1->Print("../figure/raw/mhtdc[24][5].png"); + tree->Draw("mhtdc[24][6]"); + c1->Print("../figure/raw/mhtdc[24][6].png"); + tree->Draw("mhtdc[24][7]"); + c1->Print("../figure/raw/mhtdc[24][7].png"); + tree->Draw("mhtdc[24][8]"); + c1->Print("../figure/raw/mhtdc[24][8].png"); + tree->Draw("mhtdc[24][9]"); + c1->Print("../figure/raw/mhtdc[24][9].png"); + tree->Draw("mhtdc[24][10]"); + c1->Print("../figure/raw/mhtdc[24][10].png"); + tree->Draw("mhtdc[24][11]"); + c1->Print("../figure/raw/mhtdc[24][11].png"); + tree->Draw("mhtdc[25][0]"); + c1->Print("../figure/raw/mhtdc[25][0].png"); + tree->Draw("mhtdc[25][1]"); + c1->Print("../figure/raw/mhtdc[25][1].png"); + tree->Draw("mhtdc[25][2]"); + c1->Print("../figure/raw/mhtdc[25][2].png"); + tree->Draw("mhtdc[25][3]"); + c1->Print("../figure/raw/mhtdc[25][3].png"); + tree->Draw("mhtdc[25][4]"); + c1->Print("../figure/raw/mhtdc[25][4].png"); + tree->Draw("mhtdc[25][5]"); + c1->Print("../figure/raw/mhtdc[25][5].png"); + tree->Draw("mhtdc[25][6]"); + c1->Print("../figure/raw/mhtdc[25][6].png"); + tree->Draw("mhtdc[25][7]"); + c1->Print("../figure/raw/mhtdc[25][7].png"); + tree->Draw("mhtdc[25][8]"); + c1->Print("../figure/raw/mhtdc[25][8].png"); + tree->Draw("mhtdc[25][9]"); + c1->Print("../figure/raw/mhtdc[25][9].png"); + tree->Draw("mhtdc[25][10]"); + c1->Print("../figure/raw/mhtdc[25][10].png"); + tree->Draw("mhtdc[25][11]"); + c1->Print("../figure/raw/mhtdc[25][11].png"); + tree->Draw("mhtdc[26][0]"); + c1->Print("../figure/raw/mhtdc[26][0].png"); + tree->Draw("mhtdc[26][1]"); + c1->Print("../figure/raw/mhtdc[26][1].png"); + tree->Draw("mhtdc[26][2]"); + c1->Print("../figure/raw/mhtdc[26][2].png"); + tree->Draw("mhtdc[26][3]"); + c1->Print("../figure/raw/mhtdc[26][3].png"); + tree->Draw("mhtdc[26][4]"); + c1->Print("../figure/raw/mhtdc[26][4].png"); + tree->Draw("mhtdc[26][5]"); + c1->Print("../figure/raw/mhtdc[26][5].png"); + tree->Draw("mhtdc[26][6]"); + c1->Print("../figure/raw/mhtdc[26][6].png"); + tree->Draw("mhtdc[26][7]"); + c1->Print("../figure/raw/mhtdc[26][7].png"); + tree->Draw("mhtdc[26][8]"); + c1->Print("../figure/raw/mhtdc[26][8].png"); + tree->Draw("mhtdc[26][9]"); + c1->Print("../figure/raw/mhtdc[26][9].png"); + tree->Draw("mhtdc[26][10]"); + c1->Print("../figure/raw/mhtdc[26][10].png"); + tree->Draw("mhtdc[26][11]"); + c1->Print("../figure/raw/mhtdc[26][11].png"); + tree->Draw("mhtdc[27][0]"); + c1->Print("../figure/raw/mhtdc[27][0].png"); + tree->Draw("mhtdc[27][1]"); + c1->Print("../figure/raw/mhtdc[27][1].png"); + tree->Draw("mhtdc[27][2]"); + c1->Print("../figure/raw/mhtdc[27][2].png"); + tree->Draw("mhtdc[27][3]"); + c1->Print("../figure/raw/mhtdc[27][3].png"); + tree->Draw("mhtdc[27][4]"); + c1->Print("../figure/raw/mhtdc[27][4].png"); + tree->Draw("mhtdc[27][5]"); + c1->Print("../figure/raw/mhtdc[27][5].png"); + tree->Draw("mhtdc[27][6]"); + c1->Print("../figure/raw/mhtdc[27][6].png"); + tree->Draw("mhtdc[27][7]"); + c1->Print("../figure/raw/mhtdc[27][7].png"); + tree->Draw("mhtdc[27][8]"); + c1->Print("../figure/raw/mhtdc[27][8].png"); + tree->Draw("mhtdc[27][9]"); + c1->Print("../figure/raw/mhtdc[27][9].png"); + tree->Draw("mhtdc[27][10]"); + c1->Print("../figure/raw/mhtdc[27][10].png"); + tree->Draw("mhtdc[27][11]"); + c1->Print("../figure/raw/mhtdc[27][11].png"); + tree->Draw("mhtdc[28][0]"); + c1->Print("../figure/raw/mhtdc[28][0].png"); + tree->Draw("mhtdc[28][1]"); + c1->Print("../figure/raw/mhtdc[28][1].png"); + tree->Draw("mhtdc[28][2]"); + c1->Print("../figure/raw/mhtdc[28][2].png"); + tree->Draw("mhtdc[28][3]"); + c1->Print("../figure/raw/mhtdc[28][3].png"); + tree->Draw("mhtdc[28][4]"); + c1->Print("../figure/raw/mhtdc[28][4].png"); + tree->Draw("mhtdc[28][5]"); + c1->Print("../figure/raw/mhtdc[28][5].png"); + tree->Draw("mhtdc[28][6]"); + c1->Print("../figure/raw/mhtdc[28][6].png"); + tree->Draw("mhtdc[28][7]"); + c1->Print("../figure/raw/mhtdc[28][7].png"); + tree->Draw("mhtdc[28][8]"); + c1->Print("../figure/raw/mhtdc[28][8].png"); + tree->Draw("mhtdc[28][9]"); + c1->Print("../figure/raw/mhtdc[28][9].png"); + tree->Draw("mhtdc[28][10]"); + c1->Print("../figure/raw/mhtdc[28][10].png"); + tree->Draw("mhtdc[28][11]"); + c1->Print("../figure/raw/mhtdc[28][11].png"); + tree->Draw("mhtdc[29][0]"); + c1->Print("../figure/raw/mhtdc[29][0].png"); + tree->Draw("mhtdc[29][1]"); + c1->Print("../figure/raw/mhtdc[29][1].png"); + tree->Draw("mhtdc[29][2]"); + c1->Print("../figure/raw/mhtdc[29][2].png"); + tree->Draw("mhtdc[29][3]"); + c1->Print("../figure/raw/mhtdc[29][3].png"); + tree->Draw("mhtdc[29][4]"); + c1->Print("../figure/raw/mhtdc[29][4].png"); + tree->Draw("mhtdc[29][5]"); + c1->Print("../figure/raw/mhtdc[29][5].png"); + tree->Draw("mhtdc[29][6]"); + c1->Print("../figure/raw/mhtdc[29][6].png"); + tree->Draw("mhtdc[29][7]"); + c1->Print("../figure/raw/mhtdc[29][7].png"); + tree->Draw("mhtdc[29][8]"); + c1->Print("../figure/raw/mhtdc[29][8].png"); + tree->Draw("mhtdc[29][9]"); + c1->Print("../figure/raw/mhtdc[29][9].png"); + tree->Draw("mhtdc[29][10]"); + c1->Print("../figure/raw/mhtdc[29][10].png"); + tree->Draw("mhtdc[29][11]"); + c1->Print("../figure/raw/mhtdc[29][11].png"); + tree->Draw("mhtdc[30][0]"); + c1->Print("../figure/raw/mhtdc[30][0].png"); + tree->Draw("mhtdc[30][1]"); + c1->Print("../figure/raw/mhtdc[30][1].png"); + tree->Draw("mhtdc[30][2]"); + c1->Print("../figure/raw/mhtdc[30][2].png"); + tree->Draw("mhtdc[30][3]"); + c1->Print("../figure/raw/mhtdc[30][3].png"); + tree->Draw("mhtdc[30][4]"); + c1->Print("../figure/raw/mhtdc[30][4].png"); + tree->Draw("mhtdc[30][5]"); + c1->Print("../figure/raw/mhtdc[30][5].png"); + tree->Draw("mhtdc[30][6]"); + c1->Print("../figure/raw/mhtdc[30][6].png"); + tree->Draw("mhtdc[30][7]"); + c1->Print("../figure/raw/mhtdc[30][7].png"); + tree->Draw("mhtdc[30][8]"); + c1->Print("../figure/raw/mhtdc[30][8].png"); + tree->Draw("mhtdc[30][9]"); + c1->Print("../figure/raw/mhtdc[30][9].png"); + tree->Draw("mhtdc[30][10]"); + c1->Print("../figure/raw/mhtdc[30][10].png"); + tree->Draw("mhtdc[30][11]"); + c1->Print("../figure/raw/mhtdc[30][11].png"); + tree->Draw("mhtdc[31][0]"); + c1->Print("../figure/raw/mhtdc[31][0].png"); + tree->Draw("mhtdc[31][1]"); + c1->Print("../figure/raw/mhtdc[31][1].png"); + tree->Draw("mhtdc[31][2]"); + c1->Print("../figure/raw/mhtdc[31][2].png"); + tree->Draw("mhtdc[31][3]"); + c1->Print("../figure/raw/mhtdc[31][3].png"); + tree->Draw("mhtdc[31][4]"); + c1->Print("../figure/raw/mhtdc[31][4].png"); + tree->Draw("mhtdc[31][5]"); + c1->Print("../figure/raw/mhtdc[31][5].png"); + tree->Draw("mhtdc[31][6]"); + c1->Print("../figure/raw/mhtdc[31][6].png"); + tree->Draw("mhtdc[31][7]"); + c1->Print("../figure/raw/mhtdc[31][7].png"); + tree->Draw("mhtdc[31][8]"); + c1->Print("../figure/raw/mhtdc[31][8].png"); + tree->Draw("mhtdc[31][9]"); + c1->Print("../figure/raw/mhtdc[31][9].png"); + tree->Draw("mhtdc[31][10]"); + c1->Print("../figure/raw/mhtdc[31][10].png"); + tree->Draw("mhtdc[31][11]"); + c1->Print("../figure/raw/mhtdc[31][11].png"); + tree->Draw("mhtdc[32][0]"); + c1->Print("../figure/raw/mhtdc[32][0].png"); + tree->Draw("mhtdc[32][1]"); + c1->Print("../figure/raw/mhtdc[32][1].png"); + tree->Draw("mhtdc[32][2]"); + c1->Print("../figure/raw/mhtdc[32][2].png"); + tree->Draw("mhtdc[32][3]"); + c1->Print("../figure/raw/mhtdc[32][3].png"); + tree->Draw("mhtdc[32][4]"); + c1->Print("../figure/raw/mhtdc[32][4].png"); + tree->Draw("mhtdc[32][5]"); + c1->Print("../figure/raw/mhtdc[32][5].png"); + tree->Draw("mhtdc[32][6]"); + c1->Print("../figure/raw/mhtdc[32][6].png"); + tree->Draw("mhtdc[32][7]"); + c1->Print("../figure/raw/mhtdc[32][7].png"); + tree->Draw("mhtdc[32][8]"); + c1->Print("../figure/raw/mhtdc[32][8].png"); + tree->Draw("mhtdc[32][9]"); + c1->Print("../figure/raw/mhtdc[32][9].png"); + tree->Draw("mhtdc[32][10]"); + c1->Print("../figure/raw/mhtdc[32][10].png"); + tree->Draw("mhtdc[32][11]"); + c1->Print("../figure/raw/mhtdc[32][11].png"); + tree->Draw("mhtdc[33][0]"); + c1->Print("../figure/raw/mhtdc[33][0].png"); + tree->Draw("mhtdc[33][1]"); + c1->Print("../figure/raw/mhtdc[33][1].png"); + tree->Draw("mhtdc[33][2]"); + c1->Print("../figure/raw/mhtdc[33][2].png"); + tree->Draw("mhtdc[33][3]"); + c1->Print("../figure/raw/mhtdc[33][3].png"); + tree->Draw("mhtdc[33][4]"); + c1->Print("../figure/raw/mhtdc[33][4].png"); + tree->Draw("mhtdc[33][5]"); + c1->Print("../figure/raw/mhtdc[33][5].png"); + tree->Draw("mhtdc[33][6]"); + c1->Print("../figure/raw/mhtdc[33][6].png"); + tree->Draw("mhtdc[33][7]"); + c1->Print("../figure/raw/mhtdc[33][7].png"); + tree->Draw("mhtdc[33][8]"); + c1->Print("../figure/raw/mhtdc[33][8].png"); + tree->Draw("mhtdc[33][9]"); + c1->Print("../figure/raw/mhtdc[33][9].png"); + tree->Draw("mhtdc[33][10]"); + c1->Print("../figure/raw/mhtdc[33][10].png"); + tree->Draw("mhtdc[33][11]"); + c1->Print("../figure/raw/mhtdc[33][11].png"); + tree->Draw("mhtdc[34][0]"); + c1->Print("../figure/raw/mhtdc[34][0].png"); + tree->Draw("mhtdc[34][1]"); + c1->Print("../figure/raw/mhtdc[34][1].png"); + tree->Draw("mhtdc[34][2]"); + c1->Print("../figure/raw/mhtdc[34][2].png"); + tree->Draw("mhtdc[34][3]"); + c1->Print("../figure/raw/mhtdc[34][3].png"); + tree->Draw("mhtdc[34][4]"); + c1->Print("../figure/raw/mhtdc[34][4].png"); + tree->Draw("mhtdc[34][5]"); + c1->Print("../figure/raw/mhtdc[34][5].png"); + tree->Draw("mhtdc[34][6]"); + c1->Print("../figure/raw/mhtdc[34][6].png"); + tree->Draw("mhtdc[34][7]"); + c1->Print("../figure/raw/mhtdc[34][7].png"); + tree->Draw("mhtdc[34][8]"); + c1->Print("../figure/raw/mhtdc[34][8].png"); + tree->Draw("mhtdc[34][9]"); + c1->Print("../figure/raw/mhtdc[34][9].png"); + tree->Draw("mhtdc[34][10]"); + c1->Print("../figure/raw/mhtdc[34][10].png"); + tree->Draw("mhtdc[34][11]"); + c1->Print("../figure/raw/mhtdc[34][11].png"); + tree->Draw("mhtdc[35][0]"); + c1->Print("../figure/raw/mhtdc[35][0].png"); + tree->Draw("mhtdc[35][1]"); + c1->Print("../figure/raw/mhtdc[35][1].png"); + tree->Draw("mhtdc[35][2]"); + c1->Print("../figure/raw/mhtdc[35][2].png"); + tree->Draw("mhtdc[35][3]"); + c1->Print("../figure/raw/mhtdc[35][3].png"); + tree->Draw("mhtdc[35][4]"); + c1->Print("../figure/raw/mhtdc[35][4].png"); + tree->Draw("mhtdc[35][5]"); + c1->Print("../figure/raw/mhtdc[35][5].png"); + tree->Draw("mhtdc[35][6]"); + c1->Print("../figure/raw/mhtdc[35][6].png"); + tree->Draw("mhtdc[35][7]"); + c1->Print("../figure/raw/mhtdc[35][7].png"); + tree->Draw("mhtdc[35][8]"); + c1->Print("../figure/raw/mhtdc[35][8].png"); + tree->Draw("mhtdc[35][9]"); + c1->Print("../figure/raw/mhtdc[35][9].png"); + tree->Draw("mhtdc[35][10]"); + c1->Print("../figure/raw/mhtdc[35][10].png"); + tree->Draw("mhtdc[35][11]"); + c1->Print("../figure/raw/mhtdc[35][11].png"); + tree->Draw("mhtdc[36][0]"); + c1->Print("../figure/raw/mhtdc[36][0].png"); + tree->Draw("mhtdc[36][1]"); + c1->Print("../figure/raw/mhtdc[36][1].png"); + tree->Draw("mhtdc[36][2]"); + c1->Print("../figure/raw/mhtdc[36][2].png"); + tree->Draw("mhtdc[36][3]"); + c1->Print("../figure/raw/mhtdc[36][3].png"); + tree->Draw("mhtdc[36][4]"); + c1->Print("../figure/raw/mhtdc[36][4].png"); + tree->Draw("mhtdc[36][5]"); + c1->Print("../figure/raw/mhtdc[36][5].png"); + tree->Draw("mhtdc[36][6]"); + c1->Print("../figure/raw/mhtdc[36][6].png"); + tree->Draw("mhtdc[36][7]"); + c1->Print("../figure/raw/mhtdc[36][7].png"); + tree->Draw("mhtdc[36][8]"); + c1->Print("../figure/raw/mhtdc[36][8].png"); + tree->Draw("mhtdc[36][9]"); + c1->Print("../figure/raw/mhtdc[36][9].png"); + tree->Draw("mhtdc[36][10]"); + c1->Print("../figure/raw/mhtdc[36][10].png"); + tree->Draw("mhtdc[36][11]"); + c1->Print("../figure/raw/mhtdc[36][11].png"); + tree->Draw("mhtdc[37][0]"); + c1->Print("../figure/raw/mhtdc[37][0].png"); + tree->Draw("mhtdc[37][1]"); + c1->Print("../figure/raw/mhtdc[37][1].png"); + tree->Draw("mhtdc[37][2]"); + c1->Print("../figure/raw/mhtdc[37][2].png"); + tree->Draw("mhtdc[37][3]"); + c1->Print("../figure/raw/mhtdc[37][3].png"); + tree->Draw("mhtdc[37][4]"); + c1->Print("../figure/raw/mhtdc[37][4].png"); + tree->Draw("mhtdc[37][5]"); + c1->Print("../figure/raw/mhtdc[37][5].png"); + tree->Draw("mhtdc[37][6]"); + c1->Print("../figure/raw/mhtdc[37][6].png"); + tree->Draw("mhtdc[37][7]"); + c1->Print("../figure/raw/mhtdc[37][7].png"); + tree->Draw("mhtdc[37][8]"); + c1->Print("../figure/raw/mhtdc[37][8].png"); + tree->Draw("mhtdc[37][9]"); + c1->Print("../figure/raw/mhtdc[37][9].png"); + tree->Draw("mhtdc[37][10]"); + c1->Print("../figure/raw/mhtdc[37][10].png"); + tree->Draw("mhtdc[37][11]"); + c1->Print("../figure/raw/mhtdc[37][11].png"); + tree->Draw("mhtdc[38][0]"); + c1->Print("../figure/raw/mhtdc[38][0].png"); + tree->Draw("mhtdc[38][1]"); + c1->Print("../figure/raw/mhtdc[38][1].png"); + tree->Draw("mhtdc[38][2]"); + c1->Print("../figure/raw/mhtdc[38][2].png"); + tree->Draw("mhtdc[38][3]"); + c1->Print("../figure/raw/mhtdc[38][3].png"); + tree->Draw("mhtdc[38][4]"); + c1->Print("../figure/raw/mhtdc[38][4].png"); + tree->Draw("mhtdc[38][5]"); + c1->Print("../figure/raw/mhtdc[38][5].png"); + tree->Draw("mhtdc[38][6]"); + c1->Print("../figure/raw/mhtdc[38][6].png"); + tree->Draw("mhtdc[38][7]"); + c1->Print("../figure/raw/mhtdc[38][7].png"); + tree->Draw("mhtdc[38][8]"); + c1->Print("../figure/raw/mhtdc[38][8].png"); + tree->Draw("mhtdc[38][9]"); + c1->Print("../figure/raw/mhtdc[38][9].png"); + tree->Draw("mhtdc[38][10]"); + c1->Print("../figure/raw/mhtdc[38][10].png"); + tree->Draw("mhtdc[38][11]"); + c1->Print("../figure/raw/mhtdc[38][11].png"); + tree->Draw("mhtdc[39][0]"); + c1->Print("../figure/raw/mhtdc[39][0].png"); + tree->Draw("mhtdc[39][1]"); + c1->Print("../figure/raw/mhtdc[39][1].png"); + tree->Draw("mhtdc[39][2]"); + c1->Print("../figure/raw/mhtdc[39][2].png"); + tree->Draw("mhtdc[39][3]"); + c1->Print("../figure/raw/mhtdc[39][3].png"); + tree->Draw("mhtdc[39][4]"); + c1->Print("../figure/raw/mhtdc[39][4].png"); + tree->Draw("mhtdc[39][5]"); + c1->Print("../figure/raw/mhtdc[39][5].png"); + tree->Draw("mhtdc[39][6]"); + c1->Print("../figure/raw/mhtdc[39][6].png"); + tree->Draw("mhtdc[39][7]"); + c1->Print("../figure/raw/mhtdc[39][7].png"); + tree->Draw("mhtdc[39][8]"); + c1->Print("../figure/raw/mhtdc[39][8].png"); + tree->Draw("mhtdc[39][9]"); + c1->Print("../figure/raw/mhtdc[39][9].png"); + tree->Draw("mhtdc[39][10]"); + c1->Print("../figure/raw/mhtdc[39][10].png"); + tree->Draw("mhtdc[39][11]"); + c1->Print("../figure/raw/mhtdc[39][11].png"); + tree->Draw("mhtdc[40][0]"); + c1->Print("../figure/raw/mhtdc[40][0].png"); + tree->Draw("mhtdc[40][1]"); + c1->Print("../figure/raw/mhtdc[40][1].png"); + tree->Draw("mhtdc[40][2]"); + c1->Print("../figure/raw/mhtdc[40][2].png"); + tree->Draw("mhtdc[40][3]"); + c1->Print("../figure/raw/mhtdc[40][3].png"); + tree->Draw("mhtdc[40][4]"); + c1->Print("../figure/raw/mhtdc[40][4].png"); + tree->Draw("mhtdc[40][5]"); + c1->Print("../figure/raw/mhtdc[40][5].png"); + tree->Draw("mhtdc[40][6]"); + c1->Print("../figure/raw/mhtdc[40][6].png"); + tree->Draw("mhtdc[40][7]"); + c1->Print("../figure/raw/mhtdc[40][7].png"); + tree->Draw("mhtdc[40][8]"); + c1->Print("../figure/raw/mhtdc[40][8].png"); + tree->Draw("mhtdc[40][9]"); + c1->Print("../figure/raw/mhtdc[40][9].png"); + tree->Draw("mhtdc[40][10]"); + c1->Print("../figure/raw/mhtdc[40][10].png"); + tree->Draw("mhtdc[40][11]"); + c1->Print("../figure/raw/mhtdc[40][11].png"); + tree->Draw("mhtdc[41][0]"); + c1->Print("../figure/raw/mhtdc[41][0].png"); + tree->Draw("mhtdc[41][1]"); + c1->Print("../figure/raw/mhtdc[41][1].png"); + tree->Draw("mhtdc[41][2]"); + c1->Print("../figure/raw/mhtdc[41][2].png"); + tree->Draw("mhtdc[41][3]"); + c1->Print("../figure/raw/mhtdc[41][3].png"); + tree->Draw("mhtdc[41][4]"); + c1->Print("../figure/raw/mhtdc[41][4].png"); + tree->Draw("mhtdc[41][5]"); + c1->Print("../figure/raw/mhtdc[41][5].png"); + tree->Draw("mhtdc[41][6]"); + c1->Print("../figure/raw/mhtdc[41][6].png"); + tree->Draw("mhtdc[41][7]"); + c1->Print("../figure/raw/mhtdc[41][7].png"); + tree->Draw("mhtdc[41][8]"); + c1->Print("../figure/raw/mhtdc[41][8].png"); + tree->Draw("mhtdc[41][9]"); + c1->Print("../figure/raw/mhtdc[41][9].png"); + tree->Draw("mhtdc[41][10]"); + c1->Print("../figure/raw/mhtdc[41][10].png"); + tree->Draw("mhtdc[41][11]"); + c1->Print("../figure/raw/mhtdc[41][11].png"); + tree->Draw("mhtdc[42][0]"); + c1->Print("../figure/raw/mhtdc[42][0].png"); + tree->Draw("mhtdc[42][1]"); + c1->Print("../figure/raw/mhtdc[42][1].png"); + tree->Draw("mhtdc[42][2]"); + c1->Print("../figure/raw/mhtdc[42][2].png"); + tree->Draw("mhtdc[42][3]"); + c1->Print("../figure/raw/mhtdc[42][3].png"); + tree->Draw("mhtdc[42][4]"); + c1->Print("../figure/raw/mhtdc[42][4].png"); + tree->Draw("mhtdc[42][5]"); + c1->Print("../figure/raw/mhtdc[42][5].png"); + tree->Draw("mhtdc[42][6]"); + c1->Print("../figure/raw/mhtdc[42][6].png"); + tree->Draw("mhtdc[42][7]"); + c1->Print("../figure/raw/mhtdc[42][7].png"); + tree->Draw("mhtdc[42][8]"); + c1->Print("../figure/raw/mhtdc[42][8].png"); + tree->Draw("mhtdc[42][9]"); + c1->Print("../figure/raw/mhtdc[42][9].png"); + tree->Draw("mhtdc[42][10]"); + c1->Print("../figure/raw/mhtdc[42][10].png"); + tree->Draw("mhtdc[42][11]"); + c1->Print("../figure/raw/mhtdc[42][11].png"); + tree->Draw("mhtdc[43][0]"); + c1->Print("../figure/raw/mhtdc[43][0].png"); + tree->Draw("mhtdc[43][1]"); + c1->Print("../figure/raw/mhtdc[43][1].png"); + tree->Draw("mhtdc[43][2]"); + c1->Print("../figure/raw/mhtdc[43][2].png"); + tree->Draw("mhtdc[43][3]"); + c1->Print("../figure/raw/mhtdc[43][3].png"); + tree->Draw("mhtdc[43][4]"); + c1->Print("../figure/raw/mhtdc[43][4].png"); + tree->Draw("mhtdc[43][5]"); + c1->Print("../figure/raw/mhtdc[43][5].png"); + tree->Draw("mhtdc[43][6]"); + c1->Print("../figure/raw/mhtdc[43][6].png"); + tree->Draw("mhtdc[43][7]"); + c1->Print("../figure/raw/mhtdc[43][7].png"); + tree->Draw("mhtdc[43][8]"); + c1->Print("../figure/raw/mhtdc[43][8].png"); + tree->Draw("mhtdc[43][9]"); + c1->Print("../figure/raw/mhtdc[43][9].png"); + tree->Draw("mhtdc[43][10]"); + c1->Print("../figure/raw/mhtdc[43][10].png"); + tree->Draw("mhtdc[43][11]"); + c1->Print("../figure/raw/mhtdc[43][11].png"); + tree->Draw("mhtdc[44][0]"); + c1->Print("../figure/raw/mhtdc[44][0].png"); + tree->Draw("mhtdc[44][1]"); + c1->Print("../figure/raw/mhtdc[44][1].png"); + tree->Draw("mhtdc[44][2]"); + c1->Print("../figure/raw/mhtdc[44][2].png"); + tree->Draw("mhtdc[44][3]"); + c1->Print("../figure/raw/mhtdc[44][3].png"); + tree->Draw("mhtdc[44][4]"); + c1->Print("../figure/raw/mhtdc[44][4].png"); + tree->Draw("mhtdc[44][5]"); + c1->Print("../figure/raw/mhtdc[44][5].png"); + tree->Draw("mhtdc[44][6]"); + c1->Print("../figure/raw/mhtdc[44][6].png"); + tree->Draw("mhtdc[44][7]"); + c1->Print("../figure/raw/mhtdc[44][7].png"); + tree->Draw("mhtdc[44][8]"); + c1->Print("../figure/raw/mhtdc[44][8].png"); + tree->Draw("mhtdc[44][9]"); + c1->Print("../figure/raw/mhtdc[44][9].png"); + tree->Draw("mhtdc[44][10]"); + c1->Print("../figure/raw/mhtdc[44][10].png"); + tree->Draw("mhtdc[44][11]"); + c1->Print("../figure/raw/mhtdc[44][11].png"); + tree->Draw("mhtdc[45][0]"); + c1->Print("../figure/raw/mhtdc[45][0].png"); + tree->Draw("mhtdc[45][1]"); + c1->Print("../figure/raw/mhtdc[45][1].png"); + tree->Draw("mhtdc[45][2]"); + c1->Print("../figure/raw/mhtdc[45][2].png"); + tree->Draw("mhtdc[45][3]"); + c1->Print("../figure/raw/mhtdc[45][3].png"); + tree->Draw("mhtdc[45][4]"); + c1->Print("../figure/raw/mhtdc[45][4].png"); + tree->Draw("mhtdc[45][5]"); + c1->Print("../figure/raw/mhtdc[45][5].png"); + tree->Draw("mhtdc[45][6]"); + c1->Print("../figure/raw/mhtdc[45][6].png"); + tree->Draw("mhtdc[45][7]"); + c1->Print("../figure/raw/mhtdc[45][7].png"); + tree->Draw("mhtdc[45][8]"); + c1->Print("../figure/raw/mhtdc[45][8].png"); + tree->Draw("mhtdc[45][9]"); + c1->Print("../figure/raw/mhtdc[45][9].png"); + tree->Draw("mhtdc[45][10]"); + c1->Print("../figure/raw/mhtdc[45][10].png"); + tree->Draw("mhtdc[45][11]"); + c1->Print("../figure/raw/mhtdc[45][11].png"); + tree->Draw("mhtdc[46][0]"); + c1->Print("../figure/raw/mhtdc[46][0].png"); + tree->Draw("mhtdc[46][1]"); + c1->Print("../figure/raw/mhtdc[46][1].png"); + tree->Draw("mhtdc[46][2]"); + c1->Print("../figure/raw/mhtdc[46][2].png"); + tree->Draw("mhtdc[46][3]"); + c1->Print("../figure/raw/mhtdc[46][3].png"); + tree->Draw("mhtdc[46][4]"); + c1->Print("../figure/raw/mhtdc[46][4].png"); + tree->Draw("mhtdc[46][5]"); + c1->Print("../figure/raw/mhtdc[46][5].png"); + tree->Draw("mhtdc[46][6]"); + c1->Print("../figure/raw/mhtdc[46][6].png"); + tree->Draw("mhtdc[46][7]"); + c1->Print("../figure/raw/mhtdc[46][7].png"); + tree->Draw("mhtdc[46][8]"); + c1->Print("../figure/raw/mhtdc[46][8].png"); + tree->Draw("mhtdc[46][9]"); + c1->Print("../figure/raw/mhtdc[46][9].png"); + tree->Draw("mhtdc[46][10]"); + c1->Print("../figure/raw/mhtdc[46][10].png"); + tree->Draw("mhtdc[46][11]"); + c1->Print("../figure/raw/mhtdc[46][11].png"); + tree->Draw("mhtdc[47][0]"); + c1->Print("../figure/raw/mhtdc[47][0].png"); + tree->Draw("mhtdc[47][1]"); + c1->Print("../figure/raw/mhtdc[47][1].png"); + tree->Draw("mhtdc[47][2]"); + c1->Print("../figure/raw/mhtdc[47][2].png"); + tree->Draw("mhtdc[47][3]"); + c1->Print("../figure/raw/mhtdc[47][3].png"); + tree->Draw("mhtdc[47][4]"); + c1->Print("../figure/raw/mhtdc[47][4].png"); + tree->Draw("mhtdc[47][5]"); + c1->Print("../figure/raw/mhtdc[47][5].png"); + tree->Draw("mhtdc[47][6]"); + c1->Print("../figure/raw/mhtdc[47][6].png"); + tree->Draw("mhtdc[47][7]"); + c1->Print("../figure/raw/mhtdc[47][7].png"); + tree->Draw("mhtdc[47][8]"); + c1->Print("../figure/raw/mhtdc[47][8].png"); + tree->Draw("mhtdc[47][9]"); + c1->Print("../figure/raw/mhtdc[47][9].png"); + tree->Draw("mhtdc[47][10]"); + c1->Print("../figure/raw/mhtdc[47][10].png"); + tree->Draw("mhtdc[47][11]"); + c1->Print("../figure/raw/mhtdc[47][11].png"); + tree->Draw("mhtdc[48][0]"); + c1->Print("../figure/raw/mhtdc[48][0].png"); + tree->Draw("mhtdc[48][1]"); + c1->Print("../figure/raw/mhtdc[48][1].png"); + tree->Draw("mhtdc[48][2]"); + c1->Print("../figure/raw/mhtdc[48][2].png"); + tree->Draw("mhtdc[48][3]"); + c1->Print("../figure/raw/mhtdc[48][3].png"); + tree->Draw("mhtdc[48][4]"); + c1->Print("../figure/raw/mhtdc[48][4].png"); + tree->Draw("mhtdc[48][5]"); + c1->Print("../figure/raw/mhtdc[48][5].png"); + tree->Draw("mhtdc[48][6]"); + c1->Print("../figure/raw/mhtdc[48][6].png"); + tree->Draw("mhtdc[48][7]"); + c1->Print("../figure/raw/mhtdc[48][7].png"); + tree->Draw("mhtdc[48][8]"); + c1->Print("../figure/raw/mhtdc[48][8].png"); + tree->Draw("mhtdc[48][9]"); + c1->Print("../figure/raw/mhtdc[48][9].png"); + tree->Draw("mhtdc[48][10]"); + c1->Print("../figure/raw/mhtdc[48][10].png"); + tree->Draw("mhtdc[48][11]"); + c1->Print("../figure/raw/mhtdc[48][11].png"); + tree->Draw("mhtdc[49][0]"); + c1->Print("../figure/raw/mhtdc[49][0].png"); + tree->Draw("mhtdc[49][1]"); + c1->Print("../figure/raw/mhtdc[49][1].png"); + tree->Draw("mhtdc[49][2]"); + c1->Print("../figure/raw/mhtdc[49][2].png"); + tree->Draw("mhtdc[49][3]"); + c1->Print("../figure/raw/mhtdc[49][3].png"); + tree->Draw("mhtdc[49][4]"); + c1->Print("../figure/raw/mhtdc[49][4].png"); + tree->Draw("mhtdc[49][5]"); + c1->Print("../figure/raw/mhtdc[49][5].png"); + tree->Draw("mhtdc[49][6]"); + c1->Print("../figure/raw/mhtdc[49][6].png"); + tree->Draw("mhtdc[49][7]"); + c1->Print("../figure/raw/mhtdc[49][7].png"); + tree->Draw("mhtdc[49][8]"); + c1->Print("../figure/raw/mhtdc[49][8].png"); + tree->Draw("mhtdc[49][9]"); + c1->Print("../figure/raw/mhtdc[49][9].png"); + tree->Draw("mhtdc[49][10]"); + c1->Print("../figure/raw/mhtdc[49][10].png"); + tree->Draw("mhtdc[49][11]"); + c1->Print("../figure/raw/mhtdc[49][11].png"); + tree->Draw("mhtdc[50][0]"); + c1->Print("../figure/raw/mhtdc[50][0].png"); + tree->Draw("mhtdc[50][1]"); + c1->Print("../figure/raw/mhtdc[50][1].png"); + tree->Draw("mhtdc[50][2]"); + c1->Print("../figure/raw/mhtdc[50][2].png"); + tree->Draw("mhtdc[50][3]"); + c1->Print("../figure/raw/mhtdc[50][3].png"); + tree->Draw("mhtdc[50][4]"); + c1->Print("../figure/raw/mhtdc[50][4].png"); + tree->Draw("mhtdc[50][5]"); + c1->Print("../figure/raw/mhtdc[50][5].png"); + tree->Draw("mhtdc[50][6]"); + c1->Print("../figure/raw/mhtdc[50][6].png"); + tree->Draw("mhtdc[50][7]"); + c1->Print("../figure/raw/mhtdc[50][7].png"); + tree->Draw("mhtdc[50][8]"); + c1->Print("../figure/raw/mhtdc[50][8].png"); + tree->Draw("mhtdc[50][9]"); + c1->Print("../figure/raw/mhtdc[50][9].png"); + tree->Draw("mhtdc[50][10]"); + c1->Print("../figure/raw/mhtdc[50][10].png"); + tree->Draw("mhtdc[50][11]"); + c1->Print("../figure/raw/mhtdc[50][11].png"); + tree->Draw("mhtdc[51][0]"); + c1->Print("../figure/raw/mhtdc[51][0].png"); + tree->Draw("mhtdc[51][1]"); + c1->Print("../figure/raw/mhtdc[51][1].png"); + tree->Draw("mhtdc[51][2]"); + c1->Print("../figure/raw/mhtdc[51][2].png"); + tree->Draw("mhtdc[51][3]"); + c1->Print("../figure/raw/mhtdc[51][3].png"); + tree->Draw("mhtdc[51][4]"); + c1->Print("../figure/raw/mhtdc[51][4].png"); + tree->Draw("mhtdc[51][5]"); + c1->Print("../figure/raw/mhtdc[51][5].png"); + tree->Draw("mhtdc[51][6]"); + c1->Print("../figure/raw/mhtdc[51][6].png"); + tree->Draw("mhtdc[51][7]"); + c1->Print("../figure/raw/mhtdc[51][7].png"); + tree->Draw("mhtdc[51][8]"); + c1->Print("../figure/raw/mhtdc[51][8].png"); + tree->Draw("mhtdc[51][9]"); + c1->Print("../figure/raw/mhtdc[51][9].png"); + tree->Draw("mhtdc[51][10]"); + c1->Print("../figure/raw/mhtdc[51][10].png"); + tree->Draw("mhtdc[51][11]"); + c1->Print("../figure/raw/mhtdc[51][11].png"); + tree->Draw("mhtdc[52][0]"); + c1->Print("../figure/raw/mhtdc[52][0].png"); + tree->Draw("mhtdc[52][1]"); + c1->Print("../figure/raw/mhtdc[52][1].png"); + tree->Draw("mhtdc[52][2]"); + c1->Print("../figure/raw/mhtdc[52][2].png"); + tree->Draw("mhtdc[52][3]"); + c1->Print("../figure/raw/mhtdc[52][3].png"); + tree->Draw("mhtdc[52][4]"); + c1->Print("../figure/raw/mhtdc[52][4].png"); + tree->Draw("mhtdc[52][5]"); + c1->Print("../figure/raw/mhtdc[52][5].png"); + tree->Draw("mhtdc[52][6]"); + c1->Print("../figure/raw/mhtdc[52][6].png"); + tree->Draw("mhtdc[52][7]"); + c1->Print("../figure/raw/mhtdc[52][7].png"); + tree->Draw("mhtdc[52][8]"); + c1->Print("../figure/raw/mhtdc[52][8].png"); + tree->Draw("mhtdc[52][9]"); + c1->Print("../figure/raw/mhtdc[52][9].png"); + tree->Draw("mhtdc[52][10]"); + c1->Print("../figure/raw/mhtdc[52][10].png"); + tree->Draw("mhtdc[52][11]"); + c1->Print("../figure/raw/mhtdc[52][11].png"); + tree->Draw("mhtdc[53][0]"); + c1->Print("../figure/raw/mhtdc[53][0].png"); + tree->Draw("mhtdc[53][1]"); + c1->Print("../figure/raw/mhtdc[53][1].png"); + tree->Draw("mhtdc[53][2]"); + c1->Print("../figure/raw/mhtdc[53][2].png"); + tree->Draw("mhtdc[53][3]"); + c1->Print("../figure/raw/mhtdc[53][3].png"); + tree->Draw("mhtdc[53][4]"); + c1->Print("../figure/raw/mhtdc[53][4].png"); + tree->Draw("mhtdc[53][5]"); + c1->Print("../figure/raw/mhtdc[53][5].png"); + tree->Draw("mhtdc[53][6]"); + c1->Print("../figure/raw/mhtdc[53][6].png"); + tree->Draw("mhtdc[53][7]"); + c1->Print("../figure/raw/mhtdc[53][7].png"); + tree->Draw("mhtdc[53][8]"); + c1->Print("../figure/raw/mhtdc[53][8].png"); + tree->Draw("mhtdc[53][9]"); + c1->Print("../figure/raw/mhtdc[53][9].png"); + tree->Draw("mhtdc[53][10]"); + c1->Print("../figure/raw/mhtdc[53][10].png"); + tree->Draw("mhtdc[53][11]"); + c1->Print("../figure/raw/mhtdc[53][11].png"); + tree->Draw("mhtdc[54][0]"); + c1->Print("../figure/raw/mhtdc[54][0].png"); + tree->Draw("mhtdc[54][1]"); + c1->Print("../figure/raw/mhtdc[54][1].png"); + tree->Draw("mhtdc[54][2]"); + c1->Print("../figure/raw/mhtdc[54][2].png"); + tree->Draw("mhtdc[54][3]"); + c1->Print("../figure/raw/mhtdc[54][3].png"); + tree->Draw("mhtdc[54][4]"); + c1->Print("../figure/raw/mhtdc[54][4].png"); + tree->Draw("mhtdc[54][5]"); + c1->Print("../figure/raw/mhtdc[54][5].png"); + tree->Draw("mhtdc[54][6]"); + c1->Print("../figure/raw/mhtdc[54][6].png"); + tree->Draw("mhtdc[54][7]"); + c1->Print("../figure/raw/mhtdc[54][7].png"); + tree->Draw("mhtdc[54][8]"); + c1->Print("../figure/raw/mhtdc[54][8].png"); + tree->Draw("mhtdc[54][9]"); + c1->Print("../figure/raw/mhtdc[54][9].png"); + tree->Draw("mhtdc[54][10]"); + c1->Print("../figure/raw/mhtdc[54][10].png"); + tree->Draw("mhtdc[54][11]"); + c1->Print("../figure/raw/mhtdc[54][11].png"); + tree->Draw("mhtdc[55][0]"); + c1->Print("../figure/raw/mhtdc[55][0].png"); + tree->Draw("mhtdc[55][1]"); + c1->Print("../figure/raw/mhtdc[55][1].png"); + tree->Draw("mhtdc[55][2]"); + c1->Print("../figure/raw/mhtdc[55][2].png"); + tree->Draw("mhtdc[55][3]"); + c1->Print("../figure/raw/mhtdc[55][3].png"); + tree->Draw("mhtdc[55][4]"); + c1->Print("../figure/raw/mhtdc[55][4].png"); + tree->Draw("mhtdc[55][5]"); + c1->Print("../figure/raw/mhtdc[55][5].png"); + tree->Draw("mhtdc[55][6]"); + c1->Print("../figure/raw/mhtdc[55][6].png"); + tree->Draw("mhtdc[55][7]"); + c1->Print("../figure/raw/mhtdc[55][7].png"); + tree->Draw("mhtdc[55][8]"); + c1->Print("../figure/raw/mhtdc[55][8].png"); + tree->Draw("mhtdc[55][9]"); + c1->Print("../figure/raw/mhtdc[55][9].png"); + tree->Draw("mhtdc[55][10]"); + c1->Print("../figure/raw/mhtdc[55][10].png"); + tree->Draw("mhtdc[55][11]"); + c1->Print("../figure/raw/mhtdc[55][11].png"); + tree->Draw("mhtdc[56][0]"); + c1->Print("../figure/raw/mhtdc[56][0].png"); + tree->Draw("mhtdc[56][1]"); + c1->Print("../figure/raw/mhtdc[56][1].png"); + tree->Draw("mhtdc[56][2]"); + c1->Print("../figure/raw/mhtdc[56][2].png"); + tree->Draw("mhtdc[56][3]"); + c1->Print("../figure/raw/mhtdc[56][3].png"); + tree->Draw("mhtdc[56][4]"); + c1->Print("../figure/raw/mhtdc[56][4].png"); + tree->Draw("mhtdc[56][5]"); + c1->Print("../figure/raw/mhtdc[56][5].png"); + tree->Draw("mhtdc[56][6]"); + c1->Print("../figure/raw/mhtdc[56][6].png"); + tree->Draw("mhtdc[56][7]"); + c1->Print("../figure/raw/mhtdc[56][7].png"); + tree->Draw("mhtdc[56][8]"); + c1->Print("../figure/raw/mhtdc[56][8].png"); + tree->Draw("mhtdc[56][9]"); + c1->Print("../figure/raw/mhtdc[56][9].png"); + tree->Draw("mhtdc[56][10]"); + c1->Print("../figure/raw/mhtdc[56][10].png"); + tree->Draw("mhtdc[56][11]"); + c1->Print("../figure/raw/mhtdc[56][11].png"); + tree->Draw("mhtdc[57][0]"); + c1->Print("../figure/raw/mhtdc[57][0].png"); + tree->Draw("mhtdc[57][1]"); + c1->Print("../figure/raw/mhtdc[57][1].png"); + tree->Draw("mhtdc[57][2]"); + c1->Print("../figure/raw/mhtdc[57][2].png"); + tree->Draw("mhtdc[57][3]"); + c1->Print("../figure/raw/mhtdc[57][3].png"); + tree->Draw("mhtdc[57][4]"); + c1->Print("../figure/raw/mhtdc[57][4].png"); + tree->Draw("mhtdc[57][5]"); + c1->Print("../figure/raw/mhtdc[57][5].png"); + tree->Draw("mhtdc[57][6]"); + c1->Print("../figure/raw/mhtdc[57][6].png"); + tree->Draw("mhtdc[57][7]"); + c1->Print("../figure/raw/mhtdc[57][7].png"); + tree->Draw("mhtdc[57][8]"); + c1->Print("../figure/raw/mhtdc[57][8].png"); + tree->Draw("mhtdc[57][9]"); + c1->Print("../figure/raw/mhtdc[57][9].png"); + tree->Draw("mhtdc[57][10]"); + c1->Print("../figure/raw/mhtdc[57][10].png"); + tree->Draw("mhtdc[57][11]"); + c1->Print("../figure/raw/mhtdc[57][11].png"); + tree->Draw("mhtdc[58][0]"); + c1->Print("../figure/raw/mhtdc[58][0].png"); + tree->Draw("mhtdc[58][1]"); + c1->Print("../figure/raw/mhtdc[58][1].png"); + tree->Draw("mhtdc[58][2]"); + c1->Print("../figure/raw/mhtdc[58][2].png"); + tree->Draw("mhtdc[58][3]"); + c1->Print("../figure/raw/mhtdc[58][3].png"); + tree->Draw("mhtdc[58][4]"); + c1->Print("../figure/raw/mhtdc[58][4].png"); + tree->Draw("mhtdc[58][5]"); + c1->Print("../figure/raw/mhtdc[58][5].png"); + tree->Draw("mhtdc[58][6]"); + c1->Print("../figure/raw/mhtdc[58][6].png"); + tree->Draw("mhtdc[58][7]"); + c1->Print("../figure/raw/mhtdc[58][7].png"); + tree->Draw("mhtdc[58][8]"); + c1->Print("../figure/raw/mhtdc[58][8].png"); + tree->Draw("mhtdc[58][9]"); + c1->Print("../figure/raw/mhtdc[58][9].png"); + tree->Draw("mhtdc[58][10]"); + c1->Print("../figure/raw/mhtdc[58][10].png"); + tree->Draw("mhtdc[58][11]"); + c1->Print("../figure/raw/mhtdc[58][11].png"); + tree->Draw("mhtdc[59][0]"); + c1->Print("../figure/raw/mhtdc[59][0].png"); + tree->Draw("mhtdc[59][1]"); + c1->Print("../figure/raw/mhtdc[59][1].png"); + tree->Draw("mhtdc[59][2]"); + c1->Print("../figure/raw/mhtdc[59][2].png"); + tree->Draw("mhtdc[59][3]"); + c1->Print("../figure/raw/mhtdc[59][3].png"); + tree->Draw("mhtdc[59][4]"); + c1->Print("../figure/raw/mhtdc[59][4].png"); + tree->Draw("mhtdc[59][5]"); + c1->Print("../figure/raw/mhtdc[59][5].png"); + tree->Draw("mhtdc[59][6]"); + c1->Print("../figure/raw/mhtdc[59][6].png"); + tree->Draw("mhtdc[59][7]"); + c1->Print("../figure/raw/mhtdc[59][7].png"); + tree->Draw("mhtdc[59][8]"); + c1->Print("../figure/raw/mhtdc[59][8].png"); + tree->Draw("mhtdc[59][9]"); + c1->Print("../figure/raw/mhtdc[59][9].png"); + tree->Draw("mhtdc[59][10]"); + c1->Print("../figure/raw/mhtdc[59][10].png"); + tree->Draw("mhtdc[59][11]"); + c1->Print("../figure/raw/mhtdc[59][11].png"); + tree->Draw("mhtdc[60][0]"); + c1->Print("../figure/raw/mhtdc[60][0].png"); + tree->Draw("mhtdc[60][1]"); + c1->Print("../figure/raw/mhtdc[60][1].png"); + tree->Draw("mhtdc[60][2]"); + c1->Print("../figure/raw/mhtdc[60][2].png"); + tree->Draw("mhtdc[60][3]"); + c1->Print("../figure/raw/mhtdc[60][3].png"); + tree->Draw("mhtdc[60][4]"); + c1->Print("../figure/raw/mhtdc[60][4].png"); + tree->Draw("mhtdc[60][5]"); + c1->Print("../figure/raw/mhtdc[60][5].png"); + tree->Draw("mhtdc[60][6]"); + c1->Print("../figure/raw/mhtdc[60][6].png"); + tree->Draw("mhtdc[60][7]"); + c1->Print("../figure/raw/mhtdc[60][7].png"); + tree->Draw("mhtdc[60][8]"); + c1->Print("../figure/raw/mhtdc[60][8].png"); + tree->Draw("mhtdc[60][9]"); + c1->Print("../figure/raw/mhtdc[60][9].png"); + tree->Draw("mhtdc[60][10]"); + c1->Print("../figure/raw/mhtdc[60][10].png"); + tree->Draw("mhtdc[60][11]"); + c1->Print("../figure/raw/mhtdc[60][11].png"); + tree->Draw("mhtdc[61][0]"); + c1->Print("../figure/raw/mhtdc[61][0].png"); + tree->Draw("mhtdc[61][1]"); + c1->Print("../figure/raw/mhtdc[61][1].png"); + tree->Draw("mhtdc[61][2]"); + c1->Print("../figure/raw/mhtdc[61][2].png"); + tree->Draw("mhtdc[61][3]"); + c1->Print("../figure/raw/mhtdc[61][3].png"); + tree->Draw("mhtdc[61][4]"); + c1->Print("../figure/raw/mhtdc[61][4].png"); + tree->Draw("mhtdc[61][5]"); + c1->Print("../figure/raw/mhtdc[61][5].png"); + tree->Draw("mhtdc[61][6]"); + c1->Print("../figure/raw/mhtdc[61][6].png"); + tree->Draw("mhtdc[61][7]"); + c1->Print("../figure/raw/mhtdc[61][7].png"); + tree->Draw("mhtdc[61][8]"); + c1->Print("../figure/raw/mhtdc[61][8].png"); + tree->Draw("mhtdc[61][9]"); + c1->Print("../figure/raw/mhtdc[61][9].png"); + tree->Draw("mhtdc[61][10]"); + c1->Print("../figure/raw/mhtdc[61][10].png"); + tree->Draw("mhtdc[61][11]"); + c1->Print("../figure/raw/mhtdc[61][11].png"); + tree->Draw("mhtdc[62][0]"); + c1->Print("../figure/raw/mhtdc[62][0].png"); + tree->Draw("mhtdc[62][1]"); + c1->Print("../figure/raw/mhtdc[62][1].png"); + tree->Draw("mhtdc[62][2]"); + c1->Print("../figure/raw/mhtdc[62][2].png"); + tree->Draw("mhtdc[62][3]"); + c1->Print("../figure/raw/mhtdc[62][3].png"); + tree->Draw("mhtdc[62][4]"); + c1->Print("../figure/raw/mhtdc[62][4].png"); + tree->Draw("mhtdc[62][5]"); + c1->Print("../figure/raw/mhtdc[62][5].png"); + tree->Draw("mhtdc[62][6]"); + c1->Print("../figure/raw/mhtdc[62][6].png"); + tree->Draw("mhtdc[62][7]"); + c1->Print("../figure/raw/mhtdc[62][7].png"); + tree->Draw("mhtdc[62][8]"); + c1->Print("../figure/raw/mhtdc[62][8].png"); + tree->Draw("mhtdc[62][9]"); + c1->Print("../figure/raw/mhtdc[62][9].png"); + tree->Draw("mhtdc[62][10]"); + c1->Print("../figure/raw/mhtdc[62][10].png"); + tree->Draw("mhtdc[62][11]"); + c1->Print("../figure/raw/mhtdc[62][11].png"); + tree->Draw("mhtdc[63][0]"); + c1->Print("../figure/raw/mhtdc[63][0].png"); + tree->Draw("mhtdc[63][1]"); + c1->Print("../figure/raw/mhtdc[63][1].png"); + tree->Draw("mhtdc[63][2]"); + c1->Print("../figure/raw/mhtdc[63][2].png"); + tree->Draw("mhtdc[63][3]"); + c1->Print("../figure/raw/mhtdc[63][3].png"); + tree->Draw("mhtdc[63][4]"); + c1->Print("../figure/raw/mhtdc[63][4].png"); + tree->Draw("mhtdc[63][5]"); + c1->Print("../figure/raw/mhtdc[63][5].png"); + tree->Draw("mhtdc[63][6]"); + c1->Print("../figure/raw/mhtdc[63][6].png"); + tree->Draw("mhtdc[63][7]"); + c1->Print("../figure/raw/mhtdc[63][7].png"); + tree->Draw("mhtdc[63][8]"); + c1->Print("../figure/raw/mhtdc[63][8].png"); + tree->Draw("mhtdc[63][9]"); + c1->Print("../figure/raw/mhtdc[63][9].png"); + tree->Draw("mhtdc[63][10]"); + c1->Print("../figure/raw/mhtdc[63][10].png"); + tree->Draw("mhtdc[63][11]"); + c1->Print("../figure/raw/mhtdc[63][11].png"); + tree->Draw("mhtdc_nhit[0]"); + c1->Print("../figure/raw/mhtdc_nhit[0].png"); + tree->Draw("mhtdc_nhit[1]"); + c1->Print("../figure/raw/mhtdc_nhit[1].png"); + tree->Draw("mhtdc_nhit[2]"); + c1->Print("../figure/raw/mhtdc_nhit[2].png"); + tree->Draw("mhtdc_nhit[3]"); + c1->Print("../figure/raw/mhtdc_nhit[3].png"); + tree->Draw("mhtdc_nhit[4]"); + c1->Print("../figure/raw/mhtdc_nhit[4].png"); + tree->Draw("mhtdc_nhit[5]"); + c1->Print("../figure/raw/mhtdc_nhit[5].png"); + tree->Draw("mhtdc_nhit[6]"); + c1->Print("../figure/raw/mhtdc_nhit[6].png"); + tree->Draw("mhtdc_nhit[7]"); + c1->Print("../figure/raw/mhtdc_nhit[7].png"); + tree->Draw("mhtdc_nhit[8]"); + c1->Print("../figure/raw/mhtdc_nhit[8].png"); + tree->Draw("mhtdc_nhit[9]"); + c1->Print("../figure/raw/mhtdc_nhit[9].png"); + tree->Draw("mhtdc_nhit[10]"); + c1->Print("../figure/raw/mhtdc_nhit[10].png"); + tree->Draw("mhtdc_nhit[11]"); + c1->Print("../figure/raw/mhtdc_nhit[11].png"); + tree->Draw("mhtdc_nhit[12]"); + c1->Print("../figure/raw/mhtdc_nhit[12].png"); + tree->Draw("mhtdc_nhit[13]"); + c1->Print("../figure/raw/mhtdc_nhit[13].png"); + tree->Draw("mhtdc_nhit[14]"); + c1->Print("../figure/raw/mhtdc_nhit[14].png"); + tree->Draw("mhtdc_nhit[15]"); + c1->Print("../figure/raw/mhtdc_nhit[15].png"); + tree->Draw("mhtdc_nhit[16]"); + c1->Print("../figure/raw/mhtdc_nhit[16].png"); + tree->Draw("mhtdc_nhit[17]"); + c1->Print("../figure/raw/mhtdc_nhit[17].png"); + tree->Draw("mhtdc_nhit[18]"); + c1->Print("../figure/raw/mhtdc_nhit[18].png"); + tree->Draw("mhtdc_nhit[19]"); + c1->Print("../figure/raw/mhtdc_nhit[19].png"); + tree->Draw("mhtdc_nhit[20]"); + c1->Print("../figure/raw/mhtdc_nhit[20].png"); + tree->Draw("mhtdc_nhit[21]"); + c1->Print("../figure/raw/mhtdc_nhit[21].png"); + tree->Draw("mhtdc_nhit[22]"); + c1->Print("../figure/raw/mhtdc_nhit[22].png"); + tree->Draw("mhtdc_nhit[23]"); + c1->Print("../figure/raw/mhtdc_nhit[23].png"); + tree->Draw("mhtdc_nhit[24]"); + c1->Print("../figure/raw/mhtdc_nhit[24].png"); + tree->Draw("mhtdc_nhit[25]"); + c1->Print("../figure/raw/mhtdc_nhit[25].png"); + tree->Draw("mhtdc_nhit[26]"); + c1->Print("../figure/raw/mhtdc_nhit[26].png"); + tree->Draw("mhtdc_nhit[27]"); + c1->Print("../figure/raw/mhtdc_nhit[27].png"); + tree->Draw("mhtdc_nhit[28]"); + c1->Print("../figure/raw/mhtdc_nhit[28].png"); + tree->Draw("mhtdc_nhit[29]"); + c1->Print("../figure/raw/mhtdc_nhit[29].png"); + tree->Draw("mhtdc_nhit[30]"); + c1->Print("../figure/raw/mhtdc_nhit[30].png"); + tree->Draw("mhtdc_nhit[31]"); + c1->Print("../figure/raw/mhtdc_nhit[31].png"); + tree->Draw("mhtdc_nhit[32]"); + c1->Print("../figure/raw/mhtdc_nhit[32].png"); + tree->Draw("mhtdc_nhit[33]"); + c1->Print("../figure/raw/mhtdc_nhit[33].png"); + tree->Draw("mhtdc_nhit[34]"); + c1->Print("../figure/raw/mhtdc_nhit[34].png"); + tree->Draw("mhtdc_nhit[35]"); + c1->Print("../figure/raw/mhtdc_nhit[35].png"); + tree->Draw("mhtdc_nhit[36]"); + c1->Print("../figure/raw/mhtdc_nhit[36].png"); + tree->Draw("mhtdc_nhit[37]"); + c1->Print("../figure/raw/mhtdc_nhit[37].png"); + tree->Draw("mhtdc_nhit[38]"); + c1->Print("../figure/raw/mhtdc_nhit[38].png"); + tree->Draw("mhtdc_nhit[39]"); + c1->Print("../figure/raw/mhtdc_nhit[39].png"); + tree->Draw("mhtdc_nhit[40]"); + c1->Print("../figure/raw/mhtdc_nhit[40].png"); + tree->Draw("mhtdc_nhit[41]"); + c1->Print("../figure/raw/mhtdc_nhit[41].png"); + tree->Draw("mhtdc_nhit[42]"); + c1->Print("../figure/raw/mhtdc_nhit[42].png"); + tree->Draw("mhtdc_nhit[43]"); + c1->Print("../figure/raw/mhtdc_nhit[43].png"); + tree->Draw("mhtdc_nhit[44]"); + c1->Print("../figure/raw/mhtdc_nhit[44].png"); + tree->Draw("mhtdc_nhit[45]"); + c1->Print("../figure/raw/mhtdc_nhit[45].png"); + tree->Draw("mhtdc_nhit[46]"); + c1->Print("../figure/raw/mhtdc_nhit[46].png"); + tree->Draw("mhtdc_nhit[47]"); + c1->Print("../figure/raw/mhtdc_nhit[47].png"); + tree->Draw("mhtdc_nhit[48]"); + c1->Print("../figure/raw/mhtdc_nhit[48].png"); + tree->Draw("mhtdc_nhit[49]"); + c1->Print("../figure/raw/mhtdc_nhit[49].png"); + tree->Draw("mhtdc_nhit[50]"); + c1->Print("../figure/raw/mhtdc_nhit[50].png"); + tree->Draw("mhtdc_nhit[51]"); + c1->Print("../figure/raw/mhtdc_nhit[51].png"); + tree->Draw("mhtdc_nhit[52]"); + c1->Print("../figure/raw/mhtdc_nhit[52].png"); + tree->Draw("mhtdc_nhit[53]"); + c1->Print("../figure/raw/mhtdc_nhit[53].png"); + tree->Draw("mhtdc_nhit[54]"); + c1->Print("../figure/raw/mhtdc_nhit[54].png"); + tree->Draw("mhtdc_nhit[55]"); + c1->Print("../figure/raw/mhtdc_nhit[55].png"); + tree->Draw("mhtdc_nhit[56]"); + c1->Print("../figure/raw/mhtdc_nhit[56].png"); + tree->Draw("mhtdc_nhit[57]"); + c1->Print("../figure/raw/mhtdc_nhit[57].png"); + tree->Draw("mhtdc_nhit[58]"); + c1->Print("../figure/raw/mhtdc_nhit[58].png"); + tree->Draw("mhtdc_nhit[59]"); + c1->Print("../figure/raw/mhtdc_nhit[59].png"); + tree->Draw("mhtdc_nhit[60]"); + c1->Print("../figure/raw/mhtdc_nhit[60].png"); + tree->Draw("mhtdc_nhit[61]"); + c1->Print("../figure/raw/mhtdc_nhit[61].png"); + tree->Draw("mhtdc_nhit[62]"); + c1->Print("../figure/raw/mhtdc_nhit[62].png"); + tree->Draw("mhtdc_nhit[63]"); + c1->Print("../figure/raw/mhtdc_nhit[63].png"); +} diff --git a/macro/check_raw_tree2.C b/macro/check_raw_tree2.C new file mode 100644 index 0000000..67ba831 --- /dev/null +++ b/macro/check_raw_tree2.C @@ -0,0 +1,402 @@ +//this macro create all histograms and save as png file +//(for check the macro is correct) +//CAUTION: many file will be created + +{ + gStyle->SetOptLogy(1); + + TCanvas *c1 = new TCanvas("c1", "c1"); + tree->Draw("adc1[0]"); + c1->Print("../figure/raw/adc1[0].png"); + tree->Draw("adc1[1]"); + c1->Print("../figure/raw/adc1[1].png"); + tree->Draw("adc1[2]"); + c1->Print("../figure/raw/adc1[2].png"); + tree->Draw("adc1[3]"); + c1->Print("../figure/raw/adc1[3].png"); + tree->Draw("adc1[4]"); + c1->Print("../figure/raw/adc1[4].png"); + tree->Draw("adc1[5]"); + c1->Print("../figure/raw/adc1[5].png"); + tree->Draw("adc1[6]"); + c1->Print("../figure/raw/adc1[6].png"); + tree->Draw("adc1[7]"); + c1->Print("../figure/raw/adc1[7].png"); + tree->Draw("adc1[8]"); + c1->Print("../figure/raw/adc1[8].png"); + tree->Draw("adc1[9]"); + c1->Print("../figure/raw/adc1[9].png"); + tree->Draw("adc1[10]"); + c1->Print("../figure/raw/adc1[10].png"); + tree->Draw("adc1[11]"); + c1->Print("../figure/raw/adc1[11].png"); + tree->Draw("adc1[12]"); + c1->Print("../figure/raw/adc1[12].png"); + tree->Draw("adc1[13]"); + c1->Print("../figure/raw/adc1[13].png"); + tree->Draw("adc1[14]"); + c1->Print("../figure/raw/adc1[14].png"); + tree->Draw("adc1[15]"); + c1->Print("../figure/raw/adc1[15].png"); + tree->Draw("adc1[16]"); + c1->Print("../figure/raw/adc1[16].png"); + tree->Draw("adc1[17]"); + c1->Print("../figure/raw/adc1[17].png"); + tree->Draw("adc1[18]"); + c1->Print("../figure/raw/adc1[18].png"); + tree->Draw("adc1[19]"); + c1->Print("../figure/raw/adc1[19].png"); + tree->Draw("adc1[20]"); + c1->Print("../figure/raw/adc1[20].png"); + tree->Draw("adc1[21]"); + c1->Print("../figure/raw/adc1[21].png"); + tree->Draw("adc1[22]"); + c1->Print("../figure/raw/adc1[22].png"); + tree->Draw("adc1[23]"); + c1->Print("../figure/raw/adc1[23].png"); + tree->Draw("adc1[24]"); + c1->Print("../figure/raw/adc1[24].png"); + tree->Draw("adc1[25]"); + c1->Print("../figure/raw/adc1[25].png"); + tree->Draw("adc1[26]"); + c1->Print("../figure/raw/adc1[26].png"); + tree->Draw("adc1[27]"); + c1->Print("../figure/raw/adc1[27].png"); + tree->Draw("adc1[28]"); + c1->Print("../figure/raw/adc1[28].png"); + tree->Draw("adc1[29]"); + c1->Print("../figure/raw/adc1[29].png"); + tree->Draw("adc1[30]"); + c1->Print("../figure/raw/adc1[30].png"); + tree->Draw("adc1[31]"); + c1->Print("../figure/raw/adc1[31].png"); + tree->Draw("adc2[0]"); + c1->Print("../figure/raw/adc2[0].png"); + tree->Draw("adc2[1]"); + c1->Print("../figure/raw/adc2[1].png"); + tree->Draw("adc2[2]"); + c1->Print("../figure/raw/adc2[2].png"); + tree->Draw("adc2[3]"); + c1->Print("../figure/raw/adc2[3].png"); + tree->Draw("adc2[4]"); + c1->Print("../figure/raw/adc2[4].png"); + tree->Draw("adc2[5]"); + c1->Print("../figure/raw/adc2[5].png"); + tree->Draw("adc2[6]"); + c1->Print("../figure/raw/adc2[6].png"); + tree->Draw("adc2[7]"); + c1->Print("../figure/raw/adc2[7].png"); + tree->Draw("adc2[8]"); + c1->Print("../figure/raw/adc2[8].png"); + tree->Draw("adc2[9]"); + c1->Print("../figure/raw/adc2[9].png"); + tree->Draw("adc2[10]"); + c1->Print("../figure/raw/adc2[10].png"); + tree->Draw("adc2[11]"); + c1->Print("../figure/raw/adc2[11].png"); + tree->Draw("adc2[12]"); + c1->Print("../figure/raw/adc2[12].png"); + tree->Draw("adc2[13]"); + c1->Print("../figure/raw/adc2[13].png"); + tree->Draw("adc2[14]"); + c1->Print("../figure/raw/adc2[14].png"); + tree->Draw("adc2[15]"); + c1->Print("../figure/raw/adc2[15].png"); + tree->Draw("adc2[16]"); + c1->Print("../figure/raw/adc2[16].png"); + tree->Draw("adc2[17]"); + c1->Print("../figure/raw/adc2[17].png"); + tree->Draw("adc2[18]"); + c1->Print("../figure/raw/adc2[18].png"); + tree->Draw("adc2[19]"); + c1->Print("../figure/raw/adc2[19].png"); + tree->Draw("adc2[20]"); + c1->Print("../figure/raw/adc2[20].png"); + tree->Draw("adc2[21]"); + c1->Print("../figure/raw/adc2[21].png"); + tree->Draw("adc2[22]"); + c1->Print("../figure/raw/adc2[22].png"); + tree->Draw("adc2[23]"); + c1->Print("../figure/raw/adc2[23].png"); + tree->Draw("adc2[24]"); + c1->Print("../figure/raw/adc2[24].png"); + tree->Draw("adc2[25]"); + c1->Print("../figure/raw/adc2[25].png"); + tree->Draw("adc2[26]"); + c1->Print("../figure/raw/adc2[26].png"); + tree->Draw("adc2[27]"); + c1->Print("../figure/raw/adc2[27].png"); + tree->Draw("adc2[28]"); + c1->Print("../figure/raw/adc2[28].png"); + tree->Draw("adc2[29]"); + c1->Print("../figure/raw/adc2[29].png"); + tree->Draw("adc2[30]"); + c1->Print("../figure/raw/adc2[30].png"); + tree->Draw("adc2[31]"); + c1->Print("../figure/raw/adc2[31].png"); + tree->Draw("madc1[0]"); + c1->Print("../figure/raw/madc1[0].png"); + tree->Draw("madc1[1]"); + c1->Print("../figure/raw/madc1[1].png"); + tree->Draw("madc1[2]"); + c1->Print("../figure/raw/madc1[2].png"); + tree->Draw("madc1[3]"); + c1->Print("../figure/raw/madc1[3].png"); + tree->Draw("madc1[4]"); + c1->Print("../figure/raw/madc1[4].png"); + tree->Draw("madc1[5]"); + c1->Print("../figure/raw/madc1[5].png"); + tree->Draw("madc1[6]"); + c1->Print("../figure/raw/madc1[6].png"); + tree->Draw("madc1[7]"); + c1->Print("../figure/raw/madc1[7].png"); + tree->Draw("madc1[8]"); + c1->Print("../figure/raw/madc1[8].png"); + tree->Draw("madc1[9]"); + c1->Print("../figure/raw/madc1[9].png"); + tree->Draw("madc1[10]"); + c1->Print("../figure/raw/madc1[10].png"); + tree->Draw("madc1[11]"); + c1->Print("../figure/raw/madc1[11].png"); + tree->Draw("madc1[12]"); + c1->Print("../figure/raw/madc1[12].png"); + tree->Draw("madc1[13]"); + c1->Print("../figure/raw/madc1[13].png"); + tree->Draw("madc1[14]"); + c1->Print("../figure/raw/madc1[14].png"); + tree->Draw("madc1[15]"); + c1->Print("../figure/raw/madc1[15].png"); + tree->Draw("madc1[16]"); + c1->Print("../figure/raw/madc1[16].png"); + tree->Draw("madc1[17]"); + c1->Print("../figure/raw/madc1[17].png"); + tree->Draw("madc1[18]"); + c1->Print("../figure/raw/madc1[18].png"); + tree->Draw("madc1[19]"); + c1->Print("../figure/raw/madc1[19].png"); + tree->Draw("madc1[20]"); + c1->Print("../figure/raw/madc1[20].png"); + tree->Draw("madc1[21]"); + c1->Print("../figure/raw/madc1[21].png"); + tree->Draw("madc1[22]"); + c1->Print("../figure/raw/madc1[22].png"); + tree->Draw("madc1[23]"); + c1->Print("../figure/raw/madc1[23].png"); + tree->Draw("madc1[24]"); + c1->Print("../figure/raw/madc1[24].png"); + tree->Draw("madc1[25]"); + c1->Print("../figure/raw/madc1[25].png"); + tree->Draw("madc1[26]"); + c1->Print("../figure/raw/madc1[26].png"); + tree->Draw("madc1[27]"); + c1->Print("../figure/raw/madc1[27].png"); + tree->Draw("madc1[28]"); + c1->Print("../figure/raw/madc1[28].png"); + tree->Draw("madc1[29]"); + c1->Print("../figure/raw/madc1[29].png"); + tree->Draw("madc1[30]"); + c1->Print("../figure/raw/madc1[30].png"); + tree->Draw("madc1[31]"); + c1->Print("../figure/raw/madc1[31].png"); + tree->Draw("madc2[0]"); + c1->Print("../figure/raw/madc2[0].png"); + tree->Draw("madc2[1]"); + c1->Print("../figure/raw/madc2[1].png"); + tree->Draw("madc2[2]"); + c1->Print("../figure/raw/madc2[2].png"); + tree->Draw("madc2[3]"); + c1->Print("../figure/raw/madc2[3].png"); + tree->Draw("madc2[4]"); + c1->Print("../figure/raw/madc2[4].png"); + tree->Draw("madc2[5]"); + c1->Print("../figure/raw/madc2[5].png"); + tree->Draw("madc2[6]"); + c1->Print("../figure/raw/madc2[6].png"); + tree->Draw("madc2[7]"); + c1->Print("../figure/raw/madc2[7].png"); + tree->Draw("madc2[8]"); + c1->Print("../figure/raw/madc2[8].png"); + tree->Draw("madc2[9]"); + c1->Print("../figure/raw/madc2[9].png"); + tree->Draw("madc2[10]"); + c1->Print("../figure/raw/madc2[10].png"); + tree->Draw("madc2[11]"); + c1->Print("../figure/raw/madc2[11].png"); + tree->Draw("madc2[12]"); + c1->Print("../figure/raw/madc2[12].png"); + tree->Draw("madc2[13]"); + c1->Print("../figure/raw/madc2[13].png"); + tree->Draw("madc2[14]"); + c1->Print("../figure/raw/madc2[14].png"); + tree->Draw("madc2[15]"); + c1->Print("../figure/raw/madc2[15].png"); + tree->Draw("madc2[16]"); + c1->Print("../figure/raw/madc2[16].png"); + tree->Draw("madc2[17]"); + c1->Print("../figure/raw/madc2[17].png"); + tree->Draw("madc2[18]"); + c1->Print("../figure/raw/madc2[18].png"); + tree->Draw("madc2[19]"); + c1->Print("../figure/raw/madc2[19].png"); + tree->Draw("madc2[20]"); + c1->Print("../figure/raw/madc2[20].png"); + tree->Draw("madc2[21]"); + c1->Print("../figure/raw/madc2[21].png"); + tree->Draw("madc2[22]"); + c1->Print("../figure/raw/madc2[22].png"); + tree->Draw("madc2[23]"); + c1->Print("../figure/raw/madc2[23].png"); + tree->Draw("madc2[24]"); + c1->Print("../figure/raw/madc2[24].png"); + tree->Draw("madc2[25]"); + c1->Print("../figure/raw/madc2[25].png"); + tree->Draw("madc2[26]"); + c1->Print("../figure/raw/madc2[26].png"); + tree->Draw("madc2[27]"); + c1->Print("../figure/raw/madc2[27].png"); + tree->Draw("madc2[28]"); + c1->Print("../figure/raw/madc2[28].png"); + tree->Draw("madc2[29]"); + c1->Print("../figure/raw/madc2[29].png"); + tree->Draw("madc2[30]"); + c1->Print("../figure/raw/madc2[30].png"); + tree->Draw("madc2[31]"); + c1->Print("../figure/raw/madc2[31].png"); + tree->Draw("tdc1[0]"); + c1->Print("../figure/raw/tdc1[0].png"); + tree->Draw("tdc1[1]"); + c1->Print("../figure/raw/tdc1[1].png"); + tree->Draw("tdc1[2]"); + c1->Print("../figure/raw/tdc1[2].png"); + tree->Draw("tdc1[3]"); + c1->Print("../figure/raw/tdc1[3].png"); + tree->Draw("tdc1[4]"); + c1->Print("../figure/raw/tdc1[4].png"); + tree->Draw("tdc1[5]"); + c1->Print("../figure/raw/tdc1[5].png"); + tree->Draw("tdc1[6]"); + c1->Print("../figure/raw/tdc1[6].png"); + tree->Draw("tdc1[7]"); + c1->Print("../figure/raw/tdc1[7].png"); + tree->Draw("tdc1[8]"); + c1->Print("../figure/raw/tdc1[8].png"); + tree->Draw("tdc1[9]"); + c1->Print("../figure/raw/tdc1[9].png"); + tree->Draw("tdc1[10]"); + c1->Print("../figure/raw/tdc1[10].png"); + tree->Draw("tdc1[11]"); + c1->Print("../figure/raw/tdc1[11].png"); + tree->Draw("tdc1[12]"); + c1->Print("../figure/raw/tdc1[12].png"); + tree->Draw("tdc1[13]"); + c1->Print("../figure/raw/tdc1[13].png"); + tree->Draw("tdc1[14]"); + c1->Print("../figure/raw/tdc1[14].png"); + tree->Draw("tdc1[15]"); + c1->Print("../figure/raw/tdc1[15].png"); + tree->Draw("tdc1[16]"); + c1->Print("../figure/raw/tdc1[16].png"); + tree->Draw("tdc1[17]"); + c1->Print("../figure/raw/tdc1[17].png"); + tree->Draw("tdc1[18]"); + c1->Print("../figure/raw/tdc1[18].png"); + tree->Draw("tdc1[19]"); + c1->Print("../figure/raw/tdc1[19].png"); + tree->Draw("tdc1[20]"); + c1->Print("../figure/raw/tdc1[20].png"); + tree->Draw("tdc1[21]"); + c1->Print("../figure/raw/tdc1[21].png"); + tree->Draw("tdc1[22]"); + c1->Print("../figure/raw/tdc1[22].png"); + tree->Draw("tdc1[23]"); + c1->Print("../figure/raw/tdc1[23].png"); + tree->Draw("tdc1[24]"); + c1->Print("../figure/raw/tdc1[24].png"); + tree->Draw("tdc1[25]"); + c1->Print("../figure/raw/tdc1[25].png"); + tree->Draw("tdc1[26]"); + c1->Print("../figure/raw/tdc1[26].png"); + tree->Draw("tdc1[27]"); + c1->Print("../figure/raw/tdc1[27].png"); + tree->Draw("tdc1[28]"); + c1->Print("../figure/raw/tdc1[28].png"); + tree->Draw("tdc1[29]"); + c1->Print("../figure/raw/tdc1[29].png"); + tree->Draw("tdc1[30]"); + c1->Print("../figure/raw/tdc1[30].png"); + tree->Draw("tdc1[31]"); + c1->Print("../figure/raw/tdc1[31].png"); + tree->Draw("tdc2[0]"); + c1->Print("../figure/raw/tdc2[0].png"); + tree->Draw("tdc2[1]"); + c1->Print("../figure/raw/tdc2[1].png"); + tree->Draw("tdc2[2]"); + c1->Print("../figure/raw/tdc2[2].png"); + tree->Draw("tdc2[3]"); + c1->Print("../figure/raw/tdc2[3].png"); + tree->Draw("tdc2[4]"); + c1->Print("../figure/raw/tdc2[4].png"); + tree->Draw("tdc2[5]"); + c1->Print("../figure/raw/tdc2[5].png"); + tree->Draw("tdc2[6]"); + c1->Print("../figure/raw/tdc2[6].png"); + tree->Draw("tdc2[7]"); + c1->Print("../figure/raw/tdc2[7].png"); + tree->Draw("tdc2[8]"); + c1->Print("../figure/raw/tdc2[8].png"); + tree->Draw("tdc2[9]"); + c1->Print("../figure/raw/tdc2[9].png"); + tree->Draw("tdc2[10]"); + c1->Print("../figure/raw/tdc2[10].png"); + tree->Draw("tdc2[11]"); + c1->Print("../figure/raw/tdc2[11].png"); + tree->Draw("tdc2[12]"); + c1->Print("../figure/raw/tdc2[12].png"); + tree->Draw("tdc2[13]"); + c1->Print("../figure/raw/tdc2[13].png"); + tree->Draw("tdc2[14]"); + c1->Print("../figure/raw/tdc2[14].png"); + tree->Draw("tdc2[15]"); + c1->Print("../figure/raw/tdc2[15].png"); + tree->Draw("tdc2[16]"); + c1->Print("../figure/raw/tdc2[16].png"); + tree->Draw("tdc2[17]"); + c1->Print("../figure/raw/tdc2[17].png"); + tree->Draw("tdc2[18]"); + c1->Print("../figure/raw/tdc2[18].png"); + tree->Draw("tdc2[19]"); + c1->Print("../figure/raw/tdc2[19].png"); + tree->Draw("tdc2[20]"); + c1->Print("../figure/raw/tdc2[20].png"); + tree->Draw("tdc2[21]"); + c1->Print("../figure/raw/tdc2[21].png"); + tree->Draw("tdc2[22]"); + c1->Print("../figure/raw/tdc2[22].png"); + tree->Draw("tdc2[23]"); + c1->Print("../figure/raw/tdc2[23].png"); + tree->Draw("tdc2[24]"); + c1->Print("../figure/raw/tdc2[24].png"); + tree->Draw("tdc2[25]"); + c1->Print("../figure/raw/tdc2[25].png"); + tree->Draw("tdc2[26]"); + c1->Print("../figure/raw/tdc2[26].png"); + tree->Draw("tdc2[27]"); + c1->Print("../figure/raw/tdc2[27].png"); + tree->Draw("tdc2[28]"); + c1->Print("../figure/raw/tdc2[28].png"); + tree->Draw("tdc2[29]"); + c1->Print("../figure/raw/tdc2[29].png"); + tree->Draw("tdc2[30]"); + c1->Print("../figure/raw/tdc2[30].png"); + tree->Draw("tdc2[31]"); + c1->Print("../figure/raw/tdc2[31].png"); + for(Int_t i=0; i<64; i++){ + for(Int_t j=0; j<12; j++){ + TString branch, file; + branch.Form("mhtdc_%dch[%d]", i+1, j); + file.Form("../figure/raw/mhtdc_%dch[%d].png", i+1, j); + tree->Draw(branch.Data()); + c1->Print(file.Data()); + } + } +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3f3a7f6..fec8b61 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,12 +2,14 @@ add_library(sources SHARED CommandlineReader.cpp MapReader.cpp CalibParamReader.cpp - CalibrationManager.cpp TCordferRawBranch.cpp TCordferMapBranch.cpp TCordferCalibBranch.cpp TCordferBranchManager.cpp ) +#add_library(sources SHARED +# *.cpp +# } # include the headder file (absolute path) target_include_directories(sources PUBLIC diff --git a/src/CalibrationManager.cpp b/src/CalibrationManager.cpp deleted file mode 100644 index f084379..0000000 --- a/src/CalibrationManager.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include -#include - -#include "CalibrationManager.hh" - -using namespace std; - - -Double_t GetCalibValue(Int_t val, vector params){ - Double_t tmp = 0.0; - for(Int_t i=0; i(); Int_t nhit = setup[i]["branches"][0]["maxhit"].as(); - TCordferRawBranch *mhtdc_branch = new TCordferRawBranch(mhtdc_name, seg_id, nch, det_id, nhit); + for(Int_t j=0; jsize, mhtdc_branch->nhit); - - tree->Branch(mhtdc_name.Data(), mhtdc_branch->mhtdc_val, brancharray); - branch.push_back(mhtdc_branch); - - - TString nhit_name = setup[i]["branches"][1]["name"].as(); - Int_t nhit_nch = setup[i]["branches"][1]["channel"].as(); - TCordferRawBranch *nhit_branch = new TCordferRawBranch(nhit_name, 0, nhit_nch, 0); //geo, det_id = 0 + TString brancharray; + brancharray.Form("%s[%d]/I", bra_name.Data(), mhtdc_branch->size); - TString nhitbrancharray; - nhitbrancharray.Form("%s[%d]/I", nhit_name.Data(), nhit_branch->size); + tree->Branch(bra_name.Data(), mhtdc_branch->bra_val, brancharray); + branch.push_back(mhtdc_branch); + } - tree->Branch(nhit_name.Data(), nhit_branch->bra_val, nhitbrancharray); - branch.push_back(nhit_branch); } } } @@ -224,8 +219,11 @@ void TCordferBranchManager::CreateMapping(){ void TCordferBranchManager::CreateRawMapping(){ memset(rmapping, -1, sizeof(rmapping)); + Int_t seg_buf = -99; for(Int_t i=0; igeo; + if(seg == seg_buf){ continue; } + seg_buf = seg; rmapping[seg] = i; } } @@ -402,9 +400,10 @@ void TCordferBranchManager::GiveRawValue(Int_t geo, Int_t ch, Int_t val){ } if(branch[index]->detector_id == 10){ - Int_t ht_id = branch[index+1]->bra_val[ch]; - branch[index]->mhtdc_val[ch][ht_id] = val; - branch[index+1]->bra_val[ch] += 1; + Int_t ht_id = branch[index+ch]->nhit; + branch[index+ch]->bra_val[ht_id] = val; + branch[index+ch]->nhit += 1; + }else{ branch[index]->bra_val[ch] = val; } @@ -505,7 +504,6 @@ void TCordferBranchManager::FileClose(){ mbranch[i]->FreeMemory(); } - //for cbranch } // for debug diff --git a/src/TCordferRawBranch.cpp b/src/TCordferRawBranch.cpp index e6a21af..cfd43ee 100644 --- a/src/TCordferRawBranch.cpp +++ b/src/TCordferRawBranch.cpp @@ -23,47 +23,15 @@ void TCordferRawBranch::FreeTwoDimMemory(){ } -//bool TCordferRawBranch::SetValue(Int_t ch, Int_t val){ -// if(detector_id == 10){ -// } -//} - - void TCordferRawBranch::Clear(){ - //if(detector_id == 10){ - // Int_t m = sizeof(mhtdc_val) / sizeof(mhtdc_val[0]); - // Int_t n = sizeof(mhtdc_val[0]) / sizeof(mhtdc_val[0][0]); - // memset(mhtdc_val, -500, sizeof(mhtdc_val[0][0])*m*n); - //} - //else if(detector_id == 0){ - // memset(bra_val, 0, sizeof(bra_val)); - //}else{ - // memset(bra_val, -500, sizeof(bra_val)); - //} - - if(detector_id == 10){ - for(Int_t j=0; j +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "TCordferBranchManager.hh" + +using namespace std; + + +void TCordferBranchManager::Readyaml(TString yamlfile){ + FileStat_t info; + if(gSystem->GetPathInfo(yamlfile.Data(), info) != 0){ + cerr << "EROOR: File '" << yamlfile.Data() << "' does not exist." << endl; + exit(0); + } + recipe = YAML::LoadFile(yamlfile.Data()); + cout << "-- yaml file: " << yamlfile << endl; + + if(recipe["raw_tree"]["in_use"].as() == "on"){ + rawdata=true; + cout << "\t-- raw_tree in use" << endl; + } + if(recipe["map_tree"]["in_use"].as() == "on"){ + mapdata=true; + cout << "\t-- map_tree in use" << endl; + } + if(recipe["calib_tree"]["in_use"].as() == "on"){ + calibration=true; + cout << "\t-- calib_tree in use" << endl; + } + + if(mapdata == false && calibration == true){ + cout << "ERROR: calibration tree require to use map tree" << endl; + cout << "\tCHANGE recipe in yaml file" << endl; + exit(0); + } +} + + +void TCordferBranchManager::CreateTree(){ + if(rawdata){ CreateRawTree(); } + if(mapdata){ CreateMapTree(); } + if(calibration){ CreateCalibTree(); } +} + + +void TCordferBranchManager::CreateRawTree(){ + TString rawname = recipe["raw_tree"]["name"].as(); + TString rawdesc = recipe["raw_tree"]["description"].as(); + + tree = new TTree(rawname, rawdesc); +} + + +void TCordferBranchManager::CreateMapTree(){ + TString mapname = recipe["map_tree"]["name"].as(); + TString mapdesc = recipe["map_tree"]["description"].as(); + + mtree = new TTree(mapname, mapdesc); +} + + +void TCordferBranchManager::CreateCalibTree(){ + TString calibname = recipe["calib_tree"]["name"].as(); + TString calibdesc = recipe["calib_tree"]["description"].as(); + + ctree = new TTree(calibname, calibdesc); +} + + +void TCordferBranchManager::CreateBranch(){ + if(rawdata){ CreateRawBranch(); } + if(mapdata){ CreateMapBranch(); } + if(calibration){ CreateCalibBranch(); } +} + + +void TCordferBranchManager::CreateRawBranch(){ + YAML::Node setup = recipe["setup"].as(); + for(Int_t i=0; i(); + TString bname = setup[i]["name"].as(); + Int_t det_id = setup[i]["detector_id"].as(); + + if(det_id != 10){ + Int_t nch = setup[i]["channel"].as(); + TCordferRawBranch *raw_branch = new TCordferRawBranch(bname, seg_id, nch, det_id); + + TString brancharray; + brancharray.Form("%s[%d]/I", bname.Data(), raw_branch->size); + + tree->Branch(bname.Data(), raw_branch->bra_val, brancharray); + branch.push_back(raw_branch); + + }else{ + TString mhtdc_name = setup[i]["branches"][0]["name"].as(); + Int_t nch = setup[i]["branches"][0]["channel"].as(); + Int_t nhit = setup[i]["branches"][0]["maxhit"].as(); + + for(Int_t j=0; jsize); + + tree->Branch(bra_name.Data(), mhtdc_branch->bra_val, brancharray); + branch.push_back(mhtdc_branch); + } + + //*** for two dimentional branch (this is incorrect?)*** + //TCordferRawBranch *mhtdc_branch = new TCordferRawBranch(mhtdc_name, seg_id, nch, det_id, nhit); + + //TString brancharray; + //brancharray.Form("%s[%d][%d]/I", mhtdc_name.Data(), mhtdc_branch->size, mhtdc_branch->nhit); + ////cout << mhtdc_branch->detector_id << " " << mhtdc_branch->size << " " << mhtdc_branch->nhit << endl; + + //tree->Branch(mhtdc_name.Data(), mhtdc_branch->mhtdc_val, brancharray); + //branch.push_back(mhtdc_branch); + + + //TString nhit_name = setup[i]["branches"][1]["name"].as(); + //Int_t nhit_nch = setup[i]["branches"][1]["channel"].as(); + //TCordferRawBranch *nhit_branch = new TCordferRawBranch(nhit_name, 0, nhit_nch, 0); //geo, det_id = 0 + + //TString nhitbrancharray; + //nhitbrancharray.Form("%s[%d]/I", nhit_name.Data(), nhit_branch->size); + + //tree->Branch(nhit_name.Data(), nhit_branch->bra_val, nhitbrancharray); + //branch.push_back(nhit_branch); + } + } +} + + +void TCordferBranchManager::CreateMapBranch(){ + YAML::Node map_setup = recipe["map_setup"].as(); + for(Int_t i=0; i(); + Int_t det_id = map_setup[i]["det_flag"].as(); + + MapReader *mfile = new MapReader(mname); + for(Int_t j=0; jdetector_name.size(); j++){ + TString bname = mfile->detector_name[j]; + TCordferMapBranch *map_branch = new TCordferMapBranch(bname, det_id, mfile->segment_id[j].size()); + map_branch->SetMapInfo(mfile->segment_id[j], mfile->channel[j]); + + TString brancharray; + brancharray.Form("%s[%d]/I", bname.Data(), map_branch->size); + + mtree->Branch(bname.Data(), map_branch->bra_val, brancharray); + mbranch.push_back(map_branch); + } + } +} + + +void TCordferBranchManager::CreateCalibBranch(){ + YAML::Node map_setup = recipe["map_setup"].as(); + for(Int_t i=0; i(); + Int_t det_id = map_setup[i]["det_flag"].as(); + + //************** + if(det_id == 3){ continue; } //for PPAC + //************** + + //default (except of PPAC) + TString cname[2]; + cname[0] = map_setup[i]["calibfile"]["energy"].as(); + cname[1] = map_setup[i]["calibfile"]["timing"].as(); + + for(Int_t j=0; j<2; j++){ + FileStat_t info; + if(cname[j] == ""){ continue; } + else if(gSystem->GetPathInfo(cname[j].Data(), info) != 0){ + cerr << "WARNING: in yaml File, '" << cname[j].Data() << "' does not exist." << endl; + cerr << " not include " << cname[j].Data() << " in ctree" << endl; + continue; + } + + CalibParamReader *cfile = new CalibParamReader(det_name, cname[j]); + for(Int_t k=0; kbranch_name.size(); k++){ + TString bname = cfile->branch_name[k]; + TCordferCalibBranch *calib_branch = new TCordferCalibBranch(bname, det_id); + calib_branch->CopyCalibInfo(cfile->dim, cfile->parameters[k]); + + TString brancharray; + if(j==0){ + brancharray.Form("%s/D", bname.Data()); + ctree->Branch(bname.Data(), &calib_branch->cbra_val, brancharray); + calib_branch->adc = true; + }else{ + brancharray.Form("%s[12]/D", bname.Data()); + ctree->Branch(bname.Data(), calib_branch->cbra_tval, brancharray); + calib_branch->adc = false; + } + cbranch.push_back(calib_branch); + } + } + if(det_id == 5){ //for parameter reader of MUX position (mssd) + TString pos_name = map_setup[i]["calibfile"]["position"].as(); + FileStat_t info; + if(gSystem->GetPathInfo(pos_name.Data(), info) != 0){ + cerr << "ERROR: in yaml File, '" << pos_name.Data() << "' does not exist." << endl; + cerr << " mssd calibration requires " << pos_name.Data() << " !" << endl; + exit(0); + } + + CalibParamReader *cfile = new CalibParamReader(); + cfile->ReadMUXposCalib(pos_name); + mpos = cfile->position_prms; + } + } +} + + +void TCordferBranchManager::CreateMapping(){ + if(rawdata){ CreateRawMapping(); } + if(mapdata){ CreateMapMapping(); } + if(calibration){ CreateCalibMapping(); } +} + + +void TCordferBranchManager::CreateRawMapping(){ + memset(rmapping, -1, sizeof(rmapping)); + Int_t seg_buf = -99; + for(Int_t i=0; igeo; + if(seg == seg_buf){ continue; } + seg_buf = seg; + rmapping[seg] = i; + } +} + + +void TCordferBranchManager::CreateMapMapping(){ + Int_t m = sizeof(mmapping) / sizeof(mmapping[0]); + Int_t n = sizeof(mmapping[0]) / sizeof(mmapping[0][0]); + memset(mmapping, -1, sizeof(mmapping[0][0])*m*n); + + for(Int_t i=0; isize; j++){ + mmapping[mbranch[i]->segment_id[j]][mbranch[i]->channel[j]] = MakeBranchChannelIndex(i, j); + } + } +} + + +void TCordferBranchManager::CreateCalibMapping(){ + Int_t m = sizeof(cmapping) / sizeof(cmapping[0]); + Int_t n = sizeof(cmapping[0]) / sizeof(cmapping[0][0]); + memset(cmapping, -1, sizeof(cmapping[0][0])*m*n); + + Int_t M = sizeof(muxmapping) / sizeof(muxmapping[0]); + Int_t N = sizeof(muxmapping[0]) / sizeof(muxmapping[0][0]); + memset(muxmapping, -1, sizeof(muxmapping[0][0])*M*N); + + Int_t coin_num = 0; + Int_t rf_num = 0; + Int_t mssd_num = 0; + Int_t mux_num = 0; + Int_t mux_t_num = 0; + + for(Int_t i=0; idetector_id == 1){ + Int_t coin_tmp = coin_num; + for(Int_t j=0; jdetector_id == 1){ + if(coin_tmp > 0){ + coin_tmp--; + continue; + }else{ + cbranch[i]->geo = mbranch[j]->segment_id[0]; + cbranch[i]->ch = mbranch[j]->channel[0]; + coin_num++; + break; + } + } + } + } + + //for rf data + if(cbranch[i]->detector_id == 2){ + Int_t rf_index; + for(Int_t j=0; jdetector_id == 2){ rf_index = j; } + } + if(rf_num == 0){ + cbranch[i]->geo = mbranch[rf_index]->segment_id[0]; + cbranch[i]->ch = mbranch[rf_index]->channel[0]; + rf_num++; + }else if(rf_num == 1){ + cbranch[i]->geo = mbranch[rf_index]->segment_id[1]; + cbranch[i]->ch = mbranch[rf_index]->channel[1]; + rf_num++; + }else{ + cout << "WARNING: format of mapfile of rf is differenet" << endl; + } + } + + //for ppac + //if(cbranch[i]->detector_id == 3){} + + + //for dssd, ssd data + if(cbranch[i]->detector_id == 4){ + continue; + } + //else{ + // bool tdc_flag = false; + // if(cbranch_name.substr(0, 2) == "t_"){ + // cbranch_name.erase(0, 2); + // tdc_flag = true; + // } + // for(Int_t j=0; jGetBranchName().Data()); + // if(cbranch_name == mbranch_name){ + // if(tdc_flag){ + // cbranch[i]->geo = mbranch[j]->segment_id[1]; + // cbranch[i]->ch = mbranch[j]->channel[1]; + // }else{ + // cbranch[i]->geo = mbranch[j]->segment_id[0]; + // cbranch[i]->ch = mbranch[j]->channel[0]; + // } + // } + // } + //} + + + //for mssd + if(cbranch[i]->detector_id == 5){ + if(cbranch[i]->adc == true){ + mssd_num++; + if(mssd_num%16 == 1){ + Int_t mux_id = mssd_num/16; + cbranch[i]->mpos1_prm = mpos[2*mux_id]; + cbranch[i]->mpos2_prm = mpos[2*mux_id + 1]; + + Int_t mux_tmp = mux_num; + for(Int_t j=0; jdetector_id == 5){ + if(mux_tmp > 0){ + mux_tmp--; + continue; + }else{ + //cout << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; + for(Int_t k=0; k<4; k++){ + cmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = i; + muxmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = k + 1; + } + mux_num++; + break; + } + } + } + } + }else if(cbranch[i]->adc == false){ + Int_t mux_t_tmp = mux_t_num; + for(Int_t j=0; jdetector_id == 5){ + if(mux_t_tmp > 0){ + mux_t_tmp--; + continue; + }else{ + //cout << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; + cmapping[mbranch[j]->segment_id[4]][mbranch[j]->channel[4]] = i; + + mux_t_num++; + break; + } + } + } + + } + continue; + } + + cmapping[cbranch[i]->geo][cbranch[i]->ch] = i; + + //cout << i << " " << cbranch_name << " " << seg << endl; + } +} + + +void TCordferBranchManager::GiveValue(Int_t geo, Int_t ch, Int_t val){ + if(rawdata){ GiveRawValue(geo, ch, val); } + if(mapdata){ GiveMapValue(geo, ch, val); } + if(calibration){ GiveCalibValue(geo, ch, val); } +} + + +void TCordferBranchManager::GiveRawValue(Int_t geo, Int_t ch, Int_t val){ + Int_t index = rmapping[geo]; + + //if not register segment + if(index < 0){ + if(rmapflag == false){ + cout << "WARNING: rmapping is not completed" << endl; + } + rmapflag=true; + return; + } + + if(branch[index]->detector_id == 10){ + Int_t ht_id = branch[index+ch]->nhit; + branch[index+ch]->bra_val[ht_id] = val; + branch[index+ch]->nhit += 1; + + //Int_t ht_id = branch[index+1]->bra_val[ch]; + //branch[index]->mhtdc_val[ch][ht_id] = val; + //branch[index+1]->bra_val[ch] += 1; + ////if(ch == 0){ cout << index << " " << ch << " " << ht_id << " " << branch[index]->mhtdc_val[ch][ht_id] << endl; } + }else{ + branch[index]->bra_val[ch] = val; + } +} + + +void TCordferBranchManager::GiveMapValue(Int_t geo, Int_t ch, Int_t val){ + Int_t index = mmapping[geo][ch]; + if(index < 0){ + if(mmapflag == false){ + cout << "-- WARNING: mmapping is not completed" << endl; + } + mmapflag=true; + return; + } + + array index_array = GetBranchChannelIndex(index); + Int_t i = index_array[0]; + Int_t j = index_array[1]; + + mbranch[i]->bra_val[j] = val; +} + + +void TCordferBranchManager::GiveCalibValue(Int_t geo, Int_t ch, Int_t val){ + Int_t index = cmapping[geo][ch]; + Int_t mux_id = muxmapping[geo][ch]; + if(index < 0){ + if(cmapflag == false){ + cout << "-- WARNING: cmapping is not completed" << endl; + } + cmapflag=true; + return; + } + + //calib_status + // 0->not mux, 1->first mux signal, other -> "val" buffer + Int_t calib_status = cbranch[index]->GetCalibStatus(val, mux_id); + if(calib_status == 1){ return; } + else if(calib_status == 0){ cbranch[index]->SetCalibValue(val); } + else{ + Int_t add_ch = cbranch[index]->GetAddBranchIndex(mux_id); + if(add_ch == -1){ return; } + cbranch[index + add_ch]->SetCalibValue(calib_status); + } +} + + +void TCordferBranchManager::Fill(){ + if(rawdata){ RawFill(); } + if(mapdata){ MapFill(); } + if(calibration){ CalibFill(); } +} + + +void TCordferBranchManager::ClearAll(){ + if(rawdata){ ClearRawAll(); } + if(mapdata){ ClearMapAll(); } + if(calibration){ ClearCalibAll(); } +} + + +void TCordferBranchManager::ClearRawAll(){ + for(Int_t i=0; iClear(); + cout << "branch[" << i << "] ->Clear" << endl; + } +} + + +void TCordferBranchManager::ClearMapAll(){ + for(Int_t i=0; iClear(); + } +} + + +void TCordferBranchManager::ClearCalibAll(){ + for(Int_t i=0; iClear(); + } +} + + +void TCordferBranchManager::DataWrite(){ + if(rawdata){ RawDataWrite(); } + if(mapdata){ MapDataWrite(); } + if(calibration){ CalibDataWrite(); } +} + + +void TCordferBranchManager::FileClose(){ + rootfile->Close(); + for(Int_t i=0; iFreeAll(); + } + + for(Int_t i=0; iFreeMemory(); + } + +} + +// for debug +void TCordferBranchManager::DEBUG_PRINT(){ + for(Int_t i=0; i< branch.size(); i++){ + cout << "\tDEBUG: " << branch[i]->GetBranchName() << endl; + cout << "\t\t" << branch[i]->size << " " << branch[i]->nhit << endl; + } +} -- GitLab From 8dc400e16701bff0b66b0190f092ed36863490e9 Mon Sep 17 00:00:00 2001 From: Kodai Okawa Date: Mon, 21 Mar 2022 22:25:39 +0900 Subject: [PATCH 03/15] [mod] calibration tree --- calibration/si26a/mpos.prm | 30 +- include/TCordferCalibBranch.hh | 4 + macro/check_calib_tree.C | 497 +--------- macro/check_raw_tree.C | 1673 +------------------------------- macro/check_raw_tree2.C | 402 -------- macro/mpos.C | 200 ++++ macro/test_mpos.prm | 14 + src/TCordferBranchManager.cpp | 89 +- src/TCordferCalibBranch.cpp | 45 +- 9 files changed, 401 insertions(+), 2553 deletions(-) delete mode 100644 macro/check_raw_tree2.C create mode 100644 macro/mpos.C create mode 100644 macro/test_mpos.prm diff --git a/calibration/si26a/mpos.prm b/calibration/si26a/mpos.prm index 7704780..68ce75d 100644 --- a/calibration/si26a/mpos.prm +++ b/calibration/si26a/mpos.prm @@ -1,16 +1,14 @@ -# MUX position calibration -# channel of the 16 peaks -# for alpha source calibration -# 1ch, 2ch, ... , 16ch ; name -395.0, 421.0, 428.0, 445.0, 466.0, 482.0, 500.0, 518.0, 539.0, 556.0, 573.0, 591.0, 611.0, 628.0, 647.0, 666.0, ; MUX1-1-p0 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX1-1-p1 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX1-2-p0 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX1-2-p1 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX2-1-p0 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX2-1-p1 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX2-2-p0 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX2-2-p1 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX3-1-p0 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX3-1-p1 -1429.0, 1442.0, 1457.0, 1472.0, 1491.0, 1506.0, 1523.0, 1538.0, 1560.0, 1574.0, 1589.0, 1605.0, 1626.0, 1641.0, 1658.0, 1675.0, ; MUX3-2-p0 -100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, ; MUX3-2-p1 +# created from mpos.C +# /home/okawa/software/ridf2root/rootfiles/alpha307_308.root +393.8, 410.6, 427.4, 445.4, 464.6, 481.4, 500.6, 517.4, 539, 554.6, 572.6, 589.4, 611, 627.8, 647, 666.2, ; MUX1-1-p0 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; MUX1-1-p1 +711.5, 727.5, 746.5, 764.5, 785.5, 802.5, 822.5, 840.5, 863.5, 880.5, 899.5, 917.5, 939.5, 957.5, 977.5, 996.5, ; MUX1-2-p0 +736.5, 736.5, 754.5, 772.5, 794.5, 809.5, 829.5, 848.5, 870.5, 887.5, 906.5, 924.5, 946.5, 963.5, 983.5, 1001.5, ; MUX1-2-p1 +866.5, 879.5, 894.5, 907.5, 926.5, 938.5, 955.5, 970.5, 990.5, 1002.5, 1018.5, 1032.5, 1051.5, 1064.5, 1081.5, 1097.5, ; MUX2-1-p0 +878.5, 878.5, 893.5, 906.5, 925.5, 937.5, 953.5, 968.5, 989.5, 1001.5, 1017.5, 1030.5, 1043.5, 1051.5, 1063.5, 1096.5, ; MUX2-1-p1 +1310.5, 1326.5, 1345.5, 1363.5, 1385.5, 1402.5, 1422.5, 1441.5, 1464.5, 1481.5, 1501.5, 1519.5, 1542.5, 1559.5, 1580.5, 1600.5, ; MUX2-2-p0 +1345.5, 1345.5, 1364.5, 1382.5, 1404.5, 1421.5, 1441.5, 1461.5, 1483.5, 1501.5, 1520.5, 1539.5, 1561.5, 1579.5, 1600.5, 1620.5, ; MUX2-2-p1 +1428.5, 1442.5, 1457.5, 1472.5, 1491.5, 1506.5, 1522.5, 1538.5, 1559.5, 1574.5, 1590.5, 1605.5, 1625.5, 1640.5, 1658.5, 1675.5, ; MUX3-1-p0 +1445.5, 1445.5, 1460.5, 1474.5, 1495.5, 1508.5, 1525.5, 1541.5, 1575.5, 1591.5, 1598.5, 1609.5, 1628.5, 1643.5, 1663.5, 1678.5, ; MUX3-1-p1 +1615.5, 1626.5, 1642.5, 1657.5, 1676.5, 1689.5, 1706.5, 1722.5, 1744.5, 1757.5, 1771.5, 1790, 1808.5, 1822.5, 1841.5, 1855.5, ; MUX3-2-p0 +1633.5, 1633.5, 1647.5, 1678.5, 1685.5, 1696.5, 1719.5, 1748.5, 1767.5, 1779.5, 1798.5, 1809.5, 1820.5, 1831.5, 1840.5, 1882.5, ; MUX3-2-p1 diff --git a/include/TCordferCalibBranch.hh b/include/TCordferCalibBranch.hh index a471ce7..b22a678 100644 --- a/include/TCordferCalibBranch.hh +++ b/include/TCordferCalibBranch.hh @@ -57,6 +57,10 @@ class TCordferCalibBranch Double_t GetCalibValue(Int_t val, vector params); void Clear(); + + //for User setting (si26a) + Int_t UserGetPosValue(Int_t mux_id); + Int_t UserGetAddBranchIndex(Int_t pos_val, Int_t mux_id); }; #endif diff --git a/macro/check_calib_tree.C b/macro/check_calib_tree.C index 53f6e68..66a1288 100644 --- a/macro/check_calib_tree.C +++ b/macro/check_calib_tree.C @@ -12,454 +12,55 @@ c1->Print("../figure/calib/coin_Coin.png"); ctree->Draw("coin_Pileup"); c1->Print("../figure/calib/coin_Pileup.png"); - ctree->Draw("dssd_Tel1_dE1X_1"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_1.png"); - ctree->Draw("dssd_Tel1_dE1X_2"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_2.png"); - ctree->Draw("dssd_Tel1_dE1X_3"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_3.png"); - ctree->Draw("dssd_Tel1_dE1X_4"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_4.png"); - ctree->Draw("dssd_Tel1_dE1X_5"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_5.png"); - ctree->Draw("dssd_Tel1_dE1X_6"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_6.png"); - ctree->Draw("dssd_Tel1_dE1X_7"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_7.png"); - ctree->Draw("dssd_Tel1_dE1X_8"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_8.png"); - ctree->Draw("dssd_Tel1_dE1X_9"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_9.png"); - ctree->Draw("dssd_Tel1_dE1X_10"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_10.png"); - ctree->Draw("dssd_Tel1_dE1X_11"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_11.png"); - ctree->Draw("dssd_Tel1_dE1X_12"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_12.png"); - ctree->Draw("dssd_Tel1_dE1X_13"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_13.png"); - ctree->Draw("dssd_Tel1_dE1X_14"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_14.png"); - ctree->Draw("dssd_Tel1_dE1X_15"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_15.png"); - ctree->Draw("dssd_Tel1_dE1X_16"); - c1->Print("../figure/calib/dssd_Tel1_dE1X_16.png"); - ctree->Draw("dssd_Tel1_dE2Y_1"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_1.png"); - ctree->Draw("dssd_Tel1_dE2Y_2"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_2.png"); - ctree->Draw("dssd_Tel1_dE2Y_3"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_3.png"); - ctree->Draw("dssd_Tel1_dE2Y_4"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_4.png"); - ctree->Draw("dssd_Tel1_dE2Y_5"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_5.png"); - ctree->Draw("dssd_Tel1_dE2Y_6"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_6.png"); - ctree->Draw("dssd_Tel1_dE2Y_7"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_7.png"); - ctree->Draw("dssd_Tel1_dE2Y_8"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_8.png"); - ctree->Draw("dssd_Tel1_dE2Y_9"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_9.png"); - ctree->Draw("dssd_Tel1_dE2Y_10"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_10.png"); - ctree->Draw("dssd_Tel1_dE2Y_11"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_11.png"); - ctree->Draw("dssd_Tel1_dE2Y_12"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_12.png"); - ctree->Draw("dssd_Tel1_dE2Y_13"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_13.png"); - ctree->Draw("dssd_Tel1_dE2Y_14"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_14.png"); - ctree->Draw("dssd_Tel1_dE2Y_15"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_15.png"); - ctree->Draw("dssd_Tel1_dE2Y_16"); - c1->Print("../figure/calib/dssd_Tel1_dE2Y_16.png"); - ctree->Draw("dssd_Tel2_dE2Y_1"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_1.png"); - ctree->Draw("dssd_Tel2_dE2Y_2"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_2.png"); - ctree->Draw("dssd_Tel2_dE2Y_3"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_3.png"); - ctree->Draw("dssd_Tel2_dE2Y_4"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_4.png"); - ctree->Draw("dssd_Tel2_dE2Y_5"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_5.png"); - ctree->Draw("dssd_Tel2_dE2Y_6"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_6.png"); - ctree->Draw("dssd_Tel2_dE2Y_7"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_7.png"); - ctree->Draw("dssd_Tel2_dE2Y_8"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_8.png"); - ctree->Draw("dssd_Tel2_dE2Y_9"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_9.png"); - ctree->Draw("dssd_Tel2_dE2Y_10"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_10.png"); - ctree->Draw("dssd_Tel2_dE2Y_11"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_11.png"); - ctree->Draw("dssd_Tel2_dE2Y_12"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_12.png"); - ctree->Draw("dssd_Tel2_dE2Y_13"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_13.png"); - ctree->Draw("dssd_Tel2_dE2Y_14"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_14.png"); - ctree->Draw("dssd_Tel2_dE2Y_15"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_15.png"); - ctree->Draw("dssd_Tel2_dE2Y_16"); - c1->Print("../figure/calib/dssd_Tel2_dE2Y_16.png"); - ctree->Draw("dssd_Tel3_dE2Y_1"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_1.png"); - ctree->Draw("dssd_Tel3_dE2Y_2"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_2.png"); - ctree->Draw("dssd_Tel3_dE2Y_3"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_3.png"); - ctree->Draw("dssd_Tel3_dE2Y_4"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_4.png"); - ctree->Draw("dssd_Tel3_dE2Y_5"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_5.png"); - ctree->Draw("dssd_Tel3_dE2Y_6"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_6.png"); - ctree->Draw("dssd_Tel3_dE2Y_7"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_7.png"); - ctree->Draw("dssd_Tel3_dE2Y_8"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_8.png"); - ctree->Draw("dssd_Tel3_dE2Y_9"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_9.png"); - ctree->Draw("dssd_Tel3_dE2Y_10"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_10.png"); - ctree->Draw("dssd_Tel3_dE2Y_11"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_11.png"); - ctree->Draw("dssd_Tel3_dE2Y_12"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_12.png"); - ctree->Draw("dssd_Tel3_dE2Y_13"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_13.png"); - ctree->Draw("dssd_Tel3_dE2Y_14"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_14.png"); - ctree->Draw("dssd_Tel3_dE2Y_15"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_15.png"); - ctree->Draw("dssd_Tel3_dE2Y_16"); - c1->Print("../figure/calib/dssd_Tel3_dE2Y_16.png"); - ctree->Draw("t_dssd_Tel1_dE1X_1"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_1.png"); - ctree->Draw("t_dssd_Tel1_dE1X_2"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_2.png"); - ctree->Draw("t_dssd_Tel1_dE1X_3"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_3.png"); - ctree->Draw("t_dssd_Tel1_dE1X_4"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_4.png"); - ctree->Draw("t_dssd_Tel1_dE1X_5"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_5.png"); - ctree->Draw("t_dssd_Tel1_dE1X_6"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_6.png"); - ctree->Draw("t_dssd_Tel1_dE1X_7"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_7.png"); - ctree->Draw("t_dssd_Tel1_dE1X_8"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_8.png"); - ctree->Draw("t_dssd_Tel1_dE1X_9"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_9.png"); - ctree->Draw("t_dssd_Tel1_dE1X_10"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_10.png"); - ctree->Draw("t_dssd_Tel1_dE1X_11"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_11.png"); - ctree->Draw("t_dssd_Tel1_dE1X_12"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_12.png"); - ctree->Draw("t_dssd_Tel1_dE1X_13"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_13.png"); - ctree->Draw("t_dssd_Tel1_dE1X_14"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_14.png"); - ctree->Draw("t_dssd_Tel1_dE1X_15"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_15.png"); - ctree->Draw("t_dssd_Tel1_dE1X_16"); - c1->Print("../figure/calib/t_dssd_Tel1_dE1X_16.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_1"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_1.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_2"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_2.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_3"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_3.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_4"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_4.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_5"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_5.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_6"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_6.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_7"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_7.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_8"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_8.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_9"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_9.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_10"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_10.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_11"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_11.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_12"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_12.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_13"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_13.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_14"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_14.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_15"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_15.png"); - ctree->Draw("t_dssd_Tel1_dE2Y_16"); - c1->Print("../figure/calib/t_dssd_Tel1_dE2Y_16.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_1"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_1.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_2"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_2.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_3"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_3.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_4"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_4.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_5"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_5.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_6"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_6.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_7"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_7.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_8"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_8.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_9"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_9.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_10"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_10.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_11"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_11.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_12"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_12.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_13"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_13.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_14"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_14.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_15"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_15.png"); - ctree->Draw("t_dssd_Tel2_dE2Y_16"); - c1->Print("../figure/calib/t_dssd_Tel2_dE2Y_16.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_1"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_1.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_2"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_2.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_3"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_3.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_4"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_4.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_5"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_5.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_6"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_6.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_7"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_7.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_8"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_8.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_9"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_9.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_10"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_10.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_11"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_11.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_12"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_12.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_13"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_13.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_14"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_14.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_15"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_15.png"); - ctree->Draw("t_dssd_Tel3_dE2Y_16"); - c1->Print("../figure/calib/t_dssd_Tel3_dE2Y_16.png"); - ctree->Draw("mssd_1_1_1ch"); - c1->Print("../figure/calib/mssd_1_1_1ch.png"); - ctree->Draw("mssd_1_1_2ch"); - c1->Print("../figure/calib/mssd_1_1_2ch.png"); - ctree->Draw("mssd_1_1_3ch"); - c1->Print("../figure/calib/mssd_1_1_3ch.png"); - ctree->Draw("mssd_1_1_4ch"); - c1->Print("../figure/calib/mssd_1_1_4ch.png"); - ctree->Draw("mssd_1_1_5ch"); - c1->Print("../figure/calib/mssd_1_1_5ch.png"); - ctree->Draw("mssd_1_1_6ch"); - c1->Print("../figure/calib/mssd_1_1_6ch.png"); - ctree->Draw("mssd_1_1_7ch"); - c1->Print("../figure/calib/mssd_1_1_7ch.png"); - ctree->Draw("mssd_1_1_8ch"); - c1->Print("../figure/calib/mssd_1_1_8ch.png"); - ctree->Draw("mssd_1_1_9ch"); - c1->Print("../figure/calib/mssd_1_1_9ch.png"); - ctree->Draw("mssd_1_1_10ch"); - c1->Print("../figure/calib/mssd_1_1_10ch.png"); - ctree->Draw("mssd_1_1_11ch"); - c1->Print("../figure/calib/mssd_1_1_11ch.png"); - ctree->Draw("mssd_1_1_12ch"); - c1->Print("../figure/calib/mssd_1_1_12ch.png"); - ctree->Draw("mssd_1_1_13ch"); - c1->Print("../figure/calib/mssd_1_1_13ch.png"); - ctree->Draw("mssd_1_1_14ch"); - c1->Print("../figure/calib/mssd_1_1_14ch.png"); - ctree->Draw("mssd_1_1_15ch"); - c1->Print("../figure/calib/mssd_1_1_15ch.png"); - ctree->Draw("mssd_1_1_16ch"); - c1->Print("../figure/calib/mssd_1_1_16ch.png"); - ctree->Draw("mssd_1_2_1ch"); - c1->Print("../figure/calib/mssd_1_2_1ch.png"); - ctree->Draw("mssd_1_2_2ch"); - c1->Print("../figure/calib/mssd_1_2_2ch.png"); - ctree->Draw("mssd_1_2_3ch"); - c1->Print("../figure/calib/mssd_1_2_3ch.png"); - ctree->Draw("mssd_1_2_4ch"); - c1->Print("../figure/calib/mssd_1_2_4ch.png"); - ctree->Draw("mssd_1_2_5ch"); - c1->Print("../figure/calib/mssd_1_2_5ch.png"); - ctree->Draw("mssd_1_2_6ch"); - c1->Print("../figure/calib/mssd_1_2_6ch.png"); - ctree->Draw("mssd_1_2_7ch"); - c1->Print("../figure/calib/mssd_1_2_7ch.png"); - ctree->Draw("mssd_1_2_8ch"); - c1->Print("../figure/calib/mssd_1_2_8ch.png"); - ctree->Draw("mssd_1_2_9ch"); - c1->Print("../figure/calib/mssd_1_2_9ch.png"); - ctree->Draw("mssd_1_2_10ch"); - c1->Print("../figure/calib/mssd_1_2_10ch.png"); - ctree->Draw("mssd_1_2_11ch"); - c1->Print("../figure/calib/mssd_1_2_11ch.png"); - ctree->Draw("mssd_1_2_12ch"); - c1->Print("../figure/calib/mssd_1_2_12ch.png"); - ctree->Draw("mssd_1_2_13ch"); - c1->Print("../figure/calib/mssd_1_2_13ch.png"); - ctree->Draw("mssd_1_2_14ch"); - c1->Print("../figure/calib/mssd_1_2_14ch.png"); - ctree->Draw("mssd_1_2_15ch"); - c1->Print("../figure/calib/mssd_1_2_15ch.png"); - ctree->Draw("mssd_1_2_16ch"); - c1->Print("../figure/calib/mssd_1_2_16ch.png"); - ctree->Draw("mssd_2_1_1ch"); - c1->Print("../figure/calib/mssd_2_1_1ch.png"); - ctree->Draw("mssd_2_1_2ch"); - c1->Print("../figure/calib/mssd_2_1_2ch.png"); - ctree->Draw("mssd_2_1_3ch"); - c1->Print("../figure/calib/mssd_2_1_3ch.png"); - ctree->Draw("mssd_2_1_4ch"); - c1->Print("../figure/calib/mssd_2_1_4ch.png"); - ctree->Draw("mssd_2_1_5ch"); - c1->Print("../figure/calib/mssd_2_1_5ch.png"); - ctree->Draw("mssd_2_1_6ch"); - c1->Print("../figure/calib/mssd_2_1_6ch.png"); - ctree->Draw("mssd_2_1_7ch"); - c1->Print("../figure/calib/mssd_2_1_7ch.png"); - ctree->Draw("mssd_2_1_8ch"); - c1->Print("../figure/calib/mssd_2_1_8ch.png"); - ctree->Draw("mssd_2_1_9ch"); - c1->Print("../figure/calib/mssd_2_1_9ch.png"); - ctree->Draw("mssd_2_1_10ch"); - c1->Print("../figure/calib/mssd_2_1_10ch.png"); - ctree->Draw("mssd_2_1_11ch"); - c1->Print("../figure/calib/mssd_2_1_11ch.png"); - ctree->Draw("mssd_2_1_12ch"); - c1->Print("../figure/calib/mssd_2_1_12ch.png"); - ctree->Draw("mssd_2_1_13ch"); - c1->Print("../figure/calib/mssd_2_1_13ch.png"); - ctree->Draw("mssd_2_1_14ch"); - c1->Print("../figure/calib/mssd_2_1_14ch.png"); - ctree->Draw("mssd_2_1_15ch"); - c1->Print("../figure/calib/mssd_2_1_15ch.png"); - ctree->Draw("mssd_2_1_16ch"); - c1->Print("../figure/calib/mssd_2_1_16ch.png"); - ctree->Draw("mssd_2_2_1ch"); - c1->Print("../figure/calib/mssd_2_2_1ch.png"); - ctree->Draw("mssd_2_2_2ch"); - c1->Print("../figure/calib/mssd_2_2_2ch.png"); - ctree->Draw("mssd_2_2_3ch"); - c1->Print("../figure/calib/mssd_2_2_3ch.png"); - ctree->Draw("mssd_2_2_4ch"); - c1->Print("../figure/calib/mssd_2_2_4ch.png"); - ctree->Draw("mssd_2_2_5ch"); - c1->Print("../figure/calib/mssd_2_2_5ch.png"); - ctree->Draw("mssd_2_2_6ch"); - c1->Print("../figure/calib/mssd_2_2_6ch.png"); - ctree->Draw("mssd_2_2_7ch"); - c1->Print("../figure/calib/mssd_2_2_7ch.png"); - ctree->Draw("mssd_2_2_8ch"); - c1->Print("../figure/calib/mssd_2_2_8ch.png"); - ctree->Draw("mssd_2_2_9ch"); - c1->Print("../figure/calib/mssd_2_2_9ch.png"); - ctree->Draw("mssd_2_2_10ch"); - c1->Print("../figure/calib/mssd_2_2_10ch.png"); - ctree->Draw("mssd_2_2_11ch"); - c1->Print("../figure/calib/mssd_2_2_11ch.png"); - ctree->Draw("mssd_2_2_12ch"); - c1->Print("../figure/calib/mssd_2_2_12ch.png"); - ctree->Draw("mssd_2_2_13ch"); - c1->Print("../figure/calib/mssd_2_2_13ch.png"); - ctree->Draw("mssd_2_2_14ch"); - c1->Print("../figure/calib/mssd_2_2_14ch.png"); - ctree->Draw("mssd_2_2_15ch"); - c1->Print("../figure/calib/mssd_2_2_15ch.png"); - ctree->Draw("mssd_2_2_16ch"); - c1->Print("../figure/calib/mssd_2_2_16ch.png"); - ctree->Draw("mssd_3_1_1ch"); - c1->Print("../figure/calib/mssd_3_1_1ch.png"); - ctree->Draw("mssd_3_1_2ch"); - c1->Print("../figure/calib/mssd_3_1_2ch.png"); - ctree->Draw("mssd_3_1_3ch"); - c1->Print("../figure/calib/mssd_3_1_3ch.png"); - ctree->Draw("mssd_3_1_4ch"); - c1->Print("../figure/calib/mssd_3_1_4ch.png"); - ctree->Draw("mssd_3_1_5ch"); - c1->Print("../figure/calib/mssd_3_1_5ch.png"); - ctree->Draw("mssd_3_1_6ch"); - c1->Print("../figure/calib/mssd_3_1_6ch.png"); - ctree->Draw("mssd_3_1_7ch"); - c1->Print("../figure/calib/mssd_3_1_7ch.png"); - ctree->Draw("mssd_3_1_8ch"); - c1->Print("../figure/calib/mssd_3_1_8ch.png"); - ctree->Draw("mssd_3_1_9ch"); - c1->Print("../figure/calib/mssd_3_1_9ch.png"); - ctree->Draw("mssd_3_1_10ch"); - c1->Print("../figure/calib/mssd_3_1_10ch.png"); - ctree->Draw("mssd_3_1_11ch"); - c1->Print("../figure/calib/mssd_3_1_11ch.png"); - ctree->Draw("mssd_3_1_12ch"); - c1->Print("../figure/calib/mssd_3_1_12ch.png"); - ctree->Draw("mssd_3_1_13ch"); - c1->Print("../figure/calib/mssd_3_1_13ch.png"); - ctree->Draw("mssd_3_1_14ch"); - c1->Print("../figure/calib/mssd_3_1_14ch.png"); - ctree->Draw("mssd_3_1_15ch"); - c1->Print("../figure/calib/mssd_3_1_15ch.png"); - ctree->Draw("mssd_3_1_16ch"); - c1->Print("../figure/calib/mssd_3_1_16ch.png"); - ctree->Draw("mssd_3_2_1ch"); - c1->Print("../figure/calib/mssd_3_2_1ch.png"); - ctree->Draw("mssd_3_2_2ch"); - c1->Print("../figure/calib/mssd_3_2_2ch.png"); - ctree->Draw("mssd_3_2_3ch"); - c1->Print("../figure/calib/mssd_3_2_3ch.png"); - ctree->Draw("mssd_3_2_4ch"); - c1->Print("../figure/calib/mssd_3_2_4ch.png"); - ctree->Draw("mssd_3_2_5ch"); - c1->Print("../figure/calib/mssd_3_2_5ch.png"); - ctree->Draw("mssd_3_2_6ch"); - c1->Print("../figure/calib/mssd_3_2_6ch.png"); - ctree->Draw("mssd_3_2_7ch"); - c1->Print("../figure/calib/mssd_3_2_7ch.png"); - ctree->Draw("mssd_3_2_8ch"); - c1->Print("../figure/calib/mssd_3_2_8ch.png"); - ctree->Draw("mssd_3_2_9ch"); - c1->Print("../figure/calib/mssd_3_2_9ch.png"); - ctree->Draw("mssd_3_2_10ch"); - c1->Print("../figure/calib/mssd_3_2_10ch.png"); - ctree->Draw("mssd_3_2_11ch"); - c1->Print("../figure/calib/mssd_3_2_11ch.png"); - ctree->Draw("mssd_3_2_12ch"); - c1->Print("../figure/calib/mssd_3_2_12ch.png"); - ctree->Draw("mssd_3_2_13ch"); - c1->Print("../figure/calib/mssd_3_2_13ch.png"); - ctree->Draw("mssd_3_2_14ch"); - c1->Print("../figure/calib/mssd_3_2_14ch.png"); - ctree->Draw("mssd_3_2_15ch"); - c1->Print("../figure/calib/mssd_3_2_15ch.png"); - ctree->Draw("mssd_3_2_16ch"); - c1->Print("../figure/calib/mssd_3_2_16ch.png"); + + for(Int_t j=0; j<16; j++){ + TString branch, file; + branch.Form("dssd_Tel1_dE1X_%d", j+1); + file.Form("../figure/calib/dssd_Tel1_dE1X_%d.png", j+1); + ctree->Draw(branch.Data()); + c1->Print(file.Data()); + } + + for(Int_t i=0; i<3; i++){ + for(Int_t j=0; j<16; j++){ + TString branch, file; + branch.Form("dssd_Tel%d_dE2Y_%d", i+1, j+1); + file.Form("../figure/calib/dssd_Tel%d_dE2Y_%d.png", i+1, j+1); + ctree->Draw(branch.Data()); + c1->Print(file.Data()); + } + } + + for(Int_t j=0; j<16; j++){ + TString branch, file; + branch.Form("t_dssd_Tel1_dE1X_%d", j+1); + file.Form("../figure/calib/t_dssd_Tel1_dE1X_%d.png", j+1); + ctree->Draw(branch.Data()); + c1->Print(file.Data()); + } + + for(Int_t i=0; i<3; i++){ + for(Int_t j=0; j<16; j++){ + TString branch, file; + branch.Form("t_dssd_Tel%d_dE2Y_%d", i+1, j+1); + file.Form("../figure/calib/t_dssd_Tel%d_dE2Y_%d.png", i+1, j+1); + ctree->Draw(branch.Data()); + c1->Print(file.Data()); + } + } + + for(Int_t i=0; i<3; i++){ + for(Int_t j=0; j<2; j++){ + for(Int_t k=0; k<16; k++){ + TString branch, file; + branch.Form("mssd_%d_%d_%dch", i+1, j+1, k+1); + file.Form("../figure/calib/mssd_%d_%d_%dch.png", i+1, j+1, k+1); + ctree->Draw(branch.Data()); + c1->Print(file.Data()); + } + } + } + ctree->Draw("t_mssd_1_1"); c1->Print("../figure/calib/t_mssd_1_1.png"); ctree->Draw("t_mssd_1_2"); diff --git a/macro/check_raw_tree.C b/macro/check_raw_tree.C index 3c0ff03..377cc42 100644 --- a/macro/check_raw_tree.C +++ b/macro/check_raw_tree.C @@ -390,1668 +390,13 @@ c1->Print("../figure/raw/tdc2[30].png"); tree->Draw("tdc2[31]"); c1->Print("../figure/raw/tdc2[31].png"); - tree->Draw("mhtdc[0][0]"); - c1->Print("../figure/raw/mhtdc[0][0].png"); - tree->Draw("mhtdc[0][1]"); - c1->Print("../figure/raw/mhtdc[0][1].png"); - tree->Draw("mhtdc[0][2]"); - c1->Print("../figure/raw/mhtdc[0][2].png"); - tree->Draw("mhtdc[0][3]"); - c1->Print("../figure/raw/mhtdc[0][3].png"); - tree->Draw("mhtdc[0][4]"); - c1->Print("../figure/raw/mhtdc[0][4].png"); - tree->Draw("mhtdc[0][5]"); - c1->Print("../figure/raw/mhtdc[0][5].png"); - tree->Draw("mhtdc[0][6]"); - c1->Print("../figure/raw/mhtdc[0][6].png"); - tree->Draw("mhtdc[0][7]"); - c1->Print("../figure/raw/mhtdc[0][7].png"); - tree->Draw("mhtdc[0][8]"); - c1->Print("../figure/raw/mhtdc[0][8].png"); - tree->Draw("mhtdc[0][9]"); - c1->Print("../figure/raw/mhtdc[0][9].png"); - tree->Draw("mhtdc[0][10]"); - c1->Print("../figure/raw/mhtdc[0][10].png"); - tree->Draw("mhtdc[0][11]"); - c1->Print("../figure/raw/mhtdc[0][11].png"); - tree->Draw("mhtdc[1][0]"); - c1->Print("../figure/raw/mhtdc[1][0].png"); - tree->Draw("mhtdc[1][1]"); - c1->Print("../figure/raw/mhtdc[1][1].png"); - tree->Draw("mhtdc[1][2]"); - c1->Print("../figure/raw/mhtdc[1][2].png"); - tree->Draw("mhtdc[1][3]"); - c1->Print("../figure/raw/mhtdc[1][3].png"); - tree->Draw("mhtdc[1][4]"); - c1->Print("../figure/raw/mhtdc[1][4].png"); - tree->Draw("mhtdc[1][5]"); - c1->Print("../figure/raw/mhtdc[1][5].png"); - tree->Draw("mhtdc[1][6]"); - c1->Print("../figure/raw/mhtdc[1][6].png"); - tree->Draw("mhtdc[1][7]"); - c1->Print("../figure/raw/mhtdc[1][7].png"); - tree->Draw("mhtdc[1][8]"); - c1->Print("../figure/raw/mhtdc[1][8].png"); - tree->Draw("mhtdc[1][9]"); - c1->Print("../figure/raw/mhtdc[1][9].png"); - tree->Draw("mhtdc[1][10]"); - c1->Print("../figure/raw/mhtdc[1][10].png"); - tree->Draw("mhtdc[1][11]"); - c1->Print("../figure/raw/mhtdc[1][11].png"); - tree->Draw("mhtdc[2][0]"); - c1->Print("../figure/raw/mhtdc[2][0].png"); - tree->Draw("mhtdc[2][1]"); - c1->Print("../figure/raw/mhtdc[2][1].png"); - tree->Draw("mhtdc[2][2]"); - c1->Print("../figure/raw/mhtdc[2][2].png"); - tree->Draw("mhtdc[2][3]"); - c1->Print("../figure/raw/mhtdc[2][3].png"); - tree->Draw("mhtdc[2][4]"); - c1->Print("../figure/raw/mhtdc[2][4].png"); - tree->Draw("mhtdc[2][5]"); - c1->Print("../figure/raw/mhtdc[2][5].png"); - tree->Draw("mhtdc[2][6]"); - c1->Print("../figure/raw/mhtdc[2][6].png"); - tree->Draw("mhtdc[2][7]"); - c1->Print("../figure/raw/mhtdc[2][7].png"); - tree->Draw("mhtdc[2][8]"); - c1->Print("../figure/raw/mhtdc[2][8].png"); - tree->Draw("mhtdc[2][9]"); - c1->Print("../figure/raw/mhtdc[2][9].png"); - tree->Draw("mhtdc[2][10]"); - c1->Print("../figure/raw/mhtdc[2][10].png"); - tree->Draw("mhtdc[2][11]"); - c1->Print("../figure/raw/mhtdc[2][11].png"); - tree->Draw("mhtdc[3][0]"); - c1->Print("../figure/raw/mhtdc[3][0].png"); - tree->Draw("mhtdc[3][1]"); - c1->Print("../figure/raw/mhtdc[3][1].png"); - tree->Draw("mhtdc[3][2]"); - c1->Print("../figure/raw/mhtdc[3][2].png"); - tree->Draw("mhtdc[3][3]"); - c1->Print("../figure/raw/mhtdc[3][3].png"); - tree->Draw("mhtdc[3][4]"); - c1->Print("../figure/raw/mhtdc[3][4].png"); - tree->Draw("mhtdc[3][5]"); - c1->Print("../figure/raw/mhtdc[3][5].png"); - tree->Draw("mhtdc[3][6]"); - c1->Print("../figure/raw/mhtdc[3][6].png"); - tree->Draw("mhtdc[3][7]"); - c1->Print("../figure/raw/mhtdc[3][7].png"); - tree->Draw("mhtdc[3][8]"); - c1->Print("../figure/raw/mhtdc[3][8].png"); - tree->Draw("mhtdc[3][9]"); - c1->Print("../figure/raw/mhtdc[3][9].png"); - tree->Draw("mhtdc[3][10]"); - c1->Print("../figure/raw/mhtdc[3][10].png"); - tree->Draw("mhtdc[3][11]"); - c1->Print("../figure/raw/mhtdc[3][11].png"); - tree->Draw("mhtdc[4][0]"); - c1->Print("../figure/raw/mhtdc[4][0].png"); - tree->Draw("mhtdc[4][1]"); - c1->Print("../figure/raw/mhtdc[4][1].png"); - tree->Draw("mhtdc[4][2]"); - c1->Print("../figure/raw/mhtdc[4][2].png"); - tree->Draw("mhtdc[4][3]"); - c1->Print("../figure/raw/mhtdc[4][3].png"); - tree->Draw("mhtdc[4][4]"); - c1->Print("../figure/raw/mhtdc[4][4].png"); - tree->Draw("mhtdc[4][5]"); - c1->Print("../figure/raw/mhtdc[4][5].png"); - tree->Draw("mhtdc[4][6]"); - c1->Print("../figure/raw/mhtdc[4][6].png"); - tree->Draw("mhtdc[4][7]"); - c1->Print("../figure/raw/mhtdc[4][7].png"); - tree->Draw("mhtdc[4][8]"); - c1->Print("../figure/raw/mhtdc[4][8].png"); - tree->Draw("mhtdc[4][9]"); - c1->Print("../figure/raw/mhtdc[4][9].png"); - tree->Draw("mhtdc[4][10]"); - c1->Print("../figure/raw/mhtdc[4][10].png"); - tree->Draw("mhtdc[4][11]"); - c1->Print("../figure/raw/mhtdc[4][11].png"); - tree->Draw("mhtdc[5][0]"); - c1->Print("../figure/raw/mhtdc[5][0].png"); - tree->Draw("mhtdc[5][1]"); - c1->Print("../figure/raw/mhtdc[5][1].png"); - tree->Draw("mhtdc[5][2]"); - c1->Print("../figure/raw/mhtdc[5][2].png"); - tree->Draw("mhtdc[5][3]"); - c1->Print("../figure/raw/mhtdc[5][3].png"); - tree->Draw("mhtdc[5][4]"); - c1->Print("../figure/raw/mhtdc[5][4].png"); - tree->Draw("mhtdc[5][5]"); - c1->Print("../figure/raw/mhtdc[5][5].png"); - tree->Draw("mhtdc[5][6]"); - c1->Print("../figure/raw/mhtdc[5][6].png"); - tree->Draw("mhtdc[5][7]"); - c1->Print("../figure/raw/mhtdc[5][7].png"); - tree->Draw("mhtdc[5][8]"); - c1->Print("../figure/raw/mhtdc[5][8].png"); - tree->Draw("mhtdc[5][9]"); - c1->Print("../figure/raw/mhtdc[5][9].png"); - tree->Draw("mhtdc[5][10]"); - c1->Print("../figure/raw/mhtdc[5][10].png"); - tree->Draw("mhtdc[5][11]"); - c1->Print("../figure/raw/mhtdc[5][11].png"); - tree->Draw("mhtdc[6][0]"); - c1->Print("../figure/raw/mhtdc[6][0].png"); - tree->Draw("mhtdc[6][1]"); - c1->Print("../figure/raw/mhtdc[6][1].png"); - tree->Draw("mhtdc[6][2]"); - c1->Print("../figure/raw/mhtdc[6][2].png"); - tree->Draw("mhtdc[6][3]"); - c1->Print("../figure/raw/mhtdc[6][3].png"); - tree->Draw("mhtdc[6][4]"); - c1->Print("../figure/raw/mhtdc[6][4].png"); - tree->Draw("mhtdc[6][5]"); - c1->Print("../figure/raw/mhtdc[6][5].png"); - tree->Draw("mhtdc[6][6]"); - c1->Print("../figure/raw/mhtdc[6][6].png"); - tree->Draw("mhtdc[6][7]"); - c1->Print("../figure/raw/mhtdc[6][7].png"); - tree->Draw("mhtdc[6][8]"); - c1->Print("../figure/raw/mhtdc[6][8].png"); - tree->Draw("mhtdc[6][9]"); - c1->Print("../figure/raw/mhtdc[6][9].png"); - tree->Draw("mhtdc[6][10]"); - c1->Print("../figure/raw/mhtdc[6][10].png"); - tree->Draw("mhtdc[6][11]"); - c1->Print("../figure/raw/mhtdc[6][11].png"); - tree->Draw("mhtdc[7][0]"); - c1->Print("../figure/raw/mhtdc[7][0].png"); - tree->Draw("mhtdc[7][1]"); - c1->Print("../figure/raw/mhtdc[7][1].png"); - tree->Draw("mhtdc[7][2]"); - c1->Print("../figure/raw/mhtdc[7][2].png"); - tree->Draw("mhtdc[7][3]"); - c1->Print("../figure/raw/mhtdc[7][3].png"); - tree->Draw("mhtdc[7][4]"); - c1->Print("../figure/raw/mhtdc[7][4].png"); - tree->Draw("mhtdc[7][5]"); - c1->Print("../figure/raw/mhtdc[7][5].png"); - tree->Draw("mhtdc[7][6]"); - c1->Print("../figure/raw/mhtdc[7][6].png"); - tree->Draw("mhtdc[7][7]"); - c1->Print("../figure/raw/mhtdc[7][7].png"); - tree->Draw("mhtdc[7][8]"); - c1->Print("../figure/raw/mhtdc[7][8].png"); - tree->Draw("mhtdc[7][9]"); - c1->Print("../figure/raw/mhtdc[7][9].png"); - tree->Draw("mhtdc[7][10]"); - c1->Print("../figure/raw/mhtdc[7][10].png"); - tree->Draw("mhtdc[7][11]"); - c1->Print("../figure/raw/mhtdc[7][11].png"); - tree->Draw("mhtdc[8][0]"); - c1->Print("../figure/raw/mhtdc[8][0].png"); - tree->Draw("mhtdc[8][1]"); - c1->Print("../figure/raw/mhtdc[8][1].png"); - tree->Draw("mhtdc[8][2]"); - c1->Print("../figure/raw/mhtdc[8][2].png"); - tree->Draw("mhtdc[8][3]"); - c1->Print("../figure/raw/mhtdc[8][3].png"); - tree->Draw("mhtdc[8][4]"); - c1->Print("../figure/raw/mhtdc[8][4].png"); - tree->Draw("mhtdc[8][5]"); - c1->Print("../figure/raw/mhtdc[8][5].png"); - tree->Draw("mhtdc[8][6]"); - c1->Print("../figure/raw/mhtdc[8][6].png"); - tree->Draw("mhtdc[8][7]"); - c1->Print("../figure/raw/mhtdc[8][7].png"); - tree->Draw("mhtdc[8][8]"); - c1->Print("../figure/raw/mhtdc[8][8].png"); - tree->Draw("mhtdc[8][9]"); - c1->Print("../figure/raw/mhtdc[8][9].png"); - tree->Draw("mhtdc[8][10]"); - c1->Print("../figure/raw/mhtdc[8][10].png"); - tree->Draw("mhtdc[8][11]"); - c1->Print("../figure/raw/mhtdc[8][11].png"); - tree->Draw("mhtdc[9][0]"); - c1->Print("../figure/raw/mhtdc[9][0].png"); - tree->Draw("mhtdc[9][1]"); - c1->Print("../figure/raw/mhtdc[9][1].png"); - tree->Draw("mhtdc[9][2]"); - c1->Print("../figure/raw/mhtdc[9][2].png"); - tree->Draw("mhtdc[9][3]"); - c1->Print("../figure/raw/mhtdc[9][3].png"); - tree->Draw("mhtdc[9][4]"); - c1->Print("../figure/raw/mhtdc[9][4].png"); - tree->Draw("mhtdc[9][5]"); - c1->Print("../figure/raw/mhtdc[9][5].png"); - tree->Draw("mhtdc[9][6]"); - c1->Print("../figure/raw/mhtdc[9][6].png"); - tree->Draw("mhtdc[9][7]"); - c1->Print("../figure/raw/mhtdc[9][7].png"); - tree->Draw("mhtdc[9][8]"); - c1->Print("../figure/raw/mhtdc[9][8].png"); - tree->Draw("mhtdc[9][9]"); - c1->Print("../figure/raw/mhtdc[9][9].png"); - tree->Draw("mhtdc[9][10]"); - c1->Print("../figure/raw/mhtdc[9][10].png"); - tree->Draw("mhtdc[9][11]"); - c1->Print("../figure/raw/mhtdc[9][11].png"); - tree->Draw("mhtdc[10][0]"); - c1->Print("../figure/raw/mhtdc[10][0].png"); - tree->Draw("mhtdc[10][1]"); - c1->Print("../figure/raw/mhtdc[10][1].png"); - tree->Draw("mhtdc[10][2]"); - c1->Print("../figure/raw/mhtdc[10][2].png"); - tree->Draw("mhtdc[10][3]"); - c1->Print("../figure/raw/mhtdc[10][3].png"); - tree->Draw("mhtdc[10][4]"); - c1->Print("../figure/raw/mhtdc[10][4].png"); - tree->Draw("mhtdc[10][5]"); - c1->Print("../figure/raw/mhtdc[10][5].png"); - tree->Draw("mhtdc[10][6]"); - c1->Print("../figure/raw/mhtdc[10][6].png"); - tree->Draw("mhtdc[10][7]"); - c1->Print("../figure/raw/mhtdc[10][7].png"); - tree->Draw("mhtdc[10][8]"); - c1->Print("../figure/raw/mhtdc[10][8].png"); - tree->Draw("mhtdc[10][9]"); - c1->Print("../figure/raw/mhtdc[10][9].png"); - tree->Draw("mhtdc[10][10]"); - c1->Print("../figure/raw/mhtdc[10][10].png"); - tree->Draw("mhtdc[10][11]"); - c1->Print("../figure/raw/mhtdc[10][11].png"); - tree->Draw("mhtdc[11][0]"); - c1->Print("../figure/raw/mhtdc[11][0].png"); - tree->Draw("mhtdc[11][1]"); - c1->Print("../figure/raw/mhtdc[11][1].png"); - tree->Draw("mhtdc[11][2]"); - c1->Print("../figure/raw/mhtdc[11][2].png"); - tree->Draw("mhtdc[11][3]"); - c1->Print("../figure/raw/mhtdc[11][3].png"); - tree->Draw("mhtdc[11][4]"); - c1->Print("../figure/raw/mhtdc[11][4].png"); - tree->Draw("mhtdc[11][5]"); - c1->Print("../figure/raw/mhtdc[11][5].png"); - tree->Draw("mhtdc[11][6]"); - c1->Print("../figure/raw/mhtdc[11][6].png"); - tree->Draw("mhtdc[11][7]"); - c1->Print("../figure/raw/mhtdc[11][7].png"); - tree->Draw("mhtdc[11][8]"); - c1->Print("../figure/raw/mhtdc[11][8].png"); - tree->Draw("mhtdc[11][9]"); - c1->Print("../figure/raw/mhtdc[11][9].png"); - tree->Draw("mhtdc[11][10]"); - c1->Print("../figure/raw/mhtdc[11][10].png"); - tree->Draw("mhtdc[11][11]"); - c1->Print("../figure/raw/mhtdc[11][11].png"); - tree->Draw("mhtdc[12][0]"); - c1->Print("../figure/raw/mhtdc[12][0].png"); - tree->Draw("mhtdc[12][1]"); - c1->Print("../figure/raw/mhtdc[12][1].png"); - tree->Draw("mhtdc[12][2]"); - c1->Print("../figure/raw/mhtdc[12][2].png"); - tree->Draw("mhtdc[12][3]"); - c1->Print("../figure/raw/mhtdc[12][3].png"); - tree->Draw("mhtdc[12][4]"); - c1->Print("../figure/raw/mhtdc[12][4].png"); - tree->Draw("mhtdc[12][5]"); - c1->Print("../figure/raw/mhtdc[12][5].png"); - tree->Draw("mhtdc[12][6]"); - c1->Print("../figure/raw/mhtdc[12][6].png"); - tree->Draw("mhtdc[12][7]"); - c1->Print("../figure/raw/mhtdc[12][7].png"); - tree->Draw("mhtdc[12][8]"); - c1->Print("../figure/raw/mhtdc[12][8].png"); - tree->Draw("mhtdc[12][9]"); - c1->Print("../figure/raw/mhtdc[12][9].png"); - tree->Draw("mhtdc[12][10]"); - c1->Print("../figure/raw/mhtdc[12][10].png"); - tree->Draw("mhtdc[12][11]"); - c1->Print("../figure/raw/mhtdc[12][11].png"); - tree->Draw("mhtdc[13][0]"); - c1->Print("../figure/raw/mhtdc[13][0].png"); - tree->Draw("mhtdc[13][1]"); - c1->Print("../figure/raw/mhtdc[13][1].png"); - tree->Draw("mhtdc[13][2]"); - c1->Print("../figure/raw/mhtdc[13][2].png"); - tree->Draw("mhtdc[13][3]"); - c1->Print("../figure/raw/mhtdc[13][3].png"); - tree->Draw("mhtdc[13][4]"); - c1->Print("../figure/raw/mhtdc[13][4].png"); - tree->Draw("mhtdc[13][5]"); - c1->Print("../figure/raw/mhtdc[13][5].png"); - tree->Draw("mhtdc[13][6]"); - c1->Print("../figure/raw/mhtdc[13][6].png"); - tree->Draw("mhtdc[13][7]"); - c1->Print("../figure/raw/mhtdc[13][7].png"); - tree->Draw("mhtdc[13][8]"); - c1->Print("../figure/raw/mhtdc[13][8].png"); - tree->Draw("mhtdc[13][9]"); - c1->Print("../figure/raw/mhtdc[13][9].png"); - tree->Draw("mhtdc[13][10]"); - c1->Print("../figure/raw/mhtdc[13][10].png"); - tree->Draw("mhtdc[13][11]"); - c1->Print("../figure/raw/mhtdc[13][11].png"); - tree->Draw("mhtdc[14][0]"); - c1->Print("../figure/raw/mhtdc[14][0].png"); - tree->Draw("mhtdc[14][1]"); - c1->Print("../figure/raw/mhtdc[14][1].png"); - tree->Draw("mhtdc[14][2]"); - c1->Print("../figure/raw/mhtdc[14][2].png"); - tree->Draw("mhtdc[14][3]"); - c1->Print("../figure/raw/mhtdc[14][3].png"); - tree->Draw("mhtdc[14][4]"); - c1->Print("../figure/raw/mhtdc[14][4].png"); - tree->Draw("mhtdc[14][5]"); - c1->Print("../figure/raw/mhtdc[14][5].png"); - tree->Draw("mhtdc[14][6]"); - c1->Print("../figure/raw/mhtdc[14][6].png"); - tree->Draw("mhtdc[14][7]"); - c1->Print("../figure/raw/mhtdc[14][7].png"); - tree->Draw("mhtdc[14][8]"); - c1->Print("../figure/raw/mhtdc[14][8].png"); - tree->Draw("mhtdc[14][9]"); - c1->Print("../figure/raw/mhtdc[14][9].png"); - tree->Draw("mhtdc[14][10]"); - c1->Print("../figure/raw/mhtdc[14][10].png"); - tree->Draw("mhtdc[14][11]"); - c1->Print("../figure/raw/mhtdc[14][11].png"); - tree->Draw("mhtdc[15][0]"); - c1->Print("../figure/raw/mhtdc[15][0].png"); - tree->Draw("mhtdc[15][1]"); - c1->Print("../figure/raw/mhtdc[15][1].png"); - tree->Draw("mhtdc[15][2]"); - c1->Print("../figure/raw/mhtdc[15][2].png"); - tree->Draw("mhtdc[15][3]"); - c1->Print("../figure/raw/mhtdc[15][3].png"); - tree->Draw("mhtdc[15][4]"); - c1->Print("../figure/raw/mhtdc[15][4].png"); - tree->Draw("mhtdc[15][5]"); - c1->Print("../figure/raw/mhtdc[15][5].png"); - tree->Draw("mhtdc[15][6]"); - c1->Print("../figure/raw/mhtdc[15][6].png"); - tree->Draw("mhtdc[15][7]"); - c1->Print("../figure/raw/mhtdc[15][7].png"); - tree->Draw("mhtdc[15][8]"); - c1->Print("../figure/raw/mhtdc[15][8].png"); - tree->Draw("mhtdc[15][9]"); - c1->Print("../figure/raw/mhtdc[15][9].png"); - tree->Draw("mhtdc[15][10]"); - c1->Print("../figure/raw/mhtdc[15][10].png"); - tree->Draw("mhtdc[15][11]"); - c1->Print("../figure/raw/mhtdc[15][11].png"); - tree->Draw("mhtdc[16][0]"); - c1->Print("../figure/raw/mhtdc[16][0].png"); - tree->Draw("mhtdc[16][1]"); - c1->Print("../figure/raw/mhtdc[16][1].png"); - tree->Draw("mhtdc[16][2]"); - c1->Print("../figure/raw/mhtdc[16][2].png"); - tree->Draw("mhtdc[16][3]"); - c1->Print("../figure/raw/mhtdc[16][3].png"); - tree->Draw("mhtdc[16][4]"); - c1->Print("../figure/raw/mhtdc[16][4].png"); - tree->Draw("mhtdc[16][5]"); - c1->Print("../figure/raw/mhtdc[16][5].png"); - tree->Draw("mhtdc[16][6]"); - c1->Print("../figure/raw/mhtdc[16][6].png"); - tree->Draw("mhtdc[16][7]"); - c1->Print("../figure/raw/mhtdc[16][7].png"); - tree->Draw("mhtdc[16][8]"); - c1->Print("../figure/raw/mhtdc[16][8].png"); - tree->Draw("mhtdc[16][9]"); - c1->Print("../figure/raw/mhtdc[16][9].png"); - tree->Draw("mhtdc[16][10]"); - c1->Print("../figure/raw/mhtdc[16][10].png"); - tree->Draw("mhtdc[16][11]"); - c1->Print("../figure/raw/mhtdc[16][11].png"); - tree->Draw("mhtdc[17][0]"); - c1->Print("../figure/raw/mhtdc[17][0].png"); - tree->Draw("mhtdc[17][1]"); - c1->Print("../figure/raw/mhtdc[17][1].png"); - tree->Draw("mhtdc[17][2]"); - c1->Print("../figure/raw/mhtdc[17][2].png"); - tree->Draw("mhtdc[17][3]"); - c1->Print("../figure/raw/mhtdc[17][3].png"); - tree->Draw("mhtdc[17][4]"); - c1->Print("../figure/raw/mhtdc[17][4].png"); - tree->Draw("mhtdc[17][5]"); - c1->Print("../figure/raw/mhtdc[17][5].png"); - tree->Draw("mhtdc[17][6]"); - c1->Print("../figure/raw/mhtdc[17][6].png"); - tree->Draw("mhtdc[17][7]"); - c1->Print("../figure/raw/mhtdc[17][7].png"); - tree->Draw("mhtdc[17][8]"); - c1->Print("../figure/raw/mhtdc[17][8].png"); - tree->Draw("mhtdc[17][9]"); - c1->Print("../figure/raw/mhtdc[17][9].png"); - tree->Draw("mhtdc[17][10]"); - c1->Print("../figure/raw/mhtdc[17][10].png"); - tree->Draw("mhtdc[17][11]"); - c1->Print("../figure/raw/mhtdc[17][11].png"); - tree->Draw("mhtdc[18][0]"); - c1->Print("../figure/raw/mhtdc[18][0].png"); - tree->Draw("mhtdc[18][1]"); - c1->Print("../figure/raw/mhtdc[18][1].png"); - tree->Draw("mhtdc[18][2]"); - c1->Print("../figure/raw/mhtdc[18][2].png"); - tree->Draw("mhtdc[18][3]"); - c1->Print("../figure/raw/mhtdc[18][3].png"); - tree->Draw("mhtdc[18][4]"); - c1->Print("../figure/raw/mhtdc[18][4].png"); - tree->Draw("mhtdc[18][5]"); - c1->Print("../figure/raw/mhtdc[18][5].png"); - tree->Draw("mhtdc[18][6]"); - c1->Print("../figure/raw/mhtdc[18][6].png"); - tree->Draw("mhtdc[18][7]"); - c1->Print("../figure/raw/mhtdc[18][7].png"); - tree->Draw("mhtdc[18][8]"); - c1->Print("../figure/raw/mhtdc[18][8].png"); - tree->Draw("mhtdc[18][9]"); - c1->Print("../figure/raw/mhtdc[18][9].png"); - tree->Draw("mhtdc[18][10]"); - c1->Print("../figure/raw/mhtdc[18][10].png"); - tree->Draw("mhtdc[18][11]"); - c1->Print("../figure/raw/mhtdc[18][11].png"); - tree->Draw("mhtdc[19][0]"); - c1->Print("../figure/raw/mhtdc[19][0].png"); - tree->Draw("mhtdc[19][1]"); - c1->Print("../figure/raw/mhtdc[19][1].png"); - tree->Draw("mhtdc[19][2]"); - c1->Print("../figure/raw/mhtdc[19][2].png"); - tree->Draw("mhtdc[19][3]"); - c1->Print("../figure/raw/mhtdc[19][3].png"); - tree->Draw("mhtdc[19][4]"); - c1->Print("../figure/raw/mhtdc[19][4].png"); - tree->Draw("mhtdc[19][5]"); - c1->Print("../figure/raw/mhtdc[19][5].png"); - tree->Draw("mhtdc[19][6]"); - c1->Print("../figure/raw/mhtdc[19][6].png"); - tree->Draw("mhtdc[19][7]"); - c1->Print("../figure/raw/mhtdc[19][7].png"); - tree->Draw("mhtdc[19][8]"); - c1->Print("../figure/raw/mhtdc[19][8].png"); - tree->Draw("mhtdc[19][9]"); - c1->Print("../figure/raw/mhtdc[19][9].png"); - tree->Draw("mhtdc[19][10]"); - c1->Print("../figure/raw/mhtdc[19][10].png"); - tree->Draw("mhtdc[19][11]"); - c1->Print("../figure/raw/mhtdc[19][11].png"); - tree->Draw("mhtdc[20][0]"); - c1->Print("../figure/raw/mhtdc[20][0].png"); - tree->Draw("mhtdc[20][1]"); - c1->Print("../figure/raw/mhtdc[20][1].png"); - tree->Draw("mhtdc[20][2]"); - c1->Print("../figure/raw/mhtdc[20][2].png"); - tree->Draw("mhtdc[20][3]"); - c1->Print("../figure/raw/mhtdc[20][3].png"); - tree->Draw("mhtdc[20][4]"); - c1->Print("../figure/raw/mhtdc[20][4].png"); - tree->Draw("mhtdc[20][5]"); - c1->Print("../figure/raw/mhtdc[20][5].png"); - tree->Draw("mhtdc[20][6]"); - c1->Print("../figure/raw/mhtdc[20][6].png"); - tree->Draw("mhtdc[20][7]"); - c1->Print("../figure/raw/mhtdc[20][7].png"); - tree->Draw("mhtdc[20][8]"); - c1->Print("../figure/raw/mhtdc[20][8].png"); - tree->Draw("mhtdc[20][9]"); - c1->Print("../figure/raw/mhtdc[20][9].png"); - tree->Draw("mhtdc[20][10]"); - c1->Print("../figure/raw/mhtdc[20][10].png"); - tree->Draw("mhtdc[20][11]"); - c1->Print("../figure/raw/mhtdc[20][11].png"); - tree->Draw("mhtdc[21][0]"); - c1->Print("../figure/raw/mhtdc[21][0].png"); - tree->Draw("mhtdc[21][1]"); - c1->Print("../figure/raw/mhtdc[21][1].png"); - tree->Draw("mhtdc[21][2]"); - c1->Print("../figure/raw/mhtdc[21][2].png"); - tree->Draw("mhtdc[21][3]"); - c1->Print("../figure/raw/mhtdc[21][3].png"); - tree->Draw("mhtdc[21][4]"); - c1->Print("../figure/raw/mhtdc[21][4].png"); - tree->Draw("mhtdc[21][5]"); - c1->Print("../figure/raw/mhtdc[21][5].png"); - tree->Draw("mhtdc[21][6]"); - c1->Print("../figure/raw/mhtdc[21][6].png"); - tree->Draw("mhtdc[21][7]"); - c1->Print("../figure/raw/mhtdc[21][7].png"); - tree->Draw("mhtdc[21][8]"); - c1->Print("../figure/raw/mhtdc[21][8].png"); - tree->Draw("mhtdc[21][9]"); - c1->Print("../figure/raw/mhtdc[21][9].png"); - tree->Draw("mhtdc[21][10]"); - c1->Print("../figure/raw/mhtdc[21][10].png"); - tree->Draw("mhtdc[21][11]"); - c1->Print("../figure/raw/mhtdc[21][11].png"); - tree->Draw("mhtdc[22][0]"); - c1->Print("../figure/raw/mhtdc[22][0].png"); - tree->Draw("mhtdc[22][1]"); - c1->Print("../figure/raw/mhtdc[22][1].png"); - tree->Draw("mhtdc[22][2]"); - c1->Print("../figure/raw/mhtdc[22][2].png"); - tree->Draw("mhtdc[22][3]"); - c1->Print("../figure/raw/mhtdc[22][3].png"); - tree->Draw("mhtdc[22][4]"); - c1->Print("../figure/raw/mhtdc[22][4].png"); - tree->Draw("mhtdc[22][5]"); - c1->Print("../figure/raw/mhtdc[22][5].png"); - tree->Draw("mhtdc[22][6]"); - c1->Print("../figure/raw/mhtdc[22][6].png"); - tree->Draw("mhtdc[22][7]"); - c1->Print("../figure/raw/mhtdc[22][7].png"); - tree->Draw("mhtdc[22][8]"); - c1->Print("../figure/raw/mhtdc[22][8].png"); - tree->Draw("mhtdc[22][9]"); - c1->Print("../figure/raw/mhtdc[22][9].png"); - tree->Draw("mhtdc[22][10]"); - c1->Print("../figure/raw/mhtdc[22][10].png"); - tree->Draw("mhtdc[22][11]"); - c1->Print("../figure/raw/mhtdc[22][11].png"); - tree->Draw("mhtdc[23][0]"); - c1->Print("../figure/raw/mhtdc[23][0].png"); - tree->Draw("mhtdc[23][1]"); - c1->Print("../figure/raw/mhtdc[23][1].png"); - tree->Draw("mhtdc[23][2]"); - c1->Print("../figure/raw/mhtdc[23][2].png"); - tree->Draw("mhtdc[23][3]"); - c1->Print("../figure/raw/mhtdc[23][3].png"); - tree->Draw("mhtdc[23][4]"); - c1->Print("../figure/raw/mhtdc[23][4].png"); - tree->Draw("mhtdc[23][5]"); - c1->Print("../figure/raw/mhtdc[23][5].png"); - tree->Draw("mhtdc[23][6]"); - c1->Print("../figure/raw/mhtdc[23][6].png"); - tree->Draw("mhtdc[23][7]"); - c1->Print("../figure/raw/mhtdc[23][7].png"); - tree->Draw("mhtdc[23][8]"); - c1->Print("../figure/raw/mhtdc[23][8].png"); - tree->Draw("mhtdc[23][9]"); - c1->Print("../figure/raw/mhtdc[23][9].png"); - tree->Draw("mhtdc[23][10]"); - c1->Print("../figure/raw/mhtdc[23][10].png"); - tree->Draw("mhtdc[23][11]"); - c1->Print("../figure/raw/mhtdc[23][11].png"); - tree->Draw("mhtdc[24][0]"); - c1->Print("../figure/raw/mhtdc[24][0].png"); - tree->Draw("mhtdc[24][1]"); - c1->Print("../figure/raw/mhtdc[24][1].png"); - tree->Draw("mhtdc[24][2]"); - c1->Print("../figure/raw/mhtdc[24][2].png"); - tree->Draw("mhtdc[24][3]"); - c1->Print("../figure/raw/mhtdc[24][3].png"); - tree->Draw("mhtdc[24][4]"); - c1->Print("../figure/raw/mhtdc[24][4].png"); - tree->Draw("mhtdc[24][5]"); - c1->Print("../figure/raw/mhtdc[24][5].png"); - tree->Draw("mhtdc[24][6]"); - c1->Print("../figure/raw/mhtdc[24][6].png"); - tree->Draw("mhtdc[24][7]"); - c1->Print("../figure/raw/mhtdc[24][7].png"); - tree->Draw("mhtdc[24][8]"); - c1->Print("../figure/raw/mhtdc[24][8].png"); - tree->Draw("mhtdc[24][9]"); - c1->Print("../figure/raw/mhtdc[24][9].png"); - tree->Draw("mhtdc[24][10]"); - c1->Print("../figure/raw/mhtdc[24][10].png"); - tree->Draw("mhtdc[24][11]"); - c1->Print("../figure/raw/mhtdc[24][11].png"); - tree->Draw("mhtdc[25][0]"); - c1->Print("../figure/raw/mhtdc[25][0].png"); - tree->Draw("mhtdc[25][1]"); - c1->Print("../figure/raw/mhtdc[25][1].png"); - tree->Draw("mhtdc[25][2]"); - c1->Print("../figure/raw/mhtdc[25][2].png"); - tree->Draw("mhtdc[25][3]"); - c1->Print("../figure/raw/mhtdc[25][3].png"); - tree->Draw("mhtdc[25][4]"); - c1->Print("../figure/raw/mhtdc[25][4].png"); - tree->Draw("mhtdc[25][5]"); - c1->Print("../figure/raw/mhtdc[25][5].png"); - tree->Draw("mhtdc[25][6]"); - c1->Print("../figure/raw/mhtdc[25][6].png"); - tree->Draw("mhtdc[25][7]"); - c1->Print("../figure/raw/mhtdc[25][7].png"); - tree->Draw("mhtdc[25][8]"); - c1->Print("../figure/raw/mhtdc[25][8].png"); - tree->Draw("mhtdc[25][9]"); - c1->Print("../figure/raw/mhtdc[25][9].png"); - tree->Draw("mhtdc[25][10]"); - c1->Print("../figure/raw/mhtdc[25][10].png"); - tree->Draw("mhtdc[25][11]"); - c1->Print("../figure/raw/mhtdc[25][11].png"); - tree->Draw("mhtdc[26][0]"); - c1->Print("../figure/raw/mhtdc[26][0].png"); - tree->Draw("mhtdc[26][1]"); - c1->Print("../figure/raw/mhtdc[26][1].png"); - tree->Draw("mhtdc[26][2]"); - c1->Print("../figure/raw/mhtdc[26][2].png"); - tree->Draw("mhtdc[26][3]"); - c1->Print("../figure/raw/mhtdc[26][3].png"); - tree->Draw("mhtdc[26][4]"); - c1->Print("../figure/raw/mhtdc[26][4].png"); - tree->Draw("mhtdc[26][5]"); - c1->Print("../figure/raw/mhtdc[26][5].png"); - tree->Draw("mhtdc[26][6]"); - c1->Print("../figure/raw/mhtdc[26][6].png"); - tree->Draw("mhtdc[26][7]"); - c1->Print("../figure/raw/mhtdc[26][7].png"); - tree->Draw("mhtdc[26][8]"); - c1->Print("../figure/raw/mhtdc[26][8].png"); - tree->Draw("mhtdc[26][9]"); - c1->Print("../figure/raw/mhtdc[26][9].png"); - tree->Draw("mhtdc[26][10]"); - c1->Print("../figure/raw/mhtdc[26][10].png"); - tree->Draw("mhtdc[26][11]"); - c1->Print("../figure/raw/mhtdc[26][11].png"); - tree->Draw("mhtdc[27][0]"); - c1->Print("../figure/raw/mhtdc[27][0].png"); - tree->Draw("mhtdc[27][1]"); - c1->Print("../figure/raw/mhtdc[27][1].png"); - tree->Draw("mhtdc[27][2]"); - c1->Print("../figure/raw/mhtdc[27][2].png"); - tree->Draw("mhtdc[27][3]"); - c1->Print("../figure/raw/mhtdc[27][3].png"); - tree->Draw("mhtdc[27][4]"); - c1->Print("../figure/raw/mhtdc[27][4].png"); - tree->Draw("mhtdc[27][5]"); - c1->Print("../figure/raw/mhtdc[27][5].png"); - tree->Draw("mhtdc[27][6]"); - c1->Print("../figure/raw/mhtdc[27][6].png"); - tree->Draw("mhtdc[27][7]"); - c1->Print("../figure/raw/mhtdc[27][7].png"); - tree->Draw("mhtdc[27][8]"); - c1->Print("../figure/raw/mhtdc[27][8].png"); - tree->Draw("mhtdc[27][9]"); - c1->Print("../figure/raw/mhtdc[27][9].png"); - tree->Draw("mhtdc[27][10]"); - c1->Print("../figure/raw/mhtdc[27][10].png"); - tree->Draw("mhtdc[27][11]"); - c1->Print("../figure/raw/mhtdc[27][11].png"); - tree->Draw("mhtdc[28][0]"); - c1->Print("../figure/raw/mhtdc[28][0].png"); - tree->Draw("mhtdc[28][1]"); - c1->Print("../figure/raw/mhtdc[28][1].png"); - tree->Draw("mhtdc[28][2]"); - c1->Print("../figure/raw/mhtdc[28][2].png"); - tree->Draw("mhtdc[28][3]"); - c1->Print("../figure/raw/mhtdc[28][3].png"); - tree->Draw("mhtdc[28][4]"); - c1->Print("../figure/raw/mhtdc[28][4].png"); - tree->Draw("mhtdc[28][5]"); - c1->Print("../figure/raw/mhtdc[28][5].png"); - tree->Draw("mhtdc[28][6]"); - c1->Print("../figure/raw/mhtdc[28][6].png"); - tree->Draw("mhtdc[28][7]"); - c1->Print("../figure/raw/mhtdc[28][7].png"); - tree->Draw("mhtdc[28][8]"); - c1->Print("../figure/raw/mhtdc[28][8].png"); - tree->Draw("mhtdc[28][9]"); - c1->Print("../figure/raw/mhtdc[28][9].png"); - tree->Draw("mhtdc[28][10]"); - c1->Print("../figure/raw/mhtdc[28][10].png"); - tree->Draw("mhtdc[28][11]"); - c1->Print("../figure/raw/mhtdc[28][11].png"); - tree->Draw("mhtdc[29][0]"); - c1->Print("../figure/raw/mhtdc[29][0].png"); - tree->Draw("mhtdc[29][1]"); - c1->Print("../figure/raw/mhtdc[29][1].png"); - tree->Draw("mhtdc[29][2]"); - c1->Print("../figure/raw/mhtdc[29][2].png"); - tree->Draw("mhtdc[29][3]"); - c1->Print("../figure/raw/mhtdc[29][3].png"); - tree->Draw("mhtdc[29][4]"); - c1->Print("../figure/raw/mhtdc[29][4].png"); - tree->Draw("mhtdc[29][5]"); - c1->Print("../figure/raw/mhtdc[29][5].png"); - tree->Draw("mhtdc[29][6]"); - c1->Print("../figure/raw/mhtdc[29][6].png"); - tree->Draw("mhtdc[29][7]"); - c1->Print("../figure/raw/mhtdc[29][7].png"); - tree->Draw("mhtdc[29][8]"); - c1->Print("../figure/raw/mhtdc[29][8].png"); - tree->Draw("mhtdc[29][9]"); - c1->Print("../figure/raw/mhtdc[29][9].png"); - tree->Draw("mhtdc[29][10]"); - c1->Print("../figure/raw/mhtdc[29][10].png"); - tree->Draw("mhtdc[29][11]"); - c1->Print("../figure/raw/mhtdc[29][11].png"); - tree->Draw("mhtdc[30][0]"); - c1->Print("../figure/raw/mhtdc[30][0].png"); - tree->Draw("mhtdc[30][1]"); - c1->Print("../figure/raw/mhtdc[30][1].png"); - tree->Draw("mhtdc[30][2]"); - c1->Print("../figure/raw/mhtdc[30][2].png"); - tree->Draw("mhtdc[30][3]"); - c1->Print("../figure/raw/mhtdc[30][3].png"); - tree->Draw("mhtdc[30][4]"); - c1->Print("../figure/raw/mhtdc[30][4].png"); - tree->Draw("mhtdc[30][5]"); - c1->Print("../figure/raw/mhtdc[30][5].png"); - tree->Draw("mhtdc[30][6]"); - c1->Print("../figure/raw/mhtdc[30][6].png"); - tree->Draw("mhtdc[30][7]"); - c1->Print("../figure/raw/mhtdc[30][7].png"); - tree->Draw("mhtdc[30][8]"); - c1->Print("../figure/raw/mhtdc[30][8].png"); - tree->Draw("mhtdc[30][9]"); - c1->Print("../figure/raw/mhtdc[30][9].png"); - tree->Draw("mhtdc[30][10]"); - c1->Print("../figure/raw/mhtdc[30][10].png"); - tree->Draw("mhtdc[30][11]"); - c1->Print("../figure/raw/mhtdc[30][11].png"); - tree->Draw("mhtdc[31][0]"); - c1->Print("../figure/raw/mhtdc[31][0].png"); - tree->Draw("mhtdc[31][1]"); - c1->Print("../figure/raw/mhtdc[31][1].png"); - tree->Draw("mhtdc[31][2]"); - c1->Print("../figure/raw/mhtdc[31][2].png"); - tree->Draw("mhtdc[31][3]"); - c1->Print("../figure/raw/mhtdc[31][3].png"); - tree->Draw("mhtdc[31][4]"); - c1->Print("../figure/raw/mhtdc[31][4].png"); - tree->Draw("mhtdc[31][5]"); - c1->Print("../figure/raw/mhtdc[31][5].png"); - tree->Draw("mhtdc[31][6]"); - c1->Print("../figure/raw/mhtdc[31][6].png"); - tree->Draw("mhtdc[31][7]"); - c1->Print("../figure/raw/mhtdc[31][7].png"); - tree->Draw("mhtdc[31][8]"); - c1->Print("../figure/raw/mhtdc[31][8].png"); - tree->Draw("mhtdc[31][9]"); - c1->Print("../figure/raw/mhtdc[31][9].png"); - tree->Draw("mhtdc[31][10]"); - c1->Print("../figure/raw/mhtdc[31][10].png"); - tree->Draw("mhtdc[31][11]"); - c1->Print("../figure/raw/mhtdc[31][11].png"); - tree->Draw("mhtdc[32][0]"); - c1->Print("../figure/raw/mhtdc[32][0].png"); - tree->Draw("mhtdc[32][1]"); - c1->Print("../figure/raw/mhtdc[32][1].png"); - tree->Draw("mhtdc[32][2]"); - c1->Print("../figure/raw/mhtdc[32][2].png"); - tree->Draw("mhtdc[32][3]"); - c1->Print("../figure/raw/mhtdc[32][3].png"); - tree->Draw("mhtdc[32][4]"); - c1->Print("../figure/raw/mhtdc[32][4].png"); - tree->Draw("mhtdc[32][5]"); - c1->Print("../figure/raw/mhtdc[32][5].png"); - tree->Draw("mhtdc[32][6]"); - c1->Print("../figure/raw/mhtdc[32][6].png"); - tree->Draw("mhtdc[32][7]"); - c1->Print("../figure/raw/mhtdc[32][7].png"); - tree->Draw("mhtdc[32][8]"); - c1->Print("../figure/raw/mhtdc[32][8].png"); - tree->Draw("mhtdc[32][9]"); - c1->Print("../figure/raw/mhtdc[32][9].png"); - tree->Draw("mhtdc[32][10]"); - c1->Print("../figure/raw/mhtdc[32][10].png"); - tree->Draw("mhtdc[32][11]"); - c1->Print("../figure/raw/mhtdc[32][11].png"); - tree->Draw("mhtdc[33][0]"); - c1->Print("../figure/raw/mhtdc[33][0].png"); - tree->Draw("mhtdc[33][1]"); - c1->Print("../figure/raw/mhtdc[33][1].png"); - tree->Draw("mhtdc[33][2]"); - c1->Print("../figure/raw/mhtdc[33][2].png"); - tree->Draw("mhtdc[33][3]"); - c1->Print("../figure/raw/mhtdc[33][3].png"); - tree->Draw("mhtdc[33][4]"); - c1->Print("../figure/raw/mhtdc[33][4].png"); - tree->Draw("mhtdc[33][5]"); - c1->Print("../figure/raw/mhtdc[33][5].png"); - tree->Draw("mhtdc[33][6]"); - c1->Print("../figure/raw/mhtdc[33][6].png"); - tree->Draw("mhtdc[33][7]"); - c1->Print("../figure/raw/mhtdc[33][7].png"); - tree->Draw("mhtdc[33][8]"); - c1->Print("../figure/raw/mhtdc[33][8].png"); - tree->Draw("mhtdc[33][9]"); - c1->Print("../figure/raw/mhtdc[33][9].png"); - tree->Draw("mhtdc[33][10]"); - c1->Print("../figure/raw/mhtdc[33][10].png"); - tree->Draw("mhtdc[33][11]"); - c1->Print("../figure/raw/mhtdc[33][11].png"); - tree->Draw("mhtdc[34][0]"); - c1->Print("../figure/raw/mhtdc[34][0].png"); - tree->Draw("mhtdc[34][1]"); - c1->Print("../figure/raw/mhtdc[34][1].png"); - tree->Draw("mhtdc[34][2]"); - c1->Print("../figure/raw/mhtdc[34][2].png"); - tree->Draw("mhtdc[34][3]"); - c1->Print("../figure/raw/mhtdc[34][3].png"); - tree->Draw("mhtdc[34][4]"); - c1->Print("../figure/raw/mhtdc[34][4].png"); - tree->Draw("mhtdc[34][5]"); - c1->Print("../figure/raw/mhtdc[34][5].png"); - tree->Draw("mhtdc[34][6]"); - c1->Print("../figure/raw/mhtdc[34][6].png"); - tree->Draw("mhtdc[34][7]"); - c1->Print("../figure/raw/mhtdc[34][7].png"); - tree->Draw("mhtdc[34][8]"); - c1->Print("../figure/raw/mhtdc[34][8].png"); - tree->Draw("mhtdc[34][9]"); - c1->Print("../figure/raw/mhtdc[34][9].png"); - tree->Draw("mhtdc[34][10]"); - c1->Print("../figure/raw/mhtdc[34][10].png"); - tree->Draw("mhtdc[34][11]"); - c1->Print("../figure/raw/mhtdc[34][11].png"); - tree->Draw("mhtdc[35][0]"); - c1->Print("../figure/raw/mhtdc[35][0].png"); - tree->Draw("mhtdc[35][1]"); - c1->Print("../figure/raw/mhtdc[35][1].png"); - tree->Draw("mhtdc[35][2]"); - c1->Print("../figure/raw/mhtdc[35][2].png"); - tree->Draw("mhtdc[35][3]"); - c1->Print("../figure/raw/mhtdc[35][3].png"); - tree->Draw("mhtdc[35][4]"); - c1->Print("../figure/raw/mhtdc[35][4].png"); - tree->Draw("mhtdc[35][5]"); - c1->Print("../figure/raw/mhtdc[35][5].png"); - tree->Draw("mhtdc[35][6]"); - c1->Print("../figure/raw/mhtdc[35][6].png"); - tree->Draw("mhtdc[35][7]"); - c1->Print("../figure/raw/mhtdc[35][7].png"); - tree->Draw("mhtdc[35][8]"); - c1->Print("../figure/raw/mhtdc[35][8].png"); - tree->Draw("mhtdc[35][9]"); - c1->Print("../figure/raw/mhtdc[35][9].png"); - tree->Draw("mhtdc[35][10]"); - c1->Print("../figure/raw/mhtdc[35][10].png"); - tree->Draw("mhtdc[35][11]"); - c1->Print("../figure/raw/mhtdc[35][11].png"); - tree->Draw("mhtdc[36][0]"); - c1->Print("../figure/raw/mhtdc[36][0].png"); - tree->Draw("mhtdc[36][1]"); - c1->Print("../figure/raw/mhtdc[36][1].png"); - tree->Draw("mhtdc[36][2]"); - c1->Print("../figure/raw/mhtdc[36][2].png"); - tree->Draw("mhtdc[36][3]"); - c1->Print("../figure/raw/mhtdc[36][3].png"); - tree->Draw("mhtdc[36][4]"); - c1->Print("../figure/raw/mhtdc[36][4].png"); - tree->Draw("mhtdc[36][5]"); - c1->Print("../figure/raw/mhtdc[36][5].png"); - tree->Draw("mhtdc[36][6]"); - c1->Print("../figure/raw/mhtdc[36][6].png"); - tree->Draw("mhtdc[36][7]"); - c1->Print("../figure/raw/mhtdc[36][7].png"); - tree->Draw("mhtdc[36][8]"); - c1->Print("../figure/raw/mhtdc[36][8].png"); - tree->Draw("mhtdc[36][9]"); - c1->Print("../figure/raw/mhtdc[36][9].png"); - tree->Draw("mhtdc[36][10]"); - c1->Print("../figure/raw/mhtdc[36][10].png"); - tree->Draw("mhtdc[36][11]"); - c1->Print("../figure/raw/mhtdc[36][11].png"); - tree->Draw("mhtdc[37][0]"); - c1->Print("../figure/raw/mhtdc[37][0].png"); - tree->Draw("mhtdc[37][1]"); - c1->Print("../figure/raw/mhtdc[37][1].png"); - tree->Draw("mhtdc[37][2]"); - c1->Print("../figure/raw/mhtdc[37][2].png"); - tree->Draw("mhtdc[37][3]"); - c1->Print("../figure/raw/mhtdc[37][3].png"); - tree->Draw("mhtdc[37][4]"); - c1->Print("../figure/raw/mhtdc[37][4].png"); - tree->Draw("mhtdc[37][5]"); - c1->Print("../figure/raw/mhtdc[37][5].png"); - tree->Draw("mhtdc[37][6]"); - c1->Print("../figure/raw/mhtdc[37][6].png"); - tree->Draw("mhtdc[37][7]"); - c1->Print("../figure/raw/mhtdc[37][7].png"); - tree->Draw("mhtdc[37][8]"); - c1->Print("../figure/raw/mhtdc[37][8].png"); - tree->Draw("mhtdc[37][9]"); - c1->Print("../figure/raw/mhtdc[37][9].png"); - tree->Draw("mhtdc[37][10]"); - c1->Print("../figure/raw/mhtdc[37][10].png"); - tree->Draw("mhtdc[37][11]"); - c1->Print("../figure/raw/mhtdc[37][11].png"); - tree->Draw("mhtdc[38][0]"); - c1->Print("../figure/raw/mhtdc[38][0].png"); - tree->Draw("mhtdc[38][1]"); - c1->Print("../figure/raw/mhtdc[38][1].png"); - tree->Draw("mhtdc[38][2]"); - c1->Print("../figure/raw/mhtdc[38][2].png"); - tree->Draw("mhtdc[38][3]"); - c1->Print("../figure/raw/mhtdc[38][3].png"); - tree->Draw("mhtdc[38][4]"); - c1->Print("../figure/raw/mhtdc[38][4].png"); - tree->Draw("mhtdc[38][5]"); - c1->Print("../figure/raw/mhtdc[38][5].png"); - tree->Draw("mhtdc[38][6]"); - c1->Print("../figure/raw/mhtdc[38][6].png"); - tree->Draw("mhtdc[38][7]"); - c1->Print("../figure/raw/mhtdc[38][7].png"); - tree->Draw("mhtdc[38][8]"); - c1->Print("../figure/raw/mhtdc[38][8].png"); - tree->Draw("mhtdc[38][9]"); - c1->Print("../figure/raw/mhtdc[38][9].png"); - tree->Draw("mhtdc[38][10]"); - c1->Print("../figure/raw/mhtdc[38][10].png"); - tree->Draw("mhtdc[38][11]"); - c1->Print("../figure/raw/mhtdc[38][11].png"); - tree->Draw("mhtdc[39][0]"); - c1->Print("../figure/raw/mhtdc[39][0].png"); - tree->Draw("mhtdc[39][1]"); - c1->Print("../figure/raw/mhtdc[39][1].png"); - tree->Draw("mhtdc[39][2]"); - c1->Print("../figure/raw/mhtdc[39][2].png"); - tree->Draw("mhtdc[39][3]"); - c1->Print("../figure/raw/mhtdc[39][3].png"); - tree->Draw("mhtdc[39][4]"); - c1->Print("../figure/raw/mhtdc[39][4].png"); - tree->Draw("mhtdc[39][5]"); - c1->Print("../figure/raw/mhtdc[39][5].png"); - tree->Draw("mhtdc[39][6]"); - c1->Print("../figure/raw/mhtdc[39][6].png"); - tree->Draw("mhtdc[39][7]"); - c1->Print("../figure/raw/mhtdc[39][7].png"); - tree->Draw("mhtdc[39][8]"); - c1->Print("../figure/raw/mhtdc[39][8].png"); - tree->Draw("mhtdc[39][9]"); - c1->Print("../figure/raw/mhtdc[39][9].png"); - tree->Draw("mhtdc[39][10]"); - c1->Print("../figure/raw/mhtdc[39][10].png"); - tree->Draw("mhtdc[39][11]"); - c1->Print("../figure/raw/mhtdc[39][11].png"); - tree->Draw("mhtdc[40][0]"); - c1->Print("../figure/raw/mhtdc[40][0].png"); - tree->Draw("mhtdc[40][1]"); - c1->Print("../figure/raw/mhtdc[40][1].png"); - tree->Draw("mhtdc[40][2]"); - c1->Print("../figure/raw/mhtdc[40][2].png"); - tree->Draw("mhtdc[40][3]"); - c1->Print("../figure/raw/mhtdc[40][3].png"); - tree->Draw("mhtdc[40][4]"); - c1->Print("../figure/raw/mhtdc[40][4].png"); - tree->Draw("mhtdc[40][5]"); - c1->Print("../figure/raw/mhtdc[40][5].png"); - tree->Draw("mhtdc[40][6]"); - c1->Print("../figure/raw/mhtdc[40][6].png"); - tree->Draw("mhtdc[40][7]"); - c1->Print("../figure/raw/mhtdc[40][7].png"); - tree->Draw("mhtdc[40][8]"); - c1->Print("../figure/raw/mhtdc[40][8].png"); - tree->Draw("mhtdc[40][9]"); - c1->Print("../figure/raw/mhtdc[40][9].png"); - tree->Draw("mhtdc[40][10]"); - c1->Print("../figure/raw/mhtdc[40][10].png"); - tree->Draw("mhtdc[40][11]"); - c1->Print("../figure/raw/mhtdc[40][11].png"); - tree->Draw("mhtdc[41][0]"); - c1->Print("../figure/raw/mhtdc[41][0].png"); - tree->Draw("mhtdc[41][1]"); - c1->Print("../figure/raw/mhtdc[41][1].png"); - tree->Draw("mhtdc[41][2]"); - c1->Print("../figure/raw/mhtdc[41][2].png"); - tree->Draw("mhtdc[41][3]"); - c1->Print("../figure/raw/mhtdc[41][3].png"); - tree->Draw("mhtdc[41][4]"); - c1->Print("../figure/raw/mhtdc[41][4].png"); - tree->Draw("mhtdc[41][5]"); - c1->Print("../figure/raw/mhtdc[41][5].png"); - tree->Draw("mhtdc[41][6]"); - c1->Print("../figure/raw/mhtdc[41][6].png"); - tree->Draw("mhtdc[41][7]"); - c1->Print("../figure/raw/mhtdc[41][7].png"); - tree->Draw("mhtdc[41][8]"); - c1->Print("../figure/raw/mhtdc[41][8].png"); - tree->Draw("mhtdc[41][9]"); - c1->Print("../figure/raw/mhtdc[41][9].png"); - tree->Draw("mhtdc[41][10]"); - c1->Print("../figure/raw/mhtdc[41][10].png"); - tree->Draw("mhtdc[41][11]"); - c1->Print("../figure/raw/mhtdc[41][11].png"); - tree->Draw("mhtdc[42][0]"); - c1->Print("../figure/raw/mhtdc[42][0].png"); - tree->Draw("mhtdc[42][1]"); - c1->Print("../figure/raw/mhtdc[42][1].png"); - tree->Draw("mhtdc[42][2]"); - c1->Print("../figure/raw/mhtdc[42][2].png"); - tree->Draw("mhtdc[42][3]"); - c1->Print("../figure/raw/mhtdc[42][3].png"); - tree->Draw("mhtdc[42][4]"); - c1->Print("../figure/raw/mhtdc[42][4].png"); - tree->Draw("mhtdc[42][5]"); - c1->Print("../figure/raw/mhtdc[42][5].png"); - tree->Draw("mhtdc[42][6]"); - c1->Print("../figure/raw/mhtdc[42][6].png"); - tree->Draw("mhtdc[42][7]"); - c1->Print("../figure/raw/mhtdc[42][7].png"); - tree->Draw("mhtdc[42][8]"); - c1->Print("../figure/raw/mhtdc[42][8].png"); - tree->Draw("mhtdc[42][9]"); - c1->Print("../figure/raw/mhtdc[42][9].png"); - tree->Draw("mhtdc[42][10]"); - c1->Print("../figure/raw/mhtdc[42][10].png"); - tree->Draw("mhtdc[42][11]"); - c1->Print("../figure/raw/mhtdc[42][11].png"); - tree->Draw("mhtdc[43][0]"); - c1->Print("../figure/raw/mhtdc[43][0].png"); - tree->Draw("mhtdc[43][1]"); - c1->Print("../figure/raw/mhtdc[43][1].png"); - tree->Draw("mhtdc[43][2]"); - c1->Print("../figure/raw/mhtdc[43][2].png"); - tree->Draw("mhtdc[43][3]"); - c1->Print("../figure/raw/mhtdc[43][3].png"); - tree->Draw("mhtdc[43][4]"); - c1->Print("../figure/raw/mhtdc[43][4].png"); - tree->Draw("mhtdc[43][5]"); - c1->Print("../figure/raw/mhtdc[43][5].png"); - tree->Draw("mhtdc[43][6]"); - c1->Print("../figure/raw/mhtdc[43][6].png"); - tree->Draw("mhtdc[43][7]"); - c1->Print("../figure/raw/mhtdc[43][7].png"); - tree->Draw("mhtdc[43][8]"); - c1->Print("../figure/raw/mhtdc[43][8].png"); - tree->Draw("mhtdc[43][9]"); - c1->Print("../figure/raw/mhtdc[43][9].png"); - tree->Draw("mhtdc[43][10]"); - c1->Print("../figure/raw/mhtdc[43][10].png"); - tree->Draw("mhtdc[43][11]"); - c1->Print("../figure/raw/mhtdc[43][11].png"); - tree->Draw("mhtdc[44][0]"); - c1->Print("../figure/raw/mhtdc[44][0].png"); - tree->Draw("mhtdc[44][1]"); - c1->Print("../figure/raw/mhtdc[44][1].png"); - tree->Draw("mhtdc[44][2]"); - c1->Print("../figure/raw/mhtdc[44][2].png"); - tree->Draw("mhtdc[44][3]"); - c1->Print("../figure/raw/mhtdc[44][3].png"); - tree->Draw("mhtdc[44][4]"); - c1->Print("../figure/raw/mhtdc[44][4].png"); - tree->Draw("mhtdc[44][5]"); - c1->Print("../figure/raw/mhtdc[44][5].png"); - tree->Draw("mhtdc[44][6]"); - c1->Print("../figure/raw/mhtdc[44][6].png"); - tree->Draw("mhtdc[44][7]"); - c1->Print("../figure/raw/mhtdc[44][7].png"); - tree->Draw("mhtdc[44][8]"); - c1->Print("../figure/raw/mhtdc[44][8].png"); - tree->Draw("mhtdc[44][9]"); - c1->Print("../figure/raw/mhtdc[44][9].png"); - tree->Draw("mhtdc[44][10]"); - c1->Print("../figure/raw/mhtdc[44][10].png"); - tree->Draw("mhtdc[44][11]"); - c1->Print("../figure/raw/mhtdc[44][11].png"); - tree->Draw("mhtdc[45][0]"); - c1->Print("../figure/raw/mhtdc[45][0].png"); - tree->Draw("mhtdc[45][1]"); - c1->Print("../figure/raw/mhtdc[45][1].png"); - tree->Draw("mhtdc[45][2]"); - c1->Print("../figure/raw/mhtdc[45][2].png"); - tree->Draw("mhtdc[45][3]"); - c1->Print("../figure/raw/mhtdc[45][3].png"); - tree->Draw("mhtdc[45][4]"); - c1->Print("../figure/raw/mhtdc[45][4].png"); - tree->Draw("mhtdc[45][5]"); - c1->Print("../figure/raw/mhtdc[45][5].png"); - tree->Draw("mhtdc[45][6]"); - c1->Print("../figure/raw/mhtdc[45][6].png"); - tree->Draw("mhtdc[45][7]"); - c1->Print("../figure/raw/mhtdc[45][7].png"); - tree->Draw("mhtdc[45][8]"); - c1->Print("../figure/raw/mhtdc[45][8].png"); - tree->Draw("mhtdc[45][9]"); - c1->Print("../figure/raw/mhtdc[45][9].png"); - tree->Draw("mhtdc[45][10]"); - c1->Print("../figure/raw/mhtdc[45][10].png"); - tree->Draw("mhtdc[45][11]"); - c1->Print("../figure/raw/mhtdc[45][11].png"); - tree->Draw("mhtdc[46][0]"); - c1->Print("../figure/raw/mhtdc[46][0].png"); - tree->Draw("mhtdc[46][1]"); - c1->Print("../figure/raw/mhtdc[46][1].png"); - tree->Draw("mhtdc[46][2]"); - c1->Print("../figure/raw/mhtdc[46][2].png"); - tree->Draw("mhtdc[46][3]"); - c1->Print("../figure/raw/mhtdc[46][3].png"); - tree->Draw("mhtdc[46][4]"); - c1->Print("../figure/raw/mhtdc[46][4].png"); - tree->Draw("mhtdc[46][5]"); - c1->Print("../figure/raw/mhtdc[46][5].png"); - tree->Draw("mhtdc[46][6]"); - c1->Print("../figure/raw/mhtdc[46][6].png"); - tree->Draw("mhtdc[46][7]"); - c1->Print("../figure/raw/mhtdc[46][7].png"); - tree->Draw("mhtdc[46][8]"); - c1->Print("../figure/raw/mhtdc[46][8].png"); - tree->Draw("mhtdc[46][9]"); - c1->Print("../figure/raw/mhtdc[46][9].png"); - tree->Draw("mhtdc[46][10]"); - c1->Print("../figure/raw/mhtdc[46][10].png"); - tree->Draw("mhtdc[46][11]"); - c1->Print("../figure/raw/mhtdc[46][11].png"); - tree->Draw("mhtdc[47][0]"); - c1->Print("../figure/raw/mhtdc[47][0].png"); - tree->Draw("mhtdc[47][1]"); - c1->Print("../figure/raw/mhtdc[47][1].png"); - tree->Draw("mhtdc[47][2]"); - c1->Print("../figure/raw/mhtdc[47][2].png"); - tree->Draw("mhtdc[47][3]"); - c1->Print("../figure/raw/mhtdc[47][3].png"); - tree->Draw("mhtdc[47][4]"); - c1->Print("../figure/raw/mhtdc[47][4].png"); - tree->Draw("mhtdc[47][5]"); - c1->Print("../figure/raw/mhtdc[47][5].png"); - tree->Draw("mhtdc[47][6]"); - c1->Print("../figure/raw/mhtdc[47][6].png"); - tree->Draw("mhtdc[47][7]"); - c1->Print("../figure/raw/mhtdc[47][7].png"); - tree->Draw("mhtdc[47][8]"); - c1->Print("../figure/raw/mhtdc[47][8].png"); - tree->Draw("mhtdc[47][9]"); - c1->Print("../figure/raw/mhtdc[47][9].png"); - tree->Draw("mhtdc[47][10]"); - c1->Print("../figure/raw/mhtdc[47][10].png"); - tree->Draw("mhtdc[47][11]"); - c1->Print("../figure/raw/mhtdc[47][11].png"); - tree->Draw("mhtdc[48][0]"); - c1->Print("../figure/raw/mhtdc[48][0].png"); - tree->Draw("mhtdc[48][1]"); - c1->Print("../figure/raw/mhtdc[48][1].png"); - tree->Draw("mhtdc[48][2]"); - c1->Print("../figure/raw/mhtdc[48][2].png"); - tree->Draw("mhtdc[48][3]"); - c1->Print("../figure/raw/mhtdc[48][3].png"); - tree->Draw("mhtdc[48][4]"); - c1->Print("../figure/raw/mhtdc[48][4].png"); - tree->Draw("mhtdc[48][5]"); - c1->Print("../figure/raw/mhtdc[48][5].png"); - tree->Draw("mhtdc[48][6]"); - c1->Print("../figure/raw/mhtdc[48][6].png"); - tree->Draw("mhtdc[48][7]"); - c1->Print("../figure/raw/mhtdc[48][7].png"); - tree->Draw("mhtdc[48][8]"); - c1->Print("../figure/raw/mhtdc[48][8].png"); - tree->Draw("mhtdc[48][9]"); - c1->Print("../figure/raw/mhtdc[48][9].png"); - tree->Draw("mhtdc[48][10]"); - c1->Print("../figure/raw/mhtdc[48][10].png"); - tree->Draw("mhtdc[48][11]"); - c1->Print("../figure/raw/mhtdc[48][11].png"); - tree->Draw("mhtdc[49][0]"); - c1->Print("../figure/raw/mhtdc[49][0].png"); - tree->Draw("mhtdc[49][1]"); - c1->Print("../figure/raw/mhtdc[49][1].png"); - tree->Draw("mhtdc[49][2]"); - c1->Print("../figure/raw/mhtdc[49][2].png"); - tree->Draw("mhtdc[49][3]"); - c1->Print("../figure/raw/mhtdc[49][3].png"); - tree->Draw("mhtdc[49][4]"); - c1->Print("../figure/raw/mhtdc[49][4].png"); - tree->Draw("mhtdc[49][5]"); - c1->Print("../figure/raw/mhtdc[49][5].png"); - tree->Draw("mhtdc[49][6]"); - c1->Print("../figure/raw/mhtdc[49][6].png"); - tree->Draw("mhtdc[49][7]"); - c1->Print("../figure/raw/mhtdc[49][7].png"); - tree->Draw("mhtdc[49][8]"); - c1->Print("../figure/raw/mhtdc[49][8].png"); - tree->Draw("mhtdc[49][9]"); - c1->Print("../figure/raw/mhtdc[49][9].png"); - tree->Draw("mhtdc[49][10]"); - c1->Print("../figure/raw/mhtdc[49][10].png"); - tree->Draw("mhtdc[49][11]"); - c1->Print("../figure/raw/mhtdc[49][11].png"); - tree->Draw("mhtdc[50][0]"); - c1->Print("../figure/raw/mhtdc[50][0].png"); - tree->Draw("mhtdc[50][1]"); - c1->Print("../figure/raw/mhtdc[50][1].png"); - tree->Draw("mhtdc[50][2]"); - c1->Print("../figure/raw/mhtdc[50][2].png"); - tree->Draw("mhtdc[50][3]"); - c1->Print("../figure/raw/mhtdc[50][3].png"); - tree->Draw("mhtdc[50][4]"); - c1->Print("../figure/raw/mhtdc[50][4].png"); - tree->Draw("mhtdc[50][5]"); - c1->Print("../figure/raw/mhtdc[50][5].png"); - tree->Draw("mhtdc[50][6]"); - c1->Print("../figure/raw/mhtdc[50][6].png"); - tree->Draw("mhtdc[50][7]"); - c1->Print("../figure/raw/mhtdc[50][7].png"); - tree->Draw("mhtdc[50][8]"); - c1->Print("../figure/raw/mhtdc[50][8].png"); - tree->Draw("mhtdc[50][9]"); - c1->Print("../figure/raw/mhtdc[50][9].png"); - tree->Draw("mhtdc[50][10]"); - c1->Print("../figure/raw/mhtdc[50][10].png"); - tree->Draw("mhtdc[50][11]"); - c1->Print("../figure/raw/mhtdc[50][11].png"); - tree->Draw("mhtdc[51][0]"); - c1->Print("../figure/raw/mhtdc[51][0].png"); - tree->Draw("mhtdc[51][1]"); - c1->Print("../figure/raw/mhtdc[51][1].png"); - tree->Draw("mhtdc[51][2]"); - c1->Print("../figure/raw/mhtdc[51][2].png"); - tree->Draw("mhtdc[51][3]"); - c1->Print("../figure/raw/mhtdc[51][3].png"); - tree->Draw("mhtdc[51][4]"); - c1->Print("../figure/raw/mhtdc[51][4].png"); - tree->Draw("mhtdc[51][5]"); - c1->Print("../figure/raw/mhtdc[51][5].png"); - tree->Draw("mhtdc[51][6]"); - c1->Print("../figure/raw/mhtdc[51][6].png"); - tree->Draw("mhtdc[51][7]"); - c1->Print("../figure/raw/mhtdc[51][7].png"); - tree->Draw("mhtdc[51][8]"); - c1->Print("../figure/raw/mhtdc[51][8].png"); - tree->Draw("mhtdc[51][9]"); - c1->Print("../figure/raw/mhtdc[51][9].png"); - tree->Draw("mhtdc[51][10]"); - c1->Print("../figure/raw/mhtdc[51][10].png"); - tree->Draw("mhtdc[51][11]"); - c1->Print("../figure/raw/mhtdc[51][11].png"); - tree->Draw("mhtdc[52][0]"); - c1->Print("../figure/raw/mhtdc[52][0].png"); - tree->Draw("mhtdc[52][1]"); - c1->Print("../figure/raw/mhtdc[52][1].png"); - tree->Draw("mhtdc[52][2]"); - c1->Print("../figure/raw/mhtdc[52][2].png"); - tree->Draw("mhtdc[52][3]"); - c1->Print("../figure/raw/mhtdc[52][3].png"); - tree->Draw("mhtdc[52][4]"); - c1->Print("../figure/raw/mhtdc[52][4].png"); - tree->Draw("mhtdc[52][5]"); - c1->Print("../figure/raw/mhtdc[52][5].png"); - tree->Draw("mhtdc[52][6]"); - c1->Print("../figure/raw/mhtdc[52][6].png"); - tree->Draw("mhtdc[52][7]"); - c1->Print("../figure/raw/mhtdc[52][7].png"); - tree->Draw("mhtdc[52][8]"); - c1->Print("../figure/raw/mhtdc[52][8].png"); - tree->Draw("mhtdc[52][9]"); - c1->Print("../figure/raw/mhtdc[52][9].png"); - tree->Draw("mhtdc[52][10]"); - c1->Print("../figure/raw/mhtdc[52][10].png"); - tree->Draw("mhtdc[52][11]"); - c1->Print("../figure/raw/mhtdc[52][11].png"); - tree->Draw("mhtdc[53][0]"); - c1->Print("../figure/raw/mhtdc[53][0].png"); - tree->Draw("mhtdc[53][1]"); - c1->Print("../figure/raw/mhtdc[53][1].png"); - tree->Draw("mhtdc[53][2]"); - c1->Print("../figure/raw/mhtdc[53][2].png"); - tree->Draw("mhtdc[53][3]"); - c1->Print("../figure/raw/mhtdc[53][3].png"); - tree->Draw("mhtdc[53][4]"); - c1->Print("../figure/raw/mhtdc[53][4].png"); - tree->Draw("mhtdc[53][5]"); - c1->Print("../figure/raw/mhtdc[53][5].png"); - tree->Draw("mhtdc[53][6]"); - c1->Print("../figure/raw/mhtdc[53][6].png"); - tree->Draw("mhtdc[53][7]"); - c1->Print("../figure/raw/mhtdc[53][7].png"); - tree->Draw("mhtdc[53][8]"); - c1->Print("../figure/raw/mhtdc[53][8].png"); - tree->Draw("mhtdc[53][9]"); - c1->Print("../figure/raw/mhtdc[53][9].png"); - tree->Draw("mhtdc[53][10]"); - c1->Print("../figure/raw/mhtdc[53][10].png"); - tree->Draw("mhtdc[53][11]"); - c1->Print("../figure/raw/mhtdc[53][11].png"); - tree->Draw("mhtdc[54][0]"); - c1->Print("../figure/raw/mhtdc[54][0].png"); - tree->Draw("mhtdc[54][1]"); - c1->Print("../figure/raw/mhtdc[54][1].png"); - tree->Draw("mhtdc[54][2]"); - c1->Print("../figure/raw/mhtdc[54][2].png"); - tree->Draw("mhtdc[54][3]"); - c1->Print("../figure/raw/mhtdc[54][3].png"); - tree->Draw("mhtdc[54][4]"); - c1->Print("../figure/raw/mhtdc[54][4].png"); - tree->Draw("mhtdc[54][5]"); - c1->Print("../figure/raw/mhtdc[54][5].png"); - tree->Draw("mhtdc[54][6]"); - c1->Print("../figure/raw/mhtdc[54][6].png"); - tree->Draw("mhtdc[54][7]"); - c1->Print("../figure/raw/mhtdc[54][7].png"); - tree->Draw("mhtdc[54][8]"); - c1->Print("../figure/raw/mhtdc[54][8].png"); - tree->Draw("mhtdc[54][9]"); - c1->Print("../figure/raw/mhtdc[54][9].png"); - tree->Draw("mhtdc[54][10]"); - c1->Print("../figure/raw/mhtdc[54][10].png"); - tree->Draw("mhtdc[54][11]"); - c1->Print("../figure/raw/mhtdc[54][11].png"); - tree->Draw("mhtdc[55][0]"); - c1->Print("../figure/raw/mhtdc[55][0].png"); - tree->Draw("mhtdc[55][1]"); - c1->Print("../figure/raw/mhtdc[55][1].png"); - tree->Draw("mhtdc[55][2]"); - c1->Print("../figure/raw/mhtdc[55][2].png"); - tree->Draw("mhtdc[55][3]"); - c1->Print("../figure/raw/mhtdc[55][3].png"); - tree->Draw("mhtdc[55][4]"); - c1->Print("../figure/raw/mhtdc[55][4].png"); - tree->Draw("mhtdc[55][5]"); - c1->Print("../figure/raw/mhtdc[55][5].png"); - tree->Draw("mhtdc[55][6]"); - c1->Print("../figure/raw/mhtdc[55][6].png"); - tree->Draw("mhtdc[55][7]"); - c1->Print("../figure/raw/mhtdc[55][7].png"); - tree->Draw("mhtdc[55][8]"); - c1->Print("../figure/raw/mhtdc[55][8].png"); - tree->Draw("mhtdc[55][9]"); - c1->Print("../figure/raw/mhtdc[55][9].png"); - tree->Draw("mhtdc[55][10]"); - c1->Print("../figure/raw/mhtdc[55][10].png"); - tree->Draw("mhtdc[55][11]"); - c1->Print("../figure/raw/mhtdc[55][11].png"); - tree->Draw("mhtdc[56][0]"); - c1->Print("../figure/raw/mhtdc[56][0].png"); - tree->Draw("mhtdc[56][1]"); - c1->Print("../figure/raw/mhtdc[56][1].png"); - tree->Draw("mhtdc[56][2]"); - c1->Print("../figure/raw/mhtdc[56][2].png"); - tree->Draw("mhtdc[56][3]"); - c1->Print("../figure/raw/mhtdc[56][3].png"); - tree->Draw("mhtdc[56][4]"); - c1->Print("../figure/raw/mhtdc[56][4].png"); - tree->Draw("mhtdc[56][5]"); - c1->Print("../figure/raw/mhtdc[56][5].png"); - tree->Draw("mhtdc[56][6]"); - c1->Print("../figure/raw/mhtdc[56][6].png"); - tree->Draw("mhtdc[56][7]"); - c1->Print("../figure/raw/mhtdc[56][7].png"); - tree->Draw("mhtdc[56][8]"); - c1->Print("../figure/raw/mhtdc[56][8].png"); - tree->Draw("mhtdc[56][9]"); - c1->Print("../figure/raw/mhtdc[56][9].png"); - tree->Draw("mhtdc[56][10]"); - c1->Print("../figure/raw/mhtdc[56][10].png"); - tree->Draw("mhtdc[56][11]"); - c1->Print("../figure/raw/mhtdc[56][11].png"); - tree->Draw("mhtdc[57][0]"); - c1->Print("../figure/raw/mhtdc[57][0].png"); - tree->Draw("mhtdc[57][1]"); - c1->Print("../figure/raw/mhtdc[57][1].png"); - tree->Draw("mhtdc[57][2]"); - c1->Print("../figure/raw/mhtdc[57][2].png"); - tree->Draw("mhtdc[57][3]"); - c1->Print("../figure/raw/mhtdc[57][3].png"); - tree->Draw("mhtdc[57][4]"); - c1->Print("../figure/raw/mhtdc[57][4].png"); - tree->Draw("mhtdc[57][5]"); - c1->Print("../figure/raw/mhtdc[57][5].png"); - tree->Draw("mhtdc[57][6]"); - c1->Print("../figure/raw/mhtdc[57][6].png"); - tree->Draw("mhtdc[57][7]"); - c1->Print("../figure/raw/mhtdc[57][7].png"); - tree->Draw("mhtdc[57][8]"); - c1->Print("../figure/raw/mhtdc[57][8].png"); - tree->Draw("mhtdc[57][9]"); - c1->Print("../figure/raw/mhtdc[57][9].png"); - tree->Draw("mhtdc[57][10]"); - c1->Print("../figure/raw/mhtdc[57][10].png"); - tree->Draw("mhtdc[57][11]"); - c1->Print("../figure/raw/mhtdc[57][11].png"); - tree->Draw("mhtdc[58][0]"); - c1->Print("../figure/raw/mhtdc[58][0].png"); - tree->Draw("mhtdc[58][1]"); - c1->Print("../figure/raw/mhtdc[58][1].png"); - tree->Draw("mhtdc[58][2]"); - c1->Print("../figure/raw/mhtdc[58][2].png"); - tree->Draw("mhtdc[58][3]"); - c1->Print("../figure/raw/mhtdc[58][3].png"); - tree->Draw("mhtdc[58][4]"); - c1->Print("../figure/raw/mhtdc[58][4].png"); - tree->Draw("mhtdc[58][5]"); - c1->Print("../figure/raw/mhtdc[58][5].png"); - tree->Draw("mhtdc[58][6]"); - c1->Print("../figure/raw/mhtdc[58][6].png"); - tree->Draw("mhtdc[58][7]"); - c1->Print("../figure/raw/mhtdc[58][7].png"); - tree->Draw("mhtdc[58][8]"); - c1->Print("../figure/raw/mhtdc[58][8].png"); - tree->Draw("mhtdc[58][9]"); - c1->Print("../figure/raw/mhtdc[58][9].png"); - tree->Draw("mhtdc[58][10]"); - c1->Print("../figure/raw/mhtdc[58][10].png"); - tree->Draw("mhtdc[58][11]"); - c1->Print("../figure/raw/mhtdc[58][11].png"); - tree->Draw("mhtdc[59][0]"); - c1->Print("../figure/raw/mhtdc[59][0].png"); - tree->Draw("mhtdc[59][1]"); - c1->Print("../figure/raw/mhtdc[59][1].png"); - tree->Draw("mhtdc[59][2]"); - c1->Print("../figure/raw/mhtdc[59][2].png"); - tree->Draw("mhtdc[59][3]"); - c1->Print("../figure/raw/mhtdc[59][3].png"); - tree->Draw("mhtdc[59][4]"); - c1->Print("../figure/raw/mhtdc[59][4].png"); - tree->Draw("mhtdc[59][5]"); - c1->Print("../figure/raw/mhtdc[59][5].png"); - tree->Draw("mhtdc[59][6]"); - c1->Print("../figure/raw/mhtdc[59][6].png"); - tree->Draw("mhtdc[59][7]"); - c1->Print("../figure/raw/mhtdc[59][7].png"); - tree->Draw("mhtdc[59][8]"); - c1->Print("../figure/raw/mhtdc[59][8].png"); - tree->Draw("mhtdc[59][9]"); - c1->Print("../figure/raw/mhtdc[59][9].png"); - tree->Draw("mhtdc[59][10]"); - c1->Print("../figure/raw/mhtdc[59][10].png"); - tree->Draw("mhtdc[59][11]"); - c1->Print("../figure/raw/mhtdc[59][11].png"); - tree->Draw("mhtdc[60][0]"); - c1->Print("../figure/raw/mhtdc[60][0].png"); - tree->Draw("mhtdc[60][1]"); - c1->Print("../figure/raw/mhtdc[60][1].png"); - tree->Draw("mhtdc[60][2]"); - c1->Print("../figure/raw/mhtdc[60][2].png"); - tree->Draw("mhtdc[60][3]"); - c1->Print("../figure/raw/mhtdc[60][3].png"); - tree->Draw("mhtdc[60][4]"); - c1->Print("../figure/raw/mhtdc[60][4].png"); - tree->Draw("mhtdc[60][5]"); - c1->Print("../figure/raw/mhtdc[60][5].png"); - tree->Draw("mhtdc[60][6]"); - c1->Print("../figure/raw/mhtdc[60][6].png"); - tree->Draw("mhtdc[60][7]"); - c1->Print("../figure/raw/mhtdc[60][7].png"); - tree->Draw("mhtdc[60][8]"); - c1->Print("../figure/raw/mhtdc[60][8].png"); - tree->Draw("mhtdc[60][9]"); - c1->Print("../figure/raw/mhtdc[60][9].png"); - tree->Draw("mhtdc[60][10]"); - c1->Print("../figure/raw/mhtdc[60][10].png"); - tree->Draw("mhtdc[60][11]"); - c1->Print("../figure/raw/mhtdc[60][11].png"); - tree->Draw("mhtdc[61][0]"); - c1->Print("../figure/raw/mhtdc[61][0].png"); - tree->Draw("mhtdc[61][1]"); - c1->Print("../figure/raw/mhtdc[61][1].png"); - tree->Draw("mhtdc[61][2]"); - c1->Print("../figure/raw/mhtdc[61][2].png"); - tree->Draw("mhtdc[61][3]"); - c1->Print("../figure/raw/mhtdc[61][3].png"); - tree->Draw("mhtdc[61][4]"); - c1->Print("../figure/raw/mhtdc[61][4].png"); - tree->Draw("mhtdc[61][5]"); - c1->Print("../figure/raw/mhtdc[61][5].png"); - tree->Draw("mhtdc[61][6]"); - c1->Print("../figure/raw/mhtdc[61][6].png"); - tree->Draw("mhtdc[61][7]"); - c1->Print("../figure/raw/mhtdc[61][7].png"); - tree->Draw("mhtdc[61][8]"); - c1->Print("../figure/raw/mhtdc[61][8].png"); - tree->Draw("mhtdc[61][9]"); - c1->Print("../figure/raw/mhtdc[61][9].png"); - tree->Draw("mhtdc[61][10]"); - c1->Print("../figure/raw/mhtdc[61][10].png"); - tree->Draw("mhtdc[61][11]"); - c1->Print("../figure/raw/mhtdc[61][11].png"); - tree->Draw("mhtdc[62][0]"); - c1->Print("../figure/raw/mhtdc[62][0].png"); - tree->Draw("mhtdc[62][1]"); - c1->Print("../figure/raw/mhtdc[62][1].png"); - tree->Draw("mhtdc[62][2]"); - c1->Print("../figure/raw/mhtdc[62][2].png"); - tree->Draw("mhtdc[62][3]"); - c1->Print("../figure/raw/mhtdc[62][3].png"); - tree->Draw("mhtdc[62][4]"); - c1->Print("../figure/raw/mhtdc[62][4].png"); - tree->Draw("mhtdc[62][5]"); - c1->Print("../figure/raw/mhtdc[62][5].png"); - tree->Draw("mhtdc[62][6]"); - c1->Print("../figure/raw/mhtdc[62][6].png"); - tree->Draw("mhtdc[62][7]"); - c1->Print("../figure/raw/mhtdc[62][7].png"); - tree->Draw("mhtdc[62][8]"); - c1->Print("../figure/raw/mhtdc[62][8].png"); - tree->Draw("mhtdc[62][9]"); - c1->Print("../figure/raw/mhtdc[62][9].png"); - tree->Draw("mhtdc[62][10]"); - c1->Print("../figure/raw/mhtdc[62][10].png"); - tree->Draw("mhtdc[62][11]"); - c1->Print("../figure/raw/mhtdc[62][11].png"); - tree->Draw("mhtdc[63][0]"); - c1->Print("../figure/raw/mhtdc[63][0].png"); - tree->Draw("mhtdc[63][1]"); - c1->Print("../figure/raw/mhtdc[63][1].png"); - tree->Draw("mhtdc[63][2]"); - c1->Print("../figure/raw/mhtdc[63][2].png"); - tree->Draw("mhtdc[63][3]"); - c1->Print("../figure/raw/mhtdc[63][3].png"); - tree->Draw("mhtdc[63][4]"); - c1->Print("../figure/raw/mhtdc[63][4].png"); - tree->Draw("mhtdc[63][5]"); - c1->Print("../figure/raw/mhtdc[63][5].png"); - tree->Draw("mhtdc[63][6]"); - c1->Print("../figure/raw/mhtdc[63][6].png"); - tree->Draw("mhtdc[63][7]"); - c1->Print("../figure/raw/mhtdc[63][7].png"); - tree->Draw("mhtdc[63][8]"); - c1->Print("../figure/raw/mhtdc[63][8].png"); - tree->Draw("mhtdc[63][9]"); - c1->Print("../figure/raw/mhtdc[63][9].png"); - tree->Draw("mhtdc[63][10]"); - c1->Print("../figure/raw/mhtdc[63][10].png"); - tree->Draw("mhtdc[63][11]"); - c1->Print("../figure/raw/mhtdc[63][11].png"); - tree->Draw("mhtdc_nhit[0]"); - c1->Print("../figure/raw/mhtdc_nhit[0].png"); - tree->Draw("mhtdc_nhit[1]"); - c1->Print("../figure/raw/mhtdc_nhit[1].png"); - tree->Draw("mhtdc_nhit[2]"); - c1->Print("../figure/raw/mhtdc_nhit[2].png"); - tree->Draw("mhtdc_nhit[3]"); - c1->Print("../figure/raw/mhtdc_nhit[3].png"); - tree->Draw("mhtdc_nhit[4]"); - c1->Print("../figure/raw/mhtdc_nhit[4].png"); - tree->Draw("mhtdc_nhit[5]"); - c1->Print("../figure/raw/mhtdc_nhit[5].png"); - tree->Draw("mhtdc_nhit[6]"); - c1->Print("../figure/raw/mhtdc_nhit[6].png"); - tree->Draw("mhtdc_nhit[7]"); - c1->Print("../figure/raw/mhtdc_nhit[7].png"); - tree->Draw("mhtdc_nhit[8]"); - c1->Print("../figure/raw/mhtdc_nhit[8].png"); - tree->Draw("mhtdc_nhit[9]"); - c1->Print("../figure/raw/mhtdc_nhit[9].png"); - tree->Draw("mhtdc_nhit[10]"); - c1->Print("../figure/raw/mhtdc_nhit[10].png"); - tree->Draw("mhtdc_nhit[11]"); - c1->Print("../figure/raw/mhtdc_nhit[11].png"); - tree->Draw("mhtdc_nhit[12]"); - c1->Print("../figure/raw/mhtdc_nhit[12].png"); - tree->Draw("mhtdc_nhit[13]"); - c1->Print("../figure/raw/mhtdc_nhit[13].png"); - tree->Draw("mhtdc_nhit[14]"); - c1->Print("../figure/raw/mhtdc_nhit[14].png"); - tree->Draw("mhtdc_nhit[15]"); - c1->Print("../figure/raw/mhtdc_nhit[15].png"); - tree->Draw("mhtdc_nhit[16]"); - c1->Print("../figure/raw/mhtdc_nhit[16].png"); - tree->Draw("mhtdc_nhit[17]"); - c1->Print("../figure/raw/mhtdc_nhit[17].png"); - tree->Draw("mhtdc_nhit[18]"); - c1->Print("../figure/raw/mhtdc_nhit[18].png"); - tree->Draw("mhtdc_nhit[19]"); - c1->Print("../figure/raw/mhtdc_nhit[19].png"); - tree->Draw("mhtdc_nhit[20]"); - c1->Print("../figure/raw/mhtdc_nhit[20].png"); - tree->Draw("mhtdc_nhit[21]"); - c1->Print("../figure/raw/mhtdc_nhit[21].png"); - tree->Draw("mhtdc_nhit[22]"); - c1->Print("../figure/raw/mhtdc_nhit[22].png"); - tree->Draw("mhtdc_nhit[23]"); - c1->Print("../figure/raw/mhtdc_nhit[23].png"); - tree->Draw("mhtdc_nhit[24]"); - c1->Print("../figure/raw/mhtdc_nhit[24].png"); - tree->Draw("mhtdc_nhit[25]"); - c1->Print("../figure/raw/mhtdc_nhit[25].png"); - tree->Draw("mhtdc_nhit[26]"); - c1->Print("../figure/raw/mhtdc_nhit[26].png"); - tree->Draw("mhtdc_nhit[27]"); - c1->Print("../figure/raw/mhtdc_nhit[27].png"); - tree->Draw("mhtdc_nhit[28]"); - c1->Print("../figure/raw/mhtdc_nhit[28].png"); - tree->Draw("mhtdc_nhit[29]"); - c1->Print("../figure/raw/mhtdc_nhit[29].png"); - tree->Draw("mhtdc_nhit[30]"); - c1->Print("../figure/raw/mhtdc_nhit[30].png"); - tree->Draw("mhtdc_nhit[31]"); - c1->Print("../figure/raw/mhtdc_nhit[31].png"); - tree->Draw("mhtdc_nhit[32]"); - c1->Print("../figure/raw/mhtdc_nhit[32].png"); - tree->Draw("mhtdc_nhit[33]"); - c1->Print("../figure/raw/mhtdc_nhit[33].png"); - tree->Draw("mhtdc_nhit[34]"); - c1->Print("../figure/raw/mhtdc_nhit[34].png"); - tree->Draw("mhtdc_nhit[35]"); - c1->Print("../figure/raw/mhtdc_nhit[35].png"); - tree->Draw("mhtdc_nhit[36]"); - c1->Print("../figure/raw/mhtdc_nhit[36].png"); - tree->Draw("mhtdc_nhit[37]"); - c1->Print("../figure/raw/mhtdc_nhit[37].png"); - tree->Draw("mhtdc_nhit[38]"); - c1->Print("../figure/raw/mhtdc_nhit[38].png"); - tree->Draw("mhtdc_nhit[39]"); - c1->Print("../figure/raw/mhtdc_nhit[39].png"); - tree->Draw("mhtdc_nhit[40]"); - c1->Print("../figure/raw/mhtdc_nhit[40].png"); - tree->Draw("mhtdc_nhit[41]"); - c1->Print("../figure/raw/mhtdc_nhit[41].png"); - tree->Draw("mhtdc_nhit[42]"); - c1->Print("../figure/raw/mhtdc_nhit[42].png"); - tree->Draw("mhtdc_nhit[43]"); - c1->Print("../figure/raw/mhtdc_nhit[43].png"); - tree->Draw("mhtdc_nhit[44]"); - c1->Print("../figure/raw/mhtdc_nhit[44].png"); - tree->Draw("mhtdc_nhit[45]"); - c1->Print("../figure/raw/mhtdc_nhit[45].png"); - tree->Draw("mhtdc_nhit[46]"); - c1->Print("../figure/raw/mhtdc_nhit[46].png"); - tree->Draw("mhtdc_nhit[47]"); - c1->Print("../figure/raw/mhtdc_nhit[47].png"); - tree->Draw("mhtdc_nhit[48]"); - c1->Print("../figure/raw/mhtdc_nhit[48].png"); - tree->Draw("mhtdc_nhit[49]"); - c1->Print("../figure/raw/mhtdc_nhit[49].png"); - tree->Draw("mhtdc_nhit[50]"); - c1->Print("../figure/raw/mhtdc_nhit[50].png"); - tree->Draw("mhtdc_nhit[51]"); - c1->Print("../figure/raw/mhtdc_nhit[51].png"); - tree->Draw("mhtdc_nhit[52]"); - c1->Print("../figure/raw/mhtdc_nhit[52].png"); - tree->Draw("mhtdc_nhit[53]"); - c1->Print("../figure/raw/mhtdc_nhit[53].png"); - tree->Draw("mhtdc_nhit[54]"); - c1->Print("../figure/raw/mhtdc_nhit[54].png"); - tree->Draw("mhtdc_nhit[55]"); - c1->Print("../figure/raw/mhtdc_nhit[55].png"); - tree->Draw("mhtdc_nhit[56]"); - c1->Print("../figure/raw/mhtdc_nhit[56].png"); - tree->Draw("mhtdc_nhit[57]"); - c1->Print("../figure/raw/mhtdc_nhit[57].png"); - tree->Draw("mhtdc_nhit[58]"); - c1->Print("../figure/raw/mhtdc_nhit[58].png"); - tree->Draw("mhtdc_nhit[59]"); - c1->Print("../figure/raw/mhtdc_nhit[59].png"); - tree->Draw("mhtdc_nhit[60]"); - c1->Print("../figure/raw/mhtdc_nhit[60].png"); - tree->Draw("mhtdc_nhit[61]"); - c1->Print("../figure/raw/mhtdc_nhit[61].png"); - tree->Draw("mhtdc_nhit[62]"); - c1->Print("../figure/raw/mhtdc_nhit[62].png"); - tree->Draw("mhtdc_nhit[63]"); - c1->Print("../figure/raw/mhtdc_nhit[63].png"); + for(Int_t i=0; i<64; i++){ + for(Int_t j=0; j<12; j++){ + TString branch, file; + branch.Form("mhtdc_%dch[%d]", i, j); + file.Form("../figure/raw/mhtdc_%dch[%d].png", i, j); + tree->Draw(branch.Data()); + c1->Print(file.Data()); + } + } } diff --git a/macro/check_raw_tree2.C b/macro/check_raw_tree2.C deleted file mode 100644 index 67ba831..0000000 --- a/macro/check_raw_tree2.C +++ /dev/null @@ -1,402 +0,0 @@ -//this macro create all histograms and save as png file -//(for check the macro is correct) -//CAUTION: many file will be created - -{ - gStyle->SetOptLogy(1); - - TCanvas *c1 = new TCanvas("c1", "c1"); - tree->Draw("adc1[0]"); - c1->Print("../figure/raw/adc1[0].png"); - tree->Draw("adc1[1]"); - c1->Print("../figure/raw/adc1[1].png"); - tree->Draw("adc1[2]"); - c1->Print("../figure/raw/adc1[2].png"); - tree->Draw("adc1[3]"); - c1->Print("../figure/raw/adc1[3].png"); - tree->Draw("adc1[4]"); - c1->Print("../figure/raw/adc1[4].png"); - tree->Draw("adc1[5]"); - c1->Print("../figure/raw/adc1[5].png"); - tree->Draw("adc1[6]"); - c1->Print("../figure/raw/adc1[6].png"); - tree->Draw("adc1[7]"); - c1->Print("../figure/raw/adc1[7].png"); - tree->Draw("adc1[8]"); - c1->Print("../figure/raw/adc1[8].png"); - tree->Draw("adc1[9]"); - c1->Print("../figure/raw/adc1[9].png"); - tree->Draw("adc1[10]"); - c1->Print("../figure/raw/adc1[10].png"); - tree->Draw("adc1[11]"); - c1->Print("../figure/raw/adc1[11].png"); - tree->Draw("adc1[12]"); - c1->Print("../figure/raw/adc1[12].png"); - tree->Draw("adc1[13]"); - c1->Print("../figure/raw/adc1[13].png"); - tree->Draw("adc1[14]"); - c1->Print("../figure/raw/adc1[14].png"); - tree->Draw("adc1[15]"); - c1->Print("../figure/raw/adc1[15].png"); - tree->Draw("adc1[16]"); - c1->Print("../figure/raw/adc1[16].png"); - tree->Draw("adc1[17]"); - c1->Print("../figure/raw/adc1[17].png"); - tree->Draw("adc1[18]"); - c1->Print("../figure/raw/adc1[18].png"); - tree->Draw("adc1[19]"); - c1->Print("../figure/raw/adc1[19].png"); - tree->Draw("adc1[20]"); - c1->Print("../figure/raw/adc1[20].png"); - tree->Draw("adc1[21]"); - c1->Print("../figure/raw/adc1[21].png"); - tree->Draw("adc1[22]"); - c1->Print("../figure/raw/adc1[22].png"); - tree->Draw("adc1[23]"); - c1->Print("../figure/raw/adc1[23].png"); - tree->Draw("adc1[24]"); - c1->Print("../figure/raw/adc1[24].png"); - tree->Draw("adc1[25]"); - c1->Print("../figure/raw/adc1[25].png"); - tree->Draw("adc1[26]"); - c1->Print("../figure/raw/adc1[26].png"); - tree->Draw("adc1[27]"); - c1->Print("../figure/raw/adc1[27].png"); - tree->Draw("adc1[28]"); - c1->Print("../figure/raw/adc1[28].png"); - tree->Draw("adc1[29]"); - c1->Print("../figure/raw/adc1[29].png"); - tree->Draw("adc1[30]"); - c1->Print("../figure/raw/adc1[30].png"); - tree->Draw("adc1[31]"); - c1->Print("../figure/raw/adc1[31].png"); - tree->Draw("adc2[0]"); - c1->Print("../figure/raw/adc2[0].png"); - tree->Draw("adc2[1]"); - c1->Print("../figure/raw/adc2[1].png"); - tree->Draw("adc2[2]"); - c1->Print("../figure/raw/adc2[2].png"); - tree->Draw("adc2[3]"); - c1->Print("../figure/raw/adc2[3].png"); - tree->Draw("adc2[4]"); - c1->Print("../figure/raw/adc2[4].png"); - tree->Draw("adc2[5]"); - c1->Print("../figure/raw/adc2[5].png"); - tree->Draw("adc2[6]"); - c1->Print("../figure/raw/adc2[6].png"); - tree->Draw("adc2[7]"); - c1->Print("../figure/raw/adc2[7].png"); - tree->Draw("adc2[8]"); - c1->Print("../figure/raw/adc2[8].png"); - tree->Draw("adc2[9]"); - c1->Print("../figure/raw/adc2[9].png"); - tree->Draw("adc2[10]"); - c1->Print("../figure/raw/adc2[10].png"); - tree->Draw("adc2[11]"); - c1->Print("../figure/raw/adc2[11].png"); - tree->Draw("adc2[12]"); - c1->Print("../figure/raw/adc2[12].png"); - tree->Draw("adc2[13]"); - c1->Print("../figure/raw/adc2[13].png"); - tree->Draw("adc2[14]"); - c1->Print("../figure/raw/adc2[14].png"); - tree->Draw("adc2[15]"); - c1->Print("../figure/raw/adc2[15].png"); - tree->Draw("adc2[16]"); - c1->Print("../figure/raw/adc2[16].png"); - tree->Draw("adc2[17]"); - c1->Print("../figure/raw/adc2[17].png"); - tree->Draw("adc2[18]"); - c1->Print("../figure/raw/adc2[18].png"); - tree->Draw("adc2[19]"); - c1->Print("../figure/raw/adc2[19].png"); - tree->Draw("adc2[20]"); - c1->Print("../figure/raw/adc2[20].png"); - tree->Draw("adc2[21]"); - c1->Print("../figure/raw/adc2[21].png"); - tree->Draw("adc2[22]"); - c1->Print("../figure/raw/adc2[22].png"); - tree->Draw("adc2[23]"); - c1->Print("../figure/raw/adc2[23].png"); - tree->Draw("adc2[24]"); - c1->Print("../figure/raw/adc2[24].png"); - tree->Draw("adc2[25]"); - c1->Print("../figure/raw/adc2[25].png"); - tree->Draw("adc2[26]"); - c1->Print("../figure/raw/adc2[26].png"); - tree->Draw("adc2[27]"); - c1->Print("../figure/raw/adc2[27].png"); - tree->Draw("adc2[28]"); - c1->Print("../figure/raw/adc2[28].png"); - tree->Draw("adc2[29]"); - c1->Print("../figure/raw/adc2[29].png"); - tree->Draw("adc2[30]"); - c1->Print("../figure/raw/adc2[30].png"); - tree->Draw("adc2[31]"); - c1->Print("../figure/raw/adc2[31].png"); - tree->Draw("madc1[0]"); - c1->Print("../figure/raw/madc1[0].png"); - tree->Draw("madc1[1]"); - c1->Print("../figure/raw/madc1[1].png"); - tree->Draw("madc1[2]"); - c1->Print("../figure/raw/madc1[2].png"); - tree->Draw("madc1[3]"); - c1->Print("../figure/raw/madc1[3].png"); - tree->Draw("madc1[4]"); - c1->Print("../figure/raw/madc1[4].png"); - tree->Draw("madc1[5]"); - c1->Print("../figure/raw/madc1[5].png"); - tree->Draw("madc1[6]"); - c1->Print("../figure/raw/madc1[6].png"); - tree->Draw("madc1[7]"); - c1->Print("../figure/raw/madc1[7].png"); - tree->Draw("madc1[8]"); - c1->Print("../figure/raw/madc1[8].png"); - tree->Draw("madc1[9]"); - c1->Print("../figure/raw/madc1[9].png"); - tree->Draw("madc1[10]"); - c1->Print("../figure/raw/madc1[10].png"); - tree->Draw("madc1[11]"); - c1->Print("../figure/raw/madc1[11].png"); - tree->Draw("madc1[12]"); - c1->Print("../figure/raw/madc1[12].png"); - tree->Draw("madc1[13]"); - c1->Print("../figure/raw/madc1[13].png"); - tree->Draw("madc1[14]"); - c1->Print("../figure/raw/madc1[14].png"); - tree->Draw("madc1[15]"); - c1->Print("../figure/raw/madc1[15].png"); - tree->Draw("madc1[16]"); - c1->Print("../figure/raw/madc1[16].png"); - tree->Draw("madc1[17]"); - c1->Print("../figure/raw/madc1[17].png"); - tree->Draw("madc1[18]"); - c1->Print("../figure/raw/madc1[18].png"); - tree->Draw("madc1[19]"); - c1->Print("../figure/raw/madc1[19].png"); - tree->Draw("madc1[20]"); - c1->Print("../figure/raw/madc1[20].png"); - tree->Draw("madc1[21]"); - c1->Print("../figure/raw/madc1[21].png"); - tree->Draw("madc1[22]"); - c1->Print("../figure/raw/madc1[22].png"); - tree->Draw("madc1[23]"); - c1->Print("../figure/raw/madc1[23].png"); - tree->Draw("madc1[24]"); - c1->Print("../figure/raw/madc1[24].png"); - tree->Draw("madc1[25]"); - c1->Print("../figure/raw/madc1[25].png"); - tree->Draw("madc1[26]"); - c1->Print("../figure/raw/madc1[26].png"); - tree->Draw("madc1[27]"); - c1->Print("../figure/raw/madc1[27].png"); - tree->Draw("madc1[28]"); - c1->Print("../figure/raw/madc1[28].png"); - tree->Draw("madc1[29]"); - c1->Print("../figure/raw/madc1[29].png"); - tree->Draw("madc1[30]"); - c1->Print("../figure/raw/madc1[30].png"); - tree->Draw("madc1[31]"); - c1->Print("../figure/raw/madc1[31].png"); - tree->Draw("madc2[0]"); - c1->Print("../figure/raw/madc2[0].png"); - tree->Draw("madc2[1]"); - c1->Print("../figure/raw/madc2[1].png"); - tree->Draw("madc2[2]"); - c1->Print("../figure/raw/madc2[2].png"); - tree->Draw("madc2[3]"); - c1->Print("../figure/raw/madc2[3].png"); - tree->Draw("madc2[4]"); - c1->Print("../figure/raw/madc2[4].png"); - tree->Draw("madc2[5]"); - c1->Print("../figure/raw/madc2[5].png"); - tree->Draw("madc2[6]"); - c1->Print("../figure/raw/madc2[6].png"); - tree->Draw("madc2[7]"); - c1->Print("../figure/raw/madc2[7].png"); - tree->Draw("madc2[8]"); - c1->Print("../figure/raw/madc2[8].png"); - tree->Draw("madc2[9]"); - c1->Print("../figure/raw/madc2[9].png"); - tree->Draw("madc2[10]"); - c1->Print("../figure/raw/madc2[10].png"); - tree->Draw("madc2[11]"); - c1->Print("../figure/raw/madc2[11].png"); - tree->Draw("madc2[12]"); - c1->Print("../figure/raw/madc2[12].png"); - tree->Draw("madc2[13]"); - c1->Print("../figure/raw/madc2[13].png"); - tree->Draw("madc2[14]"); - c1->Print("../figure/raw/madc2[14].png"); - tree->Draw("madc2[15]"); - c1->Print("../figure/raw/madc2[15].png"); - tree->Draw("madc2[16]"); - c1->Print("../figure/raw/madc2[16].png"); - tree->Draw("madc2[17]"); - c1->Print("../figure/raw/madc2[17].png"); - tree->Draw("madc2[18]"); - c1->Print("../figure/raw/madc2[18].png"); - tree->Draw("madc2[19]"); - c1->Print("../figure/raw/madc2[19].png"); - tree->Draw("madc2[20]"); - c1->Print("../figure/raw/madc2[20].png"); - tree->Draw("madc2[21]"); - c1->Print("../figure/raw/madc2[21].png"); - tree->Draw("madc2[22]"); - c1->Print("../figure/raw/madc2[22].png"); - tree->Draw("madc2[23]"); - c1->Print("../figure/raw/madc2[23].png"); - tree->Draw("madc2[24]"); - c1->Print("../figure/raw/madc2[24].png"); - tree->Draw("madc2[25]"); - c1->Print("../figure/raw/madc2[25].png"); - tree->Draw("madc2[26]"); - c1->Print("../figure/raw/madc2[26].png"); - tree->Draw("madc2[27]"); - c1->Print("../figure/raw/madc2[27].png"); - tree->Draw("madc2[28]"); - c1->Print("../figure/raw/madc2[28].png"); - tree->Draw("madc2[29]"); - c1->Print("../figure/raw/madc2[29].png"); - tree->Draw("madc2[30]"); - c1->Print("../figure/raw/madc2[30].png"); - tree->Draw("madc2[31]"); - c1->Print("../figure/raw/madc2[31].png"); - tree->Draw("tdc1[0]"); - c1->Print("../figure/raw/tdc1[0].png"); - tree->Draw("tdc1[1]"); - c1->Print("../figure/raw/tdc1[1].png"); - tree->Draw("tdc1[2]"); - c1->Print("../figure/raw/tdc1[2].png"); - tree->Draw("tdc1[3]"); - c1->Print("../figure/raw/tdc1[3].png"); - tree->Draw("tdc1[4]"); - c1->Print("../figure/raw/tdc1[4].png"); - tree->Draw("tdc1[5]"); - c1->Print("../figure/raw/tdc1[5].png"); - tree->Draw("tdc1[6]"); - c1->Print("../figure/raw/tdc1[6].png"); - tree->Draw("tdc1[7]"); - c1->Print("../figure/raw/tdc1[7].png"); - tree->Draw("tdc1[8]"); - c1->Print("../figure/raw/tdc1[8].png"); - tree->Draw("tdc1[9]"); - c1->Print("../figure/raw/tdc1[9].png"); - tree->Draw("tdc1[10]"); - c1->Print("../figure/raw/tdc1[10].png"); - tree->Draw("tdc1[11]"); - c1->Print("../figure/raw/tdc1[11].png"); - tree->Draw("tdc1[12]"); - c1->Print("../figure/raw/tdc1[12].png"); - tree->Draw("tdc1[13]"); - c1->Print("../figure/raw/tdc1[13].png"); - tree->Draw("tdc1[14]"); - c1->Print("../figure/raw/tdc1[14].png"); - tree->Draw("tdc1[15]"); - c1->Print("../figure/raw/tdc1[15].png"); - tree->Draw("tdc1[16]"); - c1->Print("../figure/raw/tdc1[16].png"); - tree->Draw("tdc1[17]"); - c1->Print("../figure/raw/tdc1[17].png"); - tree->Draw("tdc1[18]"); - c1->Print("../figure/raw/tdc1[18].png"); - tree->Draw("tdc1[19]"); - c1->Print("../figure/raw/tdc1[19].png"); - tree->Draw("tdc1[20]"); - c1->Print("../figure/raw/tdc1[20].png"); - tree->Draw("tdc1[21]"); - c1->Print("../figure/raw/tdc1[21].png"); - tree->Draw("tdc1[22]"); - c1->Print("../figure/raw/tdc1[22].png"); - tree->Draw("tdc1[23]"); - c1->Print("../figure/raw/tdc1[23].png"); - tree->Draw("tdc1[24]"); - c1->Print("../figure/raw/tdc1[24].png"); - tree->Draw("tdc1[25]"); - c1->Print("../figure/raw/tdc1[25].png"); - tree->Draw("tdc1[26]"); - c1->Print("../figure/raw/tdc1[26].png"); - tree->Draw("tdc1[27]"); - c1->Print("../figure/raw/tdc1[27].png"); - tree->Draw("tdc1[28]"); - c1->Print("../figure/raw/tdc1[28].png"); - tree->Draw("tdc1[29]"); - c1->Print("../figure/raw/tdc1[29].png"); - tree->Draw("tdc1[30]"); - c1->Print("../figure/raw/tdc1[30].png"); - tree->Draw("tdc1[31]"); - c1->Print("../figure/raw/tdc1[31].png"); - tree->Draw("tdc2[0]"); - c1->Print("../figure/raw/tdc2[0].png"); - tree->Draw("tdc2[1]"); - c1->Print("../figure/raw/tdc2[1].png"); - tree->Draw("tdc2[2]"); - c1->Print("../figure/raw/tdc2[2].png"); - tree->Draw("tdc2[3]"); - c1->Print("../figure/raw/tdc2[3].png"); - tree->Draw("tdc2[4]"); - c1->Print("../figure/raw/tdc2[4].png"); - tree->Draw("tdc2[5]"); - c1->Print("../figure/raw/tdc2[5].png"); - tree->Draw("tdc2[6]"); - c1->Print("../figure/raw/tdc2[6].png"); - tree->Draw("tdc2[7]"); - c1->Print("../figure/raw/tdc2[7].png"); - tree->Draw("tdc2[8]"); - c1->Print("../figure/raw/tdc2[8].png"); - tree->Draw("tdc2[9]"); - c1->Print("../figure/raw/tdc2[9].png"); - tree->Draw("tdc2[10]"); - c1->Print("../figure/raw/tdc2[10].png"); - tree->Draw("tdc2[11]"); - c1->Print("../figure/raw/tdc2[11].png"); - tree->Draw("tdc2[12]"); - c1->Print("../figure/raw/tdc2[12].png"); - tree->Draw("tdc2[13]"); - c1->Print("../figure/raw/tdc2[13].png"); - tree->Draw("tdc2[14]"); - c1->Print("../figure/raw/tdc2[14].png"); - tree->Draw("tdc2[15]"); - c1->Print("../figure/raw/tdc2[15].png"); - tree->Draw("tdc2[16]"); - c1->Print("../figure/raw/tdc2[16].png"); - tree->Draw("tdc2[17]"); - c1->Print("../figure/raw/tdc2[17].png"); - tree->Draw("tdc2[18]"); - c1->Print("../figure/raw/tdc2[18].png"); - tree->Draw("tdc2[19]"); - c1->Print("../figure/raw/tdc2[19].png"); - tree->Draw("tdc2[20]"); - c1->Print("../figure/raw/tdc2[20].png"); - tree->Draw("tdc2[21]"); - c1->Print("../figure/raw/tdc2[21].png"); - tree->Draw("tdc2[22]"); - c1->Print("../figure/raw/tdc2[22].png"); - tree->Draw("tdc2[23]"); - c1->Print("../figure/raw/tdc2[23].png"); - tree->Draw("tdc2[24]"); - c1->Print("../figure/raw/tdc2[24].png"); - tree->Draw("tdc2[25]"); - c1->Print("../figure/raw/tdc2[25].png"); - tree->Draw("tdc2[26]"); - c1->Print("../figure/raw/tdc2[26].png"); - tree->Draw("tdc2[27]"); - c1->Print("../figure/raw/tdc2[27].png"); - tree->Draw("tdc2[28]"); - c1->Print("../figure/raw/tdc2[28].png"); - tree->Draw("tdc2[29]"); - c1->Print("../figure/raw/tdc2[29].png"); - tree->Draw("tdc2[30]"); - c1->Print("../figure/raw/tdc2[30].png"); - tree->Draw("tdc2[31]"); - c1->Print("../figure/raw/tdc2[31].png"); - for(Int_t i=0; i<64; i++){ - for(Int_t j=0; j<12; j++){ - TString branch, file; - branch.Form("mhtdc_%dch[%d]", i+1, j); - file.Form("../figure/raw/mhtdc_%dch[%d].png", i+1, j); - tree->Draw(branch.Data()); - c1->Print(file.Data()); - } - } -} diff --git a/macro/mpos.C b/macro/mpos.C new file mode 100644 index 0000000..7c3abf0 --- /dev/null +++ b/macro/mpos.C @@ -0,0 +1,200 @@ +#include +#include +#include +#include + +void Usage(){ + cout << "mpos calibration" << endl; + cout << "Usage:" << endl; + cout << "mpos(const Int_t np=0, TString run)" << endl; + cout << "\tnp: number of peaks. Default: 0 (this message).\n"; + cout << "\trun: Name of run file (DO NOT PUT '.root'). Default: nothing. Must be in double quotes!\n"; +} + +void mpos(const Int_t np=0, TString run=" ") +{ + if (np==0){ + Usage(); + return; + } + gStyle->SetOptLogy(1); + + cout << endl; + cout << "your input :" << endl; + cout << "number of peaks : " << np << endl; + cout << "run (filename) : " << run << ".root" <GetPathInfo(run_name.Data(), info)!=0) { + cout << "File '" << run_name.Data() << "' does not exist." << endl; + return; + } + + TFile *fin = new TFile(run_name.Data(), "read"); + TTree* tree=(TTree*)fin->Get("tree"); + TString output = "/home/okawa/software/ridf2root/calibration/si26a/mpos.prm"; + //TString output = "./test_mpos.prm"; + cout << "CREATED: --" << output << endl; + ofstream fout(output.Data(), ios::out); + //fout << setprecision(8); // good for column output data + + TH1D *h[12]; + //must be changed + Int_t ch_start[12] = {200, 200, 600, 600, 800, 800, 1200, 1200, 1350, 1350, 1550, 1550}; + Int_t ch_stop[12] = {800, 800, 1100, 1100, 1300, 1300, 1700, 1700, 1850, 1850, 2050, 2050}; + Int_t ch_interval[12] = {500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500}; + for(Int_t i=0; i<12; i++){ + TString tmp; + tmp.Form("h%d",i); + h[i] = new TH1D(tmp.Data(), ";ch;entries", ch_interval[i], ch_start[i], ch_stop[i]); + h[i]->GetXaxis()->SetRange(ch_start[i], ch_stop[i]); + h[i]->GetXaxis()->SetRangeUser(ch_start[i], ch_stop[i]); + h[i]->SetLineColor(9); + } + + Int_t nfound; + + TString name = "madc2"; + Int_t num[32]; + tree->SetBranchAddress(name.Data(), num); + Int_t nEntry = tree->GetEntries(); + for(Int_t iEntry=0; iEntryGetEntry(iEntry); + for(Int_t i=0; i<12; i++){ + if(i==4){ + h[i]->Fill(num[18]); + }else if(i==5){ + h[i]->Fill(num[19]); + }else{ + Int_t mod = i%2; + h[i]->Fill(num[2*(i-mod)+2+mod]); + } + } + } + + Double_t peaks[12][16]; + for(Int_t i=0; i<12; i++){ + for(Int_t j=0; j<16; j++){ + peaks[i][j] = 0.0; + } + } + + for(Int_t i=0; i<12; i++){ + cout << endl; + if(i%2 == 0){ + Double_t xpeaks[np]; + TSpectrum *s = new TSpectrum(np); + nfound = s->Search(h[i], 2, "", 0.001); + cout << "Found " << nfound << " candidate peaks to fit" << endl; + Double_t *xpeaksfound = s->GetPositionX(); + for(Int_t j=0; jSearch(h[i], 2, "", 0.001); + cout << "Found " << nfound << " candidate peaks to fit" << endl; + Double_t *xpeaksfound = s->GetPositionX(); + for(Int_t j=0; jSearch(h[i], 2, "", 0.001); + //cout << "Found " << nfound << " candidate peaks to fit" << endl; + //Double_t *xpeaksfound = s->GetPositionX(); + //for(Int_t j=0; jDivide(2, 3); + for(Int_t i=0; i<6; i++){ + c1->cd(i+1); + h[i]->Draw(); + } + + //c1->Print("./check.jpg"); + + TCanvas *c2 = new TCanvas("c2", "c2"); + c2->Divide(2, 3); + for(Int_t i=0; i<6; i++){ + c2->cd(i+1); + h[i+6]->Draw(); + } + + //fin->Close(); + fout.close(); + +} diff --git a/macro/test_mpos.prm b/macro/test_mpos.prm new file mode 100644 index 0000000..8bcdbd8 --- /dev/null +++ b/macro/test_mpos.prm @@ -0,0 +1,14 @@ +# created from mpos.C +# /home/okawa/work/crib/data/si26a/rootfiles/high0206.root +362.6, 375.8, 392.6, 408.2, 427.4, 441.8, 458.6, 475.4, 495.8, 510.2, 527, 542.6, 561.8, 577.4, 595.4, 612.2, ; MUX1-1-p0 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; MUX1-1-p1 +709.5, 726.5, 744.5, 762.5, 783.5, 800.5, 820.5, 839.5, 862.5, 878.5, 898.5, 916.5, 938.5, 955.5, 975.5, 995.5, ; MUX1-2-p0 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; MUX1-2-p1 +882.5, 895.5, 910.5, 924.5, 943.5, 956.5, 973.5, 988.5, 1007.5, 1021.5, 1037.5, 1052.5, 1070.5, 1084.5, 1102.5, 1117.5, ; MUX2-1-p0 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; MUX2-1-p1 +1303.5, 1319.5, 1338.5, 1356.5, 1378.5, 1395.5, 1415.5, 1434.5, 1457.5, 1474.5, 1493.5, 1512.5, 1534.5, 1552.5, 1573.5, 1592.5, ; MUX2-2-p0 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; MUX2-2-p1 +1440.5, 1453.5, 1468.5, 1483.5, 1503.5, 1517.5, 1534.5, 1550.5, 1572.5, 1585.5, 1602.5, 1618.5, 1638.5, 1653.5, 1671.5, 1688.5, ; MUX3-1-p0 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; MUX3-1-p1 +1640.5, 1653.5, 1668.5, 1683.5, 1702.5, 1716.5, 1733.5, 1749.5, 1771.5, 1785.5, 1800.5, 1818, 1835.5, 1850.5, 1868.5, 1886.5, ; MUX3-2-p0 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; MUX3-2-p1 diff --git a/src/TCordferBranchManager.cpp b/src/TCordferBranchManager.cpp index a7a6810..7f38d42 100644 --- a/src/TCordferBranchManager.cpp +++ b/src/TCordferBranchManager.cpp @@ -19,6 +19,7 @@ using namespace std; +#define SETTING_SI26A true void TCordferBranchManager::Readyaml(TString yamlfile){ FileStat_t info; @@ -112,7 +113,7 @@ void TCordferBranchManager::CreateRawBranch(){ for(Int_t j=0; jdetector_id == 4){ - continue; + if(cbranch[i]->adc == true){ + Int_t ssd_tmp = ssd_num; + for(Int_t j=0; jdetector_id == 4){ + if(ssd_tmp > 0){ + ssd_tmp--; + continue; + }else{ + cbranch[i]->geo = mbranch[j]->segment_id[0]; + cbranch[i]->ch = mbranch[j]->channel[0]; + ssd_num++; + break; + } + } + } + }else if(cbranch[i]->adc == false){ + Int_t ssd_t_tmp = ssd_t_num; + for(Int_t j=0; jdetector_id == 4){ + if(ssd_t_tmp > 0){ + ssd_t_tmp--; + continue; + }else{ + cbranch[i]->geo = mbranch[j]->segment_id[1]; + cbranch[i]->ch = mbranch[j]->channel[1]; + ssd_t_num++; + break; + } + } + } + } } - //else{ - // bool tdc_flag = false; - // if(cbranch_name.substr(0, 2) == "t_"){ - // cbranch_name.erase(0, 2); - // tdc_flag = true; - // } - // for(Int_t j=0; jGetBranchName().Data()); - // if(cbranch_name == mbranch_name){ - // if(tdc_flag){ - // cbranch[i]->geo = mbranch[j]->segment_id[1]; - // cbranch[i]->ch = mbranch[j]->channel[1]; - // }else{ - // cbranch[i]->geo = mbranch[j]->segment_id[0]; - // cbranch[i]->ch = mbranch[j]->channel[0]; - // } - // } - // } - //} //for mssd @@ -341,8 +355,9 @@ void TCordferBranchManager::CreateCalibMapping(){ mux_tmp--; continue; }else{ - //cout << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; + //cout << i << " " << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; for(Int_t k=0; k<4; k++){ + //cout << " " << mbranch[j]->segment_id[k] << " " << mbranch[j]->channel[k] << endl; cmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = i; muxmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = k + 1; } @@ -439,14 +454,44 @@ void TCordferBranchManager::GiveCalibValue(Int_t geo, Int_t ch, Int_t val){ return; } + //START user setting (si26a) + if(SETTING_SI26A){ + if(index == 163){ return; } //for MUX2-1 (broken) + } + //END + //calib_status // 0->not mux, 1->first mux signal, other -> "val" buffer Int_t calib_status = cbranch[index]->GetCalibStatus(val, mux_id); + //if(calib_status == 1){ cout << cbranch[index]->GetBranchName() << endl; } if(calib_status == 1){ return; } else if(calib_status == 0){ cbranch[index]->SetCalibValue(val); } else{ + + //START user setting (si26a) + if(SETTING_SI26A){ + if(index == 195){ //for MUX3-1 (chained with MUX2-1) + Int_t pos_val = cbranch[index]->UserGetPosValue(mux_id); + if(pos_val == -1){ + cout << "ERROR" << endl; + return; + } + Int_t add_ch = cbranch[index-36]->UserGetAddBranchIndex(pos_val, mux_id); //in case MUX2-1 + if(add_ch != -1){ add_ch -= 36; } + else if(add_ch == -1){ + Int_t add_ch2 = cbranch[index]->UserGetAddBranchIndex(pos_val, mux_id);//in case MUX3-1 + if(add_ch == -1){ return; } + else{ add_ch = add_ch2; } + } + cbranch[index + add_ch]->SetCalibValue(calib_status); + return; + } + } + //END + Int_t add_ch = cbranch[index]->GetAddBranchIndex(mux_id); if(add_ch == -1){ return; } + //cout << "\t" << cbranch[index]->GetBranchName() << " " << index << " " << add_ch << endl; cbranch[index + add_ch]->SetCalibValue(calib_status); } } diff --git a/src/TCordferCalibBranch.cpp b/src/TCordferCalibBranch.cpp index 4f4bb97..c56a98f 100644 --- a/src/TCordferCalibBranch.cpp +++ b/src/TCordferCalibBranch.cpp @@ -23,43 +23,52 @@ void TCordferCalibBranch::CopyCalibInfo(Int_t dim, vector param){ Int_t TCordferCalibBranch::GetCalibStatus(Int_t val, Int_t mux_id){ if(detector_id == 5){ if(adc == true){ + + //first hit to ene1 if(mux_id == 1 && mux_pos1 == false){ mux_status1 = true; val_tmp1 = val; return 1; } - else if(mux_id == 1 && mux_pos2 == true){ + //second hit (first: pos1, second: ene1) + else if(mux_id == 1 && mux_pos1 == true){ return val; } + //first hit to ene2 else if(mux_id == 2 && mux_pos2 == false){ mux_status2 = true; val_tmp2 = val; return 1; } + //second hit (first: pos2, second: ene2) else if(mux_id == 2 && mux_pos2 == true){ return val; } + //first hit to pos1 else if(mux_id == 3 && mux_status1 == false){ pval_tmp1 = val; mux_pos1 = true; return 1; } + //second hit (first: ene1, second: pos1) else if(mux_id == 3 && mux_status1 == true){ pval_tmp1 = val; return val_tmp1; } + //first hit to pos2 else if(mux_id == 4 && mux_status2 == false){ pval_tmp2 = val; mux_pos2 = true; return 1; } + //second hit (first: ene2, second: pos2) else if(mux_id == 4 && mux_status2 == true){ pval_tmp2 = val; return val_tmp2; @@ -75,6 +84,7 @@ Int_t TCordferCalibBranch::GetCalibStatus(Int_t val, Int_t mux_id){ Int_t TCordferCalibBranch::GetAddBranchIndex(Int_t mux_id){ Int_t add_ch = -1; + if(mux_id == 1 || mux_id == 3){ for(Int_t i=0; i<16; i++){ if(mpos1_prm[i] < pval_tmp1 && mpos1_prm[i+1] > pval_tmp1){ @@ -120,6 +130,8 @@ void TCordferCalibBranch::Clear(){ mux_pos2=false; val_tmp1=-99; val_tmp2=-99; + pval_tmp1=-99; + pval_tmp2=-99; if(adc == true){ cbra_val = -500.5; }else{ @@ -129,3 +141,34 @@ void TCordferCalibBranch::Clear(){ count_hit = 0; } } + + +Int_t TCordferCalibBranch::UserGetPosValue(Int_t mux_id){ + if(mux_id == 1 || mux_id == 3){ + return pval_tmp1; + }else if(mux_id == 2 || mux_id == 4){ + return pval_tmp2; + } + return -1; +} + +Int_t TCordferCalibBranch::UserGetAddBranchIndex(Int_t pos_val, Int_t mux_id){ + Int_t add_ch = -1; + + if(mux_id == 1 || mux_id == 3){ + for(Int_t i=0; i<16; i++){ + if(mpos1_prm[i] < pos_val && mpos1_prm[i+1] > pos_val){ + add_ch = i; + } + } + } + + else if(mux_id == 2 || mux_id == 4){ + for(Int_t i=0; i<16; i++){ + if(mpos2_prm[i] < pos_val && mpos2_prm[i+1] > pos_val){ + add_ch = i; + } + } + } + return add_ch; +} -- GitLab From 92f79a120c54ab3a84bda48485730fe30b699d46 Mon Sep 17 00:00:00 2001 From: Kodai Okawa Date: Tue, 22 Mar 2022 00:56:02 +0900 Subject: [PATCH 04/15] [add] calibration macro --- calibration/si26a/log/mssd_2_1_1ch_mssd.prm | 3 + macro/mssd_calibration.C | 93 +++++++++++++++++++++ macro/{ => test}/compare.C | 0 macro/{ => test}/mpos_2dim.C | 0 macro/{ => test}/pos_calb_check.C | 0 macro/{ => test}/raw_mpos_check.C | 0 macro/{ => test}/resolution_check.C | 0 macro/{ => test}/test_mpos.prm | 0 src/TCordferBranchManager.cpp | 7 +- 9 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 calibration/si26a/log/mssd_2_1_1ch_mssd.prm create mode 100644 macro/mssd_calibration.C rename macro/{ => test}/compare.C (100%) rename macro/{ => test}/mpos_2dim.C (100%) rename macro/{ => test}/pos_calb_check.C (100%) rename macro/{ => test}/raw_mpos_check.C (100%) rename macro/{ => test}/resolution_check.C (100%) rename macro/{ => test}/test_mpos.prm (100%) diff --git a/calibration/si26a/log/mssd_2_1_1ch_mssd.prm b/calibration/si26a/log/mssd_2_1_1ch_mssd.prm new file mode 100644 index 0000000..807d314 --- /dev/null +++ b/calibration/si26a/log/mssd_2_1_1ch_mssd.prm @@ -0,0 +1,3 @@ +# Created from mssd_calibration.C +# ../rootfiles/alpha307_308_v2 +# mssd_2_1_1ch diff --git a/macro/mssd_calibration.C b/macro/mssd_calibration.C new file mode 100644 index 0000000..e1da1d5 --- /dev/null +++ b/macro/mssd_calibration.C @@ -0,0 +1,93 @@ +#include +#include +#include +#include + +void Usage(){ + cout << "mssd calibration" << endl; + cout << "Usage:" << endl; + cout << "mssd_calibration(TString run_name, TString branch_name)" << endl; + cout << "\trun_name: Name of run file (DO NOT PUT '.root'). Default: nothing. Must be in double quotes!\n"; + cout << "\tbranch_name: Name of branch. Default: nothing. Must be in double quotes!\n"; +} + +void mssd_calibration(TString run_name=" ", TString branch_name=" ") +{ + if (run_name == " "){ + Usage(); + return; + } + gStyle->SetOptFit(); + gStyle->SetOptLogy(1); + + cout << endl; + cout << "your input :" << endl; + cout << "run_name (filename) : " << run_name << ".root" << endl; + cout << "branch_name : " << branch_name << endl; + cout << endl; + + //TString run_name = "/home/okawa/work/crib/data/si26a/rootfiles/" + run + ".root"; + TString run = run_name + ".root"; + FileStat_t info; + if(gSystem->GetPathInfo(run.Data(), info)!=0) { + cout << "File '" << run.Data() << "' does not exist." << endl; + return; + } + + TFile *fin = new TFile(run.Data(), "read"); + TTree* ctree=(TTree*)fin->Get("ctree"); + TString output = "/home/okawa/software/ridf2root/calibration/si26a/log/" + branch_name + "_mssd.prm"; + //TString output = "./test_mssd.prm"; + cout << "CREATED: --" << output << endl; + ofstream fout(output.Data(), ios::out); + //fout << setprecision(8); // good for column output data + + TH1D *h = new TH1D("h", branch_name.Data(), 4000, 0., 4000.); + Double_t val; + ctree->SetBranchAddress(branch_name.Data(), &val); + Int_t nEntry = ctree->GetEntries(); + for(Int_t iEntry=0; iEntryGetEntry(iEntry); + h->Fill(val); + } + + fout << "# Created from mssd_calibration.C" << endl; + fout << "# " << run_name << endl; + fout << "# " << branch_name << endl; + + TCanvas *c1 = new TCanvas("c1", "c1"); + + TF1 *f1 = new TF1("f1", "gaus(0)+pol1(3)"); + f1->SetRange(850, 1025); + f1->SetParameters(200, 1000, 5,10,0.0001); + f1->SetParLimits(2,0,100); // for sigma + h->GetXaxis()->SetRangeUser(0, 1500); + h->Fit(f1,"r"); + h->Draw(); + f1->Draw("same"); + + TF1 *f2 = new TF1("f2", "gaus(0)+pol1(3)"); + f2->SetRange(1080, 1160); + f2->SetParameters(200, 1130, 5,10,0.0001); + f2->SetParLimits(2,0,100); // for sigma + h->GetXaxis()->SetRangeUser(0, 1500); + h->Fit(f2,"r"); + //h->Draw(); + f2->Draw("same"); + + TF1 *f3 = new TF1("f3", "gaus(0)+pol1(3)"); + f3->SetRange(1160, 1240); + f3->SetParameters(200, 1190, 5,10,0.0001); + f3->SetParLimits(2,0,100); // for sigma + h->GetXaxis()->SetRangeUser(0, 1500); + h->Fit(f3,"r"); + //h->Draw(); + f3->Draw("same"); + + //fin->Close(); + fout.close(); + +} diff --git a/macro/compare.C b/macro/test/compare.C similarity index 100% rename from macro/compare.C rename to macro/test/compare.C diff --git a/macro/mpos_2dim.C b/macro/test/mpos_2dim.C similarity index 100% rename from macro/mpos_2dim.C rename to macro/test/mpos_2dim.C diff --git a/macro/pos_calb_check.C b/macro/test/pos_calb_check.C similarity index 100% rename from macro/pos_calb_check.C rename to macro/test/pos_calb_check.C diff --git a/macro/raw_mpos_check.C b/macro/test/raw_mpos_check.C similarity index 100% rename from macro/raw_mpos_check.C rename to macro/test/raw_mpos_check.C diff --git a/macro/resolution_check.C b/macro/test/resolution_check.C similarity index 100% rename from macro/resolution_check.C rename to macro/test/resolution_check.C diff --git a/macro/test_mpos.prm b/macro/test/test_mpos.prm similarity index 100% rename from macro/test_mpos.prm rename to macro/test/test_mpos.prm diff --git a/src/TCordferBranchManager.cpp b/src/TCordferBranchManager.cpp index 7f38d42..cfe400f 100644 --- a/src/TCordferBranchManager.cpp +++ b/src/TCordferBranchManager.cpp @@ -476,11 +476,12 @@ void TCordferBranchManager::GiveCalibValue(Int_t geo, Int_t ch, Int_t val){ cout << "ERROR" << endl; return; } - Int_t add_ch = cbranch[index-36]->UserGetAddBranchIndex(pos_val, mux_id); //in case MUX2-1 - if(add_ch != -1){ add_ch -= 36; } + //cout << cbranch[index]->GetBranchName() << " " << cbranch[index-32]->GetBranchName() << endl; + Int_t add_ch = cbranch[index-32]->UserGetAddBranchIndex(pos_val, mux_id); //in case MUX2-1 + if(add_ch != -1){ add_ch -= 32; } else if(add_ch == -1){ Int_t add_ch2 = cbranch[index]->UserGetAddBranchIndex(pos_val, mux_id);//in case MUX3-1 - if(add_ch == -1){ return; } + if(add_ch2 == -1){ return; } else{ add_ch = add_ch2; } } cbranch[index + add_ch]->SetCalibValue(calib_status); -- GitLab From c6faebf820104d1e6b3f987e5eceef3331d8d41f Mon Sep 17 00:00:00 2001 From: kodaiokawa Date: Wed, 23 Mar 2022 11:26:18 +0900 Subject: [PATCH 05/15] [mod] for cribana --- CMakeLists.txt | 3 ++- recipe/recipe_si26a.yml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f7d779..5b08153 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,8 @@ target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/include) target_link_libraries(${PROJECT_NAME} - yaml-cpp + /usr/local/lib/libyaml-cpp.so + # yaml-cpp ${ROOT_LIBRARIES} -L${PROJECT_SOURCE_DIR}/anaroot/lib -lanacore -pthread -lm -ldl -rdynamic diff --git a/recipe/recipe_si26a.yml b/recipe/recipe_si26a.yml index 14067c9..223f954 100644 --- a/recipe/recipe_si26a.yml +++ b/recipe/recipe_si26a.yml @@ -11,7 +11,7 @@ map_tree: calib_tree: name: "ctree" description: "calibrate data tree" - in_use: on + in_use: off # mapfile and calibration file information -- GitLab From 13a05b08dfd47792da702b2a4ba4950b5fa56f1a Mon Sep 17 00:00:00 2001 From: kodaiokawa Date: Wed, 23 Mar 2022 12:59:34 +0900 Subject: [PATCH 06/15] [del] calibration tree --- include/MapReader.hh | 4 +- include/TCordferBranchManager.hh | 30 +- recipe/recipe_si26a.yml | 13 +- src/MapReader.cpp | 8 +- src/TCordferBranchManager.cpp | 583 ++++++++++++++++--------------- "src/\\" | 540 ---------------------------- 6 files changed, 322 insertions(+), 856 deletions(-) delete mode 100644 "src/\\" diff --git a/include/MapReader.hh b/include/MapReader.hh index 05c4761..4f70505 100644 --- a/include/MapReader.hh +++ b/include/MapReader.hh @@ -14,11 +14,13 @@ class MapReader { private: TString filename; + Int_t detector_id; public: MapReader(){} - MapReader(TString in_filename){ + MapReader(TString in_filename, Int_t det_id){ filename = in_filename; + detector_id = det_id; FileStat_t info; if(gSystem->GetPathInfo(filename.Data(), info) != 0){ diff --git a/include/TCordferBranchManager.hh b/include/TCordferBranchManager.hh index 2630a79..473a5f1 100644 --- a/include/TCordferBranchManager.hh +++ b/include/TCordferBranchManager.hh @@ -3,7 +3,7 @@ #include #include -#include +//#include #include #include @@ -28,26 +28,26 @@ class TCordferBranchManager TTree *tree; TTree *mtree; - TTree *ctree; + //TTree *ctree; TH1I *scaler; vector branch; vector mbranch; - vector cbranch; + //vector cbranch; Int_t rmapping[100]; //segment_id(geo) -> branch index Int_t mmapping[100][100]; // [segment_id][ch] -> branch index - Int_t cmapping[100][100]; - Int_t muxmapping[100][100]; + //Int_t cmapping[100][100]; + //Int_t muxmapping[100][100]; - vector< vector > mpos; //for position parameter of MUX (mssd) + //vector< vector > mpos; //for position parameter of MUX (mssd) bool rawdata = false; bool mapdata = false; - bool calibration = false; + //bool calibration = false; bool rmapflag = false; bool mmapflag = false; - bool cmapflag = false; + //bool cmapflag = false; public: TCordferBranchManager(){} @@ -66,12 +66,12 @@ class TCordferBranchManager void CreateTree(); void CreateRawTree(); void CreateMapTree(); - void CreateCalibTree(); + //void CreateCalibTree(); void CreateBranch(); void CreateRawBranch(); void CreateMapBranch(); - void CreateCalibBranch(); + //void CreateCalibBranch(); Int_t MakeBranchChannelIndex(Int_t bra_id, Int_t ch_id){ return bra_id*100 + ch_id; } @@ -84,27 +84,27 @@ class TCordferBranchManager void CreateMapping(); void CreateRawMapping(); void CreateMapMapping(); - void CreateCalibMapping(); + //void CreateCalibMapping(); void GiveValue(Int_t geo, Int_t ch, Int_t val); void GiveRawValue(Int_t geo, Int_t ch, Int_t val); void GiveMapValue(Int_t geo, Int_t ch, Int_t val); - void GiveCalibValue(Int_t geo, Int_t ch, Int_t val); + // void GiveCalibValue(Int_t geo, Int_t ch, Int_t val); void Fill(); void RawFill(){ tree->Fill(); } void MapFill(){ mtree->Fill(); } - void CalibFill() { ctree->Fill(); } + //void CalibFill() { ctree->Fill(); } void ClearAll(); void ClearRawAll(); void ClearMapAll(); - void ClearCalibAll(); + //void ClearCalibAll(); void DataWrite(); void RawDataWrite(){ tree->Write(); } void MapDataWrite(){ mtree->Write(); } - void CalibDataWrite(){ ctree->Write(); } + //void CalibDataWrite(){ ctree->Write(); } void FileClose(); diff --git a/recipe/recipe_si26a.yml b/recipe/recipe_si26a.yml index 223f954..437d2e8 100644 --- a/recipe/recipe_si26a.yml +++ b/recipe/recipe_si26a.yml @@ -8,10 +8,10 @@ map_tree: name: "mtree" description: "mapping data tree" in_use: on -calib_tree: - name: "ctree" - description: "calibrate data tree" - in_use: off +# calib_tree: +# name: "ctree" +# description: "calibrate data tree" +# in_use: off # mapfile and calibration file information @@ -19,8 +19,9 @@ calib_tree: # 1: coincidence # 2: rf # 3: PPAC -# 4: ssd (dssd) -# 5: MUX (MUX) +# 4: ssd +# 5: dssd +# 6: mssd (MUX) map_setup: - name: coin mapfile: "../map/si26a/coin.map" diff --git a/src/MapReader.cpp b/src/MapReader.cpp index 3cb65c2..ae88a5c 100644 --- a/src/MapReader.cpp +++ b/src/MapReader.cpp @@ -19,13 +19,15 @@ void MapReader::ReadMap() { if(buf[0]=='#' || buf[0]=='c'){ continue; } if(buf.find("N/A") != string::npos){ continue; } - vector line; - vector id, ch; - + // if there are several ";" in one line, it makes error if((buf.find(';') != buf.rfind(';')) || buf.find(';') == string::npos){ cerr << "ERROR: map file is not correct" << endl; exit(0); } + + vector line; + vector id, ch; + string name = buf.substr(buf.find(';')+1); if(name[0] == ' '){ name.erase(0, 1); } if(name[name.length()-1] == ' '){ name.pop_back(); } diff --git a/src/TCordferBranchManager.cpp b/src/TCordferBranchManager.cpp index cfe400f..0e9adf8 100644 --- a/src/TCordferBranchManager.cpp +++ b/src/TCordferBranchManager.cpp @@ -19,7 +19,7 @@ using namespace std; -#define SETTING_SI26A true +//#define SETTING_SI26A true void TCordferBranchManager::Readyaml(TString yamlfile){ FileStat_t info; @@ -38,23 +38,23 @@ void TCordferBranchManager::Readyaml(TString yamlfile){ mapdata=true; cout << "\t-- map_tree in use" << endl; } - if(recipe["calib_tree"]["in_use"].as() == "on"){ - calibration=true; - cout << "\t-- calib_tree in use" << endl; - } - - if(mapdata == false && calibration == true){ - cout << "ERROR: calibration tree require to use map tree" << endl; - cout << "\tCHANGE recipe in yaml file" << endl; - exit(0); - } + //if(recipe["calib_tree"]["in_use"].as() == "on"){ + // calibration=true; + // cout << "\t-- calib_tree in use" << endl; + //} + + //if(mapdata == false && calibration == true){ + // cout << "ERROR: calibration tree require to use map tree" << endl; + // cout << "\tCHANGE recipe in yaml file" << endl; + // exit(0); + //} } void TCordferBranchManager::CreateTree(){ if(rawdata){ CreateRawTree(); } if(mapdata){ CreateMapTree(); } - if(calibration){ CreateCalibTree(); } + //if(calibration){ CreateCalibTree(); } } @@ -74,18 +74,18 @@ void TCordferBranchManager::CreateMapTree(){ } -void TCordferBranchManager::CreateCalibTree(){ - TString calibname = recipe["calib_tree"]["name"].as(); - TString calibdesc = recipe["calib_tree"]["description"].as(); - - ctree = new TTree(calibname, calibdesc); -} +//void TCordferBranchManager::CreateCalibTree(){ +// TString calibname = recipe["calib_tree"]["name"].as(); +// TString calibdesc = recipe["calib_tree"]["description"].as(); +// +// ctree = new TTree(calibname, calibdesc); +//} void TCordferBranchManager::CreateBranch(){ if(rawdata){ CreateRawBranch(); } if(mapdata){ CreateMapBranch(); } - if(calibration){ CreateCalibBranch(); } + //if(calibration){ CreateCalibBranch(); } } @@ -134,8 +134,9 @@ void TCordferBranchManager::CreateMapBranch(){ for(Int_t i=0; i(); Int_t det_id = map_setup[i]["det_flag"].as(); + //1: coin 2: rf 3: PPAC 4: ssd 5: dssd 6: mssd - MapReader *mfile = new MapReader(mname); + MapReader *mfile = new MapReader(mname, det_id); for(Int_t j=0; jdetector_name.size(); j++){ TString bname = mfile->detector_name[j]; TCordferMapBranch *map_branch = new TCordferMapBranch(bname, det_id, mfile->segment_id[j].size()); @@ -151,70 +152,70 @@ void TCordferBranchManager::CreateMapBranch(){ } -void TCordferBranchManager::CreateCalibBranch(){ - YAML::Node map_setup = recipe["map_setup"].as(); - for(Int_t i=0; i(); - Int_t det_id = map_setup[i]["det_flag"].as(); - - //************** - if(det_id == 3){ continue; } //for PPAC - //************** - - //default (except of PPAC) - TString cname[2]; - cname[0] = map_setup[i]["calibfile"]["energy"].as(); - cname[1] = map_setup[i]["calibfile"]["timing"].as(); - - for(Int_t j=0; j<2; j++){ - FileStat_t info; - if(cname[j] == ""){ continue; } - else if(gSystem->GetPathInfo(cname[j].Data(), info) != 0){ - cerr << "WARNING: in yaml File, '" << cname[j].Data() << "' does not exist." << endl; - cerr << " not include " << cname[j].Data() << " in ctree" << endl; - continue; - } - - CalibParamReader *cfile = new CalibParamReader(det_name, cname[j]); - for(Int_t k=0; kbranch_name.size(); k++){ - TString bname = cfile->branch_name[k]; - TCordferCalibBranch *calib_branch = new TCordferCalibBranch(bname, det_id); - calib_branch->CopyCalibInfo(cfile->dim, cfile->parameters[k]); - - TString brancharray; - if(j==0){ - brancharray.Form("%s/D", bname.Data()); - ctree->Branch(bname.Data(), &calib_branch->cbra_val, brancharray); - calib_branch->adc = true; - }else{ - brancharray.Form("%s[12]/D", bname.Data()); - ctree->Branch(bname.Data(), calib_branch->cbra_tval, brancharray); - calib_branch->adc = false; - } - cbranch.push_back(calib_branch); - } - } - if(det_id == 5){ //for parameter reader of MUX position (mssd) - TString pos_name = map_setup[i]["calibfile"]["position"].as(); - FileStat_t info; - if(gSystem->GetPathInfo(pos_name.Data(), info) != 0){ - cerr << "ERROR: in yaml File, '" << pos_name.Data() << "' does not exist." << endl; - cerr << " mssd calibration requires " << pos_name.Data() << " !" << endl; - exit(0); - } - - CalibParamReader *cfile = new CalibParamReader(); - cfile->ReadMUXposCalib(pos_name); - mpos = cfile->position_prms; - } - } -} +//void TCordferBranchManager::CreateCalibBranch(){ +// YAML::Node map_setup = recipe["map_setup"].as(); +// for(Int_t i=0; i(); +// Int_t det_id = map_setup[i]["det_flag"].as(); +// +// //************** +// if(det_id == 3){ continue; } //for PPAC +// //************** +// +// //default (except of PPAC) +// TString cname[2]; +// cname[0] = map_setup[i]["calibfile"]["energy"].as(); +// cname[1] = map_setup[i]["calibfile"]["timing"].as(); +// +// for(Int_t j=0; j<2; j++){ +// FileStat_t info; +// if(cname[j] == ""){ continue; } +// else if(gSystem->GetPathInfo(cname[j].Data(), info) != 0){ +// cerr << "WARNING: in yaml File, '" << cname[j].Data() << "' does not exist." << endl; +// cerr << " not include " << cname[j].Data() << " in ctree" << endl; +// continue; +// } +// +// CalibParamReader *cfile = new CalibParamReader(det_name, cname[j]); +// for(Int_t k=0; kbranch_name.size(); k++){ +// TString bname = cfile->branch_name[k]; +// TCordferCalibBranch *calib_branch = new TCordferCalibBranch(bname, det_id); +// calib_branch->CopyCalibInfo(cfile->dim, cfile->parameters[k]); +// +// TString brancharray; +// if(j==0){ +// brancharray.Form("%s/D", bname.Data()); +// ctree->Branch(bname.Data(), &calib_branch->cbra_val, brancharray); +// calib_branch->adc = true; +// }else{ +// brancharray.Form("%s[12]/D", bname.Data()); +// ctree->Branch(bname.Data(), calib_branch->cbra_tval, brancharray); +// calib_branch->adc = false; +// } +// cbranch.push_back(calib_branch); +// } +// } +// if(det_id == 5){ //for parameter reader of MUX position (mssd) +// TString pos_name = map_setup[i]["calibfile"]["position"].as(); +// FileStat_t info; +// if(gSystem->GetPathInfo(pos_name.Data(), info) != 0){ +// cerr << "ERROR: in yaml File, '" << pos_name.Data() << "' does not exist." << endl; +// cerr << " mssd calibration requires " << pos_name.Data() << " !" << endl; +// exit(0); +// } +// +// CalibParamReader *cfile = new CalibParamReader(); +// cfile->ReadMUXposCalib(pos_name); +// mpos = cfile->position_prms; +// } +// } +//} void TCordferBranchManager::CreateMapping(){ if(rawdata){ CreateRawMapping(); } if(mapdata){ CreateMapMapping(); } - if(calibration){ CreateCalibMapping(); } + //if(calibration){ CreateCalibMapping(); } } @@ -243,162 +244,162 @@ void TCordferBranchManager::CreateMapMapping(){ } -void TCordferBranchManager::CreateCalibMapping(){ - Int_t m = sizeof(cmapping) / sizeof(cmapping[0]); - Int_t n = sizeof(cmapping[0]) / sizeof(cmapping[0][0]); - memset(cmapping, -1, sizeof(cmapping[0][0])*m*n); - - Int_t M = sizeof(muxmapping) / sizeof(muxmapping[0]); - Int_t N = sizeof(muxmapping[0]) / sizeof(muxmapping[0][0]); - memset(muxmapping, -1, sizeof(muxmapping[0][0])*M*N); - - Int_t coin_num = 0; - Int_t rf_num = 0; - Int_t ssd_num = 0; - Int_t ssd_t_num = 0; - Int_t mssd_num = 0; - Int_t mux_num = 0; - Int_t mux_t_num = 0; - - for(Int_t i=0; idetector_id == 1){ - Int_t coin_tmp = coin_num; - for(Int_t j=0; jdetector_id == 1){ - if(coin_tmp > 0){ - coin_tmp--; - continue; - }else{ - cbranch[i]->geo = mbranch[j]->segment_id[0]; - cbranch[i]->ch = mbranch[j]->channel[0]; - coin_num++; - break; - } - } - } - } - - //for rf data - if(cbranch[i]->detector_id == 2){ - Int_t rf_index; - for(Int_t j=0; jdetector_id == 2){ rf_index = j; } - } - if(rf_num == 0){ - cbranch[i]->geo = mbranch[rf_index]->segment_id[0]; - cbranch[i]->ch = mbranch[rf_index]->channel[0]; - rf_num++; - }else if(rf_num == 1){ - cbranch[i]->geo = mbranch[rf_index]->segment_id[1]; - cbranch[i]->ch = mbranch[rf_index]->channel[1]; - rf_num++; - }else{ - cout << "WARNING: format of mapfile of rf is differenet" << endl; - } - } - - //for ppac - //if(cbranch[i]->detector_id == 3){} - - - //for dssd, ssd data - if(cbranch[i]->detector_id == 4){ - if(cbranch[i]->adc == true){ - Int_t ssd_tmp = ssd_num; - for(Int_t j=0; jdetector_id == 4){ - if(ssd_tmp > 0){ - ssd_tmp--; - continue; - }else{ - cbranch[i]->geo = mbranch[j]->segment_id[0]; - cbranch[i]->ch = mbranch[j]->channel[0]; - ssd_num++; - break; - } - } - } - }else if(cbranch[i]->adc == false){ - Int_t ssd_t_tmp = ssd_t_num; - for(Int_t j=0; jdetector_id == 4){ - if(ssd_t_tmp > 0){ - ssd_t_tmp--; - continue; - }else{ - cbranch[i]->geo = mbranch[j]->segment_id[1]; - cbranch[i]->ch = mbranch[j]->channel[1]; - ssd_t_num++; - break; - } - } - } - } - } - - - //for mssd - if(cbranch[i]->detector_id == 5){ - if(cbranch[i]->adc == true){ - mssd_num++; - if(mssd_num%16 == 1){ - Int_t mux_id = mssd_num/16; - cbranch[i]->mpos1_prm = mpos[2*mux_id]; - cbranch[i]->mpos2_prm = mpos[2*mux_id + 1]; - - Int_t mux_tmp = mux_num; - for(Int_t j=0; jdetector_id == 5){ - if(mux_tmp > 0){ - mux_tmp--; - continue; - }else{ - //cout << i << " " << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; - for(Int_t k=0; k<4; k++){ - //cout << " " << mbranch[j]->segment_id[k] << " " << mbranch[j]->channel[k] << endl; - cmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = i; - muxmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = k + 1; - } - mux_num++; - break; - } - } - } - } - }else if(cbranch[i]->adc == false){ - Int_t mux_t_tmp = mux_t_num; - for(Int_t j=0; jdetector_id == 5){ - if(mux_t_tmp > 0){ - mux_t_tmp--; - continue; - }else{ - //cout << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; - cmapping[mbranch[j]->segment_id[4]][mbranch[j]->channel[4]] = i; - - mux_t_num++; - break; - } - } - } - - } - continue; - } - - cmapping[cbranch[i]->geo][cbranch[i]->ch] = i; - - //cout << i << " " << cbranch_name << " " << seg << endl; - } -} +//void TCordferBranchManager::CreateCalibMapping(){ +// Int_t m = sizeof(cmapping) / sizeof(cmapping[0]); +// Int_t n = sizeof(cmapping[0]) / sizeof(cmapping[0][0]); +// memset(cmapping, -1, sizeof(cmapping[0][0])*m*n); +// +// Int_t M = sizeof(muxmapping) / sizeof(muxmapping[0]); +// Int_t N = sizeof(muxmapping[0]) / sizeof(muxmapping[0][0]); +// memset(muxmapping, -1, sizeof(muxmapping[0][0])*M*N); +// +// Int_t coin_num = 0; +// Int_t rf_num = 0; +// Int_t ssd_num = 0; +// Int_t ssd_t_num = 0; +// Int_t mssd_num = 0; +// Int_t mux_num = 0; +// Int_t mux_t_num = 0; +// +// for(Int_t i=0; idetector_id == 1){ +// Int_t coin_tmp = coin_num; +// for(Int_t j=0; jdetector_id == 1){ +// if(coin_tmp > 0){ +// coin_tmp--; +// continue; +// }else{ +// cbranch[i]->geo = mbranch[j]->segment_id[0]; +// cbranch[i]->ch = mbranch[j]->channel[0]; +// coin_num++; +// break; +// } +// } +// } +// } +// +// //for rf data +// if(cbranch[i]->detector_id == 2){ +// Int_t rf_index; +// for(Int_t j=0; jdetector_id == 2){ rf_index = j; } +// } +// if(rf_num == 0){ +// cbranch[i]->geo = mbranch[rf_index]->segment_id[0]; +// cbranch[i]->ch = mbranch[rf_index]->channel[0]; +// rf_num++; +// }else if(rf_num == 1){ +// cbranch[i]->geo = mbranch[rf_index]->segment_id[1]; +// cbranch[i]->ch = mbranch[rf_index]->channel[1]; +// rf_num++; +// }else{ +// cout << "WARNING: format of mapfile of rf is differenet" << endl; +// } +// } +// +// //for ppac +// //if(cbranch[i]->detector_id == 3){} +// +// +// //for dssd, ssd data +// if(cbranch[i]->detector_id == 4){ +// if(cbranch[i]->adc == true){ +// Int_t ssd_tmp = ssd_num; +// for(Int_t j=0; jdetector_id == 4){ +// if(ssd_tmp > 0){ +// ssd_tmp--; +// continue; +// }else{ +// cbranch[i]->geo = mbranch[j]->segment_id[0]; +// cbranch[i]->ch = mbranch[j]->channel[0]; +// ssd_num++; +// break; +// } +// } +// } +// }else if(cbranch[i]->adc == false){ +// Int_t ssd_t_tmp = ssd_t_num; +// for(Int_t j=0; jdetector_id == 4){ +// if(ssd_t_tmp > 0){ +// ssd_t_tmp--; +// continue; +// }else{ +// cbranch[i]->geo = mbranch[j]->segment_id[1]; +// cbranch[i]->ch = mbranch[j]->channel[1]; +// ssd_t_num++; +// break; +// } +// } +// } +// } +// } +// +// +// //for mssd +// if(cbranch[i]->detector_id == 5){ +// if(cbranch[i]->adc == true){ +// mssd_num++; +// if(mssd_num%16 == 1){ +// Int_t mux_id = mssd_num/16; +// cbranch[i]->mpos1_prm = mpos[2*mux_id]; +// cbranch[i]->mpos2_prm = mpos[2*mux_id + 1]; +// +// Int_t mux_tmp = mux_num; +// for(Int_t j=0; jdetector_id == 5){ +// if(mux_tmp > 0){ +// mux_tmp--; +// continue; +// }else{ +// //cout << i << " " << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; +// for(Int_t k=0; k<4; k++){ +// //cout << " " << mbranch[j]->segment_id[k] << " " << mbranch[j]->channel[k] << endl; +// cmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = i; +// muxmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = k + 1; +// } +// mux_num++; +// break; +// } +// } +// } +// } +// }else if(cbranch[i]->adc == false){ +// Int_t mux_t_tmp = mux_t_num; +// for(Int_t j=0; jdetector_id == 5){ +// if(mux_t_tmp > 0){ +// mux_t_tmp--; +// continue; +// }else{ +// //cout << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; +// cmapping[mbranch[j]->segment_id[4]][mbranch[j]->channel[4]] = i; +// +// mux_t_num++; +// break; +// } +// } +// } +// +// } +// continue; +// } +// +// cmapping[cbranch[i]->geo][cbranch[i]->ch] = i; +// +// //cout << i << " " << cbranch_name << " " << seg << endl; +// } +//} void TCordferBranchManager::GiveValue(Int_t geo, Int_t ch, Int_t val){ if(rawdata){ GiveRawValue(geo, ch, val); } if(mapdata){ GiveMapValue(geo, ch, val); } - if(calibration){ GiveCalibValue(geo, ch, val); } + //if(calibration){ GiveCalibValue(geo, ch, val); } } @@ -443,72 +444,72 @@ void TCordferBranchManager::GiveMapValue(Int_t geo, Int_t ch, Int_t val){ } -void TCordferBranchManager::GiveCalibValue(Int_t geo, Int_t ch, Int_t val){ - Int_t index = cmapping[geo][ch]; - Int_t mux_id = muxmapping[geo][ch]; - if(index < 0){ - if(cmapflag == false){ - cout << "-- WARNING: cmapping is not completed" << endl; - } - cmapflag=true; - return; - } - - //START user setting (si26a) - if(SETTING_SI26A){ - if(index == 163){ return; } //for MUX2-1 (broken) - } - //END - - //calib_status - // 0->not mux, 1->first mux signal, other -> "val" buffer - Int_t calib_status = cbranch[index]->GetCalibStatus(val, mux_id); - //if(calib_status == 1){ cout << cbranch[index]->GetBranchName() << endl; } - if(calib_status == 1){ return; } - else if(calib_status == 0){ cbranch[index]->SetCalibValue(val); } - else{ - - //START user setting (si26a) - if(SETTING_SI26A){ - if(index == 195){ //for MUX3-1 (chained with MUX2-1) - Int_t pos_val = cbranch[index]->UserGetPosValue(mux_id); - if(pos_val == -1){ - cout << "ERROR" << endl; - return; - } - //cout << cbranch[index]->GetBranchName() << " " << cbranch[index-32]->GetBranchName() << endl; - Int_t add_ch = cbranch[index-32]->UserGetAddBranchIndex(pos_val, mux_id); //in case MUX2-1 - if(add_ch != -1){ add_ch -= 32; } - else if(add_ch == -1){ - Int_t add_ch2 = cbranch[index]->UserGetAddBranchIndex(pos_val, mux_id);//in case MUX3-1 - if(add_ch2 == -1){ return; } - else{ add_ch = add_ch2; } - } - cbranch[index + add_ch]->SetCalibValue(calib_status); - return; - } - } - //END - - Int_t add_ch = cbranch[index]->GetAddBranchIndex(mux_id); - if(add_ch == -1){ return; } - //cout << "\t" << cbranch[index]->GetBranchName() << " " << index << " " << add_ch << endl; - cbranch[index + add_ch]->SetCalibValue(calib_status); - } -} +//void TCordferBranchManager::GiveCalibValue(Int_t geo, Int_t ch, Int_t val){ +// Int_t index = cmapping[geo][ch]; +// Int_t mux_id = muxmapping[geo][ch]; +// if(index < 0){ +// if(cmapflag == false){ +// cout << "-- WARNING: cmapping is not completed" << endl; +// } +// cmapflag=true; +// return; +// } +// +// //START user setting (si26a) +// if(SETTING_SI26A){ +// if(index == 163){ return; } //for MUX2-1 (broken) +// } +// //END +// +// //calib_status +// // 0->not mux, 1->first mux signal, other -> "val" buffer +// Int_t calib_status = cbranch[index]->GetCalibStatus(val, mux_id); +// //if(calib_status == 1){ cout << cbranch[index]->GetBranchName() << endl; } +// if(calib_status == 1){ return; } +// else if(calib_status == 0){ cbranch[index]->SetCalibValue(val); } +// else{ +// +// //START user setting (si26a) +// if(SETTING_SI26A){ +// if(index == 195){ //for MUX3-1 (chained with MUX2-1) +// Int_t pos_val = cbranch[index]->UserGetPosValue(mux_id); +// if(pos_val == -1){ +// cout << "ERROR" << endl; +// return; +// } +// //cout << cbranch[index]->GetBranchName() << " " << cbranch[index-32]->GetBranchName() << endl; +// Int_t add_ch = cbranch[index-32]->UserGetAddBranchIndex(pos_val, mux_id); //in case MUX2-1 +// if(add_ch != -1){ add_ch -= 32; } +// else if(add_ch == -1){ +// Int_t add_ch2 = cbranch[index]->UserGetAddBranchIndex(pos_val, mux_id);//in case MUX3-1 +// if(add_ch2 == -1){ return; } +// else{ add_ch = add_ch2; } +// } +// cbranch[index + add_ch]->SetCalibValue(calib_status); +// return; +// } +// } +// //END +// +// Int_t add_ch = cbranch[index]->GetAddBranchIndex(mux_id); +// if(add_ch == -1){ return; } +// //cout << "\t" << cbranch[index]->GetBranchName() << " " << index << " " << add_ch << endl; +// cbranch[index + add_ch]->SetCalibValue(calib_status); +// } +//} void TCordferBranchManager::Fill(){ if(rawdata){ RawFill(); } if(mapdata){ MapFill(); } - if(calibration){ CalibFill(); } + //if(calibration){ CalibFill(); } } void TCordferBranchManager::ClearAll(){ if(rawdata){ ClearRawAll(); } if(mapdata){ ClearMapAll(); } - if(calibration){ ClearCalibAll(); } + //if(calibration){ ClearCalibAll(); } } @@ -526,17 +527,17 @@ void TCordferBranchManager::ClearMapAll(){ } -void TCordferBranchManager::ClearCalibAll(){ - for(Int_t i=0; iClear(); - } -} +//void TCordferBranchManager::ClearCalibAll(){ +// for(Int_t i=0; iClear(); +// } +//} void TCordferBranchManager::DataWrite(){ if(rawdata){ RawDataWrite(); } if(mapdata){ MapDataWrite(); } - if(calibration){ CalibDataWrite(); } + //if(calibration){ CalibDataWrite(); } } diff --git "a/src/\\" "b/src/\\" deleted file mode 100644 index 0e6bb2e..0000000 --- "a/src/\\" +++ /dev/null @@ -1,540 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "TCordferBranchManager.hh" - -using namespace std; - - -void TCordferBranchManager::Readyaml(TString yamlfile){ - FileStat_t info; - if(gSystem->GetPathInfo(yamlfile.Data(), info) != 0){ - cerr << "EROOR: File '" << yamlfile.Data() << "' does not exist." << endl; - exit(0); - } - recipe = YAML::LoadFile(yamlfile.Data()); - cout << "-- yaml file: " << yamlfile << endl; - - if(recipe["raw_tree"]["in_use"].as() == "on"){ - rawdata=true; - cout << "\t-- raw_tree in use" << endl; - } - if(recipe["map_tree"]["in_use"].as() == "on"){ - mapdata=true; - cout << "\t-- map_tree in use" << endl; - } - if(recipe["calib_tree"]["in_use"].as() == "on"){ - calibration=true; - cout << "\t-- calib_tree in use" << endl; - } - - if(mapdata == false && calibration == true){ - cout << "ERROR: calibration tree require to use map tree" << endl; - cout << "\tCHANGE recipe in yaml file" << endl; - exit(0); - } -} - - -void TCordferBranchManager::CreateTree(){ - if(rawdata){ CreateRawTree(); } - if(mapdata){ CreateMapTree(); } - if(calibration){ CreateCalibTree(); } -} - - -void TCordferBranchManager::CreateRawTree(){ - TString rawname = recipe["raw_tree"]["name"].as(); - TString rawdesc = recipe["raw_tree"]["description"].as(); - - tree = new TTree(rawname, rawdesc); -} - - -void TCordferBranchManager::CreateMapTree(){ - TString mapname = recipe["map_tree"]["name"].as(); - TString mapdesc = recipe["map_tree"]["description"].as(); - - mtree = new TTree(mapname, mapdesc); -} - - -void TCordferBranchManager::CreateCalibTree(){ - TString calibname = recipe["calib_tree"]["name"].as(); - TString calibdesc = recipe["calib_tree"]["description"].as(); - - ctree = new TTree(calibname, calibdesc); -} - - -void TCordferBranchManager::CreateBranch(){ - if(rawdata){ CreateRawBranch(); } - if(mapdata){ CreateMapBranch(); } - if(calibration){ CreateCalibBranch(); } -} - - -void TCordferBranchManager::CreateRawBranch(){ - YAML::Node setup = recipe["setup"].as(); - for(Int_t i=0; i(); - TString bname = setup[i]["name"].as(); - Int_t det_id = setup[i]["detector_id"].as(); - - if(det_id != 10){ - Int_t nch = setup[i]["channel"].as(); - TCordferRawBranch *raw_branch = new TCordferRawBranch(bname, seg_id, nch, det_id); - - TString brancharray; - brancharray.Form("%s[%d]/I", bname.Data(), raw_branch->size); - - tree->Branch(bname.Data(), raw_branch->bra_val, brancharray); - branch.push_back(raw_branch); - - }else{ - TString mhtdc_name = setup[i]["branches"][0]["name"].as(); - Int_t nch = setup[i]["branches"][0]["channel"].as(); - Int_t nhit = setup[i]["branches"][0]["maxhit"].as(); - - for(Int_t j=0; jsize); - - tree->Branch(bra_name.Data(), mhtdc_branch->bra_val, brancharray); - branch.push_back(mhtdc_branch); - } - - //*** for two dimentional branch (this is incorrect?)*** - //TCordferRawBranch *mhtdc_branch = new TCordferRawBranch(mhtdc_name, seg_id, nch, det_id, nhit); - - //TString brancharray; - //brancharray.Form("%s[%d][%d]/I", mhtdc_name.Data(), mhtdc_branch->size, mhtdc_branch->nhit); - ////cout << mhtdc_branch->detector_id << " " << mhtdc_branch->size << " " << mhtdc_branch->nhit << endl; - - //tree->Branch(mhtdc_name.Data(), mhtdc_branch->mhtdc_val, brancharray); - //branch.push_back(mhtdc_branch); - - - //TString nhit_name = setup[i]["branches"][1]["name"].as(); - //Int_t nhit_nch = setup[i]["branches"][1]["channel"].as(); - //TCordferRawBranch *nhit_branch = new TCordferRawBranch(nhit_name, 0, nhit_nch, 0); //geo, det_id = 0 - - //TString nhitbrancharray; - //nhitbrancharray.Form("%s[%d]/I", nhit_name.Data(), nhit_branch->size); - - //tree->Branch(nhit_name.Data(), nhit_branch->bra_val, nhitbrancharray); - //branch.push_back(nhit_branch); - } - } -} - - -void TCordferBranchManager::CreateMapBranch(){ - YAML::Node map_setup = recipe["map_setup"].as(); - for(Int_t i=0; i(); - Int_t det_id = map_setup[i]["det_flag"].as(); - - MapReader *mfile = new MapReader(mname); - for(Int_t j=0; jdetector_name.size(); j++){ - TString bname = mfile->detector_name[j]; - TCordferMapBranch *map_branch = new TCordferMapBranch(bname, det_id, mfile->segment_id[j].size()); - map_branch->SetMapInfo(mfile->segment_id[j], mfile->channel[j]); - - TString brancharray; - brancharray.Form("%s[%d]/I", bname.Data(), map_branch->size); - - mtree->Branch(bname.Data(), map_branch->bra_val, brancharray); - mbranch.push_back(map_branch); - } - } -} - - -void TCordferBranchManager::CreateCalibBranch(){ - YAML::Node map_setup = recipe["map_setup"].as(); - for(Int_t i=0; i(); - Int_t det_id = map_setup[i]["det_flag"].as(); - - //************** - if(det_id == 3){ continue; } //for PPAC - //************** - - //default (except of PPAC) - TString cname[2]; - cname[0] = map_setup[i]["calibfile"]["energy"].as(); - cname[1] = map_setup[i]["calibfile"]["timing"].as(); - - for(Int_t j=0; j<2; j++){ - FileStat_t info; - if(cname[j] == ""){ continue; } - else if(gSystem->GetPathInfo(cname[j].Data(), info) != 0){ - cerr << "WARNING: in yaml File, '" << cname[j].Data() << "' does not exist." << endl; - cerr << " not include " << cname[j].Data() << " in ctree" << endl; - continue; - } - - CalibParamReader *cfile = new CalibParamReader(det_name, cname[j]); - for(Int_t k=0; kbranch_name.size(); k++){ - TString bname = cfile->branch_name[k]; - TCordferCalibBranch *calib_branch = new TCordferCalibBranch(bname, det_id); - calib_branch->CopyCalibInfo(cfile->dim, cfile->parameters[k]); - - TString brancharray; - if(j==0){ - brancharray.Form("%s/D", bname.Data()); - ctree->Branch(bname.Data(), &calib_branch->cbra_val, brancharray); - calib_branch->adc = true; - }else{ - brancharray.Form("%s[12]/D", bname.Data()); - ctree->Branch(bname.Data(), calib_branch->cbra_tval, brancharray); - calib_branch->adc = false; - } - cbranch.push_back(calib_branch); - } - } - if(det_id == 5){ //for parameter reader of MUX position (mssd) - TString pos_name = map_setup[i]["calibfile"]["position"].as(); - FileStat_t info; - if(gSystem->GetPathInfo(pos_name.Data(), info) != 0){ - cerr << "ERROR: in yaml File, '" << pos_name.Data() << "' does not exist." << endl; - cerr << " mssd calibration requires " << pos_name.Data() << " !" << endl; - exit(0); - } - - CalibParamReader *cfile = new CalibParamReader(); - cfile->ReadMUXposCalib(pos_name); - mpos = cfile->position_prms; - } - } -} - - -void TCordferBranchManager::CreateMapping(){ - if(rawdata){ CreateRawMapping(); } - if(mapdata){ CreateMapMapping(); } - if(calibration){ CreateCalibMapping(); } -} - - -void TCordferBranchManager::CreateRawMapping(){ - memset(rmapping, -1, sizeof(rmapping)); - Int_t seg_buf = -99; - for(Int_t i=0; igeo; - if(seg == seg_buf){ continue; } - seg_buf = seg; - rmapping[seg] = i; - } -} - - -void TCordferBranchManager::CreateMapMapping(){ - Int_t m = sizeof(mmapping) / sizeof(mmapping[0]); - Int_t n = sizeof(mmapping[0]) / sizeof(mmapping[0][0]); - memset(mmapping, -1, sizeof(mmapping[0][0])*m*n); - - for(Int_t i=0; isize; j++){ - mmapping[mbranch[i]->segment_id[j]][mbranch[i]->channel[j]] = MakeBranchChannelIndex(i, j); - } - } -} - - -void TCordferBranchManager::CreateCalibMapping(){ - Int_t m = sizeof(cmapping) / sizeof(cmapping[0]); - Int_t n = sizeof(cmapping[0]) / sizeof(cmapping[0][0]); - memset(cmapping, -1, sizeof(cmapping[0][0])*m*n); - - Int_t M = sizeof(muxmapping) / sizeof(muxmapping[0]); - Int_t N = sizeof(muxmapping[0]) / sizeof(muxmapping[0][0]); - memset(muxmapping, -1, sizeof(muxmapping[0][0])*M*N); - - Int_t coin_num = 0; - Int_t rf_num = 0; - Int_t mssd_num = 0; - Int_t mux_num = 0; - Int_t mux_t_num = 0; - - for(Int_t i=0; idetector_id == 1){ - Int_t coin_tmp = coin_num; - for(Int_t j=0; jdetector_id == 1){ - if(coin_tmp > 0){ - coin_tmp--; - continue; - }else{ - cbranch[i]->geo = mbranch[j]->segment_id[0]; - cbranch[i]->ch = mbranch[j]->channel[0]; - coin_num++; - break; - } - } - } - } - - //for rf data - if(cbranch[i]->detector_id == 2){ - Int_t rf_index; - for(Int_t j=0; jdetector_id == 2){ rf_index = j; } - } - if(rf_num == 0){ - cbranch[i]->geo = mbranch[rf_index]->segment_id[0]; - cbranch[i]->ch = mbranch[rf_index]->channel[0]; - rf_num++; - }else if(rf_num == 1){ - cbranch[i]->geo = mbranch[rf_index]->segment_id[1]; - cbranch[i]->ch = mbranch[rf_index]->channel[1]; - rf_num++; - }else{ - cout << "WARNING: format of mapfile of rf is differenet" << endl; - } - } - - //for ppac - //if(cbranch[i]->detector_id == 3){} - - - //for dssd, ssd data - if(cbranch[i]->detector_id == 4){ - continue; - } - //else{ - // bool tdc_flag = false; - // if(cbranch_name.substr(0, 2) == "t_"){ - // cbranch_name.erase(0, 2); - // tdc_flag = true; - // } - // for(Int_t j=0; jGetBranchName().Data()); - // if(cbranch_name == mbranch_name){ - // if(tdc_flag){ - // cbranch[i]->geo = mbranch[j]->segment_id[1]; - // cbranch[i]->ch = mbranch[j]->channel[1]; - // }else{ - // cbranch[i]->geo = mbranch[j]->segment_id[0]; - // cbranch[i]->ch = mbranch[j]->channel[0]; - // } - // } - // } - //} - - - //for mssd - if(cbranch[i]->detector_id == 5){ - if(cbranch[i]->adc == true){ - mssd_num++; - if(mssd_num%16 == 1){ - Int_t mux_id = mssd_num/16; - cbranch[i]->mpos1_prm = mpos[2*mux_id]; - cbranch[i]->mpos2_prm = mpos[2*mux_id + 1]; - - Int_t mux_tmp = mux_num; - for(Int_t j=0; jdetector_id == 5){ - if(mux_tmp > 0){ - mux_tmp--; - continue; - }else{ - //cout << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; - for(Int_t k=0; k<4; k++){ - cmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = i; - muxmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = k + 1; - } - mux_num++; - break; - } - } - } - } - }else if(cbranch[i]->adc == false){ - Int_t mux_t_tmp = mux_t_num; - for(Int_t j=0; jdetector_id == 5){ - if(mux_t_tmp > 0){ - mux_t_tmp--; - continue; - }else{ - //cout << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; - cmapping[mbranch[j]->segment_id[4]][mbranch[j]->channel[4]] = i; - - mux_t_num++; - break; - } - } - } - - } - continue; - } - - cmapping[cbranch[i]->geo][cbranch[i]->ch] = i; - - //cout << i << " " << cbranch_name << " " << seg << endl; - } -} - - -void TCordferBranchManager::GiveValue(Int_t geo, Int_t ch, Int_t val){ - if(rawdata){ GiveRawValue(geo, ch, val); } - if(mapdata){ GiveMapValue(geo, ch, val); } - if(calibration){ GiveCalibValue(geo, ch, val); } -} - - -void TCordferBranchManager::GiveRawValue(Int_t geo, Int_t ch, Int_t val){ - Int_t index = rmapping[geo]; - - //if not register segment - if(index < 0){ - if(rmapflag == false){ - cout << "WARNING: rmapping is not completed" << endl; - } - rmapflag=true; - return; - } - - if(branch[index]->detector_id == 10){ - Int_t ht_id = branch[index+ch]->nhit; - branch[index+ch]->bra_val[ht_id] = val; - branch[index+ch]->nhit += 1; - - //Int_t ht_id = branch[index+1]->bra_val[ch]; - //branch[index]->mhtdc_val[ch][ht_id] = val; - //branch[index+1]->bra_val[ch] += 1; - ////if(ch == 0){ cout << index << " " << ch << " " << ht_id << " " << branch[index]->mhtdc_val[ch][ht_id] << endl; } - }else{ - branch[index]->bra_val[ch] = val; - } -} - - -void TCordferBranchManager::GiveMapValue(Int_t geo, Int_t ch, Int_t val){ - Int_t index = mmapping[geo][ch]; - if(index < 0){ - if(mmapflag == false){ - cout << "-- WARNING: mmapping is not completed" << endl; - } - mmapflag=true; - return; - } - - array index_array = GetBranchChannelIndex(index); - Int_t i = index_array[0]; - Int_t j = index_array[1]; - - mbranch[i]->bra_val[j] = val; -} - - -void TCordferBranchManager::GiveCalibValue(Int_t geo, Int_t ch, Int_t val){ - Int_t index = cmapping[geo][ch]; - Int_t mux_id = muxmapping[geo][ch]; - if(index < 0){ - if(cmapflag == false){ - cout << "-- WARNING: cmapping is not completed" << endl; - } - cmapflag=true; - return; - } - - //calib_status - // 0->not mux, 1->first mux signal, other -> "val" buffer - Int_t calib_status = cbranch[index]->GetCalibStatus(val, mux_id); - if(calib_status == 1){ return; } - else if(calib_status == 0){ cbranch[index]->SetCalibValue(val); } - else{ - Int_t add_ch = cbranch[index]->GetAddBranchIndex(mux_id); - if(add_ch == -1){ return; } - cbranch[index + add_ch]->SetCalibValue(calib_status); - } -} - - -void TCordferBranchManager::Fill(){ - if(rawdata){ RawFill(); } - if(mapdata){ MapFill(); } - if(calibration){ CalibFill(); } -} - - -void TCordferBranchManager::ClearAll(){ - if(rawdata){ ClearRawAll(); } - if(mapdata){ ClearMapAll(); } - if(calibration){ ClearCalibAll(); } -} - - -void TCordferBranchManager::ClearRawAll(){ - for(Int_t i=0; iClear(); - cout << "branch[" << i << "] ->Clear" << endl; - } -} - - -void TCordferBranchManager::ClearMapAll(){ - for(Int_t i=0; iClear(); - } -} - - -void TCordferBranchManager::ClearCalibAll(){ - for(Int_t i=0; iClear(); - } -} - - -void TCordferBranchManager::DataWrite(){ - if(rawdata){ RawDataWrite(); } - if(mapdata){ MapDataWrite(); } - if(calibration){ CalibDataWrite(); } -} - - -void TCordferBranchManager::FileClose(){ - rootfile->Close(); - for(Int_t i=0; iFreeAll(); - } - - for(Int_t i=0; iFreeMemory(); - } - -} - -// for debug -void TCordferBranchManager::DEBUG_PRINT(){ - for(Int_t i=0; i< branch.size(); i++){ - cout << "\tDEBUG: " << branch[i]->GetBranchName() << endl; - cout << "\t\t" << branch[i]->size << " " << branch[i]->nhit << endl; - } -} -- GitLab From de008a92715a0defb60cfebb10429fc2dab74c02 Mon Sep 17 00:00:00 2001 From: kodaiokawa Date: Wed, 23 Mar 2022 14:27:04 +0900 Subject: [PATCH 07/15] [clean] del unused function --- include/MapReader.hh | 6 +- include/TCordferBranchManager.hh | 16 - old/TCordferBranchManager.cpp | 562 ++++++++++++++++++++++++ old/TCordferBranchManager.hh | 114 +++++ {src => old}/TCordferCalibBranch.cpp | 0 {include => old}/TCordferCalibBranch.hh | 0 src/CMakeLists.txt | 1 - src/TCordferBranchManager.cpp | 298 ------------- 8 files changed, 679 insertions(+), 318 deletions(-) create mode 100644 old/TCordferBranchManager.cpp create mode 100644 old/TCordferBranchManager.hh rename {src => old}/TCordferCalibBranch.cpp (100%) rename {include => old}/TCordferCalibBranch.hh (100%) diff --git a/include/MapReader.hh b/include/MapReader.hh index 4f70505..032a022 100644 --- a/include/MapReader.hh +++ b/include/MapReader.hh @@ -33,9 +33,9 @@ class MapReader ~MapReader(){} Int_t size = 0; - vector< vector > segment_id; - vector< vector > channel; - vector detector_name; + vector< vector > segment_id; //segment_id[branch_id][branch_ch][geo] + vector< vector > channel; //channel[branch_id][branch_ch][channel] + vector detector_name; //detector_name[branch_id] void SetMapFile(TString in_filename){ filename = in_filename; } diff --git a/include/TCordferBranchManager.hh b/include/TCordferBranchManager.hh index 473a5f1..c40cee8 100644 --- a/include/TCordferBranchManager.hh +++ b/include/TCordferBranchManager.hh @@ -3,7 +3,6 @@ #include #include -//#include #include #include @@ -14,7 +13,6 @@ #include "CalibParamReader.hh" #include "TCordferRawBranch.hh" #include "TCordferMapBranch.hh" -#include "TCordferCalibBranch.hh" using namespace std; @@ -28,26 +26,19 @@ class TCordferBranchManager TTree *tree; TTree *mtree; - //TTree *ctree; TH1I *scaler; vector branch; vector mbranch; - //vector cbranch; Int_t rmapping[100]; //segment_id(geo) -> branch index Int_t mmapping[100][100]; // [segment_id][ch] -> branch index - //Int_t cmapping[100][100]; - //Int_t muxmapping[100][100]; - //vector< vector > mpos; //for position parameter of MUX (mssd) bool rawdata = false; bool mapdata = false; - //bool calibration = false; bool rmapflag = false; bool mmapflag = false; - //bool cmapflag = false; public: TCordferBranchManager(){} @@ -66,12 +57,10 @@ class TCordferBranchManager void CreateTree(); void CreateRawTree(); void CreateMapTree(); - //void CreateCalibTree(); void CreateBranch(); void CreateRawBranch(); void CreateMapBranch(); - //void CreateCalibBranch(); Int_t MakeBranchChannelIndex(Int_t bra_id, Int_t ch_id){ return bra_id*100 + ch_id; } @@ -84,27 +73,22 @@ class TCordferBranchManager void CreateMapping(); void CreateRawMapping(); void CreateMapMapping(); - //void CreateCalibMapping(); void GiveValue(Int_t geo, Int_t ch, Int_t val); void GiveRawValue(Int_t geo, Int_t ch, Int_t val); void GiveMapValue(Int_t geo, Int_t ch, Int_t val); - // void GiveCalibValue(Int_t geo, Int_t ch, Int_t val); void Fill(); void RawFill(){ tree->Fill(); } void MapFill(){ mtree->Fill(); } - //void CalibFill() { ctree->Fill(); } void ClearAll(); void ClearRawAll(); void ClearMapAll(); - //void ClearCalibAll(); void DataWrite(); void RawDataWrite(){ tree->Write(); } void MapDataWrite(){ mtree->Write(); } - //void CalibDataWrite(){ ctree->Write(); } void FileClose(); diff --git a/old/TCordferBranchManager.cpp b/old/TCordferBranchManager.cpp new file mode 100644 index 0000000..0e9adf8 --- /dev/null +++ b/old/TCordferBranchManager.cpp @@ -0,0 +1,562 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "TCordferBranchManager.hh" + +using namespace std; + +//#define SETTING_SI26A true + +void TCordferBranchManager::Readyaml(TString yamlfile){ + FileStat_t info; + if(gSystem->GetPathInfo(yamlfile.Data(), info) != 0){ + cerr << "EROOR: File '" << yamlfile.Data() << "' does not exist." << endl; + exit(0); + } + recipe = YAML::LoadFile(yamlfile.Data()); + cout << "-- yaml file: " << yamlfile << endl; + + if(recipe["raw_tree"]["in_use"].as() == "on"){ + rawdata=true; + cout << "\t-- raw_tree in use" << endl; + } + if(recipe["map_tree"]["in_use"].as() == "on"){ + mapdata=true; + cout << "\t-- map_tree in use" << endl; + } + //if(recipe["calib_tree"]["in_use"].as() == "on"){ + // calibration=true; + // cout << "\t-- calib_tree in use" << endl; + //} + + //if(mapdata == false && calibration == true){ + // cout << "ERROR: calibration tree require to use map tree" << endl; + // cout << "\tCHANGE recipe in yaml file" << endl; + // exit(0); + //} +} + + +void TCordferBranchManager::CreateTree(){ + if(rawdata){ CreateRawTree(); } + if(mapdata){ CreateMapTree(); } + //if(calibration){ CreateCalibTree(); } +} + + +void TCordferBranchManager::CreateRawTree(){ + TString rawname = recipe["raw_tree"]["name"].as(); + TString rawdesc = recipe["raw_tree"]["description"].as(); + + tree = new TTree(rawname, rawdesc); +} + + +void TCordferBranchManager::CreateMapTree(){ + TString mapname = recipe["map_tree"]["name"].as(); + TString mapdesc = recipe["map_tree"]["description"].as(); + + mtree = new TTree(mapname, mapdesc); +} + + +//void TCordferBranchManager::CreateCalibTree(){ +// TString calibname = recipe["calib_tree"]["name"].as(); +// TString calibdesc = recipe["calib_tree"]["description"].as(); +// +// ctree = new TTree(calibname, calibdesc); +//} + + +void TCordferBranchManager::CreateBranch(){ + if(rawdata){ CreateRawBranch(); } + if(mapdata){ CreateMapBranch(); } + //if(calibration){ CreateCalibBranch(); } +} + + +void TCordferBranchManager::CreateRawBranch(){ + YAML::Node setup = recipe["setup"].as(); + for(Int_t i=0; i(); + TString bname = setup[i]["name"].as(); + Int_t det_id = setup[i]["detector_id"].as(); + + if(det_id != 10){ + Int_t nch = setup[i]["channel"].as(); + TCordferRawBranch *raw_branch = new TCordferRawBranch(bname, seg_id, nch, det_id); + + TString brancharray; + brancharray.Form("%s[%d]/I", bname.Data(), raw_branch->size); + + tree->Branch(bname.Data(), raw_branch->bra_val, brancharray); + branch.push_back(raw_branch); + + }else{ + TString mhtdc_name = setup[i]["branches"][0]["name"].as(); + Int_t nch = setup[i]["branches"][0]["channel"].as(); + Int_t nhit = setup[i]["branches"][0]["maxhit"].as(); + + for(Int_t j=0; jsize); + + tree->Branch(bra_name.Data(), mhtdc_branch->bra_val, brancharray); + branch.push_back(mhtdc_branch); + } + + } + } +} + + +void TCordferBranchManager::CreateMapBranch(){ + YAML::Node map_setup = recipe["map_setup"].as(); + for(Int_t i=0; i(); + Int_t det_id = map_setup[i]["det_flag"].as(); + //1: coin 2: rf 3: PPAC 4: ssd 5: dssd 6: mssd + + MapReader *mfile = new MapReader(mname, det_id); + for(Int_t j=0; jdetector_name.size(); j++){ + TString bname = mfile->detector_name[j]; + TCordferMapBranch *map_branch = new TCordferMapBranch(bname, det_id, mfile->segment_id[j].size()); + map_branch->SetMapInfo(mfile->segment_id[j], mfile->channel[j]); + + TString brancharray; + brancharray.Form("%s[%d]/I", bname.Data(), map_branch->size); + + mtree->Branch(bname.Data(), map_branch->bra_val, brancharray); + mbranch.push_back(map_branch); + } + } +} + + +//void TCordferBranchManager::CreateCalibBranch(){ +// YAML::Node map_setup = recipe["map_setup"].as(); +// for(Int_t i=0; i(); +// Int_t det_id = map_setup[i]["det_flag"].as(); +// +// //************** +// if(det_id == 3){ continue; } //for PPAC +// //************** +// +// //default (except of PPAC) +// TString cname[2]; +// cname[0] = map_setup[i]["calibfile"]["energy"].as(); +// cname[1] = map_setup[i]["calibfile"]["timing"].as(); +// +// for(Int_t j=0; j<2; j++){ +// FileStat_t info; +// if(cname[j] == ""){ continue; } +// else if(gSystem->GetPathInfo(cname[j].Data(), info) != 0){ +// cerr << "WARNING: in yaml File, '" << cname[j].Data() << "' does not exist." << endl; +// cerr << " not include " << cname[j].Data() << " in ctree" << endl; +// continue; +// } +// +// CalibParamReader *cfile = new CalibParamReader(det_name, cname[j]); +// for(Int_t k=0; kbranch_name.size(); k++){ +// TString bname = cfile->branch_name[k]; +// TCordferCalibBranch *calib_branch = new TCordferCalibBranch(bname, det_id); +// calib_branch->CopyCalibInfo(cfile->dim, cfile->parameters[k]); +// +// TString brancharray; +// if(j==0){ +// brancharray.Form("%s/D", bname.Data()); +// ctree->Branch(bname.Data(), &calib_branch->cbra_val, brancharray); +// calib_branch->adc = true; +// }else{ +// brancharray.Form("%s[12]/D", bname.Data()); +// ctree->Branch(bname.Data(), calib_branch->cbra_tval, brancharray); +// calib_branch->adc = false; +// } +// cbranch.push_back(calib_branch); +// } +// } +// if(det_id == 5){ //for parameter reader of MUX position (mssd) +// TString pos_name = map_setup[i]["calibfile"]["position"].as(); +// FileStat_t info; +// if(gSystem->GetPathInfo(pos_name.Data(), info) != 0){ +// cerr << "ERROR: in yaml File, '" << pos_name.Data() << "' does not exist." << endl; +// cerr << " mssd calibration requires " << pos_name.Data() << " !" << endl; +// exit(0); +// } +// +// CalibParamReader *cfile = new CalibParamReader(); +// cfile->ReadMUXposCalib(pos_name); +// mpos = cfile->position_prms; +// } +// } +//} + + +void TCordferBranchManager::CreateMapping(){ + if(rawdata){ CreateRawMapping(); } + if(mapdata){ CreateMapMapping(); } + //if(calibration){ CreateCalibMapping(); } +} + + +void TCordferBranchManager::CreateRawMapping(){ + memset(rmapping, -1, sizeof(rmapping)); + Int_t seg_buf = -99; + for(Int_t i=0; igeo; + if(seg == seg_buf){ continue; } + seg_buf = seg; + rmapping[seg] = i; + } +} + + +void TCordferBranchManager::CreateMapMapping(){ + Int_t m = sizeof(mmapping) / sizeof(mmapping[0]); + Int_t n = sizeof(mmapping[0]) / sizeof(mmapping[0][0]); + memset(mmapping, -1, sizeof(mmapping[0][0])*m*n); + + for(Int_t i=0; isize; j++){ + mmapping[mbranch[i]->segment_id[j]][mbranch[i]->channel[j]] = MakeBranchChannelIndex(i, j); + } + } +} + + +//void TCordferBranchManager::CreateCalibMapping(){ +// Int_t m = sizeof(cmapping) / sizeof(cmapping[0]); +// Int_t n = sizeof(cmapping[0]) / sizeof(cmapping[0][0]); +// memset(cmapping, -1, sizeof(cmapping[0][0])*m*n); +// +// Int_t M = sizeof(muxmapping) / sizeof(muxmapping[0]); +// Int_t N = sizeof(muxmapping[0]) / sizeof(muxmapping[0][0]); +// memset(muxmapping, -1, sizeof(muxmapping[0][0])*M*N); +// +// Int_t coin_num = 0; +// Int_t rf_num = 0; +// Int_t ssd_num = 0; +// Int_t ssd_t_num = 0; +// Int_t mssd_num = 0; +// Int_t mux_num = 0; +// Int_t mux_t_num = 0; +// +// for(Int_t i=0; idetector_id == 1){ +// Int_t coin_tmp = coin_num; +// for(Int_t j=0; jdetector_id == 1){ +// if(coin_tmp > 0){ +// coin_tmp--; +// continue; +// }else{ +// cbranch[i]->geo = mbranch[j]->segment_id[0]; +// cbranch[i]->ch = mbranch[j]->channel[0]; +// coin_num++; +// break; +// } +// } +// } +// } +// +// //for rf data +// if(cbranch[i]->detector_id == 2){ +// Int_t rf_index; +// for(Int_t j=0; jdetector_id == 2){ rf_index = j; } +// } +// if(rf_num == 0){ +// cbranch[i]->geo = mbranch[rf_index]->segment_id[0]; +// cbranch[i]->ch = mbranch[rf_index]->channel[0]; +// rf_num++; +// }else if(rf_num == 1){ +// cbranch[i]->geo = mbranch[rf_index]->segment_id[1]; +// cbranch[i]->ch = mbranch[rf_index]->channel[1]; +// rf_num++; +// }else{ +// cout << "WARNING: format of mapfile of rf is differenet" << endl; +// } +// } +// +// //for ppac +// //if(cbranch[i]->detector_id == 3){} +// +// +// //for dssd, ssd data +// if(cbranch[i]->detector_id == 4){ +// if(cbranch[i]->adc == true){ +// Int_t ssd_tmp = ssd_num; +// for(Int_t j=0; jdetector_id == 4){ +// if(ssd_tmp > 0){ +// ssd_tmp--; +// continue; +// }else{ +// cbranch[i]->geo = mbranch[j]->segment_id[0]; +// cbranch[i]->ch = mbranch[j]->channel[0]; +// ssd_num++; +// break; +// } +// } +// } +// }else if(cbranch[i]->adc == false){ +// Int_t ssd_t_tmp = ssd_t_num; +// for(Int_t j=0; jdetector_id == 4){ +// if(ssd_t_tmp > 0){ +// ssd_t_tmp--; +// continue; +// }else{ +// cbranch[i]->geo = mbranch[j]->segment_id[1]; +// cbranch[i]->ch = mbranch[j]->channel[1]; +// ssd_t_num++; +// break; +// } +// } +// } +// } +// } +// +// +// //for mssd +// if(cbranch[i]->detector_id == 5){ +// if(cbranch[i]->adc == true){ +// mssd_num++; +// if(mssd_num%16 == 1){ +// Int_t mux_id = mssd_num/16; +// cbranch[i]->mpos1_prm = mpos[2*mux_id]; +// cbranch[i]->mpos2_prm = mpos[2*mux_id + 1]; +// +// Int_t mux_tmp = mux_num; +// for(Int_t j=0; jdetector_id == 5){ +// if(mux_tmp > 0){ +// mux_tmp--; +// continue; +// }else{ +// //cout << i << " " << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; +// for(Int_t k=0; k<4; k++){ +// //cout << " " << mbranch[j]->segment_id[k] << " " << mbranch[j]->channel[k] << endl; +// cmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = i; +// muxmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = k + 1; +// } +// mux_num++; +// break; +// } +// } +// } +// } +// }else if(cbranch[i]->adc == false){ +// Int_t mux_t_tmp = mux_t_num; +// for(Int_t j=0; jdetector_id == 5){ +// if(mux_t_tmp > 0){ +// mux_t_tmp--; +// continue; +// }else{ +// //cout << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; +// cmapping[mbranch[j]->segment_id[4]][mbranch[j]->channel[4]] = i; +// +// mux_t_num++; +// break; +// } +// } +// } +// +// } +// continue; +// } +// +// cmapping[cbranch[i]->geo][cbranch[i]->ch] = i; +// +// //cout << i << " " << cbranch_name << " " << seg << endl; +// } +//} + + +void TCordferBranchManager::GiveValue(Int_t geo, Int_t ch, Int_t val){ + if(rawdata){ GiveRawValue(geo, ch, val); } + if(mapdata){ GiveMapValue(geo, ch, val); } + //if(calibration){ GiveCalibValue(geo, ch, val); } +} + + +void TCordferBranchManager::GiveRawValue(Int_t geo, Int_t ch, Int_t val){ + Int_t index = rmapping[geo]; + + //if not register segment + if(index < 0){ + if(rmapflag == false){ + cout << "WARNING: rmapping is not completed" << endl; + } + rmapflag=true; + return; + } + + if(branch[index]->detector_id == 10){ + Int_t ht_id = branch[index+ch]->nhit; + branch[index+ch]->bra_val[ht_id] = val; + branch[index+ch]->nhit += 1; + + }else{ + branch[index]->bra_val[ch] = val; + } +} + + +void TCordferBranchManager::GiveMapValue(Int_t geo, Int_t ch, Int_t val){ + Int_t index = mmapping[geo][ch]; + if(index < 0){ + if(mmapflag == false){ + cout << "-- WARNING: mmapping is not completed" << endl; + } + mmapflag=true; + return; + } + + array index_array = GetBranchChannelIndex(index); + Int_t i = index_array[0]; + Int_t j = index_array[1]; + + mbranch[i]->bra_val[j] = val; +} + + +//void TCordferBranchManager::GiveCalibValue(Int_t geo, Int_t ch, Int_t val){ +// Int_t index = cmapping[geo][ch]; +// Int_t mux_id = muxmapping[geo][ch]; +// if(index < 0){ +// if(cmapflag == false){ +// cout << "-- WARNING: cmapping is not completed" << endl; +// } +// cmapflag=true; +// return; +// } +// +// //START user setting (si26a) +// if(SETTING_SI26A){ +// if(index == 163){ return; } //for MUX2-1 (broken) +// } +// //END +// +// //calib_status +// // 0->not mux, 1->first mux signal, other -> "val" buffer +// Int_t calib_status = cbranch[index]->GetCalibStatus(val, mux_id); +// //if(calib_status == 1){ cout << cbranch[index]->GetBranchName() << endl; } +// if(calib_status == 1){ return; } +// else if(calib_status == 0){ cbranch[index]->SetCalibValue(val); } +// else{ +// +// //START user setting (si26a) +// if(SETTING_SI26A){ +// if(index == 195){ //for MUX3-1 (chained with MUX2-1) +// Int_t pos_val = cbranch[index]->UserGetPosValue(mux_id); +// if(pos_val == -1){ +// cout << "ERROR" << endl; +// return; +// } +// //cout << cbranch[index]->GetBranchName() << " " << cbranch[index-32]->GetBranchName() << endl; +// Int_t add_ch = cbranch[index-32]->UserGetAddBranchIndex(pos_val, mux_id); //in case MUX2-1 +// if(add_ch != -1){ add_ch -= 32; } +// else if(add_ch == -1){ +// Int_t add_ch2 = cbranch[index]->UserGetAddBranchIndex(pos_val, mux_id);//in case MUX3-1 +// if(add_ch2 == -1){ return; } +// else{ add_ch = add_ch2; } +// } +// cbranch[index + add_ch]->SetCalibValue(calib_status); +// return; +// } +// } +// //END +// +// Int_t add_ch = cbranch[index]->GetAddBranchIndex(mux_id); +// if(add_ch == -1){ return; } +// //cout << "\t" << cbranch[index]->GetBranchName() << " " << index << " " << add_ch << endl; +// cbranch[index + add_ch]->SetCalibValue(calib_status); +// } +//} + + +void TCordferBranchManager::Fill(){ + if(rawdata){ RawFill(); } + if(mapdata){ MapFill(); } + //if(calibration){ CalibFill(); } +} + + +void TCordferBranchManager::ClearAll(){ + if(rawdata){ ClearRawAll(); } + if(mapdata){ ClearMapAll(); } + //if(calibration){ ClearCalibAll(); } +} + + +void TCordferBranchManager::ClearRawAll(){ + for(Int_t i=0; iClear(); + } +} + + +void TCordferBranchManager::ClearMapAll(){ + for(Int_t i=0; iClear(); + } +} + + +//void TCordferBranchManager::ClearCalibAll(){ +// for(Int_t i=0; iClear(); +// } +//} + + +void TCordferBranchManager::DataWrite(){ + if(rawdata){ RawDataWrite(); } + if(mapdata){ MapDataWrite(); } + //if(calibration){ CalibDataWrite(); } +} + + +void TCordferBranchManager::FileClose(){ + rootfile->Close(); + for(Int_t i=0; iFreeAll(); + } + + for(Int_t i=0; iFreeMemory(); + } + +} + +// for debug +void TCordferBranchManager::DEBUG_PRINT(){ + for(Int_t i=0; i< branch.size(); i++){ + cout << "\tDEBUG: " << branch[i]->GetBranchName() << endl; + cout << "\t\t" << branch[i]->size << " " << branch[i]->nhit << endl; + } +} diff --git a/old/TCordferBranchManager.hh b/old/TCordferBranchManager.hh new file mode 100644 index 0000000..473a5f1 --- /dev/null +++ b/old/TCordferBranchManager.hh @@ -0,0 +1,114 @@ +#ifndef _TCORDFERBRANCHMANAGER_HH_ +#define _TCORDFERBRANCHMANAGER_HH_ + +#include +#include +//#include +#include + +#include +#include +#include + +#include "MapReader.hh" +#include "CalibParamReader.hh" +#include "TCordferRawBranch.hh" +#include "TCordferMapBranch.hh" +#include "TCordferCalibBranch.hh" + +using namespace std; + +class TCordferBranchManager +{ + private: + TFile *rootfile; + TString root_name; + TString ridf_name; + YAML::Node recipe; + + TTree *tree; + TTree *mtree; + //TTree *ctree; + TH1I *scaler; + + vector branch; + vector mbranch; + //vector cbranch; + Int_t rmapping[100]; //segment_id(geo) -> branch index + Int_t mmapping[100][100]; // [segment_id][ch] -> branch index + //Int_t cmapping[100][100]; + //Int_t muxmapping[100][100]; + + //vector< vector > mpos; //for position parameter of MUX (mssd) + + bool rawdata = false; + bool mapdata = false; + //bool calibration = false; + + bool rmapflag = false; + bool mmapflag = false; + //bool cmapflag = false; + + public: + TCordferBranchManager(){} + TCordferBranchManager(TString input, TString output){ + ridf_name = input; + root_name = output; + } + ~TCordferBranchManager(){} + + TString get_ridf_name(){ return ridf_name; } + TString get_root_name(){ return root_name; } + + void Readyaml(TString yamlfile); + void CreateRootFile(){ rootfile = new TFile(root_name.Data(), "recreate"); } + + void CreateTree(); + void CreateRawTree(); + void CreateMapTree(); + //void CreateCalibTree(); + + void CreateBranch(); + void CreateRawBranch(); + void CreateMapBranch(); + //void CreateCalibBranch(); + Int_t MakeBranchChannelIndex(Int_t bra_id, Int_t ch_id){ + return bra_id*100 + ch_id; + } + array GetBranchChannelIndex(Int_t index){ + Int_t j = index % 100; + Int_t i = (index - j)/100; + return {i, j}; + } + + void CreateMapping(); + void CreateRawMapping(); + void CreateMapMapping(); + //void CreateCalibMapping(); + + void GiveValue(Int_t geo, Int_t ch, Int_t val); + void GiveRawValue(Int_t geo, Int_t ch, Int_t val); + void GiveMapValue(Int_t geo, Int_t ch, Int_t val); + // void GiveCalibValue(Int_t geo, Int_t ch, Int_t val); + + void Fill(); + void RawFill(){ tree->Fill(); } + void MapFill(){ mtree->Fill(); } + //void CalibFill() { ctree->Fill(); } + + void ClearAll(); + void ClearRawAll(); + void ClearMapAll(); + //void ClearCalibAll(); + + void DataWrite(); + void RawDataWrite(){ tree->Write(); } + void MapDataWrite(){ mtree->Write(); } + //void CalibDataWrite(){ ctree->Write(); } + + void FileClose(); + + void DEBUG_PRINT(); +}; + +#endif diff --git a/src/TCordferCalibBranch.cpp b/old/TCordferCalibBranch.cpp similarity index 100% rename from src/TCordferCalibBranch.cpp rename to old/TCordferCalibBranch.cpp diff --git a/include/TCordferCalibBranch.hh b/old/TCordferCalibBranch.hh similarity index 100% rename from include/TCordferCalibBranch.hh rename to old/TCordferCalibBranch.hh diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fec8b61..3c26384 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,7 +4,6 @@ add_library(sources SHARED CalibParamReader.cpp TCordferRawBranch.cpp TCordferMapBranch.cpp - TCordferCalibBranch.cpp TCordferBranchManager.cpp ) #add_library(sources SHARED diff --git a/src/TCordferBranchManager.cpp b/src/TCordferBranchManager.cpp index 0e9adf8..3cf5da8 100644 --- a/src/TCordferBranchManager.cpp +++ b/src/TCordferBranchManager.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -19,7 +18,6 @@ using namespace std; -//#define SETTING_SI26A true void TCordferBranchManager::Readyaml(TString yamlfile){ FileStat_t info; @@ -38,23 +36,12 @@ void TCordferBranchManager::Readyaml(TString yamlfile){ mapdata=true; cout << "\t-- map_tree in use" << endl; } - //if(recipe["calib_tree"]["in_use"].as() == "on"){ - // calibration=true; - // cout << "\t-- calib_tree in use" << endl; - //} - - //if(mapdata == false && calibration == true){ - // cout << "ERROR: calibration tree require to use map tree" << endl; - // cout << "\tCHANGE recipe in yaml file" << endl; - // exit(0); - //} } void TCordferBranchManager::CreateTree(){ if(rawdata){ CreateRawTree(); } if(mapdata){ CreateMapTree(); } - //if(calibration){ CreateCalibTree(); } } @@ -74,18 +61,9 @@ void TCordferBranchManager::CreateMapTree(){ } -//void TCordferBranchManager::CreateCalibTree(){ -// TString calibname = recipe["calib_tree"]["name"].as(); -// TString calibdesc = recipe["calib_tree"]["description"].as(); -// -// ctree = new TTree(calibname, calibdesc); -//} - - void TCordferBranchManager::CreateBranch(){ if(rawdata){ CreateRawBranch(); } if(mapdata){ CreateMapBranch(); } - //if(calibration){ CreateCalibBranch(); } } @@ -152,70 +130,10 @@ void TCordferBranchManager::CreateMapBranch(){ } -//void TCordferBranchManager::CreateCalibBranch(){ -// YAML::Node map_setup = recipe["map_setup"].as(); -// for(Int_t i=0; i(); -// Int_t det_id = map_setup[i]["det_flag"].as(); -// -// //************** -// if(det_id == 3){ continue; } //for PPAC -// //************** -// -// //default (except of PPAC) -// TString cname[2]; -// cname[0] = map_setup[i]["calibfile"]["energy"].as(); -// cname[1] = map_setup[i]["calibfile"]["timing"].as(); -// -// for(Int_t j=0; j<2; j++){ -// FileStat_t info; -// if(cname[j] == ""){ continue; } -// else if(gSystem->GetPathInfo(cname[j].Data(), info) != 0){ -// cerr << "WARNING: in yaml File, '" << cname[j].Data() << "' does not exist." << endl; -// cerr << " not include " << cname[j].Data() << " in ctree" << endl; -// continue; -// } -// -// CalibParamReader *cfile = new CalibParamReader(det_name, cname[j]); -// for(Int_t k=0; kbranch_name.size(); k++){ -// TString bname = cfile->branch_name[k]; -// TCordferCalibBranch *calib_branch = new TCordferCalibBranch(bname, det_id); -// calib_branch->CopyCalibInfo(cfile->dim, cfile->parameters[k]); -// -// TString brancharray; -// if(j==0){ -// brancharray.Form("%s/D", bname.Data()); -// ctree->Branch(bname.Data(), &calib_branch->cbra_val, brancharray); -// calib_branch->adc = true; -// }else{ -// brancharray.Form("%s[12]/D", bname.Data()); -// ctree->Branch(bname.Data(), calib_branch->cbra_tval, brancharray); -// calib_branch->adc = false; -// } -// cbranch.push_back(calib_branch); -// } -// } -// if(det_id == 5){ //for parameter reader of MUX position (mssd) -// TString pos_name = map_setup[i]["calibfile"]["position"].as(); -// FileStat_t info; -// if(gSystem->GetPathInfo(pos_name.Data(), info) != 0){ -// cerr << "ERROR: in yaml File, '" << pos_name.Data() << "' does not exist." << endl; -// cerr << " mssd calibration requires " << pos_name.Data() << " !" << endl; -// exit(0); -// } -// -// CalibParamReader *cfile = new CalibParamReader(); -// cfile->ReadMUXposCalib(pos_name); -// mpos = cfile->position_prms; -// } -// } -//} - void TCordferBranchManager::CreateMapping(){ if(rawdata){ CreateRawMapping(); } if(mapdata){ CreateMapMapping(); } - //if(calibration){ CreateCalibMapping(); } } @@ -244,162 +162,10 @@ void TCordferBranchManager::CreateMapMapping(){ } -//void TCordferBranchManager::CreateCalibMapping(){ -// Int_t m = sizeof(cmapping) / sizeof(cmapping[0]); -// Int_t n = sizeof(cmapping[0]) / sizeof(cmapping[0][0]); -// memset(cmapping, -1, sizeof(cmapping[0][0])*m*n); -// -// Int_t M = sizeof(muxmapping) / sizeof(muxmapping[0]); -// Int_t N = sizeof(muxmapping[0]) / sizeof(muxmapping[0][0]); -// memset(muxmapping, -1, sizeof(muxmapping[0][0])*M*N); -// -// Int_t coin_num = 0; -// Int_t rf_num = 0; -// Int_t ssd_num = 0; -// Int_t ssd_t_num = 0; -// Int_t mssd_num = 0; -// Int_t mux_num = 0; -// Int_t mux_t_num = 0; -// -// for(Int_t i=0; idetector_id == 1){ -// Int_t coin_tmp = coin_num; -// for(Int_t j=0; jdetector_id == 1){ -// if(coin_tmp > 0){ -// coin_tmp--; -// continue; -// }else{ -// cbranch[i]->geo = mbranch[j]->segment_id[0]; -// cbranch[i]->ch = mbranch[j]->channel[0]; -// coin_num++; -// break; -// } -// } -// } -// } -// -// //for rf data -// if(cbranch[i]->detector_id == 2){ -// Int_t rf_index; -// for(Int_t j=0; jdetector_id == 2){ rf_index = j; } -// } -// if(rf_num == 0){ -// cbranch[i]->geo = mbranch[rf_index]->segment_id[0]; -// cbranch[i]->ch = mbranch[rf_index]->channel[0]; -// rf_num++; -// }else if(rf_num == 1){ -// cbranch[i]->geo = mbranch[rf_index]->segment_id[1]; -// cbranch[i]->ch = mbranch[rf_index]->channel[1]; -// rf_num++; -// }else{ -// cout << "WARNING: format of mapfile of rf is differenet" << endl; -// } -// } -// -// //for ppac -// //if(cbranch[i]->detector_id == 3){} -// -// -// //for dssd, ssd data -// if(cbranch[i]->detector_id == 4){ -// if(cbranch[i]->adc == true){ -// Int_t ssd_tmp = ssd_num; -// for(Int_t j=0; jdetector_id == 4){ -// if(ssd_tmp > 0){ -// ssd_tmp--; -// continue; -// }else{ -// cbranch[i]->geo = mbranch[j]->segment_id[0]; -// cbranch[i]->ch = mbranch[j]->channel[0]; -// ssd_num++; -// break; -// } -// } -// } -// }else if(cbranch[i]->adc == false){ -// Int_t ssd_t_tmp = ssd_t_num; -// for(Int_t j=0; jdetector_id == 4){ -// if(ssd_t_tmp > 0){ -// ssd_t_tmp--; -// continue; -// }else{ -// cbranch[i]->geo = mbranch[j]->segment_id[1]; -// cbranch[i]->ch = mbranch[j]->channel[1]; -// ssd_t_num++; -// break; -// } -// } -// } -// } -// } -// -// -// //for mssd -// if(cbranch[i]->detector_id == 5){ -// if(cbranch[i]->adc == true){ -// mssd_num++; -// if(mssd_num%16 == 1){ -// Int_t mux_id = mssd_num/16; -// cbranch[i]->mpos1_prm = mpos[2*mux_id]; -// cbranch[i]->mpos2_prm = mpos[2*mux_id + 1]; -// -// Int_t mux_tmp = mux_num; -// for(Int_t j=0; jdetector_id == 5){ -// if(mux_tmp > 0){ -// mux_tmp--; -// continue; -// }else{ -// //cout << i << " " << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; -// for(Int_t k=0; k<4; k++){ -// //cout << " " << mbranch[j]->segment_id[k] << " " << mbranch[j]->channel[k] << endl; -// cmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = i; -// muxmapping[mbranch[j]->segment_id[k]][mbranch[j]->channel[k]] = k + 1; -// } -// mux_num++; -// break; -// } -// } -// } -// } -// }else if(cbranch[i]->adc == false){ -// Int_t mux_t_tmp = mux_t_num; -// for(Int_t j=0; jdetector_id == 5){ -// if(mux_t_tmp > 0){ -// mux_t_tmp--; -// continue; -// }else{ -// //cout << cbranch[i]->GetBranchName() << " " << mbranch[j]->GetBranchName() << endl; -// cmapping[mbranch[j]->segment_id[4]][mbranch[j]->channel[4]] = i; -// -// mux_t_num++; -// break; -// } -// } -// } -// -// } -// continue; -// } -// -// cmapping[cbranch[i]->geo][cbranch[i]->ch] = i; -// -// //cout << i << " " << cbranch_name << " " << seg << endl; -// } -//} - void TCordferBranchManager::GiveValue(Int_t geo, Int_t ch, Int_t val){ if(rawdata){ GiveRawValue(geo, ch, val); } if(mapdata){ GiveMapValue(geo, ch, val); } - //if(calibration){ GiveCalibValue(geo, ch, val); } } @@ -444,72 +210,16 @@ void TCordferBranchManager::GiveMapValue(Int_t geo, Int_t ch, Int_t val){ } -//void TCordferBranchManager::GiveCalibValue(Int_t geo, Int_t ch, Int_t val){ -// Int_t index = cmapping[geo][ch]; -// Int_t mux_id = muxmapping[geo][ch]; -// if(index < 0){ -// if(cmapflag == false){ -// cout << "-- WARNING: cmapping is not completed" << endl; -// } -// cmapflag=true; -// return; -// } -// -// //START user setting (si26a) -// if(SETTING_SI26A){ -// if(index == 163){ return; } //for MUX2-1 (broken) -// } -// //END -// -// //calib_status -// // 0->not mux, 1->first mux signal, other -> "val" buffer -// Int_t calib_status = cbranch[index]->GetCalibStatus(val, mux_id); -// //if(calib_status == 1){ cout << cbranch[index]->GetBranchName() << endl; } -// if(calib_status == 1){ return; } -// else if(calib_status == 0){ cbranch[index]->SetCalibValue(val); } -// else{ -// -// //START user setting (si26a) -// if(SETTING_SI26A){ -// if(index == 195){ //for MUX3-1 (chained with MUX2-1) -// Int_t pos_val = cbranch[index]->UserGetPosValue(mux_id); -// if(pos_val == -1){ -// cout << "ERROR" << endl; -// return; -// } -// //cout << cbranch[index]->GetBranchName() << " " << cbranch[index-32]->GetBranchName() << endl; -// Int_t add_ch = cbranch[index-32]->UserGetAddBranchIndex(pos_val, mux_id); //in case MUX2-1 -// if(add_ch != -1){ add_ch -= 32; } -// else if(add_ch == -1){ -// Int_t add_ch2 = cbranch[index]->UserGetAddBranchIndex(pos_val, mux_id);//in case MUX3-1 -// if(add_ch2 == -1){ return; } -// else{ add_ch = add_ch2; } -// } -// cbranch[index + add_ch]->SetCalibValue(calib_status); -// return; -// } -// } -// //END -// -// Int_t add_ch = cbranch[index]->GetAddBranchIndex(mux_id); -// if(add_ch == -1){ return; } -// //cout << "\t" << cbranch[index]->GetBranchName() << " " << index << " " << add_ch << endl; -// cbranch[index + add_ch]->SetCalibValue(calib_status); -// } -//} - void TCordferBranchManager::Fill(){ if(rawdata){ RawFill(); } if(mapdata){ MapFill(); } - //if(calibration){ CalibFill(); } } void TCordferBranchManager::ClearAll(){ if(rawdata){ ClearRawAll(); } if(mapdata){ ClearMapAll(); } - //if(calibration){ ClearCalibAll(); } } @@ -527,17 +237,9 @@ void TCordferBranchManager::ClearMapAll(){ } -//void TCordferBranchManager::ClearCalibAll(){ -// for(Int_t i=0; iClear(); -// } -//} - - void TCordferBranchManager::DataWrite(){ if(rawdata){ RawDataWrite(); } if(mapdata){ MapDataWrite(); } - //if(calibration){ CalibDataWrite(); } } -- GitLab From e32644f9b15d7391bd1c0128a39a517c3d43275f Mon Sep 17 00:00:00 2001 From: Okawa Date: Wed, 30 Mar 2022 15:31:36 +0900 Subject: [PATCH 08/15] [mod] raw tree --- .gitignore | 2 ++ CMakeLists.txt | 8 ++++--- include/TCordferRawBranch.hh | 28 ++++++++++++++--------- recipe/recipe_si26a.yml | 8 ++----- src/CMakeLists.txt | 3 ++- src/TCordferBranchManager.cpp | 42 ++++++++++++++++------------------- src/TCordferRawBranch.cpp | 34 ++++++++++++++-------------- 7 files changed, 64 insertions(+), 61 deletions(-) diff --git a/.gitignore b/.gitignore index 35bedde..289881e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ anaroot/ build/ +build2/ rootfiles/ figure/ *.ridf *.root +*.swp diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b08153..77ecf97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ else() message(FATAL_ERROT "NOT FOUND ROOT") endif() +find_package(yaml-cpp REQUIRED) # install ANAROOT @@ -57,11 +58,12 @@ target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_14) target_include_directories(${PROJECT_NAME} PUBLIC ${ROOT_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/anaroot/include - ${PROJECT_SOURCE_DIR}/include) + ${PROJECT_SOURCE_DIR}/include + ) target_link_libraries(${PROJECT_NAME} - /usr/local/lib/libyaml-cpp.so - # yaml-cpp + /usr/local/lib64/libyaml-cpp.so +# yaml-cpp ${ROOT_LIBRARIES} -L${PROJECT_SOURCE_DIR}/anaroot/lib -lanacore -pthread -lm -ldl -rdynamic diff --git a/include/TCordferRawBranch.hh b/include/TCordferRawBranch.hh index 0a469fb..aa94cee 100644 --- a/include/TCordferRawBranch.hh +++ b/include/TCordferRawBranch.hh @@ -8,6 +8,10 @@ using namespace std; +#define MAX_CHANNEL 64 +#define MAX_NHIT 12 + + class TCordferRawBranch { private: @@ -20,36 +24,38 @@ class TCordferRawBranch geo = segment_id; size = bsize; detector_id = det_id; - MemorySet(); + max_hit = 0; } TCordferRawBranch(TString bname, Int_t segment_id, Int_t bsize, Int_t det_id, Int_t bnhit){ name = bname; geo = segment_id; size = bsize; detector_id = det_id; - nhit = bnhit; - TwoDimMemorySet(); + max_hit = bnhit; } ~TCordferRawBranch(){} + //const Int_t maxsize = 64; + //const Int_t maxhit = 12; Int_t size; Int_t detector_id; - Int_t nhit; + Int_t max_hit; Int_t geo; - Int_t *bra_val; - Int_t **mhtdc_val; + Int_t bra_val[MAX_CHANNEL]; + Int_t mhtdc_val[MAX_CHANNEL][MAX_NHIT]; + Int_t nhit[MAX_CHANNEL]; + //Int_t *bra_val; + //Int_t **mhtdc_val; TString GetBranchName(){ return name; } void Setgeo(Int_t id){ geo = id; } - void MemorySet(){ bra_val = new Int_t[size]; } - void TwoDimMemorySet(); - void FreeMemory(){ delete[] bra_val; } - void FreeTwoDimMemory(); + //void FreeMemory(){ delete[] bra_val; } + //void FreeTwoDimMemory(); void Clear(); - void FreeAll(); + //void FreeAll(); }; #endif diff --git a/recipe/recipe_si26a.yml b/recipe/recipe_si26a.yml index 437d2e8..1c3253f 100644 --- a/recipe/recipe_si26a.yml +++ b/recipe/recipe_si26a.yml @@ -105,10 +105,6 @@ setup: - segment_no.: 16 name: mhtdc detector_id: 10 - branches: - - name: mhtdc - channel: 64 - maxhit: 12 - - name: mhtdc_nhit - channel: 64 + channel: 64 + maxhit: 12 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3c26384..32f838e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -17,7 +17,8 @@ target_include_directories(sources PUBLIC ${PROJECT_SOURCE_DIR}/anaroot/include) target_link_libraries(sources - yaml-cpp +# yaml-cpp + /usr/local/lib64/libyaml-cpp.so ${ROOT_LIBRARIES} -L${PROJECT_SOURCE_DIR}/anaroot/lib -lanacore -pthread -lm -ldl -rdynamic) diff --git a/src/TCordferBranchManager.cpp b/src/TCordferBranchManager.cpp index 3cf5da8..5eed2b1 100644 --- a/src/TCordferBranchManager.cpp +++ b/src/TCordferBranchManager.cpp @@ -85,23 +85,16 @@ void TCordferBranchManager::CreateRawBranch(){ branch.push_back(raw_branch); }else{ - TString mhtdc_name = setup[i]["branches"][0]["name"].as(); - Int_t nch = setup[i]["branches"][0]["channel"].as(); - Int_t nhit = setup[i]["branches"][0]["maxhit"].as(); - - for(Int_t j=0; j(); + Int_t nch = setup[i]["channel"].as(); + Int_t nhit = setup[i]["maxhit"].as(); - TString brancharray; - brancharray.Form("%s[%d]/I", bra_name.Data(), mhtdc_branch->size); + TCordferRawBranch *mhtdc_branch = new TCordferRawBranch(bname, seg_id, nch, det_id, nhit); - tree->Branch(bra_name.Data(), mhtdc_branch->bra_val, brancharray); - branch.push_back(mhtdc_branch); - } + TString mhtdcarray; + mhtdcarray.Form("%s[%d][%d]/I", bname.Data(), mhtdc_branch->size, mhtdc_branch->max_hit); + tree->Branch(bname.Data(), mhtdc_branch->mhtdc_val, mhtdcarray); } } } @@ -139,11 +132,11 @@ void TCordferBranchManager::CreateMapping(){ void TCordferBranchManager::CreateRawMapping(){ memset(rmapping, -1, sizeof(rmapping)); - Int_t seg_buf = -99; + //Int_t seg_buf = -99; for(Int_t i=0; igeo; - if(seg == seg_buf){ continue; } - seg_buf = seg; + //if(seg == seg_buf){ continue; } + //seg_buf = seg; rmapping[seg] = i; } } @@ -182,9 +175,12 @@ void TCordferBranchManager::GiveRawValue(Int_t geo, Int_t ch, Int_t val){ } if(branch[index]->detector_id == 10){ - Int_t ht_id = branch[index+ch]->nhit; - branch[index+ch]->bra_val[ht_id] = val; - branch[index+ch]->nhit += 1; + //Int_t ht_id = branch[index+ch]->nhit; + //branch[index+ch]->bra_val[ht_id] = val; + //branch[index+ch]->nhit += 1; + Int_t ht_id = branch[index]->nhit[ch]; + branch[index]->mhtdc_val[ch][ht_id] = val; + branch[index]->nhit[ch]++; }else{ branch[index]->bra_val[ch] = val; @@ -245,9 +241,9 @@ void TCordferBranchManager::DataWrite(){ void TCordferBranchManager::FileClose(){ rootfile->Close(); - for(Int_t i=0; iFreeAll(); - } + //for(Int_t i=0; iFreeAll(); + //} for(Int_t i=0; iFreeMemory(); diff --git a/src/TCordferRawBranch.cpp b/src/TCordferRawBranch.cpp index cfd43ee..16661ea 100644 --- a/src/TCordferRawBranch.cpp +++ b/src/TCordferRawBranch.cpp @@ -8,30 +8,30 @@ using namespace std; -void TCordferRawBranch::TwoDimMemorySet(){ - mhtdc_val = new Int_t*[size]; - for(Int_t i=0; i Date: Fri, 1 Apr 2022 13:10:22 +0900 Subject: [PATCH 09/15] [update] map file (add mhtdc det_id) --- include/TCordferRawBranch.hh | 8 ----- map/si26a/dssd.map | 64 +++++++++++++++++----------------- map/si26a/mapmaker.pl | 21 ++++++++++-- map/si26a/ppac.map | 4 +-- map/si26a/ssd.map | 34 +++++++++---------- old/map/coin.map | 5 +++ old/map/dssd.map | 66 ++++++++++++++++++++++++++++++++++++ old/map/mssd.map | 8 +++++ old/map/ppac.map | 5 +++ old/map/rf.map | 3 ++ old/map/ssd.map | 19 +++++++++++ src/TCordferRawBranch.cpp | 13 ------- 12 files changed, 175 insertions(+), 75 deletions(-) create mode 100644 old/map/coin.map create mode 100644 old/map/dssd.map create mode 100644 old/map/mssd.map create mode 100644 old/map/ppac.map create mode 100644 old/map/rf.map create mode 100644 old/map/ssd.map diff --git a/include/TCordferRawBranch.hh b/include/TCordferRawBranch.hh index aa94cee..bd14f6e 100644 --- a/include/TCordferRawBranch.hh +++ b/include/TCordferRawBranch.hh @@ -35,8 +35,6 @@ class TCordferRawBranch } ~TCordferRawBranch(){} - //const Int_t maxsize = 64; - //const Int_t maxhit = 12; Int_t size; Int_t detector_id; Int_t max_hit; @@ -44,18 +42,12 @@ class TCordferRawBranch Int_t bra_val[MAX_CHANNEL]; Int_t mhtdc_val[MAX_CHANNEL][MAX_NHIT]; Int_t nhit[MAX_CHANNEL]; - //Int_t *bra_val; - //Int_t **mhtdc_val; TString GetBranchName(){ return name; } void Setgeo(Int_t id){ geo = id; } - //void FreeMemory(){ delete[] bra_val; } - //void FreeTwoDimMemory(); - void Clear(); - //void FreeAll(); }; #endif diff --git a/map/si26a/dssd.map b/map/si26a/dssd.map index 399b13c..b1c9109 100644 --- a/map/si26a/dssd.map +++ b/map/si26a/dssd.map @@ -1,37 +1,37 @@ # Map for dssd # Note: automatically produced with mapmaker.pl. Do not edit it directly -4, 1, 12 0 6 6 0, 12 0 7 16 32, ; dssd Tel1 dE1X 1 -4, 2, 12 0 6 6 1, 12 0 7 16 33, ; dssd Tel1 dE1X 2 -4, 3, 12 0 6 6 2, 12 0 7 16 34, ; dssd Tel1 dE1X 3 -4, 4, 12 0 6 6 3, 12 0 7 16 35, ; dssd Tel1 dE1X 4 -4, 5, 12 0 6 6 4, 12 0 7 16 36, ; dssd Tel1 dE1X 5 -4, 6, 12 0 6 6 5, 12 0 7 16 37, ; dssd Tel1 dE1X 6 -4, 7, 12 0 6 6 6, 12 0 7 16 38, ; dssd Tel1 dE1X 7 -4, 8, 12 0 6 6 7, 12 0 7 16 39, ; dssd Tel1 dE1X 8 -4, 9, 12 0 6 6 8, 12 0 7 16 40, ; dssd Tel1 dE1X 9 -4,10, 12 0 6 6 9, 12 0 7 16 41, ; dssd Tel1 dE1X 10 -4,11, 12 0 6 6 10, 12 0 7 16 42, ; dssd Tel1 dE1X 11 -4,12, 12 0 6 6 11, 12 0 7 16 43, ; dssd Tel1 dE1X 12 -4,13, 12 0 6 6 12, 12 0 7 16 44, ; dssd Tel1 dE1X 13 -4,14, 12 0 6 6 13, 12 0 7 16 45, ; dssd Tel1 dE1X 14 -4,15, 12 0 6 6 14, 12 0 7 16 46, ; dssd Tel1 dE1X 15 -4,16, 12 0 6 6 15, 12 0 7 16 47, ; dssd Tel1 dE1X 16 -4,17, 12 0 6 1 16, 12 0 7 16 48, ; dssd Tel1 dE2Y 1 -4,18, 12 0 6 1 17, 12 0 7 16 49, ; dssd Tel1 dE2Y 2 -4,19, 12 0 6 1 18, 12 0 7 16 50, ; dssd Tel1 dE2Y 3 -4,20, 12 0 6 1 19, 12 0 7 16 51, ; dssd Tel1 dE2Y 4 -4,21, 12 0 6 1 20, 12 0 7 16 52, ; dssd Tel1 dE2Y 5 -4,22, 12 0 6 1 21, 12 0 7 16 53, ; dssd Tel1 dE2Y 6 -4,23, 12 0 6 1 22, 12 0 7 16 54, ; dssd Tel1 dE2Y 7 -4,24, 12 0 6 1 23, 12 0 7 16 55, ; dssd Tel1 dE2Y 8 -4,25, 12 0 6 1 24, 12 0 7 16 56, ; dssd Tel1 dE2Y 9 -4,26, 12 0 6 1 25, 12 0 7 16 57, ; dssd Tel1 dE2Y 10 -4,27, 12 0 6 1 26, 12 0 7 16 58, ; dssd Tel1 dE2Y 11 -4,28, 12 0 6 1 27, 12 0 7 16 59, ; dssd Tel1 dE2Y 12 -4,29, 12 0 6 1 28, 12 0 7 16 60, ; dssd Tel1 dE2Y 13 -4,30, 12 0 6 1 29, 12 0 7 16 61, ; dssd Tel1 dE2Y 14 -4,31, 12 0 6 1 30, 12 0 7 16 62, ; dssd Tel1 dE2Y 15 -4,32, 12 0 6 1 31, 12 0 7 16 63, ; dssd Tel1 dE2Y 16 +4, 1, 12 0 6 6 0, 12 0 10 16 32, ; dssd Tel1 dE1X 1 +4, 2, 12 0 6 6 1, 12 0 10 16 33, ; dssd Tel1 dE1X 2 +4, 3, 12 0 6 6 2, 12 0 10 16 34, ; dssd Tel1 dE1X 3 +4, 4, 12 0 6 6 3, 12 0 10 16 35, ; dssd Tel1 dE1X 4 +4, 5, 12 0 6 6 4, 12 0 10 16 36, ; dssd Tel1 dE1X 5 +4, 6, 12 0 6 6 5, 12 0 10 16 37, ; dssd Tel1 dE1X 6 +4, 7, 12 0 6 6 6, 12 0 10 16 38, ; dssd Tel1 dE1X 7 +4, 8, 12 0 6 6 7, 12 0 10 16 39, ; dssd Tel1 dE1X 8 +4, 9, 12 0 6 6 8, 12 0 10 16 40, ; dssd Tel1 dE1X 9 +4,10, 12 0 6 6 9, 12 0 10 16 41, ; dssd Tel1 dE1X 10 +4,11, 12 0 6 6 10, 12 0 10 16 42, ; dssd Tel1 dE1X 11 +4,12, 12 0 6 6 11, 12 0 10 16 43, ; dssd Tel1 dE1X 12 +4,13, 12 0 6 6 12, 12 0 10 16 44, ; dssd Tel1 dE1X 13 +4,14, 12 0 6 6 13, 12 0 10 16 45, ; dssd Tel1 dE1X 14 +4,15, 12 0 6 6 14, 12 0 10 16 46, ; dssd Tel1 dE1X 15 +4,16, 12 0 6 6 15, 12 0 10 16 47, ; dssd Tel1 dE1X 16 +4,17, 12 0 6 1 16, 12 0 10 16 48, ; dssd Tel1 dE2Y 1 +4,18, 12 0 6 1 17, 12 0 10 16 49, ; dssd Tel1 dE2Y 2 +4,19, 12 0 6 1 18, 12 0 10 16 50, ; dssd Tel1 dE2Y 3 +4,20, 12 0 6 1 19, 12 0 10 16 51, ; dssd Tel1 dE2Y 4 +4,21, 12 0 6 1 20, 12 0 10 16 52, ; dssd Tel1 dE2Y 5 +4,22, 12 0 6 1 21, 12 0 10 16 53, ; dssd Tel1 dE2Y 6 +4,23, 12 0 6 1 22, 12 0 10 16 54, ; dssd Tel1 dE2Y 7 +4,24, 12 0 6 1 23, 12 0 10 16 55, ; dssd Tel1 dE2Y 8 +4,25, 12 0 6 1 24, 12 0 10 16 56, ; dssd Tel1 dE2Y 9 +4,26, 12 0 6 1 25, 12 0 10 16 57, ; dssd Tel1 dE2Y 10 +4,27, 12 0 6 1 26, 12 0 10 16 58, ; dssd Tel1 dE2Y 11 +4,28, 12 0 6 1 27, 12 0 10 16 59, ; dssd Tel1 dE2Y 12 +4,29, 12 0 6 1 28, 12 0 10 16 60, ; dssd Tel1 dE2Y 13 +4,30, 12 0 6 1 29, 12 0 10 16 61, ; dssd Tel1 dE2Y 14 +4,31, 12 0 6 1 30, 12 0 10 16 62, ; dssd Tel1 dE2Y 15 +4,32, 12 0 6 1 31, 12 0 10 16 63, ; dssd Tel1 dE2Y 16 4,33, 12 0 6 2 0, 12 0 7 11 16, ; dssd Tel2 dE2Y 1 4,34, 12 0 6 2 1, 12 0 7 11 17, ; dssd Tel2 dE2Y 2 4,35, 12 0 6 2 2, 12 0 7 11 18, ; dssd Tel2 dE2Y 3 diff --git a/map/si26a/mapmaker.pl b/map/si26a/mapmaker.pl index 84c9cde..657c9e7 100755 --- a/map/si26a/mapmaker.pl +++ b/map/si26a/mapmaker.pl @@ -18,6 +18,9 @@ $fp = 0; # everything is 0 at CRIB. $mhtdc=16; $did_t=7; $did_a=6; #detector id, TDC:7, ADC:6 for all ADC/TDC +#Add Okawa +$did_mht=10; +#End Okawa @@ -74,7 +77,10 @@ elsif ($category eq 'ppac') { @{$did[$id]}= &repeatn($did_a,$ndata); }else {#F2,F3 PPACs @{$module[$id]}= &repeatn($mhtdc,$ndata); - @{$did[$id]}= &repeatn($did_t,$ndata); + #Add okawa + @{$did[$id]}= &repeatn($did_mht,$ndata); + #End okawa + #@{$did[$id]}= &repeatn($did_t,$ndata); } } @@ -100,25 +106,31 @@ elsif ($category eq 'dssd') { foreach $id (1..$nid) { $tid=($id%16)||16; #id -> 1..16 + #Mod okawa if ($id <= 16) {#Tel1 X @{$module[$id]}[1..2]= ($madc1,$mhtdc); $ch[$id][1] = -1+$tid; #ADC ch $ch[$id][2] = 31+$tid; #TDC ch + @{$did[$id]}[1..2]= ($did_a,$did_mht); #always adc/tdc }elsif ($id <= 32) {#Tel1 Y @{$module[$id]}[1..2]= ($adc1,$mhtdc); $ch[$id][1] = 15+$tid; #ADC ch $ch[$id][2] = 47+$tid; #TDC ch + @{$did[$id]}[1..2]= ($did_a,$did_mht); #always adc/tdc }elsif ($id <= 48) {#Tel2 Y @{$module[$id]}[1..2]= ($adc2,$tdc1); $ch[$id][1] = -1+$tid; #ADC ch $ch[$id][2] = 15+$tid; #TDC ch + @{$did[$id]}[1..2]= ($did_a,$did_t); #always adc/tdc }else {#Tel3 Y @{$module[$id]}[1..2]= ($adc2,$tdc2); $ch[$id][1] = 15+$tid; #ADC ch $ch[$id][2] = -1+$tid; #TDC ch + @{$did[$id]}[1..2]= ($did_a,$did_t); #always adc/tdc } - @{$did[$id]}[1..2]= ($did_a,$did_t); #always adc/tdc + #@{$did[$id]}[1..2]= ($did_a,$did_t); #always adc/tdc + #End okawa } @@ -177,7 +189,10 @@ elsif ($category eq 'ssd') { $ch[$id][1] = $id-13; #ADC ch $ch[$id][2] = $id-13; #TDC ch } - @{$did[$id]}[1..2]= ($did_a,$did_t); #always adc/tdc + #Add okawa + @{$did[$id]}[1..2]= ($did_a,$did_mht); #always adc/tdc + #End okawa + #@{$did[$id]}[1..2]= ($did_a,$did_t); #always adc/tdc print "; $ch[$id][1] \n"; diff --git a/map/si26a/ppac.map b/map/si26a/ppac.map index 5e02f32..d3e60f5 100644 --- a/map/si26a/ppac.map +++ b/map/si26a/ppac.map @@ -1,5 +1,5 @@ # Map for ppac # Note: automatically produced with mapmaker.pl. Do not edit it directly 2, 1, 12 0 6 1 0, 12 0 6 1 1, 12 0 6 1 2, 12 0 6 1 3, 12 0 6 1 15, ; ppac F1 -2, 2, 12 0 7 16 6, 12 0 7 16 7, 12 0 7 16 8, 12 0 7 16 9, 12 0 7 16 5, ; ppac F2/F3 B -2, 3, 12 0 7 16 1, 12 0 7 16 2, 12 0 7 16 3, 12 0 7 16 4, 12 0 7 16 0, ; ppac F3 A +2, 2, 12 0 10 16 6, 12 0 10 16 7, 12 0 10 16 8, 12 0 10 16 9, 12 0 10 16 5, ; ppac F2/F3 B +2, 3, 12 0 10 16 1, 12 0 10 16 2, 12 0 10 16 3, 12 0 10 16 4, 12 0 10 16 0, ; ppac F3 A diff --git a/map/si26a/ssd.map b/map/si26a/ssd.map index 87fed02..9b09726 100644 --- a/map/si26a/ssd.map +++ b/map/si26a/ssd.map @@ -1,19 +1,19 @@ # Map for ssd # Note: automatically produced with mapmaker.pl. Do not edit it directly -6, 1, 12 0 6 6 16, 12 0 7 16 16, ; ssd Tel1 E1 -6, 2, 12 0 6 6 17, 12 0 7 16 17, ; ssd Tel1 E2 -6, 3, 12 0 6 6 18, 12 0 7 16 18, ; ssd Tel2 E1 -6, 4, 12 0 6 6 19, 12 0 7 16 19, ; ssd Tel2 E2 -6, 5, 12 0 6 6 20, 12 0 7 16 20, ; ssd Tel3 E1 -6, 6, 12 0 6 6 21, 12 0 7 16 21, ; ssd Tel3 E2 -6, 7, 12 0 6 6 22, 12 0 7 16 22, ; ssd Tel4 E1 -6, 8, 12 0 6 6 23, 12 0 7 16 23, ; ssd Tel4 E2 -6, 9, 12 0 6 6 24, 12 0 7 16 24, ; ssd Tel5 E1 -6,10, 12 0 6 6 25, 12 0 7 16 25, ; ssd Tel5 E2 -6,11, 12 0 6 6 26, 12 0 7 16 26, ; ssd N/A -6,12, 12 0 6 6 27, 12 0 7 16 27, ; ssd N/A -6,13, 12 0 6 6 28, 12 0 7 16 28, ; ssd Lowgain 1 -6,14, 12 0 6 6 29, 12 0 7 16 29, ; ssd Lowgain 2 -6,15, 12 0 6 6 30, 12 0 7 16 30, ; ssd Lowgain 3 -6,16, 12 0 6 6 31, 12 0 7 16 31, ; ssd Lowgain 4 -6,17, 12 0 6 1 4, 12 0 7 17 4, ; ssd F2SSD +6, 1, 12 0 6 6 16, 12 0 10 16 16, ; ssd Tel1 E1 +6, 2, 12 0 6 6 17, 12 0 10 16 17, ; ssd Tel1 E2 +6, 3, 12 0 6 6 18, 12 0 10 16 18, ; ssd Tel2 E1 +6, 4, 12 0 6 6 19, 12 0 10 16 19, ; ssd Tel2 E2 +6, 5, 12 0 6 6 20, 12 0 10 16 20, ; ssd Tel3 E1 +6, 6, 12 0 6 6 21, 12 0 10 16 21, ; ssd Tel3 E2 +6, 7, 12 0 6 6 22, 12 0 10 16 22, ; ssd Tel4 E1 +6, 8, 12 0 6 6 23, 12 0 10 16 23, ; ssd Tel4 E2 +6, 9, 12 0 6 6 24, 12 0 10 16 24, ; ssd Tel5 E1 +6,10, 12 0 6 6 25, 12 0 10 16 25, ; ssd Tel5 E2 +6,11, 12 0 6 6 26, 12 0 10 16 26, ; ssd N/A +6,12, 12 0 6 6 27, 12 0 10 16 27, ; ssd N/A +6,13, 12 0 6 6 28, 12 0 10 16 28, ; ssd Lowgain 1 +6,14, 12 0 6 6 29, 12 0 10 16 29, ; ssd Lowgain 2 +6,15, 12 0 6 6 30, 12 0 10 16 30, ; ssd Lowgain 3 +6,16, 12 0 6 6 31, 12 0 10 16 31, ; ssd Lowgain 4 +6,17, 12 0 6 1 4, 12 0 10 17 4, ; ssd F2SSD diff --git a/old/map/coin.map b/old/map/coin.map new file mode 100644 index 0000000..2d6aabf --- /dev/null +++ b/old/map/coin.map @@ -0,0 +1,5 @@ +# Map for coin +# Note: automatically produced with mapmaker.pl. Do not edit it directly +3, 1, 12 0 7 11 13, ; coin Single +3, 2, 12 0 7 11 14, ; coin Coin +3, 3, 12 0 7 11 15, ; coin Pileup diff --git a/old/map/dssd.map b/old/map/dssd.map new file mode 100644 index 0000000..399b13c --- /dev/null +++ b/old/map/dssd.map @@ -0,0 +1,66 @@ +# Map for dssd +# Note: automatically produced with mapmaker.pl. Do not edit it directly +4, 1, 12 0 6 6 0, 12 0 7 16 32, ; dssd Tel1 dE1X 1 +4, 2, 12 0 6 6 1, 12 0 7 16 33, ; dssd Tel1 dE1X 2 +4, 3, 12 0 6 6 2, 12 0 7 16 34, ; dssd Tel1 dE1X 3 +4, 4, 12 0 6 6 3, 12 0 7 16 35, ; dssd Tel1 dE1X 4 +4, 5, 12 0 6 6 4, 12 0 7 16 36, ; dssd Tel1 dE1X 5 +4, 6, 12 0 6 6 5, 12 0 7 16 37, ; dssd Tel1 dE1X 6 +4, 7, 12 0 6 6 6, 12 0 7 16 38, ; dssd Tel1 dE1X 7 +4, 8, 12 0 6 6 7, 12 0 7 16 39, ; dssd Tel1 dE1X 8 +4, 9, 12 0 6 6 8, 12 0 7 16 40, ; dssd Tel1 dE1X 9 +4,10, 12 0 6 6 9, 12 0 7 16 41, ; dssd Tel1 dE1X 10 +4,11, 12 0 6 6 10, 12 0 7 16 42, ; dssd Tel1 dE1X 11 +4,12, 12 0 6 6 11, 12 0 7 16 43, ; dssd Tel1 dE1X 12 +4,13, 12 0 6 6 12, 12 0 7 16 44, ; dssd Tel1 dE1X 13 +4,14, 12 0 6 6 13, 12 0 7 16 45, ; dssd Tel1 dE1X 14 +4,15, 12 0 6 6 14, 12 0 7 16 46, ; dssd Tel1 dE1X 15 +4,16, 12 0 6 6 15, 12 0 7 16 47, ; dssd Tel1 dE1X 16 +4,17, 12 0 6 1 16, 12 0 7 16 48, ; dssd Tel1 dE2Y 1 +4,18, 12 0 6 1 17, 12 0 7 16 49, ; dssd Tel1 dE2Y 2 +4,19, 12 0 6 1 18, 12 0 7 16 50, ; dssd Tel1 dE2Y 3 +4,20, 12 0 6 1 19, 12 0 7 16 51, ; dssd Tel1 dE2Y 4 +4,21, 12 0 6 1 20, 12 0 7 16 52, ; dssd Tel1 dE2Y 5 +4,22, 12 0 6 1 21, 12 0 7 16 53, ; dssd Tel1 dE2Y 6 +4,23, 12 0 6 1 22, 12 0 7 16 54, ; dssd Tel1 dE2Y 7 +4,24, 12 0 6 1 23, 12 0 7 16 55, ; dssd Tel1 dE2Y 8 +4,25, 12 0 6 1 24, 12 0 7 16 56, ; dssd Tel1 dE2Y 9 +4,26, 12 0 6 1 25, 12 0 7 16 57, ; dssd Tel1 dE2Y 10 +4,27, 12 0 6 1 26, 12 0 7 16 58, ; dssd Tel1 dE2Y 11 +4,28, 12 0 6 1 27, 12 0 7 16 59, ; dssd Tel1 dE2Y 12 +4,29, 12 0 6 1 28, 12 0 7 16 60, ; dssd Tel1 dE2Y 13 +4,30, 12 0 6 1 29, 12 0 7 16 61, ; dssd Tel1 dE2Y 14 +4,31, 12 0 6 1 30, 12 0 7 16 62, ; dssd Tel1 dE2Y 15 +4,32, 12 0 6 1 31, 12 0 7 16 63, ; dssd Tel1 dE2Y 16 +4,33, 12 0 6 2 0, 12 0 7 11 16, ; dssd Tel2 dE2Y 1 +4,34, 12 0 6 2 1, 12 0 7 11 17, ; dssd Tel2 dE2Y 2 +4,35, 12 0 6 2 2, 12 0 7 11 18, ; dssd Tel2 dE2Y 3 +4,36, 12 0 6 2 3, 12 0 7 11 19, ; dssd Tel2 dE2Y 4 +4,37, 12 0 6 2 4, 12 0 7 11 20, ; dssd Tel2 dE2Y 5 +4,38, 12 0 6 2 5, 12 0 7 11 21, ; dssd Tel2 dE2Y 6 +4,39, 12 0 6 2 6, 12 0 7 11 22, ; dssd Tel2 dE2Y 7 +4,40, 12 0 6 2 7, 12 0 7 11 23, ; dssd Tel2 dE2Y 8 +4,41, 12 0 6 2 8, 12 0 7 11 24, ; dssd Tel2 dE2Y 9 +4,42, 12 0 6 2 9, 12 0 7 11 25, ; dssd Tel2 dE2Y 10 +4,43, 12 0 6 2 10, 12 0 7 11 26, ; dssd Tel2 dE2Y 11 +4,44, 12 0 6 2 11, 12 0 7 11 27, ; dssd Tel2 dE2Y 12 +4,45, 12 0 6 2 12, 12 0 7 11 28, ; dssd Tel2 dE2Y 13 +4,46, 12 0 6 2 13, 12 0 7 11 29, ; dssd Tel2 dE2Y 14 +4,47, 12 0 6 2 14, 12 0 7 11 30, ; dssd Tel2 dE2Y 15 +4,48, 12 0 6 2 15, 12 0 7 11 31, ; dssd Tel2 dE2Y 16 +4,49, 12 0 6 2 16, 12 0 7 12 0, ; dssd Tel3 dE2Y 1 +4,50, 12 0 6 2 17, 12 0 7 12 1, ; dssd Tel3 dE2Y 2 +4,51, 12 0 6 2 18, 12 0 7 12 2, ; dssd Tel3 dE2Y 3 +4,52, 12 0 6 2 19, 12 0 7 12 3, ; dssd Tel3 dE2Y 4 +4,53, 12 0 6 2 20, 12 0 7 12 4, ; dssd Tel3 dE2Y 5 +4,54, 12 0 6 2 21, 12 0 7 12 5, ; dssd Tel3 dE2Y 6 +4,55, 12 0 6 2 22, 12 0 7 12 6, ; dssd Tel3 dE2Y 7 +4,56, 12 0 6 2 23, 12 0 7 12 7, ; dssd Tel3 dE2Y 8 +4,57, 12 0 6 2 24, 12 0 7 12 8, ; dssd Tel3 dE2Y 9 +4,58, 12 0 6 2 25, 12 0 7 12 9, ; dssd Tel3 dE2Y 10 +4,59, 12 0 6 2 26, 12 0 7 12 10, ; dssd Tel3 dE2Y 11 +4,60, 12 0 6 2 27, 12 0 7 12 11, ; dssd Tel3 dE2Y 12 +4,61, 12 0 6 2 28, 12 0 7 12 12, ; dssd Tel3 dE2Y 13 +4,62, 12 0 6 2 29, 12 0 7 12 13, ; dssd Tel3 dE2Y 14 +4,63, 12 0 6 2 30, 12 0 7 12 14, ; dssd Tel3 dE2Y 15 +4,64, 12 0 6 2 31, 12 0 7 12 15, ; dssd Tel3 dE2Y 16 diff --git a/old/map/mssd.map b/old/map/mssd.map new file mode 100644 index 0000000..57ee4b4 --- /dev/null +++ b/old/map/mssd.map @@ -0,0 +1,8 @@ +# Map for mssd +# Note: automatically produced with mapmaker.pl. Do not edit it directly +5, 1, 12 0 6 7 0, 12 0 6 7 1, 12 0 6 7 2, 12 0 6 7 3, 12 0 7 11 2, ; mssd 1-1 +5, 2, 12 0 6 7 4, 12 0 6 7 5, 12 0 6 7 6, 12 0 6 7 7, 12 0 7 11 3, ; mssd 1-2 +5, 3, 12 0 6 7 8, 12 0 6 7 9, 12 0 6 7 10, 12 0 6 7 11, 12 0 7 11 4, ; mssd 2-1 +5, 4, 12 0 6 7 12, 12 0 6 7 13, 12 0 6 7 14, 12 0 6 7 15, 12 0 7 11 5, ; mssd 2-2 +5, 5, 12 0 6 7 16, 12 0 6 7 17, 12 0 6 7 18, 12 0 6 7 19, 12 0 7 11 6, ; mssd 3-1 +5, 6, 12 0 6 7 20, 12 0 6 7 21, 12 0 6 7 22, 12 0 6 7 23, 12 0 7 11 7, ; mssd 3-2 diff --git a/old/map/ppac.map b/old/map/ppac.map new file mode 100644 index 0000000..5e02f32 --- /dev/null +++ b/old/map/ppac.map @@ -0,0 +1,5 @@ +# Map for ppac +# Note: automatically produced with mapmaker.pl. Do not edit it directly +2, 1, 12 0 6 1 0, 12 0 6 1 1, 12 0 6 1 2, 12 0 6 1 3, 12 0 6 1 15, ; ppac F1 +2, 2, 12 0 7 16 6, 12 0 7 16 7, 12 0 7 16 8, 12 0 7 16 9, 12 0 7 16 5, ; ppac F2/F3 B +2, 3, 12 0 7 16 1, 12 0 7 16 2, 12 0 7 16 3, 12 0 7 16 4, 12 0 7 16 0, ; ppac F3 A diff --git a/old/map/rf.map b/old/map/rf.map new file mode 100644 index 0000000..826c888 --- /dev/null +++ b/old/map/rf.map @@ -0,0 +1,3 @@ +# Map for rf +# Note: automatically produced with mapmaker.pl. Do not edit it directly +1, 1, 12 0 7 11 0, 12 0 7 11 1, ; rf RF diff --git a/old/map/ssd.map b/old/map/ssd.map new file mode 100644 index 0000000..87fed02 --- /dev/null +++ b/old/map/ssd.map @@ -0,0 +1,19 @@ +# Map for ssd +# Note: automatically produced with mapmaker.pl. Do not edit it directly +6, 1, 12 0 6 6 16, 12 0 7 16 16, ; ssd Tel1 E1 +6, 2, 12 0 6 6 17, 12 0 7 16 17, ; ssd Tel1 E2 +6, 3, 12 0 6 6 18, 12 0 7 16 18, ; ssd Tel2 E1 +6, 4, 12 0 6 6 19, 12 0 7 16 19, ; ssd Tel2 E2 +6, 5, 12 0 6 6 20, 12 0 7 16 20, ; ssd Tel3 E1 +6, 6, 12 0 6 6 21, 12 0 7 16 21, ; ssd Tel3 E2 +6, 7, 12 0 6 6 22, 12 0 7 16 22, ; ssd Tel4 E1 +6, 8, 12 0 6 6 23, 12 0 7 16 23, ; ssd Tel4 E2 +6, 9, 12 0 6 6 24, 12 0 7 16 24, ; ssd Tel5 E1 +6,10, 12 0 6 6 25, 12 0 7 16 25, ; ssd Tel5 E2 +6,11, 12 0 6 6 26, 12 0 7 16 26, ; ssd N/A +6,12, 12 0 6 6 27, 12 0 7 16 27, ; ssd N/A +6,13, 12 0 6 6 28, 12 0 7 16 28, ; ssd Lowgain 1 +6,14, 12 0 6 6 29, 12 0 7 16 29, ; ssd Lowgain 2 +6,15, 12 0 6 6 30, 12 0 7 16 30, ; ssd Lowgain 3 +6,16, 12 0 6 6 31, 12 0 7 16 31, ; ssd Lowgain 4 +6,17, 12 0 6 1 4, 12 0 7 17 4, ; ssd F2SSD diff --git a/src/TCordferRawBranch.cpp b/src/TCordferRawBranch.cpp index 16661ea..cc4eb71 100644 --- a/src/TCordferRawBranch.cpp +++ b/src/TCordferRawBranch.cpp @@ -8,14 +8,6 @@ using namespace std; -//void TCordferRawBranch::FreeTwoDimMemory(){ -// for(Int_t i=0; i Date: Tue, 5 Apr 2022 19:55:28 +0900 Subject: [PATCH 10/15] update --- README.md | 7 + include/MapReader.hh | 9 +- include/TCordferBranchManager.hh | 7 +- include/TCordferMapBranch.hh | 29 +- macro/check_raw_tree.C | 439 +++------------------------- macro/{ => test}/check_calib_tree.C | 0 recipe/recipe_si26a.yml | 27 +- src/MapReader.cpp | 4 +- src/TCordferBranchManager.cpp | 306 +++++++++++++++++-- src/TCordferMapBranch.cpp | 101 ++++++- 10 files changed, 466 insertions(+), 463 deletions(-) rename macro/{ => test}/check_calib_tree.C (100%) diff --git a/README.md b/README.md index 69d4551..b21508f 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,13 @@ This convert .ridf to .root file * some package(wget, automake autoconf...) * (optionally python and pip pyyaml) + +MEMO +- detector id of map file + - 6: adc + - 7: tdc + - 10: mhtdc + ## Summary This is a tool to convert ridffile to rootfile using ANAROOT decoder. (https://ribf.riken.jp/RIBFDAQ/index.php?Tools%2FAnalysis%2FANAROOT) diff --git a/include/MapReader.hh b/include/MapReader.hh index 032a022..735fd88 100644 --- a/include/MapReader.hh +++ b/include/MapReader.hh @@ -14,13 +14,11 @@ class MapReader { private: TString filename; - Int_t detector_id; public: MapReader(){} - MapReader(TString in_filename, Int_t det_id){ + MapReader(TString in_filename){ filename = in_filename; - detector_id = det_id; FileStat_t info; if(gSystem->GetPathInfo(filename.Data(), info) != 0){ @@ -33,8 +31,9 @@ class MapReader ~MapReader(){} Int_t size = 0; - vector< vector > segment_id; //segment_id[branch_id][branch_ch][geo] - vector< vector > channel; //channel[branch_id][branch_ch][channel] + vector< vector > det_id; //det_id[branch_ch][detector_id] + vector< vector > segment_id; //segment_id[branch_ch][geo] + vector< vector > channel; //channel[branch_ch][channel] vector detector_name; //detector_name[branch_id] void SetMapFile(TString in_filename){ filename = in_filename; } diff --git a/include/TCordferBranchManager.hh b/include/TCordferBranchManager.hh index c40cee8..718f46f 100644 --- a/include/TCordferBranchManager.hh +++ b/include/TCordferBranchManager.hh @@ -16,6 +16,9 @@ using namespace std; +#define MAX_SEGMENT_ID 100 + + class TCordferBranchManager { private: @@ -30,8 +33,8 @@ class TCordferBranchManager vector branch; vector mbranch; - Int_t rmapping[100]; //segment_id(geo) -> branch index - Int_t mmapping[100][100]; // [segment_id][ch] -> branch index + Int_t rmapping[MAX_SEGMENT_ID]; //segment_id(geo) -> branch index + Int_t mmapping[MAX_SEGMENT_ID][MAX_CHANNEL]; // [segment_id][ch] -> branch index bool rawdata = false; diff --git a/include/TCordferMapBranch.hh b/include/TCordferMapBranch.hh index 732417c..a7ed1b1 100644 --- a/include/TCordferMapBranch.hh +++ b/include/TCordferMapBranch.hh @@ -6,8 +6,13 @@ #include +#include "TCordferRawBranch.hh" + using namespace std; +#define MAP_CHANNEL_MAX 16 + + class TCordferMapBranch { private: @@ -19,22 +24,36 @@ class TCordferMapBranch name = bname; detector_id = det_id; size = bsize; - MemorySet(); + for(Int_t i=0; i segment_id; vector channel; + vector detector_flag; + vector nhit; TString GetBranchName(){ return name; } - void MemorySet(){ bra_val = new Int_t[size]; } - void FreeMemory(){ delete[] bra_val; } - void SetMapInfo(vector seg, vector ch); + void SetMapInfo(vector seg, vector ch, vector det); + void SetADCMapInfo(vector seg, vector ch, vector det); //except for last coulum + void SetTDCMapInfo(vector seg, vector ch, vector det); //get the last coulumm + void SetDSSDMapInfo(Int_t seg, Int_t ch, Int_t det); //set the DSSD id void Clear(); }; diff --git a/macro/check_raw_tree.C b/macro/check_raw_tree.C index 377cc42..ad96f7a 100644 --- a/macro/check_raw_tree.C +++ b/macro/check_raw_tree.C @@ -1,402 +1,57 @@ -//this macro create all histograms and save as png file -//(for check the macro is correct) -//CAUTION: many file will be created - { gStyle->SetOptLogy(1); + bool wait_enter = false; TCanvas *c1 = new TCanvas("c1", "c1"); - tree->Draw("adc1[0]"); - c1->Print("../figure/raw/adc1[0].png"); - tree->Draw("adc1[1]"); - c1->Print("../figure/raw/adc1[1].png"); - tree->Draw("adc1[2]"); - c1->Print("../figure/raw/adc1[2].png"); - tree->Draw("adc1[3]"); - c1->Print("../figure/raw/adc1[3].png"); - tree->Draw("adc1[4]"); - c1->Print("../figure/raw/adc1[4].png"); - tree->Draw("adc1[5]"); - c1->Print("../figure/raw/adc1[5].png"); - tree->Draw("adc1[6]"); - c1->Print("../figure/raw/adc1[6].png"); - tree->Draw("adc1[7]"); - c1->Print("../figure/raw/adc1[7].png"); - tree->Draw("adc1[8]"); - c1->Print("../figure/raw/adc1[8].png"); - tree->Draw("adc1[9]"); - c1->Print("../figure/raw/adc1[9].png"); - tree->Draw("adc1[10]"); - c1->Print("../figure/raw/adc1[10].png"); - tree->Draw("adc1[11]"); - c1->Print("../figure/raw/adc1[11].png"); - tree->Draw("adc1[12]"); - c1->Print("../figure/raw/adc1[12].png"); - tree->Draw("adc1[13]"); - c1->Print("../figure/raw/adc1[13].png"); - tree->Draw("adc1[14]"); - c1->Print("../figure/raw/adc1[14].png"); - tree->Draw("adc1[15]"); - c1->Print("../figure/raw/adc1[15].png"); - tree->Draw("adc1[16]"); - c1->Print("../figure/raw/adc1[16].png"); - tree->Draw("adc1[17]"); - c1->Print("../figure/raw/adc1[17].png"); - tree->Draw("adc1[18]"); - c1->Print("../figure/raw/adc1[18].png"); - tree->Draw("adc1[19]"); - c1->Print("../figure/raw/adc1[19].png"); - tree->Draw("adc1[20]"); - c1->Print("../figure/raw/adc1[20].png"); - tree->Draw("adc1[21]"); - c1->Print("../figure/raw/adc1[21].png"); - tree->Draw("adc1[22]"); - c1->Print("../figure/raw/adc1[22].png"); - tree->Draw("adc1[23]"); - c1->Print("../figure/raw/adc1[23].png"); - tree->Draw("adc1[24]"); - c1->Print("../figure/raw/adc1[24].png"); - tree->Draw("adc1[25]"); - c1->Print("../figure/raw/adc1[25].png"); - tree->Draw("adc1[26]"); - c1->Print("../figure/raw/adc1[26].png"); - tree->Draw("adc1[27]"); - c1->Print("../figure/raw/adc1[27].png"); - tree->Draw("adc1[28]"); - c1->Print("../figure/raw/adc1[28].png"); - tree->Draw("adc1[29]"); - c1->Print("../figure/raw/adc1[29].png"); - tree->Draw("adc1[30]"); - c1->Print("../figure/raw/adc1[30].png"); - tree->Draw("adc1[31]"); - c1->Print("../figure/raw/adc1[31].png"); - tree->Draw("adc2[0]"); - c1->Print("../figure/raw/adc2[0].png"); - tree->Draw("adc2[1]"); - c1->Print("../figure/raw/adc2[1].png"); - tree->Draw("adc2[2]"); - c1->Print("../figure/raw/adc2[2].png"); - tree->Draw("adc2[3]"); - c1->Print("../figure/raw/adc2[3].png"); - tree->Draw("adc2[4]"); - c1->Print("../figure/raw/adc2[4].png"); - tree->Draw("adc2[5]"); - c1->Print("../figure/raw/adc2[5].png"); - tree->Draw("adc2[6]"); - c1->Print("../figure/raw/adc2[6].png"); - tree->Draw("adc2[7]"); - c1->Print("../figure/raw/adc2[7].png"); - tree->Draw("adc2[8]"); - c1->Print("../figure/raw/adc2[8].png"); - tree->Draw("adc2[9]"); - c1->Print("../figure/raw/adc2[9].png"); - tree->Draw("adc2[10]"); - c1->Print("../figure/raw/adc2[10].png"); - tree->Draw("adc2[11]"); - c1->Print("../figure/raw/adc2[11].png"); - tree->Draw("adc2[12]"); - c1->Print("../figure/raw/adc2[12].png"); - tree->Draw("adc2[13]"); - c1->Print("../figure/raw/adc2[13].png"); - tree->Draw("adc2[14]"); - c1->Print("../figure/raw/adc2[14].png"); - tree->Draw("adc2[15]"); - c1->Print("../figure/raw/adc2[15].png"); - tree->Draw("adc2[16]"); - c1->Print("../figure/raw/adc2[16].png"); - tree->Draw("adc2[17]"); - c1->Print("../figure/raw/adc2[17].png"); - tree->Draw("adc2[18]"); - c1->Print("../figure/raw/adc2[18].png"); - tree->Draw("adc2[19]"); - c1->Print("../figure/raw/adc2[19].png"); - tree->Draw("adc2[20]"); - c1->Print("../figure/raw/adc2[20].png"); - tree->Draw("adc2[21]"); - c1->Print("../figure/raw/adc2[21].png"); - tree->Draw("adc2[22]"); - c1->Print("../figure/raw/adc2[22].png"); - tree->Draw("adc2[23]"); - c1->Print("../figure/raw/adc2[23].png"); - tree->Draw("adc2[24]"); - c1->Print("../figure/raw/adc2[24].png"); - tree->Draw("adc2[25]"); - c1->Print("../figure/raw/adc2[25].png"); - tree->Draw("adc2[26]"); - c1->Print("../figure/raw/adc2[26].png"); - tree->Draw("adc2[27]"); - c1->Print("../figure/raw/adc2[27].png"); - tree->Draw("adc2[28]"); - c1->Print("../figure/raw/adc2[28].png"); - tree->Draw("adc2[29]"); - c1->Print("../figure/raw/adc2[29].png"); - tree->Draw("adc2[30]"); - c1->Print("../figure/raw/adc2[30].png"); - tree->Draw("adc2[31]"); - c1->Print("../figure/raw/adc2[31].png"); - tree->Draw("madc1[0]"); - c1->Print("../figure/raw/madc1[0].png"); - tree->Draw("madc1[1]"); - c1->Print("../figure/raw/madc1[1].png"); - tree->Draw("madc1[2]"); - c1->Print("../figure/raw/madc1[2].png"); - tree->Draw("madc1[3]"); - c1->Print("../figure/raw/madc1[3].png"); - tree->Draw("madc1[4]"); - c1->Print("../figure/raw/madc1[4].png"); - tree->Draw("madc1[5]"); - c1->Print("../figure/raw/madc1[5].png"); - tree->Draw("madc1[6]"); - c1->Print("../figure/raw/madc1[6].png"); - tree->Draw("madc1[7]"); - c1->Print("../figure/raw/madc1[7].png"); - tree->Draw("madc1[8]"); - c1->Print("../figure/raw/madc1[8].png"); - tree->Draw("madc1[9]"); - c1->Print("../figure/raw/madc1[9].png"); - tree->Draw("madc1[10]"); - c1->Print("../figure/raw/madc1[10].png"); - tree->Draw("madc1[11]"); - c1->Print("../figure/raw/madc1[11].png"); - tree->Draw("madc1[12]"); - c1->Print("../figure/raw/madc1[12].png"); - tree->Draw("madc1[13]"); - c1->Print("../figure/raw/madc1[13].png"); - tree->Draw("madc1[14]"); - c1->Print("../figure/raw/madc1[14].png"); - tree->Draw("madc1[15]"); - c1->Print("../figure/raw/madc1[15].png"); - tree->Draw("madc1[16]"); - c1->Print("../figure/raw/madc1[16].png"); - tree->Draw("madc1[17]"); - c1->Print("../figure/raw/madc1[17].png"); - tree->Draw("madc1[18]"); - c1->Print("../figure/raw/madc1[18].png"); - tree->Draw("madc1[19]"); - c1->Print("../figure/raw/madc1[19].png"); - tree->Draw("madc1[20]"); - c1->Print("../figure/raw/madc1[20].png"); - tree->Draw("madc1[21]"); - c1->Print("../figure/raw/madc1[21].png"); - tree->Draw("madc1[22]"); - c1->Print("../figure/raw/madc1[22].png"); - tree->Draw("madc1[23]"); - c1->Print("../figure/raw/madc1[23].png"); - tree->Draw("madc1[24]"); - c1->Print("../figure/raw/madc1[24].png"); - tree->Draw("madc1[25]"); - c1->Print("../figure/raw/madc1[25].png"); - tree->Draw("madc1[26]"); - c1->Print("../figure/raw/madc1[26].png"); - tree->Draw("madc1[27]"); - c1->Print("../figure/raw/madc1[27].png"); - tree->Draw("madc1[28]"); - c1->Print("../figure/raw/madc1[28].png"); - tree->Draw("madc1[29]"); - c1->Print("../figure/raw/madc1[29].png"); - tree->Draw("madc1[30]"); - c1->Print("../figure/raw/madc1[30].png"); - tree->Draw("madc1[31]"); - c1->Print("../figure/raw/madc1[31].png"); - tree->Draw("madc2[0]"); - c1->Print("../figure/raw/madc2[0].png"); - tree->Draw("madc2[1]"); - c1->Print("../figure/raw/madc2[1].png"); - tree->Draw("madc2[2]"); - c1->Print("../figure/raw/madc2[2].png"); - tree->Draw("madc2[3]"); - c1->Print("../figure/raw/madc2[3].png"); - tree->Draw("madc2[4]"); - c1->Print("../figure/raw/madc2[4].png"); - tree->Draw("madc2[5]"); - c1->Print("../figure/raw/madc2[5].png"); - tree->Draw("madc2[6]"); - c1->Print("../figure/raw/madc2[6].png"); - tree->Draw("madc2[7]"); - c1->Print("../figure/raw/madc2[7].png"); - tree->Draw("madc2[8]"); - c1->Print("../figure/raw/madc2[8].png"); - tree->Draw("madc2[9]"); - c1->Print("../figure/raw/madc2[9].png"); - tree->Draw("madc2[10]"); - c1->Print("../figure/raw/madc2[10].png"); - tree->Draw("madc2[11]"); - c1->Print("../figure/raw/madc2[11].png"); - tree->Draw("madc2[12]"); - c1->Print("../figure/raw/madc2[12].png"); - tree->Draw("madc2[13]"); - c1->Print("../figure/raw/madc2[13].png"); - tree->Draw("madc2[14]"); - c1->Print("../figure/raw/madc2[14].png"); - tree->Draw("madc2[15]"); - c1->Print("../figure/raw/madc2[15].png"); - tree->Draw("madc2[16]"); - c1->Print("../figure/raw/madc2[16].png"); - tree->Draw("madc2[17]"); - c1->Print("../figure/raw/madc2[17].png"); - tree->Draw("madc2[18]"); - c1->Print("../figure/raw/madc2[18].png"); - tree->Draw("madc2[19]"); - c1->Print("../figure/raw/madc2[19].png"); - tree->Draw("madc2[20]"); - c1->Print("../figure/raw/madc2[20].png"); - tree->Draw("madc2[21]"); - c1->Print("../figure/raw/madc2[21].png"); - tree->Draw("madc2[22]"); - c1->Print("../figure/raw/madc2[22].png"); - tree->Draw("madc2[23]"); - c1->Print("../figure/raw/madc2[23].png"); - tree->Draw("madc2[24]"); - c1->Print("../figure/raw/madc2[24].png"); - tree->Draw("madc2[25]"); - c1->Print("../figure/raw/madc2[25].png"); - tree->Draw("madc2[26]"); - c1->Print("../figure/raw/madc2[26].png"); - tree->Draw("madc2[27]"); - c1->Print("../figure/raw/madc2[27].png"); - tree->Draw("madc2[28]"); - c1->Print("../figure/raw/madc2[28].png"); - tree->Draw("madc2[29]"); - c1->Print("../figure/raw/madc2[29].png"); - tree->Draw("madc2[30]"); - c1->Print("../figure/raw/madc2[30].png"); - tree->Draw("madc2[31]"); - c1->Print("../figure/raw/madc2[31].png"); - tree->Draw("tdc1[0]"); - c1->Print("../figure/raw/tdc1[0].png"); - tree->Draw("tdc1[1]"); - c1->Print("../figure/raw/tdc1[1].png"); - tree->Draw("tdc1[2]"); - c1->Print("../figure/raw/tdc1[2].png"); - tree->Draw("tdc1[3]"); - c1->Print("../figure/raw/tdc1[3].png"); - tree->Draw("tdc1[4]"); - c1->Print("../figure/raw/tdc1[4].png"); - tree->Draw("tdc1[5]"); - c1->Print("../figure/raw/tdc1[5].png"); - tree->Draw("tdc1[6]"); - c1->Print("../figure/raw/tdc1[6].png"); - tree->Draw("tdc1[7]"); - c1->Print("../figure/raw/tdc1[7].png"); - tree->Draw("tdc1[8]"); - c1->Print("../figure/raw/tdc1[8].png"); - tree->Draw("tdc1[9]"); - c1->Print("../figure/raw/tdc1[9].png"); - tree->Draw("tdc1[10]"); - c1->Print("../figure/raw/tdc1[10].png"); - tree->Draw("tdc1[11]"); - c1->Print("../figure/raw/tdc1[11].png"); - tree->Draw("tdc1[12]"); - c1->Print("../figure/raw/tdc1[12].png"); - tree->Draw("tdc1[13]"); - c1->Print("../figure/raw/tdc1[13].png"); - tree->Draw("tdc1[14]"); - c1->Print("../figure/raw/tdc1[14].png"); - tree->Draw("tdc1[15]"); - c1->Print("../figure/raw/tdc1[15].png"); - tree->Draw("tdc1[16]"); - c1->Print("../figure/raw/tdc1[16].png"); - tree->Draw("tdc1[17]"); - c1->Print("../figure/raw/tdc1[17].png"); - tree->Draw("tdc1[18]"); - c1->Print("../figure/raw/tdc1[18].png"); - tree->Draw("tdc1[19]"); - c1->Print("../figure/raw/tdc1[19].png"); - tree->Draw("tdc1[20]"); - c1->Print("../figure/raw/tdc1[20].png"); - tree->Draw("tdc1[21]"); - c1->Print("../figure/raw/tdc1[21].png"); - tree->Draw("tdc1[22]"); - c1->Print("../figure/raw/tdc1[22].png"); - tree->Draw("tdc1[23]"); - c1->Print("../figure/raw/tdc1[23].png"); - tree->Draw("tdc1[24]"); - c1->Print("../figure/raw/tdc1[24].png"); - tree->Draw("tdc1[25]"); - c1->Print("../figure/raw/tdc1[25].png"); - tree->Draw("tdc1[26]"); - c1->Print("../figure/raw/tdc1[26].png"); - tree->Draw("tdc1[27]"); - c1->Print("../figure/raw/tdc1[27].png"); - tree->Draw("tdc1[28]"); - c1->Print("../figure/raw/tdc1[28].png"); - tree->Draw("tdc1[29]"); - c1->Print("../figure/raw/tdc1[29].png"); - tree->Draw("tdc1[30]"); - c1->Print("../figure/raw/tdc1[30].png"); - tree->Draw("tdc1[31]"); - c1->Print("../figure/raw/tdc1[31].png"); - tree->Draw("tdc2[0]"); - c1->Print("../figure/raw/tdc2[0].png"); - tree->Draw("tdc2[1]"); - c1->Print("../figure/raw/tdc2[1].png"); - tree->Draw("tdc2[2]"); - c1->Print("../figure/raw/tdc2[2].png"); - tree->Draw("tdc2[3]"); - c1->Print("../figure/raw/tdc2[3].png"); - tree->Draw("tdc2[4]"); - c1->Print("../figure/raw/tdc2[4].png"); - tree->Draw("tdc2[5]"); - c1->Print("../figure/raw/tdc2[5].png"); - tree->Draw("tdc2[6]"); - c1->Print("../figure/raw/tdc2[6].png"); - tree->Draw("tdc2[7]"); - c1->Print("../figure/raw/tdc2[7].png"); - tree->Draw("tdc2[8]"); - c1->Print("../figure/raw/tdc2[8].png"); - tree->Draw("tdc2[9]"); - c1->Print("../figure/raw/tdc2[9].png"); - tree->Draw("tdc2[10]"); - c1->Print("../figure/raw/tdc2[10].png"); - tree->Draw("tdc2[11]"); - c1->Print("../figure/raw/tdc2[11].png"); - tree->Draw("tdc2[12]"); - c1->Print("../figure/raw/tdc2[12].png"); - tree->Draw("tdc2[13]"); - c1->Print("../figure/raw/tdc2[13].png"); - tree->Draw("tdc2[14]"); - c1->Print("../figure/raw/tdc2[14].png"); - tree->Draw("tdc2[15]"); - c1->Print("../figure/raw/tdc2[15].png"); - tree->Draw("tdc2[16]"); - c1->Print("../figure/raw/tdc2[16].png"); - tree->Draw("tdc2[17]"); - c1->Print("../figure/raw/tdc2[17].png"); - tree->Draw("tdc2[18]"); - c1->Print("../figure/raw/tdc2[18].png"); - tree->Draw("tdc2[19]"); - c1->Print("../figure/raw/tdc2[19].png"); - tree->Draw("tdc2[20]"); - c1->Print("../figure/raw/tdc2[20].png"); - tree->Draw("tdc2[21]"); - c1->Print("../figure/raw/tdc2[21].png"); - tree->Draw("tdc2[22]"); - c1->Print("../figure/raw/tdc2[22].png"); - tree->Draw("tdc2[23]"); - c1->Print("../figure/raw/tdc2[23].png"); - tree->Draw("tdc2[24]"); - c1->Print("../figure/raw/tdc2[24].png"); - tree->Draw("tdc2[25]"); - c1->Print("../figure/raw/tdc2[25].png"); - tree->Draw("tdc2[26]"); - c1->Print("../figure/raw/tdc2[26].png"); - tree->Draw("tdc2[27]"); - c1->Print("../figure/raw/tdc2[27].png"); - tree->Draw("tdc2[28]"); - c1->Print("../figure/raw/tdc2[28].png"); - tree->Draw("tdc2[29]"); - c1->Print("../figure/raw/tdc2[29].png"); - tree->Draw("tdc2[30]"); - c1->Print("../figure/raw/tdc2[30].png"); - tree->Draw("tdc2[31]"); - c1->Print("../figure/raw/tdc2[31].png"); + + for(Int_t i=0; i<32; i++){ + TString bname; + bname.Form("adc1[%d]", i); + tree->Draw(bname.Data()); + //if(wait_enter){ getchar(); } + } + + for(Int_t i=0; i<32; i++){ + TString bname; + bname.Form("adc2[%d]", i); + tree->Draw(bname.Data()); + //if(wait_enter){ getchar(); } + } + + for(Int_t i=0; i<32; i++){ + TString bname; + bname.Form("madc1[%d]", i); + tree->Draw(bname.Data()); + //if(wait_enter){ getchar(); } + } + + for(Int_t i=0; i<32; i++){ + TString bname; + bname.Form("madc2[%d]", i); + tree->Draw(bname.Data()); + //if(wait_enter){ getchar(); } + } + + for(Int_t i=0; i<32; i++){ + TString bname; + bname.Form("tdc1[%d]", i); + tree->Draw(bname.Data()); + //if(wait_enter){ getchar(); } + } + + for(Int_t i=0; i<32; i++){ + TString bname; + bname.Form("tdc2[%d]", i); + tree->Draw(bname.Data()); + //if(wait_enter){ getchar(); } + } + for(Int_t i=0; i<64; i++){ for(Int_t j=0; j<12; j++){ - TString branch, file; - branch.Form("mhtdc_%dch[%d]", i, j); - file.Form("../figure/raw/mhtdc_%dch[%d].png", i, j); + TString branch; + branch.Form("mhtdc[%d][%d]", i, j); tree->Draw(branch.Data()); - c1->Print(file.Data()); + //if(wait_enter){ getchar(); } } } } diff --git a/macro/check_calib_tree.C b/macro/test/check_calib_tree.C similarity index 100% rename from macro/check_calib_tree.C rename to macro/test/check_calib_tree.C diff --git a/recipe/recipe_si26a.yml b/recipe/recipe_si26a.yml index 1c3253f..d2ae465 100644 --- a/recipe/recipe_si26a.yml +++ b/recipe/recipe_si26a.yml @@ -1,5 +1,4 @@ # tree information (in_use: on or off) -# in_use: "on" or "off" raw_tree: name: "tree" description: "raw data tree" @@ -8,10 +7,6 @@ map_tree: name: "mtree" description: "mapping data tree" in_use: on -# calib_tree: -# name: "ctree" -# description: "calibrate data tree" -# in_use: off # mapfile and calibration file information @@ -26,44 +21,26 @@ map_setup: - name: coin mapfile: "../map/si26a/coin.map" det_flag: 1 - calibfile: - energy: "" - timing: "../calibration/si26a/coin_t.prm" - name: dssd mapfile: "../map/si26a/dssd.map" - det_flag: 4 - calibfile: - energy: "../calibration/si26a/dssd.prm" - timing: "../calibration/si26a/dssd_t.prm" + det_flag: 5 - name: mssd mapfile: "../map/si26a/mssd.map" - det_flag: 5 - calibfile: - energy: "../calibration/si26a/mssd.prm" - timing: "../calibration/si26a/mssd_t.prm" - position: "../calibration/si26a/mpos.prm" + det_flag: 6 - name: ppac mapfile: "../map/si26a/ppac.map" det_flag: 3 - calibfile: - general: "../calibration/si26a/ppac.prm" - name: rf mapfile: "../map/si26a/rf.map" det_flag: 2 - calibfile: - energy: "" - timing: "../calibration/si26a/rf_t.prm" - name: ssd mapfile: "../map/si26a/ssd.map" det_flag: 4 - calibfile: - energy: "../calibration/si26a/ssd.prm" - timing: "../calibration/si26a/ssd_t.prm" # for rawdata tree diff --git a/src/MapReader.cpp b/src/MapReader.cpp index ae88a5c..0e6068e 100644 --- a/src/MapReader.cpp +++ b/src/MapReader.cpp @@ -26,7 +26,7 @@ void MapReader::ReadMap() { } vector line; - vector id, ch; + vector det, id, ch; string name = buf.substr(buf.find(';')+1); if(name[0] == ' '){ name.erase(0, 1); } @@ -51,12 +51,14 @@ void MapReader::ReadMap() { int i_val = stoi(val); line.push_back(i_val); } + det.push_back(line[2]); id.push_back(line[3]); ch.push_back(line[4]); line.clear(); buf.erase(0, pos+1); } + det_id.push_back(det); segment_id.push_back(id); channel.push_back(ch); detector_name.push_back(name); diff --git a/src/TCordferBranchManager.cpp b/src/TCordferBranchManager.cpp index 5eed2b1..4667357 100644 --- a/src/TCordferBranchManager.cpp +++ b/src/TCordferBranchManager.cpp @@ -73,9 +73,9 @@ void TCordferBranchManager::CreateRawBranch(){ Int_t seg_id = setup[i]["segment_no."].as(); TString bname = setup[i]["name"].as(); Int_t det_id = setup[i]["detector_id"].as(); + Int_t nch = setup[i]["channel"].as(); if(det_id != 10){ - Int_t nch = setup[i]["channel"].as(); TCordferRawBranch *raw_branch = new TCordferRawBranch(bname, seg_id, nch, det_id); TString brancharray; @@ -85,8 +85,6 @@ void TCordferBranchManager::CreateRawBranch(){ branch.push_back(raw_branch); }else{ -// TString mhtdc_name = setup[i]["branches"][0]["name"].as(); - Int_t nch = setup[i]["channel"].as(); Int_t nhit = setup[i]["maxhit"].as(); TCordferRawBranch *mhtdc_branch = new TCordferRawBranch(bname, seg_id, nch, det_id, nhit); @@ -95,6 +93,7 @@ void TCordferBranchManager::CreateRawBranch(){ mhtdcarray.Form("%s[%d][%d]/I", bname.Data(), mhtdc_branch->size, mhtdc_branch->max_hit); tree->Branch(bname.Data(), mhtdc_branch->mhtdc_val, mhtdcarray); + branch.push_back(mhtdc_branch); } } } @@ -107,17 +106,224 @@ void TCordferBranchManager::CreateMapBranch(){ Int_t det_id = map_setup[i]["det_flag"].as(); //1: coin 2: rf 3: PPAC 4: ssd 5: dssd 6: mssd - MapReader *mfile = new MapReader(mname, det_id); - for(Int_t j=0; jdetector_name.size(); j++){ - TString bname = mfile->detector_name[j]; - TCordferMapBranch *map_branch = new TCordferMapBranch(bname, det_id, mfile->segment_id[j].size()); - map_branch->SetMapInfo(mfile->segment_id[j], mfile->channel[j]); - - TString brancharray; - brancharray.Form("%s[%d]/I", bname.Data(), map_branch->size); - - mtree->Branch(bname.Data(), map_branch->bra_val, brancharray); - mbranch.push_back(map_branch); + MapReader *mfile = new MapReader(mname); + if(det_id == 1){ // coin + for(Int_t j=0; jdetector_name.size(); j++){ + TString bname = mfile->detector_name[j]; + TCordferMapBranch *map_branch = new TCordferMapBranch(bname, det_id, mfile->segment_id[j].size()); + map_branch->SetMapInfo(mfile->segment_id[j], mfile->channel[j], mfile->det_id[j]); + + if(map_branch->size != 1){ + cout << "-- WARNING: Coin map size is NOT 1" << endl; + } + TString brancharray; + + //assume that detector_id of all channel of each branch is the same + if(map_branch->detector_flag[0] == 10){ + brancharray.Form("%s[%d]/I", bname.Data(), MAX_NHIT); + mtree->Branch(bname.Data(), map_branch->bra_val_one, brancharray); + }else{ + brancharray.Form("%s/I", bname.Data()); + mtree->Branch(bname.Data(), &map_branch->bra_val, brancharray); + } + + mbranch.push_back(map_branch); + } + }else if(det_id == 2){ // rf + for(Int_t j=0; jdetector_name.size(); j++){ + TString bname = mfile->detector_name[j]; + TCordferMapBranch *map_branch = new TCordferMapBranch(bname, det_id, mfile->segment_id[j].size()); + map_branch->SetMapInfo(mfile->segment_id[j], mfile->channel[j], mfile->det_id[j]); + + if(map_branch->size != 2){ + cout << "-- WARNING: RF map size is NOT 2" << endl; + } + TString brancharray; + + //assume that detector_id of all channel of each branch is the same + if(map_branch->detector_flag[0] == 10){ + brancharray.Form("%s[%d][%d]/I", bname.Data(), map_branch->size, MAX_NHIT); + mtree->Branch(bname.Data(), map_branch->bra_val_two, brancharray); + }else{ + brancharray.Form("%s[%d]/I", bname.Data(), map_branch->size); + mtree->Branch(bname.Data(), map_branch->bra_val_one, brancharray); + } + + mbranch.push_back(map_branch); + } + + + }else if(det_id == 3){ // PPAC + for(Int_t j=0; jdetector_name.size(); j++){ + TString bname = mfile->detector_name[j]; + TCordferMapBranch *map_branch = new TCordferMapBranch(bname, det_id, mfile->segment_id[j].size()); + map_branch->SetMapInfo(mfile->segment_id[j], mfile->channel[j], mfile->det_id[j]); + + if(map_branch->size != 5){ + cout << "-- WARNING: PPAC map size is NOT 5" << endl; + } + + TString brancharray; + + //assume that detector_id of all channel of each branch is the same + if(map_branch->detector_flag[0] == 10){ + brancharray.Form("%s[%d][%d]/I", bname.Data(), map_branch->size, MAX_NHIT); + mtree->Branch(bname.Data(), map_branch->bra_val_two, brancharray); + }else{ + brancharray.Form("%s[%d]/I", bname.Data(), map_branch->size); + mtree->Branch(bname.Data(), map_branch->bra_val_one, brancharray); + } + + mbranch.push_back(map_branch); + } + }else if(det_id == 4){ // ssd + for(Int_t j=0; jdetector_name.size(); j++){ + + if(mfile->segment_id[j].size() != 2){ + cout << "-- ERROR: SSD map size is NOT 2" << endl; + exit(0); + } + + TString bname = mfile->detector_name[j]; + // ADC + TCordferMapBranch *map_branch_adc = new TCordferMapBranch(bname, det_id, 1); //size is 1 + map_branch_adc->SetADCMapInfo(mfile->segment_id[j], mfile->channel[j], mfile->det_id[j]); + + if(map_branch_adc->segment_id.size() != 1){ + cout << "-- ERROR: SSD of MapReader or TCordferMapBranch have errors" << endl; + cout << " : size is not 1 but " << map_branch_adc->segment_id.size() << endl; + exit(0); + } + + TString brancharray; + brancharray.Form("%s/I", bname.Data()); + + mtree->Branch(bname.Data(), &map_branch_adc->bra_val, brancharray); + mbranch.push_back(map_branch_adc); + + // TDC + TString tdc_bname = "t_" + bname; + TCordferMapBranch *map_branch_tdc = new TCordferMapBranch(tdc_bname, det_id, 1); //size is 1 + map_branch_tdc->SetTDCMapInfo(mfile->segment_id[j], mfile->channel[j], mfile->det_id[j]); + + if(map_branch_tdc->segment_id.size() != 1){ + cout << "-- ERROR: SSD of MapReader or TCordferMapBranch have errors" << endl; + cout << " : size is not 1 but " << map_branch_adc->segment_id.size() << endl; + exit(0); + } + + TString brancharray_tdc; + + if(map_branch_tdc->detector_flag[0] == 10){ + brancharray_tdc.Form("%s[%d]/I", tdc_bname.Data(), MAX_NHIT); + mtree->Branch(tdc_bname.Data(), map_branch_tdc->bra_val_one, brancharray_tdc); + }else{ + brancharray_tdc.Form("%s/I", tdc_bname.Data()); + mtree->Branch(tdc_bname.Data(), &map_branch_tdc->bra_val, brancharray_tdc); + } + + mbranch.push_back(map_branch_tdc); + + } + }else if(det_id == 5){ // dssd + for(Int_t j=0; jdetector_name.size(); j++){ + if(j%16 != 0) { continue; } + + if(mfile->segment_id[j].size() != 2){ + cout << "-- ERROR: DSSD map size is NOT 2" << endl; + exit(0); + } + + TString tmp = mfile->detector_name[j]; + TString bname = tmp.ReplaceAll("_1",""); + // ADC + TCordferMapBranch *map_branch_adc = new TCordferMapBranch(bname, det_id, 16); //size is 16 + map_branch_adc->SetDSSDMapInfo(mfile->segment_id[j][0], mfile->channel[j][0], mfile->det_id[j][0]); + + if(map_branch_adc->segment_id.size() != 16){ + cout << "-- ERROR: DSSD of MapReader or TCordferMapBranch have errors" << endl; + cout << " : size is not 16 but " << map_branch_adc->segment_id.size() << endl; + exit(0); + } + + TString brancharray; + brancharray.Form("%s[16]/I", bname.Data()); + + mtree->Branch(bname.Data(), map_branch_adc->bra_val_one, brancharray); + mbranch.push_back(map_branch_adc); + + // TDC + TString tdc_bname = "t_" + bname; + TCordferMapBranch *map_branch_tdc = new TCordferMapBranch(tdc_bname, det_id, 16); //size is 16 + map_branch_tdc->SetDSSDMapInfo(mfile->segment_id[j][1], mfile->channel[j][1], mfile->det_id[j][1]); + + if(map_branch_tdc->segment_id.size() != 16){ + cout << "-- ERROR: DSSD of MapReader or TCordferMapBranch have errors" << endl; + cout << " : size is not 16 but " << map_branch_adc->segment_id.size() << endl; + exit(0); + } + + TString brancharray_tdc; + + if(map_branch_tdc->detector_flag[0] == 10){ + brancharray_tdc.Form("%s[16][%d]/I", tdc_bname.Data(), MAX_NHIT); + mtree->Branch(tdc_bname.Data(), map_branch_tdc->bra_val_two, brancharray_tdc); + }else{ + brancharray_tdc.Form("%s[16]/I", tdc_bname.Data()); + mtree->Branch(tdc_bname.Data(), map_branch_tdc->bra_val_one, brancharray_tdc); + } + + mbranch.push_back(map_branch_tdc); + + } + }else if(det_id == 6){ // mssd + for(Int_t j=0; jdetector_name.size(); j++){ + + if(mfile->segment_id[j].size() != 5){ + cout << "-- ERROR: MSSD map size is NOT 5" << endl; + exit(0); + } + + TString bname = mfile->detector_name[j]; + // ADC + TCordferMapBranch *map_branch_adc = new TCordferMapBranch(bname, det_id, 4); //size is 4 + map_branch_adc->SetADCMapInfo(mfile->segment_id[j], mfile->channel[j], mfile->det_id[j]); + + if(map_branch_adc->segment_id.size() != 4){ + cout << "-- ERROR: MapReader or TCordferMapBranch have errors" << endl; + exit(0); + } + + TString brancharray; + brancharray.Form("%s[%d]/I", bname.Data(), map_branch_adc->size); + + mtree->Branch(bname.Data(), map_branch_adc->bra_val_one, brancharray); + mbranch.push_back(map_branch_adc); + + // TDC + TString tdc_bname = "t_" + bname; + TCordferMapBranch *map_branch_tdc = new TCordferMapBranch(tdc_bname, det_id, 1); //size is 1 + map_branch_tdc->SetTDCMapInfo(mfile->segment_id[j], mfile->channel[j], mfile->det_id[j]); + + if(map_branch_tdc->segment_id.size() != 1){ + cout << "-- ERROR: MapReader or TCordferMapBranch have errors" << endl; + exit(0); + } + + TString brancharray_tdc; + + if(map_branch_tdc->detector_flag[0] == 10){ + brancharray_tdc.Form("%s[%d]/I", tdc_bname.Data(), MAX_NHIT); + mtree->Branch(tdc_bname.Data(), map_branch_tdc->bra_val_one, brancharray_tdc); + }else{ + brancharray_tdc.Form("%s/I", tdc_bname.Data()); + mtree->Branch(tdc_bname.Data(), &map_branch_tdc->bra_val, brancharray_tdc); + } + + mbranch.push_back(map_branch_tdc); + + } + } } } @@ -132,11 +338,8 @@ void TCordferBranchManager::CreateMapping(){ void TCordferBranchManager::CreateRawMapping(){ memset(rmapping, -1, sizeof(rmapping)); - //Int_t seg_buf = -99; for(Int_t i=0; igeo; - //if(seg == seg_buf){ continue; } - //seg_buf = seg; rmapping[seg] = i; } } @@ -168,16 +371,14 @@ void TCordferBranchManager::GiveRawValue(Int_t geo, Int_t ch, Int_t val){ //if not register segment if(index < 0){ if(rmapflag == false){ - cout << "WARNING: rmapping is not completed" << endl; + cout << "-- WARNING: rmapping is not completed" << endl; + cout << "-- : unregister segment_id is " << geo << endl; } rmapflag=true; return; } if(branch[index]->detector_id == 10){ - //Int_t ht_id = branch[index+ch]->nhit; - //branch[index+ch]->bra_val[ht_id] = val; - //branch[index+ch]->nhit += 1; Int_t ht_id = branch[index]->nhit[ch]; branch[index]->mhtdc_val[ch][ht_id] = val; branch[index]->nhit[ch]++; @@ -202,7 +403,60 @@ void TCordferBranchManager::GiveMapValue(Int_t geo, Int_t ch, Int_t val){ Int_t i = index_array[0]; Int_t j = index_array[1]; - mbranch[i]->bra_val[j] = val; + Int_t det_id = mbranch[i]->detector_id; + Int_t det_flag = mbranch[i]->detector_flag[j]; + //1: coin 2: rf 3: PPAC 4: ssd 5: dssd 6: mssd + + if(det_id == 1){ // coin + if(det_flag == 10){ + mbranch[i]->bra_val_one[mbranch[i]->nhit[j]] = val; + mbranch[i]->nhit[j]++; + }else{ + mbranch[i]->bra_val = val; + } + } + else if(det_id == 2){ // rf + if(det_flag == 10){ + mbranch[i]->bra_val_two[j][mbranch[i]->nhit[j]] = val; + mbranch[i]->nhit[j]++; + }else{ + mbranch[i]->bra_val_one[j] = val; + } + } + else if(det_id == 3){ // PPAC + if(det_flag == 10){ + mbranch[i]->bra_val_two[j][mbranch[i]->nhit[j]] = val; + mbranch[i]->nhit[j]++; + }else{ + mbranch[i]->bra_val_one[j] = val; + } + } + else if(det_id == 4){ // ssd + if(det_flag == 10){ + mbranch[i]->bra_val_one[mbranch[i]->nhit[j]] = val; + mbranch[i]->nhit[j]++; + }else{ + mbranch[i]->bra_val = val; + } + } + else if(det_id == 5){ // dssd + if(det_flag == 10){ + mbranch[i]->bra_val_two[j][mbranch[i]->nhit[j]] = val; + mbranch[i]->nhit[j]++; + }else{ + mbranch[i]->bra_val_one[j] = val; + } + } + else if(det_id == 6){ // mssd + if(det_flag == 10){ + mbranch[i]->bra_val_one[mbranch[i]->nhit[j]] = val; + mbranch[i]->nhit[j]++; + }else if(det_flag == 7){ + mbranch[i]->bra_val = val; + }else{ + mbranch[i]->bra_val_one[j] = val; + } + } } @@ -241,14 +495,6 @@ void TCordferBranchManager::DataWrite(){ void TCordferBranchManager::FileClose(){ rootfile->Close(); - //for(Int_t i=0; iFreeAll(); - //} - - for(Int_t i=0; iFreeMemory(); - } - } // for debug diff --git a/src/TCordferMapBranch.cpp b/src/TCordferMapBranch.cpp index 321becb..c725154 100644 --- a/src/TCordferMapBranch.cpp +++ b/src/TCordferMapBranch.cpp @@ -9,14 +9,109 @@ using namespace std; -void TCordferMapBranch::SetMapInfo(vector seg, vector ch){ +void TCordferMapBranch::SetMapInfo(vector seg, vector ch, vector det){ copy(seg.begin(), seg.end(), back_inserter(segment_id)); copy(ch.begin(), ch.end(), back_inserter(channel)); + copy(det.begin(), det.end(), back_inserter(detector_flag)); } +void TCordferMapBranch::SetADCMapInfo(vector seg, vector ch, vector det){ + copy(seg.begin(), seg.end()-1, back_inserter(segment_id)); + copy(ch.begin(), ch.end()-1, back_inserter(channel)); + copy(det.begin(), det.end()-1, back_inserter(detector_flag)); +} + +void TCordferMapBranch::SetTDCMapInfo(vector seg, vector ch, vector det){ + copy(seg.end()-1, seg.end(), back_inserter(segment_id)); + copy(ch.end()-1, ch.end(), back_inserter(channel)); + copy(det.end()-1, det.end(), back_inserter(detector_flag)); +} + + +void TCordferMapBranch::SetDSSDMapInfo(Int_t seg, Int_t ch, Int_t det){ + for(Int_t i=0; i<16; i++){ + segment_id.push_back(seg); + channel.push_back(ch + i); + detector_flag.push_back(det); + } +} + + void TCordferMapBranch::Clear(){ //memset(bra_val, -500, sizeof(bra_val)); - for(Int_t j=0; j Date: Tue, 12 Apr 2022 13:57:33 +0900 Subject: [PATCH 11/15] dev --- .gitignore | 1 + README.md | 29 ++--- doc/calibrationfile.md | 3 - doc/develop_memo.md | 33 ------ macro/check_compare.C | 236 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 247 insertions(+), 55 deletions(-) delete mode 100644 doc/calibrationfile.md delete mode 100644 doc/develop_memo.md create mode 100644 macro/check_compare.C diff --git a/.gitignore b/.gitignore index 289881e..7d39e75 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ build/ build2/ rootfiles/ figure/ +calibration/ *.ridf *.root *.swp diff --git a/README.md b/README.md index b21508f..8d3b92e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ This convert .ridf to .root file * ROOT v6.14 (need to set environment variable ROOTSYS) * (M1 Mac cannot install old version of ROOT (okawa) ) * cmake 3.8 and above -* yaml-cpp +* yaml-cpp 0.6 and above +* gcc 9 * some package(wget, automake autoconf...) * (optionally python and pip pyyaml) @@ -21,39 +22,29 @@ This is a tool to convert ridffile to rootfile using ANAROOT decoder. (https://r ANAROOT is automatically installed by "cmake" in the project directory in order to make it easier to edit decoder file. The part of install of ANAROOT is written in ./CMakeLists.txt. -## Note -* Multihit TDC records all hit in one trigger, but map tree include only one hit event. (last hit) - * raw data tree store all hit and calibration tree also contain all hit - * the format of timing branch of calibration tree are array (like branch[12]) in order to match the format of mhtdc - -* The structure of map tree branches depends on the map file, so now a single branch contains both ADC and TDC data and it is distinguished by channel. - * ex. "name[0]": ADC, "name[1]": TDC - -* When the name contains "-", "/" or " " in mapfile and we use it as branch name, sometimes it is recognized as an operator, so this tool change them to "\_". - -* Calibration tree depends on the map tree. And the name of parameter file is important (cannot name arbitrary) - -* Assume that calibration parameters of two energy output are the same - ## Usage ### Config file * recipe/**.yml * map/(expname)/**.map -* calibration/(expname)/**.prm * main.cpp [yaml file setting](doc/yamlfile.md) [map file setting](doc/mapfile.md) -[calibration parameter file setting](doc/calibrationfile.md) - [main.cpp setting](doc/main.md) ### Install -This is cmake based project, so make build directory and compile in it. + +This is cmake based project, library directory is needed to adjust to your environment + +- ./CMakeList.txt +- ./src/CMakeList.txt + + +and make build directory and compile in it. ```console mkdir build diff --git a/doc/calibrationfile.md b/doc/calibrationfile.md deleted file mode 100644 index 36f949a..0000000 --- a/doc/calibrationfile.md +++ /dev/null @@ -1,3 +0,0 @@ -# parameter file setting - -calibration tree will be created based on map tree. Since the correspondence between branches and maps is based on name matches, names in parameter file should write carefully. diff --git a/doc/develop_memo.md b/doc/develop_memo.md deleted file mode 100644 index 9c18752..0000000 --- a/doc/develop_memo.md +++ /dev/null @@ -1,33 +0,0 @@ -# develop_memo -PPAC is not developed yet!! - -## in create branch - -#### rawdata -* Separate cases when the name is "mhtdc" and when it is not. - --> if there are multiple mhtdc, it will be error!! - --> Should I change the conditional statement? (TCordferBranchManager->CreateRawBranch, ClearRawAll) - -#### mapdata -I think it is OK - -#### calibdata -* Separate cases according to specific name in yamlfile. - --> I should make rule to name - - -## mapping -unordered_map map[key] = value - -#### rawdata -key = segment_id (=geo) <- "mhtdc_nhit" is set to -1 - -value = branch_index - -#### mapdata - - -#### calibdata diff --git a/macro/check_compare.C b/macro/check_compare.C new file mode 100644 index 0000000..eace298 --- /dev/null +++ b/macro/check_compare.C @@ -0,0 +1,236 @@ +{ + TCanvas *c1 = new TCanvas("c1", "c1"); + c1->Divide(1,2); + //PPAC F1 + //for(Int_t i=0; i<5; i++){ + // TString rarray, marray; + // if(i == 4){ rarray.Form("adc1[%d]", 15); } + // else { rarray.Form("adc1[%d]", i); } + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("ppac_F1[%d]", i); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //PPAC F2 + //for(Int_t i=0; i<5; i++){ + // TString rarray, marray; + // if(i == 4){ rarray.Form("mhtdc[%d]", 5); } + // else { rarray.Form("mhtdc[%d]", i+6); } + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("ppac_F2_F3_B[%d]", i); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //PPAC F3 + //for(Int_t i=0; i<5; i++){ + // TString rarray, marray; + // if(i == 4){ rarray.Form("mhtdc[%d]", 0); } + // else { rarray.Form("mhtdc[%d]", i+1); } + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("ppac_F3_A[%d]", i); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //DSSD ADC Tel1 dE2 Y + //for(Int_t i=0; i<16; i++){ + // TString rarray, marray; + // rarray.Form("adc1[%d]", i+16); + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("dssd_Tel1_dE2Y[%d]", i); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //DSSD ADC Tel2 dE2 Y + //for(Int_t i=0; i<16; i++){ + // TString rarray, marray; + // rarray.Form("adc2[%d]", i); + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("dssd_Tel2_dE2Y[%d]", i); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //DSSD ADC Tel3 dE2 Y + //for(Int_t i=0; i<16; i++){ + // TString rarray, marray; + // rarray.Form("adc2[%d]", i+16); + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("dssd_Tel3_dE2Y[%d]", i); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //DSSD ADC Tel1 dE1 X + //for(Int_t i=0; i<16; i++){ + // TString rarray, marray; + // rarray.Form("madc1[%d]", i); + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("dssd_Tel1_dE1X[%d]", i); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //SSD ADC + //for(Int_t i=0; i<10; i++){ + // TString rarray, marray; + // rarray.Form("madc1[%d]", i+16); + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("ssd_Tel%d_E%d", i/2+1, i%2+1); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //MSSD ADC + //for(Int_t i=0; i<24; i++){ + // TString rarray, marray; + // rarray.Form("madc2[%d]", i); + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("mssd_%d_%d[%d]", i/8+1, (i/4)%2+1, i%4); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //ADC others + //for(Int_t i=0; i<5; i++){ + // TString rarray, marray; + // if(i == 4){ + // rarray.Form("adc1[%d]", i); + // }else{ + // rarray.Form("madc1[%d]", i+28); + // } + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // if(i == 4){ + // marray.Form("ssd_F2SSD"); + // }else{ + // marray.Form("ssd_Lowgain_%d", i+1); + // } + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //RF COIN TDC + //for(Int_t i=0; i<5; i++){ + // TString rarray, marray; + // if(i < 2){ + // rarray.Form("tdc1[%d]", i); + // }else{ + // rarray.Form("tdc1[%d]", i+11); + // } + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // if(i < 2){ + // marray.Form("rf_RF[%d]", i); + // }else if(i == 2){ + // marray.Form("coin_Single"); + // }else if(i == 3){ + // marray.Form("coin_Coin"); + // }else if(i == 4){ + // marray.Form("coin_Pileup"); + // } + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //DSSD TDC Tel2 dE2 Y + //for(Int_t i=0; i<16; i++){ + // TString rarray, marray; + // rarray.Form("tdc1[%d]", i+16); + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("t_dssd_Tel2_dE2Y[%d]", i); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //DSSD TDC Tel3 dE2 Y + //for(Int_t i=0; i<16; i++){ + // TString rarray, marray; + // rarray.Form("tdc2[%d]", i); + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("t_dssd_Tel3_dE2Y[%d]", i); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //DSSD TDC Tel1 dE1 X + //for(Int_t i=0; i<16; i++){ + // TString rarray, marray; + // rarray.Form("mhtdc[%d]", i+32); + // c1->cd(1); + // tree->Draw(rarray.Data()); + // c1->cd(2); + // marray.Form("t_dssd_Tel1_dE1X[%d]", i); + // mtree->Draw(marray.Data()); + // TString out; + // out.Form("./figure/test%d.png", i); + // c1->Print(out.Data()); + //} + + //mhtdc test + for(Int_t i=0; i<12; i++){ + TString rarray, marray; + rarray.Form("mhtdc[32][%d]", i); + c1->cd(1); + tree->Draw(rarray.Data()); + c1->cd(2); + marray.Form("t_dssd_Tel1_dE1X[0][%d]", i); + mtree->Draw(marray.Data()); + TString out; + out.Form("./figure/test%d.png", i); + c1->Print(out.Data()); + } +} -- GitLab From 2b7f0fc9aea1df47877110267677e908865d5a5c Mon Sep 17 00:00:00 2001 From: Okawa Date: Tue, 12 Apr 2022 14:52:35 +0900 Subject: [PATCH 12/15] [add] shell script to convert all ridf --- CMakeLists.txt | 1 + main.cpp | 2 +- rootmake.sh | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100755 rootmake.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 77ecf97..b003df6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,3 +72,4 @@ target_link_libraries(${PROJECT_NAME} message("******NOTE: use the command*************") message(" source ../anaroot/setup.sh") message("****************************************") +execute_process(COMMAND cp ../rootmake.sh .) diff --git a/main.cpp b/main.cpp index b256ada..cedb6ee 100644 --- a/main.cpp +++ b/main.cpp @@ -14,7 +14,7 @@ using namespace std; Int_t main(Int_t argc, Char_t **argv) { - bool print_progress = true; + bool print_progress = false; //prepare recipe.yml (assume that execute in build directory) TString yamlfile = "../recipe/recipe_si26a.yml"; diff --git a/rootmake.sh b/rootmake.sh new file mode 100755 index 0000000..f208239 --- /dev/null +++ b/rootmake.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +DATADIR="/Data/si26a" +ROOTDIR="/home/crib/okawa/data/si26a/rootfiles" +for FILE in `ls $DATADIR/*.ridf` +do + DATAFILE=${FILE##*/} + FILENAME=${DATAFILE%.*} + INPUTFILE=${FILE%.*} + echo "in process ${DATAFILE}" + ./ridf2root -i "$INPUTFILE" -o "${ROOTDIR}/${FILENAME}" > ${ROOTDIR}/log/"${FILENAME}.txt" 2> /dev/null +done -- GitLab From 423ceae61605baa483cc500fbd45c9a18f70b013 Mon Sep 17 00:00:00 2001 From: Okawa Date: Tue, 12 Apr 2022 18:04:34 +0900 Subject: [PATCH 13/15] [mod] README.md --- README.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8d3b92e..f669712 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,9 @@ This convert .ridf to .root file ## Environment * ROOT v6.14 (need to set environment variable ROOTSYS) - * (M1 Mac cannot install old version of ROOT (okawa) ) * cmake 3.8 and above * yaml-cpp 0.6 and above -* gcc 9 +* gcc-9 * some package(wget, automake autoconf...) * (optionally python and pip pyyaml) @@ -80,5 +79,78 @@ make ``` - - +# structure of ROOT file + +## for si26a experiment +* tree: raw data tree + +| branch | description | +| ---- | ---- | +| adc1[32] | v785, 32ch | +| adc2[32] | v785, 32ch | +| madc1[32] | MADC, 32ch | +| madc2[32] | MADC, 32ch | +| tdc1[32] | v775, 32ch | +| tdc2[32] | v775, 32ch | +| mhtdc[64][12] | v1190, 62ch, 12hits | + +* mtree: map data tree + +| branch | description | +| ---- | ---- | +| coin_Coin |Coin| +| coin_Pileup/I |Pileup| +| dssd_Tel1_dE1X[16]/I || +| t_dssd_Tel1_dE1X[16][12]/I || +| dssd_Tel1_dE2Y[16]/I || +| t_dssd_Tel1_dE2Y[16][12]/I || +| dssd_Tel2_dE2Y[16]/I || +| t_dssd_Tel2_dE2Y[16]/I || +| dssd_Tel3_dE2Y[16]/I || +| t_dssd_Tel3_dE2Y[16]/I || +| mssd_1_1[4]/I || +| t_mssd_1_1/I || +| mssd_1_2[4]/I || +| t_mssd_1_2/I || +| mssd_2_1[4]/I || +| t_mssd_2_1/I || +| mssd_2_2[4]/I || +| t_mssd_2_2/I || +| mssd_3_1[4]/I || +| t_mssd_3_1/I || +| mssd_3_2[4]/I || +| t_mssd_3_2/I || +| ppac_F1[5]/I || +| ppac_F2_F3_B[5][12]/I || +| ppac_F3_A[5][12]/I || +| rf_RF[2]/I || +| ssd_Tel1_E1/I || +| t_ssd_Tel1_E1[12]/I || +| ssd_Tel1_E2/I || +| t_ssd_Tel1_E2[12]/I || +| ssd_Tel2_E1/I || +| t_ssd_Tel2_E1[12]/I || +| ssd_Tel2_E2/I || +| t_ssd_Tel2_E2[12]/I || +| ssd_Tel3_E1/I || +| t_ssd_Tel3_E1[12]/I || +| ssd_Tel3_E2/I || +| t_ssd_Tel3_E2[12]/I || +| ssd_Tel4_E1/I || +| t_ssd_Tel4_E1[12]/I || +| ssd_Tel4_E2/I || +| t_ssd_Tel4_E2[12]/I || +| ssd_Tel5_E1/I || +| t_ssd_Tel5_E1[12]/I || +| ssd_Tel5_E2/I || +| t_ssd_Tel5_E2[12]/I || +| ssd_Lowgain_1/I || +| t_ssd_Lowgain_1[12]/I || +| ssd_Lowgain_2/I || +| t_ssd_Lowgain_2[12]/I || +| ssd_Lowgain_3/I || +| t_ssd_Lowgain_3[12]/I || +| ssd_Lowgain_4/I || +| t_ssd_Lowgain_4[12]/I || +| ssd_F2SSD/I || +| t_ssd_F2SSD[12]/I || -- GitLab From e176876f9018d824e653cd2e9cc12a41b7af17e7 Mon Sep 17 00:00:00 2001 From: Okawa Date: Thu, 14 Apr 2022 21:14:12 +0900 Subject: [PATCH 14/15] update --- README.md | 121 ++++++++++++++++++++++++------------------------- doc/mapfile.md | 3 ++ rootmake.sh | 2 +- 3 files changed, 62 insertions(+), 64 deletions(-) diff --git a/README.md b/README.md index f669712..9edffe4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # ridf2root -This convert .ridf to .root file +This convert .ridf to .root file for CRIB experiment ## Environment * ROOT v6.14 (need to set environment variable ROOTSYS) @@ -10,12 +10,6 @@ This convert .ridf to .root file * (optionally python and pip pyyaml) -MEMO -- detector id of map file - - 6: adc - - 7: tdc - - 10: mhtdc - ## Summary This is a tool to convert ridffile to rootfile using ANAROOT decoder. (https://ribf.riken.jp/RIBFDAQ/index.php?Tools%2FAnalysis%2FANAROOT) @@ -98,59 +92,60 @@ make | branch | description | | ---- | ---- | -| coin_Coin |Coin| -| coin_Pileup/I |Pileup| -| dssd_Tel1_dE1X[16]/I || -| t_dssd_Tel1_dE1X[16][12]/I || -| dssd_Tel1_dE2Y[16]/I || -| t_dssd_Tel1_dE2Y[16][12]/I || -| dssd_Tel2_dE2Y[16]/I || -| t_dssd_Tel2_dE2Y[16]/I || -| dssd_Tel3_dE2Y[16]/I || -| t_dssd_Tel3_dE2Y[16]/I || -| mssd_1_1[4]/I || -| t_mssd_1_1/I || -| mssd_1_2[4]/I || -| t_mssd_1_2/I || -| mssd_2_1[4]/I || -| t_mssd_2_1/I || -| mssd_2_2[4]/I || -| t_mssd_2_2/I || -| mssd_3_1[4]/I || -| t_mssd_3_1/I || -| mssd_3_2[4]/I || -| t_mssd_3_2/I || -| ppac_F1[5]/I || -| ppac_F2_F3_B[5][12]/I || -| ppac_F3_A[5][12]/I || -| rf_RF[2]/I || -| ssd_Tel1_E1/I || -| t_ssd_Tel1_E1[12]/I || -| ssd_Tel1_E2/I || -| t_ssd_Tel1_E2[12]/I || -| ssd_Tel2_E1/I || -| t_ssd_Tel2_E1[12]/I || -| ssd_Tel2_E2/I || -| t_ssd_Tel2_E2[12]/I || -| ssd_Tel3_E1/I || -| t_ssd_Tel3_E1[12]/I || -| ssd_Tel3_E2/I || -| t_ssd_Tel3_E2[12]/I || -| ssd_Tel4_E1/I || -| t_ssd_Tel4_E1[12]/I || -| ssd_Tel4_E2/I || -| t_ssd_Tel4_E2[12]/I || -| ssd_Tel5_E1/I || -| t_ssd_Tel5_E1[12]/I || -| ssd_Tel5_E2/I || -| t_ssd_Tel5_E2[12]/I || -| ssd_Lowgain_1/I || -| t_ssd_Lowgain_1[12]/I || -| ssd_Lowgain_2/I || -| t_ssd_Lowgain_2[12]/I || -| ssd_Lowgain_3/I || -| t_ssd_Lowgain_3[12]/I || -| ssd_Lowgain_4/I || -| t_ssd_Lowgain_4[12]/I || -| ssd_F2SSD/I || -| t_ssd_F2SSD[12]/I || +| coin_Single |TDC, Single| +| coin_Coin |TDC, Coin| +| coin_Pileup |TDC, Pileup| +| dssd_Tel1_dE1X[16] |ADC, 16ch| +| t_dssd_Tel1_dE1X[16][12] |TDC, 16ch, 12hits| +| dssd_Tel1_dE2Y[16] |ADC, 16ch| +| t_dssd_Tel1_dE2Y[16][12] |TDC, 16ch, 12hits| +| dssd_Tel2_dE2Y[16] |ADC, 16ch| +| t_dssd_Tel2_dE2Y[16] |TDC, 16ch, 12hits| +| dssd_Tel3_dE2Y[16] |ADC, 16ch| +| t_dssd_Tel3_dE2Y[16] |TDC, 16ch, 12hits| +| mssd_1_1[4] |ADC, ene1, ene2, pos1, pos2| +| t_mssd_1_1 |TDC| +| mssd_1_2[4] |ADC, ene1, ene2, pos1, pos2| +| t_mssd_1_2 |TDC| +| mssd_2_1[4] |ADC, ene1, ene2, pos1, pos2| +| t_mssd_2_1 |TDC| +| mssd_2_2[4] |ADC, ene1, ene2, pos1, pos2| +| t_mssd_2_2 |TDC| +| mssd_3_1[4] |ADC, ene1, ene2, pos1, pos2| +| t_mssd_3_1 |TDC| +| mssd_3_2[4] |ADC, ene1, ene2, pos1, pos2| +| t_mssd_3_2 |TDC| +| ppac_F1[5] || +| ppac_F2_F3_B[5][12] || +| ppac_F3_A[5][12] || +| rf_RF[2] || +| ssd_Tel1_E1 || +| t_ssd_Tel1_E1[12] |12hits| +| ssd_Tel1_E2 || +| t_ssd_Tel1_E2[12] |12hits| +| ssd_Tel2_E1 || +| t_ssd_Tel2_E1[12] |12hits| +| ssd_Tel2_E2 || +| t_ssd_Tel2_E2[12] |12hits| +| ssd_Tel3_E1 || +| t_ssd_Tel3_E1[12] |12hits| +| ssd_Tel3_E2 || +| t_ssd_Tel3_E2[12] |12hits| +| ssd_Tel4_E1 || +| t_ssd_Tel4_E1[12] |12hits| +| ssd_Tel4_E2 || +| t_ssd_Tel4_E2[12] |12hits| +| ssd_Tel5_E1 || +| t_ssd_Tel5_E1[12] |12hits| +| ssd_Tel5_E2 || +| t_ssd_Tel5_E2[12] |12hits| +| ssd_Lowgain_1 || +| t_ssd_Lowgain_1[12] |12hits| +| ssd_Lowgain_2 || +| t_ssd_Lowgain_2[12] |12hits| +| ssd_Lowgain_3 || +| t_ssd_Lowgain_3[12] |12hits| +| ssd_Lowgain_4 || +| t_ssd_Lowgain_4[12] |12hits| +| ssd_F2SSD || +| t_ssd_F2SSD[12] |12hits| diff --git a/doc/mapfile.md b/doc/mapfile.md index 3a8266f..a65b64b 100644 --- a/doc/mapfile.md +++ b/doc/mapfile.md @@ -1,6 +1,9 @@ # mapfile setting these mapfile was created for the ANAPAW. I copied from ANAPAW source. +# structure of mapfile +[category],[id],[[dev] [fp] [detector] [geo] [ch]], [[dev] [fp] [detector] [geo] [ch]], ; [detector name] + ## raw data detector id is set to: * 6: ADC diff --git a/rootmake.sh b/rootmake.sh index f208239..a40f88d 100755 --- a/rootmake.sh +++ b/rootmake.sh @@ -1,7 +1,7 @@ #!/bin/sh DATADIR="/Data/si26a" -ROOTDIR="/home/crib/okawa/data/si26a/rootfiles" +ROOTDIR="/home/crib/okawa/data/si26a" for FILE in `ls $DATADIR/*.ridf` do DATAFILE=${FILE##*/} -- GitLab From 3d11f89336587d579e23f86128e6141c1a878a94 Mon Sep 17 00:00:00 2001 From: Okawa Date: Thu, 14 Apr 2022 21:39:45 +0900 Subject: [PATCH 15/15] update --- README.md | 15 +++++---------- doc/main.md | 22 ---------------------- doc/mapfile.md | 18 +++++++++++++++--- 3 files changed, 20 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 9edffe4..f3d0836 100644 --- a/README.md +++ b/README.md @@ -19,15 +19,10 @@ ANAROOT is automatically installed by "cmake" in the project directory in order ### Config file -* recipe/**.yml -* map/(expname)/**.map -* main.cpp +* recipe/**.yml [yaml file setting](doc/yamlfile.md) +* map/(expname)/**.map [map file setting](doc/mapfile.md) +* main.cpp [main.cpp setting](doc/main.md) -[yaml file setting](doc/yamlfile.md) - -[map file setting](doc/mapfile.md) - -[main.cpp setting](doc/main.md) ### Install @@ -73,9 +68,9 @@ make ``` -# structure of ROOT file +## Structure of ROOT file -## for si26a experiment +### for si26a experiment * tree: raw data tree | branch | description | diff --git a/doc/main.md b/doc/main.md index 7144cea..2cd190e 100644 --- a/doc/main.md +++ b/doc/main.md @@ -1,30 +1,8 @@ # main.cpp ## setting parameter -* bool rawdata - * "true" -> raw data tree will be created -* bool mapdata - * "true" -> map tree will be created -* bool calibration - * "true" -> calibrated tree will be created - * **NOTE**: calibrated tree require map tree, so mapdata = true; and calibration = true; is needed * bool print_progress * "true" -> display the process of data conversion in stdout * TString yamlfile * Set the path to the yaml file in which the settings are written -## content -1. **CheckCommandLine** -> read information written on the command line -2. **Readyaml** -> read specified yaml file -3. **CreateRootFile** -> prepare rootfile -4. **Create__Tree** -> create trees (Raw->tree, Map->mtree, Calib->ctree) -5. **Create__branch** -> create each branches from config file ***(should be improved)*** -6. **Create__Mapping** -> mapping each branch to the id on the DAQ ***(should be improved)*** -7. **TArtEventStore** - * Read and decode ridf file using ANAROOT library -8. **Clear__All** -> initialize value -9. **Give__Value** -> Store decoded values in mapped branches ***(should be improved)*** - * geo: detector, ch: channel, val: recorded value -10. **__Fill** -> store values in the branches in one event -11. **__DataWrite** -> write the created trees to the rootfile -12. **FileClose** -> close the rootfile diff --git a/doc/mapfile.md b/doc/mapfile.md index a65b64b..05fbf55 100644 --- a/doc/mapfile.md +++ b/doc/mapfile.md @@ -1,11 +1,23 @@ # mapfile setting these mapfile was created for the ANAPAW. I copied from ANAPAW source. -# structure of mapfile +# Structure of mapfile [category],[id],[[dev] [fp] [detector] [geo] [ch]], [[dev] [fp] [detector] [geo] [ch]], ; [detector name] -## raw data -detector id is set to: +* category: user select number, to distinguish the +* id: detector_id, +* dev: Number assigned in RIBF, for CRIB, we use 12 +* fp: focal plane, for CRIB, we use only 0 (not distinguish the focal plane in map file) +* detector: detector id (see below) +* geo: geometory id, set in DAQ system (in dat3 PC) +* ch: channel number of each module +* detector_name: for one detector, if there are several ch, line up alongside + + +example) +4, 1, 12 0 6 7 0, 12 0 6 7 1, ; mssd 1-1 + +## detector id * 6: ADC * 7: TDC * 10: multi hit TDC -- GitLab