00001 //---------------------------------------------------------------------------// 00002 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu// 00003 // // 00004 // MAJORANA Simulation // 00005 // // 00006 // This code implementation is the intellectual property of the // 00007 // MAJORANA Collaboration. It is based on Geant4, an intellectual // 00008 // property of the RD44 GEANT4 collaboration. // 00009 // // 00010 // ********************* // 00011 // // 00012 // Neither the authors of this software system, nor their employing // 00013 // institutes, nor the agencies providing financial support for this // 00014 // work make any representation or warranty, express or implied, // 00015 // regarding this software system or assume any liability for its use. // 00016 // By copying, distributing or modifying the Program (or any work based // 00017 // on on the Program) you indicate your acceptance of this statement, // 00018 // and all its terms. // 00019 // // 00020 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu// 00021 //---------------------------------------------------------------------------// 00032 // Begin description of class here 00038 // End class description 00039 // 00044 // 00045 // --------------------------------------------------------------------------// 00059 // --------------------------------------------------------------------------// 00060 00061 #ifndef _MJOUTPUTLANLCLOVER_HH 00062 #define _MJOUTPUTLANLCLOVER_HH 00063 00064 //---------------------------------------------------------------------------// 00065 00066 #include "TMath.h" 00067 #include "TObject.h" 00068 00069 #include "globals.hh" 00070 00071 #include "io/MJOutputRoot.hh" 00072 #include "io/MJOutputLANLCloverDataNoPS.hh" 00073 00074 //---------------------------------------------------------------------------// 00075 00080 class MJOutputLANLClover: public MJOutputRoot 00081 { 00082 public: 00083 00084 //default constructor 00085 MJOutputLANLClover(G4String serNum, G4bool isMother); 00086 00087 //destructor 00088 ~MJOutputLANLClover(); 00089 00090 //public interface 00091 //MJOutputRoot inherited virtual functions. 00092 void DefineSchema(); 00093 void BeginOfEventAction(const G4Event *event); 00094 void BeginOfRunAction(); 00095 void EndOfEventAction(const G4Event *event); 00096 void EndOfRunAction(); 00097 void RootSteppingAction(const G4Step *step); 00098 00099 //protected members 00100 protected: 00101 00102 00103 //private members 00104 private: 00105 00106 // X coordinates of planes that separate L, M, and R segments. 00107 G4double fMRPlaneX; 00108 G4double fLMPlaneX; 00109 00110 // Accumulator for energy deposits. 00111 // Use G4double for this, since we will accumulate many small 00112 // contributions and do not want round-off errors to accumulate. 00113 // Typecast when saved. 00114 G4double fE1_MC, fE2_MC, fE3_MC, fE4_MC, fPl_MC, fPm_MC, fPr_MC; 00115 00116 G4double fInverseCalibrationA[7], fCalibrationB[7]; 00117 G4double fStandardDeviationA[7], fStandardDeviationB[7]; 00118 00119 G4String fSerialNumber; // Serial number of detector being simulated. 00120 MJOutputLANLCloverDataNoPS *fTreePointer; // Pointer to Root tree 00121 size_t fSensitiveMaterialIndex; 00122 // Material in which to perform stepping action. 00123 00128 Float_t ConvertEnergyToBin(Float_t edep, const Int_t channel); 00129 00130 }; 00131 00132 #endif