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

[Epic] Electrostatic influence set to Q1

parent 05d8548c
No related branches found
No related tags found
1 merge request!27Draft: [Epic] Preparation of the environement for the new GaseousDetectorScorers...
Pipeline #380920 passed
......@@ -45,10 +45,6 @@ TEpicData::~TEpicData() {
//////////////////////////////////////////////////////////////////////
void TEpicData::Clear() {
fEpic_AnodeNbr.clear();
fEpic_FF_posZ.clear();
fEpic_FF_DE.clear();
fEpic_Electron_posZ.clear();
fEpic_Electron_DE.clear();
fEpic_Q1.clear();
fEpic_Q2.clear();
fEpic_Qmax.clear();
......@@ -56,6 +52,10 @@ void TEpicData::Clear() {
fEpic_Time_HF.clear();
fEpic_ToF.clear();
fEpic_isFakeFission.clear();
fEpic_FF_posZ.clear();
fEpic_FF_DE.clear();
fEpic_Electron_posZ.clear();
fEpic_Electron_DE.clear();
}
......
......@@ -35,10 +35,6 @@ class TEpicData : public TObject {
// to allow multiplicity treatment
private:
vector<UShort_t> fEpic_AnodeNbr;
vector<Double_t> fEpic_FF_posZ;
vector<Double_t> fEpic_FF_DE;
vector<Double_t> fEpic_Electron_posZ;
vector<Double_t> fEpic_Electron_DE;
vector<Double_t> fEpic_Q1;
vector<Double_t> fEpic_Q2;
vector<Double_t> fEpic_Time;
......@@ -47,6 +43,10 @@ class TEpicData : public TObject {
vector<Double_t> fEpic_Time_HF;
vector<Double_t> fEpic_ToF;
vector<Double_t> fEpic_FF_posZ;
vector<Double_t> fEpic_FF_DE;
vector<Double_t> fEpic_Electron_posZ;
vector<Double_t> fEpic_Electron_DE;
//////////////////////////////////////////////////////////////
......@@ -72,10 +72,6 @@ class TEpicData : public TObject {
public:
////////////////////// SETTERS ////////////////////////
inline void SetAnodeNbr(const UShort_t& AnodeNbr){fEpic_AnodeNbr.push_back(AnodeNbr);}//!
inline void SetFFPosZ(const Double_t& z){fEpic_FF_posZ.push_back(z);}//!
inline void SetFFDE(const Double_t& DE){fEpic_FF_DE.push_back(DE);}//!
inline void SetElectronPosZ(const Double_t& z){fEpic_Electron_posZ.push_back(z);}//!
inline void SetElectronDE(const Double_t& DE){fEpic_Electron_DE.push_back(DE);}//!
inline void SetQ1(const Double_t& Q1){fEpic_Q1.push_back(Q1);}//!
inline void SetQ2(const Double_t& Q2){fEpic_Q2.push_back(Q2);}//!
inline void SetQmax(const Double_t& Qmax){fEpic_Qmax.push_back(Qmax);}//!
......@@ -84,37 +80,27 @@ class TEpicData : public TObject {
inline void SetToF(const Double_t& ToF){fEpic_ToF.push_back(ToF);}//!
inline void SetFakeFissionStatus(const Bool_t& isFF){fEpic_isFakeFission.push_back(isFF);}//!
inline void SetFFPosZ(const Double_t& z){fEpic_FF_posZ.push_back(z);}//!
inline void SetFFDE(const Double_t& DE){fEpic_FF_DE.push_back(DE);}//!
inline void SetElectronPosZ(const Double_t& z){fEpic_Electron_posZ.push_back(z);}//!
inline void SetElectronDE(const Double_t& DE){fEpic_Electron_DE.push_back(DE);}//!
////////////////////// GETTERS ////////////////////////
inline UShort_t GetMultiplicity() const
{return fEpic_AnodeNbr.size();}
inline UShort_t GetAnodeNbr(const unsigned int &i) const
{return fEpic_AnodeNbr[i];}//!
inline Double_t GetFFposZ(const unsigned int &i) const
{return fEpic_FF_posZ[i];}//!
inline Double_t GetFFDE(const unsigned int &i) const
{return fEpic_FF_DE[i];}//!
inline Double_t GetElectronposZ(const unsigned int &i) const
{return fEpic_Electron_posZ[i];}//!
inline Double_t GetElectronDE(const unsigned int &i) const
{return fEpic_Electron_DE[i];}//!
inline Double_t GetQ1(const unsigned int &i) const
{return fEpic_Q1[i];}//!
inline Double_t GetQ2(const unsigned int &i) const
{return fEpic_Q2[i];}//!
inline Double_t GetQmax(const unsigned int &i) const
{return fEpic_Qmax[i];}//!
inline Double_t GetTime(const unsigned int &i) const
{return fEpic_Time[i];}//!
inline Double_t GetTimeHF(const unsigned int &i) const
{return fEpic_Time_HF[i];}//!
inline Double_t GetToF(const unsigned int &i) const
{return fEpic_ToF[i];}//!
inline UShort_t GetHFMultiplicity() const
{return fEpic_Time_HF.size();}//!
inline Bool_t GetFakeFissionStatus(const unsigned int &i) const
{return fEpic_isFakeFission[i];}//!
inline UShort_t GetMultiplicity() const {return fEpic_AnodeNbr.size();}
inline UShort_t GetAnodeNbr(const unsigned int &i) const {return fEpic_AnodeNbr[i];}//!
inline Double_t GetQ1(const unsigned int &i) const {return fEpic_Q1[i];}//!
inline Double_t GetQ2(const unsigned int &i) const {return fEpic_Q2[i];}//!
inline Double_t GetQmax(const unsigned int &i) const {return fEpic_Qmax[i];}//!
inline Double_t GetTime(const unsigned int &i) const {return fEpic_Time[i];}//!
inline Double_t GetTimeHF(const unsigned int &i) const {return fEpic_Time_HF[i];}//!
inline Double_t GetToF(const unsigned int &i) const {return fEpic_ToF[i];}//!
inline UShort_t GetHFMultiplicity() const {return fEpic_Time_HF.size();}//!
inline Bool_t GetFakeFissionStatus(const unsigned int &i) const {return fEpic_isFakeFission[i];}//!
inline Double_t GetFFposZ(const unsigned int &i) const {return fEpic_FF_posZ[i];}//!
inline Double_t GetFFDE(const unsigned int &i) const {return fEpic_FF_DE[i];}//!
inline Double_t GetElectronposZ(const unsigned int &i) const {return fEpic_Electron_posZ[i];}//!
inline Double_t GetElectronDE(const unsigned int &i) const {return fEpic_Electron_DE[i];}//!
//////////////////////////////////////////////////////////////
// Required for ROOT dictionnary
......
......@@ -357,13 +357,6 @@ G4AssemblyVolume* Epic::BuildEpic(){
double posZ_first_cathode = posZ_anode - 0.5*thickness_A*mm - m_Distance_AK*mm - 0.5*m_Thickness_K*mm;
// build the stack of cathodes / actinide samples / anodes to do build sensitive gas
//G4UserLimits::G4UserLimits (
// G4double ustepMax = DBL_MAX, // max allowed Step size in this volume
// G4double utrakMax = DBL_MAX, // max total track length
// G4double utimeMax = DBL_MAX, // max time
// G4double uekinMin = 0.,
// G4double urangMin = 0.
//)
G4UserLimits * user_limits = new G4UserLimits(25.*um, 33.*mm, 1.*us, 0, 0);
for(int i=0; i<m_nA; i++){
......@@ -373,8 +366,7 @@ G4AssemblyVolume* Epic::BuildEpic(){
BuildSample(posZ_anode - 0.5*thickness_A*mm - m_Distance_AK*mm + 0.5*m_SampleThickness.at(i)*mm,i);
cpt_AddVolumes++;
// anode i
// anode i
BuildAnode(posZ_anode);
cpt_AddVolumes+=3;
......@@ -550,21 +542,28 @@ void Epic::ReadSensitive(const G4Event* ){
//cout << "size slice_posZ : " << slice_posZ.size() << endl;
//cout << "size slice_DE : " << slice_DE.size() << endl;
double influence = 0 ;
if(Energy>Epic_NS::EnergyThreshold){
double Time = RandGauss::shoot(Scorer->GetTime(i),Epic_NS::ResoTime);
int Anode = level[0];
m_Event->SetAnodeNbr(m_mapping_A[Anode]);
double thickness_A = 2*Epic_NS::Cu_Thickness*mm + Epic_NS::Kapton_Thickness*mm;
double posZ_anode = (1-m_nA)*(m_Distance_AK*mm + m_Thickness_K*mm) - std::trunc(0.5*m_nA)*(m_InterDistance_KK*mm + thickness_A);
posZ_anode += m_mapping_A[Anode] * (2. * (m_Distance_AK*mm + m_Thickness_K*mm) + m_InterDistance_KK*mm + thickness_A) ;
for(int j=0; j<slice_name.size(); j++){
if(slice_name.at(j)=="e-") {
m_Event->SetElectronPosZ(slice_posZ.at(j));
m_Event->SetElectronDE(slice_DE.at(j));
}
else{
influence += slice_DE.at(j) * TMath::Abs(slice_posZ.at(j) - posZ_anode);
m_Event->SetFFPosZ(slice_posZ.at(j));
m_Event->SetFFDE(slice_DE.at(j));
}
}
m_Event->SetQ1(Energy);
m_Event->SetQ1(influence / m_Distance_AK*mm);
m_Event->SetQ2(Energy);
m_Event->SetTime(Time);
m_Event->SetQmax(Energy);
......
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