From 5e2753a8291520c3c964a00e15c6d231d3a2223f Mon Sep 17 00:00:00 2001
From: adrien matta <matta@lpccaen.in2p3.fr>
Date: Wed, 30 Jun 2021 15:19:09 +0200
Subject: [PATCH] * Progress on Nebula Calibration

---
 Projects/S034/Calibration/Nebula/gamma.cxx    |  46 ++-
 .../S034/Calibration/Nebula/make_gamma.cxx    |  62 ++++
 .../S034/Calibration/Nebula/offset_gamma.txt  | 288 +++++++++---------
 3 files changed, 225 insertions(+), 171 deletions(-)
 create mode 100644 Projects/S034/Calibration/Nebula/make_gamma.cxx

diff --git a/Projects/S034/Calibration/Nebula/gamma.cxx b/Projects/S034/Calibration/Nebula/gamma.cxx
index 1eecf02e5..a24c5565d 100644
--- a/Projects/S034/Calibration/Nebula/gamma.cxx
+++ b/Projects/S034/Calibration/Nebula/gamma.cxx
@@ -1,15 +1,14 @@
 TChain* MakeChain1();
 TChain* MakeChain2();
 TChain* MakeChain();
-TH2F*   MakeTH2();
-TH2F*   GetTH2();
+TH1F*   GetV(unsigned int b);
+TH1F*   GetR(unsigned int b);
 TGraph* graph = new TGraph();
 unsigned int point = 1;
 double off;
 double c_light=299.792458;//mm/ns
 auto chain = MakeChain();
 void process1bar(int b);
-auto h = new TH2F("h","h",200,0,201,500,0,1000);
 auto r = new TH2F("r","r",200,0,201,10000,17000,20000);
 ofstream output("Calibration/Nebula/offset_gamma.txt");
 ////////////////////////////////////////////////////////////////////////////////
