ROBAST logo
/******************************************************************************
 * Copyright (C) 2006-, Akira Okumura                                         *
 * All rights reserved.                                                       *
 *****************************************************************************/

///////////////////////////////////////////////////////////////////////////////
//
// ARayArray
//
// Array of ARay
//
///////////////////////////////////////////////////////////////////////////////

#include "ARayArray.h"

ClassImp(ARayArray);

//_____________________________________________________________________________
ARayArray::ARayArray() : TObject() {
  // Constructor
  fAbsorbed.SetOwner(kTRUE);
  fExited.SetOwner(kTRUE);
  fFocused.SetOwner(kTRUE);
  fRunning.SetOwner(kTRUE);
  fStopped.SetOwner(kTRUE);
  fSuspended.SetOwner(kTRUE);
}

//_____________________________________________________________________________
ARayArray::~ARayArray() {
  // Destructor
  fAbsorbed.Clear();
  fExited.Clear();
  fFocused.Clear();
  fRunning.Clear();
  fStopped.Clear();
  fSuspended.Clear();
}

//_____________________________________________________________________________
void ARayArray::Add(ARay* ray) {
  if (!ray) return;

  if (ray->IsAbsorbed())
    fAbsorbed.Add(ray);
  else if (ray->IsExited())
    fExited.Add(ray);
  else if (ray->IsFocused())
    fFocused.Add(ray);
  else if (ray->IsRunning())
    fRunning.Add(ray);
  else if (ray->IsStopped())
    fStopped.Add(ray);
  else if (ray->IsSuspended())
    fSuspended.Add(ray);
}

//_____________________________________________________________________________
void ARayArray::Merge(ARayArray* array) {
  if (!array) return;

  TObjArray* objs[6] = {array->GetAbsorbed(), array->GetExited(),
                        array->GetFocused(),  array->GetRunning(),
                        array->GetStopped(),  array->GetSuspended()};

  for (Int_t j = 0; j < 6; j++) {
    for (Int_t i = 0; i <= objs[j]->GetLast(); i++) {
      ARay* ray = (ARay*)objs[j]->RemoveAt(i);
      if (!ray) continue;
      Add(ray);
    }
  }
}
 ARayArray.cxx:1
 ARayArray.cxx:2
 ARayArray.cxx:3
 ARayArray.cxx:4
 ARayArray.cxx:5
 ARayArray.cxx:6
 ARayArray.cxx:7
 ARayArray.cxx:8
 ARayArray.cxx:9
 ARayArray.cxx:10
 ARayArray.cxx:11
 ARayArray.cxx:12
 ARayArray.cxx:13
 ARayArray.cxx:14
 ARayArray.cxx:15
 ARayArray.cxx:16
 ARayArray.cxx:17
 ARayArray.cxx:18
 ARayArray.cxx:19
 ARayArray.cxx:20
 ARayArray.cxx:21
 ARayArray.cxx:22
 ARayArray.cxx:23
 ARayArray.cxx:24
 ARayArray.cxx:25
 ARayArray.cxx:26
 ARayArray.cxx:27
 ARayArray.cxx:28
 ARayArray.cxx:29
 ARayArray.cxx:30
 ARayArray.cxx:31
 ARayArray.cxx:32
 ARayArray.cxx:33
 ARayArray.cxx:34
 ARayArray.cxx:35
 ARayArray.cxx:36
 ARayArray.cxx:37
 ARayArray.cxx:38
 ARayArray.cxx:39
 ARayArray.cxx:40
 ARayArray.cxx:41
 ARayArray.cxx:42
 ARayArray.cxx:43
 ARayArray.cxx:44
 ARayArray.cxx:45
 ARayArray.cxx:46
 ARayArray.cxx:47
 ARayArray.cxx:48
 ARayArray.cxx:49
 ARayArray.cxx:50
 ARayArray.cxx:51
 ARayArray.cxx:52
 ARayArray.cxx:53
 ARayArray.cxx:54
 ARayArray.cxx:55
 ARayArray.cxx:56
 ARayArray.cxx:57
 ARayArray.cxx:58
 ARayArray.cxx:59
 ARayArray.cxx:60
 ARayArray.cxx:61
 ARayArray.cxx:62
 ARayArray.cxx:63
 ARayArray.cxx:64
 ARayArray.cxx:65
 ARayArray.cxx:66
 ARayArray.cxx:67
 ARayArray.cxx:68
 ARayArray.cxx:69
 ARayArray.cxx:70
 ARayArray.cxx:71
 ARayArray.cxx:72
 ARayArray.cxx:73