Line data Source code
1 : #ifndef ALIITS_FOGENERATORSPD_H
2 : #define ALIITS_FOGENERATORSPD_H
3 :
4 : /////////////////////////////////////////////////////////////////////
5 : // Author: Henrik Tydesjo //
6 : // //
7 : // This class is used to generate Fast-OR signals from SPD chips. //
8 : // //
9 : // This procedure is meant to be used during the digitization, //
10 : // and will be based on the number of pixels firing in each chip. //
11 : // The method 'ProcessPixelHit' should be used for each fired //
12 : // pixel. An efficiency value on Fast-Or signal creation upon a //
13 : // single fired pixel will then be used. Optionally, there may be //
14 : // one value per chip or even one value per column. These values //
15 : // are taken from the class AliITSFOEfficiencySPD, normally placed //
16 : // in OCDB. //
17 : // //
18 : // Through a similar class, AliITSFONoiseSPD, there is a //
19 : // possibility to apply random noise to the generation of fast-or //
20 : // signals. This will then be performed by method 'ProcessNoise', //
21 : // normally called after the processing of the fired pixels. //
22 : // //
23 : // The output signals are represented by the AliITSFOsignalsSPD //
24 : // class. Basically, it contains a bit map with all the 1200 pixel //
25 : // chips. //
26 : /////////////////////////////////////////////////////////////////////
27 :
28 : #include "AliITSFOEfficiencySPD.h"
29 : #include "AliITSFONoiseSPD.h"
30 : #include "AliITSFOSignalsSPD.h"
31 :
32 : class AliITSFOGeneratorSPD {
33 :
34 : public:
35 : AliITSFOGeneratorSPD();
36 : AliITSFOGeneratorSPD(AliITSFOEfficiencySPD* ocdbEff, AliITSFONoiseSPD* ocdbNoise);
37 : AliITSFOGeneratorSPD(const AliITSFOGeneratorSPD& handle);
38 : virtual ~AliITSFOGeneratorSPD();
39 : AliITSFOGeneratorSPD& operator=(const AliITSFOGeneratorSPD& handle);
40 :
41 : virtual void SetEfficiencyAndNoise(AliITSFOEfficiencySPD* ocdbEff, AliITSFONoiseSPD* ocdbNoise);
42 : virtual void SetEfficiency(AliITSFOEfficiencySPD* ocdbEff);
43 : virtual void SetNoise(AliITSFONoiseSPD* ocdbNoise);
44 0 : virtual Bool_t EfficiencyAndNoiseAreSet() {return fOCDBEff!=NULL && fOCDBNoise!=NULL;}
45 :
46 16 : virtual void ResetSignals() {fSignals.ResetSignals();}
47 :
48 : virtual void ProcessPixelHitM(UInt_t module, UInt_t colM, UInt_t rowM);
49 : virtual void ProcessPixelHit(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row);
50 : virtual void ProcessNoise();
51 :
52 8 : virtual AliITSFOSignalsSPD* GetFOSignals() {return &fSignals;}
53 :
54 :
55 : protected:
56 : AliITSFOSignalsSPD fSignals; // Fast-OR signals object
57 :
58 : AliITSFOEfficiencySPD *fOCDBEff; // link to FO efficiency obj
59 : AliITSFONoiseSPD *fOCDBNoise; // link to FO noise obj
60 :
61 : };
62 :
63 : #endif
|