29.3.2011 Kamil Sedlak

1) Small change in optical photon simulation
2) Some other small changes, probably not very important
This commit is contained in:
2011-03-29 15:34:13 +00:00
parent 2a1c05b09b
commit 9bc0d53074
9 changed files with 199 additions and 62 deletions

View File

@ -95,51 +95,65 @@ class musrScintSD : public G4VSensitiveDetector
void ProcessOpticalPhoton(G4Step*);
void EndOfEvent_OptiacalPhotons();
void ReadInPulseShapeArray(const char* filename);
G4int FindAPDcellID(G4Step* aStep);
void SetAPDcellSizes(G4int nx, G4int ny, G4int nz, G4double half_ax, G4double half_ay, G4double half_az) {
APDcellsEffectRequested = true;
APDcell_nx = nx; APDcell_ny = ny; APDcell_nz = nz;
APDcell_ax = 2*half_ax/ nx; APDcell_ay = 2*half_ay/ ny; APDcell_az = 2*half_az/ nz;
}
void SetAPDcellsTimeVariationSigma(G4double sigma) {
if (sigma!=0) APDcellsTimeVariationRequested = true;
APDcellsTimeVariationSigma=sigma;
}
private:
static musrScintSD* pointer;
musrScintHitsCollection* scintCollection;
G4bool myStoreOnlyEventsWithHits;
G4int myStoreOnlyEventsWithHitInDetID;
G4double mySignalSeparationTime;
G4bool myStoreOnlyTheFirstTimeHit;
G4bool boolIsVvvInfoRequested;
musrRootOutput* myRootOutput;
static musrScintSD* pointer;
musrScintHitsCollection* scintCollection;
G4bool myStoreOnlyEventsWithHits;
G4int myStoreOnlyEventsWithHitInDetID;
G4double mySignalSeparationTime;
G4bool myStoreOnlyTheFirstTimeHit;
G4bool boolIsVvvInfoRequested;
musrRootOutput* myRootOutput;
// for optical photon counting
typedef std::multimap<G4double,Int_t> optHitDetectorMapType;
typedef std::map<Int_t,optHitDetectorMapType*> optHitMapType;
optHitMapType optHitMap;
// for optical photon signal analysis (OPSA)
G4int OPSA_minNrOfDetectedPhotons;
G4double OPSA_signalSeparationTime;
G4double OPSA_fracA;
G4double OPSA_fracB;
G4double OPSA_C_threshold;
G4double OPSA_D_threshold;
typedef std::multimap<G4int,signalInfo*> OPSA_signal_MapType;
OPSA_signal_MapType OPSA_signal_Map;
// for optical photon counting
typedef std::multimap<G4double,Int_t> optHitDetectorMapType;
typedef std::map<Int_t,optHitDetectorMapType*> optHitMapType;
optHitMapType optHitMap;
// for optical photon signal analysis (OPSA)
G4int OPSA_minNrOfDetectedPhotons;
G4double OPSA_signalSeparationTime;
G4double OPSA_fracA;
G4double OPSA_fracB;
G4double OPSA_C_threshold;
G4double OPSA_D_threshold;
typedef std::multimap<G4int,signalInfo*> OPSA_signal_MapType;
OPSA_signal_MapType OPSA_signal_Map;
G4bool bool_multimapOfEventIDsForOPSAhistosEXISTS;
G4bool bool_StoreThisOPSAhistSUMMED;
G4bool bool_StoreThisOPSAhistALL;
typedef std::multimap<G4int,G4int> multimapOfEventIDsForOPSAhistos_Type;
multimapOfEventIDsForOPSAhistos_Type multimapOfEventIDsForOPSAhistos;
TH1D* OPSAhisto;
Int_t OPSAhistoNbin;
Double_t OPSAhistoMin, OPSAhistoMax, OPSAhistoBinWidth, OPSAhistoBinWidth1000;
typedef std::map<std::string,TH1D*> mapOfOPSAsumHistograms_Type;
mapOfOPSAsumHistograms_Type mapOfOPSAsumHistograms;
mapOfOPSAsumHistograms_Type mapOfOPSAsum0Histograms;
TH1D* OPSAhistoSUM;
TH1D* OPSAhistoSUM0;
TH1D* OPSAshape;
G4bool bool_pulseShapeExists;
G4int iPSmax;
G4double pulseShapeArray[10001];
TH1D* OPSA_CFD;
G4double OPSA_CFD_a1,OPSA_CFD_delay, OPSA_CFD_timeShiftOffset;
G4bool bool_multimapOfEventIDsForOPSAhistosEXISTS;
G4bool bool_StoreThisOPSAhistSUMMED;
G4bool bool_StoreThisOPSAhistALL;
typedef std::multimap<G4int,G4int> multimapOfEventIDsForOPSAhistos_Type;
multimapOfEventIDsForOPSAhistos_Type multimapOfEventIDsForOPSAhistos;
TH1D* OPSAhisto;
Int_t OPSAhistoNbin;
Double_t OPSAhistoMin, OPSAhistoMax, OPSAhistoBinWidth, OPSAhistoBinWidth1000;
typedef std::map<std::string,TH1D*> mapOfOPSAsumHistograms_Type;
mapOfOPSAsumHistograms_Type mapOfOPSAsumHistograms;
mapOfOPSAsumHistograms_Type mapOfOPSAsum0Histograms;
TH1D* OPSAhistoSUM;
TH1D* OPSAhistoSUM0;
TH1D* OPSAshape;
G4bool bool_pulseShapeExists;
G4int iPSmax;
G4double pulseShapeArray[10001];
TH1D* OPSA_CFD;
G4double OPSA_CFD_a1,OPSA_CFD_delay, OPSA_CFD_timeShiftOffset;
G4bool APDcellsEffectRequested; // simulate effects of finite cell number
G4int APDcell_nx, APDcell_ny, APDcell_nz; // number of cells in APD along x, y and z directions
G4double APDcell_ax, APDcell_ay, APDcell_az; // dimensions of APD cells
G4bool APDcellsTimeVariationRequested; // simmulate effect of detection time variations between differenct cells
G4double APDcellsTimeVariationSigma; // sigma of the detection time variations between differenct cells
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......