ROBAST logo
#include <stdlib.h>

#include "ACorsikaIACTEventHeader.h"

ClassImp(ACorsikaIACTEventHeader);

const Int_t ACorsikaIACTEventHeader::kMaxArrays = 20;

ACorsikaIACTEventHeader::ACorsikaIACTEventHeader(Float_t* eventHeader) {
  if (eventHeader) {
    for (Int_t i = 0; i < 273; i++) {
      fEventHeader[i] = eventHeader[i];
    }
  }
}

//_____________________________________________________________________________
ACorsikaIACTEventHeader::~ACorsikaIACTEventHeader() {}

//_____________________________________________________________________________
TDatime ACorsikaIACTEventHeader::GetDateOfBeginRun() const {
  Int_t yymmdd = (Int_t)fEventHeader[44];
  Int_t year = yymmdd / 10000;  // Y2K problem may be happened.
  Int_t month = (yymmdd - year * 10000) / 100;
  Int_t day = yymmdd - year * 10000 - month * 100;

  return TDatime(year, month, day, 0, 0, 0);
}

//_____________________________________________________________________________
Int_t ACorsikaIACTEventHeader::GetNumberOfRandomCalls(Int_t i) const {
  if (1 <= i and i <= 10) {
    return (Int_t)fEventHeader[11 + 3 * i] +
           (Int_t)fEventHeader[12 + 3 * i] * 1000000;
  } else {
    return -1;
  }
}

//_____________________________________________________________________________
Float_t ACorsikaIACTEventHeader::GetHeightOfLevel(Int_t i) const {
  if (1 <= i and i <= 10) {
    return fEventHeader[46 + i];
  } else {
    return atof("NaN");
  }
}

//_____________________________________________________________________________
Float_t ACorsikaIACTEventHeader::GetXCoordinateOfCoreLocationForScatteredEvent(
    Int_t i) const {
  if (1 <= i and i <= kMaxArrays) {
    return fEventHeader[97 + i];
  } else {
    return atof("NaN");
  }
}

//_____________________________________________________________________________
Float_t ACorsikaIACTEventHeader::GetYCoordinateOfCoreLocationForScatteredEvent(
    Int_t i) const {
  if (1 <= i and i <= kMaxArrays) {
    return fEventHeader[117 + i];
  } else {
    return atof("NaN");
  }
}

//_____________________________________________________________________________
Double_t ACorsikaIACTEventHeader::GetXOffset(Int_t i) const {
  if (1 <= i and i <= kMaxArrays) {
    return fXOffset[i - 1];
  } else {
    return atof("NaN");
  }
}

//_____________________________________________________________________________
Double_t ACorsikaIACTEventHeader::GetYOffset(Int_t i) const {
  if (1 <= i and i <= kMaxArrays) {
    return fYOffset[i - 1];
  } else {
    return atof("NaN");
  }
}

