//---------------------------------------------------------------------- // File and Version Information: // $Id: Exp $ // // Description: // Class EmcHitsToWaveform. Module to take the hit list for the // calorimeter and make ADC waveforms from them. // // Software developed for the BaBar Detector at the SLAC B-Factory. // Adapted for the PANDA experiment at GSI // // Author List: // Phil Strother Original author // Dima Melnichuk - adaption for PANDA // Copyright Information: // Copyright (C) 1996 Imperial College //---------------------------------------------------------------------- #ifndef EmcHitsToWaveform_HH #define EmcHitsToWaveform_HH #include "CbmTask.h" #include #include class TwoCoordIndex; class EmcWaveform; class EmcMapper; class TClonesArray; class EmcDigiPar; using std::string; class EmcHitsToWaveform : public CbmTask { public: // Constructors EmcHitsToWaveform(string); // Destructor virtual ~EmcHitsToWaveform(); /** Virtual method Init **/ virtual InitStatus Init(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); private: /** Input array of CbmEmcHits **/ TClonesArray* fHitArray; /** Output array of EmcWaveforms **/ TClonesArray* fWaveformArray; double fOneBitResolution; // Temporary (should be taken from file or DB) int nBits; double detectedPhotonsPerMeV; double energyRange; //GeV double excessNoiseFactor; double firstSamplePhase; int number_of_samples_in_waveform; double Shaping_diff_time; //s double Shaping_int_time; //s double crystal_time_constant; //s double incoherent_elec_noise_width_GeV; //GeV double sampleRate; bool use_shaped_noise; bool use_photon_statistic; double firstADCBinTime; Double_t fGevPeakAnalogue; Double_t fEnergyCutGeV; //Energy cut for waveform which Hit have energy above this level EmcDigiPar* fDigiPar; /** Digitisation parameter container **/ /** Get parameter containers **/ virtual void SetParContainers(); string fFileGeo; EmcMapper *fEmcMap; //! Emc mapper (transient data member) std::map wf_map; std::vector wf_vec; std::map::iterator wf_iter; std::vector::iterator wf_vec_iter; std::map tciMap; std::map ::iterator tciIter; std::vector keep_index; std::vector::iterator keep_index_iter; ClassDef(EmcHitsToWaveform,1); }; #endif