1 #ifndef ALIITSUSIMULATIONPIX_H
2 #define ALIITSUSIMULATIONPIX_H
4 /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 ////////////////////////////////////////////////////////////
8 // Simulation class for upgrade pixels //
9 ////////////////////////////////////////////////////////////
11 #include <TObjArray.h>
12 #include "AliITSUSimulation.h"
13 #include "AliITSUSegmentationPix.h"
17 class AliITSUSimuParam;
19 //-------------------------------------------------------------------
21 class AliITSUSimulationPix : public AliITSUSimulation {
23 AliITSUSimulationPix();
24 AliITSUSimulationPix(AliITSUSimuParam* sim,AliITSUSensMap* map);
25 virtual ~AliITSUSimulationPix();
26 AliITSUSimulationPix(const AliITSUSimulationPix &source);
27 AliITSUSimulationPix& operator=(const AliITSUSimulationPix &s);
30 void FinishSDigitiseModule();
31 void DigitiseModule(AliITSUModule *mod,Int_t mask, Int_t event, AliITSsegmentation* seg);
33 void SDigitiseModule(AliITSUModule *mod, Int_t mask, Int_t event, AliITSsegmentation* seg);
35 void Hits2SDigits(AliITSUModule *mod);
36 void Hits2SDigitsFast(AliITSUModule *mod);
37 void AddNoisyPixels();
38 void RemoveDeadPixels();
39 void FrompListToDigits();
40 Int_t CreateNoisyDigits(Int_t minID,Int_t maxID,double probNoisy, double noise, double base);
41 Bool_t SetTanLorAngle(Double_t WeightHole=1.0);
42 Double_t GetTanLorAngle() const {return fTanLorAng;};
44 // For backwards compatibility
45 void SDigitsToDigits(){ FinishSDigitiseModule();}
47 // This sets fStrobe flag and allows generating the strobe and applying it to select hits
48 void SetStrobeGeneration(Bool_t b=kFALSE) {fStrobe=b;};
49 void GenerateStrobePhase();
53 void SpreadCharge(Double_t x0,Double_t z0,Int_t ix0,Int_t iz0,Double_t el,Double_t sig,Double_t ld,Int_t t,Int_t hi);
54 void SpreadChargeAsym(Double_t x0,Double_t z0,Int_t ix0,Int_t iz0,Double_t el,Double_t sigx,Double_t sigz,Double_t ld,Int_t t,Int_t hi);
56 void SetCoupling(AliITSUSDigit* old,Int_t ntrack,Int_t idhit); // "New" coupling routine Tiziano Virgili
57 void SetCouplingOld(AliITSUSDigit* old,Int_t ntrack,Int_t idhit); // "Old" coupling routine Rocco Caliandro
60 Double_t fTanLorAng; //! Tangent of the Lorentz Angle (weighted average for hole and electrons)
61 Bool_t fStrobe; // kTRUE if readout strobe with proper phase applied to select hits
62 Int_t fStrobeLenght; // Strobe signal lenght in units of 25 ns
63 Double_t fStrobePhase; // The phase of the strobe signal with respect to the trigger
64 ClassDef(AliITSUSimulationPix,1) // Simulation of pixel clusters