Commit 698dc472 authored by Alex Ciabattoni's avatar Alex Ciabattoni
Browse files

DEE geometry added

parent 602a488b
Loading
Loading
Loading
Loading
+1007 −0

File added.

Preview size limit exceeded, changes collapsed.

+114 −0
Original line number Diff line number Diff line
/***************************************************************************
                          GeometryCOSI_DEE.hh    
    description:          Mass model of COSI ACS, based on mass model in 
                          MEGAlib for the balloon
                             -------------------
    begin                : 2023
    Authors              : A. Ciabattoni (INAF OAS Bologna) alex.ciabattoni@inaf.it
  
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software for non commercial purpose              *
 *   and for public research institutes; you can redistribute it and/or    *
 *   modify it under the terms of the GNU General Public License.          *
 *   For commercial purpose see appropriate license terms                  *
 *                                                                         *
 ***************************************************************************/

#ifndef GeometryCOSI_DEE_H
#define GeometryCOSI_DEE_H
#include "globals.hh"


class G4LogicalVolume;
class G4VPhysicalVolume;
class G4Material;
class G4Region;
class G4UserLimits;

#include "G4VisAttributes.hh"
#include "G4VUserDetectorConstruction.hh"
#include "G4LogicalVolume.hh"
#include "G4VPhysicalVolume.hh"
#include "G4PVPlacement.hh"
#include "G4PVReplica.hh"
#include "G4Material.hh"
#include "G4SubtractionSolid.hh"
#include "G4IntersectionSolid.hh"
#include "G4UnionSolid.hh"
#include "G4Region.hh"
#include "G4RegionStore.hh"
#include "G4Element.hh"
#include "G4SDManager.hh"
#include "G4RunManager.hh"
#include "MaterialsDefinition.hh"

#include "G4PhysicalVolumeStore.hh"
#include "G4LogicalVolumeStore.hh"
#include "G4SolidStore.hh"

#include "G4VisAttributes.hh"
#include "G4Colour.hh"

//Factory
#include "GeoClassFactory.hh"


class GeometryCOSI_DEE: public G4VUserDetectorConstruction {
public:

    GeometryCOSI_DEE();
    ~GeometryCOSI_DEE();

    G4VPhysicalVolume* Construct();
    void SetPhysicalWorld(G4VPhysicalVolume* World_phys);
    void DefineMaterials();
    G4VPhysicalVolume* ConstructGeometry(G4VPhysicalVolume* World_phys);

protected:

    void DefineSensitiveDetector();
    MaterialsDefinition* materials;

    // World
    //Physical Volumes
    G4VPhysicalVolume* World_phys;
    G4LogicalVolume* World_log;

    //Materials

    G4Material* chamber_mat;
    G4Material* CsI_mat;
    G4Material* SiPad_mat;
    G4Material* boro_glass_mat;
    G4Material* bialkali_mat;        
    G4Material* Al_mat;
    G4Material* PMTInside_mat;
    G4Material* bgo_mat;
    G4Material* ej560_mat;
    G4Material* refl1_mat;
    G4Material* refl2_mat;
    G4Material* refl3_mat;
    G4Material* SiPM_mat;
    G4Material* sy184_mat;
    G4Material* tefl_mat;
    G4Material* plastic_mat;
    G4Material* wood_mat;
    G4Material* wood2_mat;
    G4Material* coll_mat;
    G4Material* glass_mat;
    G4Material* coat_mat;
    G4Material* foam_mat;
    G4Material* rubber_mat;
    G4Material* steel_mat;
    G4Material* peek_mat;

private:
    
    G4UserLimits* target_limit;            // pointer to user step limits
    static DerivedRegister<GeometryCOSI_DEE> reg;
};

#endif