1. Digitization starts from CbmEmcHit produced without energy treshold and at the end produces object EmcDigi. The sequence for digitizationis the following CbmEmcHit ->EmcWaveform (via EmcHitToWaveform)-> EmcDigi (via EmcWaveformToDigi) Reconstruction should start from EmcDigi. 2. EmcMapper. Class which provides mapping between unique index of crystal and TwoCoordinateIndex. If geometry is implemented in different way correspondent mapping should be implemented in EmcMapper. Mapping for Forward endcup is not implemented yet. 3. TwoCoordinateIndex. Object which contains 2 dimensional index of crystal and reference to its the neigbours. It simplify clustering algorithms. 4. NeighbourStore.h - typedef NeighbourStore which is set of TwoCoordinateIndex for neigbours of crystal##################################################################################### see $(PANDAROOT)/emc #revised classes | source files PndEmcWaveform EmcData/PndEmcWaveform.cxx(.h) PndEmcBump EmcData/PndEmcBump.cxx(.h) PndEmcHitProducer EmcDigi/PndEmcHitProducer.cxx(.h) PndEmcHitsToWaveform EmcDigi/PndEmcHitsToWaveform.cxx(.h) PndEmcWaveformToDigi EmcDigi/PndEmcWaveformToDigi.cxx(.h) PndEmcDigiPar EmcDigi/PndEmcDigiPar.cxx(.h) PndEmcMakeCluster EmcReco/PndEmcMakeCluster.cxx(.h) PndEmcExpClusterSplitter EmcReco/PndEmcExpClusterSplitter.cxx(.h) PndEmcContFact PndEmcContFact.cxx(.h) #new classes | source files PndEmcWaveformWriteoutBuffer EmcTimeBased/PndEmcWaveformWriteoutBuffer.cxx PndEmcWaveformRingSorter EmcTimeBased/PndEmcWaveformRingSorter.cxx PndEmcWaveformSorterTask EmcTimeBased/PndEmcWaveformSorterTask.cxx PndEmcFpgaPar EmcTimeBased/PndEmcFpgaPar.cxx PndEmcDigiCalibrator EmcTimeBased/PndEmcDigiCalibrator.cxx PndEmcCorrBump EmcTimeBased/PndEmcCorrBump.cxx PndEmcAnalysis EmcTimeBased/PndEmcAnalysis.cxx # parameter file #################################################################################### class changes reason #################################################################################### PndEmcWaveform (1) mother class changed. PndEmcWaveform: public FairMultiLinkedData requirement of time-based simulation. -->PndEmcWaveform: public FairTimeStamp (2) new data members, Double_t fSampleRate; used to calculate time information. Double_t fBaselineValue; convenient for FPGA algorithm analysis. std::vector fSignalError; error of each sampling value in waveform. std::vector fEvt; used to trace events a waveform comes from . static Double_t BarrelOverlapTime; determine when waveforms pile up with static Double_t ForwardOverlapTime; what overlapped time. static Double_t ShashylikOverlapTime; PndEmcBump (1) new data members, Int_t fEvtNo; used to trace a bump from which event. Double_t fTimeStamp; time information. PndEmcHitProducer (1) member function: cleansortmclist in this function, we tag all hits with its MC truch track identifier. so, we know a hit was produced by which primary track. (2) line 266, skip points with zero deposited energy. (3) line 267,268 bug report, we can find points with negative track identifer. PndEmcHitsToWaveform (1) new interface RunTimeBased() requirements of time-based simulation. (2) line 90, switch for general simulation or time-based simulation. (3) line 122, 134, 127,128 new paramters for Forward Calor. waveform shape. (4) line 181, 182 create pulseshape for Forward part. (5) line 376-378,454-456 only time-based simulation (6) more differences small changes wont affect final results PndEmcWaveformToDigi (1) new interface RunTimeBased() requirements of time-based simulation. (2) line 72-76 switch for general simulation or time-based simulation. (3) line 196-247 use FPGA feature extraction algorithm to do digitization (replace old version). (4) line 292-304 only for time-based simulation, load time-order-sorted waveforms (5) line 395-403 only for time-based simulation, load undetermined digis. PndEmcDigi (1) line 47 PndEmcDigi.h new static data member static TClonesArray* fDigiArrayTBD; used for time-based simulation, digis in current event, if their timestamps fail to match, they will be pushed into this array and reused in next event for reconstruction. ################################################################################################################ new class purpose PndEmcWaveformWriteoutBuffer used to take care of all waveforms in time-based simulation. PndEmcWaveformRingSorter PndEmcWaveformSorterTask used to produce pileup waveforms when condition is satisfied. PndEmcFpgaPar access to FPGA parameters setup. PndEmcCorrBump used to analysis a bump, for all digis in this bump, if their timestamps fail to match, they will be removed, and the bump will be remake. PndEmcDigiCalibrator calibrate digi timestamps, the calibrated time is used as a reference event time, so we can group digis with closed timestamps. PndEmcAnalysis a helper class, used to save trees into tuples, we can judge whether each class works well or not.