X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSDigitizer.h;h=bcd7f295dd56aaa827691b83cda89bb691d21471;hb=b37e765f2bafb85a8a3d8f7b5632894ee7410f12;hp=861b413726e28a2c3b7a3c653c831c7ad705269f;hpb=c65c502a01b61b2ef74c74e3532768e30ed7d51a;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSDigitizer.h b/PHOS/AliPHOSDigitizer.h index 861b413726e..bcd7f295dd5 100644 --- a/PHOS/AliPHOSDigitizer.h +++ b/PHOS/AliPHOSDigitizer.h @@ -43,67 +43,32 @@ class TClonesArray ; // --- AliRoot header files --- #include "AliDigitizer.h" -class AliPHOSSDigitizer ; -//class AliPHOSQADataMaker ; -class AliRunDigitizer ; +#include "AliConfig.h" +#include "AliPHOSPulseGenerator.h" +class AliDigitizationInput ; +class AliPHOSCalibData ; class AliPHOSDigitizer: public AliDigitizer { public: AliPHOSDigitizer() ; // ctor AliPHOSDigitizer(TString alirunFileNameFile, TString eventFolderName = AliConfig::GetDefaultEventFolderName()) ; - AliPHOSDigitizer(const AliPHOSDigitizer & dtizer) ; - AliPHOSDigitizer(AliRunDigitizer * manager) ; + AliPHOSDigitizer(AliDigitizationInput * digInput) ; virtual ~AliPHOSDigitizer() ; void Digitize(Int_t event) ; // Make Digits from SDigits - void Exec(Option_t *option); // Supervising method - - //CPV parameters - Float_t GetCPVNoise() const { return fCPVNoise ;} - Float_t GetCPVThreshold() const { return fCPVDigitThreshold ;} - Float_t GetCPVchannel() const { return fADCchanelCpv; } - Float_t GetCPVpedestal() const { return fADCpedestalCpv; } - - void SetCPVNoise(Float_t CPVNoise) {fCPVNoise = CPVNoise;} - void SetCPVThreshold(Float_t CPVThreshold) {fCPVDigitThreshold= CPVThreshold;} - void SetNCPVchannels(Int_t n) { fNADCcpv = n; } - void SetCPVchannel(Float_t width) { fADCchanelCpv = width; } - void SetCPVpedestal(Float_t ped) { fADCpedestalCpv = ped; } - - - //EMC parameters - Float_t GetEMCThreshold() const { return fEMCDigitThreshold;} - Float_t GetEMCchannel() const { return fADCchanelEmc; } - Float_t GetEMCpedestal() const { return fADCpedestalEmc; } - Float_t GetPinNoise() const { return fPinNoise;} - Float_t GetTimeResolution() const { return fTimeResolution ; } - - void SetEMCThreshold(Float_t EMCThreshold) {fEMCDigitThreshold = EMCThreshold;} - void SetPinNoise(Float_t PinNoise ) {fPinNoise = PinNoise;} - void SetNEMCchannels(Int_t n) { fNADCemc = n; } - void SetEMCchannel(Float_t width) { fADCchanelEmc = width; } - void SetEMCpedestal(Float_t ped) { fADCpedestalEmc = ped ; } - void SetEventFolderName(TString name) { fEventFolderName = name ; } - void SetTimeResolution(Float_t res){ fTimeResolution = res ; } + void Digitize(Option_t *option); // Supervising method + void SetEventRange(Int_t first=0, Int_t last=-1) {fFirstEvent=first; fLastEvent=last; } //General Int_t GetDigitsInRun() const { return fDigitsInRun ;} - void MixWith(TString alirunFileName, - TString eventFolderName = AliConfig::GetDefaultEventFolderName()) ; // Add another one file to mix void Print(const Option_t * = "")const ; - AliPHOSDigitizer & operator = (const AliPHOSDigitizer & /*rvalue*/) { - // assignement operator requested by coding convention but not needed - Fatal("operator =", "not implemented") ; - return *this ; - } - - private: -// AliPHOSQADataMaker * GetQADataMaker() const { return fQADM ; } + AliPHOSDigitizer(const AliPHOSDigitizer & dtizer) ; + AliPHOSDigitizer & operator = (const AliPHOSDigitizer & /*rvalue*/); virtual Bool_t Init() ; void InitParameters() ; @@ -112,10 +77,14 @@ private: void WriteDigits() ; // Writes Digits for the current event Float_t TimeOfNoise(void) const; // Calculate time signal generated by noise + Float_t TimeResolution(Float_t energy) ; //TOF resolution + //Calculate the time of crossing of the threshold by front edge - Float_t FrontEdgeTime(TClonesArray * ticks) const ; + // Float_t FrontEdgeTime(TClonesArray * ticks) const ; //Calculate digitized signal with gived ADC parameters - void DecalibrateEMC(AliPHOSDigit * digit); + Float_t Calibrate(Float_t amp, Int_t absId) ; + Float_t CalibrateT(Float_t time, Int_t absId) ; + void Decalibrate(AliPHOSDigit * digit); Int_t DigitizeCPV(Float_t charge, Int_t absId) ; private: @@ -130,35 +99,18 @@ private: Int_t fEmcCrystals ; // Number of EMC crystalls in the given geometry - Float_t fPinNoise ; // Electronics noise in EMC - Float_t fEMCDigitThreshold ; // Threshold for storing digits in EMC - - Float_t fCPVNoise ; // Noise in CPV - Float_t fCPVDigitThreshold ; // Threshold for storing digits in CPV - - - Float_t fTimeResolution ; // Time resolution of FEE electronics - Float_t fTimeThreshold ; // Threshold to start timing for given crystall - Float_t fTimeSignalLength ; // Length of the timing signal - - Float_t fADCchanelEmc ; // width of one ADC channel in GeV - Float_t fADCpedestalEmc ; // value of the EMC ADC pedestal - Int_t fNADCemc ; // number of channels in EMC ADC - - Float_t fADCchanelCpv ; // width of one ADC channel in CPV units - Float_t fADCpedestalCpv ; // value of the CPV ADC pedestal in CPV units - Int_t fNADCcpv ; // number of channels in CPV ADC - TString fEventFolderName; // skowron: name of EFN to read data from in stand alone mode Int_t fFirstEvent; // first event to process Int_t fLastEvent; // last event to process -// AliPHOSQADataMaker * fQADM ; //!Quality Assurance Data Maker + AliPHOSCalibData* fcdb; //! Calibration parameters DB + Int_t fEventCounter ; //! counts the events processed - - //QA stuff -// static const Int_t fgkCycles = 9999 ; // QA data accumulation cycle - ClassDef(AliPHOSDigitizer,4) // description + AliPHOSPulseGenerator *fPulse; //! Pulse shape generator + Int_t *fADCValuesLG; //! Array of low-gain ALTRO samples + Int_t *fADCValuesHG; //! Array of high-gain ALTRO samples + + ClassDef(AliPHOSDigitizer,5) // description };