Skip to content

Commit af35759

Browse files
Julian Myrchashahor02
authored andcommitted
o2-eve: EMCAL fixes, hiding MFT,MCH,MID on RPhi view
1 parent d3b7f56 commit af35759

File tree

6 files changed

+51
-15
lines changed

6 files changed

+51
-15
lines changed

EventVisualisation/Base/include/EventVisualisationBase/ConfigurationManager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ namespace o2
2424
namespace event_visualisation
2525
{
2626
/// Version of the software
27-
const static std::string o2_eve_version = "1.30";
27+
const static std::string o2_eve_version = "1.31";
2828

2929
/// Configuration Manager allows an easy access to the config file.
3030
///

EventVisualisation/View/include/EventVisualisationView/EventManager.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ class EventManager final : public TEveEventManager, public TQObject
9292

9393
static EventManager* instance;
9494
o2::ccdb::CcdbApi ccdbApi;
95-
TEveElementList* dataTypeLists[EVisualisationDataType::NdataTypes];
95+
TEveElementList* dataTypeLists[EVisualisationDataType::NdataTypes]; // 3D
96+
TEveElementList* dataTypeListsPhi[EVisualisationDataType::NdataTypes]; // Phi
9697
DataSource* dataSource = nullptr;
9798
TString dataPath = "";
9899
Settings vizSettings;

EventVisualisation/View/include/EventVisualisationView/MultiView.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,17 @@ class MultiView
8888
/// Removes all geometries
8989
void destroyAllGeometries();
9090

91+
/// Registers an elements to be drawn
92+
void registerElements(TEveElementList* elements[], TEveElementList* phiElements[]);
93+
9194
/// Registers an element to be drawn
92-
void registerElement(TEveElement* event); // override;
95+
void registerElement(TEveElement* event);
96+
void registerEvent(TEveElement* event) { return registerElement(event); }
9397

9498
/// Get annotation pointer
9599
TGLAnnotation* getAnnotationTop() { return mAnnotationTop.get(); }
96100
TGLAnnotation* getAnnotationBottom() { return mAnnotationBottom.get(); }
97101

98-
///
99-
void registerEvent(TEveElement* event) { return registerElement(event); }
100102
/// Removes all shapes representing current event
101103
void destroyAllEvents(); // override;
102104
void redraw3D();

EventVisualisation/View/src/EventManager.cxx

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,21 +82,20 @@ void EventManager::displayCurrentEvent()
8282

8383
for (int i = 0; i < EVisualisationDataType::NdataTypes; ++i) {
8484
dataTypeLists[i] = new TEveElementList(gDataTypeNames[i].c_str());
85+
dataTypeListsPhi[i] = new TEveElementList(gDataTypeNames[i].c_str());
8586
}
8687

8788
VisualisationEvent event; // collect calorimeters in one drawing step
8889
auto displayList = dataSource->getVisualisationList(no, EventManagerFrame::getInstance().getMinTimeFrameSliderValue(), EventManagerFrame::getInstance().getMaxTimeFrameSliderValue(), EventManagerFrame::MaxRange);
90+
8991
for (auto it = displayList.begin(); it != displayList.end(); ++it) {
9092
if (it->second == EVisualisationGroup::EMC || it->second == EVisualisationGroup::PHS) {
9193
displayCalorimeters(it->first, gVisualisationGroupName[it->second]);
9294
} else {
9395
displayVisualisationEvent(it->first, gVisualisationGroupName[it->second]);
9496
}
9597
}
96-
97-
for (int i = 0; i < EVisualisationDataType::NdataTypes; ++i) {
98-
multiView->registerElement(dataTypeLists[i]);
99-
}
98+
multiView->registerElements(dataTypeLists, dataTypeListsPhi);
10099

101100
if (vizSettings.firstEvent) {
102101
saveVisualisationSettings();
@@ -233,6 +232,10 @@ void EventManager::displayVisualisationEvent(VisualisationEvent& event, const st
233232

234233
if (trackCount != 0) {
235234
dataTypeLists[EVisualisationDataType::Tracks]->AddElement(list);
235+
if (detectorName != "MCH" && detectorName != "MFT" && detectorName != "MID") {
236+
// LOG(info) << "phi: " << trackCount << " detector: " << detectorName;
237+
dataTypeListsPhi[EVisualisationDataType::Tracks]->AddElement(list);
238+
}
236239
}
237240

238241
// global clusters (with no connection information)
@@ -246,6 +249,10 @@ void EventManager::displayVisualisationEvent(VisualisationEvent& event, const st
246249

247250
if (clusterCount != 0) {
248251
dataTypeLists[EVisualisationDataType::Clusters]->AddElement(point_list);
252+
if (detectorName != "MCH" && detectorName != "MFT" && detectorName != "MID") {
253+
// LOG(info) << "phi: " << clusterCount << " detector: " << detectorName;
254+
dataTypeListsPhi[EVisualisationDataType::Clusters]->AddElement(point_list);
255+
}
249256
}
250257

251258
LOG(info) << "tracks: " << trackCount << " detector: " << detectorName << ":" << dataTypeLists[EVisualisationDataType::Tracks]->NumChildren();
@@ -302,6 +309,14 @@ void EventManager::displayCalorimeters(VisualisationEvent& event, const std::str
302309
data->FillSlice(0, info.scale * calo.getEnergy());
303310
}
304311

312+
// remove artefacts
313+
data->AddTower(-0.5, 0.5, -1.574 - 0.1, -1.574 + 0.1);
314+
data->AddTower(-0.5, 0.5, 1.574 - 0.1, 1.574 + 0.1);
315+
data->AddTower(-0.5, 0.5, -0.593 - 0.1, -0.593 + 0.1);
316+
data->AddTower(-0.5, 0.5, -0.726 - 0.1, -0.726 + 0.1);
317+
data->AddTower(-0.5, 0.5, -3.028 - 0.1, -3.028 + 0.1);
318+
data->AddTower(-0.5, 0.5, -1.915 - 0.1, -1.915 + 0.1);
319+
305320
data->DataChanged();
306321
data->SetAxisFromBins();
307322

@@ -313,6 +328,7 @@ void EventManager::displayCalorimeters(VisualisationEvent& event, const std::str
313328
calo3d->SetRnrFrame(false, false); // do not draw barrel grid
314329

315330
dataTypeLists[EVisualisationDataType::Calorimeters]->AddElement(calo3d);
331+
dataTypeListsPhi[EVisualisationDataType::Calorimeters]->AddElement(calo3d);
316332
}
317333
}
318334

EventVisualisation/View/src/MultiView.cxx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,22 @@ void MultiView::destroyAllGeometries()
226226
mDetectors.clear();
227227
}
228228

229+
void MultiView::registerElements(TEveElementList* elements[], TEveElementList* phiElements[])
230+
{
231+
for (auto dataType = 0; dataType < EVisualisationDataType::NdataTypes; ++dataType) {
232+
TEveElement* event = elements[dataType];
233+
gEve->GetCurrentEvent()->AddElement(event);
234+
getProjection(ProjectionZrho)->ImportElements(event, getScene(SceneZrhoEvent));
235+
}
236+
for (auto dataType = 0; dataType < EVisualisationDataType::NdataTypes; ++dataType) {
237+
TEveElement* event = phiElements[dataType];
238+
getProjection(ProjectionRphi)->ImportElements(event, getScene(SceneRphiEvent));
239+
}
240+
}
241+
229242
void MultiView::registerElement(TEveElement* event)
230243
{
244+
// version which do not remove MFT, MID, MCH in Rphi view
231245
gEve->GetCurrentEvent()->AddElement(event);
232246
getProjection(ProjectionRphi)->ImportElements(event, getScene(SceneRphiEvent));
233247
getProjection(ProjectionZrho)->ImportElements(event, getScene(SceneZrhoEvent));

EventVisualisation/Workflow/src/EveWorkflowHelper.cxx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,8 @@ void EveWorkflowHelper::drawEMCAL()
425425

426426
const TGeoHMatrix* matrix = this->mEMCALGeom->GetMatrixForSuperModuleFromGeoManager(sm);
427427
const Double_t* translation = matrix->GetTranslation();
428+
const Double_t* rotation = matrix->GetRotationMatrix();
429+
428430
/*
429431
LOG(info) << "EMCAL -----------------------------------------------------------------------------------------------";
430432
LOG(info) << "EMCAL id: "<< id << " emcal.getTower()";
@@ -439,14 +441,15 @@ void EveWorkflowHelper::drawEMCAL()
439441
LOG(info) << "EMCAL index_module_eta: "<< index_module_eta ;
440442
LOG(info) << "EMCAL translation: "<< "["<<translation[0]<<","<<translation[1]<<","<<translation[2]<<"]" ;
441443
*/
442-
TVector3 gPos;
443-
gPos[0] = translation[0] + relPosCell.X();
444-
gPos[1] = translation[1] + relPosCell.Y();
445-
gPos[2] = translation[2] + relPosCell.Z();
444+
double rPos[] = {relPosCell.X(), relPosCell.Y(), relPosCell.Z()};
445+
double gPos[3];
446+
matrix->LocalToMaster(rPos, gPos);
447+
TVector3 vPos(gPos);
448+
446449
auto vCalo = mEvent.addCalo({.time = static_cast<float>(emcal.getTimeStamp()),
447450
.energy = emcal.getEnergy(),
448-
.phi = (float)gPos.Phi(),
449-
.eta = (float)gPos.Eta(),
451+
.phi = (float)vPos.Phi(),
452+
.eta = (float)vPos.Eta(),
450453
.PID = 0,
451454
.gid = GID::getSourceName(GID::EMC),
452455
.source = GID::EMC});

0 commit comments

Comments
 (0)