ROOT logo
#ifndef ALIITS_FOGENERATORSPD_H
#define ALIITS_FOGENERATORSPD_H

/////////////////////////////////////////////////////////////////////
// Author: Henrik Tydesjo                                          //
//                                                                 //
// This class is used to generate Fast-OR signals from SPD chips.  //
//                                                                 //
// This procedure is meant to be used during the digitization,     //
// and will be based on the number of pixels firing in each chip.  //
// The method 'ProcessPixelHit' should be used for each fired      //
// pixel. An efficiency value on Fast-Or signal creation upon a    //
// single fired pixel will then be used. Optionally, there may be  //
// one value per chip or even one value per column. These values   //
// are taken from the class AliITSFOEfficiencySPD, normally placed //
// in OCDB.                                                        //
//                                                                 //
// Through a similar class, AliITSFONoiseSPD, there is a           //
// possibility to apply random noise to the generation of fast-or  //
// signals. This will then be performed by method 'ProcessNoise',  //
// normally called after the processing of the fired pixels.       //
//                                                                 //
// The output signals are represented by the AliITSFOsignalsSPD    //
// class. Basically, it contains a bit map with all the 1200 pixel //
// chips.                                                          //
/////////////////////////////////////////////////////////////////////

#include "AliITSFOEfficiencySPD.h"
#include "AliITSFONoiseSPD.h"
#include "AliITSFOSignalsSPD.h"

class AliITSFOGeneratorSPD {

 public:
  AliITSFOGeneratorSPD();
  AliITSFOGeneratorSPD(AliITSFOEfficiencySPD* ocdbEff, AliITSFONoiseSPD* ocdbNoise);
  AliITSFOGeneratorSPD(const AliITSFOGeneratorSPD& handle);
  virtual ~AliITSFOGeneratorSPD();
  AliITSFOGeneratorSPD& operator=(const AliITSFOGeneratorSPD& handle);

  virtual void   SetEfficiencyAndNoise(AliITSFOEfficiencySPD* ocdbEff, AliITSFONoiseSPD* ocdbNoise);
  virtual void   SetEfficiency(AliITSFOEfficiencySPD* ocdbEff);
  virtual void   SetNoise(AliITSFONoiseSPD* ocdbNoise);
  virtual Bool_t EfficiencyAndNoiseAreSet() {return fOCDBEff!=NULL && fOCDBNoise!=NULL;}

  virtual void   ResetSignals() {fSignals.ResetSignals();}

  virtual void   ProcessPixelHitM(UInt_t module, UInt_t colM, UInt_t rowM);
  virtual void   ProcessPixelHit(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row);
  virtual void   ProcessNoise();

  virtual AliITSFOSignalsSPD* GetFOSignals() {return &fSignals;}


 protected:
  AliITSFOSignalsSPD     fSignals;   // Fast-OR signals object

  AliITSFOEfficiencySPD *fOCDBEff;   // link to FO efficiency obj
  AliITSFONoiseSPD      *fOCDBNoise; // link to FO noise obj

};

#endif
 AliITSFOGeneratorSPD.h:1
 AliITSFOGeneratorSPD.h:2
 AliITSFOGeneratorSPD.h:3
 AliITSFOGeneratorSPD.h:4
 AliITSFOGeneratorSPD.h:5
 AliITSFOGeneratorSPD.h:6
 AliITSFOGeneratorSPD.h:7
 AliITSFOGeneratorSPD.h:8
 AliITSFOGeneratorSPD.h:9
 AliITSFOGeneratorSPD.h:10
 AliITSFOGeneratorSPD.h:11
 AliITSFOGeneratorSPD.h:12
 AliITSFOGeneratorSPD.h:13
 AliITSFOGeneratorSPD.h:14
 AliITSFOGeneratorSPD.h:15
 AliITSFOGeneratorSPD.h:16
 AliITSFOGeneratorSPD.h:17
 AliITSFOGeneratorSPD.h:18
 AliITSFOGeneratorSPD.h:19
 AliITSFOGeneratorSPD.h:20
 AliITSFOGeneratorSPD.h:21
 AliITSFOGeneratorSPD.h:22
 AliITSFOGeneratorSPD.h:23
 AliITSFOGeneratorSPD.h:24
 AliITSFOGeneratorSPD.h:25
 AliITSFOGeneratorSPD.h:26
 AliITSFOGeneratorSPD.h:27
 AliITSFOGeneratorSPD.h:28
 AliITSFOGeneratorSPD.h:29
 AliITSFOGeneratorSPD.h:30
 AliITSFOGeneratorSPD.h:31
 AliITSFOGeneratorSPD.h:32
 AliITSFOGeneratorSPD.h:33
 AliITSFOGeneratorSPD.h:34
 AliITSFOGeneratorSPD.h:35
 AliITSFOGeneratorSPD.h:36
 AliITSFOGeneratorSPD.h:37
 AliITSFOGeneratorSPD.h:38
 AliITSFOGeneratorSPD.h:39
 AliITSFOGeneratorSPD.h:40
 AliITSFOGeneratorSPD.h:41
 AliITSFOGeneratorSPD.h:42
 AliITSFOGeneratorSPD.h:43
 AliITSFOGeneratorSPD.h:44
 AliITSFOGeneratorSPD.h:45
 AliITSFOGeneratorSPD.h:46
 AliITSFOGeneratorSPD.h:47
 AliITSFOGeneratorSPD.h:48
 AliITSFOGeneratorSPD.h:49
 AliITSFOGeneratorSPD.h:50
 AliITSFOGeneratorSPD.h:51
 AliITSFOGeneratorSPD.h:52
 AliITSFOGeneratorSPD.h:53
 AliITSFOGeneratorSPD.h:54
 AliITSFOGeneratorSPD.h:55
 AliITSFOGeneratorSPD.h:56
 AliITSFOGeneratorSPD.h:57
 AliITSFOGeneratorSPD.h:58
 AliITSFOGeneratorSPD.h:59
 AliITSFOGeneratorSPD.h:60
 AliITSFOGeneratorSPD.h:61
 AliITSFOGeneratorSPD.h:62
 AliITSFOGeneratorSPD.h:63