X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSDigitizer.h;h=bcd7f295dd56aaa827691b83cda89bb691d21471;hb=b8aa9154c4138385e0904de626e1c778bb894906;hp=ccb955cd40bae6ed39561e3048d1b7d333be2e18;hpb=8c14029282abb72e3174748ac8e578fbc459ce17;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSDigitizer.h b/PHOS/AliPHOSDigitizer.h index ccb955cd40b..bcd7f295dd5 100644 --- a/PHOS/AliPHOSDigitizer.h +++ b/PHOS/AliPHOSDigitizer.h @@ -5,6 +5,26 @@ /* $Id$ */ +/* History of cvs commits: + * + * $Log$ + * Revision 1.37 2007/10/10 09:05:10 schutz + * Changing name QualAss to QA + * + * Revision 1.36 2007/09/30 17:08:20 schutz + * Introducing the notion of QA data acquisition cycle (needed by online) + * + * Revision 1.35 2007/08/07 14:12:03 kharlov + * Quality assurance added (Yves Schutz) + * + * Revision 1.34 2006/04/29 20:25:30 hristov + * Decalibration is implemented (Yu.Kharlov) + * + * Revision 1.33 2005/05/28 14:19:04 schutz + * Compilation warnings fixed by T.P. + * + */ + //_________________________________________________________________________ // Task Class for making SDigits in PHOS // Class performs digitization of Summable digits (in the PHOS case this is just @@ -15,7 +35,7 @@ // --- ROOT system --- -#include "TObjString.h" +//#include "TObjString.h" class TArrayI ; class TClonesArray ; @@ -23,62 +43,32 @@ class TClonesArray ; // --- AliRoot header files --- #include "AliDigitizer.h" -class AliPHOSSDigitizer ; -class AliRunDigitizer ; +#include "AliConfig.h" +#include "AliPHOSPulseGenerator.h" +class AliDigitizationInput ; +class AliPHOSCalibData ; class AliPHOSDigitizer: public AliDigitizer { public: AliPHOSDigitizer() ; // ctor - AliPHOSDigitizer(const TString alirunFileNameFile, const TString eventFolderName = AliConfig::fgkDefaultEventFolderName) ; - AliPHOSDigitizer(const AliPHOSDigitizer & dtizer) ; - AliPHOSDigitizer(AliRunDigitizer * manager) ; + AliPHOSDigitizer(TString alirunFileNameFile, TString eventFolderName = AliConfig::GetDefaultEventFolderName()) ; + AliPHOSDigitizer(AliDigitizationInput * digInput) ; virtual ~AliPHOSDigitizer() ; - void Digitize(const Int_t event) ; // Make Digits from SDigits - void Exec(Option_t *option); // Supervising method - - //CPV parameters - const Float_t GetCPVNoise() const { return fCPVNoise ;} - const Float_t GetCPVThreshold() const { return fCPVDigitThreshold ;} - const Float_t GetCPVchannel() const { return fADCchanelCpv; } - const 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 - const Float_t GetEMCThreshold() const { return fEMCDigitThreshold;} - const Float_t GetEMCchannel() const { return fADCchanelEmc; } - const Float_t GetEMCpedestal() const { return fADCpedestalEmc; } - const Float_t GetPinNoise() const { return fPinNoise;} - const 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(Int_t event) ; // Make Digits from SDigits + void Digitize(Option_t *option); // Supervising method + + void SetEventRange(Int_t first=0, Int_t last=-1) {fFirstEvent=first; fLastEvent=last; } //General - const Int_t GetDigitsInRun() const { return fDigitsInRun ;} - void MixWith(const TString alirunFileName, - const TString eventFolderName = AliConfig::fgkDefaultEventFolderName) ; // Add another one file to mix - void Print()const ; - - AliPHOSDigitizer & operator = (const AliPHOSDigitizer & /*rvalue*/) { - // assignement operator requested by coding convention but not needed - Fatal("operator =", "not implemented") ; - return *this ; - } + Int_t GetDigitsInRun() const { return fDigitsInRun ;} + void Print(const Option_t * = "")const ; + private: + AliPHOSDigitizer(const AliPHOSDigitizer & dtizer) ; + AliPHOSDigitizer & operator = (const AliPHOSDigitizer & /*rvalue*/); virtual Bool_t Init() ; void InitParameters() ; @@ -87,10 +77,15 @@ 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 - Int_t DigitizeEnergy(Float_t energy, Int_t absId) ; + 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: @@ -104,28 +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 + 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 + AliPHOSCalibData* fcdb; //! Calibration parameters DB - 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 + Int_t fEventCounter ; //! counts the events processed - TString fEventFolderName; // skowron: name of EFN to read data from in stand alone mode + 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,2) // description + ClassDef(AliPHOSDigitizer,5) // description };