]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/EveDet/AliEveTRDLoaderManager.cxx
CMake: removing qpythia from the depedencies
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTRDLoaderManager.cxx
CommitLineData
d810d0de 1// $Id$
2// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4/**************************************************************************
5 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
51346b82 7 * full copyright notice. *
d810d0de 8 **************************************************************************/
fd31e9de 9
d810d0de 10#include "AliEveTRDLoaderManager.h"
11#include "AliEveTRDLoader.h"
12#include "AliEveTRDLoaderImp.h"
edf0c4a0 13
84aff7a4 14#include <TEveManager.h>
edf0c4a0 15
16#include <TGLabel.h>
17#include <TGButton.h>
18#include <TGComboBox.h>
19#include <TGListBox.h>
a15e6d7d 20//#include <TGListTree.h>
21//#include <TGString.h>
22//#include <TGToolTip.h>
edf0c4a0 23#include <TClonesArray.h>
24
25#include "AliLog.h"
d810d0de 26
d810d0de 27ClassImp(AliEveTRDLoaderManager)
28ClassImp(AliEveTRDLoaderManagerEditor)
edf0c4a0 29
30///////////////////////////////////////////////////////////
fd31e9de 31///////// AliEveTRDLoaderManager //////////////
edf0c4a0 32///////////////////////////////////////////////////////////
33
fd31e9de 34//______________________________________________________________________________
35AliEveTRDLoaderManager::AliEveTRDLoaderManager(const Text_t* n, const Text_t* t) :
36 TEveElementList(n, t)
edf0c4a0 37{
a15e6d7d 38 // Constructor.
edf0c4a0 39}
40
fd31e9de 41//______________________________________________________________________________
42void AliEveTRDLoaderManager::Add(Int_t type, const Text_t *name, const Text_t *title)
edf0c4a0 43{
a15e6d7d 44 // Add something.
45
fd31e9de 46 AliEveTRDLoader *trdl = 0x0;
47 switch(type){
6983e87a 48 case AliEveTRDLoader::kTRDHits:
49 case AliEveTRDLoader::kTRDDigits:
50 case AliEveTRDLoader::kTRDClusters:
51 case AliEveTRDLoader::kTRDTracklets:
52 AddElement(trdl = new AliEveTRDLoader(name, title));
53 break;
54 case AliEveTRDLoader::kTRDRawRoot:
55 case AliEveTRDLoader::kTRDRawDate:
56 AddElement(trdl = new AliEveTRDLoaderRaw(name, title));
57 break;
58 default:
59 AddElement(trdl = new AliEveTRDLoaderSim(name, title));
60 break;
fd31e9de 61 }
6983e87a 62 trdl->SetDataType(type);
fd31e9de 63
64 gEve->Redraw3D();
edf0c4a0 65}
66
67
fd31e9de 68//______________________________________________________________________________
d810d0de 69void AliEveTRDLoaderManager::Paint(Option_t *option)
edf0c4a0 70{
a15e6d7d 71 // Paint object.
72
90ae0503 73 AliEveTRDLoader *loader(NULL);
fd31e9de 74 List_i ichmb = fChildren.begin();
75 while(ichmb != fChildren.end()){
90ae0503 76 if((loader = dynamic_cast<AliEveTRDLoader*>(*ichmb))) loader->Paint(option);
fd31e9de 77 ichmb++;
78 }
edf0c4a0 79}
80
fd31e9de 81//______________________________________________________________________________
82void AliEveTRDLoaderManager::Remove(Int_t entry)
edf0c4a0 83{
a15e6d7d 84 // Remove something.
85
fd31e9de 86 //printf("AliEveTRDLoaderManager::Remove(%d)\n", entry);
87 List_i it = fChildren.begin();
88 for(int i=0; i<entry; i++) it++;
89 gEve->RemoveElement((*it), this);
90 fChildren.erase(it);
edf0c4a0 91}
92
93///////////////////////////////////////////////////////////
fd31e9de 94////////// AliEveTRDLoaderManagerEditor ///////////
edf0c4a0 95///////////////////////////////////////////////////////////
96
fd31e9de 97//______________________________________________________________________________
98AliEveTRDLoaderManagerEditor::
99AliEveTRDLoaderManagerEditor(const TGWindow* p, Int_t width, Int_t height,
100 UInt_t options, Pixel_t back) :
101 TGedFrame(p, width, height, options | kVerticalFrame, back),
102 fM(0), fSelector(0), fAdd(0), fRemoveButton(0), fGroupFrame(0), fRemove(0)
edf0c4a0 103{
a15e6d7d 104 // Constructor.
105
fd31e9de 106 MakeTitle("AliEveTRDLoaderManager");
107
108 // control frame - always there
109 TGHorizontalFrame *fHorizontalFrame539 = new TGHorizontalFrame(this, 300, 26, kHorizontalFrame);
110
111 TGLabel *fLabel546 = new TGLabel(fHorizontalFrame539,"Register Loader",TGLabel::GetDefaultGC()(),TGLabel::GetDefaultFontStruct(),kChildFrame);
112 fLabel546->SetTextJustify(36);
113 fHorizontalFrame539->AddFrame(fLabel546, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY,2,2,2,2));
114
115 // combo box
116 fSelector = new TGComboBox(fHorizontalFrame539,-1,kHorizontalFrame | kSunkenFrame | kDoubleBorder | kOwnBackground);
6983e87a 117 fSelector->AddEntry("MC (gAlice) ", AliEveTRDLoader::kTRDHits | AliEveTRDLoader::kTRDDigits | AliEveTRDLoader::kTRDClusters);
118 fSelector->AddEntry("Hits ", AliEveTRDLoader::kTRDHits);
119 fSelector->AddEntry("Digits ", AliEveTRDLoader::kTRDDigits);
120 fSelector->AddEntry("Clusters ", AliEveTRDLoader::kTRDClusters);
121 fSelector->AddEntry("Tracklets ", AliEveTRDLoader::kTRDTracklets);
122 fSelector->AddEntry("Raw (ROOT) ", AliEveTRDLoader::kTRDRawRoot);
123 fSelector->AddEntry("Raw (DATE) ", AliEveTRDLoader::kTRDRawDate);
fd31e9de 124 fSelector->Resize(136,22);
125 fHorizontalFrame539->AddFrame(fSelector, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY,2,2,2,2));
8948756b 126 //fSelector->SetToolTipText("Select TRD data loader and add it to the list.\nThe loader can be removed by clicking the \"Remove\" button");
127 fSelector->Connect("Selected(char*)", "AliEveTRDLoaderManagerEditor", this, "Add(char*)");
fd31e9de 128 AddFrame(fHorizontalFrame539, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX,2,2,2,2));
129
130 fGroupFrame = 0;
131 fRemove = 0;
edf0c4a0 132}
133
edf0c4a0 134
fd31e9de 135//______________________________________________________________________________
8948756b 136void AliEveTRDLoaderManagerEditor::Add(Char_t *name)
edf0c4a0 137{
a15e6d7d 138 // Slot to add something.
fd31e9de 139 if(!fGroupFrame){
140 // "TRD Loaders" group frame
141 fGroupFrame = new TGGroupFrame(this,"TRD Loaders",kVerticalFrame,TGGroupFrame::GetDefaultGC()(),TGGroupFrame::GetDefaultFontStruct());
142 fGroupFrame->SetLayoutManager(new TGVerticalLayout(fGroupFrame));
143 fGroupFrame->Resize(300,128);
144 AddFrame(fGroupFrame, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 2,2,2,2));
145
146 fRemove = new TClonesArray("TGTextButton", 3);
147 }
148
fd31e9de 149
150 // horizontal frame
151 TGHorizontalFrame *fHorizontalFrame = new TGHorizontalFrame(fGroupFrame, 264, 26, kHorizontalFrame);
152
8948756b 153 TGLabel *fLabel717 = new TGLabel(fHorizontalFrame, name);
fd31e9de 154 fLabel717->SetTextJustify(36);
155 fHorizontalFrame->AddFrame(fLabel717, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
156
157
158 Int_t nbutton = fM->fChildren.size();
159 fRemoveButton = new((*fRemove)[nbutton]) TGTextButton(fHorizontalFrame, "Remove", nbutton);
160 fRemoveButton->SetTextJustify(36);
161 fRemoveButton->Resize(53,22);
162 fRemoveButton->Connect("Clicked()", "AliEveTRDLoaderManagerEditor", this, Form("Remove(=%d)", nbutton));
8948756b 163 fRemoveButton->SetToolTipText(Form("Remove %s Loader", name));
fd31e9de 164 fHorizontalFrame->AddFrame(fRemoveButton, new TGLayoutHints(kLHintsLeft | kLHintsCenterX | kLHintsTop | kLHintsCenterY,2,2,2,2));
165
166 fGroupFrame->AddFrame(fHorizontalFrame, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
167
168
169 MapSubwindows();
170 Resize(GetDefaultSize());
171 MapWindow();
172
a6e0ebfe 173 const char *title[] = {"MC loader", "Single file loader", "Raw data loader"};
6983e87a 174 // char *color[] = {"#ff0000", "#0000ff", "#59d454"};
175 int id = fSelector->GetSelected(), type;
176 switch(id){
177 case AliEveTRDLoader::kTRDHits:
178 case AliEveTRDLoader::kTRDDigits:
179 case AliEveTRDLoader::kTRDClusters:
180 case AliEveTRDLoader::kTRDTracklets:
181 type = 1;
182 break;
183 case AliEveTRDLoader::kTRDRawRoot:
184 case AliEveTRDLoader::kTRDRawDate:
185 type = 2;
186 break;
187 default:
188 type = 0;
189 break;
190 }
8948756b 191 fM->Add(id, name, title[type]);
edf0c4a0 192}
193
194
fd31e9de 195//______________________________________________________________________________
d810d0de 196void AliEveTRDLoaderManagerEditor::Remove(Int_t entry)
edf0c4a0 197{
a15e6d7d 198 // Slot to remove something.
199
fd31e9de 200 TIterator *it = fGroupFrame->GetList()->MakeIterator();
201 int ientry = 0;
202 while(/*TGFrame *f=(TGFrame*)*/it->Next()){
203 //printf("%s\n", f->IsA()->GetName());
204 if(entry == ientry){
205 //fGroupFrame->RemoveFrame(f);
206 break;
207 }
208 ientry++;
209 }
210
211
212 MapSubwindows();
213 Resize(GetDefaultSize());
214 MapWindow();
215
216 //fM->Remove(entry);
edf0c4a0 217}
218
fd31e9de 219//______________________________________________________________________________
d810d0de 220void AliEveTRDLoaderManagerEditor::SetModel(TObject* obj)
edf0c4a0 221{
a15e6d7d 222 // Set model object.
223
fd31e9de 224 fM = dynamic_cast<AliEveTRDLoaderManager*>(obj);
edf0c4a0 225}
226