X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSDigitizer.h;h=29337465a012b31587c886adc03c1c262bcbf03f;hb=39926a846f362f19671e5f2ce41b664f2e14ab4a;hp=9dafc4452afdec667603f0b7c19ad400548f17ea;hpb=3f81a70b8b0524129c569deb37cb84ea27c4af2a;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSDigitizer.h b/PHOS/AliPHOSDigitizer.h index 9dafc4452af..29337465a01 100644 --- a/PHOS/AliPHOSDigitizer.h +++ b/PHOS/AliPHOSDigitizer.h @@ -5,6 +5,14 @@ /* $Id$ */ +/* History of cvs commits: + * + * $Log$ + * 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,9 +23,10 @@ // --- ROOT system --- -#include "TTask.h" -#include "TObjString.h" +//#include "TObjString.h" class TArrayI ; +class TClonesArray ; + // --- Standard library --- // --- AliRoot header files --- @@ -25,70 +34,111 @@ class TArrayI ; class AliPHOSSDigitizer ; class AliRunDigitizer ; -class AliPHOSDigitizer: public TTask { +class AliPHOSDigitizer: public AliDigitizer { public: AliPHOSDigitizer() ; // ctor - AliPHOSDigitizer(const char *headerFile, const char * name = "Default") ; - AliPHOSDigitizer(AliRunDigitizer * ard) ; - AliPHOSDigitizer(const AliPHOSDigitizer & dtizer) - {( (AliPHOSDigitizer &)dtizer ).Copy(*this) ;} + AliPHOSDigitizer(TString alirunFileNameFile, TString eventFolderName = AliConfig::GetDefaultEventFolderName()) ; + AliPHOSDigitizer(const AliPHOSDigitizer & dtizer) ; + AliPHOSDigitizer(AliRunDigitizer * manager) ; virtual ~AliPHOSDigitizer() ; - void Digitize(const Int_t event) ; // Make Digits from SDigits - void Exec(Option_t *option); // Supervising method + void Digitize(Int_t event) ; // Make Digits from SDigits + void Exec(Option_t *option); // Supervising method - const Float_t GetCPVNoise() const { return fCPVNoise ;} - const Float_t GetCPVThreshold() const { return fCPVDigitThreshold ;} - const Int_t GetDigitsInRun() const { return fDigitsInRun ;} - const Float_t GetEMCThreshold() const { return fEMCDigitThreshold;} - const Float_t GetPedestal() const { return fPedestal; } - const Float_t GetPinNoise() const { return fPinNoise;} - const Float_t GetPPSDNoise() const { return fPPSDNoise ;} - const Float_t GetPPSDThreshold()const { return fPPSDDigitThreshold ;} - const Float_t GetSlope() const { return fSlope; } - // const TArrayI * GetCurrentEvents()const { return fIevent ;} - - void MixWith(const char* HeaderFile) ; // Add another one file to mix - void Print(Option_t* option)const ; - void Reset() ; //restarts starts event processing from 0 event(s) + //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 SetEMCThreshold(Float_t EMCThreshold) {fEMCDigitThreshold = EMCThreshold;} - void SetPinNoise(Float_t PinNoise ) {fPinNoise = PinNoise;} - void SetPPSDNoise(Float_t PPSDNoise) {fPPSDNoise = PPSDNoise;} - void SetPPSDThreshold(Float_t PPSDThreshold){fPPSDDigitThreshold = PPSDThreshold;} - - void SetSDigitsBranch(const char* file) ; - - AliPHOSDigitizer & operator = (const AliPHOSDigitizer & rvalue) { + 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 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 - abort() ; + Fatal("operator =", "not implemented") ; return *this ; } private: - Bool_t Init() ; + + virtual Bool_t Init() ; + void InitParameters() ; void PrintDigits(Option_t * option) ; - void WriteDigits(Int_t evt) ; // Writes Digits for particular event + void Unload() ; + void WriteDigits() ; // Writes Digits for the current event + Float_t TimeOfNoise(void) const; // Calculate time signal generated by noise + + //Calculate the time of crossing of the threshold by front edge + Float_t FrontEdgeTime(TClonesArray * ticks) const ; + //Calculate digitized signal with gived ADC parameters + void DecalibrateEMC(AliPHOSDigit * digit); + Int_t DigitizeCPV(Float_t charge, Int_t absId) ; private: - Float_t fPedestal ; // Calibration parameters - Float_t fSlope ; // read from SDigitizer + Bool_t fDefaultInit; //! Says if the task was created by defaut ctor (only parameters are initialized) + Int_t fDigitsInRun ; //! Total number of digits in one run + Bool_t fInit ; //! To avoid overwriting existing files + + Int_t fInput ; // Number of files to merge + TString * fInputFileNames ; //[fInput] List of file names to merge + TString * fEventNames ; //[fInput] List of event names to merge + + Int_t fEmcCrystals ; // Number of EMC crystalls in the given geometry - AliRunDigitizer * fARD ; //! Pointer to the Digitization Manager class 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 fPPSDNoise ; // Noise in PPSD - Float_t fPPSDDigitThreshold ; // Threshold for storing digits in PPSD - Int_t fDigitsInRun ; //! Total number of digits in one run - ClassDef(AliPHOSDigitizer,1) // description + 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 + + ClassDef(AliPHOSDigitizer,3) // description };