//_____________________________________________________________________________
void ACorsikaIACTEventHeader::SetMultipleUseHeader(Int_t numberOfArrays,
                                                   Double_t timeOffset,
                                                   Double_t* xOffset,
                                                   Double_t* yOffset) {
  fNumberOfArrays = numberOfArrays;
  fTimeOffset = timeOffset;

  for (Int_t i = 0; i < fNumberOfArrays; i++) {
    fXOffset[i] = xOffset[i];
    fYOffset[i] = yOffset[i];
  }
}
 ACorsikaIACTEventHeader.cxx:1
 ACorsikaIACTEventHeader.cxx:2
 ACorsikaIACTEventHeader.cxx:3
 ACorsikaIACTEventHeader.cxx:4
 ACorsikaIACTEventHeader.cxx:5
 ACorsikaIACTEventHeader.cxx:6
 ACorsikaIACTEventHeader.cxx:7
 ACorsikaIACTEventHeader.cxx:8
 ACorsikaIACTEventHeader.cxx:9
 ACorsikaIACTEventHeader.cxx:10
 ACorsikaIACTEventHeader.cxx:11
 ACorsikaIACTEventHeader.cxx:12
 ACorsikaIACTEventHeader.cxx:13
 ACorsikaIACTEventHeader.cxx:14
 ACorsikaIACTEventHeader.cxx:15
 ACorsikaIACTEventHeader.cxx:16
 ACorsikaIACTEventHeader.cxx:17
 ACorsikaIACTEventHeader.cxx:18
 ACorsikaIACTEventHeader.cxx:19
 ACorsikaIACTEventHeader.cxx:20
 ACorsikaIACTEventHeader.cxx:21
 ACorsikaIACTEventHeader.cxx:22
 ACorsikaIACTEventHeader.cxx:23
 ACorsikaIACTEventHeader.cxx:24
 ACorsikaIACTEventHeader.cxx:25
 ACorsikaIACTEventHeader.cxx:26
 ACorsikaIACTEventHeader.cxx:27
 ACorsikaIACTEventHeader.cxx:28
 ACorsikaIACTEventHeader.cxx:29
 ACorsikaIACTEventHeader.cxx:30
 ACorsikaIACTEventHeader.cxx:31
 ACorsikaIACTEventHeader.cxx:32
 ACorsikaIACTEventHeader.cxx:33
 ACorsikaIACTEventHeader.cxx:34
 ACorsikaIACTEventHeader.cxx:35
 ACorsikaIACTEventHeader.cxx:36
 ACorsikaIACTEventHeader.cxx:37
 ACorsikaIACTEventHeader.cxx:38
 ACorsikaIACTEventHeader.cxx:39
 ACorsikaIACTEventHeader.cxx:40
 ACorsikaIACTEventHeader.cxx:41
 ACorsikaIACTEventHeader.cxx:42
 ACorsikaIACTEventHeader.cxx:43
 ACorsikaIACTEventHeader.cxx:44
 ACorsikaIACTEventHeader.cxx:45
 ACorsikaIACTEventHeader.cxx:46
 ACorsikaIACTEventHeader.cxx:47
 ACorsikaIACTEventHeader.cxx:48
 ACorsikaIACTEventHeader.cxx:49
 ACorsikaIACTEventHeader.cxx:50
 ACorsikaIACTEventHeader.cxx:51
 ACorsikaIACTEventHeader.cxx:52
 ACorsikaIACTEventHeader.cxx:53
 ACorsikaIACTEventHeader.cxx:54
 ACorsikaIACTEventHeader.cxx:55
 ACorsikaIACTEventHeader.cxx:56
 ACorsikaIACTEventHeader.cxx:57
 ACorsikaIACTEventHeader.cxx:58
 ACorsikaIACTEventHeader.cxx:59
 ACorsikaIACTEventHeader.cxx:60
 ACorsikaIACTEventHeader.cxx:61
 ACorsikaIACTEventHeader.cxx:62
 ACorsikaIACTEventHeader.cxx:63
 ACorsikaIACTEventHeader.cxx:64
 ACorsikaIACTEventHeader.cxx:65
 ACorsikaIACTEventHeader.cxx:66
 ACorsikaIACTEventHeader.cxx:67
 ACorsikaIACTEventHeader.cxx:68
 ACorsikaIACTEventHeader.cxx:69
 ACorsikaIACTEventHeader.cxx:70
 ACorsikaIACTEventHeader.cxx:71
 ACorsikaIACTEventHeader.cxx:72
 ACorsikaIACTEventHeader.cxx:73
 ACorsikaIACTEventHeader.cxx:74
 ACorsikaIACTEventHeader.cxx:75
 ACorsikaIACTEventHeader.cxx:76
 ACorsikaIACTEventHeader.cxx:77
 ACorsikaIACTEventHeader.cxx:78
 ACorsikaIACTEventHeader.cxx:79
 ACorsikaIACTEventHeader.cxx:80
 ACorsikaIACTEventHeader.cxx:81
 ACorsikaIACTEventHeader.cxx:82
 ACorsikaIACTEventHeader.cxx:83
 ACorsikaIACTEventHeader.cxx:84
 ACorsikaIACTEventHeader.cxx:85
 ACorsikaIACTEventHeader.cxx:86
 ACorsikaIACTEventHeader.cxx:87
 ACorsikaIACTEventHeader.cxx:88
 ACorsikaIACTEventHeader.cxx:89
 ACorsikaIACTEventHeader.cxx:90
 ACorsikaIACTEventHeader.cxx:91
 ACorsikaIACTEventHeader.cxx:92
 ACorsikaIACTEventHeader.cxx:93
 ACorsikaIACTEventHeader.cxx:94
 ACorsikaIACTEventHeader.cxx:95
 ACorsikaIACTEventHeader.cxx:96
 ACorsikaIACTEventHeader.cxx:97
 ACorsikaIACTEventHeader.cxx:98
 ACorsikaIACTEventHeader.cxx:99