MpdEmcDigitizerKI.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //--------------------------------------------------------------------
  2. //
  3. // Description:
  4. // MPD EMC Digitizer - takes EmcPoints and makes digits
  5. //
  6. //
  7. //--------------------------------------------------------------------
  8. #ifndef MPDEMCDIGITIZERKI_H
  9. #define MPDEMCDIGITIZERKI_H 1
  10. #include "MpdEmcDigitKI.h"
  11. #include "FairTask.h"
  12. class MpdEmcGeoParams;
  13. class TClonesArray;
  14. class MpdEmcSimParams;
  15. class MpdEmcGeoUtils;
  16. class MpdEmcDigitizerKI : public FairTask
  17. {
  18. public:
  19. /** Default constructor **/
  20. MpdEmcDigitizerKI();
  21. /** Destructor **/
  22. ~MpdEmcDigitizerKI();
  23. /** Virtual method Init **/
  24. virtual InitStatus Init();
  25. /** Virtual method Exec **/
  26. virtual void Exec(Option_t* opt);
  27. void virtual Finish();
  28. private:
  29. double SimulateNoiseEnergy(); // Simulation of noise of electronics
  30. double NonLinearity(const double e); // simulate non-lineraity
  31. double DigitizeEnergy(const double e); // Account final width of ADC
  32. double TimeResolution(const double time, const double e); // Apply final time resolution
  33. double SimulateNoiseTime(); // calculate time in noise digit
  34. double SimulateLightCollection(const double lostenergy); // Simulate Poissonian light production and collection
  35. private:
  36. /** Input array of MpdEmcPoints **/
  37. TClonesArray* fPointArray; //!
  38. TClonesArray* fMcTrArray; //!
  39. /** Output array of MpdEmcHit **/
  40. TClonesArray* fDigitsArray; //!
  41. MpdEmcSimParams* fSimParams; //! Class with all simulation parameters
  42. MpdEmcGeoUtils* fGeom; //! Geometry parameters and methods
  43. int fNDigits; //! Number of digits created
  44. ClassDef(MpdEmcDigitizerKI, 1);
  45. };
  46. #endif