/* Generated by Together */ #include "CbmPipe.h" #include "CbmGeoLoader.h" #include "CbmGeoInterface.h" #include "CbmGeoPipe.h" #include "CbmGeoRootBuilder.h" #include "CbmGeoNode.h" #include "CbmRuntimeDb.h" #include "CbmGeoPassivePar.h" #include "TObjArray.h" #include "CbmRun.h" CbmPipe::~CbmPipe() { } CbmPipe::CbmPipe() { } CbmPipe::CbmPipe(const char * name, const char * title) : CbmModule(name ,title) { } void CbmPipe::ConstructGeometry(){ CbmGeoLoader *loader=CbmGeoLoader::Instance(); CbmGeoInterface *GeoInterface =loader->getGeoInterface(); CbmGeoPipe *MGeo=new CbmGeoPipe(); MGeo->setGeomFile(GetGeometryFileName()); GeoInterface->addGeoModule(MGeo); Bool_t rc = GeoInterface->readSet(MGeo); if ( rc ) MGeo->create(loader->getGeoBuilder()); CbmGeoNode *volu=MGeo->getVolume("pipevac1"); if (volu) { TList *masterNodes=GeoInterface->getMasterNodes(); masterNodes->Add(new CbmGeoNode(*volu)); } TList* volList = MGeo->getListOfVolumes(); // store geo parameter CbmRun *fRun = CbmRun::Instance(); CbmRuntimeDb *rtdb= CbmRun::Instance()->GetRuntimeDb(); CbmGeoPassivePar* par=(CbmGeoPassivePar*)(rtdb->getContainer("CbmGeoPassivePar")); TObjArray *fSensNodes = par->GetGeoSensitiveNodes(); TObjArray *fPassNodes = par->GetGeoPassiveNodes(); TListIter iter(volList); CbmGeoNode* node = NULL; CbmGeoVolume *aVol=NULL; while( (node = (CbmGeoNode*)iter.Next()) ) { aVol = dynamic_cast ( node ); if ( node->isSensitive() ) { fSensNodes->AddLast( aVol ); }else{ fPassNodes->AddLast( aVol ); } } ProcessNodes( volList ); par->setChanged(); par->setInputVersion(fRun->GetRunId(),1); } ClassImp(CbmPipe)