*-- Author : Stephen J. Maxfield 08/03/91
SUBROUTINE FTCORG
*D: FTCORG.......SM. Extension of FRG1 bank to include asymmetry.
*D: FTCORG.......SM. Get effective stagger from new FCR3 bank.
*D: FTCORG.......SM. Extension of FPG1 bank to include asymmetry.
*D: FTCORG.......SM. Get effective stagger from FCP1 bank.
**: FTCORG 30907 RP. Farm changes.
**----------------------------------------------------------------------
* ========== ======
* Build tables of corrected geometry for Radial and Planar
* Drift Chambers.
* *---------------------------------------------*
* * To be Called at beginning of each New Run *
* *---------------------------------------------*
*
* INPUT: Nominal geometry:- FGAR and FGAP Banks
* Corrections :- F1RC, F1PC, FCP1
* Dead wire maps :- FRDW, FPDW
* Later: shifts from 'shift banks'
*
* OUTPUT: FRG1 and FPG1 banks
*
*! BANKname BANKtype ! Comments
* TABLE FRG1 ! Corrected geometry of Radial Chambers
* ! Row number = Cell number + 1
* ! TEMPORARY.
*! ATTributes:
*! -----------
*!COL ATT-name FMT Min Max ! Comments
*!
* 1 IDEAD I ! Dead wire indicator: 0=OK 1=dead
* 2 PHIWP F ! Angle of +wire
* 3 STAGP F ! Stagger of +wire (effective)
* 4 ZWP F ! Z of +wire
* 5 PHIWM F ! Angle of -wire
* 6 STAGM F ! Stagger of -wire (effective)
* 7 ZWM F ! Z of -wire
* 8 STAGEP F ! Stagger of +wire (geometric)
* 9 STAGEM F ! Stagger of -wire (geometric)
*!
* END TABLE
*! BANKname BANKtype ! Comments
* TABLE FPG1 ! Corrected geometry of Planar Chambers
* ! Row number = Cell number
* ! TEMPORARY.
*! ATTributes:
*! -----------
*!COL ATT-name FMT Min Max ! Comments
*!
* 1 IDEAD I ! Dead wire indicator: 0=OK 1=dead
* 2 PHIW F ! Angle of wire
* 3 STAGE F ! Effective Stagger of wire
* 4 ZWP F ! Z of wire
* 5 STAGG F ! Geometric Stagger of wire
*!
* END TABLE
*#**********************************************************************
*KEEP,BCS.
*KEEP,H1EVDT.
*
* IDATA type of information (HEAD bank word 6) :
*
* 0 - real data H1
* 1 - MC data H1SIM
* 2 - real data CERN tests
* 3 - MC data ARCET
*
* MONTE = .TRUE. if IDATA=1
* KEVENT = event processed counter for H1REC
*
*KEEP,CNSTBF.
*KEEP,FWINDS.
* Work bank indices...
*KEND.
*
*
*
* Locators for geometrical data in F1RC bank...
* Locators for geometrical data in F1PC bank...
* Locators for data in FCP1 bank...
* Locators for data in FCR3 bank...
* dead wire map...
* Local arrays
*KEEP,STFUNCT.
* index of element before row number IROW
* index of L'th element of row number IROW
* L'th integer element of the IROW'th row of bank with index IND
* L'th real element of the IROW'th row of bank with index IND
*KEEP,FTFUNCT.
* Statement functions for RADIAL Chamber data access.
* Using Channel Number J
* Module, Wedge-pair and Z-plane numbers...
* Statement function for obtaining WEDGE numbers(0-47) of
* wires at plus and minus ends of Cell numbers
* Statement function for obtaining IOS wire number (1-36)
* Statement functions for PLANAR Chamber data access.
* Using Channel Number J
* Module, orientation, W-cell and Z-plane numbers...
* IPSMD in range 0:8 Planar module number.
*
* IOS wire number (runs from 0 to 36)
* SB plane numbers (1-72) from cell number
* Module, orientation, wire and (typical) cell number from plane
* number in the range 1-72 (planars, radials and combined)
*KEND.
*----------------------------------------------------------------------
*----------------------------------------------------------------------
* Access nominal geometry banks FGAR and FGAP
* --------------
CALL BKFMT('FRG1','2I,(6F)')
CALL BKFMT('FPG1','2I,(3F)')
IQFRG1 = NAMIND('FRG1')
IQFPG1 = NAMIND('FPG1')
CALL UGTBNK('FGAR',INFGAR)
CALL H1STOP
CALL UGTBNK('FGAP',INDP)
CALL H1STOP
* Get basic radial parameters...
*
*
*
* Get basic planar parameters...
*
*
* -----
*
* Hit database for bank with corrections to nominal geometry
CALL UGTBNK('F1RC',INDC)
CALL H1STOP
* Hit database for effective stagger.
CALL UGTBNK('FCR3',INDCR3)
CALL H1STOP
* Hit database for dead wire map
CALL UGTRUN('FRDW',INDD)
CALL H1STOP
* Check if old FRG1 bank exists. If so drop it.
CALL BDROP(IW,'FRG1')
*
* Get dead wire flag...
* Phi of wires at plus and minus end. Nominal...
* ... add corrections
* Geometric stagger of wire...
* Effective Stagger of wire.
* Attach sign of geometric stagger...
* Monte Carlo has no effective stagger...
* Stagger of plus and minus wires (effective) corrected for
* geometric offsets from nominal...
* Z of wire (nominal only)
* Stagger of plus and minus wires (geometric) corrected for
* geometric offsets from nominal...
*GDP
* WRITE(6,'('' ** FTCORG.R *'',3I4,8(1X,F7.3))') JJ,IRMOD(JJ),
* & IRZPL(JJ),IAR(1),(BAR(II),II=2,9)
*GDP
*
*
*
* ------------------------------------------------------------------
*
* Planar Geometry
*
*
* Hit database for bank with corrections to nominal geometry
CALL UGTBNK('F1PC',INDC)
CALL H1STOP
* Hit database for effective stagger.
CALL UGTBNK('FCP1',INDCP1)
CALL H1STOP
* Hit database for dead wire map
CALL UGTRUN('FPDW',INDD)
CALL H1STOP
* Check if old FPG1 bank exists. If so drop it.
CALL BDROP(IW,'FPG1')
* Get dead wire flag...
* Phi of the Wires defined st Phi wire = Phi of +w-axis - pi/2
*
* Geometric stagger of wire...
* Effective Stagger of wire...
* Attach sign of geometric stagger, convert from microns to cm...
* Monte Carlo has no effective stagger...
* W of wire (effective)
* Z of wire in cell...
* W of wire (geometric)
*GDP
* WRITE(6,'('' ** FTCORG.P *'',6I4,6(1X,F8.3))') JJ,IPSMD(JJ),
* & IPZPL(JJ),IPWCL(JJ),KWCL,IAR(1),(BAR(II),II=2,4)
*GDP
*