#ifndef AnalysisManager_h #define AnalysisManager_h 1 #include "G4ThreeVector.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleTypes.hh" #include "G4SystemOfUnits.hh" #include "globals.hh" class TFile; class TH1D; class TH2D; class TTree; class AnalysisMessenger; class AnalysisManager { public: AnalysisManager (); virtual ~AnalysisManager (); public: void BeginOfRun(); void EndOfRun(); void SetFileName(G4String filename) {fileName = filename;}; void SetGamma1(G4double fGamma1) {Gamma1 = fGamma1;}; void SetGamma2(G4double fGamma2) {Gamma2 = fGamma2;}; void SetCapFragIonA(G4double fCapFragIonA) {CapFragIonA = fCapFragIonA;}; void SetCapFragIonZ(G4double fCapFragIonZ) {CapFragIonZ = fCapFragIonZ;}; void SetFragIonA1(G4double fFragIonA1) {FragIonA1 = fFragIonA1;}; void SetFragIonZ1(G4double fFragIonZ1) {FragIonZ1 = fFragIonZ1;}; void SetFragIonA2(G4double fFragIonA2) {FragIonA2 = fFragIonA2;}; void SetFragIonZ2(G4double fFragIonZ2) {FragIonZ2 = fFragIonZ2;}; void SetAllEventFlag(G4bool AllEventFlag) {fAllEventFlag = AllEventFlag;}; void SetZintTreeFlag(G4bool ZintTreeFlag) {fZintTreeFlag = ZintTreeFlag;}; void SetEpTreeFlag(G4bool EpTreeFlag) {fEpTreeFlag = EpTreeFlag;}; void SetEgammacascadeTreeFlag(G4bool EgammacascadeTreeFlag) {fEgammacascadeTreeFlag = EgammacascadeTreeFlag;}; void SetEgammaTreeFlag(G4bool EgammaTreeFlag) {fEgammaTreeFlag = EgammaTreeFlag;}; void SetPgammaTreeFlag(G4bool PgammaTreeFlag) {fPgammaTreeFlag = PgammaTreeFlag;}; void SetEdepTreeFlag(G4bool EdepTreeFlag) {fEdepTreeFlag = EdepTreeFlag;}; void ClearVariables(); void FillhGeTotEdep(G4double,G4double,G4int,G4int,G4int,G4double,G4double); void FillHistogramsAndTree(); void FillhPrimaries(G4ThreeVector,G4double,G4ThreeVector); void FillhSecondaries(G4int,G4double*,G4ThreeVector*,G4ParticleDefinition**,G4double*,G4ThreeVector*,G4ThreeVector*,G4ParticleDefinition**,G4int*,G4int*,G4double*,G4double*); private: G4String fileName; G4String fileType; TFile* rootFile; //G4double totE_Ge[2]; G4double totEGauss_Ge[2]; std::vector Egamma_1st; std::vector temp; std::vector totE_Ge {0,0}; std::vector Z_interaction; std::vector GammaKinEne; std::vector PrimGammaKinEne; std::vector PrimGammaMomx; std::vector PrimGammaMomy; std::vector PrimGammaMomz; std::vector Z_energy; std::vector BeamX; std::vector BeamY; std::vector BeamZ; std::vector BeamKinE; std::vector BeamTheta; G4ThreeVector MomSrcGamma[2]; G4ThreeVector MomIon[2]; G4ParticleDefinition *DefIon[2]; G4ThreeVector MomCapIon[2]; G4ParticleDefinition *DefCapIon[2]; G4ThreeVector MomCapGamma[100]; G4double Gamma1; G4double Gamma2; G4double CapFragIonA; G4double CapFragIonZ; G4double FragIonA1; G4double FragIonZ1; G4double FragIonA2; G4double FragIonZ2; G4bool fAllEventFlag; G4bool fZintTreeFlag; G4bool fEpTreeFlag; G4bool fEgammacascadeTreeFlag; G4bool fEgammaTreeFlag; G4bool fPgammaTreeFlag; G4bool fEdepTreeFlag; // EventAction TH1D *hCodes; TH1D *hGeTotEdep[2]; TH1D *hGeTotEdepGauss[2]; TH1D *hSecGammaKinE; TH2D *hSecGammaKinEVSParKinE; TH2D *hParPosZVSSecKinE; TH2D *hParPosZVSParKinE; TH1D *hSrcGGCosTheta; TH1D *hParPosZ; TH1D *hParKinEne; TH2D *hKinEFragIon1VSKinEFragIon2; TH2D *hthetaFragIon1VSKinEFragIon1; TH2D *hthetaFragIon2VSKinEFragIon2; TH2D *hKinECapGammaVSKinECapFragIon; TH2D *hthetaCapGammaVSKinECapGamma; TH2D *hthetaCapFragIonVSKinECapFragIon; // PrimaryGeneratorAction TH2D *hPrimaryXvsY; TH1D *hPrimaryZ; TH1D *hPrimarykinE; TH1D *hPrimaryDiv; TTree *tree1; AnalysisMessenger* analysisMessenger; }; #endif