diff --git a/INSTALL b/INSTALL index 35f9cbaf7fa3ac1fe9affbd6c6f43e1e69b91a2e..b916ea7c8a32ef403053b83d34a5064acbdd693a 100644 --- a/INSTALL +++ b/INSTALL @@ -28,9 +28,10 @@ I) REQUIREMENTS II) WORKING CONFIGURATIONS The NPTool package has been mainly tested (and developped) with - the two following configurations: + the following configurations: 1) Mac OS X (10.5.7) + G4 (4.9.2) + CLHEP (2.0.4.2) + ROOT (5.22/00 and 5.24/00) + GSL () 2) Linux Fedora (kernel 2.6.29) + G4 (4.9.1p3) + CLHEP (2.0.4.2) + ROOT (5.22/00) + GSL (1.12) + 3) Linux Fedora (kernel 2.6.29) + G4 (4.9.2p2) + CLHEP (2.0.4.2) + ROOT (5.25/02) + GSL (1.12) Please, report any working or non-working configuration. III) INSTALLATION diff --git a/NPLib/DummyDetector/Makefile b/NPLib/DummyDetector/Makefile new file mode 100755 index 0000000000000000000000000000000000000000..1d864a05a5312e340ec75ed81070789f66fa289f --- /dev/null +++ b/NPLib/DummyDetector/Makefile @@ -0,0 +1,302 @@ +# Makefile for the ROOT test programs. +# This Makefile shows nicely how to compile and link applications +# using the ROOT libraries on all supported platforms. +# +# Copyright (c) 2000 Rene Brun and Fons Rademakers +# +# Author: Fons Rademakers, 29/2/2000 + +ROOTCONFIG := root-config + +ARCH := $(shell $(ROOTCONFIG) --arch) +PLATFORM := $(shell $(ROOTCONFIG) --platform) +ALTCC := $(shell $(ROOTCONFIG) --cc) +ALTCXX := $(shell $(ROOTCONFIG) --cxx) +ALTF77 := $(shell $(ROOTCONFIG) --f77) +ALTLD := $(shell $(ROOTCONFIG) --ld) + +#CXX = +ObjSuf = o +SrcSuf = cxx +ExeSuf = +DllSuf = so +OutPutOpt = -o # keep whitespace after "-o" + +ifeq (debug,$(findstring debug,$(ROOTBUILD))) +OPT = -g +OPT2 = -g +else +ifneq ($(findstring debug, $(strip $(shell $(ROOTCONFIG) --config))),) +OPT = -g +OPT2 = -g +else +OPT = -O +OPT2 = -O2 +endif +endif + +ROOTCFLAGS := $(shell $(ROOTCONFIG) --cflags) +ROOTLDFLAGS := $(shell $(ROOTCONFIG) --ldflags) +ROOTLIBS := $(shell $(ROOTCONFIG) --libs) +ROOTGLIBS := $(shell $(ROOTCONFIG) --glibs) +HASTHREAD := $(shell $(ROOTCONFIG) --has-thread) +ROOTDICTTYPE := $(shell $(ROOTCONFIG) --dicttype) +NOSTUBS := $(shell $(ROOTCONFIG) --nostubs) +ROOTCINT := rootcint + +ifeq ($(ARCH),linux) +# Linux with egcs, gcc 2.9x, gcc 3.x +CXX = g++ +CXXFLAGS = $(OPT2) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT2) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxkcc) +# Linux with the KAI compiler +CXX = KCC --one_instantiation_per_object +CXXFLAGS = $(OPT) -fPIC +K0 +LD = KCC +LDFLAGS = $(OPT) $(shell $(ROOTCONFIG) --cflags) +SOFLAGS = +endif + +ifeq ($(ARCH),linuxicc) +# Linux with Intel icc compiler +ICC_MAJOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \ + cut -d'.' -f1) +ICC_MINOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \ + cut -d'.' -f2) +CXX = icc +CXXFLAGS = $(OPT) -fPIC -wd1476 +LD = icpc +LDFLAGS = $(OPT) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxppcgcc) +# PPC Linux with gcc and glibc +CXX = g++ +CXXFLAGS = $(OPT2) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT2) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxia64gcc) +# Itanium Linux with gcc 2.9x +CXX = g++ +CXXFLAGS = $(OPT2) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT2) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxia64sgi) +# Itanium Linux with sgiCC +CXX = sgiCC +CXXFLAGS = $(OPT) -Wall -fPIC +LD = gsgiCC +LDFLAGS = $(OPT) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxia64ecc) +# Itanium Linux with Intel icc (was ecc) +ICC_MAJOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \ + cut -d'.' -f1) +ICC_MINOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \ + cut -d'.' -f2) +CXX = icc +CXXFLAGS = $(OPT) -fPIC -wd1476 -ftz +LD = icpc +LDFLAGS = $(OPT) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxx8664gcc) +# AMD Opteron and Intel EM64T (64 bit mode) Linux with gcc 3.x +CXX = g++ +CXXFLAGS = $(OPT2) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT2) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxppc64gcc) +# PPC64 Linux with gcc 3.x +CXX = g++ +CXXFLAGS = $(OPT) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxx8664icc) +# AMD Opteron and Intel EM64T (64 bit mode) Linux with Intel icc compiler +CXX = icc +CXXFLAGS = $(OPT) -fPIC -wd1476 -wd1572 +LD = icpc +LDFLAGS = $(OPT) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxalphagcc) +# Alpha Linux with gcc +CXX = g++ +CXXFLAGS = $(OPT2) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT2) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxmips) +# GNU/Linux on mips (BE/LE, O32/N32/N64) with gcc +CXX = g++ +CXXFLAGS = $(OPT2) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT2) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxhppa) +# GNU/Linux on hppa with gcc +CXX = g++ +CXXFLAGS = $(OPT2) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT2) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),linuxarm) +# ARM Linux with egcs +CXX = g++ +CXXFLAGS = $(OPT) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),macosx) +# MacOS X with cc (GNU cc 2.95.2 and gcc 3.3) +MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2) +MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) +CXX = g++ +CXXFLAGS = $(OPT2) -pipe -Wall -W -Woverloaded-virtual +LD = $(MACOSXTARGET) g++ +LDFLAGS = $(OPT2) -bind_at_load +# The SOFLAGS will be used to create the .dylib, +# the .so will be created separately +ifeq ($(subst $(MACOSX_MINOR),,1234),1234) +DllSuf = so +else +DllSuf = dylib +endif +UNDEFOPT = dynamic_lookup +ifneq ($(subst $(MACOSX_MINOR),,12),12) +UNDEFOPT = suppress +LD = g++ +endif +SOFLAGS = -dynamiclib -single_module -undefined $(UNDEFOPT) +endif + +ifeq ($(ARCH),macosxicc) +# MacOS X with Intel icc compiler +MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2) +MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) +ifeq ($(MACOSX_MINOR),5) +MACOSX_MINOR := 4 +endif +CXX = icc +CXXFLAGS = $(OPT) -fPIC -wd1476 +LD = $(MACOSXTARGET) icpc +LDFLAGS = $(OPT) +# The SOFLAGS will be used to create the .dylib, +# the .so will be created separately +ifeq ($(subst $(MACOSX_MINOR),,1234),1234) +DllSuf = so +else +DllSuf = dylib +endif +SOFLAGS = -dynamiclib -single_module -undefined dynamic_lookup +endif + +ifeq ($(ARCH),macosx64) +# MacOS X >= 10.4 with gcc 64 bit mode (GNU gcc 4.*) +# Only specific option (-m64) comes from root-config +MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2) +MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) +CXX = g++ +CXXFLAGS = $(OPT2) -pipe -Wall -W -Woverloaded-virtual +LD = $(MACOSXTARGET) g++ -m64 +LDFLAGS = $(OPT2) -bind_at_load +# The SOFLAGS will be used to create the .dylib, +# the .so will be created separately +ifeq ($(subst $(MACOSX_MINOR),,1234),1234) +DllSuf = so +else +DllSuf = dylib +endif +SOFLAGS = -m64 -dynamiclib -single_module -undefined dynamic_lookup +endif + +ifeq ($(ARCH),macosxxlc) +# MacOS X with IBM xlC compiler +MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2) +MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) +CXX = xlC +CXXFLAGS = $(OPT) +LD = $(MACOSXTARGET) xlC +LDFLAGS = $(OPT) -Wl,-bind_at_load +# The SOFLAGS will be used to create the .dylib, +# the .so will be created separately +DllSuf = dylib +UNDEFOPT = dynamic_lookup +ifneq ($(subst $(MACOSX_MINOR),,12),12) +UNDEFOPT = suppress +LD = xlC +endif +SOFLAGS = -qmkshrobj -single_module -undefined $(UNDEFOPT) +endif + +CXXFLAGS += $(ROOTCFLAGS) +LDFLAGS += $(ROOTLDFLAGS) +LIBS = $(ROOTLIBS) $(SYSLIBS) +GLIBS = $(ROOTGLIBS) $(SYSLIBS) + +INCLUDE = -I$(CLHEP_BASE_DIR)/include + +#------------------------------------------------------------------------------ +SHARELIB = libDUMMYDetectorData.so + +all: $(SHARELIB) +#------------------------------------------------------------------------------ +############### Detector ############## + +## DUMMYDetector ## +libDUMMYDetectorData.so: TDUMMYDetectorData.o TDUMMYDetectorDataDict.o + $(LD) $(SOFLAGS) $^ $(OutPutOpt) $@ + +TDUMMYDetectorDataDict.cxx: TDUMMYDetectorData.h + rootcint -f $@ -c $^ + +# dependances +TDUMMYDetectorData.o: TDUMMYDetectorData.cxx TDUMMYDetectorData.h +####################################### + +############# Clean and More ########## +clean: + @rm -f core *~ *.o *Dict* + +distclean: + make clean; rm -f *.so + +.SUFFIXES: .$(SrcSuf) + +### + +.$(SrcSuf).$(ObjSuf): + $(CXX) $(CXXFLAGS) $(INCLUDE) -c $< + + diff --git a/NPLib/DummyDetector/TDUMMYDetectorData.cxx b/NPLib/DummyDetector/TDUMMYDetectorData.cxx new file mode 100755 index 0000000000000000000000000000000000000000..1c15b58bdaa04b846a331cac3de2a18b26d11ee0 --- /dev/null +++ b/NPLib/DummyDetector/TDUMMYDetectorData.cxx @@ -0,0 +1,59 @@ +#include <iostream> +#include "TDUMMYDetectorData.h" +/***************************************************************************** + * Copyright (C) 2009 this file is part of the NPTool Project * + * * + * For the licensing terms see $NPTOOL/Licence/NPTool_Licence * + * For the list of contributors see $NPTOOL/Licence/Contributors * + *****************************************************************************/ + +/***************************************************************************** + * Original Author: Adrien MATTA contact address: matta@ipno.in2p3.fr * + * * + * Creation Date : October 2009 * + * Last update : * + *---------------------------------------------------------------------------* + * Decription: * + * This class described the raw data of a very simple DUMMYDetector * + * Use it as a template for your own detector! * + * * + *---------------------------------------------------------------------------* + * Comment: * + * * + * * + *****************************************************************************/ + +ClassImp(TDUMMYDetectorData) + +TDUMMYDetectorData::TDUMMYDetectorData() +{ +} + + + +TDUMMYDetectorData::~TDUMMYDetectorData() +{ +} + + + +void TDUMMYDetectorData::Clear() +{ + fDUMMYDetector_Energy.clear(); + fDUMMYDetector_Number.clear(); + fDUMMYDetector_Time.clear(); +} + + + +void TDUMMYDetectorData::Dump() const +{ + cout << "XXXXXXXXXXXXXXXXXXXXXXXX New Event XXXXXXXXXXXXXXXXX" << endl; + + for(unsigned short i = 0 ; i<fDUMMYDetector_Energy.size() ; i ++) + { + cout << "DUMMYDetector Number " << fDUMMYDetector_Number[i] << " Energy: " << fDUMMYDetector_Energy[i] << " Time: "<< fDUMMYDetector_Time[i] << endl; + + } + +} diff --git a/NPLib/DummyDetector/TDUMMYDetectorData.h b/NPLib/DummyDetector/TDUMMYDetectorData.h new file mode 100755 index 0000000000000000000000000000000000000000..cc5c29fa18c8300f629b2c221e06e6d60d6e5d0e --- /dev/null +++ b/NPLib/DummyDetector/TDUMMYDetectorData.h @@ -0,0 +1,72 @@ +#ifndef __DUMMYDetectorDATA__ +#define __DUMMYDetectorDATA__ +/***************************************************************************** + * Copyright (C) 2009 this file is part of the NPTool Project * + * * + * For the licensing terms see $NPTOOL/Licence/NPTool_Licence * + * For the list of contributors see $NPTOOL/Licence/Contributors * + *****************************************************************************/ + +/***************************************************************************** + * Original Author: Adrien MATTA contact address: matta@ipno.in2p3.fr * + * * + * Creation Date : October 2009 * + * Last update : * + *---------------------------------------------------------------------------* + * Decription: * + * This class described the raw data of a very simple DUMMY detector * + * Use it as a template for your own detector! * + * * + *---------------------------------------------------------------------------* + * Comment: * + * * + * * + *****************************************************************************/ +#include <vector> + +#include "TObject.h" +using namespace std ; + + +class TDUMMYDetectorData : public TObject { + private: + // ADC + vector<double> fDUMMYDetector_Energy ; + vector<double> fDUMMYDetector_Time ; + vector<short> fDUMMYDetector_Number ; + + public: + TDUMMYDetectorData(); + virtual ~TDUMMYDetectorData(); + + void Clear(); + void Clear(const Option_t*) {}; + void Dump() const; + + ///////////////////// GETTERS //////////////////////// + // (E) + double GetEnergy(int i) {return fDUMMYDetector_Energy[i];} + // (T) + double GetTime(int i) {return fDUMMYDetector_Time[i];} + // (N) + int GetDUMMYDetectorNumber(int i) {return fDUMMYDetector_Number[i];} + + + double GetEnergySize() {return fDUMMYDetector_Energy.size();} + // (T) + double GetTimeSize() {return fDUMMYDetector_Time.size();} + // (N) + int GetDUMMYDetectorNumberSize() {return fDUMMYDetector_Number.size();} + + + ///////////////////// SETTERS //////////////////////// + // (E) + void SetEnergy(double E) {fDUMMYDetector_Energy.push_back(E);} + void SetTime(double T) {fDUMMYDetector_Time.push_back(T);} + void SetDUMMYDetectorNumber(int N) {fDUMMYDetector_Number.push_back(N);} + + // + ClassDef(TDUMMYDetectorData,1) // DUMMYDetectorData structure +}; + +#endif diff --git a/NPLib/DummyDetector/TDUMMYDetectorDataDict.cxx b/NPLib/DummyDetector/TDUMMYDetectorDataDict.cxx new file mode 100644 index 0000000000000000000000000000000000000000..f0f60697fba77a65fb00eca509cec583b65b0d74 --- /dev/null +++ b/NPLib/DummyDetector/TDUMMYDetectorDataDict.cxx @@ -0,0 +1,873 @@ +// +// File generated by rootcint at Fri Oct 16 12:56:33 2009 + +// Do NOT change. Changes will be lost next time file is generated +// + +#include "RConfig.h" //rootcint 4834 +#if !defined(R__ACCESS_IN_SYMBOL) +//Break the privacy of classes -- Disabled for the moment +#define private public +#define protected public +#endif + +// Since CINT ignores the std namespace, we need to do so in this file. +namespace std {} using namespace std; +#include "TDUMMYDetectorDataDict.h" + +#include "TCollectionProxyInfo.h" +#include "TClass.h" +#include "TBuffer.h" +#include "TMemberInspector.h" +#include "TError.h" + +#ifndef G__ROOT +#define G__ROOT +#endif + +#include "RtypesImp.h" +#include "TIsAProxy.h" + +// START OF SHADOWS + +namespace ROOT { + namespace Shadow { + } // of namespace Shadow +} // of namespace ROOT +// END OF SHADOWS + +namespace ROOT { + void TDUMMYDetectorData_ShowMembers(void *obj, TMemberInspector &R__insp, char *R__parent); + static void *new_TDUMMYDetectorData(void *p = 0); + static void *newArray_TDUMMYDetectorData(Long_t size, void *p); + static void delete_TDUMMYDetectorData(void *p); + static void deleteArray_TDUMMYDetectorData(void *p); + static void destruct_TDUMMYDetectorData(void *p); + + // Function generating the singleton type initializer + static TGenericClassInfo *GenerateInitInstanceLocal(const ::TDUMMYDetectorData*) + { + ::TDUMMYDetectorData *ptr = 0; + static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::TDUMMYDetectorData >(0); + static ::ROOT::TGenericClassInfo + instance("TDUMMYDetectorData", ::TDUMMYDetectorData::Class_Version(), "TDUMMYDetectorData.h", 31, + typeid(::TDUMMYDetectorData), DefineBehavior(ptr, ptr), + &::TDUMMYDetectorData::Dictionary, isa_proxy, 0, + sizeof(::TDUMMYDetectorData) ); + instance.SetNew(&new_TDUMMYDetectorData); + instance.SetNewArray(&newArray_TDUMMYDetectorData); + instance.SetDelete(&delete_TDUMMYDetectorData); + instance.SetDeleteArray(&deleteArray_TDUMMYDetectorData); + instance.SetDestructor(&destruct_TDUMMYDetectorData); + return &instance; + } + TGenericClassInfo *GenerateInitInstance(const ::TDUMMYDetectorData*) + { + return GenerateInitInstanceLocal((::TDUMMYDetectorData*)0); + } + // Static variable to force the class initialization + static ::ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstanceLocal((const ::TDUMMYDetectorData*)0x0); R__UseDummy(_R__UNIQUE_(Init)); +} // end of namespace ROOT + +//______________________________________________________________________________ +TClass *TDUMMYDetectorData::fgIsA = 0; // static to hold class pointer + +//______________________________________________________________________________ +const char *TDUMMYDetectorData::Class_Name() +{ + return "TDUMMYDetectorData"; +} + +//______________________________________________________________________________ +const char *TDUMMYDetectorData::ImplFileName() +{ + return ::ROOT::GenerateInitInstanceLocal((const ::TDUMMYDetectorData*)0x0)->GetImplFileName(); +} + +//______________________________________________________________________________ +int TDUMMYDetectorData::ImplFileLine() +{ + return ::ROOT::GenerateInitInstanceLocal((const ::TDUMMYDetectorData*)0x0)->GetImplFileLine(); +} + +//______________________________________________________________________________ +void TDUMMYDetectorData::Dictionary() +{ + fgIsA = ::ROOT::GenerateInitInstanceLocal((const ::TDUMMYDetectorData*)0x0)->GetClass(); +} + +//______________________________________________________________________________ +TClass *TDUMMYDetectorData::Class() +{ + if (!fgIsA) fgIsA = ::ROOT::GenerateInitInstanceLocal((const ::TDUMMYDetectorData*)0x0)->GetClass(); + return fgIsA; +} + +//______________________________________________________________________________ +void TDUMMYDetectorData::Streamer(TBuffer &R__b) +{ + // Stream an object of class TDUMMYDetectorData. + + UInt_t R__s, R__c; + if (R__b.IsReading()) { + Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { } + TObject::Streamer(R__b); + { + vector<double> &R__stl = fDUMMYDetector_Energy; + R__stl.clear(); + int R__i, R__n; + R__b >> R__n; + R__stl.reserve(R__n); + for (R__i = 0; R__i < R__n; R__i++) { + double R__t; + R__b >> R__t; + R__stl.push_back(R__t); + } + } + { + vector<double> &R__stl = fDUMMYDetector_Time; + R__stl.clear(); + int R__i, R__n; + R__b >> R__n; + R__stl.reserve(R__n); + for (R__i = 0; R__i < R__n; R__i++) { + double R__t; + R__b >> R__t; + R__stl.push_back(R__t); + } + } + { + vector<short> &R__stl = fDUMMYDetector_Number; + R__stl.clear(); + int R__i, R__n; + R__b >> R__n; + R__stl.reserve(R__n); + for (R__i = 0; R__i < R__n; R__i++) { + short R__t; + R__b >> R__t; + R__stl.push_back(R__t); + } + } + R__b.CheckByteCount(R__s, R__c, TDUMMYDetectorData::IsA()); + } else { + R__c = R__b.WriteVersion(TDUMMYDetectorData::IsA(), kTRUE); + TObject::Streamer(R__b); + { + vector<double> &R__stl = fDUMMYDetector_Energy; + int R__n=(&R__stl) ? int(R__stl.size()) : 0; + R__b << R__n; + if(R__n) { + vector<double>::iterator R__k; + for (R__k = R__stl.begin(); R__k != R__stl.end(); ++R__k) { + R__b << (*R__k); + } + } + } + { + vector<double> &R__stl = fDUMMYDetector_Time; + int R__n=(&R__stl) ? int(R__stl.size()) : 0; + R__b << R__n; + if(R__n) { + vector<double>::iterator R__k; + for (R__k = R__stl.begin(); R__k != R__stl.end(); ++R__k) { + R__b << (*R__k); + } + } + } + { + vector<short> &R__stl = fDUMMYDetector_Number; + int R__n=(&R__stl) ? int(R__stl.size()) : 0; + R__b << R__n; + if(R__n) { + vector<short>::iterator R__k; + for (R__k = R__stl.begin(); R__k != R__stl.end(); ++R__k) { + R__b << (*R__k); + } + } + } + R__b.SetByteCount(R__c, kTRUE); + } +} + +//______________________________________________________________________________ +void TDUMMYDetectorData::ShowMembers(TMemberInspector &R__insp, char *R__parent) +{ + // Inspect the data members of an object of class TDUMMYDetectorData. + TClass *R__cl = ::TDUMMYDetectorData::IsA(); + Int_t R__ncp = strlen(R__parent); + if (R__ncp || R__cl || R__insp.IsA()) { } + R__insp.Inspect(R__cl, R__parent, "fDUMMYDetector_Energy", (void*)&fDUMMYDetector_Energy); + ::ROOT::GenericShowMembers("vector<double>", (void*)&fDUMMYDetector_Energy, R__insp, strcat(R__parent,"fDUMMYDetector_Energy."),false); + R__parent[R__ncp] = 0; + R__insp.Inspect(R__cl, R__parent, "fDUMMYDetector_Time", (void*)&fDUMMYDetector_Time); + ::ROOT::GenericShowMembers("vector<double>", (void*)&fDUMMYDetector_Time, R__insp, strcat(R__parent,"fDUMMYDetector_Time."),false); + R__parent[R__ncp] = 0; + R__insp.Inspect(R__cl, R__parent, "fDUMMYDetector_Number", (void*)&fDUMMYDetector_Number); + ::ROOT::GenericShowMembers("vector<short>", (void*)&fDUMMYDetector_Number, R__insp, strcat(R__parent,"fDUMMYDetector_Number."),false); + R__parent[R__ncp] = 0; + TObject::ShowMembers(R__insp, R__parent); +} + +namespace ROOT { + // Wrappers around operator new + static void *new_TDUMMYDetectorData(void *p) { + return p ? new(p) ::TDUMMYDetectorData : new ::TDUMMYDetectorData; + } + static void *newArray_TDUMMYDetectorData(Long_t nElements, void *p) { + return p ? new(p) ::TDUMMYDetectorData[nElements] : new ::TDUMMYDetectorData[nElements]; + } + // Wrapper around operator delete + static void delete_TDUMMYDetectorData(void *p) { + delete ((::TDUMMYDetectorData*)p); + } + static void deleteArray_TDUMMYDetectorData(void *p) { + delete [] ((::TDUMMYDetectorData*)p); + } + static void destruct_TDUMMYDetectorData(void *p) { + typedef ::TDUMMYDetectorData current_t; + ((current_t*)p)->~current_t(); + } +} // end of namespace ROOT for class ::TDUMMYDetectorData + +namespace ROOT { + void vectorlEdoublegR_ShowMembers(void *obj, TMemberInspector &R__insp, char *R__parent); + static void vectorlEdoublegR_Dictionary(); + static void *new_vectorlEdoublegR(void *p = 0); + static void *newArray_vectorlEdoublegR(Long_t size, void *p); + static void delete_vectorlEdoublegR(void *p); + static void deleteArray_vectorlEdoublegR(void *p); + static void destruct_vectorlEdoublegR(void *p); + + // Function generating the singleton type initializer + static TGenericClassInfo *GenerateInitInstanceLocal(const vector<double>*) + { + vector<double> *ptr = 0; + static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(typeid(vector<double>),0); + static ::ROOT::TGenericClassInfo + instance("vector<double>", -2, "vector.dll", 0, + typeid(vector<double>), DefineBehavior(ptr, ptr), + 0, &vectorlEdoublegR_Dictionary, isa_proxy, 0, + sizeof(vector<double>) ); + instance.SetNew(&new_vectorlEdoublegR); + instance.SetNewArray(&newArray_vectorlEdoublegR); + instance.SetDelete(&delete_vectorlEdoublegR); + instance.SetDeleteArray(&deleteArray_vectorlEdoublegR); + instance.SetDestructor(&destruct_vectorlEdoublegR); + instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback< vector<double> >())); + return &instance; + } + // Static variable to force the class initialization + static ::ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstanceLocal((const vector<double>*)0x0); R__UseDummy(_R__UNIQUE_(Init)); + + // Dictionary for non-ClassDef classes + static void vectorlEdoublegR_Dictionary() { + ::ROOT::GenerateInitInstanceLocal((const vector<double>*)0x0)->GetClass(); + } + +} // end of namespace ROOT + +namespace ROOT { + // Wrappers around operator new + static void *new_vectorlEdoublegR(void *p) { + return p ? ::new((::ROOT::TOperatorNewHelper*)p) vector<double> : new vector<double>; + } + static void *newArray_vectorlEdoublegR(Long_t nElements, void *p) { + return p ? ::new((::ROOT::TOperatorNewHelper*)p) vector<double>[nElements] : new vector<double>[nElements]; + } + // Wrapper around operator delete + static void delete_vectorlEdoublegR(void *p) { + delete ((vector<double>*)p); + } + static void deleteArray_vectorlEdoublegR(void *p) { + delete [] ((vector<double>*)p); + } + static void destruct_vectorlEdoublegR(void *p) { + typedef vector<double> current_t; + ((current_t*)p)->~current_t(); + } +} // end of namespace ROOT for class vector<double> + +namespace ROOT { + void vectorlEshortgR_ShowMembers(void *obj, TMemberInspector &R__insp, char *R__parent); + static void vectorlEshortgR_Dictionary(); + static void *new_vectorlEshortgR(void *p = 0); + static void *newArray_vectorlEshortgR(Long_t size, void *p); + static void delete_vectorlEshortgR(void *p); + static void deleteArray_vectorlEshortgR(void *p); + static void destruct_vectorlEshortgR(void *p); + + // Function generating the singleton type initializer + static TGenericClassInfo *GenerateInitInstanceLocal(const vector<short>*) + { + vector<short> *ptr = 0; + static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(typeid(vector<short>),0); + static ::ROOT::TGenericClassInfo + instance("vector<short>", -2, "vector.dll", 0, + typeid(vector<short>), DefineBehavior(ptr, ptr), + 0, &vectorlEshortgR_Dictionary, isa_proxy, 0, + sizeof(vector<short>) ); + instance.SetNew(&new_vectorlEshortgR); + instance.SetNewArray(&newArray_vectorlEshortgR); + instance.SetDelete(&delete_vectorlEshortgR); + instance.SetDeleteArray(&deleteArray_vectorlEshortgR); + instance.SetDestructor(&destruct_vectorlEshortgR); + instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback< vector<short> >())); + return &instance; + } + // Static variable to force the class initialization + static ::ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstanceLocal((const vector<short>*)0x0); R__UseDummy(_R__UNIQUE_(Init)); + + // Dictionary for non-ClassDef classes + static void vectorlEshortgR_Dictionary() { + ::ROOT::GenerateInitInstanceLocal((const vector<short>*)0x0)->GetClass(); + } + +} // end of namespace ROOT + +namespace ROOT { + // Wrappers around operator new + static void *new_vectorlEshortgR(void *p) { + return p ? ::new((::ROOT::TOperatorNewHelper*)p) vector<short> : new vector<short>; + } + static void *newArray_vectorlEshortgR(Long_t nElements, void *p) { + return p ? ::new((::ROOT::TOperatorNewHelper*)p) vector<short>[nElements] : new vector<short>[nElements]; + } + // Wrapper around operator delete + static void delete_vectorlEshortgR(void *p) { + delete ((vector<short>*)p); + } + static void deleteArray_vectorlEshortgR(void *p) { + delete [] ((vector<short>*)p); + } + static void destruct_vectorlEshortgR(void *p) { + typedef vector<short> current_t; + ((current_t*)p)->~current_t(); + } +} // end of namespace ROOT for class vector<short> + +/******************************************************** +* TDUMMYDetectorDataDict.cxx +* CAUTION: DON'T CHANGE THIS FILE. THIS FILE IS AUTOMATICALLY GENERATED +* FROM HEADER FILES LISTED IN G__setup_cpp_environmentXXX(). +* CHANGE THOSE HEADER FILES AND REGENERATE THIS FILE. +********************************************************/ + +#ifdef G__MEMTEST +#undef malloc +#undef free +#endif + +#if defined(__GNUC__) && (__GNUC__ > 3) && (__GNUC_MINOR__ > 1) +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif + +extern "C" void G__cpp_reset_tagtableTDUMMYDetectorDataDict(); + +extern "C" void G__set_cpp_environmentTDUMMYDetectorDataDict() { + G__add_compiledheader("TObject.h"); + G__add_compiledheader("TMemberInspector.h"); + G__add_compiledheader("TDUMMYDetectorData.h"); + G__cpp_reset_tagtableTDUMMYDetectorDataDict(); +} +#include <new> +extern "C" int G__cpp_dllrevTDUMMYDetectorDataDict() { return(30051515); } + +/********************************************************* +* Member function Interface Method +*********************************************************/ + +/* TDUMMYDetectorData */ +static int G__TDUMMYDetectorDataDict_146_0_1(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + TDUMMYDetectorData* p = NULL; + char* gvp = (char*) G__getgvp(); + int n = G__getaryconstruct(); + if (n) { + if ((gvp == (char*)G__PVOID) || (gvp == 0)) { + p = new TDUMMYDetectorData[n]; + } else { + p = new((void*) gvp) TDUMMYDetectorData[n]; + } + } else { + if ((gvp == (char*)G__PVOID) || (gvp == 0)) { + p = new TDUMMYDetectorData; + } else { + p = new((void*) gvp) TDUMMYDetectorData; + } + } + result7->obj.i = (long) p; + result7->ref = (long) p; + G__set_tagnum(result7,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData)); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_2(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + ((TDUMMYDetectorData*) G__getstructoffset())->Clear(); + G__setnull(result7); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_5(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letdouble(result7, 100, (double) ((TDUMMYDetectorData*) G__getstructoffset())->GetEnergy((int) G__int(libp->para[0]))); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_6(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letdouble(result7, 100, (double) ((TDUMMYDetectorData*) G__getstructoffset())->GetTime((int) G__int(libp->para[0]))); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_7(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letint(result7, 105, (long) ((TDUMMYDetectorData*) G__getstructoffset())->GetDUMMYDetectorNumber((int) G__int(libp->para[0]))); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_8(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letdouble(result7, 100, (double) ((TDUMMYDetectorData*) G__getstructoffset())->GetEnergySize()); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_9(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letdouble(result7, 100, (double) ((TDUMMYDetectorData*) G__getstructoffset())->GetTimeSize()); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_10(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letint(result7, 105, (long) ((TDUMMYDetectorData*) G__getstructoffset())->GetDUMMYDetectorNumberSize()); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_11(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + ((TDUMMYDetectorData*) G__getstructoffset())->SetEnergy((double) G__double(libp->para[0])); + G__setnull(result7); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_12(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + ((TDUMMYDetectorData*) G__getstructoffset())->SetTime((double) G__double(libp->para[0])); + G__setnull(result7); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_13(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + ((TDUMMYDetectorData*) G__getstructoffset())->SetDUMMYDetectorNumber((int) G__int(libp->para[0])); + G__setnull(result7); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_14(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letint(result7, 85, (long) TDUMMYDetectorData::Class()); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_15(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letint(result7, 67, (long) TDUMMYDetectorData::Class_Name()); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_16(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letint(result7, 115, (long) TDUMMYDetectorData::Class_Version()); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_17(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + TDUMMYDetectorData::Dictionary(); + G__setnull(result7); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_21(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + ((TDUMMYDetectorData*) G__getstructoffset())->StreamerNVirtual(*(TBuffer*) libp->para[0].ref); + G__setnull(result7); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_22(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letint(result7, 67, (long) TDUMMYDetectorData::DeclFileName()); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_23(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letint(result7, 105, (long) TDUMMYDetectorData::ImplFileLine()); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_24(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letint(result7, 67, (long) TDUMMYDetectorData::ImplFileName()); + return(1 || funcname || hash || result7 || libp) ; +} + +static int G__TDUMMYDetectorDataDict_146_0_25(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + G__letint(result7, 105, (long) TDUMMYDetectorData::DeclFileLine()); + return(1 || funcname || hash || result7 || libp) ; +} + +// automatic copy constructor +static int G__TDUMMYDetectorDataDict_146_0_26(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) + +{ + TDUMMYDetectorData* p; + void* tmp = (void*) G__int(libp->para[0]); + p = new TDUMMYDetectorData(*(TDUMMYDetectorData*) tmp); + result7->obj.i = (long) p; + result7->ref = (long) p; + G__set_tagnum(result7,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData)); + return(1 || funcname || hash || result7 || libp) ; +} + +// automatic destructor +typedef TDUMMYDetectorData G__TTDUMMYDetectorData; +static int G__TDUMMYDetectorDataDict_146_0_27(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + char* gvp = (char*) G__getgvp(); + long soff = G__getstructoffset(); + int n = G__getaryconstruct(); + // + //has_a_delete: 1 + //has_own_delete1arg: 0 + //has_own_delete2arg: 0 + // + if (!soff) { + return(1); + } + if (n) { + if (gvp == (char*)G__PVOID) { + delete[] (TDUMMYDetectorData*) soff; + } else { + G__setgvp((long) G__PVOID); + for (int i = n - 1; i >= 0; --i) { + ((TDUMMYDetectorData*) (soff+(sizeof(TDUMMYDetectorData)*i)))->~G__TTDUMMYDetectorData(); + } + G__setgvp((long)gvp); + } + } else { + if (gvp == (char*)G__PVOID) { + delete (TDUMMYDetectorData*) soff; + } else { + G__setgvp((long) G__PVOID); + ((TDUMMYDetectorData*) (soff))->~G__TTDUMMYDetectorData(); + G__setgvp((long)gvp); + } + } + G__setnull(result7); + return(1 || funcname || hash || result7 || libp) ; +} + +// automatic assignment operator +static int G__TDUMMYDetectorDataDict_146_0_28(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) +{ + TDUMMYDetectorData* dest = (TDUMMYDetectorData*) G__getstructoffset(); + *dest = *(TDUMMYDetectorData*) libp->para[0].ref; + const TDUMMYDetectorData& obj = *dest; + result7->ref = (long) (&obj); + result7->obj.i = (long) (&obj); + return(1 || funcname || hash || result7 || libp) ; +} + + +/* Setting up global function */ + +/********************************************************* +* Member function Stub +*********************************************************/ + +/* TDUMMYDetectorData */ + +/********************************************************* +* Global function Stub +*********************************************************/ + +/********************************************************* +* Get size of pointer to member function +*********************************************************/ +class G__Sizep2memfuncTDUMMYDetectorDataDict { + public: + G__Sizep2memfuncTDUMMYDetectorDataDict(): p(&G__Sizep2memfuncTDUMMYDetectorDataDict::sizep2memfunc) {} + size_t sizep2memfunc() { return(sizeof(p)); } + private: + size_t (G__Sizep2memfuncTDUMMYDetectorDataDict::*p)(); +}; + +size_t G__get_sizep2memfuncTDUMMYDetectorDataDict() +{ + G__Sizep2memfuncTDUMMYDetectorDataDict a; + G__setsizep2memfunc((int)a.sizep2memfunc()); + return((size_t)a.sizep2memfunc()); +} + + +/********************************************************* +* virtual base class offset calculation interface +*********************************************************/ + + /* Setting up class inheritance */ + +/********************************************************* +* Inheritance information setup/ +*********************************************************/ +extern "C" void G__cpp_setup_inheritanceTDUMMYDetectorDataDict() { + + /* Setting up class inheritance */ + if(0==G__getnumbaseclass(G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData))) { + TDUMMYDetectorData *G__Lderived; + G__Lderived=(TDUMMYDetectorData*)0x1000; + { + TObject *G__Lpbase=(TObject*)G__Lderived; + G__inheritance_setup(G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData),G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TObject),(long)G__Lpbase-(long)G__Lderived,1,1); + } + } +} + +/********************************************************* +* typedef information setup/ +*********************************************************/ +extern "C" void G__cpp_setup_typetableTDUMMYDetectorDataDict() { + + /* Setting up typedef entry */ + G__search_typename2("Version_t",115,-1,0,-1); + G__setnewtype(-1,"Class version identifier (short)",0); + G__search_typename2("vector<TSchemaHelper>",117,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR),0,-1); + G__setnewtype(-1,NULL,0); + G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR)); + G__setnewtype(-1,NULL,0); + G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR)); + G__setnewtype(-1,NULL,0); + G__search_typename2("vector<ROOT::TSchemaHelper>",117,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR),0,-1); + G__setnewtype(-1,NULL,0); +} + +/********************************************************* +* Data Member information setup/ +*********************************************************/ + + /* Setting up class,struct,union tag member variable */ + + /* TDUMMYDetectorData */ +static void G__setup_memvarTDUMMYDetectorData(void) { + G__tag_memvar_setup(G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData)); + { TDUMMYDetectorData *p; p=(TDUMMYDetectorData*)0x1000; if (p) { } + G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR),G__defined_typename("vector<double>"),-1,4,"fDUMMYDetector_Energy=",0,(char*)NULL); + G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR),G__defined_typename("vector<double>"),-1,4,"fDUMMYDetector_Time=",0,(char*)NULL); + G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEshortcOallocatorlEshortgRsPgR),G__defined_typename("vector<short>"),-1,4,"fDUMMYDetector_Number=",0,(char*)NULL); + G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TClass),-1,-2,4,"fgIsA=",0,(char*)NULL); + } + G__tag_memvar_reset(); +} + +extern "C" void G__cpp_setup_memvarTDUMMYDetectorDataDict() { +} +/*********************************************************** +************************************************************ +************************************************************ +************************************************************ +************************************************************ +************************************************************ +************************************************************ +***********************************************************/ + +/********************************************************* +* Member function information setup for each class +*********************************************************/ +static void G__setup_memfuncTDUMMYDetectorData(void) { + /* TDUMMYDetectorData */ + G__tag_memfunc_setup(G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData)); + G__memfunc_setup("TDUMMYDetectorData",1684,G__TDUMMYDetectorDataDict_146_0_1, 105, G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("Clear",487,G__TDUMMYDetectorDataDict_146_0_2, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("Clear",487,(G__InterfaceMethod) NULL,121, -1, -1, 0, 1, 1, 1, 0, "C - 'Option_t' 10 - -", (char*)NULL, (void*) NULL, 1); + G__memfunc_setup("Dump",406,(G__InterfaceMethod) NULL,121, -1, -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 1); + G__memfunc_setup("GetEnergy",906,G__TDUMMYDetectorDataDict_146_0_5, 100, -1, -1, 0, 1, 1, 1, 0, "i - - 0 - i", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("GetTime",687,G__TDUMMYDetectorDataDict_146_0_6, 100, -1, -1, 0, 1, 1, 1, 0, "i - - 0 - i", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("GetDUMMYDetectorNumber",2127,G__TDUMMYDetectorDataDict_146_0_7, 105, -1, -1, 0, 1, 1, 1, 0, "i - - 0 - i", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("GetEnergySize",1317,G__TDUMMYDetectorDataDict_146_0_8, 100, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("GetTimeSize",1098,G__TDUMMYDetectorDataDict_146_0_9, 100, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("GetDUMMYDetectorNumberSize",2538,G__TDUMMYDetectorDataDict_146_0_10, 105, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("SetEnergy",918,G__TDUMMYDetectorDataDict_146_0_11, 121, -1, -1, 0, 1, 1, 1, 0, "d - - 0 - E", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("SetTime",699,G__TDUMMYDetectorDataDict_146_0_12, 121, -1, -1, 0, 1, 1, 1, 0, "d - - 0 - T", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("SetDUMMYDetectorNumber",2139,G__TDUMMYDetectorDataDict_146_0_13, 121, -1, -1, 0, 1, 1, 1, 0, "i - - 0 - N", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("Class",502,G__TDUMMYDetectorDataDict_146_0_14, 85, G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TClass), -1, 0, 0, 3, 1, 0, "", (char*)NULL, (void*) G__func2void( (TClass* (*)())(&TDUMMYDetectorData::Class) ), 0); + G__memfunc_setup("Class_Name",982,G__TDUMMYDetectorDataDict_146_0_15, 67, -1, -1, 0, 0, 3, 1, 1, "", (char*)NULL, (void*) G__func2void( (const char* (*)())(&TDUMMYDetectorData::Class_Name) ), 0); + G__memfunc_setup("Class_Version",1339,G__TDUMMYDetectorDataDict_146_0_16, 115, -1, G__defined_typename("Version_t"), 0, 0, 3, 1, 0, "", (char*)NULL, (void*) G__func2void( (Version_t (*)())(&TDUMMYDetectorData::Class_Version) ), 0); + G__memfunc_setup("Dictionary",1046,G__TDUMMYDetectorDataDict_146_0_17, 121, -1, -1, 0, 0, 3, 1, 0, "", (char*)NULL, (void*) G__func2void( (void (*)())(&TDUMMYDetectorData::Dictionary) ), 0); + G__memfunc_setup("IsA",253,(G__InterfaceMethod) NULL,85, G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TClass), -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 1); + G__memfunc_setup("ShowMembers",1132,(G__InterfaceMethod) NULL,121, -1, -1, 0, 2, 1, 1, 0, +"u 'TMemberInspector' - 1 - insp C - - 0 - parent", (char*)NULL, (void*) NULL, 1); + G__memfunc_setup("Streamer",835,(G__InterfaceMethod) NULL,121, -1, -1, 0, 1, 1, 1, 0, "u 'TBuffer' - 1 - b", (char*)NULL, (void*) NULL, 1); + G__memfunc_setup("StreamerNVirtual",1656,G__TDUMMYDetectorDataDict_146_0_21, 121, -1, -1, 0, 1, 1, 1, 0, "u 'TBuffer' - 1 - b", (char*)NULL, (void*) NULL, 0); + G__memfunc_setup("DeclFileName",1145,G__TDUMMYDetectorDataDict_146_0_22, 67, -1, -1, 0, 0, 3, 1, 1, "", (char*)NULL, (void*) G__func2void( (const char* (*)())(&TDUMMYDetectorData::DeclFileName) ), 0); + G__memfunc_setup("ImplFileLine",1178,G__TDUMMYDetectorDataDict_146_0_23, 105, -1, -1, 0, 0, 3, 1, 0, "", (char*)NULL, (void*) G__func2void( (int (*)())(&TDUMMYDetectorData::ImplFileLine) ), 0); + G__memfunc_setup("ImplFileName",1171,G__TDUMMYDetectorDataDict_146_0_24, 67, -1, -1, 0, 0, 3, 1, 1, "", (char*)NULL, (void*) G__func2void( (const char* (*)())(&TDUMMYDetectorData::ImplFileName) ), 0); + G__memfunc_setup("DeclFileLine",1152,G__TDUMMYDetectorDataDict_146_0_25, 105, -1, -1, 0, 0, 3, 1, 0, "", (char*)NULL, (void*) G__func2void( (int (*)())(&TDUMMYDetectorData::DeclFileLine) ), 0); + // automatic copy constructor + G__memfunc_setup("TDUMMYDetectorData", 1684, G__TDUMMYDetectorDataDict_146_0_26, (int) ('i'), G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData), -1, 0, 1, 1, 1, 0, "u 'TDUMMYDetectorData' - 11 - -", (char*) NULL, (void*) NULL, 0); + // automatic destructor + G__memfunc_setup("~TDUMMYDetectorData", 1810, G__TDUMMYDetectorDataDict_146_0_27, (int) ('y'), -1, -1, 0, 0, 1, 1, 0, "", (char*) NULL, (void*) NULL, 1); + // automatic assignment operator + G__memfunc_setup("operator=", 937, G__TDUMMYDetectorDataDict_146_0_28, (int) ('u'), G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData), -1, 1, 1, 1, 1, 0, "u 'TDUMMYDetectorData' - 11 - -", (char*) NULL, (void*) NULL, 0); + G__tag_memfunc_reset(); +} + + +/********************************************************* +* Member function information setup +*********************************************************/ +extern "C" void G__cpp_setup_memfuncTDUMMYDetectorDataDict() { +} + +/********************************************************* +* Global variable information setup for each class +*********************************************************/ +static void G__cpp_setup_global0() { + + /* Setting up global variables */ + G__resetplocal(); + +} + +static void G__cpp_setup_global1() { + + G__resetglobalenv(); +} +extern "C" void G__cpp_setup_globalTDUMMYDetectorDataDict() { + G__cpp_setup_global0(); + G__cpp_setup_global1(); +} + +/********************************************************* +* Global function information setup for each class +*********************************************************/ +static void G__cpp_setup_func0() { + G__lastifuncposition(); + +} + +static void G__cpp_setup_func1() { +} + +static void G__cpp_setup_func2() { +} + +static void G__cpp_setup_func3() { +} + +static void G__cpp_setup_func4() { +} + +static void G__cpp_setup_func5() { +} + +static void G__cpp_setup_func6() { +} + +static void G__cpp_setup_func7() { +} + +static void G__cpp_setup_func8() { +} + +static void G__cpp_setup_func9() { +} + +static void G__cpp_setup_func10() { + + G__resetifuncposition(); +} + +extern "C" void G__cpp_setup_funcTDUMMYDetectorDataDict() { + G__cpp_setup_func0(); + G__cpp_setup_func1(); + G__cpp_setup_func2(); + G__cpp_setup_func3(); + G__cpp_setup_func4(); + G__cpp_setup_func5(); + G__cpp_setup_func6(); + G__cpp_setup_func7(); + G__cpp_setup_func8(); + G__cpp_setup_func9(); + G__cpp_setup_func10(); +} + +/********************************************************* +* Class,struct,union,enum tag information setup +*********************************************************/ +/* Setup class/struct taginfo */ +G__linked_taginfo G__TDUMMYDetectorDataDictLN_TClass = { "TClass" , 99 , -1 }; +G__linked_taginfo G__TDUMMYDetectorDataDictLN_TBuffer = { "TBuffer" , 99 , -1 }; +G__linked_taginfo G__TDUMMYDetectorDataDictLN_TMemberInspector = { "TMemberInspector" , 99 , -1 }; +G__linked_taginfo G__TDUMMYDetectorDataDictLN_TObject = { "TObject" , 99 , -1 }; +G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEshortcOallocatorlEshortgRsPgR = { "vector<short,allocator<short> >" , 99 , -1 }; +G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR = { "vector<double,allocator<double> >" , 99 , -1 }; +G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR = { "vector<ROOT::TSchemaHelper,allocator<ROOT::TSchemaHelper> >" , 99 , -1 }; +G__linked_taginfo G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR = { "reverse_iterator<vector<ROOT::TSchemaHelper,allocator<ROOT::TSchemaHelper> >::iterator>" , 99 , -1 }; +G__linked_taginfo G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData = { "TDUMMYDetectorData" , 99 , -1 }; + +/* Reset class/struct taginfo */ +extern "C" void G__cpp_reset_tagtableTDUMMYDetectorDataDict() { + G__TDUMMYDetectorDataDictLN_TClass.tagnum = -1 ; + G__TDUMMYDetectorDataDictLN_TBuffer.tagnum = -1 ; + G__TDUMMYDetectorDataDictLN_TMemberInspector.tagnum = -1 ; + G__TDUMMYDetectorDataDictLN_TObject.tagnum = -1 ; + G__TDUMMYDetectorDataDictLN_vectorlEshortcOallocatorlEshortgRsPgR.tagnum = -1 ; + G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR.tagnum = -1 ; + G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR.tagnum = -1 ; + G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR.tagnum = -1 ; + G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData.tagnum = -1 ; +} + + +extern "C" void G__cpp_setup_tagtableTDUMMYDetectorDataDict() { + + /* Setting up class,struct,union tag entry */ + G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_TClass); + G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_TBuffer); + G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_TMemberInspector); + G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_TObject); + G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_vectorlEshortcOallocatorlEshortgRsPgR); + G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR); + G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR); + G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR); + G__tagtable_setup(G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData),sizeof(TDUMMYDetectorData),-1,29952,"DUMMYDetectorData structure",G__setup_memvarTDUMMYDetectorData,G__setup_memfuncTDUMMYDetectorData); +} +extern "C" void G__cpp_setupTDUMMYDetectorDataDict(void) { + G__check_setup_version(30051515,"G__cpp_setupTDUMMYDetectorDataDict()"); + G__set_cpp_environmentTDUMMYDetectorDataDict(); + G__cpp_setup_tagtableTDUMMYDetectorDataDict(); + + G__cpp_setup_inheritanceTDUMMYDetectorDataDict(); + + G__cpp_setup_typetableTDUMMYDetectorDataDict(); + + G__cpp_setup_memvarTDUMMYDetectorDataDict(); + + G__cpp_setup_memfuncTDUMMYDetectorDataDict(); + G__cpp_setup_globalTDUMMYDetectorDataDict(); + G__cpp_setup_funcTDUMMYDetectorDataDict(); + + if(0==G__getsizep2memfunc()) G__get_sizep2memfuncTDUMMYDetectorDataDict(); + return; +} +class G__cpp_setup_initTDUMMYDetectorDataDict { + public: + G__cpp_setup_initTDUMMYDetectorDataDict() { G__add_setup_func("TDUMMYDetectorDataDict",(G__incsetup)(&G__cpp_setupTDUMMYDetectorDataDict)); G__call_setup_funcs(); } + ~G__cpp_setup_initTDUMMYDetectorDataDict() { G__remove_setup_func("TDUMMYDetectorDataDict"); } +}; +G__cpp_setup_initTDUMMYDetectorDataDict G__cpp_setup_initializerTDUMMYDetectorDataDict; + diff --git a/NPLib/DummyDetector/TDUMMYDetectorDataDict.h b/NPLib/DummyDetector/TDUMMYDetectorDataDict.h new file mode 100644 index 0000000000000000000000000000000000000000..a5bda1ee0122066fc0b9f636aacfd948375f5b04 --- /dev/null +++ b/NPLib/DummyDetector/TDUMMYDetectorDataDict.h @@ -0,0 +1,51 @@ +/******************************************************************** +* TDUMMYDetectorDataDict.h +* CAUTION: DON'T CHANGE THIS FILE. THIS FILE IS AUTOMATICALLY GENERATED +* FROM HEADER FILES LISTED IN G__setup_cpp_environmentXXX(). +* CHANGE THOSE HEADER FILES AND REGENERATE THIS FILE. +********************************************************************/ +#ifdef __CINT__ +#error TDUMMYDetectorDataDict.h/C is only for compilation. Abort cint. +#endif +#include <stddef.h> +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <string.h> +#define G__ANSIHEADER +#define G__DICTIONARY +#define G__PRIVATE_GVALUE +#include "G__ci.h" +extern "C" { +extern void G__cpp_setup_tagtableTDUMMYDetectorDataDict(); +extern void G__cpp_setup_inheritanceTDUMMYDetectorDataDict(); +extern void G__cpp_setup_typetableTDUMMYDetectorDataDict(); +extern void G__cpp_setup_memvarTDUMMYDetectorDataDict(); +extern void G__cpp_setup_globalTDUMMYDetectorDataDict(); +extern void G__cpp_setup_memfuncTDUMMYDetectorDataDict(); +extern void G__cpp_setup_funcTDUMMYDetectorDataDict(); +extern void G__set_cpp_environmentTDUMMYDetectorDataDict(); +} + + +#include "TObject.h" +#include "TMemberInspector.h" +#include "TDUMMYDetectorData.h" +#include <algorithm> +namespace std { } +using namespace std; + +#ifndef G__MEMFUNCBODY +#endif + +extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_TClass; +extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_TBuffer; +extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_TMemberInspector; +extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_TObject; +extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEshortcOallocatorlEshortgRsPgR; +extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR; +extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR; +extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR; +extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData; + +/* STUB derived class for protected member access */ diff --git a/NPLib/Makefile b/NPLib/Makefile index bdfaaf6e1e7a68e22d56a00385b0a2753ce40bb8..e9f11fcd269aa11f24fb815eb6b32b5427913b47 100644 --- a/NPLib/Makefile +++ b/NPLib/Makefile @@ -269,7 +269,7 @@ INCLUDE = -I$(CLHEP_BASE_DIR)/include #------------------------------------------------------------------------------ SHARELIB = Vdetec InputOutputRoot InitCond InterCoord \ - Must2All GaspardData AnnularS1Data PlasticData\ + Must2All GaspardData AnnularS1Data PlasticData DummyDetectorData\ Reaction EnergyLoss all: $(SHARELIB) @@ -308,19 +308,26 @@ GaspardData: cp ./GASPARD/*.so ./lib ; cp ./GASPARD/*.h ./include ifeq ($(ARCH),macosx) cd lib; ln -sf libGaspardData.so libGaspardData.dylib - cd lib; ln -sf libGaspardPyysics.so libGaspardPhysics.dylib + cd lib; ln -sf libGaspardPhysics.so libGaspardPhysics.dylib endif -## Gaspard ## +## Plastic ## PlasticData: make -C ./Plastic cp ./Plastic/*.so ./lib ; cp ./Plastic/*.h ./include ifeq ($(ARCH),macosx) cd lib; ln -sf libPlasticData.so libPlasticData.dylib - cd lib; ln -sf libPlasticPyysics.so libPlasticPhysics.dylib + cd lib; ln -sf libPlasticPhysics.so libPlasticPhysics.dylib endif - +## DUMMY Detector ## +DummyDetectorData: + make -C ./DummyDetector + cp ./DummyDetector/*.so ./lib ; cp ./DummyDetector/*.h ./include +ifeq ($(ARCH),macosx) + cd lib; ln -sf libDummyDetectorData.so libPlasticData.dylib + cd lib; ln -sf libPlasticPhysics.so libPlasticPhysics.dylib +endif ############# Simulation ############## ## InitialConditions ## @@ -378,6 +385,7 @@ clean: make clean -C ./GASPARD make clean -C ./InteractionCoordinates make clean -C ./InitialConditions + make clean -C ./DummyDetector distclean: rm -f ./lib/*.so @@ -393,7 +401,7 @@ endif make distclean -C ./GASPARD make distclean -C ./InteractionCoordinates make distclean -C ./InitialConditions - + make distclean -C ./DummyDetector .SUFFIXES: .$(SrcSuf) ### diff --git a/NPSimulation/include/ThinSi.hh b/NPSimulation/include/ThinSi.hh index 719c3fda610729aeae8a320434215255e48631c4..bc6269abacf0f251bfa2ff6e3306387d4b597d8a 100644 --- a/NPSimulation/include/ThinSi.hh +++ b/NPSimulation/include/ThinSi.hh @@ -122,7 +122,7 @@ private: G4double m_Energy ; //////////////////////////////////////////////////// - ////////////////// Scorer Things /////////////////// + ///////////////// Scorer Related /////////////////// //////////////////////////////////////////////////// private: @@ -132,6 +132,17 @@ private: // Scorer Associate to the 20um Silicon stage G4MultiFunctionalDetector* m_StripScorer ; + + +private: + // Initialize mmaterial used in detector definition + void InitializeMaterial(); + + // List of material + G4Material* m_MaterialSilicon ; + G4Material* m_MaterialAl ; + G4Material* m_MaterialVacuum ; + //////////////////////////////////////////////////// ///////////////Private intern Data////////////////// //////////////////////////////////////////////////// diff --git a/NPSimulation/src/ThinSi.cc b/NPSimulation/src/ThinSi.cc index a196e56324f03402947b3942876cf0dacb4279bb..90ef4c0ae64d30d6649840acbb8ca7789e2c78a5 100644 --- a/NPSimulation/src/ThinSi.cc +++ b/NPSimulation/src/ThinSi.cc @@ -62,11 +62,16 @@ using namespace CLHEP; // ThinSi Specific Method ThinSi::ThinSi() { - + InitializeMaterial(); } ThinSi::~ThinSi() -{} +{ + delete m_MaterialSilicon ; + delete m_MaterialAl ; + delete m_MaterialVacuum ; + +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void ThinSi::AddTelescope(G4ThreeVector TL , G4ThreeVector BL , @@ -125,28 +130,6 @@ void ThinSi::VolumeMaker( G4int DetNumber , Number << NbrTelescopes ; DetectorNumber = Number.str() ; -//////////////////////////////////////////////////////////////// -/////////////////Material Definition /////////////////////////// -//////////////////////////////////////////////////////////////// - G4Element* N = new G4Element("Nitrogen" , "N" , 7 , 14.01 * g / mole); - G4Element* O = new G4Element("Oxigen" , "O" , 8 , 16.00 * g / mole); - - G4double a, z, density; - // Si - a = 28.0855 * g / mole; - density = 2.321 * g / cm3; - G4Material* Silicon = new G4Material("Si", z = 14., a, density); - - // Al - density = 2.702 * g / cm3; - a = 26.98 * g / mole; - G4Material* Al = new G4Material("Al", z = 13., a, density); - - // Vacuum - density = 0.000000001 * mg / cm3; - G4Material* Vacuum = new G4Material("Vacuum", density, 2); - Vacuum->AddElement(N, .7); - Vacuum->AddElement(O, .3); //////////////////////////////////////////////////////////////// /////////General Geometry Parameter Definition ///////////////// @@ -162,7 +145,7 @@ void ThinSi::VolumeMaker( G4int DetNumber , G4Box* solidThinSi = new G4Box(Name, 0.5*DetectorSize, 0.5*DetectorSize, 0.5*FrameThickness*mm); G4LogicalVolume* logicThinSi = - new G4LogicalVolume(solidThinSi, Vacuum, Name, 0, 0); + new G4LogicalVolume(solidThinSi, m_MaterialVacuum, Name, 0, 0); PVPBuffer = new G4PVPlacement(G4Transform3D(*Det_rot, Det_pos) , @@ -177,10 +160,10 @@ void ThinSi::VolumeMaker( G4int DetNumber , G4Box* solidFrameVertical = new G4Box(Name + "_Frame", 0.5*(DetectorSize - SiliconSize) / 2, 0.5*DetectorSize, 0.5*FrameThickness*mm) ; G4LogicalVolume* logicFrameHorizontal = - new G4LogicalVolume(solidFrameHorizontal, Al, Name, 0, 0); + new G4LogicalVolume(solidFrameHorizontal, m_MaterialAl, Name, 0, 0); G4LogicalVolume* logicFrameVertical = - new G4LogicalVolume(solidFrameVertical, Al, Name, 0, 0); + new G4LogicalVolume(solidFrameVertical, m_MaterialAl, Name, 0, 0); G4ThreeVector FrameTopPosition = G4ThreeVector(0 , 0.5 * SiliconSize + 0.5 * (DetectorSize - SiliconSize) / 2 , 0) ; G4ThreeVector FrameBottomPosition = G4ThreeVector(0 , -0.5 * SiliconSize - 0.5 * (DetectorSize - SiliconSize) / 2 , 0) ; @@ -233,7 +216,7 @@ void ThinSi::VolumeMaker( G4int DetNumber , new G4Box("ThinSiAlu", 0.5*SiliconSize, 0.5*SiliconSize, 0.5*AluThickness) ; G4LogicalVolume* logicAlu = - new G4LogicalVolume(solidAlu, Al, "logicAlu", 0, 0, 0) ; + new G4LogicalVolume(solidAlu, m_MaterialAl, "logicAlu", 0, 0, 0) ; PVPBuffer = new G4PVPlacement(0 , posAluFront , logicAlu , Name + "_AluFront" , logicThinSi , true, 0) ; @@ -246,7 +229,7 @@ void ThinSi::VolumeMaker( G4int DetNumber , new G4Box("ThinSi", 0.5*SiliconSize, 0.5*SiliconSize, 0.5*SiliconThickness) ; G4LogicalVolume* logicSi = - new G4LogicalVolume(solidSi, Silicon, "logicSi", 0, 0, 0) ; + new G4LogicalVolume(solidSi, m_MaterialSilicon, "logicSi", 0, 0, 0) ; PVPBuffer = new G4PVPlacement(0, posSi, logicSi, Name + "_Si", logicThinSi, true, 0) ; @@ -683,3 +666,31 @@ void ThinSi::InitializeScorers() G4SDManager::GetSDMpointer()->AddNewDetector(m_StripScorer) ; } +//////////////////////////////////////////////////////////////// +/////////////////Material Definition /////////////////////////// +//////////////////////////////////////////////////////////////// +void ThinSi::InitializeMaterial() + { + + G4Element* N = new G4Element("Nitrogen" , "N" , 7 , 14.01 * g / mole); + G4Element* O = new G4Element("Oxigen" , "O" , 8 , 16.00 * g / mole); + + G4double a, z, density; + // Si + a = 28.0855 * g / mole; + density = 2.321 * g / cm3; + m_MaterialSilicon = new G4Material("Si", z = 14., a, density); + + // Al + density = 2.702 * g / cm3; + a = 26.98 * g / mole; + m_MaterialAl = new G4Material("Al", z = 13., a, density); + + // Vacuum + density = 0.000000001 * mg / cm3; + m_MaterialVacuum = new G4Material("Vacuum", density, 2); + m_MaterialVacuum->AddElement(N, .7); + m_MaterialVacuum->AddElement(O, .3); + } + +