#include <sstream>
#include <iostream>
{
auto gss =
n->GetVolume()->GetShape();
b1s->InitMainTrans();
b1s->RefMainTrans().SetFrom(trans.
Array());
b1s->SetShape(gss);
b1s->SetMainColor(
kCyan);
}
int level)
{
++level;
if (level > maxlevel)
return;
{
t(1, 1) = rm[0];
t(1, 2) = rm[1];
t(1, 3) = rm[2];
t(2, 1) = rm[3];
t(2, 2) = rm[4];
t(2, 3) = rm[5];
t(3, 1) = rm[6];
t(3, 2) = rm[7];
t(3, 3) = rm[8];
t(1, 4) = tv[0];
t(2, 4) = tv[1];
t(3, 4) = tv[2];
ctrans *= t;
}
std::string mn = material->
GetName();
if (mn == mat) {
makeEveGeoShape(
n, ctrans, holder);
}
filterChildNodes(
n, ctrans, holder, mat, maxlevel, level);
}
}
{
string s;
while (getline(
f, s,
'/'))
return node;
}
void geom_cms()
{
auto eveMng = REX::REveManager::Create();
auto geoManager = eveMng->GetGeometry("http://root.cern/files/cms.root");
{
eveMng->GetGlobalScene()->AddElement(holder);
TGeoNode *
n = getNodeFromPath(top,
"TRAK_1/SVTX_1/TGBX_1/GAW1_1");
std::string material = "TOB_Silicon";
filterChildNodes(
n, trans, holder, material, 6, 0);
}
{
eveMng->GetGlobalScene()->AddElement(holder);
auto n = getNodeFromPath(top,
"MUON_1/MB_1");
std::string material = "M_B_Air";
filterChildNodes(
n, trans, holder, material, 1, 0);
auto bv =
n->GetVolume();
for (int i = 1; i < 5; ++i) {
auto n = bv->FindNode(
Form(
"MBXC_%d", i));
auto gss =
n->GetVolume()->GetShape();
b1s->InitMainTrans();
const double *move =
n->GetMatrix()->GetTranslation();
b1s->RefMainTrans().SetFrom(*(
n->GetMatrix()));
b1s->SetShape(gss);
b1s->SetMainColor(
kBlue);
}
}
eveMng->Show();
}
double Double_t
Double 8 bytes.
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
virtual void AddElement(REveElement *el)
Add el to the list of children.
void SetFrom(Double_t *carr)
static Bool_t SetCacheFileDir(std::string_view cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE)
Sets the directory where to locally stage/cache remote files.
Base class describing materials.
Geometrical transformation package.
virtual const Double_t * GetTranslation() const =0
virtual const Double_t * GetRotationMatrix() const =0
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
TGeoVolume * GetVolume() const
Int_t GetNdaughters() const
TGeoNode * GetDaughter(Int_t ind) const
Int_t FindNode(const TGeoNode *node, Int_t level)
Search for a node within the branch of this one.
TGeoNode * FindNode(const char *name) const
search a daughter inside the list of nodes
const char * GetName() const override
Returns name of object.
Namespace for ROOT features in testing.