]>
Commit | Line | Data |
---|---|---|
451f5018 | 1 | #ifndef ALIITSUSIMULATIONPIX_H |
2 | #define ALIITSUSIMULATIONPIX_H | |
3 | ||
4 | /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //////////////////////////////////////////////////////////// | |
8 | // Simulation class for upgrade pixels // | |
9 | //////////////////////////////////////////////////////////// | |
10 | ||
4fa9d550 | 11 | #include <TObjArray.h> |
451f5018 | 12 | #include "AliITSUSimulation.h" |
13 | #include "AliITSUSegmentationPix.h" | |
14 | ||
15 | class TH1F; | |
16 | class AliITSUModule; | |
17 | class AliITSUSimuParam; | |
18 | ||
19 | //------------------------------------------------------------------- | |
20 | ||
21 | class AliITSUSimulationPix : public AliITSUSimulation { | |
22 | public: | |
23 | AliITSUSimulationPix(); | |
24 | AliITSUSimulationPix(AliITSUSimuParam* sim,AliITSUSensMap* map); | |
25 | virtual ~AliITSUSimulationPix(); | |
26 | AliITSUSimulationPix(const AliITSUSimulationPix &source); | |
27 | AliITSUSimulationPix& operator=(const AliITSUSimulationPix &s); | |
28 | void Init(); | |
29 | // | |
30 | void FinishSDigitiseModule(); | |
31 | void DigitiseModule(AliITSUModule *mod,Int_t mask, Int_t event, AliITSsegmentation* seg); | |
32 | // | |
33 | void SDigitiseModule(AliITSUModule *mod, Int_t mask, Int_t event, AliITSsegmentation* seg); | |
34 | void WriteSDigits(); | |
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;}; | |
43 | // | |
44 | // For backwards compatibility | |
45 | void SDigitsToDigits(){ FinishSDigitiseModule();} | |
46 | ||
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(); | |
50 | // | |
51 | ||
52 | private: | |
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); | |
55 | // | |
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 | |
58 | // | |
59 | protected: | |
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 | |
65 | }; | |
66 | #endif |