//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Temporary class PLUG_CALORIMETER2 (to avoid clashes with class in Calor) // Will be removed soon when new geometry is fully functional //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // -*- Mode: C++ -*- //------------------------------------------------------------------------------ // revision history: // ----------------- // *0001 Feb 22 1997 P.Murat: move G3Volume to GEOM area // add Used flag // *0002 Oct 20 1997 J.Lamoureux: changed pcal to plug_calorimeter // *0006 Mar 20 1998 J.Lamoureux: Use Level hook // *0007 Nov 18 1998 P.Murat: fix problem with missing plug //------------------------------------------------------------------------------ #ifndef __PLUG_CALORIMETER2_HH__ #define __PLUG_CALORIMETER2_HH__ #ifndef __G3_VOLUME_HH__ #include "Geometry/G3Volume.hh" #endif #ifndef __POBJECT_HH__ #include "evt/PObject.hh" #endif // forward declaration for PEM_VOLUME // and PHA_VOLUME class PLUG2; class PEM_VOLUME2 : public G3_PCON { protected: int GeomLevel; public: G3_VOLUME PemActiveSuperLayer[23]; G3_VOLUME PemActivePlasticA[23]; G3_VOLUME PemActivePlasticB[23]; G3_VOLUME PemActiveScint[23]; G3_VOLUME PemAbsorbSuperLayer[23]; G3_VOLUME PemAbsorbInoxA[23]; G3_VOLUME PemAbsorbInoxB[23]; G3_VOLUME PemAbsorbLead[23]; G3_VOLUME PemSmaxSuperLayer; G3_VOLUME PemSmaxLexanA; G3_VOLUME PemSmaxLexanB; G3_VOLUME PemSmaxScint; G3_VOLUME PemSupportCone; PEM_VOLUME2(); ~PEM_VOLUME2(); int initGeometry(int geomLevel, PLUG2* mother); }; class PHA_VOLUME2 : public G3_PCON { protected: int GeomLevel; public: G3_VOLUME PhaActiveSuperLayer[22]; G3_VOLUME PhaActiveAluminumA[22]; G3_VOLUME PhaActiveAluminumB[22]; G3_VOLUME PhaActivePlastic[22]; G3_VOLUME PhaActiveScint[22]; G3_VOLUME PhaAbsorbSuperLayer[23]; G3_VOLUME PhaAbsorbMaterial[23]; PHA_VOLUME2(); ~PHA_VOLUME2(); int initGeometry(int geomLevel, PLUG2* mother); }; class PLUG2 : public G3_PCON { //------------------------------------------------------------------------------ // data members //------------------------------------------------------------------------------ protected: int fNumber; G3_TUBE SteelVolume; PEM_VOLUME2 PemVolume; PHA_VOLUME2 PhaVolume; //------------------------------------------------------------------------------ // function members //------------------------------------------------------------------------------ public: PLUG2(); ~PLUG2(); int initGeometry(int geomLevel); // ****** data access methods int Number () { return fNumber; } // ****** setters void SetNumber(int i) { fNumber = i; } }; class PLUG_CALORIMETER2 : public POBJECT { //------------------------------------------------------------------------------ // data members //------------------------------------------------------------------------------ protected: PLUG2 Module[2]; // materials used by QFL/GFLASH int fMaterialPem; int fMaterialPha; int fMaterialMst; // tracking media int fTmedPlug; int fTmedPem; int fTmedPha; int fTmedPst; // `mst' stands for miscellaneous steel, // used by Jim Bellinger int fTmedMst; // materials used by the detailed Plug int fMaterialPlugInox; int fMaterialPlugScint; int fMaterialPlugPlast; int fMaterialPlugLexan; // tracking media for the detailed Plug int fTmedPlugAir; int fTmedPlugLead; int fTmedPlugInox; int fTmedPlugEMScint; int fTmedPlugHAScint; int fTmedPlugPSDScint; int fTmedPlugSMDScint; int fTmedPlugPlast; int fTmedPlugAl; int fTmedPlugIron; int fTmedPlugLexan; //------------------------------------------------------------------------------ // function members //------------------------------------------------------------------------------ public: // ****** constructors PLUG_CALORIMETER2(); // global initialization routine int init(int geomLevel); // initalize geometry, `level' defines // the level of detalization int initGeometry(int geomLevel); // ****** data access methods PLUG2* module(int i) { return &Module[i]; } int MaterialPem() { return fMaterialPem; } int MaterialPha() { return fMaterialPha; } int MaterialMst() { return fMaterialMst; } int TmedPem() { return fTmedPem; } int TmedPha() { return fTmedPha; } int TmedPst() { return fTmedPst; } int TmedMst() { return fTmedMst; } int MaterialPlugInox() { return fMaterialPlugInox; } int MaterialPlugScint() { return fMaterialPlugScint; } int MaterialPlugPlast() { return fMaterialPlugPlast; } int MaterialPlugLexan() { return fMaterialPlugLexan; } int TmedPlugAir() { return fTmedPlugAir; } int TmedPlugLead() { return fTmedPlugLead; } int TmedPlugInox() { return fTmedPlugInox; } int TmedPlugEMScint() { return fTmedPlugEMScint; } int TmedPlugHAScint() { return fTmedPlugHAScint; } int TmedPlugPSDScint() { return fTmedPlugPSDScint; } int TmedPlugSMDScint() { return fTmedPlugSMDScint; } int TmedPlugPlast() { return fTmedPlugPlast; } int TmedPlugAl() { return fTmedPlugAl; } int TmedPlugIron() { return fTmedPlugIron; } int TmedPlugLexan() { return fTmedPlugLexan; } // ****** setters }; #endif