Skip to content

Commit

Permalink
Merge pull request #648 from kochebina/IntriReso
Browse files Browse the repository at this point in the history
IntrinsicResolution added to New Digitizer
  • Loading branch information
kochebina authored Dec 5, 2023
2 parents e92f57c + 5fe289e commit da950ec
Show file tree
Hide file tree
Showing 25 changed files with 619 additions and 1,736 deletions.
109 changes: 0 additions & 109 deletions source/digits_hits/include/GateBlurringWithIntrinsicResolution.hh

This file was deleted.

This file was deleted.

76 changes: 0 additions & 76 deletions source/digits_hits/include/GateCalibration.hh

This file was deleted.

37 changes: 0 additions & 37 deletions source/digits_hits/include/GateCalibrationMessenger.hh

This file was deleted.

116 changes: 116 additions & 0 deletions source/digits_hits/include/GateIntrinsicResolution.hh
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
/*----------------------
Copyright (C): OpenGATE Collaboration
This software is distributed under the terms
of the GNU Lesser General Public Licence (LGPL)
See LICENSE.md for further details
----------------------*/

// OK GND 2022
/*This class is not used by GATE !
The purpose of this class is to help to create new users digitizer module(DM).
Please, check GateIntrinsicResolution.cc for more detals
*/


/*! \class GateIntrinsicResolution
\brief GateIntrinsicResolution does some dummy things with input digi
to create output digi
- GateIntrinsicResolution - by [email protected]
\sa GateIntrinsicResolution, GateIntrinsicResolutionMessenger
*/

#ifndef GateIntrinsicResolution_h
#define GateIntrinsicResolution_h 1

#include "GateVDigitizerModule.hh"
#include "GateDigi.hh"
#include "GateClockDependent.hh"
#include "GateCrystalSD.hh"

#include "globals.hh"

#include "GateIntrinsicResolutionMessenger.hh"
#include "GateSinglesDigitizer.hh"
#include "GateLevelsFinder.hh"


class GateIntrinsicResolution : public GateVDigitizerModule
{
public:

GateIntrinsicResolution(GateSinglesDigitizer *digitizer, G4String name);
~GateIntrinsicResolution();

void Digitize() override;

// *******implement your methods here
void SetResolution(const G4double& value ){ m_resolution=value;} ;
void SetEref(const G4double& value ){ m_Eref=value;} ;
void SetLightOutput(const G4double& value ){ m_LY=value;} ;
void SetTransferEff(const G4double& value ){ m_TE=value;} ;

//! Allow to use file(s) as lookout table for quantum efficiency
void UseFile(G4String aFile);

//! Apply an unique quantum efficiency for all the channels
void SetUniqueQE(G4double val) { m_uniqueQE = val; };

void CreateTable();

void CheckVolumeName(G4String val);

void DescribeMyself(size_t );

protected:
G4double m_resolution;
G4double m_Eref;
G4double m_LY; //Light Yield
G4double m_TE; //Transfer efficiency
G4double m_QE; //Quantum efficiency
G4bool isFirstEvent;

G4double m_uniqueQE; //!< Value of the quantum efficiency if it's unique
G4int m_nbFiles; //!< Number of file(s) used for creating the lookout table
std::vector<G4String> m_file; //!< Vector which contains the name(s) of the file(s) for the lookout table

G4int m_nbCrystals;
//!< Number of PhysicalVolume copies of the Inserter corresponding @ level 'm_depth-1
//!< Number of PhysicalVolume copies of the Inserter corresponding @ level 'm_depth-1
G4int m_level3No;
//!< Number of PhysicalVolume copies of the Inserter corresponding @ level 'm_depth-2
G4int m_level2No;
//!< Number of PhysicalVolume copies of the Inserter corresponding @ volume name 'm_volumeName
G4int m_level1No;
G4int m_nbTables;
GateLevelsFinder* m_levelFinder;
//!< Number of PhysicalVolume copies of the Inserter corresponding @ volume name 'm_volumeName
G4int m_i, m_j, m_k; //!< numero of the volumeID
G4int m_volumeIDNo; //!< numero of the volumeID
size_t m_depth; //!< Depth of the selected volume in the Inserter
G4double** m_table; //!< Lookout table for the quantum efficiency of all channels
G4String m_volumeName; //!< Name of the module
G4int m_testVolume; //!< equal to 1 if the volume name is valid, 0 else

private:
GateDigi* m_outputDigi;

GateIntrinsicResolutionMessenger *m_Messenger;

GateDigiCollection* m_OutputDigiCollection;

GateSinglesDigitizer *m_digitizer;


};

#endif







Loading

0 comments on commit da950ec

Please sign in to comment.