From d233810c8dc89f5c662934a693708460cf54e02c Mon Sep 17 00:00:00 2001 From: adrien matta <matta@lpccaen.in2p3.fr> Date: Tue, 6 Feb 2018 17:05:48 +0100 Subject: [PATCH] * Beam tracking fully functional but side issue to solve: - The initial condidition is filled is XYZ at emission plan, not interaction plan like before - The reaction and decay particle are no longer in the initial condition --- Examples/Example1/Analysis.cxx | 4 +- Examples/Example1/ShowResults.C | 5 +- Examples/Example1/cuts/ETOF.root | Bin 4267 -> 4279 bytes Inputs/EventGenerator/alpha.source | 2 +- NPLib/Detectors/Plastic/TPlasticData.h | 13 ++--- NPLib/Detectors/Plastic/TPlasticPhysics.cxx | 53 ++++++++---------- NPSimulation/Detectors/Plastic/Plastic.cc | 21 ++++--- NPSimulation/Process/BeamReaction.cc | 10 ---- .../Scorers/ObsoleteGeneralScorers.cc | 6 +- 9 files changed, 51 insertions(+), 63 deletions(-) diff --git a/Examples/Example1/Analysis.cxx b/Examples/Example1/Analysis.cxx index b2690b081..a316f6be2 100644 --- a/Examples/Example1/Analysis.cxx +++ b/Examples/Example1/Analysis.cxx @@ -63,7 +63,7 @@ void Analysis::Init(){ He3CD2 = EnergyLoss("Example/He3_CD2.G4table","G4Table",100 ); He3Al = EnergyLoss("Example/He3_Al.G4table","G4Table",10); He3Si = EnergyLoss("Example/He3_Si.G4table","G4Table",10); - //Li11CD2 = EnergyLoss("ExampleLi11_CD2.G4table","G4Table",100); + Li11CD2 = EnergyLoss("Example/Li11_CD2.G4table","G4Table",100); } //////////////////////////////////////////////////////////////////////////////// @@ -79,7 +79,7 @@ void Analysis::TreatEvent(){ TVector3 BeamDirection = Initial->GetBeamDirection(); // Beam energy is measured using F3 and F2 plastic TOF double BeamEnergy = Rand.Gaus(Initial->GetIncidentInitialKineticEnergy(),4.5); - //BeamEnergy = Li11CD2.Slow(BeamEnergy,TargetThickness/2.,0); + BeamEnergy = Li11CD2.Slow(BeamEnergy,TargetThickness/2.,0); He10Reaction->SetBeamEnergy(BeamEnergy); //////////////////////////// LOOP on MUST2 + SSSD Hit ////////////////// diff --git a/Examples/Example1/ShowResults.C b/Examples/Example1/ShowResults.C index 916886330..5e3ba7044 100644 --- a/Examples/Example1/ShowResults.C +++ b/Examples/Example1/ShowResults.C @@ -32,11 +32,14 @@ void ShowResults(){ // E-DE c1->cd(1); chain->Draw("SSSD.Energy:MUST2.Si_E>>hIDE(1000,0,35,1000,0,5)","MUST2.CsI_E<0 && MUST2.TelescopeNumber<5","colz"); + EDE->Draw("same"); // E-TOF c1->cd(2); - chain->Draw("-MUST2.Si_T:SSSD.Energy+MUST2.Si_E>>hIDT(1000,0,35,1000,-15,0)","MUST2.CsI_E<0 && MUST2.TelescopeNumber<5","colz"); + chain->Draw("-MUST2.Si_T:SSSD.Energy+MUST2.Si_E>>hIDT(1000,0,35,1000,-30,0)","MUST2.CsI_E<0 && MUST2.TelescopeNumber<5","colz"); + + ETOF->Draw("same"); // Kinematical Line // diff --git a/Examples/Example1/cuts/ETOF.root b/Examples/Example1/cuts/ETOF.root index 462bead6ba3db3a5e7e68426a892a94f0aa23d75..067d548e7c6f2d4adc224047d2a23700cc380032 100644 GIT binary patch delta 4077 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 delta 4057 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 diff --git a/Inputs/EventGenerator/alpha.source b/Inputs/EventGenerator/alpha.source index 2f871a6b6..b01a3a158 100644 --- a/Inputs/EventGenerator/alpha.source +++ b/Inputs/EventGenerator/alpha.source @@ -10,7 +10,7 @@ Isotropic HalfOpenAngleMax= 180 deg x0= 0 mm y0= 0 mm - z0= -110 mm + z0= 0 mm Particle= alpha ExcitationEnergy= 0 MeV diff --git a/NPLib/Detectors/Plastic/TPlasticData.h b/NPLib/Detectors/Plastic/TPlasticData.h index 7de7f9c81..ff9b235ce 100644 --- a/NPLib/Detectors/Plastic/TPlasticData.h +++ b/NPLib/Detectors/Plastic/TPlasticData.h @@ -51,17 +51,14 @@ class TPlasticData : public TObject { //Mult // E - inline double GetEnergyMult() const { return fPlastic_Energy.size() ;} - // (T) - inline double GetTimeMult() const { return fPlastic_Time.size() ;} - // (N) - inline int GetPlasticNumberMult() const { return fPlastic_Number.size() ;} + inline double GetMult() const { return fPlastic_Energy.size() ;} ///////////////////// SETTERS //////////////////////// // (E) - inline void SetEnergy(const double& E) { fPlastic_Energy.push_back(E) ;} - inline void SetTime(const double& T) { fPlastic_Time.push_back(T) ;} - inline void SetPlasticNumber(const int& N) { fPlastic_Number.push_back(N) ;} + inline void SetEnergyAndTime(const int& N, const double& E, const double& T) + { fPlastic_Energy.push_back(E); + fPlastic_Time.push_back(T) ; + fPlastic_Number.push_back(N); } // ClassDef(TPlasticData,1) // PlasticData structure }; diff --git a/NPLib/Detectors/Plastic/TPlasticPhysics.cxx b/NPLib/Detectors/Plastic/TPlasticPhysics.cxx index dd6894114..26fb3d711 100644 --- a/NPLib/Detectors/Plastic/TPlasticPhysics.cxx +++ b/NPLib/Detectors/Plastic/TPlasticPhysics.cxx @@ -139,14 +139,11 @@ void TPlasticPhysics::ReadConfiguration(NPL::InputParser parser) { } /////////////////////////////////////////////////////////////////////////// -void TPlasticPhysics::AddParameterToCalibrationManager() -{ +void TPlasticPhysics::AddParameterToCalibrationManager(){ CalibrationManager* Cal = CalibrationManager::getInstance(); - for(int i = 0 ; i < NumberOfDetector ; i++) - { - for( int j = 0 ; j < 16 ; j++) - { + for(int i = 0 ; i < NumberOfDetector ; i++){ + for( int j = 0 ; j < 16 ; j++){ Cal->AddParameter("Plastic", "Detector"+ NPL::itoa(i+1)+"_E","Plastic_Detector"+ NPL::itoa(i+1)+"_E") ; Cal->AddParameter("Plastic", "Detector"+ NPL::itoa(i+1)+"_T","Plastic_Detector"+ NPL::itoa(i+1)+"_T") ; } @@ -155,16 +152,14 @@ void TPlasticPhysics::AddParameterToCalibrationManager() } /////////////////////////////////////////////////////////////////////////// -void TPlasticPhysics::InitializeRootInputRaw() -{ - TChain* inputChain = RootInput::getInstance()->GetChain() ; - inputChain->SetBranchStatus ( "Plastic" , true ) ; - inputChain->SetBranchStatus ( "fPlastic_*" , true ) ; - inputChain->SetBranchAddress( "Plastic" , &EventData ) ; +void TPlasticPhysics::InitializeRootInputRaw() { + TChain* inputChain = RootInput::getInstance()->GetChain(); + inputChain->SetBranchStatus ( "Plastic" , true ); + inputChain->SetBranchStatus ( "fPlastic_*", true ); + inputChain->SetBranchAddress( "Plastic" , &EventData ); } /////////////////////////////////////////////////////////////////////////// -void TPlasticPhysics::InitializeRootInputPhysics() -{ +void TPlasticPhysics::InitializeRootInputPhysics(){ TChain* inputChain = RootInput::getInstance()->GetChain(); inputChain->SetBranchStatus ( "Plastic", true ); inputChain->SetBranchStatus ( "DetectorNumber", true ); @@ -173,31 +168,27 @@ void TPlasticPhysics::InitializeRootInputPhysics() inputChain->SetBranchAddress( "Plastic", &EventPhysics ); } /////////////////////////////////////////////////////////////////////////// -void TPlasticPhysics::InitializeRootOutput() -{ - TTree* outputTree = RootOutput::getInstance()->GetTree() ; +void TPlasticPhysics::InitializeRootOutput(){ + TTree* outputTree = RootOutput::getInstance()->GetTree(); outputTree->Branch( "Plastic" , "TPlasticPhysics" , &EventPhysics ) ; } /////////////////////////////////////////////////////////////////////////// -void TPlasticPhysics::BuildPhysicalEvent() -{ - BuildSimplePhysicalEvent() ; +void TPlasticPhysics::BuildPhysicalEvent(){ + BuildSimplePhysicalEvent(); } /////////////////////////////////////////////////////////////////////////// -void TPlasticPhysics::BuildSimplePhysicalEvent() -{ - for(unsigned int i = 0 ; i < EventData->GetEnergyMult() ; i++) - { - DetectorNumber.push_back( EventData->GetPlasticNumber(i) ) ; +void TPlasticPhysics::BuildSimplePhysicalEvent(){ + unsigned int size = EventData->GetMult(); + for(unsigned int i = 0 ; i < size ; i++){ + DetectorNumber.push_back(EventData->GetPlasticNumber(i)); static string str; - str = "Plastic/Detector" + NPL::itoa( EventData->GetPlasticNumber(i) ) +"_E"; - Energy.push_back(CalibrationManager::getInstance()->ApplyCalibration(str ,EventData->GetEnergy(i) ) ); - str = "Plastic/Detector" + NPL::itoa( EventData->GetPlasticNumber(i) ) +"_T"; - Time.push_back(CalibrationManager::getInstance()->ApplyCalibration(str ,EventData->GetTime(i) ) ); - } - + str = "Plastic/Detector" + NPL::itoa(EventData->GetPlasticNumber(i)) +"_E"; + Energy.push_back(CalibrationManager::getInstance()->ApplyCalibration(str ,EventData->GetEnergy(i))); + str = "Plastic/Detector" + NPL::itoa(EventData->GetPlasticNumber(i)) +"_T"; + Time.push_back(CalibrationManager::getInstance()->ApplyCalibration(str ,EventData->GetTime(i))); + } } //////////////////////////////////////////////////////////////////////////////// diff --git a/NPSimulation/Detectors/Plastic/Plastic.cc b/NPSimulation/Detectors/Plastic/Plastic.cc index ec9b2c7d0..1eeb8c92b 100644 --- a/NPSimulation/Detectors/Plastic/Plastic.cc +++ b/NPSimulation/Detectors/Plastic/Plastic.cc @@ -404,22 +404,25 @@ void Plastic::ReadSensitive(const G4Event* event){ G4int sizeN = DetectorNumberHitMap->entries() ; G4int sizeE = EnergyHitMap->entries() ; G4int sizeT = TimeHitMap->entries() ; + vector<double> energy; + vector<double> time; + vector<int> det; + + // Loop on Plastic Number for (G4int l = 0 ; l < sizeN ; l++) { G4int N = *(DetectorNumber_itr->second) ; G4int NTrackID = DetectorNumber_itr->first - N ; - - - if (N > 0) { - m_Event->SetPlasticNumber(N) ; + if (N > 0) { + det.push_back(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.push_back(RandGauss::shoot(E, E*ResoEnergy/100./2.35)) ; } Energy_itr++; } @@ -431,7 +434,7 @@ void Plastic::ReadSensitive(const G4Event* event){ G4int TTrackID = Time_itr->first - N ; G4double T = *(Time_itr->second) ; if (TTrackID == NTrackID) { - m_Event->SetTime(RandGauss::shoot(T, ResoTime)) ; + time.push_back(RandGauss::shoot(T, ResoTime)) ; } Time_itr++; } @@ -481,9 +484,13 @@ void Plastic::ReadSensitive(const G4Event* event){ } } - DetectorNumber_itr++; } + unsigned int size=energy.size(); + for(unsigned int i = 0 ; i < size ; i++){ + m_Event->SetEnergyAndTime(det[i],energy[i],time[i]); + } + // clear map for next event TimeHitMap->clear() ; diff --git a/NPSimulation/Process/BeamReaction.cc b/NPSimulation/Process/BeamReaction.cc index a55b2b36d..2a089a8c0 100644 --- a/NPSimulation/Process/BeamReaction.cc +++ b/NPSimulation/Process/BeamReaction.cc @@ -152,14 +152,8 @@ void NPS::BeamReaction::DoIt(const G4FastTrack& fastTrack,G4FastStep& fastStep) m_Reaction.ShootRandomExcitationEnergy(); // Use to clean up the IonTable in case of the Ex changing at every event - static G4ParticleDefinition* previousHeavy=0; - if(previousHeavy) - delete previousHeavy; - // IonTable->Remove(previousHeavy); - G4ParticleDefinition* HeavyName = IonTable->GetIon(HeavyZ, HeavyA, m_Reaction.GetExcitation4()*MeV); - //cout << IonTable->Entries()<< endl; // Set the Energy of the reaction m_Reaction.SetBeamEnergy(energy); @@ -225,8 +219,4 @@ void NPS::BeamReaction::DoIt(const G4FastTrack& fastTrack,G4FastStep& fastStep) // Reinit for next event m_PreviousEnergy=0 ; m_PreviousLength=0 ; - //previousHeavy=HeavyName; - //IonTable->fIonList->begin()->second->Mass(); - //IonTable->fIonList->erase(IonTable->fIonList->begin()); - } diff --git a/NPSimulation/Scorers/ObsoleteGeneralScorers.cc b/NPSimulation/Scorers/ObsoleteGeneralScorers.cc index 558119d59..6bfbc2d8c 100644 --- a/NPSimulation/Scorers/ObsoleteGeneralScorers.cc +++ b/NPSimulation/Scorers/ObsoleteGeneralScorers.cc @@ -200,10 +200,10 @@ G4bool PSTOF::ProcessHits(G4Step* aStep, G4TouchableHistory*) int DetNumber = PickUpDetectorNumber(aStep, m_VolumeName); G4double TOF = aStep->GetPreStepPoint()->GetGlobalTime(); - G4double de = aStep->GetTotalEnergyDeposit(); + // G4double de = aStep->GetTotalEnergyDeposit(); G4int index = aStep->GetTrack()->GetTrackID(); - if(de < TriggerThreshold) - return FALSE; + // if(de < TriggerThreshold) + // return FALSE; EvtMap->set(index+DetNumber, TOF); return TRUE; } -- GitLab