ROOT logo
// Macro to parse the text dump of the RCT and convert it into
// a RunTag object. This object needs to be then merged with the
// proper RunTag from the Run.
//
// Parameters:
// Name of the text file with the dump from MonaLisa RCT page
//
// Author: Adam.Kisiel@cern.ch

int getposition(const char *token, int poscount)
{
  int position = -1;

  if (strstr(token, "#raw_run")) {
    position = 0;
    cout << "Run number at " << poscount << endl;
  }
  else if (strstr(token, "partition")) {
    position = 1;
    cout << "LHC Period at " << poscount << endl;
  }
  else if (strstr(token, "fillno")) {
    position = 4;
    cout << "Fill number at " << poscount << endl;
  }
  else if (strstr(token, "energy")) {
    position = 5;
    cout << "Beam Energy at " << poscount << endl;
  }
  else if (strstr(token, "intensity_per_bunch")) {
    position = 6;
    cout << "Bunch Intensity at " << poscount << endl;
  }
  else if (strstr(token, "cbeamb_abce_nopf_all")) {
    position = 7;
    cout << "Beam Triggers at " << poscount << endl;
  }
  else if (strstr(token, "cint1b_abce_nopf_all")) {
    position = 8;
    cout << "Collision Triggers at " << poscount << endl;
  }
  else if (strstr(token, "rate")) {
    position = 9;
    cout << "Collision rate at " << poscount << endl;
  }
  else if (strstr(token, "cint1_e_nopf_all")) {
    position = 10;
    cout << "Empty Triggers at " << poscount << endl;
  }
  else if (strstr(token, "cint1a_abce_nopf_all")) {
    position = 11;
    cout << "ASide Triggers at " << poscount << endl;
  }
  else if (strstr(token, "cint1c_abce_nopf_all")) {
    position = 12;
    cout << "CSide Triggers at " << poscount << endl;
  }
  else if (strstr(token, "mean_vertex_xyz")) {
    position = 13;
    cout << "Mean Vertex at " << poscount << endl;
  }
  else if (strstr(token, "vertex_quality")) {
    position = 14;
    cout << "Vertex Quality at " << poscount << endl;
  }
  else if (strstr(token, "field")) {
    position = 15;
    cout << "Magnetic Field at " << poscount << endl;
  }
  else if (strstr(token, "det_aco")) {
    position = 16;
    cout << "ACORDE at " << poscount << endl;
  }
  else if (strstr(token, "det_emc")) {
    position = 17;
    cout << "EMC at " << poscount << endl;
  }
  else if (strstr(token, "det_fmd")) {
    position = 18;
    cout << "FMD at " << poscount << endl;
  }
  else if (strstr(token, "det_hlt")) {
    position = 19;
    cout << "HLT at " << poscount << endl;
  }
  else if (strstr(token, "det_hmp")) {
    position = 20;
    cout << "HMPID at " << poscount << endl;
  }
  else if (strstr(token, "det_mch")) {
    position = 21;
    cout << "MCH at " << poscount << endl;
  }
  else if (strstr(token, "det_mtr")) {
    position = 22;
    cout << "MTR at " << poscount << endl;
  }
  else if (strstr(token, "det_phs")) {
    position = 23;
    cout << "PHOS at " << poscount << endl;
  }
  else if (strstr(token, "det_pmd")) {
    position = 24;
    cout << "pmd at " << poscount << endl;
  }
  else if (strstr(token, "det_spd")) {
    position = 25;
    cout << "SPD at " << poscount << endl;
  }
  else if (strstr(token, "det_sdd")) {
    position = 26;
    cout << "SDD at " << poscount << endl;
  }
  else if (strstr(token, "det_ssd")) {
    position = 27;
    cout << "SSD at " << poscount << endl;
  }
  else if (strstr(token, "det_tof")) {
    position = 28;
    cout << "TOF at " << poscount << endl;
  }
  else if (strstr(token, "det_tpc")) {
    position = 29;
    cout << "TPC at " << poscount << endl;
  }
  else if (strstr(token, "det_trd")) {
    position = 30;
    cout << "TRD at " << poscount << endl;
  }
  else if (strstr(token, "det_t00")) {
    position = 31;
    cout << "TZERO at " << poscount << endl;
  }
  else if (strstr(token, "det_v00")) {
    position = 32;
    cout << "VZERO at " << poscount << endl;
  }
  else if (strstr(token, "det_zdc")) {
    position = 33;
    cout << "ZDC at " << poscount << endl;
  }
  else if (strstr(token, "filling_config")) {
    position = 39;
    cout << "Filling Scheme at " << poscount << endl;
  }
  else if (strstr(token, "quality")) {
    position = 40;
    cout << "Quality at " << poscount << endl;
  }
  else if (strstr(token, "muon_trigger")) {
    position = 41;
    cout << "Muon Trigger at " << poscount << endl;
  }
  else if (strstr(token, "high_multiplicity_trigger")) {
    position = 42;
    cout << "High Multiplicity trigger at " << poscount << endl;
  }

  return position;
}

