]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/AliPHOSDigitizer.h
Made a new abstract base class; AliL3HoughBaseTransformer for different implementations
[u/mrichter/AliRoot.git] / PHOS / AliPHOSDigitizer.h
CommitLineData
990119d6 1#ifndef ALIPHOSDigitizer_H
2#define ALIPHOSDigitizer_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8//_________________________________________________________________________
9// Task Class for making SDigits in PHOS
baef0810 10// Class performs digitization of Summable digits (in the PHOS case this is just
11// sum of contributions of all primary particles into given cell).
12// In addition it performs mixing of summable digits from different events.
990119d6 13//
14//*-- Author: Dmitri Peressounko(SUBATECH & KI)
15
16
17// --- ROOT system ---
eb6c38ee 18#include "TObjString.h"
8cb3533f 19class TArrayI ;
990119d6 20// --- Standard library ---
21
22// --- AliRoot header files ---
3f81a70b 23#include "AliDigitizer.h"
990119d6 24class AliPHOSSDigitizer ;
3f81a70b 25class AliRunDigitizer ;
8cb3533f 26
93aeb834 27class AliPHOSDigitizer: public AliDigitizer {
990119d6 28
29public:
30 AliPHOSDigitizer() ; // ctor
3f81a70b 31 AliPHOSDigitizer(const char *headerFile, const char * name = "Default") ;
32 AliPHOSDigitizer(AliRunDigitizer * ard) ;
33 AliPHOSDigitizer(const AliPHOSDigitizer & dtizer)
34 {( (AliPHOSDigitizer &)dtizer ).Copy(*this) ;}
990119d6 35 virtual ~AliPHOSDigitizer() ;
8cb3533f 36
7b7c1533 37 void Digitize(const Int_t event) ; // Make Digits from SDigits
3758d9fc 38 void Exec(Option_t *option); // Supervising method
8cb3533f 39
3758d9fc 40 //CPV parameters
7b7c1533 41 const Float_t GetCPVNoise() const { return fCPVNoise ;}
42 const Float_t GetCPVThreshold() const { return fCPVDigitThreshold ;}
3758d9fc 43 const Float_t GetCPVchannel() const { return fADCchanelCpv; }
44 const Float_t GetCPVpedestal() const { return fADCpedestalCpv; }
45
46 void SetCPVNoise(Float_t CPVNoise) {fCPVNoise = CPVNoise;}
47 void SetCPVThreshold(Float_t CPVThreshold) {fCPVDigitThreshold= CPVThreshold;}
48 void SetNCPVchannels(Int_t n) { fNADCcpv = n; }
49 void SetCPVchannel(Float_t width) { fADCchanelCpv = width; }
50 void SetCPVpedestal(Float_t ped) { fADCpedestalCpv = ped; }
51
52
53 //EMC parameters
7b7c1533 54 const Float_t GetEMCThreshold() const { return fEMCDigitThreshold;}
3758d9fc 55 const Float_t GetEMCchannel() const { return fADCchanelEmc; }
56 const Float_t GetEMCpedestal() const { return fADCpedestalEmc; }
7b7c1533 57 const Float_t GetPinNoise() const { return fPinNoise;}
9688c1dd 58 const Float_t GetTimeResolution() const { return fTimeResolution ; }
7b7c1533 59
3758d9fc 60 void SetEMCThreshold(Float_t EMCThreshold) {fEMCDigitThreshold = EMCThreshold;}
61 void SetPinNoise(Float_t PinNoise ) {fPinNoise = PinNoise;}
62 void SetNEMCchannels(Int_t n) { fNADCemc = n; }
63 void SetEMCchannel(Float_t width) { fADCchanelEmc = width; }
64 void SetEMCpedestal(Float_t ped) { fADCpedestalEmc = ped ; }
65
66 //General
67 const Int_t GetDigitsInRun() const { return fDigitsInRun ;}
68
7b7c1533 69 void MixWith(const char* HeaderFile) ; // Add another one file to mix
3f81a70b 70 void Print(Option_t* option)const ;
8cb3533f 71 void Reset() ; //restarts starts event processing from 0 event(s)
72
8cb3533f 73 void SetSDigitsBranch(const char* file) ;
74
baef0810 75 AliPHOSDigitizer & operator = (const AliPHOSDigitizer & rvalue) {
76 // assignement operator requested by coding convention but not needed
77 abort() ;
78 return *this ;
79 }
80
990119d6 81private:
3758d9fc 82
3f81a70b 83 Bool_t Init() ;
8cb3533f 84 void PrintDigits(Option_t * option) ;
7b7c1533 85 void WriteDigits(Int_t evt) ; // Writes Digits for particular event
9688c1dd 86 Float_t TimeOfNoise(void) ; // Calculate time signal generated by noise
9688c1dd 87 //Calculate the time of crossing of the threshold by front edge
3758d9fc 88 Float_t FrontEdgeTime(TClonesArray * ticks) ;
89 //Calculate digitized signal with gived ADC parameters
90 Int_t DigitizeEnergy(Float_t energy, Int_t absId) ;
990119d6 91
3758d9fc 92private:
8cb3533f 93
9688c1dd 94 Int_t fEmcCrystals ; // Number of EMC crystalls in the given geometry
3758d9fc 95
990119d6 96 Float_t fPinNoise ; // Electronics noise in EMC
97 Float_t fEMCDigitThreshold ; // Threshold for storing digits in EMC
3758d9fc 98
990119d6 99 Float_t fCPVNoise ; // Noise in CPV
100 Float_t fCPVDigitThreshold ; // Threshold for storing digits in CPV
3758d9fc 101
3f81a70b 102 Int_t fDigitsInRun ; //! Total number of digits in one run
990119d6 103
9688c1dd 104 Float_t fTimeResolution ; // Time resolution of FEE electronics
9688c1dd 105 Float_t fTimeThreshold ; // Threshold to start timing for given crystall
106 Float_t fTimeSignalLength ; // Length of the timing signal
107
3758d9fc 108 Float_t fADCchanelEmc ; // width of one ADC channel in GeV
109 Float_t fADCpedestalEmc ; //
110 Int_t fNADCemc ; // number of channels in EMC ADC
111
112 Float_t fADCchanelCpv ; // width of one ADC channel in CPV 'popugais'
113 Float_t fADCpedestalCpv ; //
114 Int_t fNADCcpv ; // number of channels in CPV ADC
9688c1dd 115
990119d6 116
117 ClassDef(AliPHOSDigitizer,1) // description
118
119};
120
121
122#endif // AliPHOSDigitizer_H