diff --git a/Inputs/EnergyLoss/Li11[0.0]_CD2.G4table b/Inputs/EnergyLoss/Li11[0.0]_CD2.G4table index 5b28763fcb04455ece0a9f177d4d02362802fbc1..e0692575df35d894d626bda9d0203f6ad9d85012 100644 --- a/Inputs/EnergyLoss/Li11[0.0]_CD2.G4table +++ b/Inputs/EnergyLoss/Li11[0.0]_CD2.G4table @@ -122,7 +122,7 @@ Table from Geant4 generate using NPSimulation Particle: Li11[0.0] Material: CD2 46.542 0.0830402 47.542 0.0816562 48.542 0.0803203 -49.542 0.0790302 +49.542 0.0790301 50.542 0.0777835 51.542 0.0765782 52.542 0.0754123 @@ -133,7 +133,7 @@ Table from Geant4 generate using NPSimulation Particle: Li11[0.0] Material: CD2 57.542 0.0701119 58.542 0.0691468 59.542 0.06821 -60.542 0.0673007 +60.542 0.0673006 61.542 0.0664173 62.542 0.0655588 63.542 0.0647574 @@ -215,12 +215,12 @@ Table from Geant4 generate using NPSimulation Particle: Li11[0.0] Material: CD2 652.542 0.00973131 662.542 0.00961515 672.542 0.00950222 -682.542 0.00939238 +682.542 0.00939237 692.542 0.0092855 702.542 0.00918146 712.542 0.00908016 722.542 0.00898147 -732.542 0.00888531 +732.542 0.0088853 742.542 0.00879156 752.542 0.00870014 762.542 0.00861097 @@ -237,7 +237,7 @@ Table from Geant4 generate using NPSimulation Particle: Li11[0.0] Material: CD2 1682.54 0.00478669 1782.54 0.00460016 1882.54 0.00443271 -1982.54 0.00428156 +1982.54 0.00428155 2082.54 0.00414442 2182.54 0.00401947 2282.54 0.00390514 diff --git a/Inputs/EnergyLoss/Li11[0.0]_Mylar.G4table b/Inputs/EnergyLoss/Li11[0.0]_Mylar.G4table index f8d71f81880e745c4a3f911c36f7ffff4c67c927..faa5e97f1521d15d6e43de998372974074b90c3c 100755 --- a/Inputs/EnergyLoss/Li11[0.0]_Mylar.G4table +++ b/Inputs/EnergyLoss/Li11[0.0]_Mylar.G4table @@ -139,7 +139,7 @@ Table from Geant4 generate using NPSimulation Particle: Li11[0.0] Material: Myl 3482.73 4.03586 3582.73 3.97484 3682.73 3.91715 -3782.73 3.86254 +3782.73 3.86253 3882.73 3.81076 3982.73 3.76162 4082.73 3.71492 diff --git a/Inputs/EnergyLoss/Li11[0.0]_Si.G4table b/Inputs/EnergyLoss/Li11[0.0]_Si.G4table index 2d0762ee28060893c0ef4e5dd1656d7de0582aa9..4877cd82f993e0fdd2d636a02588c573ab9bcdca 100644 --- a/Inputs/EnergyLoss/Li11[0.0]_Si.G4table +++ b/Inputs/EnergyLoss/Li11[0.0]_Si.G4table @@ -108,14 +108,14 @@ Table from Geant4 generate using NPSimulation Particle: Li11[0.0] Material: Si 30.382 0.189144 31.382 0.184754 32.382 0.181223 -33.382 0.177392 +33.382 0.177393 34.382 0.173711 35.382 0.170183 36.382 0.166687 37.382 0.163444 38.382 0.16047 39.382 0.157453 -40.382 0.154801 +40.382 0.154802 41.382 0.151928 42.382 0.149229 43.382 0.146626 @@ -132,7 +132,7 @@ Table from Geant4 generate using NPSimulation Particle: Li11[0.0] Material: Si 54.382 0.123833 55.382 0.122078 56.382 0.120379 -57.382 0.118731 +57.382 0.118732 58.382 0.117134 59.382 0.115585 60.382 0.114081 @@ -171,7 +171,7 @@ Table from Geant4 generate using NPSimulation Particle: Li11[0.0] Material: Si 228.382 0.0401043 238.382 0.0388092 248.382 0.037604 -258.382 0.0364794 +258.382 0.0364795 268.382 0.0354735 278.382 0.034484 288.382 0.0335547 @@ -217,7 +217,7 @@ Table from Geant4 generate using NPSimulation Particle: Li11[0.0] Material: Si 688.382 0.0171506 698.382 0.0169637 708.382 0.0167815 -718.382 0.016604 +718.382 0.0166041 728.382 0.016431 738.382 0.0162623 748.382 0.0160977 diff --git a/NPSimulation/MUST2/MUST2Array.cc b/NPSimulation/MUST2/MUST2Array.cc index e0a9076b8bb78d3938d7c70fb6fe5cefd82caebe..7f81e6ed0ed5a5193be748464300c89df9a5ca10 100644 --- a/NPSimulation/MUST2/MUST2Array.cc +++ b/NPSimulation/MUST2/MUST2Array.cc @@ -414,6 +414,8 @@ void MUST2Array::VolumeMaker( G4int TelescopeNumber, //////////////////////////////////////////////////////////////// if (wCsI) { + m_MaterialMyl = MaterialManager::getInstance()->GetMaterialFromLibrary("Mylar"); + m_MaterialCsI = MaterialManager::getInstance()->GetMaterialFromLibrary("CsI"); G4ThreeVector positionCsI = G4ThreeVector(0, 0, CsI_PosZ); G4Trd* solidCsI = new G4Trd("csI", 0.5*CsIFaceFront, 0.5*CsIFaceBack, 0.5*CsIFaceFront, 0.5*CsIFaceBack, 0.5*CsIThickness); @@ -1317,9 +1319,7 @@ void MUST2Array::InitializeMaterial(){ m_MaterialSilicon = MaterialManager::getInstance()->GetMaterialFromLibrary("Si"); m_MaterialAluminium = MaterialManager::getInstance()->GetMaterialFromLibrary("Al"); - m_MaterialCsI = MaterialManager::getInstance()->GetMaterialFromLibrary("CsI"); m_MaterialIron = MaterialManager::getInstance()->GetMaterialFromLibrary("Fe"); - m_MaterialMyl = MaterialManager::getInstance()->GetMaterialFromLibrary("Mylar"); m_MaterialVacuum = MaterialManager::getInstance()->GetMaterialFromLibrary("Vacuum"); } diff --git a/NPSimulation/Plastic/Plastic.cc b/NPSimulation/Plastic/Plastic.cc index d0263535c49834791821730c10a23fcd92a6f7bc..08885b1fb3faefc94c6187d874633b8e17019226 100644 --- a/NPSimulation/Plastic/Plastic.cc +++ b/NPSimulation/Plastic/Plastic.cc @@ -67,16 +67,10 @@ using namespace PLASTIC ; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // Plastic Specific Method Plastic::Plastic(){ - InitializeMaterial(); m_Event = new TPlasticData() ; } Plastic::~Plastic(){ - delete m_MaterialPlastic_BC400 ; - delete m_MaterialLead ; - delete m_MaterialAl ; - delete m_MaterialKapton ; - delete m_PlasticScorer ; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -100,6 +94,7 @@ void Plastic::AddPlastic( G4double R , m_PlasticWidth.push_back(-1) ; // squared shape } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void Plastic::AddPlastic( G4double R , G4double Theta , G4double Phi , @@ -130,40 +125,37 @@ void Plastic::AddPlastic( G4double R , // Read stream at Configfile to pick-up parameters of detector (Position,...) // Called in DetecorConstruction::ReadDetextorConfiguration Method -void Plastic::ReadConfiguration(string Path) -{ +void Plastic::ReadConfiguration(string Path){ ifstream ConfigFile ; ConfigFile.open(Path.c_str()) ; string LineBuffer ; string DataBuffer ; - G4double Theta = 0 , Phi = 0 , R = 0 , Thickness = 0 , Radius = 0 , LeadThickness = 0, X = 0 , Y = 0 , Z = 0 , Width = 0 , Height = 0 ; + G4double Theta = 0 , Phi = 0 , R = 0 , Thickness = 0 , Radius = 0 ; + G4double LeadThickness = 0, X = 0 , Y = 0 , Z = 0 , Width = 0 , Height = 0 ; G4String Scintillator, Shape ; - bool check_Theta = false ; - bool check_Phi = false ; - bool check_R = false ; - bool check_Thickness = false ; - bool check_Radius = false ; - bool check_LeadThickness = false ; - bool check_Scintillator = false ; - bool check_Height = false ; - bool check_Width = false ; - bool check_Shape = false ; - bool check_X = false ; - bool check_Y = false ; - bool check_Z = false ; - bool ReadingStatus = false ; - - - while (!ConfigFile.eof()) - { - + bool check_Theta = false ; + bool check_Phi = false ; + bool check_R = false ; + bool check_Thickness = false ; + bool check_Radius = false ; + bool check_LeadThickness = false ; + bool check_Scintillator = false ; + bool check_Height = false ; + bool check_Width = false ; + bool check_Shape = false ; + bool check_X = false ; + bool check_Y = false ; + bool check_Z = false ; + bool ReadingStatus = false ; + + + while (!ConfigFile.eof()) { getline(ConfigFile, LineBuffer); // If line is a Start Up Plastic bloc, Reading toggle to true - if (LineBuffer.compare(0, 7, "Plastic") == 0) - { + if (LineBuffer.compare(0, 7, "Plastic") == 0) { G4cout << "///" << G4endl ; G4cout << "Platic found: " << G4endl ; ReadingStatus = true ; @@ -174,13 +166,14 @@ void Plastic::ReadConfiguration(string Path) else ReadingStatus = false ; // Reading Block - while(ReadingStatus) - { + while(ReadingStatus){ // Pickup Next Word ConfigFile >> DataBuffer ; // Comment Line - if (DataBuffer.compare(0, 1, "%") == 0) { ConfigFile.ignore ( std::numeric_limits<std::streamsize>::max(), '\n' );} + if (DataBuffer.compare(0, 1, "%") == 0) { + ConfigFile.ignore ( std::numeric_limits<std::streamsize>::max(), '\n' ); + } // Finding another telescope (safety), toggle out else if (DataBuffer.compare(0, 6, "Plastic") == 0) { @@ -299,25 +292,32 @@ void Plastic::ReadConfiguration(string Path) /////////////////////////////////////////////////// // If no Detector Token and no comment, toggle out - else - {ReadingStatus = false; G4cout << "Wrong Token Sequence: Getting out " << DataBuffer << G4endl ;} + else{ + ReadingStatus = false; + G4cout << "Wrong Token Sequence: Getting out " << DataBuffer << G4endl ; + } ///////////////////////////////////////////////// // If All necessary information there, toggle out - if ( ( check_Theta && check_Phi && check_R && check_Thickness && check_Radius && check_LeadThickness && check_Scintillator && check_Shape) // Cylindrical case - || ( check_X && check_Y && check_Z && check_Thickness && check_Radius && check_LeadThickness && check_Scintillator ) - - || ( check_Theta && check_Phi && check_R && check_Thickness && check_Width && check_Height && check_LeadThickness && check_Scintillator && check_Shape ) // Squared case - || ( check_X && check_Y && check_Z && check_Thickness && check_Width && check_Height && check_LeadThickness && check_Scintillator ) - ) - { - - if (check_X && check_Y && check_Z) - { - R = sqrt (X*X+Y*Y+Z*Z) ; - Theta = acos(Z / (R) ) ; - Phi = atan2(Y,X) ; + if (( check_Theta && check_Phi && check_R && check_Thickness + && check_Radius && check_LeadThickness && check_Scintillator + && check_Shape) // Cylindrical case + || + ( check_X && check_Y && check_Z && check_Thickness && check_Radius + && check_LeadThickness && check_Scintillator ) + || + ( check_Theta && check_Phi && check_R && check_Thickness + && check_Width && check_Height && check_LeadThickness + && check_Scintillator && check_Shape ) // Squared case + || + ( check_X && check_Y && check_Z && check_Thickness && check_Width + && check_Height && check_LeadThickness && check_Scintillator )) { + + if (check_X && check_Y && check_Z){ + R = sqrt (X*X+Y*Y+Z*Z); + Theta = acos(Z / (R) ); + Phi = atan2(Y,X); } if (Shape == "Cylinder") @@ -341,86 +341,65 @@ void Plastic::ReadConfiguration(string Path) // Reinitialisation of Check Boolean - check_Theta = false ; - check_Phi = false ; - check_R = false ; - check_Thickness = false ; - check_Radius = false ; - check_LeadThickness = false ; - check_Scintillator = false ; - check_Height = false ; - check_Width = false ; - check_Shape = false ; - check_X = false ; - check_Y = false ; - check_Z = false ; - ReadingStatus = false ; - cout << "///"<< endl ; + check_Theta = false ; + check_Phi = false ; + check_R = false ; + check_Thickness = false ; + check_Radius = false ; + check_LeadThickness = false ; + check_Scintillator = false ; + check_Height = false ; + check_Width = false ; + check_Shape = false ; + check_X = false ; + check_Y = false ; + check_Z = false ; + ReadingStatus = false ; + cout << "///"<< endl ; } - } } - } // Construct detector and inialise sensitive part. // Called After DetecorConstruction::AddDetector Method -void Plastic::ConstructDetector(G4LogicalVolume* world) -{ +void Plastic::ConstructDetector(G4LogicalVolume* world){ G4ThreeVector Det_pos = G4ThreeVector(0, 0, 0) ; - for (unsigned short i = 0 ; i < m_R.size() ; i++) - { - G4double wX = m_R[i] * sin(m_Theta[i] ) * cos(m_Phi[i] ) ; - G4double wY = m_R[i] * sin(m_Theta[i] ) * sin(m_Phi[i] ) ; - G4double wZ = m_R[i] * cos(m_Theta[i] ) ; - - Det_pos = G4ThreeVector(wX, wY, wZ) ; - // G4LogicalVolume* logicPlastic = NULL ; - + for (unsigned short i = 0 ; i < m_R.size() ; i++) { + G4double wX = m_R[i] * sin(m_Theta[i] ) * cos(m_Phi[i] ) ; + G4double wY = m_R[i] * sin(m_Theta[i] ) * sin(m_Phi[i] ) ; + G4double wZ = m_R[i] * cos(m_Theta[i] ) ; + Det_pos = G4ThreeVector(wX, wY, wZ) ; VolumeMaker(Det_pos , i+1, world) ; } } -void Plastic::VolumeMaker(G4ThreeVector Det_pos, int DetNumber, G4LogicalVolume* world) -{ +void Plastic::VolumeMaker(G4ThreeVector Det_pos, int DetNumber, G4LogicalVolume* world){ //////////////////////////////////////////////////////////////// ////////////// Starting Volume Definition ////////////////////// //////////////////////////////////////////////////////////////// // Name of the module - std::ostringstream DetectorNumber ; - DetectorNumber << DetNumber ; - G4String Name = "Plastic" + DetectorNumber.str() ; + std::ostringstream DetectorNumber ; + DetectorNumber << DetNumber ; + G4String Name = "Plastic" + DetectorNumber.str() ; int i = DetNumber-1; - G4Material* PlasticMaterial ; - - if(m_Scintillator[i] == "BC400" ) PlasticMaterial = m_MaterialPlastic_BC400 ; - else if(m_Scintillator[i] == "Kapton" ) PlasticMaterial = m_MaterialKapton ; - else { - G4cout << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl ; - G4cout << "WARNING: Material Not found, default material set : BC400" << endl ; - G4cout << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl ; - PlasticMaterial = m_MaterialPlastic_BC400; - } - + G4Material* PlasticMaterial = MaterialManager::getInstance()->GetMaterialFromLibrary(m_Scintillator[i]) ; // Definition of the volume containing the sensitive detector - // Cylindrical Case - if(m_PlasticRadius[i]!=-1) - { - if(m_PlasticThickness[i]>0 && m_PlasticRadius[i]>0) - { - G4Tubs* solidPlastic = new G4Tubs( Name , - 0 , - m_PlasticRadius[i] , - m_PlasticThickness[i]/2 , - 0*deg , - 360*deg ); + if(m_PlasticRadius[i]!=-1){ + if(m_PlasticThickness[i]>0 && m_PlasticRadius[i]>0){ + G4Tubs* solidPlastic = new G4Tubs( Name , + 0 , + m_PlasticRadius[i] , + m_PlasticThickness[i]/2 , + 0*deg , + 360*deg); G4LogicalVolume* logicPlastic = new G4LogicalVolume(solidPlastic, PlasticMaterial, Name+ "_Scintillator", 0, 0, 0); logicPlastic->SetSensitiveDetector(m_PlasticScorer); @@ -430,46 +409,42 @@ void Plastic::VolumeMaker(G4ThreeVector Det_pos, int DetNumber, G4LogicalVolume* - new G4PVPlacement( 0 , - Det_pos , - logicPlastic , - Name + "_Scintillator" , - world , - false , - 0 ); + new G4PVPlacement(0 , + Det_pos , + logicPlastic , + Name + "_Scintillator" , + world , + false , + 0 ); } - if(m_LeadThickness[i]>0&& m_PlasticRadius[i]>0) - { - G4Tubs* solidLead = new G4Tubs( Name+"_Lead" , - 0 , - m_PlasticRadius[i] , - m_LeadThickness[i]/2 , - 0*deg , - 360*deg ); + if(m_LeadThickness[i]>0&& m_PlasticRadius[i]>0){ + G4Tubs* solidLead = new G4Tubs(Name+"_Lead", + 0, + m_PlasticRadius[i], + m_LeadThickness[i]/2, + 0*deg, + 360*deg); - G4LogicalVolume* logicLead = new G4LogicalVolume(solidLead, m_MaterialLead, Name+"_Lead", 0, 0, 0);//AC changed lead to Al + G4Material* MaterialLead = MaterialManager::getInstance()->GetMaterialFromLibrary("Pb"); + G4LogicalVolume* logicLead = new G4LogicalVolume(solidLead, MaterialLead, Name+"_Lead", 0, 0, 0);//AC changed lead to Al G4VisAttributes* LeadVisAtt = new G4VisAttributes(G4Colour(0.1, 0.1, 0.1)) ; logicLead->SetVisAttributes(LeadVisAtt) ; - G4PVPlacement( 0 , - Det_pos+(m_PlasticThickness[i]/2+m_LeadThickness[i]/2)*Det_pos.unit() , - logicLead , - Name+"_Lead" , - world , - false , - 0 ); - + G4PVPlacement( 0, + Det_pos+(m_PlasticThickness[i]/2+m_LeadThickness[i]/2)*Det_pos.unit(), + logicLead, + Name+"_Lead", + world, + false, + 0); } } // Squared case - if(m_PlasticHeight[i]!=-1) - { - - if(m_PlasticThickness[i]>0 && m_PlasticHeight[i]>0 && m_PlasticWidth[i]>0) - { + if(m_PlasticHeight[i]!=-1){ + if(m_PlasticThickness[i]>0 && m_PlasticHeight[i]>0 && m_PlasticWidth[i]>0){ G4Box* solidPlastic = new G4Box(Name, 0.5*m_PlasticWidth[i], 0.5*m_PlasticHeight[i], 0.5*m_PlasticThickness[i]); G4LogicalVolume* logicPlastic = new G4LogicalVolume(solidPlastic, PlasticMaterial, Name+ "_Scintillator", 0, 0, 0); logicPlastic->SetSensitiveDetector(m_PlasticScorer); @@ -477,52 +452,38 @@ void Plastic::VolumeMaker(G4ThreeVector Det_pos, int DetNumber, G4LogicalVolume* G4VisAttributes* PlastVisAtt = new G4VisAttributes(G4Colour(0.0, 0.0, 0.9)) ; logicPlastic->SetVisAttributes(PlastVisAtt) ; - /*new G4PVPlacement( 0 , - Det_pos , - logicPlastic , - Name + "_Scintillator" , - world , - false , - 0 ); */ G4RotationMatrix Rot3D; Rot3D.set(0, 0, 0); - //Rot3D.rotateX(70*degree); - //Rot3D.rotateY(theta*degree); - //Rot3D.rotateZ(phi*degree); - new G4PVPlacement( G4Transform3D(Rot3D,Det_pos) , - logicPlastic , + new G4PVPlacement( G4Transform3D(Rot3D,Det_pos), + logicPlastic, Name + "_Scintillator" , - world , - false , - 0 ); - + world, + false, + 0); } - if(m_LeadThickness[i]>0&& m_PlasticHeight[i]>0 && m_PlasticWidth[i]>0) - { + if(m_LeadThickness[i]>0&& m_PlasticHeight[i]>0 && m_PlasticWidth[i]>0){ G4Box* solidLead = new G4Box(Name+"_Lead", 0.5*m_PlasticWidth[i], 0.5*m_PlasticHeight[i], 0.5*m_LeadThickness[i]); - G4LogicalVolume* logicLead = new G4LogicalVolume(solidLead, m_MaterialLead, Name+"_Lead", 0, 0, 0); + G4Material* MaterialLead = MaterialManager::getInstance()->GetMaterialFromLibrary("Pb"); + G4LogicalVolume* logicLead = new G4LogicalVolume(solidLead, MaterialLead, Name+"_Lead", 0, 0, 0); G4VisAttributes* LeadVisAtt = new G4VisAttributes(G4Colour(0.1, 0.1, 0.1)) ; logicLead->SetVisAttributes(LeadVisAtt) ; - new G4PVPlacement( 0 , + new G4PVPlacement(0, Det_pos+(m_PlasticThickness[i]/2+m_LeadThickness[i]/2)*Det_pos.unit() +G4ThreeVector(0,0,-10*cm) , - logicLead , - Name+"_Lead" , - world , - false , - 0 ); - + logicLead, + Name+"_Lead", + world, + false, + 0); } } - } // Add Detector branch to the EventTree. // Called After DetecorConstruction::AddDetector Method -void Plastic::InitializeRootOutput() -{ +void Plastic::InitializeRootOutput(){ RootOutput *pAnalysis = RootOutput::getInstance(); TTree *pTree = pAnalysis->GetTree(); pTree->Branch("Plastic", "TPlasticData", &m_Event) ; @@ -530,24 +491,23 @@ void Plastic::InitializeRootOutput() // Read sensitive part and fill the Root tree. // Called at in the EventAction::EndOfEventAvtion -void Plastic::ReadSensitive(const G4Event* event) -{ - G4String DetectorNumber ; - m_Event->Clear() ; +void Plastic::ReadSensitive(const G4Event* event){ + G4String DetectorNumber; + m_Event->Clear(); ////////////////////////////////////////////////////////////////////////////////////// //////////////////////// Used to Read Event Map of detector ////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// - std::map<G4int, G4int*>::iterator DetectorNumber_itr ; - std::map<G4int, G4double*>::iterator Energy_itr ; - std::map<G4int, G4double*>::iterator Time_itr ; - std::map<G4int, G4double*>::iterator Pos_Z_itr ; + std::map<G4int, G4int*>::iterator DetectorNumber_itr; + std::map<G4int, G4double*>::iterator Energy_itr; + std::map<G4int, G4double*>::iterator Time_itr; + std::map<G4int, G4double*>::iterator Pos_Z_itr; - G4THitsMap<G4int>* DetectorNumberHitMap ; - G4THitsMap<G4double>* EnergyHitMap ; - G4THitsMap<G4double>* TimeHitMap ; - G4THitsMap<G4double>* PosZHitMap ; + G4THitsMap<G4int>* DetectorNumberHitMap; + G4THitsMap<G4double>* EnergyHitMap; + G4THitsMap<G4double>* TimeHitMap; + G4THitsMap<G4double>* PosZHitMap; ////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// @@ -577,7 +537,7 @@ void Plastic::ReadSensitive(const G4Event* event) G4int sizeN = DetectorNumberHitMap->entries() ; G4int sizeE = EnergyHitMap->entries() ; G4int sizeT = TimeHitMap->entries() ; - + // Loop on Plastic Number for (G4int l = 0 ; l < sizeN ; l++) { G4int N = *(DetectorNumber_itr->second) ; @@ -585,19 +545,15 @@ void Plastic::ReadSensitive(const G4Event* event) if (N > 0) { - m_Event->SetPlasticNumber(N) ; - // Energy Energy_itr = EnergyHitMap->GetMap()->begin(); for (G4int h = 0 ; h < sizeE ; h++) { G4int ETrackID = Energy_itr->first - N ; G4double E = *(Energy_itr->second) ; - if (ETrackID == NTrackID) { m_Event->SetEnergy(RandGauss::shoot(E, E*ResoEnergy/100./2.35)) ; } - Energy_itr++; } @@ -607,11 +563,9 @@ void Plastic::ReadSensitive(const G4Event* event) for (G4int h = 0 ; h < sizeT ; h++) { G4int TTrackID = Time_itr->first - N ; G4double T = *(Time_itr->second) ; - if (TTrackID == NTrackID) { m_Event->SetTime(RandGauss::shoot(T, ResoTime)) ; } - Time_itr++; } @@ -624,7 +578,6 @@ void Plastic::ReadSensitive(const G4Event* event) ms_InterCoord->SetDetectedPositionZ(PosZ) ; } Pos_Z_itr++; - } } @@ -639,15 +592,6 @@ void Plastic::ReadSensitive(const G4Event* event) } -//////////////////////////////////////////////////////////////// -void Plastic::InitializeMaterial(){ - - m_MaterialLead = MaterialManager::getInstance()->GetMaterialFromLibrary("Pb"); - m_MaterialAl = MaterialManager::getInstance()->GetMaterialFromLibrary("Al"); - m_MaterialPlastic_BC400 = MaterialManager::getInstance()->GetMaterialFromLibrary("BC400"); - m_MaterialKapton = MaterialManager::getInstance()->GetMaterialFromLibrary("Kapton"); - -} //////////////////////////////////////////////////////////////// void Plastic::InitializeScorers() { diff --git a/NPSimulation/Plastic/Plastic.hh b/NPSimulation/Plastic/Plastic.hh index 0fae86d84639f1deedfb4ce31f76553f43d001e6..54d30ba232429e7218fcf7440e0b04e343093ea2 100644 --- a/NPSimulation/Plastic/Plastic.hh +++ b/NPSimulation/Plastic/Plastic.hh @@ -96,15 +96,6 @@ public: // Called at in the EventAction::EndOfEventAvtion void ReadSensitive(const G4Event* event) ; -public: // Material - void InitializeMaterial() ; - // Platic - G4Material* m_MaterialPlastic_BC400 ; //BC-400 type plastic - G4Material* m_MaterialKapton ; //BC452:BC-400 loaded with 10%Pb type plastic - // Lead - G4Material* m_MaterialLead ; - G4Material* m_MaterialAl ; - public: // Scorer // Initialize all Scorer used by the MUST2Array void InitializeScorers() ; diff --git a/NPSimulation/src/MaterialManager.cc b/NPSimulation/src/MaterialManager.cc index 2e6eac6a276fbfb1d7a92734e6a4eb33bbea2c19..2a5a22320c7676335a5ef7a5721e281c5182393c 100644 --- a/NPSimulation/src/MaterialManager.cc +++ b/NPSimulation/src/MaterialManager.cc @@ -431,7 +431,8 @@ void MaterialManager::WriteDEDXTable(G4ParticleDefinition* Particle ,G4double Em File << "Table from Geant4 generate using NPSimulation \t" << "Particle: " << Particle->GetParticleName() << "\tMaterial: " << it->second->GetName() << endl ; - + // cout << Particle->GetParticleName() << "\tMaterial: " << it->second->GetName() <<endl; + G4EmCalculator emCalculator; G4double dedx ; // Tipical Range needed, if Emax is larger, then adapted