X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCParam.h;h=daac13e793eba390770c7810b49909c68f2b4444;hb=44b96781350abcb1a168059962e0b2ef7ddf07ca;hp=b0307964add9185999c1ee5ef1ec90ae53fd1f6e;hpb=0bbae0f2c896b50dbceec473819b9f15563722b4;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCParam.h b/TPC/AliTPCParam.h index b0307964add..daac13e793e 100644 --- a/TPC/AliTPCParam.h +++ b/TPC/AliTPCParam.h @@ -12,7 +12,7 @@ #include "AliDetectorParam.h" #include "TMath.h" - +#include class AliTPCParam : public AliDetectorParam { ////////////////////////////////////////////////////// @@ -30,8 +30,10 @@ public: Int_t Transform0to1(Float_t *xyz, Int_t *index) const; //trasforamtion from global to global - adjust index[0] sector //return value is equal to sector corresponding to global position + void Transform1to2Ideal(Float_t *xyz, Int_t *index) const; + //transformation to rotated coordinata - ideal frame void Transform1to2(Float_t *xyz, Int_t *index) const; - //transformation to rotated coordinata + //transformation to rotated coordinata void Transform2to1(Float_t *xyz, Int_t *index) const; //transformation from rotated coordinata to global coordinata void Transform2to2(Float_t *xyz, Int_t *index, Int_t *oindex) const; @@ -63,42 +65,43 @@ public: void Transform8to6(Float_t *xyz, Int_t *index) const; //transform 'digit' coordinata to dr,f coordinata - virtual Int_t Transform2toPadRow(Float_t *xyz, Int_t *index) const{return 0;} + virtual Int_t Transform2toPadRow(Float_t */*xyz*/, Int_t */*index*/) const{return 0;} //transform rotated to virtual Int_t GetPadRow(Float_t *xyz, Int_t *index) const ; //return pad row of point xyz - xyz is given in coordinate system -(given by index) //output system is 3 for straight row and 7 for cylindrical row - virtual void XYZtoCRXYZ(Float_t *xyz, - Int_t §or, Int_t &padrow, Int_t option=3) const {;} + virtual void XYZtoCRXYZ(Float_t */*xyz*/, + Int_t &/*sector*/, Int_t &/*padrow*/, Int_t /*option*/) const {;} //transform global position to the position relative to the sector padrow //if option=0 X calculate absolute calculate sector //if option=1 X absolute use input sector //if option=2 X relative to pad row calculate sector //if option=3 X relative use input sector - virtual void CRXYZtoXYZ(Float_t *xyz, - const Int_t §or, const Int_t & padrow, Int_t option=3) const {;} + virtual void CRXYZtoXYZ(Float_t */*xyz*/, + const Int_t &/*sector*/, const Int_t & /*padrow*/, Int_t /*option*/) const {;} //transform relative position to the gloabal position - virtual void CRTimePadtoYZ(Float_t &y, Float_t &z, - const Float_t &time, const Float_t &pad, - Int_t sector, Int_t padrow ){;} + virtual void CRTimePadtoYZ(Float_t &/*y*/, Float_t &/*z*/, + const Float_t &/*time*/, const Float_t &/*pad*/, + Int_t /*sector*/, Int_t /*padrow*/ ){;} //transform position in digit units (time slices and pads) to "normal" //units (cm) - virtual void CRYZtoTimePad(const Float_t &y, const Float_t &z, - Float_t &time, Float_t &pad, - Int_t sector, Int_t padrow){;} + virtual void CRYZtoTimePad(const Float_t &/*y*/, const Float_t &/*z*/, + Float_t &/*time*/, Float_t &/*pad*/, + Int_t /*sector*/, Int_t /*padrow*/){;} //transform position in cm to position in digit unit - virtual Int_t CalcResponse(Float_t* x, Int_t * index, Int_t row){return 0;} + virtual Int_t CalcResponse(Float_t* /*x*/, Int_t * /*index*/, Int_t /*row*/){return 0;} //calculate bin response as function of the input position -x and the weight //if row -pad row is equal -1 calculate response for each pad row //otherwise it calculate only in given pad row //return number of valid response bin virtual void SetDefault(); //set defaut TPCparam virtual Bool_t Update(); //recalculate and check geometric parameters - Bool_t GetStatus(); //get information about object consistency - Int_t GetIndex(Int_t sector, Int_t row); //give index of the given sector and pad row + virtual Bool_t ReadGeoMatrices(); //read geo matrixes + Bool_t GetStatus() const; //get information about object consistency + Int_t GetIndex(Int_t sector, Int_t row) const; //give index of the given sector and pad row Int_t GetNSegmentsTotal() const {return fNtRows;} Double_t GetLowMaxY(Int_t irow) const {return irow*0.;} Double_t GetUpMaxY(Int_t irow) const {return irow*0;} @@ -110,6 +113,8 @@ public: void AdjustCosSin(Int_t isec, Float_t &cos, Float_t &sin) const; //set cosinus and sinus of rotation angles for sector isec Float_t GetAngle(Int_t isec) const; + // void GetChamberPos(Int_t isec, Float_t* xyz) const; + // void GetChamberRot(Int_t isec, Float_t* angles) const; // //set sector parameters // @@ -126,25 +131,42 @@ public: void SetZLength(Float_t zlength) {fZLength = zlength;} void SetGeometryType(Int_t type) {fGeometryType = type;} // + // pad rows geometry + // + void SetRowNLow( Int_t NRowLow){fNRowLow = NRowLow;} + void SetRowNUp1 (Int_t NRowUp1){fNRowUp1 = NRowUp1 ;} //upper sec short pads + void SetRowNUp2 (Int_t NRowUp2){fNRowUp2 = NRowUp2 ;} //upper sec long pads + void SetRowNUp (Int_t NRowUp){fNRowUp = NRowUp ;} + // //set wire parameters // void SetInnerNWires(Int_t nWires){ fNInnerWiresPerPad=nWires;} void SetInnerDummyWire(Int_t dummy) {fInnerDummyWire = dummy;} void SetInnerOffWire(Float_t offset) {fInnerOffWire =offset;} - void SetOuterNWires(Int_t nWires){ fNOuterWiresPerPad=nWires;} + void SetOuter1NWires(Int_t nWires){ fNOuter1WiresPerPad=nWires;} + void SetOuter2NWire(Int_t nWires){ fNOuter2WiresPerPad=nWires;} void SetOuterDummyWire(Int_t dummy) {fOuterDummyWire = dummy;} - void SetOuterOffWire(Float_t offset) {fOuterOffWire =offset;} + void SetOuterOffWire(Float_t offset) {fOuterOffWire =offset;} + void SetInnerWWPitch( Float_t wwPitch) {fInnerWWPitch = wwPitch;} + void SetRInnerFirstWire(Float_t firstWire){fRInnerFirstWire = firstWire;} + void SetRInnerLastWire(Float_t lastWire){fRInnerLastWire = lastWire;} + void SetOuterWWPitch(Float_t wwPitch){fOuterWWPitch = wwPitch;} + void SetLastWireUp1(Float_t wireUp1){fLastWireUp1 = wireUp1;} + void SetROuterFirstWire(Float_t firstWire){fROuterFirstWire = firstWire;} + void SetROuterLastWire(Float_t lastWire){fROuterLastWire = lastWire;} // //set pad parameter // void SetInnerPadPitchLength(Float_t PadPitchLength){ fInnerPadPitchLength=PadPitchLength;} void SetInnerPadPitchWidth(Float_t PadPitchWidth){ fInnerPadPitchWidth = PadPitchWidth;} void SetInnerPadLength(Float_t PadLength){ fInnerPadLength=PadLength;} - void SetInnerPadWidth(Float_t PadWidth) { fInnerPadWidth=PadWidth;} - void SetOuterPadPitchLength(Float_t PadPitchLength){ fOuterPadPitchLength=PadPitchLength;} + void SetInnerPadWidth(Float_t PadWidth) { fInnerPadWidth=PadWidth;} + void SetOuter1PadPitchLength(Float_t PadPitchLength){ fOuter1PadPitchLength=PadPitchLength;} + void SetOuter2PadPitchLength(Float_t PadPitchLength){ fOuter2PadPitchLength=PadPitchLength;} void SetOuterPadPitchWidth(Float_t PadPitchWidth){ fOuterPadPitchWidth = PadPitchWidth;} - void SetOuterPadLength(Float_t PadLength){ fOuterPadLength=PadLength;} - void SetOuterPadWidth(Float_t PadWidth) { fOuterPadWidth=PadWidth;} + void SetOuter1PadLength(Float_t PadLength){ fOuter1PadLength=PadLength;} + void SetOuter2PadLength(Float_t PadLength){ fOuter2PadLength=PadLength;} + void SetOuterPadWidth(Float_t PadWidth) { fOuterPadWidth=PadWidth;} void SetMWPCReadout(Bool_t type) {fBMWPCReadout = type;} void SetNCrossRows(Int_t rows){fNCrossRows = rows;} // @@ -175,6 +197,10 @@ public: // void SetNResponseMax(Int_t max) { fNResponseMax = max;} void SetResponseThreshold(Int_t threshold) {fResponseThreshold = threshold;} + //set L1 parameters + void SetGateDelay(Float_t delay) {fGateDelay = delay;} + void SetL1Delay(Float_t delay) {fL1Delay = delay;} + void SetNTBinsBeforeL1(UShort_t nbins) {fNTBinsBeforeL1 = nbins;} // //get sector parameters // @@ -205,10 +231,12 @@ public: Float_t GetInnerOffWire() const {return fInnerOffWire;} Float_t GetRInnerFirstWire() const {return fRInnerFirstWire;} Float_t GetRInnerLastWire() const {return fRInnerLastWire;} - Int_t GetOuterNWires() const {return fNOuterWiresPerPad;} + Int_t GetOuter1NWires() const {return fNOuter1WiresPerPad;} + Int_t GetOuter2NWires() const {return fNOuter2WiresPerPad;} Float_t GetOuterWWPitch() const {return fOuterWWPitch;} Int_t GetOuterDummyWire() const {return fOuterDummyWire;} Float_t GetOuterOffWire() const {return fOuterOffWire;} + Float_t GetLastWireUp1() const {return fLastWireUp1;} Float_t GetROuterFirstWire() const {return fROuterFirstWire;} Float_t GetROuterLastWire() const {return fROuterLastWire;} Float_t GetWWPitch(Int_t isector = 0) const { @@ -219,22 +247,26 @@ public: Float_t GetInnerPadPitchLength() const {return fInnerPadPitchLength;} Float_t GetInnerPadPitchWidth() const {return fInnerPadPitchWidth;} Float_t GetInnerPadLength() const {return fInnerPadLength;} - Float_t GetInnerPadWidth() const {return fInnerPadWidth;} - Float_t GetOuterPadPitchLength() const {return fOuterPadPitchLength;} + Float_t GetInnerPadWidth() const {return fInnerPadWidth;} + Float_t GetOuter1PadPitchLength() const {return fOuter1PadPitchLength;} + Float_t GetOuter2PadPitchLength() const {return fOuter2PadPitchLength;} Float_t GetOuterPadPitchWidth() const {return fOuterPadPitchWidth;} - Float_t GetOuterPadLength() const {return fOuterPadLength;} + Float_t GetOuter1PadLength() const {return fOuter1PadLength;} + Float_t GetOuter2PadLength() const {return fOuter2PadLength;} Float_t GetOuterPadWidth() const {return fOuterPadWidth;} Bool_t GetMWPCReadout() const {return fBMWPCReadout;} Int_t GetNCrossRows() const {return fNCrossRows;} Float_t GetPadPitchWidth(Int_t isector = 0) const { return ( (isector < fNInnerSector) ? fInnerPadPitchWidth :fOuterPadPitchWidth);} - Float_t GetPadPitchLength(Int_t isector = 0) const { - return ( (isector < fNInnerSector) ? fInnerPadPitchLength :fOuterPadPitchLength);} - + Float_t GetPadPitchLength(Int_t isector = 0, Int_t padrow=0) const + { if (isector < fNInnerSector) return fInnerPadPitchLength; + else return ((padrowMasterToLocal(xyzmaster,xyzlocal); + xyz[0] = xyzlocal[0]; + xyz[1] = xyzlocal[1]; + xyz[2] = xyzlocal[2]; index[0]=2; } + + + inline void AliTPCParam::Transform2to1(Float_t *xyz, Int_t *index) const { // @@ -448,7 +546,7 @@ inline void AliTPCParam::Transform2to1(Float_t *xyz, Int_t *index) const if (index[1]=(fNInnerSector>>1)) xyz[2]*=-1.; else - if ( (index[1]-fNInnerSector) > (fNOuterSector>>1) ) xyz[2]*=-1; + if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[2]*=-1; index[0]=1; } @@ -490,7 +588,10 @@ inline Int_t AliTPCParam::Transform2to3(Float_t *xyz, Int_t *index) const if (index[1]