| 46 | #include <TArrow.h> | #include <TArrow.h> | 
| 47 | #include <TStyle.h> | #include <TStyle.h> | 
| 48 | // | // | 
| 49 |  | #include <PamLevel2.h> | 
| 50 |  | // | 
| 51 | #include <FEVpamevcontrol.h> | #include <FEVpamevcontrol.h> | 
| 52 | // | // | 
| 53 | ClassImp(PAMevcontrol); | ClassImp(PAMevcontrol); | 
| 104 | cvar = &var; | cvar = &var; | 
| 105 | thefigure = &figure; | thefigure = &figure; | 
| 106 | // | // | 
| 107 | TGCompositeFrame *cframe1 = new TGCompositeFrame(this, 280, 60, kVerticalFrame); | cframe1 = new TGCompositeFrame(this, 280, 60, kVerticalFrame); | 
| 108 | TGCompositeFrame *cframe2 = new TGCompositeFrame(this, 280, 60, kVerticalFrame); | TGCompositeFrame *cframe2 = new TGCompositeFrame(this, 280, 60, kVerticalFrame); | 
| 109 | TGCompositeFrame *cframe3 = new TGCompositeFrame(this, 280, 60, kVerticalFrame); | TGCompositeFrame *cframe3 = new TGCompositeFrame(this, 280, 60, kVerticalFrame); | 
| 110 | TGCompositeFrame *cframe4 = new TGCompositeFrame(this, 280, 60, kVerticalFrame); | TGCompositeFrame *cframe4 = new TGCompositeFrame(this, 280, 60, kVerticalFrame); | 
| 111 | TGGroupFrame *gf = new TGGroupFrame(cframe1, "Appearance"); | TGCompositeFrame *cframe5 = new TGCompositeFrame(this, 280, 60, kVerticalFrame); | 
| 112 |  | gf = new TGGroupFrame(cframe1, "Detectors"); | 
| 113 |  | TGGroupFrame *gf2 = new TGGroupFrame(cframe5, "Appearance"); | 
| 114 | TGGroupFrame *inputf = new TGGroupFrame(cframe2, "Input"); | TGGroupFrame *inputf = new TGGroupFrame(cframe2, "Input"); | 
| 115 | TGGroupFrame *jumpf = new TGGroupFrame(cframe3, "Jump to"); | TGGroupFrame *jumpf = new TGGroupFrame(cframe3, "Jump to"); | 
| 116 | TGGroupFrame *savef = new TGGroupFrame(cframe4, "Save figure as"); | TGGroupFrame *savef = new TGGroupFrame(cframe4, "Save figure as"); | 
| 117 | // | // | 
| 118 | TGHorizontalFrame *htexts = new TGHorizontalFrame(savef,400,800); | TGHorizontalFrame *htexts = new TGHorizontalFrame(savef,300,800); | 
| 119 | TGHorizontalFrame *htextsl = new TGHorizontalFrame(cframe4,400,800); | TGHorizontalFrame *htextsl = new TGHorizontalFrame(cframe4,300,800); | 
| 120 | TGHorizontalFrame *htext = new TGHorizontalFrame(inputf,400,800); | TGHorizontalFrame *htext = new TGHorizontalFrame(inputf,300,800); | 
| 121 | TGHorizontalFrame *htext2 = new TGHorizontalFrame(inputf,400,800); | TGHorizontalFrame *htext2 = new TGHorizontalFrame(inputf,300,800); | 
| 122 | TGHorizontalFrame *htext3 = new TGHorizontalFrame(jumpf,400,800); | TGHorizontalFrame *htext3 = new TGHorizontalFrame(jumpf,300,800); | 
| 123 | TGHorizontalFrame *htext4 = new TGHorizontalFrame(jumpf,400,80); | TGHorizontalFrame *htext4 = new TGHorizontalFrame(jumpf,300,80); | 
| 124 | TGHorizontalFrame *hframe = new TGHorizontalFrame(this,400,800); | TGHorizontalFrame *hframe = new TGHorizontalFrame(this,300,800); | 
| 125 | TGHorizontalFrame *hframe1 = new TGHorizontalFrame(gf, 280, 50); | for (Int_t fr=0; fr<12; fr++) hframedec[fr] = new TGHorizontalFrame(gf, 7, 7); | 
| 126 | TGHorizontalFrame *hframe2 = new TGHorizontalFrame(gf, 280, 40); | TGHorizontalFrame *hframe3 = new TGHorizontalFrame(gf2, 280, 60); | 
| 127 | TGHorizontalFrame *hframe3 = new TGHorizontalFrame(gf, 280, 40); | TGHorizontalFrame *hframe4 = new TGHorizontalFrame(gf2,280,10); | 
| 128 | TGHorizontalFrame *hframe4 = new TGHorizontalFrame(gf,280,10); | TGVerticalFrame *hframe5 = new TGVerticalFrame(hframe4, 280, 60); | 
| 129 | TGVerticalFrame *hframe5 = new TGVerticalFrame(hframe4, 280, 40); | TGHorizontalFrame *hfrprog = new TGHorizontalFrame(this,300,800); | 
|  | TGHorizontalFrame *hfrprog = new TGHorizontalFrame(this,400,800); |  | 
| 130 | // | // | 
| 131 | TGTextEntry *fText = new TGTextEntry(htext, new TGTextBuffer(20),-1); | TGTextEntry *fText = new TGTextEntry(htext, new TGTextBuffer(20),-1); | 
| 132 | fText->SetText(cvar->thefilename.Data()); | fText->SetText(cvar->thefilename.Data()); | 
| 135 | fText->Connect("ReturnPressed()", "PAMevcontrol", this,"SetFilename()"); | fText->Connect("ReturnPressed()", "PAMevcontrol", this,"SetFilename()"); | 
| 136 | fText->Connect("TabPressed()", "PAMevcontrol", this,"CompleteText()"); | fText->Connect("TabPressed()", "PAMevcontrol", this,"CompleteText()"); | 
| 137 | htext->AddFrame(fText, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY, 0, 5, 5, 5)); | htext->AddFrame(fText, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY, 0, 5, 5, 5)); | 
| 138 | htext->AddFrame(Load, new TGLayoutHints(kLHintsCenterX | kLHintsExpandX,0,5,5,5)); | htext->AddFrame(Load, new TGLayoutHints(kLHintsCenterX,0,5,5,5)); | 
| 139 | inputf->AddFrame(new TGLabel(inputf, new TGHotString("Filename:"))); | inputf->AddFrame(new TGLabel(inputf, new TGHotString("Filename:"))); | 
| 140 | inputf->AddFrame(htext, new TGLayoutHints(kLHintsExpandX)); | inputf->AddFrame(htext, new TGLayoutHints(kLHintsExpandX)); | 
| 141 | // | // | 
| 143 | fText2->SetText(cvar->thefilter.Data()); | fText2->SetText(cvar->thefilter.Data()); | 
| 144 | TGTextButton *Load2 = new TGTextButton(htext2,"Load"); | TGTextButton *Load2 = new TGTextButton(htext2,"Load"); | 
| 145 | Load2->Connect("Clicked()","TGTextEntry",fText2,"ReturnPressed()"); | Load2->Connect("Clicked()","TGTextEntry",fText2,"ReturnPressed()"); | 
| 146 |  | Load2->SetToolTipText("Clear box and click to unload file"); | 
| 147 | fText2->Connect("ReturnPressed()", "PAMevcontrol", this,"SetFilter()"); | fText2->Connect("ReturnPressed()", "PAMevcontrol", this,"SetFilter()"); | 
| 148 | fText2->Connect("TabPressed()", "PAMevcontrol", this,"CompleteText()"); | fText2->Connect("TabPressed()", "PAMevcontrol", this,"CompleteText()"); | 
| 149 | htext2->AddFrame(fText2, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY, 0, 5, 5, 5)); | htext2->AddFrame(fText2, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY, 0, 5, 5, 5)); | 
| 150 | htext2->AddFrame(Load2, new TGLayoutHints(kLHintsCenterX | kLHintsExpandX,0,5,5,5)); | htext2->AddFrame(Load2, new TGLayoutHints(kLHintsCenterX,0,5,5,5)); | 
| 151 | inputf->AddFrame(new TGLabel(inputf, new TGHotString("Selection file:"))); | inputf->AddFrame(new TGLabel(inputf, new TGHotString("Selection file:"))); | 
| 152 | inputf->AddFrame(htext2, new TGLayoutHints(kLHintsExpandX)); | inputf->AddFrame(htext2, new TGLayoutHints(kLHintsExpandX)); | 
| 153 | // | // | 
| 154 | cframe2->AddFrame(inputf,new TGLayoutHints(kLHintsExpandX,5,5,5,5)); | cframe2->AddFrame(inputf,new TGLayoutHints(kLHintsExpandX,5,5,5,5)); | 
| 155 | // | // | 
| 156 | TGCheckButton *fchktof = new TGCheckButton(hframe1, "TOF"); | // | 
| 157 |  | // | 
| 158 |  | fComboDec = new TGComboBox(gf, 98); | 
| 159 |  | fComboDec->AddEntry(" - Select Detector -", 11); | 
| 160 |  | fComboDec->AddEntry("PSCU - ORB", 0); | 
| 161 |  | fComboDec->AddEntry("Run", 1); | 
| 162 |  | fComboDec->AddEntry("Trigger", 2); | 
| 163 |  | fComboDec->AddEntry("ToF", 3); | 
| 164 |  | fComboDec->AddEntry("Tracker", 4); | 
| 165 |  | fComboDec->AddEntry("Anticounter", 5); | 
| 166 |  | fComboDec->AddEntry("Calorimeter", 6); | 
| 167 |  | fComboDec->AddEntry("S4", 7); | 
| 168 |  | fComboDec->AddEntry("ND", 8); | 
| 169 |  | fComboDec->AddEntry("Software info", 9); | 
| 170 |  | fComboDec->AddEntry("ALL", 10); | 
| 171 |  | fComboDec->Select(11); | 
| 172 |  | fComboDec->Resize(150,23); | 
| 173 |  | gf->AddFrame(fComboDec, new TGLayoutHints(kLHintsCenterY | kLHintsExpandX| kLHintsLeft, 5, 7, 7, 7)); | 
| 174 |  | fComboDec->Connect("Selected(Int_t)","PAMevcontrol",this,"refreshdec(Int_t)"); | 
| 175 |  | // | 
| 176 |  | // PSCU/Orbital | 
| 177 |  | // | 
| 178 |  | fshoworb = new TGTextButton(hframedec[0], "Show Data"); | 
| 179 |  | fshoworb->Connect("Clicked()","PAMevcontrol", this,"showorbdata()"); | 
| 180 |  | if ( !cvar->ORB ) fshoworb->SetState(kButtonDisabled); | 
| 181 |  | hframedec[0]->AddFrame(fshoworb, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,5,5,5)); | 
| 182 |  | // | 
| 183 |  | // RUN | 
| 184 |  | // | 
| 185 |  | fshowrun = new TGTextButton(hframedec[1], "Show Data"); | 
| 186 |  | fshowrun->Connect("Clicked()","PAMevcontrol", this,"showrundata()"); | 
| 187 |  | if ( !cvar->RUN ) fshoworb->SetState(kButtonDisabled); | 
| 188 |  | hframedec[1]->AddFrame(fshowrun, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,5,5,5)); | 
| 189 |  | // | 
| 190 |  | // Trigger | 
| 191 |  | // | 
| 192 |  | fshowtrg = new TGTextButton(hframedec[2], "Show Data"); | 
| 193 |  | fshowtrg->Connect("Clicked()","PAMevcontrol", this,"showtrgdata()"); | 
| 194 |  | if ( !cvar->TRG ) fshowtrg->SetState(kButtonDisabled); | 
| 195 |  | hframedec[2]->AddFrame(fshowtrg, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,5,5,5)); | 
| 196 |  | // | 
| 197 |  | // TOF | 
| 198 |  | // | 
| 199 |  | fchktof = new TGCheckButton(hframedec[3], "Show"); | 
| 200 | fchktof->Connect("Clicked()","PAMevcontrol", this,"chktof()"); | fchktof->Connect("Clicked()","PAMevcontrol", this,"chktof()"); | 
| 201 | if ( cvar->TOF ) fchktof->SetState(kButtonDown); | if ( cvar->TOF ) fchktof->SetState(kButtonDown); | 
| 202 | hframe1->AddFrame(fchktof, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,0,5,5,5)); | hframedec[3]->AddFrame(fchktof, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,2,5,5)); | 
| 203 |  | fshowtof = new TGTextButton(hframedec[3], "Show Data"); | 
| 204 |  | fshowtof->Connect("Clicked()","PAMevcontrol", this,"showtofdata()"); | 
| 205 |  | if ( !cvar->TOF ) fshowtof->SetState(kButtonDisabled); | 
| 206 |  | hframedec[3]->AddFrame(fshowtof, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,2,5,5,5)); | 
| 207 | // | // | 
| 208 | TGCheckButton *fchkac = new TGCheckButton(hframe1, "AC"); | // Tracker | 
|  | fchkac->Connect("Clicked()","PAMevcontrol", this,"chkac()"); |  | 
|  | if ( cvar->AC ) fchkac->SetState(kButtonDown); |  | 
|  | hframe1->AddFrame(fchkac, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,5,25,5,5)); |  | 
| 209 | // | // | 
| 210 | TGCheckButton *fchktrk = new TGCheckButton(hframe1, "Tracker"); | fchktrk = new TGCheckButton(hframedec[4], "Show"); | 
| 211 | fchktrk->Connect("Clicked()","PAMevcontrol",this,"chktrk()"); | fchktrk->Connect("Clicked()","PAMevcontrol",this,"chktrk()"); | 
| 212 | if ( cvar->TRK ) fchktrk->SetState(kButtonDown); | if ( cvar->TRK ) fchktrk->SetState(kButtonDown); | 
| 213 | hframe1->AddFrame(fchktrk, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,10,5,5,5)); | hframedec[4]->AddFrame(fchktrk, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,2,5,5)); | 
| 214 |  | fshowtrk = new TGTextButton(hframedec[4], "Show Data"); | 
| 215 |  | fshowtrk->Connect("Clicked()","PAMevcontrol", this,"showtrkdata()"); | 
| 216 |  | if ( !cvar->TRK ) fshowtrk->SetState(kButtonDisabled); | 
| 217 |  | hframedec[4]->AddFrame(fshowtrk, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,2,5,5,5)); | 
| 218 |  | // | 
| 219 |  | // AC | 
| 220 |  | // | 
| 221 |  | fchkac = new TGCheckButton(hframedec[5], "Show"); | 
| 222 |  | fchkac->Connect("Clicked()","PAMevcontrol", this,"chkac()"); | 
| 223 |  | if ( cvar->AC ) fchkac->SetState(kButtonDown); | 
| 224 |  | hframedec[5]->AddFrame(fchkac, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,2,5,5)); | 
| 225 |  | fshowac = new TGTextButton(hframedec[5], "Show Data"); | 
| 226 |  | fshowac->Connect("Clicked()","PAMevcontrol", this,"showacdata()"); | 
| 227 |  | if ( !cvar->AC ) fshowac->SetState(kButtonDisabled); | 
| 228 |  | hframedec[5]->AddFrame(fshowac, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,2,5,5,5)); | 
| 229 | // | // | 
| 230 | gf->AddFrame(hframe1, new TGLayoutHints(kLHintsExpandX)); | // Calorimeter | 
| 231 | // | // | 
| 232 | TGCheckButton *fchks4 = new TGCheckButton(hframe2, "S4"); | fchkcalo = new TGCheckButton(hframedec[6], "Show"); | 
| 233 |  | fchkcalo->Connect("Clicked()","PAMevcontrol",this,"chkcalo()"); | 
| 234 |  | if ( cvar->CALO ) fchkcalo->SetState(kButtonDown); | 
| 235 |  | hframedec[6]->AddFrame(fchkcalo, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,2,5,5)); | 
| 236 |  | fchkcalost = new TGCheckButton(hframedec[6], "Track"); | 
| 237 |  | fchkcalost->Connect("Clicked()","PAMevcontrol",this,"chkcalost()"); | 
| 238 |  | if ( cvar->CALO ) fchkcalost->SetState(kButtonUp); | 
| 239 |  | hframedec[6]->AddFrame(fchkcalost, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,2,2,5,5)); | 
| 240 |  | fshowcal = new TGTextButton(hframedec[6], "Show Data"); | 
| 241 |  | fshowcal->Connect("Clicked()","PAMevcontrol", this,"showcaldata()"); | 
| 242 |  | if ( !cvar->CALO ) fshowcal->SetState(kButtonDisabled); | 
| 243 |  | hframedec[6]->AddFrame(fshowcal, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,2,5,5,5)); | 
| 244 |  | // | 
| 245 |  | // S4 | 
| 246 |  | // | 
| 247 |  | fchks4 = new TGCheckButton(hframedec[7], "Show"); | 
| 248 | fchks4->Connect("Clicked()","PAMevcontrol",this,"chks4()"); | fchks4->Connect("Clicked()","PAMevcontrol",this,"chks4()"); | 
| 249 | if ( cvar->S4 ) fchks4->SetState(kButtonDown); | if ( cvar->S4 ) fchks4->SetState(kButtonDown); | 
| 250 | hframe2->AddFrame(fchks4, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,0,15,5,5)); | hframedec[7]->AddFrame(fchks4, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,2,5,5)); | 
| 251 |  | fshows4 = new TGTextButton(hframedec[7], "Show Data"); | 
| 252 |  | fshows4->Connect("Clicked()","PAMevcontrol", this,"shows4data()"); | 
| 253 |  | if ( !cvar->S4 ) fshows4->SetState(kButtonDisabled); | 
| 254 |  | hframedec[7]->AddFrame(fshows4, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,2,5,5,5)); | 
| 255 |  | // | 
| 256 |  | // ND | 
| 257 | // | // | 
| 258 | TGCheckButton *fchknd = new TGCheckButton(hframe2, "ND"); | fchknd = new TGCheckButton(hframedec[8], "Show"); | 
| 259 | fchknd->Connect("Clicked()","PAMevcontrol",this,"chknd()"); | fchknd->Connect("Clicked()","PAMevcontrol",this,"chknd()"); | 
| 260 | if ( cvar->ND ) fchknd->SetState(kButtonDown); | if ( cvar->ND ) fchknd->SetState(kButtonDown); | 
| 261 | hframe2->AddFrame(fchknd, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,5,25,5,5)); | hframedec[8]->AddFrame(fchknd, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,2,5,5)); | 
| 262 |  | fshownd = new TGTextButton(hframedec[8], "Show Data"); | 
| 263 |  | fshownd->Connect("Clicked()","PAMevcontrol", this,"shownddata()"); | 
| 264 |  | if ( !cvar->ND ) fshownd->SetState(kButtonDisabled); | 
| 265 |  | hframedec[8]->AddFrame(fshownd, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,2,5,5,5)); | 
| 266 | // | // | 
| 267 | TGCheckButton *fchkcalo = new TGCheckButton(hframe2, "Calorimeter"); | // Software infos | 
| 268 | fchkcalo->Connect("Clicked()","PAMevcontrol",this,"chkcalo()"); | // | 
| 269 | if ( cvar->CALO ) fchkcalo->SetState(kButtonDown); | fshowsi = new TGTextButton(hframedec[9], "Show Data"); | 
| 270 | hframe2->AddFrame(fchkcalo, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,10,2,5,5)); | fshowsi->Connect("Clicked()","PAMevcontrol", this,"showsidata()"); | 
| 271 |  | if ( !cvar->RUN ) fshoworb->SetState(kButtonDisabled); | 
| 272 |  | hframedec[9]->AddFrame(fshoworb, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,2,5,5)); | 
| 273 |  | // | 
| 274 |  | // All data | 
| 275 |  | // | 
| 276 |  | fshowall = new TGTextButton(hframedec[10], "Show Data"); | 
| 277 |  | fshowall->Connect("Clicked()","PAMevcontrol", this,"showalldata()"); | 
| 278 |  | hframedec[10]->AddFrame(fshowall, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,5,5,5)); | 
| 279 | // | // | 
| 280 | gf->AddFrame(hframe2, new TGLayoutHints(kLHintsExpandX)); | //  for (Int_t fr=0; fr<11; fr++) gf->AddFrame(hframedec[fr], new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,1,1,1,1)); | 
| 281 | // | // | 
| 282 | TGCheckButton *fchkinfo = new TGCheckButton(hframe3, "Infos"); | gf->AddFrame(hframedec[11], new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,5,17,17)); | 
| 283 |  | // | 
| 284 |  | //  for (Int_t fr=0; fr<11; fr++) gf->AddFrame(hframedec[fr],new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,0,5,5,5)); | 
| 285 |  | //  gf->GetLayoutManager()->SetPadBottom(5); | 
| 286 |  | //  gf->MapSubwindows(); | 
| 287 |  | // | 
| 288 |  | fchkinfo = new TGCheckButton(hframe3, "Infos"); | 
| 289 | fchkinfo->Connect("Clicked()","PAMevcontrol",this,"chkinfo()"); | fchkinfo->Connect("Clicked()","PAMevcontrol",this,"chkinfo()"); | 
| 290 | if ( cvar->INFOS ) fchkinfo->SetState(kButtonDown); | if ( cvar->INFOS ) fchkinfo->SetState(kButtonDown); | 
| 291 | hframe3->AddFrame(fchkinfo, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,0,5,5,5)); | hframe3->AddFrame(fchkinfo, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,0,1,5,5)); | 
| 292 | // | // | 
| 293 | TGCheckButton *fchknames = new TGCheckButton(hframe3, "Names"); | fchknames = new TGCheckButton(hframe3, "Names"); | 
| 294 | fchknames->Connect("Clicked()","PAMevcontrol",this,"chknames()"); | fchknames->Connect("Clicked()","PAMevcontrol",this,"chknames()"); | 
| 295 | if ( cvar->VINFOS ) fchknames->SetState(kButtonDown); | if ( cvar->VINFOS ) fchknames->SetState(kButtonDown); | 
| 296 | hframe3->AddFrame(fchknames, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,5,5,5,5)); | hframe3->AddFrame(fchknames, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,0,1,5,5)); | 
| 297 | TGCheckButton *fchkpalette = new TGCheckButton(hframe3, "Palette"); |  | 
| 298 |  | fchkpalette = new TGCheckButton(hframe3, "Palette"); | 
| 299 | fchkpalette->Connect("Clicked()","PAMevcontrol",this,"chkpalette()"); | fchkpalette->Connect("Clicked()","PAMevcontrol",this,"chkpalette()"); | 
| 300 | if ( cvar->PALETTE) fchkpalette->SetState(kButtonDown); | if ( cvar->PALETTE) fchkpalette->SetState(kButtonDown); | 
| 301 | hframe3->AddFrame(fchkpalette, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,10,5,5,5)); | hframe3->AddFrame(fchkpalette, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,0,2,5,5)); | 
| 302 | gf->AddFrame(hframe3, new TGLayoutHints(kLHintsExpandX)); |  | 
| 303 |  | fchktrigger = new TGCheckButton(hframe3, "Trigger"); | 
| 304 |  | fchktrigger->Connect("Clicked()","PAMevcontrol",this,"chktrigger()"); | 
| 305 |  | if ( cvar->PATTRIG) fchktrigger->SetState(kButtonDown); | 
| 306 |  | hframe3->AddFrame(fchktrigger, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,1,2,5,5)); | 
| 307 |  |  | 
| 308 |  | gf2->AddFrame(hframe3, new TGLayoutHints(kLHintsExpandX)); | 
| 309 | // | // | 
| 310 | TGVButtonGroup *group = new TGVButtonGroup(hframe4); | TGVButtonGroup *group = new TGVButtonGroup(hframe4); | 
|  | TGRadioButton *bwc0; |  | 
|  | TGRadioButton *bwc1; |  | 
| 311 | bwc0 = new TGRadioButton(group, "Colour"); | bwc0 = new TGRadioButton(group, "Colour"); | 
| 312 | bwc1 = new TGRadioButton(group, "B/W"); | bwc1 = new TGRadioButton(group, "B/W"); | 
| 313 | if ( cvar->bw ){ | if ( cvar->bw ){ | 
| 317 | }; | }; | 
| 318 | bwc0->Connect("Pressed()", "PAMevcontrol",this,"radiocolor()"); | bwc0->Connect("Pressed()", "PAMevcontrol",this,"radiocolor()"); | 
| 319 | bwc1->Connect("Pressed()", "PAMevcontrol",this,"radiobw()"); | bwc1->Connect("Pressed()", "PAMevcontrol",this,"radiobw()"); | 
| 320 | hframe4->AddFrame(group,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,1,5,5,5)); | hframe4->AddFrame(group,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,2,5,5)); | 
| 321 | // | // | 
| 322 | // | // | 
| 323 | ftrks4 = new TGCheckButton(hframe5, "Track in S4/ND"); | //  ftrks4 = new TGCheckButton(hframe5, "Track in S4/ND"); | 
| 324 | ftrks4->Connect("Clicked()","PAMevcontrol",this,"radiotrack()"); | //  ftrks4->Connect("Clicked()","PAMevcontrol",this,"radiotrack()"); | 
| 325 | if ( cvar->tracknds4) ftrks4->SetState(kButtonDown); | //  if ( cvar->tracknds4) ftrks4->SetState(kButtonDown); | 
| 326 | hframe5->AddFrame(ftrks4, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,5,2,5,5)); | //  hframe5->AddFrame(ftrks4, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,2,5,5)); | 
| 327 | ffl0 = new TGCheckButton(hframe5, "Force LEVEL0"); |  | 
| 328 |  | fgetl0 = new TGTextButton(hframe5, "Get L0 file"); | 
| 329 |  | fgetl0->Connect("Clicked()","PAMevcontrol", this,"getl0file()"); | 
| 330 |  | hframe5->AddFrame(fgetl0, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,5,5,5,5)); | 
| 331 |  |  | 
| 332 |  | ffl0 = new TGCheckButton(hframe5, "Force RAW"); | 
| 333 | ffl0->Connect("Clicked()","PAMevcontrol",this,"forcel0()"); | ffl0->Connect("Clicked()","PAMevcontrol",this,"forcel0()"); | 
| 334 | if ( cvar->fl0 ) ffl0->SetState(kButtonDown); | if ( cvar->fl0 ) ffl0->SetState(kButtonDown); | 
| 335 | if ( !cvar->fl0 ) ffl0->SetState(kButtonUp); | if ( !cvar->fl0 ) ffl0->SetState(kButtonUp); | 
| 336 | hframe5->AddFrame(ffl0, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,5,2,5,5)); | hframe5->AddFrame(ffl0, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,2,5,5,5)); | 
| 337 |  | // | 
| 338 |  | hframe4->AddFrame(hframe5, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,10,5,5,5)); | 
| 339 |  | gf2->AddFrame(hframe4, new TGLayoutHints(kLHintsExpandX)); | 
| 340 | // | // | 
| 341 | hframe4->AddFrame(hframe5, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY,10,5,5,5)); | cframe1->AddFrame(gf, new TGLayoutHints(kLHintsExpandX,5,5,5,5)); | 
| 342 | gf->AddFrame(hframe4, new TGLayoutHints(kLHintsExpandX)); | //  cframe1->Resize(280,10); | 
| 343 |  | //  cframe1->GetLayoutManager()->SetDefaultHeight(5); | 
| 344 |  | //  MapWindow(); | 
| 345 | // | // | 
| 346 | cframe1->AddFrame(gf, new TGLayoutHints(kLHintsExpandX)); | cframe5->AddFrame(gf2, new TGLayoutHints(kLHintsExpandX,5,5,5,5)); | 
| 347 | // | // | 
| 348 | TGHButtonGroup *jgroup = new TGHButtonGroup(htext4); | TGHButtonGroup *jgroup = new TGHButtonGroup(htext4); | 
|  | TGRadioButton *jbwc0; |  | 
|  | TGRadioButton *jbwc1; |  | 
| 349 | jbwc0 = new TGRadioButton(jgroup, "packet     "); | jbwc0 = new TGRadioButton(jgroup, "packet     "); | 
| 350 | jbwc1 = new TGRadioButton(jgroup, "progressive"); | jbwc1 = new TGRadioButton(jgroup, "progressive"); | 
| 351 | jbwc1->SetState(kButtonDown); | jbwc1->SetState(kButtonDown); | 
| 388 | fCombo->Select(0); | fCombo->Select(0); | 
| 389 | fCombo->Resize(50,23); | fCombo->Resize(50,23); | 
| 390 | //  htexts->AddFrame(fCombo, new TGLayoutHints(kLHintsCenterX | kLHintsTop | kLHintsLeft | kLHintsCenterY | kLHintsExpandX, 0, 8, 1, 1)); | //  htexts->AddFrame(fCombo, new TGLayoutHints(kLHintsCenterX | kLHintsTop | kLHintsLeft | kLHintsCenterY | kLHintsExpandX, 0, 8, 1, 1)); | 
| 391 | htexts->AddFrame(fCombo, new TGLayoutHints(kLHintsExpandY | kLHintsRight, 2, 2, 2, 1)); | htexts->AddFrame(fCombo, new TGLayoutHints(kLHintsExpandY | kLHintsExpandY| kLHintsRight, 2, 2, 2, 1)); | 
| 392 | // | // | 
| 393 | htextsl->AddFrame(save, new TGLayoutHints(kLHintsExpandX,0,0,2,1)); | htextsl->AddFrame(save, new TGLayoutHints(kLHintsExpandX,0,0,2,1)); | 
| 394 | savef->AddFrame(htexts, new TGLayoutHints(kLHintsExpandX,0,0,2,5)); | savef->AddFrame(htexts, new TGLayoutHints(kLHintsExpandX,0,0,2,5)); | 
| 425 | //  AddFrame(htext, new TGLayoutHints(kLHintsExpandX,2,2,15,1)); | //  AddFrame(htext, new TGLayoutHints(kLHintsExpandX,2,2,15,1)); | 
| 426 | AddFrame(cframe2, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | AddFrame(cframe2, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | 
| 427 | AddFrame(cframe1, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | AddFrame(cframe1, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | 
| 428 |  | AddFrame(cframe5, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | 
| 429 | AddFrame(cframe3, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | AddFrame(cframe3, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | 
| 430 | AddFrame(cframe4, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | AddFrame(cframe4, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | 
| 431 | AddFrame(hfrprog, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | AddFrame(hfrprog, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | 
| 432 | AddFrame(hframe, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY,1,1,1,1)); | AddFrame(hframe, new TGLayoutHints(kLHintsExpandX,1,1,1,1)); | 
| 433 | // Set a name to the main frame | // Set a name to the main frame | 
| 434 | SetWindowName("PAMELA Event Viewer control panel"); | SetWindowName("PAMELA Event Viewer control panel"); | 
| 435 | // Map all subwindows of main frame | // Map all subwindows of main frame | 
| 438 | Resize(GetDefaultSize()); | Resize(GetDefaultSize()); | 
| 439 | // Map main frame | // Map main frame | 
| 440 | MapWindow(); | MapWindow(); | 
| 441 |  | // | 
| 442 |  | gf->HideFrame(hframedec[11]); | 
| 443 |  | for (Int_t fr=0; fr<11; fr++){ | 
| 444 |  | gf->AddFrame(hframedec[fr],new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterY|kLHintsExpandX,0,5,5,5)); | 
| 445 |  | gf->HideFrame(hframedec[fr]); | 
| 446 |  | }; | 
| 447 |  | gf->MapSubwindows(); | 
| 448 |  | // | 
| 449 |  | } | 
| 450 |  |  | 
| 451 |  | void PAMevcontrol::Refresh(){ | 
| 452 |  | // bah | 
| 453 |  | return; | 
| 454 |  | this->Clear(); | 
| 455 |  | MapSubwindows(); | 
| 456 |  | // Initialize the layout algorithm | 
| 457 |  | Resize(GetDefaultSize()); | 
| 458 |  | // Map main frame | 
| 459 |  | MapWindow(); | 
| 460 | } | } | 
| 461 |  |  | 
| 462 | void PAMevcontrol::DIALOG(Int_t ty, TString warn){ | void PAMevcontrol::DIALOG(Int_t ty, TString warn){ | 
| 463 | // | // | 
| 464 | // ty = 0 -> INFO, ty = 1 -> WARNING, ty = 3 -> ERROR | // ty = 0 -> INFO, ty = 1 -> WARNING, ty = 2 -> ERROR | 
| 465 | // | // | 
| 466 | Int_t retval; | Int_t retval; | 
| 467 | TString title; | TString title; | 
| 468 | EMsgBoxIcon mb_icon = kMBIconStop; | EMsgBoxIcon mb_icon = kMBIconStop; | 
| 469 | if ( ty == 0 ){ | if ( ty == 2 || ty == 3 ){ | 
| 470 |  | if ( ty == 2 ){ | 
| 471 |  | title="ERROR!!"; | 
| 472 |  | mb_icon = kMBIconStop; | 
| 473 |  | new TGMsgBox(gClient->GetRoot(), this, title.Data(), warn.Data(), mb_icon, kMBOk, &retval); | 
| 474 |  | } else { | 
| 475 |  | title="HELP"; | 
| 476 |  | mb_icon = kMBIconQuestion; | 
| 477 |  | new TGMsgBox(gClient->GetRoot(), this, title.Data(), warn.Data(), mb_icon, kMBOk, &retval); | 
| 478 |  | }; | 
| 479 |  | } else { | 
| 480 |  | if ( ty == 0 ){ | 
| 481 | title="INFO"; | title="INFO"; | 
| 482 | mb_icon = kMBIconAsterisk; | mb_icon = kMBIconAsterisk; | 
| 483 | }; | }; | 
| 484 | if ( ty == 1 ){ | if ( ty == 1 ){ | 
| 485 | title="WARNING!"; | title="WARNING!"; | 
| 486 | mb_icon = kMBIconExclamation; | mb_icon = kMBIconExclamation; | 
| 487 |  | }; | 
| 488 |  | if ( ty == 4 ){ | 
| 489 |  | title="DATA"; | 
| 490 |  | mb_icon = kMBIconExclamation; | 
| 491 |  | }; | 
| 492 |  | const TGPicture *icon_pic; | 
| 493 |  | switch (mb_icon) { | 
| 494 |  | case kMBIconStop: | 
| 495 |  | icon_pic = gClient->GetPicture("mb_stop_s.xpm"); | 
| 496 |  | if (!icon_pic) Error("TGMsgBox", "mb_stop_s.xpm not found"); | 
| 497 |  | break; | 
| 498 |  |  | 
| 499 |  | case kMBIconQuestion: | 
| 500 |  | icon_pic = gClient->GetPicture("mb_question_s.xpm"); | 
| 501 |  | if (!icon_pic) Error("TGMsgBox", "mb_question_s.xpm not found"); | 
| 502 |  | break; | 
| 503 |  |  | 
| 504 |  | case kMBIconExclamation: | 
| 505 |  | icon_pic = gClient->GetPicture("mb_exclamation_s.xpm"); | 
| 506 |  | if (!icon_pic) Error("TGMsgBox", "mb_exclamation_s.xpm not found"); | 
| 507 |  | break; | 
| 508 |  |  | 
| 509 |  | case kMBIconAsterisk: | 
| 510 |  | icon_pic = gClient->GetPicture("mb_asterisk_s.xpm"); | 
| 511 |  | if (!icon_pic) Error("TGMsgBox", "mb_asterisk_s.xpm not found"); | 
| 512 |  | break; | 
| 513 |  |  | 
| 514 |  | default: | 
| 515 |  | icon_pic = 0; | 
| 516 |  | break; | 
| 517 |  | } | 
| 518 |  | // | 
| 519 |  | if ( ty == 4 ){// non funziona il recupero dei puntatori a questi oggetti come e` possibile? | 
| 520 |  | //      gObjectTable->Print(); | 
| 521 |  | TGLabel *la=dynamic_cast<TGLabel*>(gDirectory->FindObject("la")); | 
| 522 |  | TGHorizontalFrame *fLabelFrame=dynamic_cast<TGHorizontalFrame*>(gDirectory->FindObject("fLabelFrame")); | 
| 523 |  | TGTransientFrame *compofra=dynamic_cast<TGTransientFrame*>(gDirectory->FindObject("compofra")); | 
| 524 |  | if ( la ) la->Delete(); | 
| 525 |  | if ( fLabelFrame ) fLabelFrame->Delete(); | 
| 526 |  | if ( compofra ){ | 
| 527 |  | compofra->DestroyWindow(); | 
| 528 |  | compofra->Delete(); | 
| 529 |  | }; | 
| 530 |  | }; | 
| 531 |  | TGTransientFrame *compofra = new TGTransientFrame(gClient->GetRoot(), 0, 200, 80, kHorizontalFrame); | 
| 532 |  | TGHorizontalFrame *fIconFrame = NULL; | 
| 533 |  | TGIcon *fIcon = NULL; | 
| 534 |  | if ( ty != 4 ){ | 
| 535 |  | compofra->DontCallClose(); | 
| 536 |  | fIconFrame = new TGHorizontalFrame(compofra, 98, 78); | 
| 537 |  | fIcon = new TGIcon(fIconFrame, icon_pic, icon_pic->GetWidth(), icon_pic->GetHeight()); | 
| 538 |  | fIconFrame->AddFrame(fIcon, new TGLayoutHints(kLHintsCenterX|kLHintsCenterY, 1, 1, 1, 1)); | 
| 539 |  | compofra->AddFrame(fIconFrame, new TGLayoutHints(kLHintsCenterX|kLHintsCenterY, 1, 1, 1, 1)); | 
| 540 |  | }; | 
| 541 |  | // | 
| 542 |  | TGHorizontalFrame *fLabelFrame = new TGHorizontalFrame(compofra, 98, 78); | 
| 543 |  | TGLabel *la=new TGLabel(fLabelFrame,warn.Data()); | 
| 544 |  | la->SetTextJustify(kLHintsCenterX); | 
| 545 |  | fLabelFrame->AddFrame(la, new TGLayoutHints(kLHintsCenterX|kLHintsCenterY, 1, 1, 1, 1)); | 
| 546 |  | compofra->AddFrame(fLabelFrame, new TGLayoutHints(kLHintsCenterX|kLHintsCenterY, 1, 1, 1, 1)); | 
| 547 |  | // | 
| 548 |  | compofra->SetWindowName(title.Data()); | 
| 549 |  | compofra->MapSubwindows(); | 
| 550 |  | if ( ty != 4 ){ | 
| 551 |  | compofra->Resize(compofra->GetDefaultWidth(),80); | 
| 552 |  | } else { | 
| 553 |  | compofra->Resize(compofra->GetDefaultSize()); | 
| 554 |  | }; | 
| 555 |  | compofra->CenterOnParent(); | 
| 556 |  | compofra->MapWindow(); | 
| 557 |  | // | 
| 558 |  | if ( ty != 4 ){ | 
| 559 |  | Int_t kkk = 0; | 
| 560 |  | while ( kkk < 200 ){ | 
| 561 |  | gSystem->ProcessEvents(); | 
| 562 |  | gSystem->Sleep(10); | 
| 563 |  | kkk++; | 
| 564 |  | }; | 
| 565 |  | }; | 
| 566 |  | if ( compofra && ty != 4 ){ | 
| 567 |  | la->Delete(); | 
| 568 |  | fLabelFrame->Delete(); | 
| 569 |  | if ( fIcon ) fIcon->Delete(); | 
| 570 |  | if ( fIconFrame ) fIconFrame->Delete(); | 
| 571 |  | compofra->DestroyWindow(); | 
| 572 |  | compofra->Delete(); | 
| 573 |  | }; | 
| 574 | }; | }; | 
| 575 | if ( ty == 2 ){ | // | 
|  | title="ERROR!!"; |  | 
|  | mb_icon = kMBIconStop; |  | 
|  | }; |  | 
|  | new TGMsgBox(gClient->GetRoot(), this, title.Data(), warn.Data(), mb_icon, kMBOk, &retval); |  | 
| 576 | } | } | 
| 577 |  |  | 
| 578 |  | void PAMevcontrol::refreshdec(Int_t n){ | 
| 579 |  | // | 
| 580 |  | for (Int_t i=0; i<11; i++){ | 
| 581 |  | gf->HideFrame(hframedec[i]); | 
| 582 |  | }; | 
| 583 |  | // | 
| 584 |  | if ( n < 11 ){ | 
| 585 |  | gf->ShowFrame(hframedec[n]); | 
| 586 |  | }; | 
| 587 |  | }; | 
| 588 |  |  | 
| 589 |  |  | 
| 590 |  | void PAMevcontrol::showorbdata(){ | 
| 591 |  | cvar->showorb = !cvar->showorb; | 
| 592 |  | if ( !cvar->showorb ) fshoworb->SetText("Show Data"); | 
| 593 |  | if ( cvar->showorb ) fshoworb->SetText("Hide Data"); | 
| 594 |  | //  printf("orb \n"); | 
| 595 |  | }; | 
| 596 |  |  | 
| 597 |  | void PAMevcontrol::showtrgdata(){ | 
| 598 |  | cvar->showtrg = !cvar->showtrg; | 
| 599 |  | if ( !cvar->showtrg ) fshowtrg->SetText("Show Data"); | 
| 600 |  | if ( cvar->showtrg ) fshowtrg->SetText("Hide Data"); | 
| 601 |  | //  printf("trg \n"); | 
| 602 |  | }; | 
| 603 |  |  | 
| 604 |  | void PAMevcontrol::showrundata(){ | 
| 605 |  | cvar->showrun = !cvar->showrun; | 
| 606 |  | if ( !cvar->showrun ) fshowrun->SetText("Show Data"); | 
| 607 |  | if ( cvar->showrun ) fshowrun->SetText("Hide Data"); | 
| 608 |  | //  printf("run \n"); | 
| 609 |  | }; | 
| 610 |  |  | 
| 611 |  | void PAMevcontrol::showcaldata(){ | 
| 612 |  | cvar->showcal = !cvar->showcal; | 
| 613 |  | if ( !cvar->showcal ) fshowcal->SetText("Show Data"); | 
| 614 |  | if ( cvar->showcal ) fshowcal->SetText("Hide Data"); | 
| 615 |  | //  printf("cal \n"); | 
| 616 |  | }; | 
| 617 |  |  | 
| 618 |  | void PAMevcontrol::chkcalost(){ | 
| 619 |  | if ( cvar->CALOT ) { | 
| 620 |  | cvar->CALOT = 0; | 
| 621 |  | } else { | 
| 622 |  | cvar->CALOT = 1; | 
| 623 |  | }; | 
| 624 |  | cvar->i--; | 
| 625 |  | cvar->nevents = 0; | 
| 626 |  | cvar->firstevno = 0; | 
| 627 |  | cvar->lastevno = 0; | 
| 628 |  | cvar->refresh = true; | 
| 629 |  | }; | 
| 630 |  |  | 
| 631 |  | void PAMevcontrol::showtrkdata(){ | 
| 632 |  | cvar->showtrk = !cvar->showtrk; | 
| 633 |  | if ( !cvar->showtrk ) fshowtrk->SetText("Show Data"); | 
| 634 |  | if ( cvar->showtrk ) fshowtrk->SetText("Hide Data"); | 
| 635 |  | //  printf("trk \n"); | 
| 636 |  | }; | 
| 637 |  |  | 
| 638 |  | void PAMevcontrol::showtofdata(){ | 
| 639 |  | cvar->showtof = !cvar->showtof; | 
| 640 |  | if ( !cvar->showtof ) fshowtof->SetText("Show Data"); | 
| 641 |  | if ( cvar->showtof ) fshowtof->SetText("Hide Data"); | 
| 642 |  | //  printf("tof \n"); | 
| 643 |  | }; | 
| 644 |  |  | 
| 645 |  | void PAMevcontrol::showacdata(){ | 
| 646 |  | cvar->showac = !cvar->showac; | 
| 647 |  | if ( !cvar->showac ) fshowac->SetText("Show Data"); | 
| 648 |  | if ( cvar->showac ) fshowac->SetText("Hide Data"); | 
| 649 |  | //  printf("ac \n"); | 
| 650 |  | }; | 
| 651 |  |  | 
| 652 |  | void PAMevcontrol::shownddata(){ | 
| 653 |  | cvar->shownd = !cvar->shownd; | 
| 654 |  | if ( !cvar->shownd ) fshownd->SetText("Show Data"); | 
| 655 |  | if ( cvar->shownd ) fshownd->SetText("Hide Data"); | 
| 656 |  | //  printf("nd \n"); | 
| 657 |  | }; | 
| 658 |  |  | 
| 659 |  | void PAMevcontrol::shows4data(){ | 
| 660 |  | cvar->shows4 = !cvar->shows4; | 
| 661 |  | if ( !cvar->shows4 ) fshows4->SetText("Show Data"); | 
| 662 |  | if ( cvar->shows4 ) fshows4->SetText("Hide Data"); | 
| 663 |  | //  printf("s4 \n"); | 
| 664 |  | }; | 
| 665 |  |  | 
| 666 |  | void PAMevcontrol::showsidata(){ | 
| 667 |  | cvar->showsi = !cvar->showsi; | 
| 668 |  | if ( !cvar->showsi ) fshowsi->SetText("Show Data"); | 
| 669 |  | if ( cvar->showsi ) fshowsi->SetText("Hide Data"); | 
| 670 |  | //  printf("si \n"); | 
| 671 |  | }; | 
| 672 |  |  | 
| 673 |  | void PAMevcontrol::showalldata(){ | 
| 674 |  | cvar->showall = !cvar->showall; | 
| 675 |  | if ( !cvar->showall ) fshowall->SetText("Show Data"); | 
| 676 |  | if ( cvar->showall ) fshowall->SetText("Hide Data"); | 
| 677 |  | //  printf("all \n"); | 
| 678 |  | }; | 
| 679 |  |  | 
| 680 | void PAMevcontrol::SetFilename() { | void PAMevcontrol::SetFilename() { | 
| 681 | TGTextEntry *entry = (TGTextEntry*)gTQSender; | TGTextEntry *entry = (TGTextEntry*)gTQSender; | 
| 682 | TString text = entry->GetText(); | TString text = entry->GetText(); | 
| 683 | cvar->thefilename=text.Data(); | cvar->thefilename=text.Data(); | 
| 684 |  | cvar->i = 0; | 
| 685 | cvar->nevents = 0; | cvar->nevents = 0; | 
| 686 | cvar->firstevno = 0; | cvar->firstevno = 0; | 
| 687 | cvar->lastevno = 0; | cvar->lastevno = 0; | 
| 693 | cvar->waitforever = false; | cvar->waitforever = false; | 
| 694 | } | } | 
| 695 |  |  | 
| 696 |  | void PAMevcontrol::getl0file() { | 
| 697 |  | // | 
| 698 |  | TString host = "mysql://localhost/pamelaprod"; | 
| 699 |  | TString user = "anonymous"; | 
| 700 |  | TString psw = ""; | 
| 701 |  | const char *pamdbhost=gSystem->Getenv("PAM_DBHOST"); | 
| 702 |  | const char *pamdbuser=gSystem->Getenv("PAM_DBUSER"); | 
| 703 |  | const char *pamdbpsw=gSystem->Getenv("PAM_DBPSW"); | 
| 704 |  | if ( !pamdbhost ) pamdbhost = ""; | 
| 705 |  | if ( !pamdbuser ) pamdbuser = ""; | 
| 706 |  | if ( !pamdbpsw ) pamdbpsw = ""; | 
| 707 |  | if ( strcmp(pamdbhost,"") ) host = pamdbhost; | 
| 708 |  | if ( strcmp(pamdbuser,"") ) user = pamdbuser; | 
| 709 |  | if ( strcmp(pamdbpsw,"") ) psw = pamdbpsw; | 
| 710 |  | cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; | 
| 711 |  | cout<<"Connecting to DB"<<endl; | 
| 712 |  | cout<<"HOST "<<host<<endl; | 
| 713 |  | cout<<"USER "<<user<<endl; | 
| 714 |  | cout<<"PSW  "<<psw<<endl; | 
| 715 |  | cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; | 
| 716 |  | TSQLServer *dbc = TSQLServer::Connect(host.Data(),user.Data(),psw.Data()); | 
| 717 |  | // | 
| 718 |  | TSQLResult *pResult; | 
| 719 |  | TSQLRow *Row; | 
| 720 |  | // | 
| 721 |  | if( dbc && dbc->IsConnected() ){ | 
| 722 |  | // | 
| 723 |  | // Retrieve the file | 
| 724 |  | // | 
| 725 |  | if ( clev->file == 2 ){ | 
| 726 |  | // | 
| 727 |  | // Starting from level2 | 
| 728 |  | // | 
| 729 |  | GL_ROOT glroot = GL_ROOT(); | 
| 730 |  | if( !glroot.Query_GL_ROOT(cvar->idroot,dbc) ){ | 
| 731 |  | // | 
| 732 |  | cvar->thefilename= glroot.PATH + glroot.NAME; | 
| 733 |  | cvar->nevents = 0; | 
| 734 |  | cvar->firstevno = 0; | 
| 735 |  | cvar->lastevno = 0; | 
| 736 |  | if ( cvar->fl0 ) { | 
| 737 |  | cvar->fl0 = false; | 
| 738 |  | ffl0->SetState(kButtonUp); | 
| 739 |  | }; | 
| 740 |  | cvar->restart = true; | 
| 741 |  | cvar->waitforever = false; | 
| 742 |  | // | 
| 743 |  | if ( cvar->thefilter != "" ){ | 
| 744 |  | cvar->thefilter=""; | 
| 745 |  | cvar->selex = true; | 
| 746 |  | }; | 
| 747 |  | cvar->i = cvar->EVF + cvar->i ; | 
| 748 |  | //cvar->refresh = true; | 
| 749 |  | //      cvar->file = 0; | 
| 750 |  | // | 
| 751 |  | } else { | 
| 752 |  | stringstream warning; | 
| 753 |  | warning.str(""); | 
| 754 |  | warning << " Problems getting Level0 file "; | 
| 755 |  | DIALOG(2,warning.str().c_str()); | 
| 756 |  | }; | 
| 757 |  | } else { | 
| 758 |  | // | 
| 759 |  | // starting from L0 | 
| 760 |  | // | 
| 761 |  | stringstream query; | 
| 762 |  | query.str(""); | 
| 763 |  | query << " SELECT ID FROM GL_ROOT WHERE NAME='"<< gSystem->BaseName(cvar->thefilename.Data()) <<"' order by INSERT_TIME desc limit 1;"; | 
| 764 |  | //      printf(" query is %s \n",query.str().c_str()); | 
| 765 |  | pResult = dbc->Query(query.str().c_str()); | 
| 766 |  | Row = pResult->Next(); | 
| 767 |  | UInt_t idrl0 = 0; | 
| 768 |  | if ( Row ){ | 
| 769 |  | idrl0 = (UInt_t)atoll(Row->GetField(0)); | 
| 770 |  | }; | 
| 771 |  | // | 
| 772 |  | query.str(""); | 
| 773 |  | query << " SELECT ID,ID_ROOT_L2,EV_FROM FROM GL_RUN WHERE EV_FROM<="<<cvar->i<<" AND EV_TO>="<< cvar->i<<" AND ID_ROOT_L0="<< idrl0 <<";"; | 
| 774 |  | //      printf(" query is %s \n",query.str().c_str()); | 
| 775 |  | pResult = dbc->Query(query.str().c_str()); | 
| 776 |  | Row = pResult->Next(); | 
| 777 |  | UInt_t idrl2 = 0; | 
| 778 |  | UInt_t idrlun = 0; | 
| 779 |  | UInt_t evfrom = 0; | 
| 780 |  | if ( Row ){ | 
| 781 |  | idrlun = (UInt_t)atoll(Row->GetField(0)); | 
| 782 |  | idrl2 = (UInt_t)atoll(Row->GetField(1)); | 
| 783 |  | evfrom = (UInt_t)atoll(Row->GetField(2)); | 
| 784 |  | }; | 
| 785 |  | // | 
| 786 |  | query.str(""); | 
| 787 |  | query << " SELECT ID,NEVENTS FROM GL_RUN WHERE ID_ROOT_L2="<< idrl2 <<" order by RUNHEADER_TIME asc;"; | 
| 788 |  | //      printf(" query is %s \n",query.str().c_str()); | 
| 789 |  | pResult = dbc->Query(query.str().c_str()); | 
| 790 |  | Row = pResult->Next(); | 
| 791 |  | UInt_t coren = 0; | 
| 792 |  | while ( Row ){ | 
| 793 |  | if ( (UInt_t)atoll(Row->GetField(0)) == idrlun ) break; | 
| 794 |  | coren += (UInt_t)atoll(Row->GetField(1)); | 
| 795 |  | Row = pResult->Next(); | 
| 796 |  | }; | 
| 797 |  | coren += cvar->i - evfrom; | 
| 798 |  | // | 
| 799 |  | GL_ROOT glroot = GL_ROOT(); | 
| 800 |  | if( !glroot.Query_GL_ROOT(idrl2,dbc) ){ | 
| 801 |  | // | 
| 802 |  | cvar->i = coren; | 
| 803 |  | // | 
| 804 |  | cvar->thefilename= glroot.PATH + glroot.NAME; | 
| 805 |  | cvar->nevents = 0; | 
| 806 |  | cvar->firstevno = 0; | 
| 807 |  | cvar->lastevno = 0; | 
| 808 |  | if ( cvar->fl0 ) { | 
| 809 |  | cvar->fl0 = false; | 
| 810 |  | ffl0->SetState(kButtonUp); | 
| 811 |  | }; | 
| 812 |  | cvar->restart = true; | 
| 813 |  | cvar->waitforever = false; | 
| 814 |  | // | 
| 815 |  | if ( cvar->thefilter != "" ){ | 
| 816 |  | cvar->thefilter=""; | 
| 817 |  | cvar->selex = true; | 
| 818 |  | }; | 
| 819 |  | // | 
| 820 |  | } else { | 
| 821 |  | stringstream warning; | 
| 822 |  | warning.str(""); | 
| 823 |  | warning << " Problems getting Level2 file "; | 
| 824 |  | DIALOG(2,warning.str().c_str()); | 
| 825 |  | }; | 
| 826 |  | //      stringstream warning; | 
| 827 |  | //      warning.str(""); | 
| 828 |  | //      warning << " Not yet implemented "; | 
| 829 |  | //      DIALOG(2,warning.str().c_str()); | 
| 830 |  | }; | 
| 831 |  | // | 
| 832 |  | } else { | 
| 833 |  | stringstream warning; | 
| 834 |  | warning.str(""); | 
| 835 |  | warning << " Problems connectiong to DB! "; | 
| 836 |  | DIALOG(2,warning.str().c_str()); | 
| 837 |  | }; | 
| 838 |  | dbc->Close(); | 
| 839 |  | }; | 
| 840 |  |  | 
| 841 | void PAMevcontrol::CheckLevel() { | void PAMevcontrol::CheckLevel() { | 
| 842 | if ( clev->file == 2 ){ | if ( clev->file == 2 ){ | 
| 843 | ffl0->SetState(kButtonDisabled); | ffl0->SetState(kButtonDisabled); | 
| 844 | if ( !cvar->tracknds4 ) { | //     if ( !cvar->tracknds4 ) { | 
| 845 | ftrks4->SetState(kButtonUp); | //       ftrks4->SetState(kButtonUp); | 
| 846 | } else { | //     } else { | 
| 847 | ftrks4->SetState(kButtonDown); | //       ftrks4->SetState(kButtonDown); | 
| 848 | }; | //     }; | 
| 849 | } else { | } else { | 
| 850 | ftrks4->SetState(kButtonDisabled); | //ftrks4->SetState(kButtonDisabled); | 
| 851 | if ( !cvar->fl0 ) { | if ( !cvar->fl0 ) { | 
| 852 | ffl0->SetState(kButtonUp); | ffl0->SetState(kButtonUp); | 
| 853 | } else { | } else { | 
| 854 | ffl0->SetState(kButtonDown); | ffl0->SetState(kButtonDown); | 
| 855 | }; | }; | 
| 856 | }; | }; | 
| 857 |  | if ( clev->file == 2 ){ | 
| 858 |  | fgetl0->SetText("Get L0 file"); | 
| 859 |  | } else { | 
| 860 |  | fgetl0->SetText("Get L2 file"); | 
| 861 |  | }; | 
| 862 | } | } | 
| 863 |  |  | 
| 864 | void PAMevcontrol::SetSearching() { | void PAMevcontrol::SetSearching() { | 
| 869 | bstop->SetState(kButtonDisabled); | bstop->SetState(kButtonDisabled); | 
| 870 | }; | }; | 
| 871 |  |  | 
| 872 |  | void PAMevcontrol::RefreshButtons() { | 
| 873 |  | if ( cvar->jumprog ){ | 
| 874 |  | jbwc1->SetState(kButtonDown); | 
| 875 |  | jbwc0->SetState(kButtonUp); | 
| 876 |  | } else { | 
| 877 |  | jbwc1->SetState(kButtonUp); | 
| 878 |  | jbwc0->SetState(kButtonDown); | 
| 879 |  | }; | 
| 880 |  | if ( cvar->fl0 ){ | 
| 881 |  | ffl0->SetState(kButtonDown); | 
| 882 |  | } else { | 
| 883 |  | ffl0->SetState(kButtonUp); | 
| 884 |  | }; | 
| 885 |  | //  if ( cvar->tracknds4) ftrks4->SetState(kButtonDown); | 
| 886 |  | if ( cvar->bw ){ | 
| 887 |  | bwc1->SetState(kButtonDown); | 
| 888 |  | bwc0->SetState(kButtonUp); | 
| 889 |  | } else { | 
| 890 |  | bwc0->SetState(kButtonDown); | 
| 891 |  | bwc1->SetState(kButtonUp); | 
| 892 |  | }; | 
| 893 |  | if ( cvar->PATTRIG) fchktrigger->SetState(kButtonDown); else fchktrigger->SetState(kButtonUp); | 
| 894 |  | if ( cvar->PALETTE) fchkpalette->SetState(kButtonDown); else fchkpalette->SetState(kButtonUp); | 
| 895 |  | if ( cvar->VINFOS ) fchknames->SetState(kButtonDown); else fchknames->SetState(kButtonUp); | 
| 896 |  | if ( cvar->INFOS ) fchkinfo->SetState(kButtonDown); else fchkinfo->SetState(kButtonUp); | 
| 897 |  | // | 
| 898 |  | if ( cvar->CALOT ) fchkcalost->SetState(kButtonDown); else fchkcalost->SetState(kButtonUp); | 
| 899 |  | if ( cvar->CALO ){ | 
| 900 |  | fchkcalo->SetState(kButtonDown); | 
| 901 |  | fshowcal->SetState(kButtonUp); | 
| 902 |  | } else { | 
| 903 |  | fchkcalo->SetState(kButtonUp); | 
| 904 |  | fchkcalost->SetState(kButtonDisabled); | 
| 905 |  | fshowcal->SetState(kButtonDisabled); | 
| 906 |  | }; | 
| 907 |  | // | 
| 908 |  | if ( cvar->ND ){ | 
| 909 |  | fchknd->SetState(kButtonDown); | 
| 910 |  | fshownd->SetState(kButtonUp); | 
| 911 |  | } else { | 
| 912 |  | fchknd->SetState(kButtonUp); | 
| 913 |  | fshownd->SetState(kButtonDisabled); | 
| 914 |  | }; | 
| 915 |  | // | 
| 916 |  | if ( cvar->S4 ){ | 
| 917 |  | fchks4->SetState(kButtonDown); | 
| 918 |  | fshows4->SetState(kButtonUp); | 
| 919 |  | } else { | 
| 920 |  | fchks4->SetState(kButtonUp); | 
| 921 |  | fshows4->SetState(kButtonDisabled); | 
| 922 |  | }; | 
| 923 |  | // | 
| 924 |  | if ( cvar->TRK ){ | 
| 925 |  | fchktrk->SetState(kButtonDown); | 
| 926 |  | fshowtrk->SetState(kButtonUp); | 
| 927 |  | } else { | 
| 928 |  | fchktrk->SetState(kButtonUp); | 
| 929 |  | fshowtrk->SetState(kButtonDisabled); | 
| 930 |  | } | 
| 931 |  | // | 
| 932 |  | if ( cvar->AC ){ | 
| 933 |  | fchkac->SetState(kButtonDown); | 
| 934 |  | fshowac->SetState(kButtonUp); | 
| 935 |  | } else { | 
| 936 |  | fchkac->SetState(kButtonUp); | 
| 937 |  | fshowac->SetState(kButtonDisabled); | 
| 938 |  | }; | 
| 939 |  | // | 
| 940 |  | if ( cvar->TOF ){ | 
| 941 |  | fchktof->SetState(kButtonDown); | 
| 942 |  | fshowtof->SetState(kButtonUp); | 
| 943 |  | } else { | 
| 944 |  | fchktof->SetState(kButtonUp); | 
| 945 |  | fshowtof->SetState(kButtonDisabled); | 
| 946 |  | }; | 
| 947 |  | // | 
| 948 |  | CheckLevel(); | 
| 949 |  | // | 
| 950 |  | }; | 
| 951 |  |  | 
| 952 | void PAMevcontrol::SetFilter() { | void PAMevcontrol::SetFilter() { | 
| 953 | TGTextEntry *entry = (TGTextEntry*)gTQSender; | TGTextEntry *entry = (TGTextEntry*)gTQSender; | 
| 954 | TString text = entry->GetText(); | TString text = entry->GetText(); | 
| 1129 | } | } | 
| 1130 |  |  | 
| 1131 | void PAMevcontrol::forcel0() { | void PAMevcontrol::forcel0() { | 
| 1132 | if ( cvar->fl0 ) { | cvar->fl0 = !cvar->fl0; | 
| 1133 | cvar->fl0 = false; | cvar->alrforc = false; | 
| 1134 | } else { | cvar->i--; | 
| 1135 | cvar->fl0 = true; | cvar->nevents = 0; | 
| 1136 | }; | cvar->firstevno = 0; | 
| 1137 | cvar->alrforc = false; | cvar->lastevno = 0; | 
| 1138 | cvar->i--; | cvar->refresh = true; | 
|  | cvar->nevents = 0; |  | 
|  | cvar->firstevno = 0; |  | 
|  | cvar->lastevno = 0; |  | 
|  | cvar->refresh = true; |  | 
| 1139 | } | } | 
| 1140 |  |  | 
| 1141 | void PAMevcontrol::clearselfi(){ | void PAMevcontrol::clearselfi(){ | 
| 1343 | cvar->goon = true; | cvar->goon = true; | 
| 1344 | } | } | 
| 1345 |  |  | 
| 1346 |  | void PAMevcontrol::chktrigger() { | 
| 1347 |  | if ( cvar->PATTRIG ) { | 
| 1348 |  | cvar->PATTRIG = 0; | 
| 1349 |  | } else { | 
| 1350 |  | cvar->PATTRIG = 1; | 
| 1351 |  | }; | 
| 1352 |  | cvar->i--; | 
| 1353 |  | cvar->goon = true; | 
| 1354 |  | } | 
| 1355 |  |  | 
| 1356 | void PAMevcontrol::next() { | void PAMevcontrol::next() { | 
| 1357 | SetSearching(); | SetSearching(); | 
| 1358 | if ( cvar->i == cvar->nevents-1  ) { | if ( cvar->i == cvar->nevents-1  ) { |