diff --git a/Inputs/EventGenerator/neutron.source b/Inputs/EventGenerator/neutron.source old mode 100644 new mode 100755 index 6269fb007aa86081c5aa27c38e8ee5a3f5abd089..9d673567edd2b32697e20d1b43ce36315b8afa2f --- a/Inputs/EventGenerator/neutron.source +++ b/Inputs/EventGenerator/neutron.source @@ -4,21 +4,22 @@ % Energy are given in MeV , Position in mm % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Isotropic - EnergyLow= 0.1 - EnergyHigh= 12 - %EnergyDistribution= flat - EnergyDistribution= Watt + EnergyLow= 0 + EnergyHigh= 20 + % EnergyDistribution= flat +% EnergyDistribution= Watt + EnergyDistribution= FromHisto + EnergyDistributionHist= MannhartFineFilterHisto.root hMannhart +% EnergyDistributionHist= 20221222_EbarNubarExtrapolations_PFNS.root PFNS_2 +% EnergyDistributionHist= hPFNS_jeff3.3.root PFNS_jeff_0 %EnergyDistribution= 0.38*sqrt(x)*exp(-x/0.847212) - %EnergyDistribution= 1.5*TMath::SinH(sqrt(1.3*x))*exp(-0.89*x) - %EnergyDistribution= FromHisto - %EnergyDistributionHist= hEx.root hEx HalfOpenAngleMin= 0 HalfOpenAngleMax= 180 x0= 0 y0= 0 z0= 0 mm - SigmaX= 1 mm - SigmaY= 1 mm + SigmaX= 12 mm + SigmaY= 12 mm Multiplicity= 1 Particle= neutron %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/NPLib/Detectors/ChiNu/CMakeLists.txt b/NPLib/Detectors/ChiNu/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/NPLib/Detectors/ChiNu/TChiNuData.cxx b/NPLib/Detectors/ChiNu/TChiNuData.cxx old mode 100644 new mode 100755 diff --git a/NPLib/Detectors/ChiNu/TChiNuData.h b/NPLib/Detectors/ChiNu/TChiNuData.h old mode 100644 new mode 100755 diff --git a/NPLib/Detectors/ChiNu/TChiNuPhysics.cxx b/NPLib/Detectors/ChiNu/TChiNuPhysics.cxx old mode 100644 new mode 100755 diff --git a/NPLib/Detectors/ChiNu/TChiNuPhysics.h b/NPLib/Detectors/ChiNu/TChiNuPhysics.h old mode 100644 new mode 100755 diff --git a/NPLib/Detectors/ChiNu/TChiNuSpectra.cxx b/NPLib/Detectors/ChiNu/TChiNuSpectra.cxx old mode 100644 new mode 100755 diff --git a/NPLib/Detectors/ChiNu/TChiNuSpectra.h b/NPLib/Detectors/ChiNu/TChiNuSpectra.h old mode 100644 new mode 100755 diff --git a/NPSimulation/Detectors/ChiNu/CMakeLists.txt b/NPSimulation/Detectors/ChiNu/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/NPSimulation/Detectors/ChiNu/ChiNu.cc b/NPSimulation/Detectors/ChiNu/ChiNu.cc old mode 100644 new mode 100755 index 1382ccf01d1459e847c75e6715c49f927fd5af4e..6328e77a107dad6248f65eff4d818ef39841c021 --- a/NPSimulation/Detectors/ChiNu/ChiNu.cc +++ b/NPSimulation/Detectors/ChiNu/ChiNu.cc @@ -1,23 +1,23 @@ /***************************************************************************** - * Copyright (C) 2009-2019 this file is part of the NPTool Project * + * Copyright (C) 2009-2019 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: Pierre Morfouace contact address: pierre.morfouace2@cea.fr * - * * - * Creation Date : February 2019 * - * Last update : * - *---------------------------------------------------------------------------* - * Decription: * - * This class describe ChiNu simulation * - * * - *---------------------------------------------------------------------------* - * Comment: * - * * - *****************************************************************************/ +/******************************************************************************** + * Original Author: Pierre Morfouace contact address: pierre.morfouace2@cea.fr * + * * + * Creation Date : February 2019 * + * Last update : * + *------------------------------------------------------------------------------* + * Decription: * + * This class describes ChiNu simulation * + * * + *------------------------------------------------------------------------------* + * Comment: * + * * + ********************************************************************************/ // C++ headers #include <sstream> @@ -61,9 +61,11 @@ using namespace CLHEP; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... namespace ChiNu_NS{ // EJ309 Scintillator - Energy and time Resolution - const double EnergyThreshold = 0.*MeV; + const double EnergyThreshold = 0.02*MeV; const double ResoTime = 0.686*ns ; - const double ResoEnergy = 0.1*MeV ; + const double ResoEnergySlope = 0.06514 ; + const double ResoEnergyOffset = 0.09271*MeV ; + // const double ResoEnergy = 0.1*MeV ; const double Radius = 8.90*cm ; const double Thickness = 5.08*cm ; const string Material = "EJ309"; @@ -121,19 +123,21 @@ ChiNu::ChiNu(){ ChiNu::~ChiNu(){ } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ChiNu::AddDetector(G4ThreeVector POS){ +void ChiNu::AddDetector(G4ThreeVector POS, double TimeResolution){ // Convert the POS value to R theta Phi as Spherical coordinate is easier in G4 m_R.push_back(POS.mag()); m_Theta.push_back(POS.theta()); m_Phi.push_back(POS.phi()); + m_ResoTime.push_back(TimeResolution); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ChiNu::AddDetector(double R, double Theta, double Phi){ +void ChiNu::AddDetector(double R, double Theta, double Phi, double TimeResolution){ m_R.push_back(R); m_Theta.push_back(Theta); m_Phi.push_back(Phi); + m_ResoTime.push_back(TimeResolution); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -209,6 +213,17 @@ void ChiNu::ReadConfiguration(NPL::InputParser parser){ if(NPOptionManager::getInstance()->GetVerboseLevel()) cout << "//// " << blocks.size() << " detectors found " << endl; + // In case a file of different values for different detectors is to be applied. + // string fTimeRes=blocks[0]->GetString("fTimeResolution"); + // vector<double> TimeRes; + // if(fTimeRes!="") + // { + // ifstream fres(fTimeRes.c_str()); + // double T; + // while(fres>> T) + // TimeRes.push_back(T); + // } + vector<string> cart = {"POS"}; vector<string> sphe = {"R","Theta","Phi"}; @@ -218,7 +233,8 @@ void ChiNu::ReadConfiguration(NPL::InputParser parser){ cout << endl << "//// ChiNu " << i+1 << endl; G4ThreeVector Pos = NPS::ConvertVector(blocks[i]->GetTVector3("POS","mm")); - AddDetector(Pos); + + AddDetector(Pos,ChiNu_NS::ResoTime); } else if(blocks[i]->HasTokenList(sphe)){ if(NPOptionManager::getInstance()->GetVerboseLevel()) @@ -227,7 +243,13 @@ void ChiNu::ReadConfiguration(NPL::InputParser parser){ double Theta = blocks[i]->GetDouble("Theta","deg"); double Phi = blocks[i]->GetDouble("Phi","deg"); m_BuildLeadShield = blocks[i]->GetInt("LeadShield"); - AddDetector(R,Theta,Phi); + double TimeResolution = ChiNu_NS::ResoTime; + if(blocks[i]->HasToken("TimeResolution")) + TimeResolution=blocks[i]->GetDouble("TimeResolution","ns"); + + // if(fTimeRes!="") TimeResolution = TimeRes.at((i+1)/6+9*((i+1)%6)); + + AddDetector(R,Theta,Phi,TimeResolution); } else{ cout << "ERROR: check your input file formatting " << endl; @@ -242,9 +264,19 @@ void ChiNu::ReadConfiguration(NPL::InputParser parser){ // Called After DetecorConstruction::AddDetector Method void ChiNu::ConstructDetector(G4LogicalVolume* world){ - //G4Material* Air = MaterialManager::getInstance()->GetMaterialFromLibrary("Air"); - //world->SetMaterial(Air); + // double Vm = 0.08206 * 300 * atmosphere / (0.792 * kelvin); // pressure * bar? + // double density = ( ( 0.21*2*15.99903 + 0.79*2*14.00643 ) / Vm ); + // cout << " ////////////////// density=" << density << " ///////////////////" << endl; + // cout << " atmosphere=" << atmosphere << " kelvin=" << kelvin << " Vm=" << Vm << " mg/cm3=" << mg/cm3 << endl; + + // G4Material* Air = MaterialManager::getInstance()->GetMaterialFromLibrary("Air",density * mg/cm3); + // world->SetMaterial(Air); + + G4Material* Air = MaterialManager::getInstance()->GetMaterialFromLibrary("Air"); + world->SetMaterial(Air); + + for (unsigned short i = 0 ; i < m_R.size() ; i++) { G4double wX = m_R[i] * sin(m_Theta[i] ) * cos(m_Phi[i] ) ; @@ -292,11 +324,21 @@ void ChiNu::ReadSensitive(const G4Event* ){ unsigned int size = Scorer->GetMult(); for(unsigned int i = 0 ; i < size ; i++){ - vector<unsigned int> level = Scorer->GetLevel(i); - double Energy = RandGauss::shoot(Scorer->GetEnergy(i),ChiNu_NS::ResoEnergy); + vector<unsigned int> level = Scorer->GetLevel(i); + int DetectorNbr = level[0]; + + // Light output equation: + // L(Ep)=A*Ep - B*(1-exp(-C*pow(Ep,D))) from F. Pino et al. Applied Radiation and Isotopes 89 (2014) 79-84. + double A=0.62, B=1.3, C=0.39, D=0.97; + double Ep=RandGauss::shoot(Scorer->GetEnergy(i),ChiNu_NS::ResoEnergyOffset+ChiNu_NS::ResoEnergySlope*Scorer->GetEnergy(i)); + double Energy = A*Ep - B*(1-exp(-C*pow(Ep,D))); + //////////////////////// + + // Energy = RandGauss::shoot(Energy,ChiNu_NS::ResoEnergyOffset+ChiNu_NS::ResoEnergySlope*Energy); + if(Energy>ChiNu_NS::EnergyThreshold){ - double Time = RandGauss::shoot(Scorer->GetTime(i),ChiNu_NS::ResoTime); - int DetectorNbr = level[0]; + // double Time = RandGauss::shoot(Scorer->GetTime(i),ChiNu_NS::ResoTime); // One time resolution for all detectors + double Time = RandGauss::shoot(Scorer->GetTime(i),m_ResoTime.at(DetectorNbr-1)); // Time resolution that can be set different for each detector m_Event->SetEnergy(DetectorNbr,Energy); m_Event->SetTime(DetectorNbr,Time); } diff --git a/NPSimulation/Detectors/ChiNu/ChiNu.hh b/NPSimulation/Detectors/ChiNu/ChiNu.hh old mode 100644 new mode 100755 index 521f0f578b952290125ae9f2cf10665ee4d5f540..c4adf840335bd164acf14ac543dfe2d5dca80003 --- a/NPSimulation/Detectors/ChiNu/ChiNu.hh +++ b/NPSimulation/Detectors/ChiNu/ChiNu.hh @@ -51,9 +51,9 @@ class ChiNu : public NPS::VDetector{ //////////////////////////////////////////////////// public: // Cartesian - void AddDetector(G4ThreeVector POS); + void AddDetector(G4ThreeVector POS, double TimeResolution); // Spherical - void AddDetector(double R,double Theta,double Phi); + void AddDetector(double R,double Theta,double Phi, double TimeResolution); G4AssemblyVolume* BuildDetector(); @@ -107,6 +107,7 @@ class ChiNu : public NPS::VDetector{ vector<double> m_Theta; vector<double> m_Phi; bool m_BuildLeadShield; + vector<double> m_ResoTime; // Visualisation Attribute G4VisAttributes* m_VisCylinder; diff --git a/NPSimulation/EventGenerator/EventGeneratorIsotropic.hh b/NPSimulation/EventGenerator/EventGeneratorIsotropic.hh index 31cb553543c02f1e5638e98b7a2cf97d9378d52e..b60d01b594c0567f50c6828785c14e0b24f0a88c 100644 --- a/NPSimulation/EventGenerator/EventGeneratorIsotropic.hh +++ b/NPSimulation/EventGenerator/EventGeneratorIsotropic.hh @@ -39,7 +39,7 @@ using namespace CLHEP; // ROOT headers #include "TString.h" #include "TF1.h" -#include "TH1F.h" +#include "TH1.h" class EventGeneratorIsotropic : public NPS::VEventGenerator{ public: // Constructor and destructor @@ -75,6 +75,6 @@ private: // Source parameter from input file vector<SourceParameters> m_Parameters ; ParticleStack* m_ParticleStack ; TF1* fEnergyDist; - TH1F* m_EnergyDistributionHist; + TH1D* m_EnergyDistributionHist; }; #endif diff --git a/Projects/ChiNu/Analysis.cxx b/Projects/ChiNu/Analysis.cxx old mode 100644 new mode 100755 index fd75ddba706b2461bee8a86eb9cb8f4fa491f335..8c04f21b5c8ec678398cce981a6e43c096b1b81f --- a/Projects/ChiNu/Analysis.cxx +++ b/Projects/ChiNu/Analysis.cxx @@ -53,7 +53,7 @@ void Analysis::Init(){ void Analysis::TreatEvent(){ ReInitValue(); Einit = InitialConditions->GetKineticEnergy(0); - double init_ThetaLab = ReactionConditions->GetTheta(0)*deg; + double init_ThetaLab = ReactionConditions->GetTheta(0)*deg; double init_BeamEnergy = ReactionConditions->GetBeamEnergy(); //neutron->SetKineticEnergy(init_BeamEnergy); neutron->SetKineticEnergy(Einit); @@ -63,34 +63,98 @@ void Analysis::TreatEvent(){ double Ytarget = InitialConditions->GetIncidentPositionY(); double Ztarget = 0;//InitialConditions->GetIncidentPositionZ(); TVector3 TargetPos = TVector3(Xtarget,Ytarget,Ztarget); + // cout << "Xtarget=" << Xtarget << endl; + unsigned int IntCoord_mult=InteractionCoordinates->GetDetectedMultiplicity(); + InCellHitMultiplicity=IntCoord_mult; + + // cout << "m_ChiNu->Energy.size()=" << m_ChiNu->Energy.size() << endl; + // cout << "IntCoord_mult=" << IntCoord_mult << endl; for(int i=0; i<m_ChiNu->Energy.size(); i++){ - if(m_ChiNu->Energy.size()>0){ - double Rdet, R; - Rdet = m_ChiNu->GetDetectorPosition(m_ChiNu->DetectorNumber[i]); - TVector3 DetPos = m_ChiNu->GetVectorDetectorPosition(m_ChiNu->DetectorNumber[i]); - TVector3 HitPos = DetPos-TargetPos; - //R= HitPos.Mag()*1e-3; - R= Rdet*mm; - Distance.push_back(R); - Det.push_back(m_ChiNu->DetectorNumber[i]); - T.push_back(m_ChiNu->Time[i]); - double T_stop = (m_ChiNu->Time[i])*1e-9; - //neutron->SetTimeOfFlight((T_stop-beam_TOF)/(Rdet*1e-3)); - neutron->SetTimeOfFlight((T_stop)/(Rdet*1e-3-8e-3)); - E.push_back(m_ChiNu->Energy[i]); - Elab.push_back(neutron->GetEnergy()); - - - double DeltaTheta = atan(89.0/Rdet); - double exp_ThetaLab = m_ChiNu->GetVectorDetectorPosition(m_ChiNu->DetectorNumber[i]).Theta(); - double random_ThetaLab = ra.Uniform(exp_ThetaLab-DeltaTheta, exp_ThetaLab+DeltaTheta); - double dEx = my_Reaction->ReconstructRelativistic(Elab[i], random_ThetaLab); + double Rdet, R; + + TVector3 DetPos = m_ChiNu->GetVectorDetectorPosition(m_ChiNu->DetectorNumber[i]); + TVector3 HitPos = DetPos-TargetPos; + Rdet = DetPos.Mag() ; + R = Rdet*mm; + + Distance.push_back(R); + Det.push_back(m_ChiNu->DetectorNumber[i]); + T.push_back(m_ChiNu->Time[i]); + double T_stop = (m_ChiNu->Time[i]); + neutron->SetBeta( (Rdet/T_stop) / c_light); + E.push_back(m_ChiNu->Energy[i]); + Elab.push_back(neutron->GetEnergy()); + + + double DeltaTheta = atan(89.0/Rdet); + double exp_ThetaLab = m_ChiNu->GetVectorDetectorPosition(m_ChiNu->DetectorNumber[i]).Theta(); + double random_ThetaLab = ra.Uniform(exp_ThetaLab-DeltaTheta, exp_ThetaLab+DeltaTheta); + double dEx = my_Reaction->ReconstructRelativistic(Elab[i], random_ThetaLab); - ThetaLab.push_back(random_ThetaLab/deg); - //ThetaLab.push_back(exp_ThetaLab/deg); - Ex.push_back(dEx); - } + ThetaLab.push_back(random_ThetaLab/deg); + //ThetaLab.push_back(exp_ThetaLab/deg); + Ex.push_back(dEx); + } + + // Treatment of different hit in one detector due to neutron scattering + for(int i=0; i<m_ChiNu->Energy.size(); i++){ + for(unsigned int j=0; j<IntCoord_mult; j++) + {// Associates with each recorded hit the full scattering pattern of the simulated neutron. + // At a later step, the position of each scattering point is compared with the size of the + // detector to determine if the hit was inside the detector or not. + double Rdet, R; + + TVector3 DetPos = m_ChiNu->GetVectorDetectorPosition(m_ChiNu->DetectorNumber[i]); + TVector3 HitPos = DetPos-TargetPos; + + Rdet = DetPos.Mag() ; + R= Rdet*mm; + Distance_InCell.push_back(R); + Det_InCell.push_back(m_ChiNu->DetectorNumber[i]); + T_InCell.push_back(m_ChiNu->Time[i]); + + double T_stop = (m_ChiNu->Time[i]); + neutron->SetBeta( (Rdet/T_stop) / c_light); + + E_InCell.push_back(m_ChiNu->Energy[i]); + Elab_InCell.push_back(neutron->GetEnergy()); + + double HitX = InteractionCoordinates->GetDetectedPositionX(j); + double HitY = InteractionCoordinates->GetDetectedPositionY(j); + double HitZ = InteractionCoordinates->GetDetectedPositionZ(j); + double HitE = InteractionCoordinates->GetEnergy(j); + double HitT = InteractionCoordinates->GetTime(j); + + double DetectorX = DetPos.X(); + double DetectorY = DetPos.Y(); + double DetectorZ = DetPos.Z(); + R = DetPos.Mag(); + + TVector3 Xaxis(DetectorZ*1./R,0,-DetectorX*1./R); + TVector3 Yaxis(DetectorY*1./R*Xaxis.Z() , DetectorZ*1./R*Xaxis.X() - DetectorX*1./R*Xaxis.Z(), Xaxis.X()*DetectorY*1./R ); + + // scalar product to get the vector projection along the central detector axis: + double InCellDepth = ( (HitX-DetectorX)*DetectorX + (HitY-DetectorY)*DetectorY + (HitZ-DetectorZ)*DetectorZ ) *1./R; + double uProjX = DetectorX * (1 + InCellDepth*1./R); // Projection of hit point on the detector central axis, axis X + double uProjY = DetectorY * (1 + InCellDepth*1./R); // Projection of hit point on the detector central axis, axis Y + double uProjZ = DetectorZ * (1 + InCellDepth*1./R); // Projection of hit point on the detector central axis, axis Z + + // Radial distance of the hit point to the detector central axis: + double InCellRadius = sqrt( pow(HitX - uProjX,2) + pow(HitY - uProjY,2) + pow(HitZ - uProjZ,2) ); + double InCellHit_X = ( (HitX-DetectorX)*Xaxis.X() + (HitY-DetectorY)*Xaxis.Y() + (HitZ-DetectorZ)*Xaxis.Z() ); + double InCellHit_Y = ( (HitX-DetectorX)*Yaxis.X() + (HitY-DetectorY)*Yaxis.Y() + (HitZ-DetectorZ)*Yaxis.Z() ); + + InCellHitDepth.push_back(InCellDepth); + InCellHitRadius.push_back(InCellRadius); + InCellHitEnergy.push_back(HitE); + InCellHitTime.push_back(HitT); + InCellHitX.push_back(InCellHit_X); + InCellHitY.push_back(InCellHit_Y); + + neutron->SetBeta( (R/HitT) / c_light ); + InCellHitEnToF.push_back(neutron->GetEnergy()); + } } } @@ -104,17 +168,34 @@ void Analysis::InitOutputBranch() { RootOutput::getInstance()->GetTree()->Branch("T",&T); RootOutput::getInstance()->GetTree()->Branch("Distance",&Distance); RootOutput::getInstance()->GetTree()->Branch("Det",&Det); + + // InCellPosition + RootOutput::getInstance()->GetTree()->Branch("Elab_InCell",&Elab_InCell); + RootOutput::getInstance()->GetTree()->Branch("E_InCell",&E_InCell); + RootOutput::getInstance()->GetTree()->Branch("T_InCell",&T_InCell); + RootOutput::getInstance()->GetTree()->Branch("Distance_InCell",&Distance_InCell); + RootOutput::getInstance()->GetTree()->Branch("Det_InCell",&Det_InCell); + + RootOutput::getInstance()->GetTree()->Branch("InCellHitMultiplicity",&InCellHitMultiplicity); + RootOutput::getInstance()->GetTree()->Branch("InCellHitDepth",&InCellHitDepth); + RootOutput::getInstance()->GetTree()->Branch("InCellHitRadius",&InCellHitRadius); + RootOutput::getInstance()->GetTree()->Branch("InCellHitEnergy",&InCellHitEnergy); + RootOutput::getInstance()->GetTree()->Branch("InCellHitTime",&InCellHitTime); + RootOutput::getInstance()->GetTree()->Branch("InCellHitEnToF",&InCellHitEnToF); + RootOutput::getInstance()->GetTree()->Branch("InCellHitX",&InCellHitX); + RootOutput::getInstance()->GetTree()->Branch("InCellHitY",&InCellHitY); } //////////////////////////////////////////////////////////////////////////////// void Analysis::InitInputBranch(){ RootInput:: getInstance()->GetChain()->SetBranchStatus("InitialConditions",true ); - RootInput:: getInstance()->GetChain()->SetBranchStatus("fIC_*",true ); RootInput:: getInstance()->GetChain()->SetBranchAddress("InitialConditions",&InitialConditions); RootInput:: getInstance()->GetChain()->SetBranchStatus("ReactionConditions",true ); - RootInput:: getInstance()->GetChain()->SetBranchStatus("fRC_*",true ); RootInput:: getInstance()->GetChain()->SetBranchAddress("ReactionConditions",&ReactionConditions); + + RootInput:: getInstance()->GetChain()->SetBranchStatus("InteractionCoordinates",true ); + RootInput:: getInstance()->GetChain()->SetBranchAddress("InteractionCoordinates",&InteractionCoordinates); } //////////////////////////////////////////////////////////////////////////////// @@ -127,6 +208,20 @@ void Analysis::ReInitValue(){ T.clear(); Distance.clear(); Det.clear(); + + Elab_InCell.clear(); + E_InCell.clear(); + T_InCell.clear(); + Distance_InCell.clear(); + Det_InCell.clear(); + + InCellHitDepth.clear(); + InCellHitRadius.clear(); + InCellHitEnergy.clear(); + InCellHitTime.clear(); + InCellHitEnToF.clear(); + InCellHitX.clear(); + InCellHitY.clear(); } //////////////////////////////////////////////////////////////////////////////// diff --git a/Projects/ChiNu/Analysis.h b/Projects/ChiNu/Analysis.h old mode 100644 new mode 100755 index 1be6229361fbab9ae175df3f0e61bb0b8916d2a8..bd163c1128e483dbfb9c5e548b3e6d0adf362bac --- a/Projects/ChiNu/Analysis.h +++ b/Projects/ChiNu/Analysis.h @@ -53,6 +53,22 @@ private: vector<double> T; vector<double> Distance; vector<int> Det; + + vector<double> Elab_InCell; + vector<double> E_InCell; + vector<double> T_InCell; + vector<double> Distance_InCell; + vector<int> Det_InCell; + + int InCellHitMultiplicity; + vector<double> InCellHitDepth; + vector<double> InCellHitRadius; + vector<double> InCellHitX; + vector<double> InCellHitY; + vector<double> InCellHitEnergy; + vector<double> InCellHitTime; + vector<double> InCellHitEnToF; + private: TChiNuPhysics* m_ChiNu; diff --git a/Projects/ChiNu/CMakeLists.txt b/Projects/ChiNu/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/Projects/ChiNu/PhysicsListOption.txt b/Projects/ChiNu/PhysicsListOption.txt old mode 100644 new mode 100755 diff --git a/Projects/ChiNu/chinu.detector b/Projects/ChiNu/chinu.detector old mode 100644 new mode 100755 index 152b2dd9c346903cae81b13c8691653676de823f..158b37a2e3bc309d4b8b54195e7906f703d35002 --- a/Projects/ChiNu/chinu.detector +++ b/Projects/ChiNu/chinu.detector @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Alias Theta Action= Copy - Value= 30 45 60 75 90 105 120 135 150 + Value= 150 135 120 105 90 75 60 45 30 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Alias Phi Action= Copy @@ -9,12 +9,15 @@ Alias Phi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ChiNu R= 1000 mm - THETA= @Theta deg + % 252Cf run 167 average resolution : 0.723ns + % 235U run 109 average resolution : 1.0ns + TimeResolution= 0.723 ns PHI= @Phi deg + THETA= @Theta deg LeadShield= 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FissionChamber POS= 0 0 0 mm GasMaterial= CF4 - Pressure= 1 bar + Pressure= 0.9 bar