]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSUSimulationPix.h
fixes in simulation classes
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUSimulationPix.h
CommitLineData
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
15class TH1F;
16class AliITSUModule;
17class AliITSUSimuParam;
18
19//-------------------------------------------------------------------
20
21class AliITSUSimulationPix : public AliITSUSimulation {
22public:
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