//---------------------------------------------------------------------- // File and Version Information: // $Id: Exp $ // // Description: // Class PndEmcHitsToWaveform. 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 PndEmcHitsToWaveform_HH #define PndEmcHitsToWaveform_HH #include "PndEmcWaveform.h" #include "PndEmcTwoCoordIndex.h" #include "CbmTask.h" #include #include //class PndEmcTwoCoordIndex; //class PndEmcWaveform; class PndEmcMapper; class TClonesArray; class PndEmcDigiPar; class PndEmcHitsToWaveform : public CbmTask { public: // Constructors PndEmcHitsToWaveform(Int_t verbose=0); // Destructor virtual ~PndEmcHitsToWaveform(); /** Virtual method Init **/ virtual InitStatus Init(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); private: /** Input array of PndEmcHits **/ TClonesArray* fHitArray; /** Output array of PndEmcWaveforms **/ TClonesArray* fWaveformArray; Double_t fOneBitResolution; // Temporary (should be taken from file or DB) Int_t fNBits; Double_t fDetectedPhotonsPerMeV; Double_t fEnergyRange; //GeV Double_t fExcessNoiseFactor; Double_t fFirstSamplePhase; Int_t fNumber_of_samples_in_waveform; Double_t fShaping_diff_time; //s Double_t fShaping_int_time; //s Double_t fCrystal_time_constant; //s Double_t fIncoherent_elec_noise_width_GeV; //GeV Double_t fSampleRate; Int_t fUse_shaped_noise; Int_t fUse_photon_statistic; Int_t fMapVersion; Double_t fFirstADCBinTime; Double_t fGevPeakAnalogue; Double_t fEnergyCutGeV; //Energy cut for waveform which Hit have energy above this level PndEmcDigiPar* fDigiPar; /** Digitisation parameter container **/ /** Get parameter containers **/ virtual void SetParContainers(); PndEmcMapper *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; /** Verbosity level **/ Int_t fVerbose; ClassDef(PndEmcHitsToWaveform,1); }; #endif