Skip to content
Snippets Groups Projects
Commit a9b32f05 authored by audrey.chatillon's avatar audrey.chatillon
Browse files

[Epic] Build the actinide samples in the fission chamber

parent c48a1e69
No related branches found
No related tags found
1 merge request!27Draft: [Epic] Preparation of the environement for the new GaseousDetectorScorers...
Pipeline #378552 passed
......@@ -128,17 +128,16 @@ void Epic::ReadConfiguration(NPL::InputParser parser){
cout << endl << "//// Epic " << i+1 << endl;
G4ThreeVector Pos = NPS::ConvertVector(blocks[i]->GetTVector3("POS","mm"));
string GasMaterial = blocks[i]->GetString("GasMaterial");
double Pressure = blocks[i]->GetDouble("Pressure","bar");
double Distance_AK = blocks[i]->GetDouble("Distance_AK","mm");
double InterDistance_KK = blocks[i]->GetDouble("InterDistance_KK","mm");
int nA = blocks[i]->GetInt("nAnodes");
AddDetector(Pos);
m_GasMaterial = GasMaterial;
m_Pressure = Pressure;
m_Distance_AK = Distance_AK;
m_InterDistance_KK = InterDistance_KK;
m_nA = nA;
m_GasMaterial = blocks[i]->GetString("GasMaterial");
m_Pressure = blocks[i]->GetDouble("Pressure","bar");
m_Distance_AK = blocks[i]->GetDouble("Distance_AK","mm");
m_InterDistance_KK = blocks[i]->GetDouble("InterDistance_KK","mm");
m_nA = blocks[i]->GetInt("nAnodes");
m_nSamplesPerA = blocks[i]->GetVectorInt("nSamplesPerAnode");
m_SampleMaterial = blocks[i]->GetVectorString("SampleMaterial"," ");
m_SampleThickness = blocks[i]->GetVectorDouble("SampleThickness","micrometer");
}
else{
cout << "ERROR: check your input file formatting " << endl;
......@@ -331,12 +330,13 @@ G4AssemblyVolume* Epic::BuildEpic(){
// - Anodes
// - gas volumes : active gas_AK and gas_KK
double posZ_first_cathode = -1.*(double)m_nA*m_Distance_AK*mm - (double)std::trunc(0.5*m_nA)*m_InterDistance_KK*mm;
int index_K = 0;
// Build the first cathode and the first anode
double sample_thickness = 0.01*mm; // !!!!!!!!!!!!!!!!!!!! TO DO : give the proper thickness
BuildCathode(posZ_first_cathode);
BuildSample(posZ_first_cathode+6*micrometer+0.5*sample_thickness,sample_thickness, "238U");
BuildSample(posZ_first_cathode+0.5*m_Thickness_K+0.5*m_SampleThickness.at(index_K),m_SampleThickness.at(index_K), m_SampleMaterial.at(index_K));
BuildAnode(posZ_first_cathode + m_Distance_AK*mm);
index_K++;
// Build the central pairs of cathodes back to back, the anodes and the gas_KK
G4Tubs* gas_KK_solid = new G4Tubs("gas_KK",0,37.*mm,0.5*m_InterDistance_KK,0,360*deg);
......@@ -344,16 +344,20 @@ G4AssemblyVolume* Epic::BuildEpic(){
gas_KK_vol->SetVisAttributes(m_VisGasKK);
for(int i=1; i<m_nA; i++){
double posZ_current_cathode = posZ_first_cathode + (double)i*2.*m_Distance_AK*mm + (double)(i-0.5)*m_InterDistance_KK*mm ;
BuildSample (posZ_current_cathode - 0.5*m_InterDistance_KK*mm - 0.5*m_Thickness_K-0.5*m_SampleThickness.at(index_K),m_SampleThickness.at(index_K), m_SampleMaterial.at(index_K));
index_K++;
BuildCathode(posZ_current_cathode - 0.5*m_InterDistance_KK*mm);
Tv.setY(0);
Tv.setZ(posZ_current_cathode);
m_EpicVolume->AddPlacedVolume(gas_KK_vol, Tv, Rv);
BuildCathode(posZ_current_cathode + 0.5*m_InterDistance_KK*mm);
BuildSample (posZ_current_cathode + 0.5*m_InterDistance_KK*mm + 0.5*m_Thickness_K+0.5*m_SampleThickness.at(index_K),m_SampleThickness.at(index_K), m_SampleMaterial.at(index_K));
index_K++;
BuildAnode(posZ_current_cathode + 0.5*m_InterDistance_KK*mm + m_Distance_AK*mm);
}
// Build the last cathode
BuildSample(posZ_first_cathode + (double)m_nA*2.*m_Distance_AK*mm + (double)(m_nA-1)*m_InterDistance_KK*mm - 6*micrometer - 0.5*sample_thickness, sample_thickness, "238U");
BuildSample(posZ_first_cathode + (double)m_nA*2.*m_Distance_AK*mm + (double)(m_nA-1)*m_InterDistance_KK*mm - 0.5*m_Thickness_K - 0.5*m_SampleThickness.at(index_K), m_SampleThickness.at(index_K), m_SampleMaterial.at(index_K));
BuildCathode(posZ_first_cathode + (double)m_nA*2.*m_Distance_AK*mm + (double)(m_nA-1)*m_InterDistance_KK*mm);
......
......@@ -101,13 +101,17 @@ class Epic : public NPS::VDetector{
vector<double> m_R;
vector<double> m_Theta;
vector<double> m_Phi;
vector<string> m_SampleMaterial;
string m_GasMaterial;
double m_Pressure;
int m_nA; // number of anodes
double m_Distance_AK;
double m_InterDistance_KK;
int m_nA; // number of anodes
double m_Thickness_K;
vector<int> m_nSamplesPerA;
vector<string> m_SampleMaterial;
vector<double> m_SampleThickness;
// Visualisation Attribute
G4VisAttributes* m_VisFCWall;
......
......@@ -6,4 +6,7 @@ Epic
nAnodes= 5
Distance_AK= 2.5 mm
InterDistance_KK= 0.8 mm
Thickness_K= 12 micrometer
nSamplesPerAnode= 2 2 2 2 2
SampleMaterial= 238U 238U 235U 235U 238U 238U 235U 235U 238U 238U
SampleThickness= 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. micrometer
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