Описание банков системы реконструкции событий для установки ВЕС.


Информация о событии, о геометрии установки, а также некоторая вспомогательная информация хранится в одном COMMON-блоке с именем /DSBANK/:
	parameter (nbank=20000)
	COMMON/DSBANK/NCZEBR,ICSTOR,ICDIV2,icdiv3,icdiv4,icdiv5,
     +             FENDC(16),LCMAIN,LCR1,WSC(nbank)  
	DIMENSION ICQ(1),CQ(1),LCQ(nbank) 
	INTEGER *2 ICQ2(1)
	CHARACTER CCQ(1)*4
	EQUIVALENCE (CQ(1),ICQ(1),LCQ(9)),(LCQ(1),LCMAIN)  
	EQUIVALENCE (CQ(1),CCQ(1)),(ICQ2(1),ICQ(1))
  В данном COMMON-блоке:
	ICSTOR     - Store Number (в рамках пакета ZEBRA).
	ICDIV2,ICDIV3,ICDIV4,ICDIV5- номера подразделений
		 (в рамках пакетa ZEBRA).
	WSC(nbank) - собственно рабочее пространство для 
		     программ реконструкции событий.
  Назначение различных подразделений:

	ICDIV2 - Подразделениe для нужд пользователя 
		 (User Short Term, Reverse);
	ICDIV3 - Подразделение для хранения геометрии установки
		 (User Long Term, Forward);
	ICDIV4 - Подразделение для нужд пользователя (HBOOK здесь)
		 (User Long Term, Reverse);
	ICDIV5 - Подразделение для хранения события
		 (User Short Term, Forward);
Для хранения адресов структур отведены COMMON/DSLINK/ (область постоянных структурных связей) и COMMON/DSWORK/ (область временных структурных связей).
c
	COMMON/DSLINK/lchead,lcproc,lcsets,lcmtin,lcmtou,lctime,
     +		      lcpool,lcevnt,lcdata,
     +		      lcrd  ,lctd  ,lcpo  ,lcdr  ,lcpr  ,
     +		      lrgset,lrgdet,lrgprc,lrdset,lrddet,lrdprc,
     +		      lrefer(10)
c
	COMMON/DSWORK/lwaaaa,lwzebra,lwork(25)
Переменные LCHEAD...LCDATA служат для хранения адресов структур (structural links), переменные LCRD...LRDPRC, LREFER(10) служат для хранения ссылок на определенные структуры (reference links). Назначение различных типов структур:
   В подразделении ICDIV3 располагаются следущие структуры:
        LCHEAD - головной банк для загрузки геометрии установки;
        LCPROC - описание процессоров программы реконструкции;
        LCSETS - oписание сетов однотипных детекторов;
	LCMTIN - описание списка входных магнитных лент;
	LCMTOU - описание списка выходных магнитных лент;
	LCTIME - структура для хранения периодов справедливости
		 отдельных банков;
	LCPOOL - рабочая структура без права доступа к ней пользователя.

   В подразделении ICDIV5 располагаются следущие структуры:
	LCDATA - вспомогательная структура; (Пустой RD банк)
        LCEVNT - структура для хранения события;
                 Эта структура состоит из 4 подструктур:
                 RD - сырая информация
                 TD - полусырая информация
                 PO - Processors output
                 IL - Inclusion Lists Structures

   Назначение различных переменных-ссылок:
	LCRD   - ссылкa на банк с сырой информацией с установки 
		 (Raw Data, RD, подвешен к EVNT lq(lcevnt-1));
	LCTD   - ссылка на банк с преобразованными данными 
		 (Transformed Data, TD, подвешен к EVNT lq(lcevnt-2));
	LCPO   - ссылка на структуру для хранения результатов работы
		 процессоров (Processor Output, PO, подвешен к EVNT
                 lq(lcevnt-3));
	LCDR   - ссылка на структуры с информацией о том, в какие
		 PO-банки входят элементы данных с установки (подвешен
                 к EVNT, lq(lcevnt-4))
	LCPR   - PR банки (с Inclusion Lists for processors) подвешены
                 к Leading банкам результатов процессоров lq(lprc-1) и
                 таким образом входят в PO-структуру.
	LRGSET - ссылка на банк с описанием текущего сета детекторов;
	LRGDET - ссылка на банк с описанием геометрии детектора,
		 информация с которого используется в данный момент;
	LRGPRC - ссылка на банк с описанием работающего в
		 данный момент процессора;
	LRDSET - ссылка на банк с данными для текущего сета детекторов;
	LRDDET - ссылка на банк с данными от детектора, обрабатываемого
		 в данный момент;
	LRDPRC - ссылка на банк с результатами обработки информации
		 для данного модуля детекторов;
	LREFER(10) - массив ссылок, находящихся в распоряжении
		 пользователя.

ГОД-структура - структура для хранения геометрического описания детекторов установки;

Структура зачитывается из файла базы данных BEC$DSTR (FZ формат) в ICDIV3 и состоит из двух независимых подструктур:

1. Подструктура Header (первый рекорд). Состоит из одного банка по адресу LCHEAD, который не имеет structural links и два reference links, которые ссылаются на внутренности самого банка (на какую-то холерику). Содержимое банка не установлено. Нигде не используется.

