26 #include <TPolyLine.h> 29 #include <TRootEmbeddedCanvas.h> 31 #include <TPaveText.h> 32 #include <TGTextEdit.h> 35 #include <TObjArray.h> 86 fCalibrationData(0x0),
91 gStyle->SetPadLeftMargin(0.05);
92 gStyle->SetPadRightMargin(0.05);
93 gStyle->SetPadTopMargin(0.05);
94 gStyle->SetPadBottomMargin(0.05);
96 fMain =
new TGTransientFrame(p, mainWindow, w, h, kVerticalFrame);
97 fMain->Connect(
"CloseWindow()",
"AliMUONTriggerGUIbdmap",
this,
"CloseWindow()");
98 fMain->DontCallClose();
101 fMain->SetCleanup(kDeepCleanup);
103 fMain->ChangeOptions((fMain->GetOptions() & ~kVerticalFrame) | kHorizontalFrame);
109 TRootEmbeddedCanvas *recanvas[4];
111 for (Int_t i = 0; i < kNMT; i++) {
113 snprintf(ecname,2,
"%1d",i+1);
114 recanvas[i] =
new TRootEmbeddedCanvas(ecname,fMain,fCanvasSize,fCanvasSize);
116 fCanvas[i] = recanvas[i]->GetCanvas();
118 fCanvas[i]->SetBorderMode(0);
119 fCanvas[i]->SetBit(kNoContextMenu);
121 fCanvas[i]->Connect(
"ProcessedEvent(Int_t,Int_t,Int_t,TObject*)",
122 "AliMUONTriggerGUIbdmap",
this,
123 "EditStrips(Int_t,Int_t,Int_t,TObject*)");
125 fMain->AddFrame(recanvas[i],
132 new TGLayoutHints(kLHintsTop |
144 TGCompositeFrame *cf0 =
new TGCompositeFrame(fMain, 60, 20, kVerticalFrame);
146 TGCompositeFrame *cf1 =
new TGCompositeFrame(cf0, 60, 20, kVerticalFrame | kFixedWidth);
148 cf1->AddFrame(fXStrips =
new TGCheckButton(cf1,
"Draw X strips and digits", 1),
149 new TGLayoutHints(kLHintsTop |
154 cf1->Resize(fXStrips->GetDefaultWidth()+10, fMain->GetDefaultHeight());
156 cf1->AddFrame(fYStrips =
new TGCheckButton(cf1,
"Draw Y strips and digits", 2),
157 new TGLayoutHints(kLHintsTop |
162 cf1->Resize(fYStrips->GetDefaultWidth()+10, fMain->GetDefaultHeight());
164 cf1->AddFrame(fEditStrips =
new TGCheckButton(cf1,
"Set/unset strips", 3),
165 new TGLayoutHints(kLHintsTop |
170 fXStrips->Connect(
"Clicked()",
"AliMUONTriggerGUIbdmap",
this,
"HandleButtons()");
171 fYStrips->Connect(
"Clicked()",
"AliMUONTriggerGUIbdmap",
this,
"HandleButtons()");
172 fEditStrips->Connect(
"Clicked()",
"AliMUONTriggerGUIbdmap",
this,
"HandleEditButton()");
175 new TGLayoutHints(kLHintsTop |
180 TGCompositeFrame *cf2 =
new TGCompositeFrame(cf0, 60, 20, kHorizontalFrame | kFixedWidth);
182 TGTextButton *digitsButton =
new TGTextButton(cf2,
"Digits", 4);
183 digitsButton->Connect(
"Clicked()",
"AliMUONTriggerGUIbdmap",
this,
"DoDigits()");
187 cf2->AddFrame(digitsButton,
188 new TGLayoutHints(kLHintsTop |
194 TGTextButton *dresetButton =
new TGTextButton(cf2,
"Reset", 5);
195 dresetButton->Connect(
"Clicked()",
"AliMUONTriggerGUIbdmap",
this,
"ResetDigits()");
199 cf2->AddFrame(dresetButton,
200 new TGLayoutHints(kLHintsTop |
206 TGTextButton *closeButton =
new TGTextButton(cf2,
"Close", 6);
207 closeButton->Connect(
"Clicked()",
"AliMUONTriggerGUIbdmap",
this,
"DoClose()");
211 cf2->AddFrame(closeButton,
212 new TGLayoutHints(kLHintsTop |
219 new TGLayoutHints(kLHintsTop |
226 TGCompositeFrame *cf3 =
new TGCompositeFrame(cf0, 60, 20, kVerticalFrame | kFixedWidth);
228 fLocTrigE =
new TGTextEdit(cf3, 100, 100, kSunkenFrame | kDoubleBorder);
229 cf3->AddFrame(fLocTrigE,
230 new TGLayoutHints(kLHintsExpandX |
236 new TGLayoutHints(kLHintsTop |
242 new TGLayoutHints(kLHintsTop |
247 fIsEditable = kFALSE;
251 fMain->MapSubwindows();
254 fMain->CenterOnParent();
266 fMain->DeleteWindow();
288 snprintf(buffer,20,
"Local trigger info\n");
299 snprintf(buffer,20,
"No data loaded yet...\n");
300 txt.LoadBuffer(buffer);
307 UShort_t x2m, x2u, x2d;
309 Int_t loStripX, loStripY, loDev, loCircuit, iStripX, iStripY, loLpt, loHpt;
314 while ( ( mlt = static_cast<AliMUONLocalTrigger*>(next()) ) )
318 if (loCircuit == circuitNumber) {
327 loDev = mlt->
LoDev();
328 loLpt = mlt->
LoLpt();
329 loHpt = mlt->
LoHpt();
331 iStripX = loStripX/2;
332 if ((x2u == 1 || x2m == 1 || x2d == 1) && x2m == 1) {
333 iStripY = loStripY/2;
338 snprintf(buffer,20,
"Circuit = %03d",loCircuit);
339 txt.LoadBuffer(buffer);
342 snprintf(buffer,20,
"LoStripX = %2d",loStripX);
343 txt.LoadBuffer(buffer);
346 snprintf(buffer,20,
"LoStripY = %2d",loStripY);
347 txt.LoadBuffer(buffer);
350 snprintf(buffer,20,
"LoDev = %2d",loDev);
351 txt.LoadBuffer(buffer);
354 snprintf(buffer,20,
"--------------------");
355 txt.LoadBuffer(buffer);
358 snprintf(buffer,20,
"X-strip = %2d ( %2d )",iStripX,(loStripX+loDev+1)/2);
359 txt.LoadBuffer(buffer);
362 snprintf(buffer,20,
"Y-strip = %2d",iStripY);
363 txt.LoadBuffer(buffer);
366 snprintf(buffer,20,
"--------------------");
367 txt.LoadBuffer(buffer);
370 snprintf(buffer,20,
"LoLpt = %2d",loLpt);
371 txt.LoadBuffer(buffer);
374 snprintf(buffer,20,
"LoHpt = %2d",loHpt);
375 txt.LoadBuffer(buffer);
391 for (Int_t i = 0; i <
kNMT; i++) {
401 for (Int_t i = 0; i <
kNMT; i++) {
404 fCanvas[i]->Range(-xw/2,-yw/2,+xw/2,+yw/2);
405 for (Int_t is = 0; is <
kNS; is++) {
407 fXDigPL[i][is] =
new TPolyLine(5);
408 fYDigPL[i][is] =
new TPolyLine(5);
409 fXDigPL[i][is]->SetBit(kCannotPick);
410 fYDigPL[i][is]->SetBit(kCannotPick);
411 fXDigPL[i][is]->SetLineColor(4);
412 fYDigPL[i][is]->SetLineColor(4);
414 fXDigBox[i][is] =
new TBox(0,0,0,0);
415 fYDigBox[i][is] =
new TBox(0,0,0,0);
416 fXDigBox[i][is]->SetBit(kCannotPick);
417 fYDigBox[i][is]->SetBit(kCannotPick);
462 Double_t xf1, yf1, xf2, yf2;
464 Double_t xMin, xMax, yMin, yMax;
465 Float_t xd, yd, fxDim, fyDim, cDim;
475 if (event == kButton1Down) {
477 cs = TString(sel->GetName());
482 fCanvas[iMT]->GetRange(xf1,yf1,xf2,yf2);
483 fxDim = (Float_t)xf2;
484 fyDim = (Float_t)yf2;
489 xd = +(2.0*fxDim*(Float_t)(x))/cDim - fxDim;
490 yd = -(2.0*fyDim*(Float_t)(y))/cDim + fyDim;
494 for (Int_t ix = 0; ix <
fNStripX; ix++) {
503 for (Int_t ip = 0; ip < np; ip++) {
504 xMin = TMath::Min(xMin,px[ip]);
505 xMax = TMath::Max(xMax,px[ip]);
506 yMin = TMath::Min(yMin,py[ip]);
507 yMax = TMath::Max(yMax,py[ip]);
510 if (yd > (Float_t)yMin && yd < (Float_t)yMax) {
512 if (
fXDigBox[iMT][ix]->GetFillStyle() == 0) {
514 fXDigBox[iMT][ix]->SetFillStyle(1001);
517 snprintf(cln,3,
"%2d",ix);
534 }
else if (
fXDigBox[iMT][ix]->GetFillStyle() == 1001) {
553 if (!
fXDigBox[iMT][ix]->TestBit(kObjInCanvas))
568 for (Int_t iy = 0; iy <
fNStripY; iy++) {
577 for (Int_t ip = 0; ip < np; ip++) {
578 xMin = TMath::Min(xMin,px[ip]);
579 xMax = TMath::Max(xMax,px[ip]);
580 yMin = TMath::Min(yMin,py[ip]);
581 yMax = TMath::Max(yMax,py[ip]);
584 if (xd > (Float_t)xMin && xd < (Float_t)xMax) {
586 if (
fYDigBox[iMT][iy]->GetFillStyle() == 0) {
588 fYDigBox[iMT][iy]->SetFillStyle(1001);
591 snprintf(cln,3,
"%2d",iy);
608 }
else if (
fYDigBox[iMT][iy]->GetFillStyle() == 1001) {
627 if (!
fYDigBox[iMT][iy]->TestBit(kObjInCanvas))
658 for (Int_t imt = 0; imt <
kNMT; imt++) {
660 for (Int_t ix = 0; ix <
fNStripX; ix++) {
661 if (
fXDigBox[imt][ix]->GetFillStyle() == 0) {
664 if (
fXDigBox[imt][ix]->GetFillStyle() == 1001) {
670 for (Int_t iy = 0; iy <
fNStripY; iy++) {
671 if (
fYDigBox[imt][iy]->GetFillStyle() == 0) {
674 if (
fYDigBox[imt][iy]->GetFillStyle() == 1001) {
680 for (Int_t io = 1; io <= over; io++) {
681 if (io == pos)
continue;
704 for (Int_t imt = 0; imt <
kNMT; imt++) {
705 for (Int_t ix = 0; ix <
fNStripX; ix++) {
714 for (Int_t iy = 0; iy <
fNStripY; iy++) {
724 for (Int_t io = 1; io <= over; io++) {
725 if (io == pos)
continue;
739 for (Int_t io = 1; io <= over; io++) {
740 if (io == pos)
continue;
762 TGButton *btn = (TGButton *) gTQSender;
763 id = btn->WidgetId();
767 if(
fXStrips->GetState() == kButtonDown &&
768 fYStrips->GetState() == kButtonDown ) {
779 if(
fXStrips->GetState() == kButtonDown &&
780 fYStrips->GetState() == kButtonUp ) {
791 if(
fXStrips->GetState() == kButtonUp &&
792 fYStrips->GetState() == kButtonDown ) {
803 if(
fXStrips->GetState() == kButtonUp &&
804 fYStrips->GetState() == kButtonUp ) {
821 for (Int_t i = 0; i <
kNMT; i++) {
838 Bool_t drawDigits = kTRUE;
839 Bool_t drawDigitsRaw = kTRUE;
844 drawDigitsRaw = kFALSE;
848 Int_t over, pos, number;
851 Int_t cathode, detElemId, ix, iy, charge;
852 Int_t chamber, np = 5;
854 Float_t xpmin, xpmax, ypmin, ypmax;
855 Float_t xg1, xg2, yg1, yg2, zg1;
856 Float_t xdw, ydw, xcw, ycw;
857 Double_t xc1, xc2, yc1, yc2;
860 Double_t xMin, xMax, yMin, yMax;
867 if (drawDigits || drawDigitsRaw) {
869 for (Int_t i = 0; i <
kNMT; i++) {
873 fCanvas[i]->GetRange(xc1,yc1,xc2,yc2);
874 xcw = (Float_t)(0.5*(xc2-xc1));
875 ycw = (Float_t)(0.5*(yc2-yc1));
895 while ( ( mdig = static_cast<AliMUONVDigit*>(next())) )
901 detElemId = mdig->DetElemId();
902 charge = (Int_t)mdig->Charge();
904 Bool_t triggerBgn = kFALSE;
905 Int_t schg = (Int_t)(charge + 0.5);
907 Int_t tchg = schg - (Int_t(schg/10))*10;
908 if (schg<=10 || tchg>0) {
929 transformer.
Local2Global(detElemId, xlocal1, ylocal1, 0, xg1, yg1, zg1);
950 if ((xdw > ydw) && bx) {
958 if (ix == iX && iy >= iY1 && iy <= iY2) {
966 boxd =
new TBox(xpmin,ypmin,xpmax,ypmax);
967 boxd->SetFillStyle(1001);
968 if (triggerBgn) boxd->SetFillColor(6);
969 else boxd->SetFillColor(5);
970 boxd->SetBit(kCannotPick);
973 fXDigBox[i][iy-iY1]->SetFillStyle(1001);
974 fXDigBox[i][iy-iY1]->SetFillColor(2);
981 snprintf(cln,3,
"%2d",(iy-iY1));
996 if ((xdw < ydw) && by) {
1004 if (ix >= iX1 && ix <= iX2 && iy == iY) {
1016 boxd =
new TBox(xpmin,ypmin,xpmax,ypmax);
1017 boxd->SetFillStyle(1001);
1018 if (triggerBgn) boxd->SetFillColor(6);
1019 else boxd->SetFillColor(5);
1020 boxd->SetBit(kCannotPick);
1023 fYDigBox[i][ix-iX1]->SetFillStyle(1001);
1024 fYDigBox[i][ix-iX1]->SetFillColor(2);
1031 snprintf(cln,3,
"%2d",(ix-iX1));
1042 for (Int_t io = 1; io <= over; io++) {
1043 if (io == pos)
continue;
1058 for (Int_t i = 0; i <
kNMT; i++) {
1062 fCanvas[i]->GetRange(xc1,yc1,xc2,yc2);
1063 xcw = (Float_t)(0.5*(xc2-xc1));
1064 ycw = (Float_t)(0.5*(yc2-yc1));
1069 for (ix = 0; ix <
fNStripX; ix++) {
1071 if (
fXDigBox[i][ix]->GetFillStyle() == 1001 ||
1081 for (Int_t ip = 0; ip < np; ip++) {
1082 xMin = TMath::Min(xMin,px[ip]);
1083 xMax = TMath::Max(xMax,px[ip]);
1084 yMin = TMath::Min(yMin,py[ip]);
1085 yMax = TMath::Max(yMax,py[ip]);
1088 if (
fXDigBox[i][ix]->GetFillStyle() == 0) {
1089 fXDigBox[i][ix]->SetFillStyle(1001);
1097 snprintf(cln,3,
"%2d",ix);
1118 for (iy = 0; iy <
fNStripY; iy++) {
1120 if (
fYDigBox[i][iy]->GetFillStyle() == 1001 ||
1130 for (Int_t ip = 0; ip < np; ip++) {
1131 xMin = TMath::Min(xMin,px[ip]);
1132 xMax = TMath::Max(xMax,px[ip]);
1133 yMin = TMath::Min(yMin,py[ip]);
1134 yMax = TMath::Max(yMax,py[ip]);
1137 if (
fYDigBox[i][iy]->GetFillStyle() == 0) {
1138 fYDigBox[i][iy]->SetFillStyle(1001);
1146 snprintf(cln,3,
"%2d",iy);
1185 Float_t xg1, xg2, yg1, yg2, zg1;
1186 Float_t xlocal1, xlocal2, ylocal1, ylocal2;
1187 Int_t detElemId, maxX, maxY;
1188 Float_t xdw, ydw, xpmin, xpmax, ypmin, ypmax;
1189 Float_t ptx1, ptx2, pty1, pty2;
1191 Double_t xc1, xc2, yc1, yc2;
1194 Bool_t makeLabelsX = kFALSE;
1195 Bool_t makeLabelsY = kFALSE;
1198 makeLabelsX = kTRUE;
1203 makeLabelsY = kTRUE;
1207 for (Int_t i = 0; i <
kNMT; i++) {
1211 fCanvas[i]->GetRange(xc1,yc1,xc2,yc2);
1212 xcw = (Float_t)(0.5*(xc2-xc1));
1213 ycw = (Float_t)(0.5*(yc2-yc1));
1230 for (Int_t ix = 0; ix <= maxX; ix++) {
1231 for (Int_t iy = 0; iy <= maxY; iy++) {
1243 transformer.
Local2Global(detElemId, xlocal1, ylocal1, 0, xg1, yg1, zg1);
1266 Int_t iX1, iX2, iY, ixDig;
1270 if (ix >= iX1 && ix <= iX2 && iy == iY) {
1281 fYDigPL[i][ixDig]->SetPoint(0,xpmin,ypmin);
1282 fYDigPL[i][ixDig]->SetPoint(1,xpmax,ypmin);
1283 fYDigPL[i][ixDig]->SetPoint(2,xpmax,ypmax);
1284 fYDigPL[i][ixDig]->SetPoint(3,xpmin,ypmax);
1285 fYDigPL[i][ixDig]->SetPoint(4,xpmin,ypmin);
1293 snprintf(cln,3,
"%2d",(ix-iX1));
1297 pty1 = 1.065*ypmin - 0.04*ycw;
1298 pty2 = 1.065*ypmin + 0.04*ycw;
1299 fYLabelL[i][ix-iX1] =
new TPaveText(ptx1,pty1,ptx2,pty2);
1300 fYLabelL[i][ix-iX1]->SetBorderSize(0);
1301 fYLabelL[i][ix-iX1]->SetBit(kCannotPick);
1303 pty1 = 1.065*ypmax - 0.04*ycw;
1304 pty2 = 1.065*ypmax + 0.04*ycw;
1305 fYLabelR[i][ix-iX1] =
new TPaveText(ptx1,pty1,ptx2,pty2);
1306 fYLabelR[i][ix-iX1]->SetBorderSize(0);
1307 fYLabelR[i][ix-iX1]->SetBit(kCannotPick);
1325 for (Int_t ix = 0; ix <= maxX; ix++) {
1326 for (Int_t iy = 0; iy <= maxY; iy++) {
1338 transformer.
Local2Global(detElemId, xlocal1, ylocal1, 0, xg1, yg1, zg1);
1360 Int_t iX, iY1, iY2, iyDig;
1364 if (ix == iX && iy >= iY1 && iy <= iY2) {
1372 fXDigPL[i][iyDig]->SetPoint(0,xpmin,ypmin);
1373 fXDigPL[i][iyDig]->SetPoint(1,xpmax,ypmin);
1374 fXDigPL[i][iyDig]->SetPoint(2,xpmax,ypmax);
1375 fXDigPL[i][iyDig]->SetPoint(3,xpmin,ypmax);
1376 fXDigPL[i][iyDig]->SetPoint(4,xpmin,ypmin);
1384 snprintf(cln,3,
"%2d",(iy-iY1));
1388 ptx1 = 1.065*xpmin - 0.04*xcw;
1389 ptx2 = 1.065*xpmin + 0.04*xcw;
1390 fXLabelL[i][iy-iY1] =
new TPaveText(ptx1,pty1,ptx2,pty2);
1391 fXLabelL[i][iy-iY1]->SetBorderSize(0);
1392 fXLabelL[i][iy-iY1]->SetBit(kCannotPick);
1394 ptx1 = 1.065*xpmax - 0.04*xcw;
1395 ptx2 = 1.065*xpmax + 0.04*xcw;
1396 fXLabelR[i][iy-iY1] =
new TPaveText(ptx1,pty1,ptx2,pty2);
1397 fXLabelR[i][iy-iY1]->SetBorderSize(0);
1398 fXLabelR[i][iy-iY1]->SetBit(kCannotPick);
1435 TTimer::SingleShot(150,
"AliMUONTriggerGUIbdmap",
this,
"CloseWindow()");
AliMUONTriggerCrateStore * fCrateManager
trigger boards manager
TPaveText * fXLabelL[kNMT][kNS]
X-strip labels left.
Int_t GetEventNumber() const
UChar_t GetYOver() const
get neighbouring boards with common y strips
The iterator over detection elements.
Int_t GetYSix1() const
get first x-index in detector element for a y-strip
const AliMpVSegmentation * GetMpSegmentation(Int_t detElemId, AliMp::CathodType cath, Bool_t warn=true) const
Int_t GetNumber() const
get the number of this board
virtual TIterator * CreateLocalIterator() const =0
Create iterator on local trigger.
UChar_t GetPosition() const
get the board position inside the detector element in y direction
TCanvas * fCanvas[kNMT]
MT canvases.
Interface for a digit container.
Int_t GetYDig(Int_t imt, Int_t is) const
get the digit amplitude for a y-strip in a given chamber
Int_t GetXSix() const
get x-index in detector element for an x-strip
TPolyLine * fXDigPL[kNMT][kNS]
X-strip polyline.
static AliMpSegmentation * Instance(Bool_t warn=true)
Int_t fNStripX
Number of x-strips on board.
void DrawDigits(Bool_t bx, Bool_t by)
virtual ~AliMUONTriggerGUIbdmap()
Float_t GetYCenter(Int_t imt) const
get y-center of the board in chamber imt
static MpPair_t GetDetElemIdRange(Int_t chamberId)
Float_t fYCenter[kNMT]
Board y-center.
Int_t LoLpt() const
Return Low pt.
TGCheckButton * fYStrips
Draw y-strips and digits.
Int_t GetYSix2() const
get last x-index in detector element for a y-strip
Float_t fXCenter[kNMT]
Board x-center.
Int_t CurrentDEId() const
Bool_t fIsEditable
allows set/unset the strips
AliMUONTriggerGUIboard * fBoard
Current board object.
TPolyLine * fYDigPL[kNMT][kNS]
Y-strip polyline.
AliMUONVTriggerStore * TriggerStore(Int_t event)
AliMUONTriggerStoreV1 * fRawTriggerStore
Raw data trigger store.
Int_t GetIdCircuit() const
get the id of the circuit
void HandleButtons(Int_t id=-1)
AliMUONLocalTriggerBoard * LocalBoard(Int_t boardNumber) const
virtual AliMpPad PadByIndices(Int_t ix, Int_t iy, Bool_t warning=true) const =0
Find pad by indices.
Int_t LoHpt() const
Return High p.
Int_t LoStripY() const
Return Y strip in MT11.
Base class of a trigger information store.
virtual TIterator * CreateIterator() const =0
Create an iterator to loop over all our digits.
TBox * fXDigBox[kNMT][kNS]
X-digit box.
virtual UShort_t GetSwitch(Int_t i) const
Return i-th Switch value.
TBox * fYDigBox[kNMT][kNS]
Y-digit box.
AliMUONVDigitStore * DigitStore(Int_t event)
void ClearYDigits()
delete the set y-digits
Int_t LoStripX() const
Return X strip in MT11.
Bool_t fLabelX
x-labels exist
TPaveText * fYLabelR[kNMT][kNS]
Y-strip labels right.
Reconstructed Local Trigger object.
void SetDigitY(Int_t imt, Int_t is, Int_t amp)
set a y-strip digit in a chamber with amplitude = amp
TPaveText * fYLabelL[kNMT][kNS]
Y-strip labels left.
Float_t GetXWidth(Int_t imt) const
get x-width of the board in chamber imt
Implementation of local trigger board objects.
void SetOpen(Bool_t open)
set true if this board has a gui active
virtual Int_t MaxPadIndexY() const =0
Return maximum pad index in Y direction.
Int_t GetXSiy2() const
get last y-index in detector element for an x-strip
virtual Int_t Cathode() const =0
Cathode number this digit is on (0 or 1)
Double_t GetPositionY() const
Return the pad x position (in cm)
AliRunLoader * GetRunLoader()
Int_t GetDetElemId() const
get the id of the detector element
TPaveText * fXLabelR[kNMT][kNS]
X-strip labels right.
Int_t GetYSiy() const
get y-index in detector element for a y-strip
AliMUONMCDataInterface * fMCDataInterface
MC data interface.
Float_t fYWidth[kNMT]
Board y-width.
void ClearXDigits()
delete the set x-digits
TObjArray * fBoards
Array with all boards.
Float_t GetYWidth(Int_t imt) const
get y-width of the board in chamber imt
AliMp::CathodType GetCathodType(Int_t cathodNumber)
Convert integer number in enum;.
Float_t GetXCenter(Int_t imt) const
get x-center of the board in chamber imt
Int_t LoDev() const
Return Deviation.
TGTextEdit * fLocTrigE
Window local trigger info.
TGTransientFrame * fMain
Main board frame.
Float_t fXWidth[kNMT]
Board x-width.
AliLoader * fLoader
The MUON loader.
Int_t GetXSiy1() const
get first y-index in detector element for an x-strip
Trigger GUI utility class: single board object.
Bool_t fXOn
x-strips/digits on canvas ?
Bool_t fLabelY
y-labels exist
Int_t fNStripY
Number of y-strips on board.
Bool_t IsValid() const
Return validity.
void EditStrips(Int_t event, Int_t x, Int_t y, TObject *sel)
The abstract base class for the segmentation.
Double_t GetDimensionY() const
Return the y pad dimension - half length (in cm)
Int_t PairFirst(MpPair_t pair)
Decode the first integer from encoded pair.
Bool_t fYOn
y-strips/digits on canvas ?
virtual Int_t MaxPadIndexX() const =0
Return maximum pad index in X direction.
Trigger GUI utility class: single board map of the strips/digits.
Class which encapsuate all information about a pad.
Double_t GetPositionX() const
Return the pad x position (in cm)
Int_t PairSecond(MpPair_t pair)
Decode the second integer from encoded pair.
void DrawStrips(Bool_t bx, Bool_t by)
AliMUONDigitStoreV1 * fRawDigitStore
Raw data digit store.
Double_t GetDimensionX() const
Return the x pad dimension - half length (in cm)
TGCheckButton * fEditStrips
Set/unset the strips.
Int_t LoCircuit() const
Return Circuit number.
Int_t GetXDig(Int_t imt, Int_t is) const
get the digit amplitude for an x-strip in a given chamber
UInt_t fCanvasSize
Size of the canvas.
void SetDigitX(Int_t imt, Int_t is, Int_t amp)
set an x-strip digit in a chamber with amplitude = amp
TGCheckButton * fXStrips
Draw x-strips and digits.