#ifndef FCALDetectorConstruction_h #define FCALDetectorConstruction_h 1 #include "globals.hh" #include "G4VUserDetectorConstruction.hh" class G4VPhysicalVolume; class G4LogicalBorderSurface; class FCALDetectorConstruction : public G4VUserDetectorConstruction { public: FCALDetectorConstruction(G4int row, G4int column, G4int LGs, G4double zLG, G4double hPlexi, G4int Agap); ~FCALDetectorConstruction(); public: G4VPhysicalVolume* Construct(); G4int getRows() { return n_Rows; } G4int getColumns() { return n_Columns; } G4double getXLength() { return x_FoilThick; } G4double getYLength() { return y_FoilThick; } G4double getzLG() { return zGlass; } G4double getzplexy() { return h_PlexiGlass; } G4int getAirgap() { return Airgap; } private: G4int n_Rows, n_Columns, n_Cells; G4int LGshift; // if 1 shift every other row of lead glass blocks by half the width of a block G4double front_Space; G4double zGlass; G4double zLightGuide; G4int Airgap; G4double x_World, y_World, z_World; // for the World volume G4double x_LeadGlass, y_LeadGlass, z_LeadGlass; // for the LeadGlass G4double x_AirGap, y_AirGap, z_AirGap; // for the air gap of the leadglass G4double x_FoilThick, y_FoilThick, z_FoilThick; // for the aluminum foil thickness G4double r_Min, r_Max, angle_Min, angle_Max; // for the common radii and angles G4double r_cathode, r_FoilMax, r_AirMax; // for the cathode radius and the aluminum foil radius // length of silicon cookie, platic light guide, // PMT entrance window, PMT photo cathode G4double h_Cookie, h_PlexiGlass, h_PMTGlass, h_Cathode; G4double h_Total; // total length of light guide assembly }; # endif /*FCALDetectorConstruction_h*/