//------------------------------------------------------------------------------ // Created on Feb 1 2000 by Elena Gerchtein (lena@fnal.gov) // // $Author: lena $ // $Date: 2000/06/13 20:52:16 $ // $Id: Miniplug_calorimeter.hh,v 1.2 2000/06/13 20:52:16 lena Exp $ //------------------------------------------------------------------------------ #ifndef __MINIPLUG_CALORIMETER_HH__ #define __MINIPLUG_CALORIMETER_HH__ #ifndef __G3_VOLUME_HH__ #include "Geometry/G3Volume.hh" #endif #ifndef __POBJECT_HH__ #include "evt/PObject.hh" #endif // forward declaration class MINIPLUG; class MINIPLUG_SCINT_VOLUME : public G3_TUBE { protected: int GeomLevel; public: G3_VOLUME MiniplugScintTube; G3_VOLUME MiniplugScintEnd; G3_VOLUME MiniplugScintEndT; G3_VOLUME MiniplugScintLayer; G3_VOLUME MiniplugScintLayerT; G3_VOLUME MiniplugAlum1; G3_VOLUME MiniplugAlum2; G3_VOLUME MiniplugEpoxy1; G3_VOLUME MiniplugEpoxy2; G3_VOLUME MiniplugPbPlate; G3_VOLUME MiniplugAlum1T; G3_VOLUME MiniplugAlum2T; G3_VOLUME MiniplugEpoxy1T; G3_VOLUME MiniplugEpoxy2T; G3_VOLUME MiniplugPbPlateT; G3_VOLUME MiniplugAlPlate; G3_VOLUME MiniplugHole; G3_VOLUME MiniplugFAl1; G3_VOLUME MiniplugHAl1; G3_VOLUME MiniplugFEp1; G3_VOLUME MiniplugHEp1; G3_VOLUME MiniplugFPbP; G3_VOLUME MiniplugHPbP; G3_VOLUME MiniplugFAl2; G3_VOLUME MiniplugHAl2; G3_VOLUME MiniplugFEp2; G3_VOLUME MiniplugHEp2; G3_VOLUME MiniplugFSLa; G3_VOLUME MiniplugTowerR; G3_VOLUME MiniplugTower; G3_VOLUME MiniplugRodSmall; G3_VOLUME MiniplugRodBig; G3_VOLUME MiniplugWasherSmall; G3_VOLUME MiniplugWasherBig; MINIPLUG_SCINT_VOLUME(); ~MINIPLUG_SCINT_VOLUME(); int initGeometry(int geomLevel, MINIPLUG* mother); }; class MINIPLUG : public G3_TUBE { //------------------------------------------------------------------------------ // data members //------------------------------------------------------------------------------ protected: int fNumber; G3_TUBE MiniplugAlumFront; G3_TUBE MiniplugAlumEnd; G3_TUBE MiniplugAlumInnerTube; G3_TUBE MiniplugSteelOuterTube; G3_TUBE MiniplugBigSteelTube; G3_TUBE MiniplugSmallSteelTube; G3_VOLUME MiniplugFiber[1512]; MINIPLUG_SCINT_VOLUME MiniplugScintVolume; //------------------------------------------------------------------------------ // function members //------------------------------------------------------------------------------ public: MINIPLUG(); ~MINIPLUG(); int initGeometry(int geomLevel); // ****** data access methods int Number () { return fNumber; } // ****** setters void SetNumber(int i) { fNumber = i; } }; class MINIPLUG_CALORIMETER : public POBJECT { //------------------------------------------------------------------------------ // data members //------------------------------------------------------------------------------ protected: MINIPLUG Module[2]; // materials used by QFL/GFLASH int fMaterialMiniplug; // tracking media int fTmedMiniplug; // materials used by the detailed Miniplug int fMaterialMiniplugScint; int fMaterialMiniplugEpoxy; int fMaterialMiniplugSteel; int fMaterialMiniplugFiber; // tracking media for the detailed Miniplug int fTmedMiniplugAir; int fTmedMiniplugLead; int fTmedMiniplugScint; int fTmedMiniplugEpoxy; int fTmedMiniplugAl; int fTmedMiniplugSteel; int fTmedMiniplugFiber; //------------------------------------------------------------------------------ // function members //------------------------------------------------------------------------------ public: // ****** constructors MINIPLUG_CALORIMETER(); ~MINIPLUG_CALORIMETER(){} // global initialization routine int init(int geomLevel); // initalize geometry, `level' defines // the level of detalization int initGeometry(int geomLevel); // ****** data access methods MINIPLUG* module(int i) { return &Module[i]; } int MaterialMiniplug() { return fMaterialMiniplug; } int TmedMiniplug() { return fTmedMiniplug; } int MaterialMiniplugScint() { return fMaterialMiniplugScint; } int MaterialMiniplugEpoxy() { return fMaterialMiniplugEpoxy; } int MaterialMiniplugSteel() { return fMaterialMiniplugSteel; } int TmedMiniplugAir() { return fTmedMiniplugAir; } int TmedMiniplugLead() { return fTmedMiniplugLead; } int TmedMiniplugScint() { return fTmedMiniplugScint; } int TmedMiniplugEpoxy() { return fTmedMiniplugEpoxy; } int TmedMiniplugAl() { return fTmedMiniplugAl; } int TmedMiniplugSteel() { return fTmedMiniplugSteel; } // ****** setters }; #endif