13 #include <TGeoMatrix.h>
29 virtual Bool_t
Transform(Float_t *xyz, Int_t *index, Int_t* oindex);
40 void Transform2to2(Float_t *xyz, Int_t *index, Int_t *oindex)
const;
72 virtual Int_t
GetPadRow(Float_t *xyz, Int_t *index)
const ;
76 Int_t &, Int_t &, Int_t )
const {;}
84 const Int_t &,
const Int_t & , Int_t )
const {;}
88 const Float_t &,
const Float_t &,
105 Int_t
GetIndex(Int_t sector, Int_t row)
const;
114 void AdjustCosSin(Int_t isec, Float_t &cos, Float_t &sin)
const;
126 void SetSectorAngles(Float_t innerangle, Float_t innershift, Float_t outerangle,
596 Float_t x1=xyz[0]*cos + xyz[1]*sin;
597 Float_t y1=-xyz[0]*sin + xyz[1]*cos;
611 Double_t xyzmaster[3] = {xyz[0],xyz[1],xyz[2]};
612 Double_t xyzlocal[3]={0,0,0};
613 if (index[1]>=0 && index[1]<
fNSector)
615 xyz[0] = xyzlocal[0];
616 xyz[1] = xyzlocal[1];
617 xyz[2] = xyzlocal[2];
630 Float_t x1=xyz[0]*cos - xyz[1]*sin;
631 Float_t y1=xyz[0]*sin + xyz[1]*cos;
723 Float_t r = TMath::Sqrt(xyz[0]*xyz[0]+xyz[1]*xyz[1]);
724 if ((xyz[0]==0)&&(xyz[1]==0)) angle = 0;
727 angle =TMath::ASin(xyz[1]/r);
728 if (xyz[0]<0) angle=TMath::Pi()-angle;
729 if ( (xyz[0]>0) && (xyz[1]<0) ) angle=2*TMath::Pi()+angle;
741 Float_t angle= xyz[1];
742 xyz[0]=r*TMath::Cos(angle);
743 xyz[1]=r*TMath::Sin(angle);
830 {
if(sector <18 || (sector>35&§or<54))
return fZLength-0.275;
Float_t fInnerWireMount
space for wire mount, inner sector
Int_t * fResponseBin
! array with bins -calulated
Float_t fOuter1PadLength
Outer pad length.
TGraphErrors * fGainSlopesHV
graph with the gain slope as function of HV - per chamber
Float_t GetPadPitchLength(Int_t isector=0, Int_t padrow=0) const
Int_t fNOuter1WiresPerPad
Number of wires per pad.
Float_t GetOuter2PadPitchLength() const
virtual Int_t CalcResponse(Float_t *, Int_t *, Int_t)
Float_t fInnerWWPitch
pitch between wires in inner sector - calculated
Float_t fTSample
sampling time
Float_t fLastWireUp1
position of the last wire in outer1 sector
Float_t GetChipNorm() const
Float_t & GetResWeight(Int_t i)
static Double_t BetheBlochAleph(Double_t bb, Int_t type=0)
Float_t fPadCoupling
coupling factor ration of anode signal
Int_t Transform0to1(Float_t *xyz, Int_t *index) const
void SetOuterFrameSpace(Float_t frspace)
Float_t fInnerPadPitchWidth
Inner pad pitch width.
Float_t GetMaxDipVoltage() const
Float_t fNoise
noise sigma constant
Float_t GetYInner(Int_t irow) const
Float_t GetOuterWireMount() const
Float_t GetZSigma() const
void SetDiffT(Float_t DiffT)
Int_t GetNRowsTotal() const
Float_t fNtot
total number of electrons/c (MIP)
void SetInnerRadiusLow(Float_t InnerRadiusLow)
Float_t GetOuter1PadLength() const
void SetNominalVoltage(Float_t v, UInt_t i)
void SetNominalGainSlopes()
Float_t fOuterWWPitch
pitch between wires in outer sector -calculated
void SetNResponseMax(Int_t max)
Float_t GetOuterPadWidth() const
Float_t fOuterAngleShift
shift of first sector center to the 0
Float_t GetOuterRadiusLow() const
void SetOuterWWPitch(Float_t wwPitch)
void SetVoltageDipScanPeriod(Float_t period)
Float_t GetGateDelay() const
Float_t GetOuter2PadLength() const
TGeoHMatrix * GetClusterMatrix(Int_t isec) const
Int_t GetNPadsPerSegment(Int_t segmentID) const
void SetOuter1NWires(Int_t nWires)
Float_t fADCDynRange
input dynamic range (mV)
void SetPadCoupling(Float_t PadCoupling)
void SetAttCoef(Float_t AttCoef)
Float_t GetRInnerFirstWire() const
void SetDiffL(Float_t DiffL)
Int_t GetNSegmentsTotal() const
Float_t fPadRowLow[600]
Lower sector, pad row radii -calculated.
void SetInnerPadPitchWidth(Float_t PadPitchWidth)
TGeoHMatrix * GetTrackingMatrix(Int_t isec) const
Float_t fOxyCont
oxygen content
Float_t GetROuterLastWire() const
void Transform2to5(Float_t *xyz, Int_t *index) const
void Transform1to2Ideal(Float_t *xyz, Int_t *index) const
Float_t fNTBinsL1
Overall L1 delay in time bins.
virtual Int_t Transform2toPadRow(Float_t *, Int_t *) const
Float_t fGateDelay
Delay of L1 arrival for the TPC gate signal.
Manager class for detector parameters.
Int_t GetInnerDummyWire() const
Bool_t fbStatus
indicates consistency of the data
Int_t * GetResBin(Int_t i)
void SetRInnerFirstWire(Float_t firstWire)
void SetBetheBloch(TVectorD *v)
Float_t * fRotAngle
sin and cos of rotation angles for different sectors - calculated
void SetRowNUp2(Int_t NRowUp2)
void SetGasGain(Float_t GasGain)
Float_t GetLastWireUp1() const
Manager and of geomety classes for set: TPC.
Float_t GetDriftV() const
Float_t GetMaxFractionHVbad() const
Bool_t GetMWPCReadout() const
void SetChipNorm(Float_t ChipNorm)
void SetRInnerLastWire(Float_t lastWire)
Float_t GetMaxVoltageDeviation() const
Float_t GetOuterRadiusUp() const
Float_t GetROuterFirstWire() const
Float_t fExp
de = f(E) - energy loss parametrization
Float_t fROuterFirstWire
position of the first wire -calulated
void SetGateDelay(Float_t delay)
static TVectorD * GetBetheBlochParamAlice()
virtual Bool_t Transform(Float_t *xyz, Int_t *index, Int_t *oindex)
Int_t GetInnerNWires() const
Float_t fOuterFrameSpace
space for outer frame in the phi direction
virtual Int_t GetPadRow(Float_t *xyz, Int_t *index) const
void Transform4to3(Float_t *xyz, Int_t *index) const
Float_t fRInnerLastWire
position of the last wire -calculated
void SetOuterWireMount(Float_t fmount)
void SetMWPCReadout(Bool_t type)
void SetNoise(Float_t Noise)
static TVectorD * GetBetheBlochParamNa49()
void SetTFWHM(Float_t fwhm)
Float_t fDriftV
drift velocity constant
virtual Bool_t ReadGeoMatrices()
Float_t fFpot
first ionisation potential
Float_t fNprim
number of primary electrons/cm
Float_t fMaxDipVoltage
maximum voltage deviation from median before a dip event is marked
Int_t fGeometryType
type of geometry -0 straight rows
Float_t GetPadRowRadiiLow(Int_t irow) const
Float_t fInnerRadiusUp
upper radius of inner sector-IP
void SetL1Delay(Float_t delay)
Int_t fNInnerWiresPerPad
[fNSector]
Float_t fDiffL
longutudinal diffusion constant
Float_t fAttCoef
attachment coefitients
void SetZeroSup(Int_t ZeroSup)
void SetOxyCont(Float_t OxyCont)
Float_t GetOmegaTau() const
Float_t GetGasGain() const
void SetGainSlopesPT(TGraphErrors *gainSlopesPT)
Float_t GetPadPitchWidth(Int_t isector=0) const
Float_t Transform2to2NearestWire(Float_t *xyz, Int_t *index) const
Float_t GetPadCoupling() const
Float_t fEend
upper cutoff for de generation
void SetInnerPadPitchLength(Float_t PadPitchLength)
void SetInnerFrameSpace(Float_t frspace)
Float_t GetInnerPadLength() const
Float_t fOuter2PadLength
Outer pad length.
static TObjArray * fBBParam
array of the Bethe-Bloch parameters.
Float_t GetInnerPadPitchLength() const
Int_t fInnerDummyWire
number of wires without pad readout
Float_t fOuterRadiusLow
lower radius of outer sector-IP
Float_t fInnerPadPitchLength
Inner pad pitch length.
void SetOuterOffWire(Float_t offset)
void SetOuter1PadPitchLength(Float_t PadPitchLength)
static void RegisterBBParam(TVectorD *param, Int_t position)
Float_t fNominalVoltage[72]
nominal voltage in [V] per chamber
Float_t GetL1Delay() const
void Transform2to2(Float_t *xyz, Int_t *index, Int_t *oindex) const
Float_t fROuterLastWire
position of the last wire -calculated
TGraphErrors * fGainSlopesPT
graph with the gain slope as function of P/T - per chamber
void Transform4to8(Float_t *xyz, Int_t *index) const
void SetMaxTBin(Int_t maxtbin)
Int_t Transform2to3(Float_t *xyz, Int_t *index) const
Int_t fNInnerSector
number of inner sectors -calculated
Float_t GetTotalNormFac() const
Float_t GetNoiseNormFac() const
void SetMaxFractionHVbad(Float_t frac)
void SetInnerPadWidth(Float_t PadWidth)
TGeoHMatrix * Tracking2LocalMatrix(const TGeoHMatrix *geoMatrix, Int_t sector) const
static TVectorD * GetBetheBlochParamAliceMC()
void SetChipGain(Float_t ChipGain)
void SetMaxVoltageDeviation(Float_t voltage)
void SetSectorAngles(Float_t innerangle, Float_t innershift, Float_t outerangle, Float_t outershift)
Float_t fPadRowUp[600]
Upper sector, pad row radii -calculated.
Float_t fOuterWireMount
space for wire mount, outer sector
void SetNTBinsBeforeL1(UShort_t nbins)
Int_t GetNPadsLow(Int_t irow) const
void SetOuterRadiusLow(Float_t OuterRadiusLow)
Float_t fYInner[600]
Inner sector, wire-length.
void Transform5to2(Float_t *xyz, Int_t *index) const
TVectorD * fBetheBloch
Bethe-Bloch parametrization.
Float_t GetOuterWWPitch() const
TVectorD * fBetheBlochMC
Bethe-Bloch parametrization.
void SetInnerDummyWire(Int_t dummy)
void Transform6to8(Float_t *xyz, Int_t *index) const
Int_t GetNCrossRows() const
UShort_t fNTBinsBeforeL1
Number of time bins before L1 arrival which are being read out.
Float_t GetADCDynRange() const
Int_t fNRowUp
number of pad rows per sector up -calculated
Float_t GetOuterAngle() const
virtual Float_t GetZOffset() const
Float_t GetYOuter(Int_t irow) const
Int_t GetOuter1NWires() const
Int_t GetSectorIndex(Float_t angle, Int_t row, Float_t z) const
virtual void CRXYZtoXYZ(Float_t *, const Int_t &, const Int_t &, Int_t) const
Float_t fNoiseNormFac
normalisation factor to transform noise in electron to ADC channel
Float_t fOuterAngle
opening angle of outer sector
Float_t GetInnerRadiusLow() const
Float_t fChipGain
preamp shaper constant
TGeoHMatrix ** fClusterMatrix
transformation matrices of the cluster coordinate system
Float_t fMaxHVfractionBad
maximum fraction of bad HV entries (deviation from Median) before a chamber is marked bad ...
Float_t GetZWidth() const
Float_t fResponseThreshold
threshold for accepted response
void SetLastWireUp1(Float_t wireUp1)
Int_t fNSector
total number of sectors -calculated
Float_t GetOuterOffWire() const
void SetOuter1PadLength(Float_t PadLength)
Float_t GetInnerAngle() const
Float_t fWmean
mean energy for electron/ion pair
Int_t fNResponseMax
maximal dimension of response
Float_t GetAngle(Int_t isec) const
Float_t * fResponseWeight
! array with response -calulated
Int_t fNPadsLow[600]
Lower sector, number of pads per row -calculated.
Float_t fInnerFrameSpace
space for inner frame in the phi direction
Float_t fChipNorm
preamp shaper normalisation
void SetOuter2PadLength(Float_t PadLength)
Float_t GetTSample() const
Double_t GetLowMaxY(Int_t irow) const
Int_t fOuterDummyWire
number of wires without pad readout
Float_t fInnerOffWire
oofset of first wire to the begining of the sector
void SetNprim(Float_t prim)
Int_t fNPadsUp[600]
Upper sector, number of pads per row -calculated.
void SetGainSlopesHV(TGraphErrors *gainSlopesHV)
void SetInnerWWPitch(Float_t wwPitch)
void SetOuterDummyWire(Int_t dummy)
Float_t fDiffT
tangencial diffusion constant
void SetInnerPadLength(Float_t PadLength)
virtual void SetDefault()
Float_t fOuterPadWidth
Outer pad width.
TGeoHMatrix ** fGlobalMatrix
fTrackingMatrix * fClusterMatrix
Int_t fNOuter2WiresPerPad
Number of wires per pad.
void SetOuterRadiusUp(Float_t OuterRadiusUp)
Float_t GetOuterAngleShift() const
virtual void CRYZtoTimePad(const Float_t &, const Float_t &, Float_t &, Float_t &, Int_t, Int_t)
Float_t fInnerAngle
opening angle of Inner sector
void SetInnerNWires(Int_t nWires)
Float_t fOuterOffWire
oofset of first wire to the begining of the sector
void SetRowNLow(Int_t NRowLow)
void SetTSample(Float_t TSample)
Float_t fL1Delay
Delay of L1 arrival for the TPC readout.
Float_t fOmegaTau
omega tau ExB coeficient
Int_t fCurrentMax
! current maximal dimension -calulated
Int_t fADCSat
saturation value of ADC (10 bits)
Float_t fMaxVoltageDeviation
maximum voltage deviation from nominal voltage before a chamber is masked
void SetDriftV(Float_t DriftV)
void SetRowNUp(Int_t NRowUp)
Float_t GetNominalVoltage(UInt_t i) const
void SetResponseThreshold(Int_t threshold)
Bool_t AdjustSectorRow(Int_t index, Int_t §or, Int_t &row) const
Float_t fInnerAngleShift
shift of first inner sector center to the 0
TGraphErrors * GetGainSlopesPT() const
Int_t GetIndex(Int_t sector, Int_t row) const
TVectorD * GetBetheBlochParameters()
Float_t fTotalNormFac
full normalisation factor - calculated
Int_t GetNRow(Int_t isec) const
void SetROuterLastWire(Float_t lastWire)
Float_t fInnerPadLength
Inner pad length.
void Transform8to4(Float_t *xyz, Int_t *index) const
void SetZLength(Float_t zlength)
Float_t fYOuter[600]
Outer sector, wire-length.
TGraphErrors * GetGainSlopesHV() const
Int_t GetWireSegment(Int_t sector, Int_t row) const
TGeoHMatrix ** fTrackingMatrix
transformation matrices of the tracking coordinate system
Float_t GetPadRowRadiiUp(Int_t irow) const
Float_t GetVoltageDipScanPeriod() const
TGeoHMatrix * GetGlobalMatrix(Int_t isec) const
Float_t fZWidth
derived value calculated using TSample and driftw -computed
void SetOmegaTau(Float_t OmegaTau)
Int_t GetGeometryType() const
Float_t GetInnerFrameSpace() const
Float_t GetWWPitch(Int_t isector=0) const
void AdjustCosSin(Int_t isec, Float_t &cos, Float_t &sin) const
Float_t GetOxyCont() const
Float_t GetChipGain() const
void SetGeometryType(Int_t type)
Float_t fOuterPadPitchWidth
Outer pad pitch width.
Int_t GetNPads(Int_t isector, Int_t irow) const
virtual void CRTimePadtoYZ(Float_t &, Float_t &, const Float_t &, const Float_t &, Int_t, Int_t)
Int_t GetOuter2NWires() const
Float_t GetInnerAngleShift() const
Float_t GetInnerOffWire() const
Int_t GetNPadsUp(Int_t irow) const
UShort_t GetNTBinsBeforeL1() const
Int_t GetNOuterSector() const
Float_t fOuter1PadPitchLength
Outer pad pitch length.
void SetOuterPadPitchWidth(Float_t PadPitchWidth)
Int_t fMaxTBin
maximum time bin number
void SetNCrossRows(Int_t rows)
Float_t GetOuterFrameSpace() const
Int_t fNOuterSector
number of outer sectors -calculated
void SetRowNUp1(Int_t NRowUp1)
void SetBetheBlochMC(TVectorD *v)
void SetADCDynRange(Float_t adcdynrange)
Float_t fRInnerFirstWire
position of the first wire -calculated
void Transform2to1(Float_t *xyz, Int_t *index) const
Float_t fInnerPadWidth
Inner pad width.
Float_t GetInnerWireMount() const
Float_t GetInnerRadiusUp() const
Int_t fNRowLow
number of pad rows per low sector -set
void SetInnerWireMount(Float_t fmount)
Double_t GetUpMaxY(Int_t irow) const
Float_t GetOuterPadPitchWidth() const
void SetOuter2NWire(Int_t nWires)
Float_t fInnerRadiusLow
lower radius of inner sector-IP
void SetOuterPadWidth(Float_t PadWidth)
Float_t GetNTBinsL1() const
Float_t GetZLength(Int_t sector=0) const
void SetADCSat(Int_t adcsat)
void SetNtot(Float_t ntot)
void SetROuterFirstWire(Float_t firstWire)
Int_t fNRowUp1
number of short pad rows per sector up -set
Int_t GetOuterDummyWire() const
void Transform3to4(Float_t *xyz, Int_t *index) const
void SetEend(Float_t end)
Float_t fOuterRadiusUp
upper radius of outer sector-IP
Float_t GetPadRowRadii(Int_t isec, Int_t irow) const
Float_t GetInnerWWPitch() const
Float_t GetAttCoef() const
Float_t fGasGain
gas gain constant
void Transform8to6(Float_t *xyz, Int_t *index) const
Float_t GetOuter1PadPitchLength() const
Float_t fOuter2PadPitchLength
Outer pad pitch length.
void SetWmean(Float_t wmean)
Float_t fTSigma
width of the Preamp/Shaper function
void Transform1to2(Float_t *xyz, Int_t *index) const
Int_t fZeroSup
zero suppresion constant
virtual void XYZtoCRXYZ(Float_t *, Int_t &, Int_t &, Int_t) const
Float_t GetInnerPadPitchWidth() const
Bool_t fBMWPCReadout
indicate wire readout - kTRUE or GEM readout -kFALSE
void SetComposition(Float_t c1, Float_t c2, Float_t c3, Float_t c4, Float_t c5, Float_t c6)
TVectorD * GetBetheBlochParametersMC()
void SetInnerOffWire(Float_t offset)
Int_t fNRowUp2
number of long pad rows per sector up -set
Float_t fVoltageDipScanPeriod
scanning period to detect a high volrage dip: event time stamp +- fVoltageDipScanPeriod [sec] ...
Int_t GetNInnerSector() const
Float_t GetRInnerLastWire() const
void SetFpot(Float_t fpot)
Float_t * GetComposition()
Int_t fNCrossRows
number of rows to crostalk calculation
void SetOuter2PadPitchLength(Float_t PadPitchLength)
void SetMaxDipVoltage(Float_t voltage)
void SetInnerRadiusUp(Float_t InnerRadiusUp)
Int_t fNtRows
total number of rows in TPC -calculated
AliTPCParam & operator=(const AliTPCParam &)
Float_t GetChamberCenter(Int_t isec, Float_t *center=0) const
Float_t GetInnerPadWidth() const