@@ -28,8 +27,6 @@ void gamma(){
   auto c = new TCanvas("tof","tof");
 
   chain->SetAlias("R","sqrt(Nebula.PosX*Nebula.PosX+Nebula.PosY*Nebula.PosY+(Nebula.PosZ+3774.7)*(Nebula.PosZ+3774.7))");
-  h=GetTH2();
-  h->Draw("colz");
   new TCanvas();
   unsigned int select =60;
   for(unsigned int i = 0 ; i < 150 ; i++){
@@ -46,13 +43,15 @@ void gamma(){
 ////////////////////////////////////////////////////////////////////////////////
 void process1bar(int b){
   //new TCanvas();
-  // Get the Radius for the distance to this barre
-  auto r1 = r->ProjectionY(Form("h%d",b),b,b+1);  
-  r1->Rebin(4);
+  // Get the Radius for the distance to this bar
+  auto r1 = GetR(b);  
+  //r1->Rebin(4);
   double R =  r1->GetBinCenter(r1->GetMaximumBin());
 
-  auto h1 = h->ProjectionY(Form("h%d",b),b,b+1);
-  h1->Rebin(8);
+  auto h1 = GetV(b);
+  if(h1->GetEntries()<10)
+    return;
+  //h1->Rebin(8);
   double max = h1->GetBinCenter(h1->GetMaximumBin());
   //h1->Draw();
   auto f = new TF1("f","gaus(0)+pol0(3)",max-100,max+100);
@@ -81,28 +80,23 @@ void process1bar(int b){
     }
 }
 ////////////////////////////////////////////////////////////////////////////////
-TH2F* GetTH2(){
-  auto File= new TFile("Calibration/Nebula/hist_v.root");
-  h = (TH2F*) File->FindObjectAny("h");
-
-  File= new TFile("Calibration/Nebula/hist_r.root");
-  r = (TH2F*) File->FindObjectAny("r");
+TH1F* GetV(unsigned int b){
+  auto File= new TFile("Calibration/Nebula/hist_gamma.root");
+  auto h = (TH1F*) File->FindObjectAny(Form("h%d",b));
+  h->Rebin(4);
+  h->GetXaxis()->SetRangeUser(500,800);
+//  File= new TFile("Calibration/Nebula/hist_r.root");
+//  r = (TH2F*) File->FindObjectAny("r");
   return h;
   }
-
 ////////////////////////////////////////////////////////////////////////////////
-TH2F* MakeTH2(){
-  TString cond=Form("(Nebula.TOF-%f)>20&&(Nebula.TOF-%f)<38",off,off);
-  TString draw=Form("R/(Nebula.TOF-%f):Nebula.DetectorNumber>>h",off); 
-  chain->Draw(draw,cond,"colz");
-  h->SaveAs("Calibration/Nebula/hist_v.root");
-
-  chain->Draw("R:Nebula.DetectorNumber>>r","","colz");
-  r->SaveAs("Calibration/Nebula/hist_r.root");
-
+TH1F* GetR(unsigned int b){
+  auto File= new TFile("Calibration/Nebula/hist_gamma.root");
+  auto h = (TH1F*) File->FindObjectAny(Form("r%d",b));
   return h;
   }
 
+
 ////////////////////////////////////////////////////////////////////////////////
 TChain* MakeChain(){
   auto chain = new TChain("PhysicsTree");
diff --git a/Projects/S034/Calibration/Nebula/make_gamma.cxx b/Projects/S034/Calibration/Nebula/make_gamma.cxx
new file mode 100644
index 000000000..78c0b76b3
--- /dev/null
+++ b/Projects/S034/Calibration/Nebula/make_gamma.cxx
@@ -0,0 +1,62 @@
+
+TChain* MakeChain();
+
+double c_light=299.792458;//mm/ns
+void make_gamma(){
+
+  auto file = new TFile("Calibration/Nebula/hist_gamma.root","RECREATE");
+  // Create histograms
+  vector<TH1F*> h,r;
+  for(unsigned int i = 0 ; i < 150 ; i++){
+    TString name = Form("h%d",i);
+    h.push_back(new TH1F(name,name,500,0,1000));
+    name = Form("r%d",i);
+    r.push_back(new TH1F(name,name,10000,17000,20000));
+  }
+
+  auto chain = MakeChain();
+  auto neb = new TNebulaPhysics();
+
+  double beta=0.5504;
+  // Distance from SBT(-7377.56) to target(3774.7 for FP + a value for each target)
+  double D1=7377.56-3774.7+2.795;
+  double D2=7377.56-3774.7+6.972;
+  // time offset for each case
+  double off1 = D1/(beta*c_light);
+  double off2 = D2/(beta*c_light);
+  double off = (off1+off2)*0.5;
+
+  cout << "Offset1 : " << off1 << endl;
+  cout << "Offset2 : " << off2 << endl;
+  cout << "Mean : " << off << endl;
+
+  chain->SetBranchAddress("Nebula",&neb);
+  unsigned int size = chain->GetEntries();
+
+ // unsigned int size = 10000;
+  for(unsigned int i = 0 ; i < size ; i++){
+    if(i%1000==0)
+      cout << "\r entry " << i << " / " << size << flush; 
+    chain->GetEntry(i); 
+    if(neb->DetectorNumber.size()==1){
+      double R = sqrt(neb->PosX[0]*neb->PosX[0]+neb->PosY[0]*neb->PosY[0]+(neb->PosZ[0]+3774.7)*(neb->PosZ[0]+3774.7));
+      double v = R/(neb->TOF[0]-off); 
+      h[neb->DetectorNumber[0]]->Fill(v);
+      r[neb->DetectorNumber[0]]->Fill(R);
+    }
+  }
+ 
+ for(auto it = h.begin(); it !=h.end(); it++)
+   (*it)->Write();
+  for(auto it = r.begin(); it !=r.end(); it++)
+   (*it)->Write();
+  
+  file->Close();
+cout << endl; 
+}
+////////////////////////////////////////////////////////////////////////////////
+TChain* MakeChain(){
+  auto chain = new TChain("PhysicsTree");
+  chain->Add("root/analysis/gamma/run*.root");
+  return chain;
+}
diff --git a/Projects/S034/Calibration/Nebula/offset_gamma.txt b/Projects/S034/Calibration/Nebula/offset_gamma.txt
index 64ea97501..973e5b822 100644
--- a/Projects/S034/Calibration/Nebula/offset_gamma.txt
+++ b/Projects/S034/Calibration/Nebula/offset_gamma.txt
@@ -1,145 +1,143 @@
-NEBULA_T_ID0 34.5443
-NEBULA_T_ID1 34.6041
-NEBULA_T_ID2 34.7518
-NEBULA_T_ID3 34.6263
-NEBULA_T_ID4 34.7264
-NEBULA_T_ID5 34.7805
-NEBULA_T_ID6 34.7154
-NEBULA_T_ID7 34.7419
-NEBULA_T_ID8 34.4646
-NEBULA_T_ID9 34.5757
-NEBULA_T_ID10 34.6319
-NEBULA_T_ID11 34.684
-NEBULA_T_ID12 34.6671
-NEBULA_T_ID13 34.5219
-NEBULA_T_ID14 34.6426
-NEBULA_T_ID15 34.6614
-NEBULA_T_ID16 34.5045
-NEBULA_T_ID17 34.2474
-NEBULA_T_ID18 34.3315
-NEBULA_T_ID19 34.4367
-NEBULA_T_ID20 34.3501
-NEBULA_T_ID21 34.4006
-NEBULA_T_ID22 34.2355
-NEBULA_T_ID23 34.1699
-NEBULA_T_ID24 34.3718
-NEBULA_T_ID25 34.6248
-NEBULA_T_ID26 34.3355
-NEBULA_T_ID27 34.3709
-NEBULA_T_ID28 34.6222
-NEBULA_T_ID29 34.8974
-NEBULA_T_ID30 33.9325
-NEBULA_T_ID31 34.4291
-NEBULA_T_ID32 34.1664
-NEBULA_T_ID33 34.0149
-NEBULA_T_ID34 34.1137
-NEBULA_T_ID35 34.2463
-NEBULA_T_ID36 34.4991
-NEBULA_T_ID37 34.4827
-NEBULA_T_ID38 34.3254
-NEBULA_T_ID39 34.1954
-NEBULA_T_ID40 34.0749
-NEBULA_T_ID41 34.4117
-NEBULA_T_ID42 34.459
-NEBULA_T_ID43 34.2735
-NEBULA_T_ID44 34.1037
-NEBULA_T_ID45 34.3806
-NEBULA_T_ID46 34.4906
-NEBULA_T_ID47 34.5923
-NEBULA_T_ID48 34.4633
-NEBULA_T_ID49 34.307
-NEBULA_T_ID50 34.3805
-NEBULA_T_ID51 34.3969
-NEBULA_T_ID52 34.588
-NEBULA_T_ID53 34.5001
-NEBULA_T_ID54 34.5203
-NEBULA_T_ID55 34.5992
-NEBULA_T_ID56 34.0684
-NEBULA_T_ID57 34.8204
-NEBULA_T_ID58 35.1604
-NEBULA_T_ID59 35.1723
-NEBULA_T_ID61 34.1618
-NEBULA_T_ID62 33.8713
-NEBULA_T_ID63 34.8467
-NEBULA_T_ID64 34.6529
-NEBULA_T_ID65 34.9478
-NEBULA_T_ID66 34.8999
-NEBULA_T_ID67 34.2035
-NEBULA_T_ID68 33.7549
-NEBULA_T_ID69 33.9205
-NEBULA_T_ID70 34.2526
-NEBULA_T_ID71 33.7645
-NEBULA_T_ID72 33.983
-NEBULA_T_ID73 34.254
-NEBULA_T_ID74 34.2696
-NEBULA_T_ID75 34.5276
-NEBULA_T_ID76 34.8105
-NEBULA_T_ID77 34.1207
-NEBULA_T_ID78 33.8232
-NEBULA_T_ID79 34.3802
-NEBULA_T_ID80 34.6536
-NEBULA_T_ID81 33.795
-NEBULA_T_ID82 33.5954
-NEBULA_T_ID83 34.5733
-NEBULA_T_ID84 33.7437
-NEBULA_T_ID85 34.0008
-NEBULA_T_ID86 34.138
-NEBULA_T_ID87 33.5396
-NEBULA_T_ID88 32.7999
-NEBULA_T_ID89 34.0736
-NEBULA_T_ID90 34.04
-NEBULA_T_ID91 34.4174
-NEBULA_T_ID92 34.4746
-NEBULA_T_ID93 34.1962
-NEBULA_T_ID94 33.9695
-NEBULA_T_ID95 34.0982
-NEBULA_T_ID96 34.6771
-NEBULA_T_ID97 34.5538
-NEBULA_T_ID98 34.8161
-NEBULA_T_ID99 34.8409
-NEBULA_T_ID100 34.5276
-NEBULA_T_ID101 34.2538
-NEBULA_T_ID102 34.3322
-NEBULA_T_ID103 34.6166
-NEBULA_T_ID104 34.7776
-NEBULA_T_ID105 34.9334
-NEBULA_T_ID106 34.6325
-NEBULA_T_ID107 34.0925
-NEBULA_T_ID108 34.449
-NEBULA_T_ID109 33.5975
-NEBULA_T_ID110 33.6435
-NEBULA_T_ID111 34.4499
-NEBULA_T_ID112 34.3772
-NEBULA_T_ID113 33.4742
-NEBULA_T_ID114 33.9552
-NEBULA_T_ID115 33.8484
-NEBULA_T_ID116 34.4536
-NEBULA_T_ID117 34.7238
-NEBULA_T_ID118 34.8648
-NEBULA_T_ID119 35.1404
-NEBULA_T_ID120 35.5016
-NEBULA_T_ID121 33.6429
-NEBULA_T_ID122 33.969
-NEBULA_T_ID123 34.1937
-NEBULA_T_ID124 34.3994
-NEBULA_T_ID125 34.4839
-NEBULA_T_ID126 34.4435
-NEBULA_T_ID127 34.313
-NEBULA_T_ID128 34.2042
-NEBULA_T_ID129 34.2139
-NEBULA_T_ID130 34.3013
-NEBULA_T_ID131 33.3367
-NEBULA_T_ID132 32.8974
-NEBULA_T_ID133 34.331
-NEBULA_T_ID134 34.3026
-NEBULA_T_ID135 34.6377
-NEBULA_T_ID136 34.7342
-NEBULA_T_ID137 34.4055
-NEBULA_T_ID138 34.4339
-NEBULA_T_ID139 34.7883
-NEBULA_T_ID140 29.8549
-NEBULA_T_ID141 31.701
-NEBULA_T_ID142 34.8278
-NEBULA_T_ID143 34.4204
-NEBULA_T_ID144 34.0676
-NEBULA_T_ID60 34.2291
+NEBULA_T_ID1 34.5922
+NEBULA_T_ID2 34.7694
+NEBULA_T_ID3 34.9723
+NEBULA_T_ID4 34.6604
+NEBULA_T_ID5 34.8851
+NEBULA_T_ID6 34.6936
+NEBULA_T_ID7 34.7044
+NEBULA_T_ID8 34.7642
+NEBULA_T_ID9 34.4816
+NEBULA_T_ID10 34.5612
+NEBULA_T_ID11 34.6275
+NEBULA_T_ID12 34.619
+NEBULA_T_ID13 34.3853
+NEBULA_T_ID14 34.3388
+NEBULA_T_ID15 35.0631
+NEBULA_T_ID16 34.5556
+NEBULA_T_ID17 33.9783
+NEBULA_T_ID18 34.2425
+NEBULA_T_ID19 34.5992
+NEBULA_T_ID20 34.2835
+NEBULA_T_ID21 34.4126
+NEBULA_T_ID22 34.4358
+NEBULA_T_ID23 34.0272
+NEBULA_T_ID24 34.1103
+NEBULA_T_ID25 34.5739
+NEBULA_T_ID26 35.0359
+NEBULA_T_ID27 34.9156
+NEBULA_T_ID28 34.2105
+NEBULA_T_ID29 34.8138
+NEBULA_T_ID30 34.9965
+NEBULA_T_ID31 34.1339
+NEBULA_T_ID32 34.4452
+NEBULA_T_ID33 34.0956
+NEBULA_T_ID34 34.3118
+NEBULA_T_ID35 34.3546
+NEBULA_T_ID36 34.3213
+NEBULA_T_ID37 34.7201
+NEBULA_T_ID38 34.2632
+NEBULA_T_ID39 34.4773
+NEBULA_T_ID40 33.719
+NEBULA_T_ID41 34.5495
+NEBULA_T_ID42 34.3425
+NEBULA_T_ID43 34.2744
+NEBULA_T_ID44 34.6795
+NEBULA_T_ID45 34.1254
+NEBULA_T_ID46 34.5549
+NEBULA_T_ID47 34.4596
+NEBULA_T_ID48 34.5931
+NEBULA_T_ID49 34.2254
+NEBULA_T_ID50 34.2657
+NEBULA_T_ID51 34.5111
+NEBULA_T_ID52 34.581
+NEBULA_T_ID53 34.099
+NEBULA_T_ID54 34.0757
+NEBULA_T_ID55 34.6373
+NEBULA_T_ID56 34.6463
+NEBULA_T_ID57 34.8271
+NEBULA_T_ID58 34.5796
+NEBULA_T_ID59 35.2348
+NEBULA_T_ID61 34.1897
+NEBULA_T_ID62 34.2115
+NEBULA_T_ID63 35.6809
+NEBULA_T_ID64 34.6327
+NEBULA_T_ID65 35.0425
+NEBULA_T_ID66 35.4113
+NEBULA_T_ID67 34.9083
+NEBULA_T_ID68 34.1289
+NEBULA_T_ID69 33.5752
+NEBULA_T_ID70 34.4984
+NEBULA_T_ID71 34.2975
+NEBULA_T_ID72 33.7079
+NEBULA_T_ID73 34.2989
+NEBULA_T_ID74 34.3563
+NEBULA_T_ID75 33.5771
+NEBULA_T_ID76 34.7965
+NEBULA_T_ID77 34.7209
+NEBULA_T_ID78 33.7591
+NEBULA_T_ID79 34.059
+NEBULA_T_ID80 34.8741
+NEBULA_T_ID82 33.0554
+NEBULA_T_ID83 34.4457
+NEBULA_T_ID84 34.4195
+NEBULA_T_ID85 33.5292
+NEBULA_T_ID86 34.8708
+NEBULA_T_ID87 33.9424
+NEBULA_T_ID88 33.1291
+NEBULA_T_ID89 34.668
+NEBULA_T_ID90 33.7628
+NEBULA_T_ID91 34.5667
+NEBULA_T_ID92 32.1052
+NEBULA_T_ID93 34.6439
+NEBULA_T_ID94 34.174
+NEBULA_T_ID95 34.4052
+NEBULA_T_ID96 34.777
+NEBULA_T_ID97 34.8321
+NEBULA_T_ID98 34.5154
+NEBULA_T_ID99 34.8771
+NEBULA_T_ID100 34.82
+NEBULA_T_ID101 34.3954
+NEBULA_T_ID102 34.5721
+NEBULA_T_ID103 34.6479
+NEBULA_T_ID104 34.5427
+NEBULA_T_ID105 35.1569
+NEBULA_T_ID106 34.8748
+NEBULA_T_ID107 35.0694
+NEBULA_T_ID108 33.8616
+NEBULA_T_ID109 34.5262
+NEBULA_T_ID110 33.4922
+NEBULA_T_ID111 34.367
+NEBULA_T_ID112 34.8241
+NEBULA_T_ID113 33.6154
+NEBULA_T_ID114 35.2176
+NEBULA_T_ID115 33.723
+NEBULA_T_ID116 40.2125
+NEBULA_T_ID117 35.4705
+NEBULA_T_ID118 34.2625
+NEBULA_T_ID119 35.471
+NEBULA_T_ID120 34.8941
+NEBULA_T_ID121 33.6064
+NEBULA_T_ID122 34.3692
+NEBULA_T_ID123 32.8653
+NEBULA_T_ID124 34.6004
+NEBULA_T_ID125 35.4875
+NEBULA_T_ID126 23.867
+NEBULA_T_ID127 33.0042
+NEBULA_T_ID128 32.6078
+NEBULA_T_ID129 34.4132
+NEBULA_T_ID130 34.1434
+NEBULA_T_ID131 23.8805
+NEBULA_T_ID132 32.6514
+NEBULA_T_ID133 35.5018
+NEBULA_T_ID134 34.633
+NEBULA_T_ID135 36.0812
+NEBULA_T_ID136 35.0311
+NEBULA_T_ID137 32.5883
+NEBULA_T_ID138 25.9258
+NEBULA_T_ID139 28.8419
+NEBULA_T_ID140 25.3851
+NEBULA_T_ID141 32.6386
+NEBULA_T_ID142 28.5499
+NEBULA_T_ID143 29.1687
+NEBULA_T_ID144 60.234
+NEBULA_T_ID60 34.7372
-- 
GitLab