void ParseRCTDump(const char *insum = "rctdump.txt")
{
  ifstream *istr = new ifstream(insum);

  char buf[10000];
  istr->getline(buf, 10000);
  
  if (strstr(buf, "#raw_run"))
    cout << "Found raw run " << endl;

  char *nval;
  char *nlin = strstr(buf, "|");
  char *nbeg = buf-1;
  char ntok[1000];
  char nstr[1000];

  // Parse field name list

  int fieldpos[200];
  int poscount = 0;
  
  do {
    if (nlin == NULL) {
      strcpy(ntok, nbeg+1);
      //      ntok[nlin-nbeg-1] = '\0';
    }
    else {
      strncpy(ntok, nbeg+1, nlin-nbeg-1);
      ntok[nlin-nbeg-1] = '\0';
    }

    cout << "Token is " << ntok << endl;

    fieldpos[poscount] = getposition(ntok, poscount);
    
    nbeg = nlin;
    nlin = strstr(nlin+1, "|");
    poscount++;
  }
  while (nlin != NULL);

  strcpy(ntok, nbeg+1);

  cout << "Token is " << ntok << endl;
  
  fieldpos[poscount] = getposition(ntok, poscount);
  
  TFile* ftag = TFile::Open("RunTableTagSummary.root", "recreate");

  AliRunTag *tag = new AliRunTag();
  TTree * ttag = new TTree("T","A Tree with event tags");
  TBranch * btag = ttag->Branch("AliTAG", &tag);
  btag->SetCompressionLevel(9);

  int nfield = 0;


  while (!istr->eof()) {
    istr->getline(buf, 10000);
    nlin = strstr(buf, "|");
    nbeg = buf-1;

    nfield = 0;

    cout << "Line " << nlin << endl;
    
    int endline = 0;

    while (!endline) {
      
      if (nlin == NULL) {
	strcpy(ntok, nbeg+1);
	endline = 1;
      }
      else {
	strncpy(ntok, nbeg+1, nlin-nbeg-1);
	ntok[nlin-nbeg-1] = '\0';
      }
      if (ntok[0] == '"') {
	strncpy(nstr, ntok+1, strlen(ntok)-2); 
	nstr[strlen(ntok)-2] = '\0';
      }
      else if (ntok[0] == '(') {
	char *com = strstr(ntok, ";");
	cout << ntok << " "<< com << endl;
	strncpy(nstr, ntok+1, com-ntok-1);
	nstr[com-ntok-1] = '\0';
      }
      else {
	nstr[0] = '\0';
	nstr[1] = '\0';
	nstr[2] = '\0';
      }

      if (nlin != NULL) {
	nbeg = nlin;
	nlin = strstr(nlin+1, "|");
      }

      switch (fieldpos[nfield]) {
      case 0:
	tag->SetRunId(atoi(ntok));
	break;
      case 1:
	tag->SetLHCPeriod(nstr);
	break;
      case 2:
	break;
      case 3:
	break;
      case 4:
	tag->GetLHCTag()->SetFillNo(atoi(ntok));
	break;
      case 5:
	tag->GetLHCTag()->SetBeamEnergy(atof(ntok));
	break;
      case 6:
	tag->GetLHCTag()->SetBunchIntensity(atof(ntok));
	break;
      case 7:
	tag->SetBeamTriggers(atol(ntok));
	break;
      case 8:
	tag->SetCollisionTriggers(atol(ntok));
	break;
      case 9:
	tag->SetCollisionRate(atof(ntok));
	break;
      case 10:
	tag->SetEmptyTriggers(atol(ntok));
	break;
      case 11:
	tag->SetASideTriggers(atol(ntok));
	break;
      case 12:
	tag->SetCSideTriggers(atol(ntok));
	break;
      case 13:
	tag->SetMeanVertex(atof(ntok));
	break;
      case 14:
	tag->SetVertexQuality(atof(ntok));
	break;
      case 15:
	tag->SetMagneticField(atoi(ntok+1));
	break;
      case 16:
	tag->GetDetectorTags()->SetDetectorStatus(17, nstr);
	break;
      case 17:
	tag->GetDetectorTags()->SetDetectorStatus(18, nstr);
	break;
      case 18:
	tag->GetDetectorTags()->SetDetectorStatus(12, nstr);
	break;
      case 19:
	tag->GetDetectorTags()->SetDetectorStatus(21, nstr);
	break;
      case 20:
	tag->GetDetectorTags()->SetDetectorStatus(6, nstr);
	break;
      case 21:
	tag->GetDetectorTags()->SetDetectorStatus(10, nstr);
	break;
      case 22:
	tag->GetDetectorTags()->SetDetectorStatus(11, nstr);
	break;
      case 23:
	tag->GetDetectorTags()->SetDetectorStatus(7, nstr);
	break;
      case 24:
	tag->GetDetectorTags()->SetDetectorStatus(9, nstr);
	break;
      case 25:
	tag->GetDetectorTags()->SetDetectorStatus(0, nstr);
	break;
      case 26:
	tag->GetDetectorTags()->SetDetectorStatus(1, nstr);
	break;
      case 27:
	tag->GetDetectorTags()->SetDetectorStatus(2, nstr);
	break;
      case 28:
	tag->GetDetectorTags()->SetDetectorStatus(5, nstr);
	break;
      case 29:
	tag->GetDetectorTags()->SetDetectorStatus(3, nstr);
	break;
      case 30:
	tag->GetDetectorTags()->SetDetectorStatus(4, nstr);
	break;
      case 31:
	tag->GetDetectorTags()->SetDetectorStatus(13, nstr);
	break;
      case 32:
	tag->GetDetectorTags()->SetDetectorStatus(14, nstr);
	break;
      case 33:
	tag->GetDetectorTags()->SetDetectorStatus(15, nstr);
	break;
      case 34:
	// comment
	break;
      case 35:
	// detectors
	break;
      case 36:
	// changedby
	break;
      case 37:
	// changedon
	break;
      case 38:
	// run duration
	break;
      case 39:
	tag->GetLHCTag()->SetFillingScheme(nstr);
	break;
      case 40:
	cout << "Setting Quality ]" << nstr << "[" << atoi(nstr) << endl;
	if (strlen(nstr) == 0)
	  tag->SetRunQuality(0);
	else
	  tag->SetRunQuality(atoi(nstr));
	break;
      case 41:
	tag->SetMuonTriggers(atol(ntok));
	break;
      case 42:
	tag->SetHMTriggers(atol(ntok));
	break;
      }

      nfield++;
    }


    if (nfield > 1) {
      ttag->Fill();
      tag->Clear("");
    }
  }

  ftag->cd();
  tag->Clear();
  ttag->Write();
  ftag->Close();

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