#ifndef AliEveTRDLoader_H
#define AliEveTRDLoader_H
#include <TEveElement.h>
#include <TGedFrame.h>
#include <TString.h>
class AliTRDv1;
class AliTRDgeometry;
class TGNumberEntry;
class TGColorSelect;
class TGTextEntry;
class TTree;
class TEveGValuator;
class AliEveTRDChamber;
class AliEveTRDLoaderManager;
class AliEveTRDLoader : public TEveElementList
{
friend class AliEveTRDLoaderEditor;
public:
enum TRDDataTypes {
kTRDHits = BIT(0),
kTRDDigits = BIT(1),
kTRDClusters = BIT(2),
kTRDTracklets= BIT(3),
kTRDRawRoot = BIT(4),
kTRDRawDate = BIT(5)
};
AliEveTRDLoader(const Text_t* n="AliEveTRDLoader", const Text_t* t=0);
virtual ~AliEveTRDLoader() {}
virtual void AddChambers(int sm=-1, int stk=-1, int ly=-1);
virtual AliEveTRDChamber* GetChamber(int d);
virtual Int_t GetDataType() const {return fDataType;}
virtual Int_t GetEvent() const {return fEvent;}
virtual Bool_t GoToEvent(int ev);
Bool_t IsDataLinked() const {return TestBit(1);}
virtual Bool_t Open(const char *file, const char *dir = ".");
inline virtual Bool_t NextEvent(Bool_t rewind = kTRUE);
virtual void Paint(Option_t *option="");
virtual void SetDataType(UChar_t type = 0){fDataType = type;}
protected:
virtual Bool_t LoadHits(TTree *tH);
virtual Bool_t LoadClusters(TTree *tC);
virtual Bool_t LoadDigits(TTree *tD);
virtual Bool_t LoadTracklets(TTree *trklTree);
void SetDataLinked(Bool_t linked = kTRUE) {SetBit(1, linked);}
virtual void Unload();
UChar_t fDataType;
Char_t fSM, fStack, fLy;
Short_t fEvent;
AliTRDgeometry *fGeo;
TString fFilename;
TString fDir;
private:
AliEveTRDLoader(const AliEveTRDLoader&);
AliEveTRDLoader& operator=(const AliEveTRDLoader&);
ClassDef(AliEveTRDLoader, 0);
};
Bool_t AliEveTRDLoader::NextEvent(Bool_t)
{
fEvent++;
return GoToEvent(fEvent);
}
class AliEveTRDLoaderEditor : public TGedFrame
{
public:
AliEveTRDLoaderEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30,
UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
virtual ~AliEveTRDLoaderEditor() {}
virtual void AddChambers();
virtual void FileOpen();
virtual void GoTo();
virtual void Next();
virtual void SetEvent(Double_t ev){fM->fEvent = (Int_t)ev;}
virtual void SetModel(TObject* obj);
protected:
AliEveTRDLoader *fM;
TGTextEntry *fFile;
TGTextButton *fBrowse;
TEveGValuator *fEvent;
TEveGValuator *fSMNumber, *fStackNumber, *fPlaneNumber;
private:
AliEveTRDLoaderEditor(const AliEveTRDLoaderEditor&);
AliEveTRDLoaderEditor& operator=(const AliEveTRDLoaderEditor&);
ClassDef(AliEveTRDLoaderEditor, 0);
};
#endif