7#include "BesVisLib/Muc2DStrip.h"
8#include "BesVisLib/BesView.h"
9#include "BesVisLib/BesCursor.h"
25Muc2DStrip::Muc2DStrip(
const char* name,
const char* title, Int_t N, Double_t *
P, Int_t part, Int_t seg, Int_t gap, Int_t strip)
40 for (Int_t i = 0; i < 4; i++) {
42 Int_t iXYSeq[8] = {1,0,4,5, 2,3,7,6};
43 for (Int_t j = 0; j < 3; j++) {
44 Pxy[3*i+j] = (
P[3*iXYSeq[i]+j] +
P[3*(iXYSeq[i+4])+j] )/2.0;
48 Int_t iXYSeq[8] = {0,1,2,3, 4,5,6,7};
49 for (Int_t j = 0; j < 3; j++) {
50 Pxy[3*i+j] = (
P[3*iXYSeq[i]+j] +
P[3*(iXYSeq[i+4])+j] )/2.0;
62 Int_t iZRSeq[6] = {4,5,1,2,6,7};
63 for (Int_t i = 0; i < nzrPoints; i++) {
64 for (Int_t j = 0; j < 3; j++) {
65 Pzr[3*i+j] =
P[3*iZRSeq[i]+j];
71 Int_t iZRSeq[6] = {1,2,3,7,6,5};
72 for (Int_t i = 0; i < nzrPoints; i++) {
73 for (Int_t j = 0; j < 3; j++) {
74 Pzr[3*i+j] =
P[3*iZRSeq[i]+j];
79 fStripZR =
new BesPolygon2D(name, title, nzrPoints, &Pzr[0]);
130 if (fInfoCon.size() == 0) fInfoCon.push_back(GetTitle());
134 cout <<
"Muc2DStrip::CloseInfo, not initialized" << endl;
167 if (gPad) gPad->SetCursor(kPointer);
208 TString opt = option;
218 TString opt = option;
222 Double_t min[3], max[3];
224 Double_t maxRange = 0.0;
226 for (Int_t i = 0; i < 3; i++) {
227 range[i] = fabs(max[i] - min[i]);
228 if (range[i] > maxRange) maxRange = range[i];
234 fStripXY->SetLineColor(lcStrip);
235 fStripXY->SetLineWidth(lwStrip);
236 fStripXY->SetLineStyle(lsStrip);
237 fStripXY->SetFillColor(fcStrip);
238 fStripXY->SetFillStyle(fsStrip);
243 fStripXY->SetLineColor(lcStripFired);
244 if (maxRange > m_kDrawLineRange && fPart == 1)
245 fStripXY->SetLineColor(fcStripFired);
246 fStripXY->SetLineWidth(lwStripFired);
247 fStripXY->SetLineStyle(lsStripFired);
248 fStripXY->SetFillColor(fcStripFired);
249 fStripXY->SetFillStyle(fsStripFired);
255 fStripXY->SetLineColor(lcStripHL);
256 if (maxRange > m_kDrawLineRange && fPart == 1)
257 fStripXY->SetLineColor(fcStripHL);
258 fStripXY->SetLineWidth(lwStripHL);
259 fStripXY->SetLineStyle(lsStripHL);
260 fStripXY->SetFillColor(fcStripHL);
261 fStripXY->SetFillStyle(fsStripHL);
279 fStripZR->SetLineColor(lcStrip);
280 fStripZR->SetLineWidth(lwStrip);
281 fStripZR->SetLineStyle(lsStrip);
282 fStripZR->SetFillColor(fcStrip);
283 fStripZR->SetFillStyle(fsStrip);
288 fStripZR->SetLineColor(lcStripFired);
289 if (maxRange > m_kDrawLineRange)
290 fStripZR->SetLineColor(fcStripFired);
291 fStripZR->SetLineWidth(lwStripFired);
292 fStripZR->SetLineStyle(lsStripFired);
293 fStripZR->SetFillColor(fcStripFired);
294 fStripZR->SetFillStyle(fsStripFired);
300 fStripZR->SetLineColor(lcStripHL);
301 if (maxRange > m_kDrawLineRange)
302 fStripZR->SetLineColor(fcStripHL);
303 fStripZR->SetLineWidth(lwStripHL);
304 fStripZR->SetLineStyle(lsStripHL);
305 fStripZR->SetFillColor(fcStripHL);
306 fStripZR->SetFillStyle(fsStripHL);
328 else return TObject::GetObjectInfo(px, py);
340 if ( (Int_t)viewPhi % 90 == 0 )
return true;
344 Int_t viewSeg = Int_t(viewPhi/45.0+0.5);
346 Int_t upSeg = viewSeg-2;
347 Int_t downSeg = viewSeg+2;
348 if (upSeg < 0) upSeg += 8;
349 else if (upSeg >= 8) upSeg -= 8;
350 if (downSeg < 0) downSeg += 8;
351 else if (downSeg >= 8) downSeg -= 8;
354 if ( (Int_t)viewPhi % 45 == 0 && (fSeg == upSeg || fSeg == downSeg) )
return true;
365 Double_t angle = TMath::ACos(
x/TMath::Sqrt(
x*
x+y*y) ) * TMath::RadToDeg();
366 if ( y<0.0 ) angle *= -1;
376 if (input >= 360.0) {
380 while (input >= 360.0);
382 else if (input < 0.0) {
double P(RecMdcKalTrack *trk)
gr SetTitle("BbLum_000XXXX")
R__EXTERN BesCursor * gBesCursor
ClassImp(Muc2DStrip) Muc2DStrip
virtual void SetText(std::vector< TString > infoCon)
virtual void SetPos(Int_t px, Int_t py)
virtual void Paint(Option_t *option="")
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
virtual void GetRange(Float_t *min, Float_t *max)
Bool_t GetVisMucHitsWest()
Bool_t GetVisMucHitsGlobal()
Bool_t GetVisMucHitsEast()
virtual void UpdateView(Bool_t resetview=kFALSE)
virtual char * GetObjectInfo(Int_t px, Int_t py) const
Bool_t GetVisMucHitsBarrel()
EBESViewType GetViewType()
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Double_t GetAngle(Double_t x, Double_t y)
virtual void SetHighlighted(bool status=true)
virtual bool IsHighlighted()
virtual void Draw(Option_t *option="")
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
virtual char * GetObjectInfo(Int_t px, Int_t py) const
virtual bool IsZRVisible()
virtual void Paint(Option_t *option="")
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Double_t Range360(Double_t input)