Skip to content
Snippets Groups Projects
Commit 01cc7290 authored by Hugo Jacob's avatar Hugo Jacob
Browse files

E805 simu added

parent ada16724
No related branches found
No related tags found
1 merge request!27Draft: [Epic] Preparation of the environement for the new GaseousDetectorScorers...
Pipeline #290262 passed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% Reaction file for 48Cr(p,d)46V reaction %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Beam
Particle= 48Cr
Energy= 1511 MeV
SigmaEnergy= 42 MeV
ExcitationEnergy= 0 MeV
SigmaThetaX= 0.1 mrad
SigmaPhiY= 0.1 mrad
SigmaX= 5 mm
SigmaY= 5 mm
MeanThetaX= 0 mrad
MeanPhiY= 0 mrad
MeanX= 0 mm
MeanY= 0 mm
%EnergyProfilePath= eLise.txt EL
%XThetaXProfilePath=
%YPhiYProfilePath=
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TwoBodyReaction
Beam= 48Cr
Target= 1H
Light= 2H
Heavy= 47Cr
ExcitationEnergyLight= 0.47 MeV
ExcitationEnergyHeavy= 0.0 MeV
%CrossSectionPath= CrossSections/48Cr_tot_0.txt CS48Cr
CrossSectionPath= flat.txt CS
ShootLight= 1
ShootHeavy= 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
/*****************************************************************************
* Copyright (C) 2009-2016 this file is part of the NPTool Project *
* *
* For the licensing terms see $NPTOOL/Licence/NPTool_Licence *
* For the list of contributors see $NPTOOL/Licence/Contributors *
*****************************************************************************/
/*****************************************************************************
* Original Author: XAUTHORX contact address: XMAILX *
* *
* Creation Date : XMONTHX XYEARX *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This class describe MUST_AND_ZDD analysis project *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
*****************************************************************************/
#include<iostream>
using namespace std;
#include"Analysis.h"
#include"NPAnalysisFactory.h"
#include"NPDetectorManager.h"
////////////////////////////////////////////////////////////////////////////////
Analysis::Analysis(){
}
////////////////////////////////////////////////////////////////////////////////
Analysis::~Analysis(){
}
////////////////////////////////////////////////////////////////////////////////
void Analysis::Init(){
InitInputBranch();
InitOutputBranch();
M2 = (TMust2Physics*) m_DetectorManager -> GetDetector("M2Telescope");
string Path = "../../Inputs/EnergyLoss/";
string TargetMaterial = m_DetectorManager->GetTargetMaterial();
TargetThickness = m_DetectorManager->GetTargetThickness();
string beam= NPL::ChangeNameToG4Standard(reaction->GetNucleus1()->GetName());
string heavy_ejectile= NPL::ChangeNameToG4Standard(reaction->GetNucleus4()->GetName());
string light=NPL::ChangeNameToG4Standard(reaction->GetNucleus3()->GetName());
string Reaction_pd_s = "48Cr(p,d)47Cr@1620";
string Reaction_pt_s = "48Cr(p,t)46Cr@1620";
string Reaction_p3He_s = "48Cr(p,3He)46V@1620";
Reaction_pd = new Reaction(Reaction_pd_s);
Reaction_pt = new Reaction(Reaction_pt_s);
Reaction_p3He = new Reaction(Reaction_p3He_s);
ProtonSi = NPL::EnergyLoss(Path+ "proton_Si.G4table", "G4Table", 100);
for(unsigned int i = 0; i < ParticleType.size(); i++){
LightAl[ParticleType[i]] = NPL::EnergyLoss(Path+ParticleType[i]+"_Al.G4table","G4Table",100);
LightTarget[ParticleType[i]] = NPL::EnergyLoss(Path+ParticleType[i]+"_CH2.G4table","G4Table",100);
}
BeamTarget["48Cr"] = NPL::EnergyLoss(Path+"Cr48_CH2.G4table","G4Table",100);
Reaction_pd->SetBeamEnergy(BeamTarget["48Cr"].Slow(Reaction_pd->GetBeamEnergy(),TargetThickness*0.5,0));
Reaction_pt->SetBeamEnergy(BeamTarget["48Cr"].Slow(Reaction_pt->GetBeamEnergy(),TargetThickness*0.5,0));
Reaction_p3He->SetBeamEnergy(BeamTarget["48Cr"].Slow(Reaction_p3He->GetBeamEnergy(),TargetThickness*0.5,0));
reaction->ReadConfigurationFile(NPOptionManager::getInstance()->GetReactionFile());
OriginalBeamEnergy = reaction->GetBeamEnergy();
Cal = CalibrationManager::getInstance();
//
}
///////////////////////////// Initialize some important parameters //////////////////////////////////
bool Analysis::UnallocateBeforeBuild(){
return true;
}
bool Analysis::UnallocateBeforeTreat(){
return true;
}
bool Analysis::FillOutputCondition(){
return true;
}
////////////////////////////////////////////////////////////////////////////////
void Analysis::TreatEvent(){
ReInit();
//////////////////// MUST2 Part ////////////////////
int M2_size = M2->Si_E.size();
for(unsigned int countMust2 = 0 ; countMust2 < M2_size ; countMust2++){
M2_TelescopeM++;
// MUST2
int TelescopeNumber = M2->TelescopeNumber[countMust2];
// Part 1 : Impact Angle
ThetaM2Surface = 0;
ThetaNormalTarget = 0;
BeamImpact = TVector3(0,0,0);
BeamDirection = TVector3(0,0,1);
TVector3 HitDirection = M2 -> GetPositionOfInteraction(countMust2) - BeamImpact ;
M2_ThetaLab.push_back(HitDirection.Angle( BeamDirection ));
M2_X.push_back(M2 -> GetPositionOfInteraction(countMust2).X());
M2_Y.push_back(M2 -> GetPositionOfInteraction(countMust2).Y());
M2_Z.push_back(M2 -> GetPositionOfInteraction(countMust2).Z());
ThetaM2Surface = HitDirection.Angle(- M2 -> GetTelescopeNormal(countMust2) );
ThetaNormalTarget = HitDirection.Angle( TVector3(0,0,1) ) ;
// Part 2 : Impact Energy
int CristalNb = M2->CsI_N[countMust2];
Si_E_M2 = M2->Si_E[countMust2];
CsI_E_M2= M2->CsI_E[countMust2];
// if(CsI_E_M2 > 0)
// std::cout << "Analysis " << CsI_E_M2 << " " << M2->CsI_E.size() << " " << CristalNb << "\n \n";
Energy = 0;
if(CsI_E_M2 > 0 && Si_E_M2 > 0)
{
Energy += CsI_E_M2;
Energy += Si_E_M2;
}
else
Energy = -1000;
if(Energy > 0)
Energy = LightTarget["deuteron"].EvaluateInitialEnergy(Energy,TargetThickness*0.5, ThetaNormalTarget);
// Evaluate energy using the thickness
//Energy = LightAl.EvaluateInitialEnergy( Energy ,0.4*micrometer , ThetaM2Surface);
// Target Correction
//M2_ELab.push_back(LightTarget.EvaluateInitialEnergy(Energy ,TargetThickness*0.5, ThetaNormalTarget));
M2_ELab.push_back(Energy);
M2_dE.push_back(Si_E_M2);
// Part 3 : Excitation Energy Calculation
M2_Ex.push_back(reaction->ReconstructRelativistic( Energy, M2_ThetaLab[countMust2] ));
M2_ThetaLab[countMust2]=M2_ThetaLab[countMust2]/deg;
// Part 4 : Theta CM Calculation
M2_ThetaCM.push_back(reaction->EnergyLabToThetaCM( M2_ELab[countMust2] , M2_ThetaLab[countMust2])/deg);
//if(proton_cut[TelescopeNumber]){
// std::cout << "Test :" << proton_cut[TelescopeNumber] << " \n";
//
}//end loop MUST2
//for(unsigned int countMust2 = 0 ; countMust2 < M2->Si_E.size() ; countMust2++){
//Si_E_M2 = M2->Si_E[countMust2];
//CsI_E_M2 = M2->CsI_E[countMust2];
//ThetaM2Surface = 0;
// if(Si_E_M2 > 0 && CsI_E_M2 > 8192){
// //double EfromdeltaE = ProtonSi.EvaluateEnergyFromDeltaE(
// // Si_E_M2, 300*um, ThetaM2Surface, 6.0 * MeV, 300.0 * MeV,
// // 0.001 * MeV, 10000);
// double EfromdeltaE = (CsI_E_M2-8192)*0.1;
// M2_ECsI_from_deltaE.push_back(EfromdeltaE);
// if(EfromdeltaE > 0){
// Beta_light = sqrt(1./(1.+1./(pow(EfromdeltaE/911. + 1,2)-1)));
// Beta_from_deltaE.push_back(Beta_light);
// if(Beta_light>0){
// double Beth = log(2*511.*Beta_light*Beta_light/(0.174*(1-Beta_light*Beta_light))) - Beta_light*Beta_light;
// Beth_from_deltaE.push_back(Beth);
// }
// }
// }
//}
}
void Analysis::InitOutputBranch() {
RootOutput::getInstance()->GetTree()->Branch("M2_TelescopeM",&M2_TelescopeM,"M2_TelescopeM/s");
// RootOutput::getInstance()->GetTree()->Branch("M2_CsI_E_p",&M2_CsI_E_p);
// RootOutput::getInstance()->GetTree()->Branch("M2_CsI_E_d",&M2_CsI_E_d);
// RootOutput::getInstance()->GetTree()->Branch("M2_CsI_E_t",&M2_CsI_E_t);
// RootOutput::getInstance()->GetTree()->Branch("M2_CsI_E_a",&M2_CsI_E_a);
// RootOutput::getInstance()->GetTree()->Branch("M2_Ex_p",&M2_Ex_p);
RootOutput::getInstance()->GetTree()->Branch("M2_Ex",&M2_Ex);
// RootOutput::getInstance()->GetTree()->Branch("M2_Ex_d",&M2_Ex_d);
// RootOutput::getInstance()->GetTree()->Branch("M2_Ex_t",&M2_Ex_t);
// RootOutput::getInstance()->GetTree()->Branch("M2_Ex_a",&M2_Ex_a);
//RootOutput::getInstance()->GetTree()->Branch("ExNoBeam",&ExNoBeam,"ExNoBeam/D");
//RootOutput::getInstance()->GetTree()->Branch("ExNoProton",&ExNoProton,"ExNoProton/D");
RootOutput::getInstance()->GetTree()->Branch("M2_ELab",&M2_ELab);
RootOutput::getInstance()->GetTree()->Branch("M2_ThetaLab",&M2_ThetaLab);
RootOutput::getInstance()->GetTree()->Branch("M2_ThetaCM",&M2_ThetaCM);
RootOutput::getInstance()->GetTree()->Branch("M2_X",&M2_X);
RootOutput::getInstance()->GetTree()->Branch("M2_Y",&M2_Y);
RootOutput::getInstance()->GetTree()->Branch("M2_Z",&M2_Z);
RootOutput::getInstance()->GetTree()->Branch("M2_dE",&M2_dE);
RootOutput::getInstance()->GetTree()->Branch("CsI_E_M2",&CsI_E_M2);
// RootOutput::getInstance()->GetTree()->Branch("M2_ECsI_from_deltaE",&M2_ECsI_from_deltaE);
}
void Analysis::UnallocateVariables(){
}
void Analysis::InitInputBranch(){
TTreeReader* inputTreeReader = RootInput::getInstance()->GetTreeReader();
}
////////////////////////////////////////////////////////////////////////////////
void Analysis::ReInit(){
CsI_Energy.clear();
Si_E_M2 = -1000;
CsI_E_M2 = -1000;
Theta_seg = -1000;
Phi_seg = -1000;
M2_TelescopeM= 0;
M2_Ex.clear();
// M2_ECsI_from_deltaE.clear();
//ExNoBeam=ExNoProto.clear();
//EDC.clear();
M2_ELab.clear();
//BeamEnergy .clear();
M2_ThetaLab.clear();
M2_ThetaCM.clear();
M2_X.clear();
M2_Y.clear();
M2_Z.clear();
M2_dE.clear();
}
////////////////////////////////////////////////////////////////////////////////
void Analysis::End(){
}
////////////////////////////////////////////////////////////////////////////////
// Construct Method to be pass to the DetectorFactory //
////////////////////////////////////////////////////////////////////////////////
NPL::VAnalysis* Analysis::Construct(){
return (NPL::VAnalysis*) new Analysis();
}
////////////////////////////////////////////////////////////////////////////////
// Registering the construct method to the factory //
////////////////////////////////////////////////////////////////////////////////
extern "C"{
class proxy{
public:
proxy(){
NPL::AnalysisFactory::getInstance()->SetConstructor(Analysis::Construct);
}
};
proxy p;
}
#ifndef Analysis_h
#define Analysis_h
/*****************************************************************************
* Copyright (C) 2009-2016 this file is part of the NPTool Project *
* *
* For the licensing terms see $NPTOOL/Licence/NPTool_Licence *
* For the list of contributors see $NPTOOL/Licence/Contributors *
*****************************************************************************/
/*****************************************************************************
* Original Author: XAUTHORX contact address: XMAILX *
* *
* Creation Date : XMONTHX XYEARX *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This class describe MUST_AND_ZDD analysis project *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
*****************************************************************************/
#include "TMust2Physics.h"
#include "TCATSPhysics.h"
#include "TMust2PhysicsReader.h"
#include"NPVAnalysis.h"
#include"TZDDPhysics.h"
#include"NPEnergyLoss.h"
#include"NPFunction.h"
#include"NPReaction.h"
#include"NPOptionManager.h"
#include"RootInput.h"
#include"RootOutput.h"
#include"TInitialConditions.h"
#include "TReactionConditions.h"
#include"NPParticle.h"
#include"NPBeam.h"
#include "TCutG.h"
#include<random>
class Analysis: public NPL::VAnalysis{
public:
Analysis();
~Analysis();
public:
void SetParticles();
void SetEnergyLoss();
void Init();
bool UnallocateBeforeBuild();
bool FillOutputCondition();
bool UnallocateBeforeTreat();
void TreatEvent();
void End();
void ReInit();
void InitOutputBranch();
void InitInputBranch();
bool CheckGoodEvent();
void UnallocateVariables();
// CheckIC is checking that all IC are crossed (E>0) not less and not more than 1 time
bool CheckIC();
// CheckPlastics is checking that only and at leat 1 plastic is hit
bool CheckPlastics();
// CHecking multiplicity 1 in DC
bool CheckDC();
bool CheckExoAddBack(int ExoDet1, int ExoCristal1, int ExoSegment1, float ExoTime1, int ExoDet2, int ExoCristal2, int ExoSegment2, float ExoTime2);
bool CheckExoDeltaTV(float ExoTime);
static NPL::VAnalysis* Construct();
TTreeReaderValue<TMust2Data>* r_ReaderEventData;
private:
/// Currently only treating multiplicity 1 events
// ZDD info
double ZDD_DC_X;
double ZDD_DC_Y;
double ZDD_ThetaIC = 30/deg;
double ZDD_ThetaAfterTarget;
double ZDD_ThetaAfterTarget_X;
double ZDD_ThetaLab;
double ZDD_E_tot;
double ZDD_E_Plastic;
double ZDD_dE_tot;
std::vector<double> ZDD_Corrected_IC_E;
// MUST2 info
unsigned short M2_TelescopeM;
// std::vector<double> M2_Ex_p;
// std::vector<double> M2_Ex_d;
// std::vector<double> M2_Ex_t;
// std::vector<double> M2_Ex_a;
// std::vector<double> M2_CsI_E_p;
// std::vector<double> M2_CsI_E_d;
// std::vector<double> M2_CsI_E_t;
// std::vector<double> M2_CsI_E_a;
std::vector<double> M2_Ex;
std::vector<double> M2_ExNoBeam;
std::vector<double> M2_ExNoProton;
std::vector<double> M2_EDC;
std::vector<double> M2_ELab;
std::vector<double> M2_ThetaLab;
std::vector<double> M2_ThetaCM;
std::vector<double> M2_X;
std::vector<double> M2_Y;
std::vector<double> M2_Z;
std::vector<double> M2_dE;
double OriginalBeamEnergy ; // AMEV
double FinalBeamEnergy;
float CATS1_X;
float CATS2_X;
float CATS1_Y;
float CATS2_Y;
float Xf;
float Yf;
float Tf;
float Pf;
unsigned long long MUGAST_TS[1];
unsigned long long DATATRIG_CATSTS[1];
int Inner6MVM;
TTreeReaderValue<int>* Inner6MVM_;
float Inner6MV[48];
TTreeReaderArray<float>* Inner6MV_;
unsigned short Inner6MVN[48];
TTreeReaderArray<unsigned short>* Inner6MVN_;
unsigned long long Inner6MVTS[48];
int BGOVM;
TTreeReaderValue<int>* BGOVM_;
float BGOV[48];
TTreeReaderArray<float>* BGOV_;
unsigned short BGOVN[48];
TTreeReaderArray<unsigned short>* BGOVN_;
unsigned short GATCONFMASTER;
TTreeReaderValue<unsigned short>* GATCONFMASTER_;
unsigned short DATATRIG_CATS;
TTreeReaderValue<unsigned short>* DATATRIG_CATS_;
// int Strip_X_M;
// float Strip_X_E[48];
// float Strip_X_T[48];
// unsigned int Strip_X_Nb[48];
// unsigned short Strip_X_Det[48];
//
// int Strip_Y_M;
// float Strip_Y_E[48];
// float Strip_Y_T[48];
// unsigned int Strip_Y_Nb[48];
// unsigned short Strip_Y_Det[48];
int DeltaTVM;
float DeltaTV[48];
unsigned short DeltaTVN[48];
unsigned long long DeltaTVTS[48];
float EnergyDoppler;
float EnergyAddBackDoppler;
float EnergyAddBack;
int ExogamDetNb[3];
// int CristalNb[3];
int SegmentNb[3];
std::vector<int> event1;
std::vector<int> event2;
int highest_E;
int OutersVM;
TTreeReaderValue<int>* OutersVM_;
float OutersV[192];
TTreeReaderArray<float>* OutersV_;
unsigned short OutersVN[192];
TTreeReaderArray<unsigned short>* OutersVN_;
int DCRawM;
unsigned short DCRaw[4];
unsigned short DCRawNr[4];
unsigned long long DCRawTS[4];
unsigned short PlasticRaw[10];
TTreeReaderArray<UShort_t>* PlasticRaw_;
unsigned long long PlasticRawTS[10];
TTreeReaderArray<ULong64_t>* PlasticRaw_TS_;
float PlasticCal[10];
float PlasticEner[5];
int PlasticEnerM;
unsigned short PlasticEnerN[5];
unsigned long long PlasticEnerTS[5];
int PlasticCounter;
float PlasticThreshold;
float PlasticEner_tmp;
unsigned short IC_ZDDRaw[6];
TTreeReaderArray<UShort_t>* IC_ZDDRaw_;
unsigned long long IC_ZDDRawTS[6];
TTreeReaderArray<ULong64_t>* IC_ZDDRaw_TS_;
float ICCal[4];
unsigned short TAC_CATS_PL;
TTreeReaderValue<UShort_t>* TAC_CATS_PL_;
unsigned long long TAC_CATS_PLTS;
TTreeReaderValue<ULong64_t>* TAC_CATS_PL_TS_;
unsigned short TAC_CATS_HF;
TTreeReaderValue<UShort_t>* TAC_CATS_HF_;
unsigned long long TAC_CATS_HFTS;
TTreeReaderValue<ULong64_t>* TAC_CATS_HF_TS_;
unsigned short TAC_CATS_EXOGAM;
TTreeReaderValue<UShort_t>* TAC_CATS_EXOGAM_;
unsigned long long TAC_CATS_EXOGAMTS;
TTreeReaderValue<ULong64_t>* TAC_CATS_EXOGAM_TS_;
unsigned short TAC_MMG_CATS2;
TTreeReaderValue<UShort_t>* TAC_MMG_CATS2_;
unsigned long long TAC_MMG_CATS2TS;
TTreeReaderValue<ULong64_t>* TAC_MMG_CATS2_TS_;
unsigned short TAC_MMG_CATS1;
TTreeReaderValue<UShort_t>* TAC_MMG_CATS1_;
unsigned long long TAC_MMG_CATS1TS;
TTreeReaderValue<ULong64_t>* TAC_MMG_CATS1_TS_;
unsigned short TAC_MMG_EXOGAM;
TTreeReaderValue<UShort_t>* TAC_MMG_EXOGAM_;
unsigned long long TAC_MMG_EXOGAMTS;
TTreeReaderValue<ULong64_t>* TAC_MMG_EXOGAM_TS_;
unsigned short TAC_CATS1_CATS2;
TTreeReaderValue<UShort_t>* TAC_CATS1_CATS2_;
unsigned long long TAC_CATS1_CATS2TS;
TTreeReaderValue<ULong64_t>* TAC_CATS1_CATS2_TS_;
unsigned short TAC_D4_CATS1;
TTreeReaderValue<UShort_t>* TAC_D4_CATS1_;
unsigned long long TAC_D4_CATS1TS;
TTreeReaderValue<ULong64_t>* TAC_D4_CATS1_TS_;
unsigned short TAC_PL_1;
TTreeReaderValue<UShort_t>* TAC_PL_1_;
unsigned long long TAC_PL_1TS;
TTreeReaderValue<ULong64_t>* TAC_PL_1_TS_;
unsigned short TAC_PL_2;
TTreeReaderValue<UShort_t>* TAC_PL_2_;
unsigned long long TAC_PL_2TS;
TTreeReaderValue<ULong64_t>* TAC_PL_2_TS_;
unsigned short TAC_PL_3;
TTreeReaderValue<UShort_t>* TAC_PL_3_;
unsigned long long TAC_PL_3TS;
TTreeReaderValue<ULong64_t>* TAC_PL_3_TS_;
unsigned short TAC_PL_4;
TTreeReaderValue<UShort_t>* TAC_PL_4_;
unsigned long long TAC_PL_4TS;
TTreeReaderValue<ULong64_t>* TAC_PL_4_TS_;
unsigned short TAC_PL_5;
TTreeReaderValue<UShort_t>* TAC_PL_5_;
unsigned long long TAC_PL_5TS;
TTreeReaderValue<ULong64_t>* TAC_PL_5_TS_;
double xtarget;
double ytarget;
double IncidentTheta = 0;
int DetectorNumber ;
double ThetaNormalTarget;
double ThetaM2Surface ;
double ThetaMGSurface ;
double Si_E_M2 ;
double CsI_E_M2 ;
std::vector<string> ParticleType{"proton","deuteron","triton","alpha"};
// std::map<TString, double> Energy ;
double Energy;
std::map<TString, NPL::EnergyLoss> LightAl ;
std::map<TString, NPL::EnergyLoss> LightTarget ;
std::map<TString, NPL::EnergyLoss> BeamTarget ;
std::map<TString, double> CsI_Energy ;
double BeamEnergy;
double ThetaGDSurface ;
double Beta;
double Beta_light;
double Gamma;
double Velocity;
double Drift_Speed;
double TargetThickness;
double CorrectedBeamEnergy;
std::vector<double> IC_Energy;
TVector3 ZDir;
TVector3 BeamDirection;
TVector3 BeamImpact;
NPL::Reaction* Reaction_pd;
NPL::Reaction* Reaction_pt;
NPL::Reaction* Reaction_p3He;
NPL::Reaction* reaction = new Reaction;
NPL::Particle* Co_57 = new Particle;
NPL::Particle* Ni_57 = new Particle;
NPL::EnergyLoss Beam_Target;
NPL::EnergyLoss Heavy_Target;
// NPL::EnergyLoss LightTarget;
NPL::EnergyLoss ProtonSi;
std::vector<NPL::EnergyLoss> Heavy_IC_Gas;
std::vector<NPL::EnergyLoss> Heavy_IC_Windows;
std::vector<NPL::EnergyLoss> Heavy_IC_Mylar;
std::vector<NPL::EnergyLoss> Heavy_DC_Gas;
// NPL::EnergyLoss LightAl;
// NPL::EnergyLoss LightSi;
string BeamName = "48Cr";
int Nb_Mylar_After_IC = 1;
int Nb_Mylar_Before_IC = 4;
int Nb_IC = 10;
double Drift_Chamber_Length = 180*mm;
double Drift_Chamber_Width = 180*mm;
double ZDD_R = 1027*mm;
private:
// TMust2Data* M2_Raw;
TMust2Physics* M2;
TCATSPhysics* CATS;
TZDDPhysics* ZDD;
TMust2PhysicsReader* M2_Reader;
TInitialConditions* InitialConditions;
TReactionConditions* ReactionConditions;
std::ifstream ExogamTopo;
std::ifstream DC_calib;
std::ifstream Plastic_calib;
std::ifstream IC_calib;
std::string ExogamLine;
std::string DCLine;
std::string PlasticLine;
std::string ICLine;
Int_t Plastic_Nb_tmp;
Double_t Plastic_peak_tmp,Plastic_pedestal_tmp;
Double_t Plastic_pedestal[10];
Double_t Plastic_peak[10];
Int_t IC_Nb_tmp;
Double_t IC_peak_tmp,IC_pedestal_tmp;
Double_t IC_pedestal[4];
Double_t IC_peak[4];
int DC_Nr;
long long dt;
char DC_XY[1];
Int_t DC_numb_tmp;
Double_t off_tmp,cff_tmp,sqr_tmp;
Double_t off[4];
Double_t cff[4];
Double_t sqr[4];
double DC_X;
double DC_Y;
//Char_t* ExogamLine_char[100];
double Theta_seg;
double Phi_seg;
Char_t Exogam[100];
Int_t ExoNumb;
Int_t Flange_tmp;
int FlangeNumb[12];
/////////////Exogam
TCutG* proton_cut[4];
TCutG* deuteron_cut[4];
TCutG* triton_cut[4];
TFile* proton_cut_file[4];
TFile* deuteron_cut_file[4];
TFile* triton_cut_file[4];
Beam* BeamPart = new Beam;
Particle* HeavyEjectile = new Particle;
default_random_engine generator;
normal_distribution<double> distribution = normal_distribution<double>(0.0,1.0);
CalibrationManager* Cal;
};
#endif
\ No newline at end of file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Target
THICKNESS= 53.5 micrometer
ANGLE= 0 deg
RADIUS= 15 mm
MATERIAL= CH2
ANGLE= 0 deg
X= 0 mm
Y= 0 mm
Z= 0 mm
%%%%%%% Telescope 1 %%%%%%%
M2Telescope
X1_Y1= -13.57 -104.78 299.83 mm
X1_Y128= -25.1 -12.62 328.63 mm
X128_Y1= -104.01 -104.85 263.88 mm
X128_Y128= -115.53 -12.71 292.67 mm
SI= 1
SILI= 0
CSI= 1
VIS= all
%%%%%%% Telescope 2 %%%%%%%
M2Telescope
X1_Y1= -114.9 9.68 291.84 mm
X1_Y128= -24.56 9.8 327.88 mm
X128_Y1= -103.58 101.8 262.73 mm
X128_Y128= -13.24 102.09 298.75 mm
SI= 1
SILI= 0
CSI= 1
VIS= all
%%%%%%% Telescope 3 %%%%%%%
M2Telescope
X1_Y1= 11.84 101.72 299.05 mm
X1_Y128= 23.44 9.68 328.38 mm
X128_Y1= 102.16 101.57 263.01 mm
X128_Y128= 113.81 9.57 292.3 mm
SI= 1
SILI= 0
CSI= 1
VIS= all
%%%%%%% Telescope 4 %%%%%%%
M2Telescope
X1_Y1= 113.56 -13.18 292.11 mm
X1_Y128= 23.23 -13.37 328.15 mm
X128_Y1= 102.39 -105.49 263.59 mm
X128_Y128= 12.04 -105.69 299.63 mm
SI= 1
SILI= 0
CSI= 1
VIS= all
TTreeName
SimulatedTree
RootFileName
../E805/data/NPRoot/Simulation/test_simu.root
Project E805_simu
AnalysisOutput= ../E805/data/NPRoot/Analysis/
SimulationOutput= ../E805/data/NPRoot/Simulation/
EnergyLoss= ../../Inputs/EnergyLoss/
CalibrationOutput= ../E805/data/NPRoot/Calibration/
Cuts= ../E805/data/NPRoot/Cuts/
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment