Locked History Actions

attachment:TAlEncUser.C of ANAROOT/Manual/analoop

Attachment 'TAlEncUser.C'

Download

#include "TAlEncUser.hh"

#include <iostream>

#include "TRandom.h"

#include "TArtAnaLoop.hh"
#include "TArtAnaFile.hh"

#include "EAnalyser.hh"
#include "EWNum.hh"

TAlEncUser::TAlEncUser()
  : TAlEncSub()
{;}

TAlEncUser::~TAlEncUser()
{
  Destruct();
}

void TAlEncUser::Construct()
{;}

bool TAlEncUser::Calculate()
{
  // ここで新しく計算したい物理用をごにょごにょする。
  // Getしたときに計算されていない量にアクセスした場合はNaNが返ってくるので、
  // 特に条件別けする必要はない(NaNは数字と比較したときに必ず偽になるので注意)。

  // Add(Analyser, WNum, ID, Value);
  fAnaLoop->Add(100, 1, 1, gRandom->Gaus()); // 単純に新しく何かぶち込むこともできる。

  for(int i=0; i<144; ++i){
    double quraw = fAnaLoop->Get(Analyser::NEBULA, WNum::NEBULA::QURaw, i); // 何か物理量を取ってくる。
    //    std::cout << "id: " << i << ", val: " << quraw << std::endl;
  }
  double quraw1 = fAnaLoop->Get(Analyser::NEBULA, WNum::NEBULA::QURaw, 1);
  double quraw2 = fAnaLoop->Get(Analyser::NEBULA, WNum::NEBULA::QURaw, 2);
  fAnaLoop->Add(100, 1, 102, quraw1-quraw2); // 他とかぶらなければ三つの添字は何でもいい。
  fAnaLoop->Add(100, 2, 102, sqrt(quraw1*quraw2));

  return true;
}

void TAlEncUser::Destruct()
{;}

const char* TAlEncUser::ClassName() const
{
  return "TAlEncUser";
}

static TAlEncUserFactory alencuserfactory;

TAlEncUserFactory::TAlEncUserFactory() : TAlEncFactory()
{
  // staticなオブジェクトのコンストラクタで他のクラスのstaticな関数を呼のは本当は
  // コンストラクトの順番が不定なのでだめなのだけれど、
  // 手製のmacroは必ず後から呼ぶことになるのでok
  TArtAnaFile::RegisterEncFactory(100, this);
}

TAlEncUserFactory::~TAlEncUserFactory()
{;}

TAlEncSub* TAlEncUserFactory::CreateEnc()
{
  return new TAlEncUser;
}

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2012-04-15 16:33:28, 1.9 KB) [[attachment:TAlEncUser.C]]
  • [get | view] (2012-04-15 16:33:59, 0.5 KB) [[attachment:TAlEncUser.hh]]

You are not allowed to attach a file to this page.