ROOT logo
// $Id$
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/
#ifndef AliEveTRDLoaderImp_H
#define AliEveTRDLoaderImp_H

////////////////////////////////////////////////////////////////////////
//
// Single event loader for the TRD detector
//    - AliEveTRDLoaderSim - loader for simulations based on gAlice
//    - AliEveTRDLoaderRaw - loader for raw data
//
// by A.Bercuci (A.Bercuci@gsi.de)   Fri Oct 27 2006
////////////////////////////////////////////////////////////////////////

#include "AliEveTRDLoader.h"

class AliRunLoader;
class AliTRDrawData;
class AliRawReaderDate;
class AliRawReaderRoot;

class TGCheckButton;

class AliEveTRDLoaderSim : public AliEveTRDLoader
{
  friend class AliEveTRDLoaderSimEditor;

public:
  AliEveTRDLoaderSim(const Text_t* n="AliEveTRDLoaderSim", const Text_t* t=0);
  virtual ~AliEveTRDLoaderSim() {}

  Bool_t	GoToEvent(int ev);
  Bool_t	Open(const char *file, const char *dir=".");

protected:
  AliRunLoader *fRunLoader; // Run Loader

private:
  AliEveTRDLoaderSim(const AliEveTRDLoaderSim&);            // Not implemented
  AliEveTRDLoaderSim& operator=(const AliEveTRDLoaderSim&); // Not implemented

  ClassDef(AliEveTRDLoaderSim, 0); // Alieve loader for the TRD detector (gAlice)
};


class AliEveTRDLoaderRaw : public AliEveTRDLoader
{
public:
  AliEveTRDLoaderRaw(const Text_t* n="AliEveTRDLoaderRaw", const Text_t* t=0);
  virtual ~AliEveTRDLoaderRaw() {}

  Bool_t	GoToEvent(int ev);
  //Bool_t  NextEvent(Bool_t rewindOnEnd=kTRUE);
  Bool_t	Open(const char *file, const char *dir=".");

private:
  Bool_t 	LoadEvent();

  AliRawReaderDate	*fRawDateReader; // raw data reader
  AliRawReaderRoot	*fRawRootReader; // raw root reader
  AliTRDrawData		  *fRaw;           // raw data
  Int_t             fEventCnt;       // event contor

  AliEveTRDLoaderRaw(const AliEveTRDLoaderRaw&);            // Not implemented
  AliEveTRDLoaderRaw& operator=(const AliEveTRDLoaderRaw&); // Not implemented

  ClassDef(AliEveTRDLoaderRaw, 0); // Alieve loader for the TRD detector (raw)
};


class AliEveTRDLoaderSimEditor : public TGedFrame
{
public:
  AliEveTRDLoaderSimEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30,
			   UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
  virtual ~AliEveTRDLoaderSimEditor() {}

  virtual void	SetModel(TObject* obj);
  virtual void	Toggle(Int_t id);

protected:
  AliEveTRDLoaderSim  *fM; // Model object.
  TGCheckButton       *fCheckedHits, *fCheckedDigits, *fCheckedClusters, *fCheckedTracklets; // What data to load.

private:
  AliEveTRDLoaderSimEditor(const AliEveTRDLoaderSimEditor&);            // Not implemented
  AliEveTRDLoaderSimEditor& operator=(const AliEveTRDLoaderSimEditor&); // Not implemented

  ClassDef(AliEveTRDLoaderSimEditor, 0); // Editor for AliEveTRDLoaderSim
};

