ROOT logo
//*-- Author : G.Agakishiev

using namespace std;
#include <iostream>
#include <iomanip>

#include "hmdcalignerparam.h"
#include "hmdcalignerd.h"
#include "hmdclookuptb.h"
#include "hmdcgetcontainers.h"
#include "hgeomcompositevolume.h"

ClassImp(HMdcAlignerParam)

HMdcAlignerParam::HMdcAlignerParam(void) {

   cluster = kFALSE;
   offset = kFALSE;
   firstFile = kTRUE;
   firstMod = -1;
   lastMod  = -1;

}
HMdcAlignerParam::HMdcAlignerParam(const HMdcAlignerParam& ap):TObject(ap) {

   copy(ap);
   cluster = kFALSE;
   offset = kFALSE;
   firstFile = kTRUE;

   
}

HMdcAlignerParam::HMdcAlignerParam(Int_t alsec, Double_t * par, Double_t * st, Int_t * fl, HMdcLookUpTb * look) {

   alignSec = alsec;
   fLookUpTb = look;
   cluster = kFALSE;
   offset = kFALSE;
   firstFile = kTRUE;
   
   setAlignParams(par);
   setSteps(st);
   setFlags(fl);
   setMinParams();
   setPlanes();
   setNewPosition();
   
}

void HMdcAlignerParam::init() {

   fLookUpTb=HMdcLookUpTb::getObject();
   if(firstFile) {
      setMinParams();
      setPlanes();
      setOriginalTransforms();
      setActualTransforms();
      setNewPosition(minParams,offset);
      firstFile = kFALSE;
   }

}
   
