diff --git a/Projects/ana_e850/Analysis.cxx b/Projects/ana_e850/Analysis.cxx index 0aa090f971352026367e3c8d19b3520ab1d1ee7d..a35f7a53195ee2745e5fcdf8b80680bf8568c4fd 100644 --- a/Projects/ana_e850/Analysis.cxx +++ b/Projects/ana_e850/Analysis.cxx @@ -241,7 +241,7 @@ void Analysis::PistaAnalysis(){ Elab_12C = geloss_C12C->Eval(Elab_12C); C12->SetKineticEnergy(Elab_12C); - // 120Be case // + // 10Be case // double Elab_10Be; Elab_10Be = geloss_Be10Al->Eval(Eres); Elab_10Be = geloss_Be10Al->Eval(Elab_10Be); @@ -252,6 +252,24 @@ void Analysis::PistaAnalysis(){ Beta_pista = Be10->GetBeta(); Ex240Pu = Transfer10Be->ReconstructRelativistic(Elab_10Be, ThetaLab); + TLorentzVector LV_240Pu = Transfer10Be->LorentzAfterReaction(Elab_10Be, ThetaLab); + beta_240Pu = LV_240Pu.Beta(); + gamma_240Pu = LV_240Pu.Gamma(); + theta_240Pu = LV_240Pu.Angle(TVector3(0,0,1)); + phi_240Pu = LV_240Pu.Phi(); + + TVector3 vector3_FF = TVector3(sin(FF_Theta)*cos(FF_Phi), sin(FF_Theta)*sin(FF_Phi), cos(FF_Theta)); + TVector3 vector3_fiss = TVector3(sin(theta_240Pu)*cos(phi_240Pu), sin(theta_240Pu)*sin(phi_240Pu), cos(theta_240Pu)); + + theta_lab_fission = vector3_FF.Angle(vector3_fiss); + gamma_lab_ff = FF_Gamma13; + beta_lab_ff = FF_Beta13; + + gamma_cm_ff = gamma_240Pu*(gamma_lab_ff - beta_240Pu*beta_lab_ff*gamma_lab_ff*cos(theta_lab_fission)); + beta_cm_ff = sqrt(pow(gamma_cm_ff,2)-1)/gamma_cm_ff; + theta_cm_fission = acos((gamma_240Pu/(beta_cm_ff*gamma_cm_ff))*(beta_lab_ff*gamma_lab_ff*cos(theta_lab_fission) - beta_240Pu*gamma_lab_ff)); + + // Other cases Ex236U = Transfer14C->ReconstructRelativistic(Elab, ThetaLab); Ex238U = Elastic->ReconstructRelativistic(Elab_12C, ThetaLab); ThetaCM = Transfer10Be->EnergyLabToThetaCM(Elab, ThetaLab)/deg; @@ -400,11 +418,11 @@ void Analysis::VamosAnalysis(){ FF_Y1 = FPMW->PositionY[0]; FF_Y3 = FPMW->PositionY[2]; - + // T13 // double path1 = FPMW->GetDetectorPositionZ(0)/10./cos(FPMW->Theta_in)/cos(FPMW->Phi_in); double path2 = (FPMW->GetDetectorPositionZ(2)-7600)/10./cos(FPMW->Thetaf); - FF_D13 = FF_Path - path1 + path2; + FF_D13 = FF_Path - path1 + path2; FF_T13 = T13 - 20 + m_T13_Offset[FPMWPat]; FF_V13 = (FF_D13/FF_T13)*(1-3e-5*FF_Y3); FF_Beta13 = FF_V13/29.9792458; @@ -571,6 +589,17 @@ void Analysis::InitOutputBranch(){ RootOutput::getInstance()->GetTree()->Branch("FF_Etot13",&FF_Etot13,"FF_Etot13/D"); RootOutput::getInstance()->GetTree()->Branch("FPMW_Section",&FPMW_Section,"FPMW_Section/I"); + + RootOutput::getInstance()->GetTree()->Branch("theta_lab_fission",&theta_lab_fission,"theta_lab_fission/D"); + RootOutput::getInstance()->GetTree()->Branch("theta_cm_fission",&theta_cm_fission,"theta_cm_fission/D"); + RootOutput::getInstance()->GetTree()->Branch("theta_240Pu",&theta_240Pu,"theta_240Pu/D"); + RootOutput::getInstance()->GetTree()->Branch("phi_240Pu",&phi_240Pu,"phi_240Pu/D"); + RootOutput::getInstance()->GetTree()->Branch("beta_240Pu",&beta_240Pu,"beta_240Pu/D"); + RootOutput::getInstance()->GetTree()->Branch("gamma_240Pu",&gamma_240Pu,"gamma_240Pu/D"); + RootOutput::getInstance()->GetTree()->Branch("gamma_lab_ff",&gamma_lab_ff,"gamma_lab_ff/D"); + RootOutput::getInstance()->GetTree()->Branch("gamma_cm_ff",&gamma_cm_ff,"gamma_cm_ff/D"); + RootOutput::getInstance()->GetTree()->Branch("beta_lab_ff",&beta_lab_ff,"beta_lab_ff/D"); + RootOutput::getInstance()->GetTree()->Branch("beta_cm_ff",&beta_cm_ff,"beta_cm_ff/D"); RootOutput::getInstance()->GetTree()->Branch("Elab1",&Elab1); RootOutput::getInstance()->GetTree()->Branch("Elab2",&Elab2); @@ -693,10 +722,21 @@ void Analysis::ReInitValue(){ FF_AoQ24 = -1; FF_Mass24 = -1; - FF_Qav = -1; FF_Massav = -1; + theta_lab_fission = -100; + theta_cm_fission = -100; + theta_240Pu = -100; + phi_240Pu = -100; + beta_240Pu = -100; + gamma_240Pu = -100; + gamma_lab_ff = -100; + gamma_cm_ff = -100; + beta_lab_ff = -100; + beta_cm_ff = -100; + + m_2alpha = 0; Elab1.clear(); Elab2.clear(); diff --git a/Projects/ana_e850/Analysis.h b/Projects/ana_e850/Analysis.h index 44aae833eaf5f995bdb04eaa327463029b2fc751..0cf066099a7584c32dee204cdc2dc98d84ae023e 100644 --- a/Projects/ana_e850/Analysis.h +++ b/Projects/ana_e850/Analysis.h @@ -102,6 +102,17 @@ class Analysis: public NPL::VAnalysis{ double PISTA_TS_hour; int FPMW_Section; + double theta_lab_fission; + double theta_cm_fission; + double beta_240Pu; + double gamma_240Pu; + double theta_240Pu; + double phi_240Pu; + double gamma_lab_ff; + double gamma_cm_ff; + double beta_lab_ff; + double beta_cm_ff; + double FF_DE; double FF_Eres; double FF_Z; diff --git a/Projects/ana_e850/configs/ConfigExogam.dat b/Projects/ana_e850/configs/ConfigExogam.dat index c8d65f2c6448892bbec17b183b19929751576646..842b8014fcca159a0c6d6bd110d82800e7b98113 100644 --- a/Projects/ana_e850/configs/ConfigExogam.dat +++ b/Projects/ana_e850/configs/ConfigExogam.dat @@ -1,5 +1,6 @@ ConfigExogam TDC_THRESHOLDS 0 500000 +DATA_IS_CAL 1 MAP_EXO 12 3 0 MAP_EXO 13 3 1 MAP_EXO 14 3 2 diff --git a/Projects/ana_e850/conversion/convert.C b/Projects/ana_e850/conversion/convert.C index 6869b92ba10b643eb4200b58c17d585ea6ddb44e..c1de0e0822bdba36e2967bd8668e3f0fe4a1b504 100644 --- a/Projects/ana_e850/conversion/convert.C +++ b/Projects/ana_e850/conversion/convert.C @@ -1,15 +1,16 @@ #include "convert.h" /////////////////////////////////////////////////// -void convert(int run=43){ +void convert(int run=48){ m_pista = new TPISTAData(); m_fpmw = new TFPMWData(); m_ic = new TICData(); - m_exogam = new TExogamData(); + m_exogam = new TExogamCalData(); // input tree // input_tree = new TChain("AD"); - input_tree->Add(Form("/home/morfouacep/Physics/ganil/pista/analysisenv-e850-2023/RootA/r00%i*.root",run)); + //input_tree->Add(Form("/home/morfouacep/Physics/ganil/pista/analysisenv-e850-2023/RootA/r00%i*.root",run)); + input_tree->Add(Form("/run/media/morfouacep/proton/e850/2023/RootA/r00%i*.root",run)); InitInputTree(); @@ -27,7 +28,7 @@ void convert(int run=43){ output_tree->Branch("PISTA","TPISTAData",&m_pista); output_tree->Branch("FPMW","TFPMWData",&m_fpmw); output_tree->Branch("IC","TICData",&m_ic); - output_tree->Branch("Exogam","TExogamData",&m_exogam); + output_tree->Branch("Exogam","TExogamCalData",&m_exogam); output_tree->Branch("T_TMW0_FPMW0",&T_TMW0_FPMW0,"T_TMW0_FPMW0/F"); output_tree->Branch("T_TMW0_FPMW1",&T_TMW0_FPMW1,"T_TMW0_FPMW1/F"); output_tree->Branch("T_TMW1_FPMW0",&T_TMW1_FPMW0,"T_TMW1_FPMW0/F"); @@ -102,17 +103,19 @@ void convert(int run=43){ } if(fVAMOS_TS_sec>0 || fPISTA_TS_sec>0){ - if(Inner6MVM==1){ - int crystal = Inner6MVN[0]; - double E = Inner6MV[0]; - double EHG = Inner20MV[0]; - double TDC = DeltaTV[0]; - unsigned long long TS = Inner6MVTS[0]; + for(int p=0; p<Inner6MVM; p++){ + //if(Inner6MVM==1){ + int crystal = Inner6MVN[p]; + double E = Inner6MV[p]; + double EHG = Inner20MV[p]; + double TDC = DeltaTV[p]; + unsigned long long TS = Inner6MVTS[p]; int seg = -1; double outers1 = -1000; double outers2 = -1000; double outers3 = -1000; double outers4 = -1000; + if(OutersVM>25) cout << OutersVM << endl; for(int i=0; i<OutersVM; i++){ seg = OutersVN[i] - 4*crystal; if(seg==0) outers1 = OutersV[i]; diff --git a/Projects/ana_e850/conversion/convert.h b/Projects/ana_e850/conversion/convert.h index dd78a286dd19177efa8486cfa878d69988096cad..3fa04ce1594a89e26007c3999dcff1d64d8d3c80 100644 --- a/Projects/ana_e850/conversion/convert.h +++ b/Projects/ana_e850/conversion/convert.h @@ -1,7 +1,7 @@ TPISTAData* m_pista; TFPMWData* m_fpmw; TICData* m_ic; -TExogamData* m_exogam; +TExogamCalData* m_exogam; //TFile* ofile; TChain* input_tree; //TTree* output_tree; @@ -63,7 +63,8 @@ ULong64_t Inner6MVTS[12]; Float_t Inner20MV[12]; Float_t DeltaTV[12]; Float_t OutersV[12]; -UShort_t OutersVN[12]; +//UShort_t OutersVN[12]; +Int_t OutersVN[12]; Int_t OutersVM; void InitInputTree(); diff --git a/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C b/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C index ea5776c2ffd80546dfd43e1794a89c3cf3f08652..c8d1bd94db92eb01eab4a2b5b406e6c317925f14 100644 --- a/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C +++ b/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C @@ -1,5 +1,6 @@ TGraphErrors* GetGoodenYield(int A, int year, double scale); TGraphErrors* GetTonchevYield(int A); +TGraphErrors* GetGEFYield(int A, double scale); ////////////////////////////////////////////////// void PlotYieldEvolution(int A_asked=99, double scale=1.25){ @@ -37,7 +38,7 @@ void PlotYieldEvolution(int A_asked=99, double scale=1.25){ h2->GetXaxis()->CenterTitle(); h2->GetYaxis()->CenterTitle(); h2->Draw(); - if(A_asked==140 || A_asked==97 || A_asked==99 || A_asked==147 || A_asked==132 || A_asked==143){ + if(A_asked==140 || A_asked==97 || A_asked==99 || A_asked==147 || A_asked==132 || A_asked==143 || A_asked==103 || A_asked==135){ TGraphErrors* ggooden2016 = GetGoodenYield(A_asked,2016,1); ggooden2016->SetMarkerStyle(22); ggooden2016->SetMarkerColor(2); @@ -61,8 +62,12 @@ void PlotYieldEvolution(int A_asked=99, double scale=1.25){ gtonchev->SetMarkerSize(1.5); gtonchev->SetName("Tonchev"); gtonchev->Draw("psame"); + } - + if(A_asked==99 || A_asked==97 || A_asked==147 || A_asked==135){ + TGraphErrors* ggef = GetGEFYield(A_asked,1.); + ggef->SetName("gef"); + ggef->Draw("psame"); } gevol->SetName("ganil"); @@ -73,18 +78,44 @@ void PlotYieldEvolution(int A_asked=99, double scale=1.25){ //leg->AddEntry("gooden2016","Gooden 2016","lp"); //leg->AddEntry("gooden2024","Gooden 2024","lp"); leg->AddEntry("Tonchev","Tonchev et al. 2024","lp"); + leg->AddEntry("gef","GEF 2024","lp"); leg->AddEntry("ganil","PISTA 2023","lp"); leg->Draw("same"); - TCanvas* c2 = new TCanvas("c2","c2",800,800); - c2->cd(); - g_relative->SetMarkerStyle(8); - g_relative->Draw("ap"); + //TCanvas* c2 = new TCanvas("c2","c2",800,800); + //c2->cd(); + //g_relative->SetMarkerStyle(8); + //g_relative->Draw("ap"); + + +} + +////////////////////////////////////////////////// +TGraphErrors* GetGEFYield(int A, double scale=1){ + string filename = "GEF/mass_" + to_string(A) + ".dat"; + ifstream ifile; + ifile.open(filename.c_str()); + double En; + double Y; + TGraphErrors* gerr = new TGraphErrors(); + int i=0; + while(ifile>>En>>Y){ + gerr->SetPoint(i,En,scale*Y); + gerr->SetPointError(i,0,0.01*Y); + i++; + } + + gerr->SetMarkerStyle(33); + gerr->SetMarkerSize(2); + gerr->SetMarkerColor(2); + gerr->SetLineColor(2); + return gerr; } + ////////////////////////////////////////////////// TGraphErrors* GetGoodenYield(int A, int year, double scale=1){ string filename = "gooden/" + to_string(year) + "/mass_" + to_string(A) + ".dat"; @@ -101,7 +132,7 @@ TGraphErrors* GetGoodenYield(int A, int year, double scale=1){ gerr->SetPointError(i,0,Yerr); } - return gerr; + return gerr; } @@ -122,6 +153,6 @@ TGraphErrors* GetTonchevYield(int A){ i++; } - return gerr; + return gerr; }