#endif
 AliEveTRDLoaderImp.h:1
 AliEveTRDLoaderImp.h:2
 AliEveTRDLoaderImp.h:3
 AliEveTRDLoaderImp.h:4
 AliEveTRDLoaderImp.h:5
 AliEveTRDLoaderImp.h:6
 AliEveTRDLoaderImp.h:7
 AliEveTRDLoaderImp.h:8
 AliEveTRDLoaderImp.h:9
 AliEveTRDLoaderImp.h:10
 AliEveTRDLoaderImp.h:11
 AliEveTRDLoaderImp.h:12
 AliEveTRDLoaderImp.h:13
 AliEveTRDLoaderImp.h:14
 AliEveTRDLoaderImp.h:15
 AliEveTRDLoaderImp.h:16
 AliEveTRDLoaderImp.h:17
 AliEveTRDLoaderImp.h:18
 AliEveTRDLoaderImp.h:19
 AliEveTRDLoaderImp.h:20
 AliEveTRDLoaderImp.h:21
 AliEveTRDLoaderImp.h:22
 AliEveTRDLoaderImp.h:23
 AliEveTRDLoaderImp.h:24
 AliEveTRDLoaderImp.h:25
 AliEveTRDLoaderImp.h:26
 AliEveTRDLoaderImp.h:27
 AliEveTRDLoaderImp.h:28
 AliEveTRDLoaderImp.h:29
 AliEveTRDLoaderImp.h:30
 AliEveTRDLoaderImp.h:31
 AliEveTRDLoaderImp.h:32
 AliEveTRDLoaderImp.h:33
 AliEveTRDLoaderImp.h:34
 AliEveTRDLoaderImp.h:35
 AliEveTRDLoaderImp.h:36
 AliEveTRDLoaderImp.h:37
 AliEveTRDLoaderImp.h:38
 AliEveTRDLoaderImp.h:39
 AliEveTRDLoaderImp.h:40
 AliEveTRDLoaderImp.h:41
 AliEveTRDLoaderImp.h:42
 AliEveTRDLoaderImp.h:43
 AliEveTRDLoaderImp.h:44
 AliEveTRDLoaderImp.h:45
 AliEveTRDLoaderImp.h:46
 AliEveTRDLoaderImp.h:47
 AliEveTRDLoaderImp.h:48
 AliEveTRDLoaderImp.h:49
 AliEveTRDLoaderImp.h:50
 AliEveTRDLoaderImp.h:51
 AliEveTRDLoaderImp.h:52
 AliEveTRDLoaderImp.h:53
 AliEveTRDLoaderImp.h:54
 AliEveTRDLoaderImp.h:55
 AliEveTRDLoaderImp.h:56
 AliEveTRDLoaderImp.h:57
 AliEveTRDLoaderImp.h:58
 AliEveTRDLoaderImp.h:59
 AliEveTRDLoaderImp.h:60
 AliEveTRDLoaderImp.h:61
 AliEveTRDLoaderImp.h:62
 AliEveTRDLoaderImp.h:63
 AliEveTRDLoaderImp.h:64
 AliEveTRDLoaderImp.h:65
 AliEveTRDLoaderImp.h:66
 AliEveTRDLoaderImp.h:67
 AliEveTRDLoaderImp.h:68
 AliEveTRDLoaderImp.h:69
 AliEveTRDLoaderImp.h:70
 AliEveTRDLoaderImp.h:71
 AliEveTRDLoaderImp.h:72
 AliEveTRDLoaderImp.h:73
 AliEveTRDLoaderImp.h:74
 AliEveTRDLoaderImp.h:75
 AliEveTRDLoaderImp.h:76
 AliEveTRDLoaderImp.h:77
 AliEveTRDLoaderImp.h:78
 AliEveTRDLoaderImp.h:79
 AliEveTRDLoaderImp.h:80
 AliEveTRDLoaderImp.h:81
 AliEveTRDLoaderImp.h:82
 AliEveTRDLoaderImp.h:83
 AliEveTRDLoaderImp.h:84
 AliEveTRDLoaderImp.h:85
 AliEveTRDLoaderImp.h:86
 AliEveTRDLoaderImp.h:87
 AliEveTRDLoaderImp.h:88
 AliEveTRDLoaderImp.h:89
 AliEveTRDLoaderImp.h:90
 AliEveTRDLoaderImp.h:91
 AliEveTRDLoaderImp.h:92
 AliEveTRDLoaderImp.h:93
 AliEveTRDLoaderImp.h:94
 AliEveTRDLoaderImp.h:95
 AliEveTRDLoaderImp.h:96
 AliEveTRDLoaderImp.h:97
 AliEveTRDLoaderImp.h:98