2. Подструктура SETS (второй рекорд). Содержит реальную информацию о детекторах. Банки WORK создаются в подпрограмме DSCOPY (file DSCONV_??). Имееет следущее строение:




   SETS  
     |
  -1 |---------------------------------------------------- BHOD
     |                                                       |
  -2 |----------------------------------------- BHPC      -1 |-- WORK
     |                                            | 
  -3 |---------------------------- TARG     (-1-9)|-- HPC* -- WORK 
     |                               |            |    
  -4 |----------------- PROP   (-1-3)|-- WORK      
     |                   |
  -5 |----- INOX  (-1-16)|-- PC** -- WORK
     |        |                
     |  (-1-4)|-- INO* -- WORK    
     |
  -6 |---------------------------------------------------- CHER
     |                                                       |  
  -7 |----------------------------------------- DRFT      -1 |-- WORK 
     |                                            | 
  -8 |---------------------------- HODO     (-1-9)|-- DRF* -- WORK -- DRF*
     |                               |            |  
  -9 |----------------- GAMS   (-1-2)|-- WORK       
     |                   |           |
 -10 |----- POLC      -1 |-- WORK
     |        |                
     |  (-1-2)|-- POL* -- WORK      




  • Банк описания детектора.. Содержание банка.

    Предупреждение ! Реальная структура банков не всегда соответствует настоящему описанию !

    
    LCQ(LADDET-1)		- aдрес ICC-банка;    Не обнаружены !
    LCQ(LADDET-2)		- адрес  CC-банка;    Не обнаружены !
    LCQ(LADDET-3)		- адрес  SI-банка;    Не обнаружены !
    LCQ(LADDET-4)		- адрес RD-банкa, соответсвующего данному
    			  детектору;
    LCQ(LADDET-5)		- адрес TD-банка, соответсвующего данному
    			  детектору;
    LCQ(LADDET-6)=LRSIZ	- адрес начала хранения констант, описы-
    			  вающих геометрические размеры 
    			  детектора; (профиль времени на самом деле)
    LCQ(LADDET-7)=LRPHY	- адрес начала хранения физических 
    			  констант детектора;
    LCQ(LADDET-8)=LRGEA	- адрес начала адреса детектора в 
    			  системе GEANT; 
    ICQ(LADDET+1)           - data sozdaniya banka?
    ICQ(LADDET+2)           - ?
    ICQ(LADDET+3) 		- Номер сета (первое полуслово)
    			  и номер детектора (второе полуслово);
    CCQ(LADDET+4)		- имя детектора в системе GEANT;
    CQ(LADDET+5) =NLOC	- число констант, описывающих положение
    			  детектора в пространстве и геометрические
                              размеры детектора;
    CQ(LADDET+6)		- константы, описывающие положение 
     . . .			  детектора в пространстве размеры детектора;
    CQ(LADDET+5+NLOC)
    CQ(LRSIZ)    =NSIZ	- число констант, описывающих временной профиль
    			  детектора;
    CQ(LRSIZ+1)		- константы, описывающие временной профиль
     . . .			  детектора;
    CQ(LRSIZ+NSIZ)
    CQ(LRPHY)    =NPHY	- число физических констант детектора;
    CQ(LRPHY+1)		- физические константы детектора;
     . . .
    CQ(LRPHY+NPHY)
    CQ(LRGEA)    =NGEA	- число параметров в GEANT-адресе 
    			  детектора;
    CQ(LRGEA+1)		- GEANT-адрес детектора;
     . . .
    CQ(LRGEA+NGEA)
    

    ICC-банк	- банк для хранения индивидуальных для каждого
    		  канала детектора констант (Individual Channel
    		  constants);
     CC-банк	- банк для хранения калибровочных констант детек-
    		  тора (Calibratin Constants);
     SI-банк	- банк для хранения статусной информации о кана-
    		  лах детектора (Status Information);
    R-список	- (Reduction List) список ссылок на ЭДД или ФС, 
    		  которые были использованы при получении данного ФС;
    I-список	- (Inclusion List) список ссылок на ФС, в которые
    		  входит данный ЭДД или ФС;
    RD-структурa	- Структура для хранения сырых данных
    		  с установки (Row Data);
    TD-структура	- Структура для хранения преобразованных данных
    		  (Transformed Data);
    РО-структура	- Структура для хранения ФС (Processors Output);
    DR,PR-структуры	- Структуры для хранения I-списков для ЭДД,ФС;
    
    
  • SETS. Содержание банка. Вернуться к структуре В первом слове записано число сетов NSET, далее в последовательности, соответсвующей номерам сетов записаны имена сетов.
     1. Количество сетов. (=10 для 17-го сеанса)
     2. "BHOD"
     3. "BHPC"
     4. "TARG"
     5. "PROP"
     6. "INOX"
     7. "CHER"
     8. "DRFT"
     9. "HODO"
    10. "GAMS"
    11. "POLC"
    
  • SET_HEADER. Содержание банка. Головной банк сета содержит два слова, в которых содержится одно и то же - название сета. Например банк BHOD содержит:
     1. "BHOD"
     2. "BHOD"
    

  • WORK BANK. Содержание банка. Банк размером 20 слов за исключением банка для GAMSa, который имеет размер 600 слов. Используется, например, для упорядочивания хитов. Это означает, что система может переваривать не более 20 хитов в одном детекторе.

  • HPC*. Содержание банка. Общее описание можно посмотреть в Описании банка детектора. Банк HPC1, например, содержит:
      1            891129   H Дата создания банка
      2                 0   H Не известно
      3             65538   H = 1*2^16 + 2 : Номер детектора 1, сет 2
      4     "        BHPC   H имя детектора в системе GEANT;
      5     6.0000000       G NLOC - число констант, описывающих геометрию детект.
      6    -528.00000       G Z-координата
      7     4.3717594       G X/Y-координата нулевой проволочки
      8   -0.40000001       G расстояние между проволочками (со знаком)
      9     32.000000       G Число каналов
     10    0.53231786E-02   G Временной коэффициент для кластеров.
                            G (считается в DSBEAM, с обрезанием 0.10)
     11    0.00000000E+00   G Ориентация плоскости (=0 для x и =90 для y-плоскости)
     12     14.000000       T NSIZ - длина временного профиля детектора. (lq(l-6))
     13    0.74202187E-01   T временной профиль (нормированный интеграл),
     14    0.22690247       T используемый dhpctm (File DSTD3.FOR) для кластеров.
     15    0.50652754       T ...
     ..    ..........       T ...
     25     13.91173826     T ...
     26     14.000000       T Должно быть NPHY, но ссылка lq(l-6) идет на слово 41 !
     27    0.00000000E+00   T 
     28     5.0734010       T временной профиль для одиночных хитов (dhpctm)
     29     8.342296639     T 
     ..    ..........       T
     39     13.000000       T
     40    0.37659281E-02   T Временной коэффициент для одиночных хитов.
                              (считается в DSBEAM, с обрезанием 0.07 )
     41     11.000000       P Должно быть NGEA, но ссылка NPHY (lq(l-7))
     42     1.0000000       P ??????????
     43    0.00000000E+00   P ??????????
     44     1.0000000       P ??????????
     45    0.00000000E+00   P ??????????
     46    0.00000000E+00   P ??????????
     47    0.00000000E+00   P ??????????
     48     1.0000000       P ??????????
     49    0.00000000E+00   P ??????????
     50    0.00000000E+00   P ??????????
     51    0.00000000E+00   P ??????????
     52     1.0000000       P ??????????
     53     1.0000000       M A сюда ссылка NGEA (lq(l-8))
     54     2.0000000       M ??????????
    
    

  • PC**. Содержание банка. Общее описание можно посмотреть в Описании банка детектора.

    Банк PC01, например, содержит:

    Внимание ! наклонные камеры имеют вместо слова 11 (ориентация проволочек) два слова, и там не угол в градусах, а SIN и COS угла ! Смотри пример PC15, который следует за PC01.

      1            891129   H Дата создания банка
      2                 0   H Не известно
      3             65540   H = 1*2^16 + 4 : Номер детектора 1, сета 4
      4     "        PROP   H имя детектора в системе GEANT;
      5     6.0000000       G NLOC - число констант, описывающих геометрию детект.
      6    -183.80000       G Z-координата
      7    -17.966784       G X/Y-координата нулевой проволочки 
      8    0.20000000       G расстояние между проволочками (со знаком)
      9    160.000000       G Число каналов
     10    0.00000000E+00   G Не используется (может использоваться для вр. коефф.)
     11    0.00000000E+00   G Ориентация плоскости (=0 для x и =90 для y-плоскости)
     12     14.000000       T NSIZ - длина временного профиля детектора. (lq(l-6))
     13    0.17441647E-01   T временной профиль
     14    0.38987212E-01   T ...
     ..    .....            T ...
     25     13.675278       T 
     26     14.000000       T
     27     11.000000       P NPHY (lq(l-7))
     28     1.0000000       P ????????
     29    0.00000000E+00   P ????????
     30     1.0000000       P ????????
     31    0.00000000E+00   P ????????
     32    0.00000000E+00   P ????????
     33    0.00000000E+00   P ????????
     34     1.0000000       P ????????
     35    0.00000000E+00   P ????????
     36    0.00000000E+00   P ????????
     37    0.00000000E+00   P ????????
     38     1.0000000       P ????????
     39     1.0000000       M NGEA (lq(l-8))
     40     1.0000000       M ????????
    
    Пример наклонной камеры PC15:
      1            891129   H Дата создания банка
      2                 0   H Не известно
      3            983044   H = 15*2^16 + 4 : Номер детектора 1, сета 4
      4     "        PROP   H имя детектора в системе GEANT;
      5     7.0000000       G NLOC - число констант, описывающих геометрию детект.
      6    -164.39999       G Z-координата
      7    -19.285496       G X/Y-координата нулевой проволочки 
      8    0.20000000       G расстояние между проволочками (со знаком)
      9    256.000000       G Число каналов
     10    0.00000000E+00   G Не используется (может использоваться для вр. коефф.)
     11   -0.26072043       G Sin угла наклона проволочек 
     12    0.96541435       G Cos угла наклона проволочек
     13     14.000000       Т NSIZ - Длина временного профиля
     ..    ...........      ... Далее все как для PC01 со сдвигом на одно слово.
    
    

  • DRF*/INO*/POL*. Содержание банка. Общее описание можно посмотреть в Описании банка детектора.

    Банк DRF1, например, содержит:

    Внимание ! наклонные камеры имеют вместо слова 11 (ориентация проволочек) два слова, и там не угол в градусах, а SIN и COS угла ! Смотри пример POL1, который следует за DRF1. Наклонные камеры Полякова имеют точно такую же структуру, как наклонные DRFT.

      1            891223   H Дата создания банка
      2             40000   H Не известно
      3             65543   H = 1*2^16 + 7 : Номер детектора 1, сета 7
      4     "        DRFT   H имя детектора в системе GEANT;
      5     6.0000000       G NLOC - число констант, описывающих геометрию детект.
      6     265.22305       G Z-координата
      7    -133.28427       G X/Y-координата нулевой проволочки 
      8    1.60000000       G расстояние между проволочками (со знаком)
      9    160.000000       G Число каналов
     10    0.25545996E-01   G Временной коэффициент.
     11    0.00000000E+00   G Ориентация плоскости (=0 для x и =90 для y-плоскости)
     12     30.000000       T NSIZ - длина временного профиля детектора. (lq(l-6))
     13    0.33250374       T временной профиль
     14     1.5545048       T ...
     ..    .....            T ...
     41     29.876556       T ...
     42     29.973619       T ...
     43     11.000000       P NPHY (lq(l-7))
     44     1.0000000       P ????????
     45    0.00000000E+00   P ????????
     46     1.0000000       P ????????
     47    0.00000000E+00   P ????????
     48    0.00000000E+00   P ????????
     49    0.00000000E+00   P ????????
     50     1.0000000       P ????????
     51    0.00000000E+00   P ????????
     52    0.00000000E+00   P ????????
     53    0.00000000E+00   P ????????
     54     1.0000000       P ????????
     55     1.0000000       M NGEA (lq(l-8))
     56     1.0000000       M ????????
    
    
    Пример наклонной камеры POL1:
      1            970614   H Дата создания банка - не заполнена, к сожалению...
      2                 0   H Не известно
      3             65546   H = 1*2^16 + 10 : Номер детектора 1, сета 10
      4     "        POLC   H имя детектора в системе GEANT;
      5     7.0000000       G NLOC - число констант, описывающих геометрию детект.
      6    -70.099998       G Z-координата
      7    -50.307343       G X-координата нулевой проволочки 
      8    0.20000000       G расстояние между проволочками (со знаком)
      9    542.000000       G Число каналов
     10    0.00000000E+00   G Пока не испол. (может использоваться для вр. коефф.)
     11    0.99070483       G Sin угла наклона проволочек 
     12   -0.13602920       G Cos угла наклона проволочек
     13     30.000000       Т NSIZ - Длина временного профиля
     ..    ...........      ... Далее все как для DRF1 со сдвигом на одно слово.
    
    

  • DRF*. Вторые DRFT банки.

    Очень большие банки (173 слова), заполненные почти сплошь нулями. Созданы раньше нормальных банков. Либо вообще не используются, либо используются в Монте-Карло.

    Структура для хранения параметров процессоров.

    Структура создается в подпрограмме MPPROC. Информация о процессорах, используемых в программе зачитывается из файла BEC$PROC, а параметры процессоров зачитываются из файла BEC$PROC_DB. Оба файла текстовые. Примеры файлов можно посмотреть в BEC$PROC_PROD.DAT и BEC$PROC_DB.DAT.

    Структура имееет следующее строение: (Примеры банков можно найти кликнув соответствующюю ссылку)

       PROC  
         |
      -1 |------ BEAM
         |                              
      -2 |------ VTNY
         |                                            | 
      .. |------ .........
         |
    
    
    Структура для описания процессоров программы находится по адресу LCPROC.
    Перед началом работы процессоры упорядочиваются в порядке
    вызова их из программы, в соответствии с этим каждый процессор имеет свой
    номер. Описание процессора IPROC находится по адресу LADPRC:
    
    	LADPRC=LCQ(LCPROC-IPROC)
    
    
    В банке, описывающем отдельный процессор, содержится информация 
    о том, какие детекторы или процессоры более низкого уровня будут
    данным процессором обрабатываться, а также необходимые для работы процессора 
    параметры. Форма банка следующая.
    
    	LADPRC=LCQ(LCPROC-IPROC)
    	NRPRC =ICQ(LADPRC+2) 
    	NRTOT =ICQ(LADPRC-3)
    LCQ(LADPRC-1)		- ссылки на банки детекторов, информация от 
     . . .			  которых используется данным процессором;
    LCQ(LADPRC-NRDET)
    LCQ(LADPRC-NRDET-1)	- ссылки на банки процессоров, результаты 
     . . .			  работы которых (т.е. ФС) используются 
    LCQ(LADPRC-NRDET-NRPRC)	  данным процессором;
    LCQ(LADPRC-NRTOT+1)=	- начало списка имен детекторов, ЭД которых
    	=LRDET		  используются данным процессором;
    LCQ(LADPRC-NRTOT+2)=	- начало списка имен процессоров, ФС 
    	=LRPRC		  которых используются данным процессором;
    LCQ(LADPRC-NRTOT)	- ссылка на банк РО-структуры, содержащий
    			  ФС, восстановленные данным процессором;
    CCQ(LADPRC+1)		- тип процессора (слово из 4-х букв);
    ICQ(LADPRC+2)=NRPRC	- число процессоров, ФС которых используются
    			  данным процессором;
    ICQ(LADPRC+3)=NCONST	- число необходимых для работы процессора
    			  констант;
     CQ(LADPRC+3+1)		- нужные для работы процессора константы;
     . . .
     CQ(LADPRC+3+NCONST)
    ICQ(LADPRC+4+NCONST)      - NDNAM - число слов, отведенных под имена 
       (LRDET)		  детекторов, ЭД которых используются
    			  данным процессором
    CCQ(LRDET+1)		- имена детекторов, ЭД которых исполь-
     . . .			  зуются данным процессором
    CCQ(LRDET+NDNAM)
    ICQ(LRDET+NDNAM+1)      - NPNAM	- число слов, отведенных под имена
       (LRPRC)			  процессоров, ФС которых используются
    			  данным процессором
    CCQ(LRPRC+1)		- имена процессоров, ФС которых исполь-
     . . .			  зуются данным процессором
    CCQ(LRPRC+NPNAM)
    
    
  • PROC. Содержание банка. В первом слове записано число процессоров, используемых данноы программой. Далее следуют названия процессоров. Например для программы PICT банк выглядит следующим образом:
      1.         15
      2.     "BEAM"
      3.     "VTNY"
      4.     "VRTY"
      5.     "VANY"
      6.     "VANX"
      7.     "VERS"
      8.     "SDRY"
      9.     "DALI"
     10.     "CURV"
     11.     "TRSP"
     12.     "VRSF"
     13.     "IMPR"
     14.     "FINA"
     15.     "GAMS"
     16.     "CHER"
    
    
  • VTNY. Содержание банка. Общее описание банка находится здесь. Например для процессора VTNY банк выглядит следующим образом:
      VTNY.   2   69376(QDIV2) SY/US/IO    2/    0/4D5D NL/NS/ND   10/    0/   20
     REFERENCE links                                          
    1  PC12 73869  3  PC08  73751  5  PC04  73633  7  BEAM  69419  9  ?****  69395
    2  PC10 73810  4  PC06  73692  6  PC02  73574  8 ?****  69388 10   VTNY  78740
     DATA part of bank
    
      1     "        LINE - тип процессора
      2                 1 - число процессоров, рез. которых исп. данным проц.
      3                 8 - число необходимых процессору констант (параметров) 
      4     2.0000000     - 1-й параметр
      5    -222.00000     - 2-й параметр
      6    -195.00000     - ...
      7    0.10000000     - ... Назначение параметров для некоторых
      8     3.0000000     - ... процессоров можно найти ЗДЕСЬ        
      9     4.0000000     - ...
     10    -200.00000     - ...
     11    -195.00000     - 8-й параметр
     12                 6 - NDNAM - число слов, отведенных под имена детекторов
     13     "        PC12 -  на предыдущуе слово есть reference link 
     14     "        PC10
     15     "        PC08
     16     "        PC06
     17     "        PC04
     18     "        PC02
     19                 1 - NPNAM - число слов, отведенных под имена процессоров
     20     "        BEAM - на предыдущуе слово есть reference linк
    
      Промечание: Банк имеет 10 reference links:
                            1-6 - ссылки на банки описания детекторов 
                              7 - ссылка на банк описания используемого процессора 
                              8 - внутренняя ссылка на список детекторов (lvtny+12)
                              9 - внутренняя ссылка на список процессоров(lvtny+19)
                             10 - ссылка на VTNY банк PO-структуры.
    

    Структура для хранения данных о событии.

       EVNT  
         |
      -1 |------ RD
         |                              
      -2 |------ TD
         |   
      -3 |--------------------------- PO
         |                            |
      -4 |------ DR         (-1-NPROC)|-- PRCleading ---- PRCtrailing 
         |                                    |
      -5 |                                 -1 |-- PR 
    
  • EVNT.. Содержание банка.

    Банк создается в головной программе (файл MPLSLTN.FOR, call dscred). Банк не имеет ничего, кроме 5 структурных линков, из которых используются первые 4:

      Links: Structural - 5: -1  RD-банк
                             -2  TD-банк
                             -3  PO-структура
                             -4  DR-банк
                             -5  не используется
             Reference  - 0
             Up         - 0
    
  • RD.. Содержание банка.

    Банк создается в головной программе (файл MPLSLTN.FOR, call dscred). Там же заполняются первые 3 слова. Все остальное заполняется в DSCOPI (fail DSCONV_??.FOR).

    Замечание. В слове icq(l-5) хранится относительный адрес последнего заполненного слова (а не номер банка, как по ZEBRA конвенции). Это может привести к недоразумениям при отладке программ, например при использовании DZCHBK.

      Links: Structural - 0
             Reference  - 0
             Up         - EVNT, -1
      Data:  .GE. 1000
      1             2 H длина заголовка (слова 2 и 3)
      2     606031738 H Absolute Tape Number: 
                      H year*100000000+month*1000000+day*10000+hour*100+minute 
                      H year - one digit, month = 6 always! (file MPRL_DSPN.FOR)
      3 Z       30001 H spill*2^16 + event nmb. in the spill (spill in the tape)
      4 Z       60034 A (число хитов для детектора #1)*2^16 + отн. адрес данных
      5 Z       20037 A (число хитов для детектора #2)*2^16 + отн. адрес данных
      6 Z       10038 A .... Количество байт на один хит зависит от детектора !
     .. ..      ......A ..................
     51 Z       60106 A (число слов для детектора #48)*2^16 + отн. адрес данных 
     52 Z     2670322 D raw data для 1-го детектора (хиты 1-2)
     53 Z     3A802A8 D raw data для 1-го детектора (хиты 3-4)
     54 Z     3F602EA D raw data для 1-го детектора (хиты 5-6)
     55 Z     2AC008C D raw data для 2-го детектора (хиты 1-2)
     56 Z         12B D raw data для 3-го детектора (хит 1)
     ...................... И так далее ......................
    
    Примечания.
    Соответствие между номером детектора и его назаванием для 17-го сеанса можно найти в файле numdet.txt
    Формат сырых данных в RD-банке: Нету еще...

  • TD.. Содержание банка.

    Банк создается в подпрограмме dscret (file DSTD3). В нем создаются NDET reference links, по числу детекторов. Каждая ссылка указывает на область внутри банка для данных этого детектора. В первом слове области находится длина этой области (без первого слова).

      Links: Structural - 0
             Reference  - NDET - число детекторов
             Up         - EVNT, -2
      Data:  .GE. 2000
      1             8 - число слов для детектора #1
      2    -1.2165127 - хит 1
      3    0.10000000   хит 1
      4    -1.0165119   хит 2
      5    0.10000000   хит 2
      6     1.7834873   хит 3
      7    0.10000000   хит 3
      8     1.9834881   хит 4
      9    0.10000000   хит 4
     10             6 - число слов для детектора #2
     11   -0.95972919   хит 1
     12    0.10000000   хит 1
     ...   ..........   .....    и так далее ..........
    
    
    Формат полусырых данных в TD-банке:
      HPC-камеры:
        1.   cq(lrtdet+ih*2-1)   =st/4.*iclc+x0  
                                  Координата начала кластера
        2.   icq(lrtdet+ih*2)    =iclw+itmc(1)*16+itmc(2)*256
                                  Последняя проволока кластера и времена 
               
    
         Нету больше пока...
    
    

    Структура для хранения результатов работы процессоров.

    Структура состоит из головного банка PO и подвешенных к нему банков с результатами работы процессоров Processor_output

    Цитата из работы Г. Борисова: 3. Структура PO. В процедуре обработки ключевым является понятие процессора данных. Под процессором данных понимается подпрограмма, которая на основе данных от детекторов или результатов работы предыдущих процессоров восстанавливает отдельные фрагменты события или (как окончательный результат) событие целиком. Для работы процессору необходимо указать источники входной информации (т.е. те детекторы и/или процессоры, информация от которых будет использована для восстановления фрагмента события). Результаты работы процессора имеют строго определенный формат и хранятся в банках структуры PO (Processors Output). Таким образом, работа программы реконструкции (ПР) строится по конвеерному принципу, т.е. разбивается на отдельные элементарные операции, являющиеся по возможности независимыми от предыдущих операций и конкретной конфигурации детекторов и выполняющиеся последовательно друг за другом.

    Примеры процессоров: поиск ливней в ГАМС; определение пространственной точки прохождения трека по трем сработавшим плоскостям дрейфовой камеры; определение проекции трека в YZ- плоскости по хитам в пропорциональных и дрейфовых камерах; определение типа частицы по показаниям черенковского счетчика; определение вершины взаимодействия в мишени по пучковому треку и восстановленным в установке трекам.

    Так как при инициализации структуры РО не известно общее число фрагментов события, которые восстанавит данный процессор (можно даже представить себе ситуацию, когда заранее неизвестно общее число процессоров ПР), то строение ее банков должно быть достаточно гибким и допускать возможность простого расширения.

    Головной банк РО (адрес - LCPO) имеет NPROC структурных связей (NPROC - общее число процессоров ПР), их количество в процессе работы может быть изменено стандартными средствами пакета ZEBRA. При инициализации устанавливается последовательность запуска отдельных процессоров, в соответствии с этой последовательностью каждому процессору присваивается свой номер. Число слов, отводимое под данные в головном банке не фиксировано (т.е. может не совпадать в разных версиях ПР). В банке с адресом LADPRC=LCQ(LCPO-IPROC), где IPROC- номер процессора, хранятся результаты его работы. Строение банка выбрано исходя из требований обеспечения экономичного механизма его расширения и простого способа поиска интересующих фрагментов события. Этот банк не имеет ни структурных связей, ни связей-ссылок.
    [Здесь выброшен кусок цитаты, так как не соответствует реальности.]
    Для записи фрагментов в банк существует специальная подпрограмма, которая сама вычисляет все нужные адреса и осуществляет необходимый контроль за правильностью заполнения. При необходимости она аккуратно расширяет банк (т.е. не только увеличивает его размер, но и переносит адреса фрагментов на новое место). Пользователю предоставляется возможность уничтожения отдельных фрагментов внутри банка, имеется процедура " сборки мусора", которая при данной простой структуре не слишком громоздка и достаточно быстра.

    Кратко остановимся на формате отдельного фрагмента в банке РО. Как уже упоминалось, для каждого процессора форма фрагмента строго определена. Кажется целесообразным разделить его на две части. В первой части записывается результат обработки данных процессором. Это могут быть, например, параметры восстановленного ливня (энергия ливня, его координаты, соответствующие ошибки), параметры трека заряженной частицы и т.д. Во второй части записывается список ссылок (будем называть его R-список от Reduction List) на использованные процессором данные от детекторов и/или фрагменты других процессоров. Такие списки могут помочь при многоуровневой структуре ПР, когда работа процессоров верхнего уровня опирается на результаты работы процессоров нижних уровней. Например, процедуру поиска треков на установке ВЕС можно разбить на такие этапы:
    1) поиск прямых проекций треков в YZ- плоскости;
    2) поиск связанных троек сигналов в трехплоскостных дрейфовых камерах;
    3) поиск прямых проеций треков в XZ- плоскости до магнита;
    4) поиск полных проекций треков в XZ-плоскости (с использованием результатов работы процессора 3);
    5) сшивка проекций трека в YZ- и XZ- плоскостях (с использованием результатов работы процессоров 1), 2) и 4);
    6) полный пространственный фит отобранных кандидатов в треки с определением точных параметров треков.
    При таком построении ПР в процессе работы необходимо знать, на основе каких данных получены те или иные фрагменты события и эта информация извлекается из R-списков. Формат ссылок в R-списках будет приведен ниже.

    Требование записи R-списка в фрагмент события не является жестким и если для последующей работы ПР такой список не потребуется, его можно не заполнять.

    PO.. Содержание банка.
    Банк создается в подпрограмме dscret (file DSTD3). В нем создаются NDET reference links, по числу детекторов. Каждая ссылка указывает на область внутри банка для данных этого детектора. В первом слове области находится длина этой области (без первого слова).

      Links: Structural - NPROC - число процессоров, задействованных в программе
             Reference  - 0
             Up         - EVNT, -3
      Data:  0
    
      Пример банка в программе PICT:
      PO  .     3    78679(DataStor) SY/US/IO    0/    0/   2 NL/NS/ND   20/   20/  
     STRUCTURAL links
               1    BEAM     78690     5    VANX     80205     9    CURV     81889  
               2    VTNY     78740     6    VERS     80626    10    TRSP     82310  
               3    VRTY     80170     7    SDRY     81047    11    VRSF     82951  
               4                 0     8    DALI     81468    12                 0  
    
    
  • Processor_Output.. Содержание банка.

    На самом деле это два банка, сцепленных последовательно. В первом банке находится "карта" второго. Фрагменты находятся во втором. На каждый фрагмент отводится блок из 4 слов первого банка. Блок содержит:

    
     1. Относительный адрес фрагмента во втором банке + какие-то флаги.
     2. Длина фрагмента.
     3. Относительный адрес первого сегмента I-списка в PR-банке (lq(l-1)). 
     4. Количество живых сегментов в цепочке I-списка.
     Пример банка процессора VTNY:
      VTNY.    28    78740(DataStor) SY/US/IO    0/    0/   2
                    NL/NS/ND    1/    1/   100 N/U/O/@O   78850/   78679/   78677/
     STRUCTURAL links                                          --------------------
               1    PR       88888
     DATA part of bank                                         --------------------
     DATA      1         Z    8001    11                 0    21               110  
               2                23    12                 0    22                20  
               3                 0    13                69    23                 0  
               4                 0    14                20    24                 0  
               5                24    15                 0    25               130  
               6                24    16                 0    26                21  
               7                 0    17                89    27                 0  
               8                 0    18                21    28                 0  
               9                48    19                 0    29                 0  
              10                21    20                 0    30                 0  
        ........................
     Каждый фрагмент состоит из двух динамических секторов (*F *B). В первом
     секторе расположена информация о вичисленных параметрах фрагмента, во второй 
     запакованы элементы R-списков.
    
      VTNY.   150    78850(DataStor) SY/US/IO    0/    0/6039
                    NL/NS/ND    0/    0/ 300 N/U/O/@O       0/   78679/   78740/   
     DATA part of bank                                         --------------------
     DATA      1 *F(           15)    11     5.0000000        21 Z           10014  
               2     2.0000000        12     1349.9999        22 Z           10012  
               3    0.00000000E+00    13    -6086.0005        23 Z           10010  
               4    0.00000000E+00    14    -205241.52        24 *F(           15)  
               5   -0.51290654E-01    15     873352.81        25     2.0000000      
               6    -12.305907        16     32215030.        26    0.00000000E+00  
               7     1349.9999        17 *B(            6)    27    0.00000000E+00  
               8    -205241.52        18 Z           1000E    28    0.81027918E-01  
               9     32215030.        19 Z           10018    29     14.399518      
              10     4.0619006        20 Z           20018    30     1199.9999      
    
    
    Значение параметров для некоторых процессоров можно найти ЗДЕСЬ

    Структуры для хранения Inclusion Lists.

    Цитата из работы Г. Борисова:
    4. Структуры LCDR, LCPR.

    Кроме R-списков, предполагается также наличие т.н. I-списков (Inclusion Lists), которые хранятся в структурах LCDR и LCPR. I-списки считаются дополнительными к R-спискам: если в R-списках хранятся ссылки на ЭДД и/или ФС более низкого уровня, на основе которых был построен данный ФС, то в I-списках для каждого ЭДД или ФС хранятся ссылки на те фрагменты, в которых они используются.

    Когда могут понадобиться I-списки? Например, в процессе работы ПР найдено несколько проекций треков в YZ-плоскости и нужно определить, все ли детекторные данные входят в проекции треков. В этом случае мы просто проверяем, для всех ли данных существуют I-списки. Другой пример: найдены XZ- и YZ- проекции треков и необходимо "сшить" их при помощи наклонных плоскостей дрейфовых камер. Для этого мы для каждой XZ-проекции трека по R-списку определяем "хиты" в Х-плоскостях дрейфовых камер (хит А), далее по I-списку для хита А находим нужный фрагмент (фрагмент В), описывающий связанную тройку хитов в дрейфовой камере (т.е. хиты в трех различных плоскостях дрейфовой камеры, вызванных одной заряженной частицей), по R-списку фрагмента В находим соответсвующий треку хит в Y-плоскости дрейфовой камеры (хит С), по I-списку для хита С находим нужный фрагмент проекции трека в YZ-плоскости и тем самым решаем поставленную задачу.

    На последнем примере видна взаимосвязь R- и I-списков. Так как банки РО-структуры заполняются при помощи специальной подпрограммы, то пользователь не должен беспокоиться о заполнении I-списков, они создаютcя и поддреживаются $_автоматически$_, по мере заполнения РО-структуры. Ясно, что в том случае, когда отсутствует необходимость в R-списке для фрагментов какого-либо процессора, не создается и I-список.

    Из сказанного выше понятно, что длина I-списка для каждого ЭДД заранее не известна. Его начало....

    Далее все скипнуто, потому что не соответствует действительности.

    Для работы с Inclusion Lists структурами нужно пользоваться пакетом подпрограмм PS.

    В действительности DR (Detectors Inclusion Lists) и PR (Processors Inclusion Lists) структуры организованы по разному.
    DR-структура целиком находится в одном банке DR.
    PR-структура распределена по Leading банкам процессоров, подвешенных к PO-банку и по специальным банкам PR, подвешенным к этим Leading банкам.
    Рассмотрим структуры по-отдельности.


  • Структура банка DR.
      Links: Structural - 0
             Reference  - NDET - число детекторов
             Up         - EVNT, -4
    
    Банк содержит довольно сложную структуру, которая состоит из объектов двух типов:
    1. "базовые области"
    2. Цепочки I-списков.

    Каждый детектор имеет свою "базовую область", длина которой равна длине области в TD-банке для данного детектора (т.е. числу хитов, умноженному на два). Адрес этой области находится в reference link DR-банка (lq(ldr-idet)).

    Каждый хит имеет (или не имеет) свою собственную цепочку элементов списка.

     Для каждого хита отведено два слова в "базовой области":
        1. Ссылка на первый элемент цепочки I-списка.
        2. Количество "живых" элементов I-списка.
     Элемент I-списка состоит из 4 слов:
        1. Статус элемента: 0 - пустой, 1 - живой, 3 - убитый.
        2. Ссылка на следующий элемент списка.
        3. Номер процессора, который использовал хит.
        4. Номер фрагмента события, в котором использован данный хит.
    
       Пример DR банка:
    
       1     31  - хит 1, ссылка на 1-й сегмент списка (сюда есть reference link)
       2      0  - хит 1, число сегментов в цепочке. (0 - потому что ссылка убита)
       3      0  - хит 2, не использованный хит
       4      0  - хит 2, --
       5    151  - хит 3, ссылка на 1-й сегмент в цепочке
       6      1  - хит 3, число сегментов в цепочке.
     ...    ...  .......
      31      3  - статус элемента списка - убит
      32      0  - ссылка на следующий элемент (нету)
      33      2  - использован процессором номер 2
      34      1  - использован в 1-м фрагменте события 2-го процессора
     ...    ...
    

  • PS-структура. Inclusion Lists для фрагментов события.
    Структура распределена по многим банкам.
    Ссылки на первые сегменты списков находятся в Leading Processor Banks, в 3-ем и 4-м словах заголовков фрагментов события:
     
        3. Ссылка на первый элемент цепочки I-списка.
        4. Количество "живых" элементов I-списка.
    

    Сами элементы списков находятся в специальных банках PR, подвешенных к Leading Processor Banks. Формат элементов и ссылок на них точно такоы же, как для DR-банка.
  • Структура PR-банка.
       Банк заполнен элементами списков. Элемент списка состоит из 4 слов:
        1. Статус элемента: 0 - пустой, 1 - живой, 3 - убитый.
        2. Ссылка на следующий элемент списка.
        3. Номер процессора, который использовал хит.
        4. Номер фрагмента события, в котором использован данный хит.
    
    E. Vlasov