#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 ClearVariables(); void FillhGeTotEdep(G4double,G4double,G4int,G4int,G4int); void FillHistogramsAndTree(); void FillhPrimaries(G4ThreeVector,G4double,G4ThreeVector); void FillhSecondaries(G4int,G4double*,G4ThreeVector*,G4ParticleDefinition**,G4double*,G4ThreeVector*,G4ThreeVector*,G4ParticleDefinition**); private: G4String fileName; G4String fileType; TFile* rootFile; //G4double totE_Ge[2]; G4double totEGauss_Ge[2]; std::vector totE_Ge {0,0}; 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; // EventAction TH1D *hCodes; TH1D *hGeTotEdep[2]; TH1D *hGeTotEdepGauss[2]; TH1D *hParPosZ; TH1D *hSecGammaKinE; TH2D *hSecGammaKinEVSParKinE; TH2D *hParPosZVSSecKinE; TH1D *hSrcGGCosTheta; 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