X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=TRD%2FAliTRDv2.h;h=1798d1952f6c018fddf3969ca199966e40bd8b28;hp=420e028a81bd32d884c975e6e69d3e26b611c6a2;hb=99d5402e0113abf49efc553ced49b525a9143b5d;hpb=d3f347ffd7b589f2319f48b2f29e1639bb02b9ab;ds=sidebyside diff --git a/TRD/AliTRDv2.h b/TRD/AliTRDv2.h index 420e028a81b..1798d1952f6 100644 --- a/TRD/AliTRDv2.h +++ b/TRD/AliTRDv2.h @@ -15,25 +15,90 @@ class AliTRDv2 : public AliTRD { public: AliTRDv2() {} AliTRDv2(const char *name, const char *title); - virtual ~AliTRDv2(); - virtual void CreateGeometry(); - virtual void CreateMaterials(); - virtual Int_t IsVersion() const {return 2;} - virtual void StepManager(); - virtual void Init(); - virtual void DrawModule(); + virtual ~AliTRDv2(); + virtual void CreateGeometry(); + virtual void CreateMaterials(); + virtual Int_t IsVersion() const {return 2;} + virtual void MakeBranch(Option_t* option); + virtual void StepManager(); + virtual void SetSensPlane(Int_t iplane = 0); + virtual void SetSensChamber(Int_t ichamber = 0); + virtual void SetSensSector(Int_t isector = 0); + virtual void Init(); + virtual void Hits2Digits(); + + virtual void SetRowPadSize(Float_t size) { fRowPadSize = size; }; + virtual void SetColPadSize(Float_t size) { fColPadSize = size; }; + virtual void SetTimeBinSize(Float_t size) { fTimeBinSize = size; }; + + virtual void SetGasGain(Float_t gasgain) { fGasGain = gasgain; }; + virtual void SetNoise(Float_t noise) { fNoise = noise; }; + virtual void SetChipGain(Float_t chipgain) { fChipGain = chipgain; }; + virtual void SetADCoutRange(Float_t range) { fADCoutRange = range; }; + virtual void SetADCinRange(Float_t range) { fADCinRange = range; }; + virtual void SetADCthreshold(Int_t thresh) { fADCthreshold = thresh; }; + virtual void SetDiffusionT(Float_t diff) { fDiffusionT = diff; }; + virtual void SetDiffusionL(Float_t diff) { fDiffusionL = diff; }; + + virtual Float_t GetRowPadSize() { return fRowPadSize; }; + virtual Float_t GetColPadSize() { return fColPadSize; }; + virtual Float_t GetTimeBinSize() { return fTimeBinSize; }; + + virtual Float_t GetGasGain() { return fGasGain; }; + virtual Float_t GetNoise() { return fNoise; }; + virtual Float_t GetChipGain() { return fChipGain; }; + virtual Float_t GetADCoutRange() { return fADCoutRange; }; + virtual Float_t GetADCinRange() { return fADCinRange; }; + virtual Int_t GetADCthreshold() { return fADCthreshold; }; + virtual Float_t GetDiffusionT() { return fDiffusionT; }; + virtual Float_t GetDiffusionL() { return fDiffusionL; }; + + virtual Int_t GetRowMax(Int_t iplan, Int_t icham) { return fRowMax[iplan-1][icham-1]; }; + virtual Int_t GetColMax(Int_t iplan) { return fColMax[iplan-1]; }; + virtual Int_t GetTimeMax() { return fTimeMax; }; protected: - Int_t fIdSensI[ncham]; // Sensitive volume identifier (inner chambers) - Int_t fIdSensN[ncham]; // Sensitive volume identifier (neighbouring chambers) - Int_t fIdSensO[ncham]; // Sensitive volume identifier (outer chambers) + Int_t fIdSens; // Sensitive volume identifier + + Int_t fIdSpace1; // Spaceframe volume identifier + Int_t fIdSpace2; // + Int_t fIdSpace3; // + + Int_t fIdChamber1; // Driftchamber volume identifier + Int_t fIdChamber2; // + Int_t fIdChamber3; // + + Int_t fSensSelect; // Switch to select only parts of the detector + Int_t fSensPlane; // Sensitive detector plane + Int_t fSensChamber; // Sensitive detector chamber + Int_t fSensSector; // Sensitive detector sector + + Int_t fRowMax[kNplan][kNcham]; // Number of pad-rows + Int_t fColMax[kNplan]; // Number of pad-columns + Int_t fTimeMax; // Number of time buckets + + Float_t fRowPadSize; // Pad size in z-direction + Float_t fColPadSize; // Pad size in rphi-direction + Float_t fTimeBinSize; // Size of the time buckets + + Float_t fGasGain; // Gas gain + Float_t fNoise; // Electronics noise + Float_t fChipGain; // Electronics gain + Float_t fADCoutRange; // ADC output range (number of channels) + Float_t fADCinRange; // ADC input range (input charge) + Int_t fADCthreshold; // ADC threshold in ADC channel + Float_t fDiffusionT; // Diffusion in transverse direction + Float_t fDiffusionL; // Diffusion in logitudinal direction private: virtual Double_t BetheBloch(Double_t bg); + virtual void Diffusion(Float_t driftlength, Float_t *xyz); + virtual Float_t PadResponse(Float_t x); + + TF1 *fDeltaE; // Energy distribution of the delta-electrons + + ClassDef(AliTRDv2,1) // Transition Radiation Detector version 2 (slow simulator) - TF1 *fDeltaE; // Energy distribution of the delta-electrons - - ClassDef(AliTRDv2,1) // Transition Radiation Detector version 2 }; #endif