void HMdcAlignerParam::setNewPosition(Double_t * minPar, Int_t offset) {
   
   HMdcSizesCells* fSizesCells   =  HMdcSizesCells::getObject();

   HMdcSizesCellsSec& fSCSec = (*fSizesCells)[alignSec];
   
   if(minPar == 0) minPar = minParams;

   setNewAlignParams(minPar);
   
   Double_t alignPar[6]; 
   Double_t corr[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; 
   HGeomTransform alignTrans;

   switch(offset) {
   case 0:
      alignPar[0] = alignParams[0];
      alignPar[1] = alignParams[1];
      alignPar[2] = alignParams[2];
      alignPar[3] = alignParams[3];
      alignPar[4] = alignParams[4];
      alignPar[5] = alignParams[5];
      HMdcSizesCells::setTransform(alignPar, alignTrans);
      if(fSCSec.modStatus(0)) fSizesCells->fillModCont(alignSec,0,&alignTrans,1);
      alignPar[0] = alignParams[6];
      alignPar[1] = alignParams[7];
      alignPar[2] = alignParams[8];
      alignPar[3] = alignParams[9];
      alignPar[4] = alignParams[10];
      alignPar[5] = alignParams[11];
      HMdcSizesCells::setTransform(alignPar, alignTrans);
      if(fSCSec.modStatus(1)) fSizesCells->fillModCont(alignSec,1,&alignTrans,1);
      alignPar[0] = alignParams[12];
      alignPar[1] = alignParams[13];
      alignPar[2] = alignParams[14];
      alignPar[3] = alignParams[15];
      alignPar[4] = alignParams[16];
      alignPar[5] = alignParams[17];
      HMdcSizesCells::setTransform(alignPar, alignTrans);
      if(fSCSec.modStatus(2)) fSizesCells->fillModCont(alignSec,2,&alignTrans,1);
      alignPar[0] = alignParams[18];
      alignPar[1] = alignParams[19];
      alignPar[2] = alignParams[20];
      alignPar[3] = alignParams[21];
      alignPar[4] = alignParams[22];
      alignPar[5] = alignParams[23];
      HMdcSizesCells::setTransform(alignPar, alignTrans);
      if(fSCSec.modStatus(3)) fSizesCells->fillModCont(alignSec,3,&alignTrans,1);
      break;
   case 1:
      corr[0] = alignParams[0];
      corr[1] = alignParams[1];
      corr[2] = alignParams[2];
      corr[3] = alignParams[3];
      corr[4] = alignParams[4];
      corr[5] = alignParams[5];
      if(fSCSec.modStatus(0)) fSizesCells->fillModCont(alignSec,0,corr);
      corr[0] = alignParams[6];
      corr[1] = alignParams[7];
      corr[2] = alignParams[8];
      corr[3] = alignParams[9];
      corr[4] = alignParams[10];
      corr[5] = alignParams[11];
      if(fSCSec.modStatus(1)) fSizesCells->fillModCont(alignSec,1,corr);
      corr[0] = alignParams[12];
      corr[1] = alignParams[13];
      corr[2] = alignParams[14];
      corr[3] = alignParams[15];
      corr[4] = alignParams[16];
      corr[5] = alignParams[17];
      if(fSCSec.modStatus(2)) fSizesCells->fillModCont(alignSec,2,corr);
      corr[0] = alignParams[18];
      corr[1] = alignParams[19];
      corr[2] = alignParams[20];
      corr[3] = alignParams[21];
      corr[4] = alignParams[22];
      corr[5] = alignParams[23];
      if(fSCSec.modStatus(3)) fSizesCells->fillModCont(alignSec,3,corr);
      break;
   case 2:
      corr[6] = alignParams[0];
      corr[7] = alignParams[1];
      corr[8] = alignParams[2];
      corr[9] = alignParams[3];
      corr[10] = alignParams[4];
      corr[11] = alignParams[5];
      if(fSCSec.modStatus(0)) fSizesCells->fillModCont(alignSec,0,corr);
      corr[6] = alignParams[6];
      corr[7] = alignParams[7];
      corr[8] = alignParams[8];
      corr[9] = alignParams[9];
      corr[10] = alignParams[10];
      corr[11] = alignParams[11];
      if(fSCSec.modStatus(1)) fSizesCells->fillModCont(alignSec,1,corr);
      corr[6] = alignParams[12];
      corr[7] = alignParams[13];
      corr[8] = alignParams[14];
      corr[9] = alignParams[15];
      corr[10] = alignParams[16];
      corr[11] = alignParams[17];
      if(fSCSec.modStatus(2)) fSizesCells->fillModCont(alignSec,2,corr);
      corr[6] = alignParams[18];
      corr[7] = alignParams[19];
      corr[8] = alignParams[20];
      corr[9] = alignParams[21];
      corr[10] = alignParams[22];
      corr[11] = alignParams[23];
      if(fSCSec.modStatus(3)) fSizesCells->fillModCont(alignSec,3,corr);
      break;
   case 3:
      corr[12] = alignParams[0] + alignParams[1] + alignParams[2];
      corr[13] = alignParams[1] + alignParams[2];
      corr[14] = alignParams[2];
      corr[15] = alignParams[3];
      corr[16] = alignParams[4] + alignParams[3];
      corr[17] = alignParams[5] + alignParams[4] + alignParams[3];
      if(fSCSec.modStatus(0)) fSizesCells->fillModCont(alignSec,0,corr);
      corr[12] = alignParams[6] + alignParams[7] + alignParams[8];
      corr[13] = alignParams[7] + alignParams[8];
      corr[14] = alignParams[8];
      corr[15] = alignParams[9];
      corr[16] = alignParams[10] + alignParams[9];
      corr[17] = alignParams[11] + alignParams[10] + alignParams[9];
      if(fSCSec.modStatus(1)) fSizesCells->fillModCont(alignSec,1,corr);
      corr[12] = alignParams[12] + alignParams[13] + alignParams[14];  
      corr[13] = alignParams[13] + alignParams[14];		    
      corr[14] = alignParams[14];
      corr[15] = alignParams[15];
      corr[16] = alignParams[16] + alignParams[15];		    
      corr[17] = alignParams[17] + alignParams[16] + alignParams[15];
      if(fSCSec.modStatus(2)) fSizesCells->fillModCont(alignSec,2,corr);
      corr[12] = alignParams[18] + alignParams[19] + alignParams[20];;
      corr[13] = alignParams[19] + alignParams[20];		     ;
      corr[14] = alignParams[20];
      corr[15] = alignParams[21];
      corr[16] = alignParams[22] + alignParams[21];		     ;
      corr[17] = alignParams[23] + alignParams[22] + alignParams[21];;
      if(fSCSec.modStatus(3)) fSizesCells->fillModCont(alignSec,3,corr);
      break;
   }

   fLookUpTb->initContainer();
   
}

Bool_t HMdcAlignerParam::setPlanes() {
   
  HMdcSizesCells* fSizesCells   =  HMdcSizesCells::getObject();
  HMdcSizesCellsSec& fSizesCellsSec = (*fSizesCells)[alignSec];
  
  firstMod = -1;
  lastMod = -1;
  for(Int_t iMod = 0; iMod < 4; iMod++) {
     if(fSizesCellsSec.modStatus(iMod) && firstMod < 0) firstMod = iMod;
     if(fSizesCellsSec.modStatus(iMod) && firstMod >= 0) lastMod = iMod;
  }
  
  if(firstMod < 0 || lastMod < 0) return kFALSE;
  
  fSizesCellsFirstMod = &(fSizesCellsSec[firstMod]); 
  fSizesCellsLastMod  = &(fSizesCellsSec[lastMod]);

  return kTRUE;
  
}

void HMdcAlignerParam::printTransforms(Double_t * targetPar) {

   HMdcSizesCells* fSizesCells   =  HMdcSizesCells::getObject();
   HMdcSizesCellsSec& fSCSec = (*fSizesCells)[alignSec];
   const HGeomTransform * sysRLab = fSCSec.getLabTrans();
   cout.precision(10);

      
//    HGeomVector chamberVol[4][8];  // Drift gas vol. (8-points)
//    for(Int_t cham=0; cham<3; cham++) {
//       HGeomCompositeVolume * fComVol = fGetCont->getGeomCompositeVolume(cham);
//       for(Int_t point=0; point<8; point++) {
// 	 chamberVol[cham][point] = *(fComVol->getPoint(point));
// 	 cout << cham << " " << point << " " << chamberVol[cham][point] << endl;
//       }
//    }
//    HGeomVector chamberVol[4][8];  // Drift gas vol. (8-points)
//    for(Int_t cham=0; cham<3; cham++) {
//       HGeomCompositeVolume * fComVol = fGetCont->getGeomCompositeVolume(cham);
//       for(Int_t point=0; point<8; point++) {
// 	 chamberVol[cham][point] = *(fComVol->getPoint(point));
// 	 cout << cham << " " << point << " " << chamberVol[cham][point] << endl;
//       }
//    }
	 


   HGeomTransform targetTrans;
   if(targetPar != 0) HMdcSizesCells::setTransform(targetPar, targetTrans);

   cout << " original sec transforms " << endl;
   
   for(Int_t modNum=0; modNum<4; modNum++) sysRSecOrg[modNum].print();

   cout << " original lab transforms " << endl;
   
   for(Int_t modNum=0; modNum<4; modNum++) sysRSecOrg[modNum].transFrom(*sysRLab);

   for(Int_t modNum=0; modNum<4; modNum++) sysRSecOrg[modNum].print();

   setActualTransforms();
   
   cout << " actual sector transforms " << endl;

   for(Int_t modNum=0; modNum<4; modNum++) sysRSec[modNum].print();
   

//    cout << " target transforms " << endl;

//    targetTrans.print();

//    cout << " actual sector transforms corrected for target position" << endl;

//    sysRSec0.transTo(targetTrans);
//    sysRSec1.transTo(targetTrans);
//    sysRSec2.transTo(targetTrans);
//    sysRSec3.transTo(targetTrans);
   
//    sysRSec0.print();
//    sysRSec1.print();
//    sysRSec2.print();
//    sysRSec3.print();
   
   cout << " actual lab transforms " << endl;
   
   for(Int_t modNum=0; modNum<4; modNum++) sysRSec[modNum].transFrom(*sysRLab);

   for(Int_t modNum=0; modNum<4; modNum++) sysRSec[modNum].print();
   
   HMdcGetContainers * fGetCont = HMdcGetContainers::getObject();
   HGeomVector chamberVol[4][8];  // Drift gas vol. (8-points)
   for(Int_t cham=0; cham<4; cham++) {
      HGeomCompositeVolume * fComVol = fGetCont->getGeomCompositeVolume(cham);
      if(!fComVol) continue;
      for(Int_t point=0; point<8; point++) {
	 chamberVol[cham][point] = *(fComVol->getPoint(point));
	 chamberVol[cham][point] = sysRSec[cham].transFrom(chamberVol[cham][point]);
	 cout << alignSec << " " << cham << " " << point << " " << chamberVol[cham][point] << endl;
      }
   }
//    sysRSec0.transFrom(*sysRLab);
//    sysRSec1.transFrom(*sysRLab);
//    sysRSec2.transFrom(*sysRLab);
//    sysRSec3.transFrom(*sysRLab);

//    sysRSec0.print();
//    sysRSec1.print();
//    sysRSec2.print();
//    sysRSec3.print();
   
   
//    cout << " final transforms" << endl;

//    sysRSec0.transTo(sysRSec0Org);
//    sysRSec1.transTo(sysRSec1Org);
//    sysRSec2.transTo(sysRSec2Org);
//    sysRSec3.transTo(sysRSec3Org);
	 
//    sysRSec0.print();
//    sysRSec1.print();
//    sysRSec2.print();
//    sysRSec3.print();

}
   
 hmdcalignerparam.cc:1
 hmdcalignerparam.cc:2
 hmdcalignerparam.cc:3
 hmdcalignerparam.cc:4
 hmdcalignerparam.cc:5
 hmdcalignerparam.cc:6
 hmdcalignerparam.cc:7
 hmdcalignerparam.cc:8
 hmdcalignerparam.cc:9
 hmdcalignerparam.cc:10
 hmdcalignerparam.cc:11
 hmdcalignerparam.cc:12
 hmdcalignerparam.cc:13
 hmdcalignerparam.cc:14
 hmdcalignerparam.cc:15
 hmdcalignerparam.cc:16
 hmdcalignerparam.cc:17
 hmdcalignerparam.cc:18
 hmdcalignerparam.cc:19
 hmdcalignerparam.cc:20
 hmdcalignerparam.cc:21
 hmdcalignerparam.cc:22
 hmdcalignerparam.cc:23
 hmdcalignerparam.cc:24
 hmdcalignerparam.cc:25
 hmdcalignerparam.cc:26
 hmdcalignerparam.cc:27
 hmdcalignerparam.cc:28
 hmdcalignerparam.cc:29
 hmdcalignerparam.cc:30
 hmdcalignerparam.cc:31
 hmdcalignerparam.cc:32
 hmdcalignerparam.cc:33
 hmdcalignerparam.cc:34
 hmdcalignerparam.cc:35
 hmdcalignerparam.cc:36
 hmdcalignerparam.cc:37
 hmdcalignerparam.cc:38
 hmdcalignerparam.cc:39
 hmdcalignerparam.cc:40
 hmdcalignerparam.cc:41
 hmdcalignerparam.cc:42
 hmdcalignerparam.cc:43
 hmdcalignerparam.cc:44
 hmdcalignerparam.cc:45
 hmdcalignerparam.cc:46
 hmdcalignerparam.cc:47
 hmdcalignerparam.cc:48
 hmdcalignerparam.cc:49
 hmdcalignerparam.cc:50
 hmdcalignerparam.cc:51
 hmdcalignerparam.cc:52
 hmdcalignerparam.cc:53
 hmdcalignerparam.cc:54
 hmdcalignerparam.cc:55
 hmdcalignerparam.cc:56
 hmdcalignerparam.cc:57
 hmdcalignerparam.cc:58
 hmdcalignerparam.cc:59
 hmdcalignerparam.cc:60
 hmdcalignerparam.cc:61
 hmdcalignerparam.cc:62
 hmdcalignerparam.cc:63
 hmdcalignerparam.cc:64
 hmdcalignerparam.cc:65
 hmdcalignerparam.cc:66
 hmdcalignerparam.cc:67
 hmdcalignerparam.cc:68
 hmdcalignerparam.cc:69
 hmdcalignerparam.cc:70
 hmdcalignerparam.cc:71
 hmdcalignerparam.cc:72
 hmdcalignerparam.cc:73
 hmdcalignerparam.cc:74
 hmdcalignerparam.cc:75
 hmdcalignerparam.cc:76
 hmdcalignerparam.cc:77
 hmdcalignerparam.cc:78
 hmdcalignerparam.cc:79
 hmdcalignerparam.cc:80
 hmdcalignerparam.cc:81
 hmdcalignerparam.cc:82
 hmdcalignerparam.cc:83
 hmdcalignerparam.cc:84
 hmdcalignerparam.cc:85
 hmdcalignerparam.cc:86
 hmdcalignerparam.cc:87
 hmdcalignerparam.cc:88
 hmdcalignerparam.cc:89
 hmdcalignerparam.cc:90
 hmdcalignerparam.cc:91
 hmdcalignerparam.cc:92
 hmdcalignerparam.cc:93
 hmdcalignerparam.cc:94
 hmdcalignerparam.cc:95
 hmdcalignerparam.cc:96
 hmdcalignerparam.cc:97
 hmdcalignerparam.cc:98
 hmdcalignerparam.cc:99
 hmdcalignerparam.cc:100
 hmdcalignerparam.cc:101
 hmdcalignerparam.cc:102
 hmdcalignerparam.cc:103
 hmdcalignerparam.cc:104
 hmdcalignerparam.cc:105
 hmdcalignerparam.cc:106
 hmdcalignerparam.cc:107
 hmdcalignerparam.cc:108
 hmdcalignerparam.cc:109
 hmdcalignerparam.cc:110
 hmdcalignerparam.cc:111
 hmdcalignerparam.cc:112
 hmdcalignerparam.cc:113
 hmdcalignerparam.cc:114
 hmdcalignerparam.cc:115
 hmdcalignerparam.cc:116
 hmdcalignerparam.cc:117
 hmdcalignerparam.cc:118
 hmdcalignerparam.cc:119
 hmdcalignerparam.cc:120
 hmdcalignerparam.cc:121
 hmdcalignerparam.cc:122
 hmdcalignerparam.cc:123
 hmdcalignerparam.cc:124
 hmdcalignerparam.cc:125
 hmdcalignerparam.cc:126
 hmdcalignerparam.cc:127
 hmdcalignerparam.cc:128
 hmdcalignerparam.cc:129
 hmdcalignerparam.cc:130
 hmdcalignerparam.cc:131
 hmdcalignerparam.cc:132
 hmdcalignerparam.cc:133
 hmdcalignerparam.cc:134
 hmdcalignerparam.cc:135
 hmdcalignerparam.cc:136
 hmdcalignerparam.cc:137
 hmdcalignerparam.cc:138
 hmdcalignerparam.cc:139
 hmdcalignerparam.cc:140
 hmdcalignerparam.cc:141
 hmdcalignerparam.cc:142
 hmdcalignerparam.cc:143
 hmdcalignerparam.cc:144
 hmdcalignerparam.cc:145
 hmdcalignerparam.cc:146
 hmdcalignerparam.cc:147
 hmdcalignerparam.cc:148
 hmdcalignerparam.cc:149
 hmdcalignerparam.cc:150
 hmdcalignerparam.cc:151
 hmdcalignerparam.cc:152
 hmdcalignerparam.cc:153
 hmdcalignerparam.cc:154
 hmdcalignerparam.cc:155
 hmdcalignerparam.cc:156
 hmdcalignerparam.cc:157
 hmdcalignerparam.cc:158
 hmdcalignerparam.cc:159
 hmdcalignerparam.cc:160
 hmdcalignerparam.cc:161
 hmdcalignerparam.cc:162
 hmdcalignerparam.cc:163
 hmdcalignerparam.cc:164
 hmdcalignerparam.cc:165
 hmdcalignerparam.cc:166
 hmdcalignerparam.cc:167
 hmdcalignerparam.cc:168
 hmdcalignerparam.cc:169
 hmdcalignerparam.cc:170
 hmdcalignerparam.cc:171
 hmdcalignerparam.cc:172
 hmdcalignerparam.cc:173
 hmdcalignerparam.cc:174
 hmdcalignerparam.cc:175
 hmdcalignerparam.cc:176
 hmdcalignerparam.cc:177
 hmdcalignerparam.cc:178
 hmdcalignerparam.cc:179
 hmdcalignerparam.cc:180
 hmdcalignerparam.cc:181
 hmdcalignerparam.cc:182
 hmdcalignerparam.cc:183
 hmdcalignerparam.cc:184
 hmdcalignerparam.cc:185
 hmdcalignerparam.cc:186
 hmdcalignerparam.cc:187
 hmdcalignerparam.cc:188
 hmdcalignerparam.cc:189
 hmdcalignerparam.cc:190
 hmdcalignerparam.cc:191
 hmdcalignerparam.cc:192
 hmdcalignerparam.cc:193
 hmdcalignerparam.cc:194
 hmdcalignerparam.cc:195
 hmdcalignerparam.cc:196
 hmdcalignerparam.cc:197
 hmdcalignerparam.cc:198
 hmdcalignerparam.cc:199
 hmdcalignerparam.cc:200
 hmdcalignerparam.cc:201
 hmdcalignerparam.cc:202
 hmdcalignerparam.cc:203
 hmdcalignerparam.cc:204
 hmdcalignerparam.cc:205
 hmdcalignerparam.cc:206
 hmdcalignerparam.cc:207
 hmdcalignerparam.cc:208
 hmdcalignerparam.cc:209
 hmdcalignerparam.cc:210
 hmdcalignerparam.cc:211
 hmdcalignerparam.cc:212
 hmdcalignerparam.cc:213
 hmdcalignerparam.cc:214
 hmdcalignerparam.cc:215
 hmdcalignerparam.cc:216
 hmdcalignerparam.cc:217
 hmdcalignerparam.cc:218
 hmdcalignerparam.cc:219
 hmdcalignerparam.cc:220
 hmdcalignerparam.cc:221
 hmdcalignerparam.cc:222
 hmdcalignerparam.cc:223
 hmdcalignerparam.cc:224
 hmdcalignerparam.cc:225
 hmdcalignerparam.cc:226
 hmdcalignerparam.cc:227
 hmdcalignerparam.cc:228
 hmdcalignerparam.cc:229
 hmdcalignerparam.cc:230
 hmdcalignerparam.cc:231
 hmdcalignerparam.cc:232
 hmdcalignerparam.cc:233
 hmdcalignerparam.cc:234
 hmdcalignerparam.cc:235
 hmdcalignerparam.cc:236
 hmdcalignerparam.cc:237
 hmdcalignerparam.cc:238
 hmdcalignerparam.cc:239
 hmdcalignerparam.cc:240
 hmdcalignerparam.cc:241
 hmdcalignerparam.cc:242
 hmdcalignerparam.cc:243
 hmdcalignerparam.cc:244
 hmdcalignerparam.cc:245
 hmdcalignerparam.cc:246
 hmdcalignerparam.cc:247
 hmdcalignerparam.cc:248
 hmdcalignerparam.cc:249
 hmdcalignerparam.cc:250
 hmdcalignerparam.cc:251
 hmdcalignerparam.cc:252
 hmdcalignerparam.cc:253
 hmdcalignerparam.cc:254
 hmdcalignerparam.cc:255
 hmdcalignerparam.cc:256
 hmdcalignerparam.cc:257
 hmdcalignerparam.cc:258
 hmdcalignerparam.cc:259
 hmdcalignerparam.cc:260
 hmdcalignerparam.cc:261
 hmdcalignerparam.cc:262
 hmdcalignerparam.cc:263
 hmdcalignerparam.cc:264
 hmdcalignerparam.cc:265
 hmdcalignerparam.cc:266
 hmdcalignerparam.cc:267
 hmdcalignerparam.cc:268
 hmdcalignerparam.cc:269
 hmdcalignerparam.cc:270
 hmdcalignerparam.cc:271
 hmdcalignerparam.cc:272
 hmdcalignerparam.cc:273
 hmdcalignerparam.cc:274
 hmdcalignerparam.cc:275
 hmdcalignerparam.cc:276
 hmdcalignerparam.cc:277
 hmdcalignerparam.cc:278
 hmdcalignerparam.cc:279
 hmdcalignerparam.cc:280
 hmdcalignerparam.cc:281
 hmdcalignerparam.cc:282
 hmdcalignerparam.cc:283
 hmdcalignerparam.cc:284
 hmdcalignerparam.cc:285
 hmdcalignerparam.cc:286
 hmdcalignerparam.cc:287
 hmdcalignerparam.cc:288
 hmdcalignerparam.cc:289
 hmdcalignerparam.cc:290
 hmdcalignerparam.cc:291
 hmdcalignerparam.cc:292
 hmdcalignerparam.cc:293
 hmdcalignerparam.cc:294
 hmdcalignerparam.cc:295
 hmdcalignerparam.cc:296
 hmdcalignerparam.cc:297
 hmdcalignerparam.cc:298
 hmdcalignerparam.cc:299
 hmdcalignerparam.cc:300
 hmdcalignerparam.cc:301
 hmdcalignerparam.cc:302
 hmdcalignerparam.cc:303
 hmdcalignerparam.cc:304
 hmdcalignerparam.cc:305
 hmdcalignerparam.cc:306
 hmdcalignerparam.cc:307
 hmdcalignerparam.cc:308
 hmdcalignerparam.cc:309
 hmdcalignerparam.cc:310
 hmdcalignerparam.cc:311
 hmdcalignerparam.cc:312
 hmdcalignerparam.cc:313
 hmdcalignerparam.cc:314
 hmdcalignerparam.cc:315
 hmdcalignerparam.cc:316
 hmdcalignerparam.cc:317
 hmdcalignerparam.cc:318
 hmdcalignerparam.cc:319
 hmdcalignerparam.cc:320
 hmdcalignerparam.cc:321
 hmdcalignerparam.cc:322
 hmdcalignerparam.cc:323
 hmdcalignerparam.cc:324
 hmdcalignerparam.cc:325
 hmdcalignerparam.cc:326
 hmdcalignerparam.cc:327
 hmdcalignerparam.cc:328
 hmdcalignerparam.cc:329
 hmdcalignerparam.cc:330
 hmdcalignerparam.cc:331
 hmdcalignerparam.cc:332
 hmdcalignerparam.cc:333
 hmdcalignerparam.cc:334
 hmdcalignerparam.cc:335