Correct improper use of negative parameters
[u/mrichter/AliRoot.git] / TRD / AliTRDv2.h
CommitLineData
fe4da5cc 1#ifndef TRDv2_H
2#define TRDv2_H
3da30618 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
fe4da5cc 8////////////////////////////////////////////////////////
9// Manager and hits classes for set:TRD version 2 //
10////////////////////////////////////////////////////////
11
d3f347ff 12#include <TF1.h>
fe4da5cc 13#include "AliTRD.h"
14
d3f347ff 15// Energy spectrum of the delta-rays
16Double_t Ermilova(Double_t *x, Double_t *par);
17
fe4da5cc 18class AliTRDv2 : public AliTRD {
19
20public:
21 AliTRDv2() {}
22 AliTRDv2(const char *name, const char *title);
99d5402e 23 virtual ~AliTRDv2();
24 virtual void CreateGeometry();
25 virtual void CreateMaterials();
26 virtual Int_t IsVersion() const {return 2;}
27 virtual void MakeBranch(Option_t* option);
28 virtual void StepManager();
29 virtual void SetSensPlane(Int_t iplane = 0);
30 virtual void SetSensChamber(Int_t ichamber = 0);
31 virtual void SetSensSector(Int_t isector = 0);
32 virtual void Init();
33 virtual void Hits2Digits();
34
35 virtual void SetRowPadSize(Float_t size) { fRowPadSize = size; };
36 virtual void SetColPadSize(Float_t size) { fColPadSize = size; };
37 virtual void SetTimeBinSize(Float_t size) { fTimeBinSize = size; };
38
39 virtual void SetGasGain(Float_t gasgain) { fGasGain = gasgain; };
40 virtual void SetNoise(Float_t noise) { fNoise = noise; };
41 virtual void SetChipGain(Float_t chipgain) { fChipGain = chipgain; };
42 virtual void SetADCoutRange(Float_t range) { fADCoutRange = range; };
43 virtual void SetADCinRange(Float_t range) { fADCinRange = range; };
44 virtual void SetADCthreshold(Int_t thresh) { fADCthreshold = thresh; };
45 virtual void SetDiffusionT(Float_t diff) { fDiffusionT = diff; };
46 virtual void SetDiffusionL(Float_t diff) { fDiffusionL = diff; };
47
48 virtual Float_t GetRowPadSize() { return fRowPadSize; };
49 virtual Float_t GetColPadSize() { return fColPadSize; };
50 virtual Float_t GetTimeBinSize() { return fTimeBinSize; };
51
52 virtual Float_t GetGasGain() { return fGasGain; };
53 virtual Float_t GetNoise() { return fNoise; };
54 virtual Float_t GetChipGain() { return fChipGain; };
55 virtual Float_t GetADCoutRange() { return fADCoutRange; };
56 virtual Float_t GetADCinRange() { return fADCinRange; };
57 virtual Int_t GetADCthreshold() { return fADCthreshold; };
58 virtual Float_t GetDiffusionT() { return fDiffusionT; };
59 virtual Float_t GetDiffusionL() { return fDiffusionL; };
60
61 virtual Int_t GetRowMax(Int_t iplan, Int_t icham) { return fRowMax[iplan-1][icham-1]; };
62 virtual Int_t GetColMax(Int_t iplan) { return fColMax[iplan-1]; };
63 virtual Int_t GetTimeMax() { return fTimeMax; };
fe4da5cc 64
65protected:
99d5402e 66 Int_t fIdSens; // Sensitive volume identifier
67
68 Int_t fIdSpace1; // Spaceframe volume identifier
69 Int_t fIdSpace2; //
70 Int_t fIdSpace3; //
71
72 Int_t fIdChamber1; // Driftchamber volume identifier
73 Int_t fIdChamber2; //
74 Int_t fIdChamber3; //
75
76 Int_t fSensSelect; // Switch to select only parts of the detector
77 Int_t fSensPlane; // Sensitive detector plane
78 Int_t fSensChamber; // Sensitive detector chamber
79 Int_t fSensSector; // Sensitive detector sector
82bbf98a 80
99d5402e 81 Int_t fRowMax[kNplan][kNcham]; // Number of pad-rows
82 Int_t fColMax[kNplan]; // Number of pad-columns
83 Int_t fTimeMax; // Number of time buckets
82bbf98a 84
99d5402e 85 Float_t fRowPadSize; // Pad size in z-direction
86 Float_t fColPadSize; // Pad size in rphi-direction
87 Float_t fTimeBinSize; // Size of the time buckets
82bbf98a 88
99d5402e 89 Float_t fGasGain; // Gas gain
90 Float_t fNoise; // Electronics noise
91 Float_t fChipGain; // Electronics gain
92 Float_t fADCoutRange; // ADC output range (number of channels)
93 Float_t fADCinRange; // ADC input range (input charge)
94 Int_t fADCthreshold; // ADC threshold in ADC channel
95 Float_t fDiffusionT; // Diffusion in transverse direction
96 Float_t fDiffusionL; // Diffusion in logitudinal direction
d3f347ff 97
fe4da5cc 98private:
d3f347ff 99 virtual Double_t BetheBloch(Double_t bg);
99d5402e 100 virtual void Diffusion(Float_t driftlength, Float_t *xyz);
101 virtual Float_t PadResponse(Float_t x);
d3f347ff 102
99d5402e 103 TF1 *fDeltaE; // Energy distribution of the delta-electrons
104
105 ClassDef(AliTRDv2,1) // Transition Radiation Detector version 2 (slow simulator)
82bbf98a 106
fe4da5cc 107};
108
109#endif