diff --git a/macro/mvd/mvd_sim.C b/macro/mvd/mvd_sim.C index 6b53fb419e90ce7938e364cf2645446858dc7bac..2291b71d746be10256aba529d31797e16121c392 100644 --- a/macro/mvd/mvd_sim.C +++ b/macro/mvd/mvd_sim.C @@ -11,6 +11,9 @@ // updated P.Sitzmann 22/11/2016 // -------------------------------------------------------------------------- + +#include "../../sim/transport/gconfig/g3Config.C" + void mvd_sim(Int_t nEvents = 100, TString setup = "sis100_electron") { // ======================================================================== @@ -20,7 +23,6 @@ void mvd_sim(Int_t nEvents = 100, TString setup = "sis100_electron") TString inDir = gSystem->Getenv("VMCWORKDIR"); TString inFile = ""; - // Output file name TString outDir = "data/"; TString outFile = outDir + "mvd.mc.root"; @@ -36,11 +38,11 @@ void mvd_sim(Int_t nEvents = 100, TString setup = "sis100_electron") gROOT->LoadMacro(setupFile); gInterpreter->ProcessLine(setupFunct); CbmSetup* cbmsetup = CbmSetup::Instance(); - cbmsetup->RemoveModule(kSTS); - cbmsetup->RemoveModule(kRICH); - cbmsetup->RemoveModule(kTRD); - cbmsetup->RemoveModule(kTOF); - cbmsetup->RemoveModule(kPSD); + cbmsetup->RemoveModule(ECbmModuleId::kSts); + cbmsetup->RemoveModule(ECbmModuleId::kRich); + cbmsetup->RemoveModule(ECbmModuleId::kTrd); + cbmsetup->RemoveModule(ECbmModuleId::kTof); + cbmsetup->RemoveModule(ECbmModuleId::kPsd); // In general, the following parts need not be touched // ======================================================================== @@ -127,7 +129,7 @@ void mvd_sim(Int_t nEvents = 100, TString setup = "sis100_electron") CbmTarget* target = new CbmTarget(targetElement.Data(), targetThickness, targetDiameter); target->SetPosition(targetPosX, targetPosY, targetPosZ); target->SetRotation(targetRotY); - target->Print(); + std::cout << "Register and Create: " << target->GetName() << std::endl; fRun->AddModule(target); // ------------------------------------------------------------------------ @@ -156,15 +158,13 @@ void mvd_sim(Int_t nEvents = 100, TString setup = "sis100_electron") // --- Uniform distribution of event plane angle primGen->SetEventPlane(0., 2. * TMath::Pi()); // --- Get target parameters - Double_t tX = 0.; - Double_t tY = 0.; - Double_t tZ = 0.; + TVector3 tXYZ(0, 0, -44.0); Double_t tDz = 0.; if (target) { - target->GetPosition(tX, tY, tZ); + tXYZ = target->GetPosition(); tDz = target->GetThickness(); } - primGen->SetTarget(tZ, tDz); + primGen->SetTarget(tXYZ[2], tDz); primGen->SetBeam(0., 0., beamWidthX, beamWidthY); primGen->SmearGausVertexXY(smearVertexXY); primGen->SmearVertexZ(smearVertexZ); diff --git a/macro/run/modules/registerSetup.C b/macro/run/modules/registerSetup.C index 64eed8dc4df2a211649cd55fd94ed0f7753faa10..303771e1901ceb660262901bebfa3ebf228a1351 100644 --- a/macro/run/modules/registerSetup.C +++ b/macro/run/modules/registerSetup.C @@ -11,7 +11,6 @@ ** @date 5 February 2016 **/ - void registerSetup() { @@ -48,11 +47,28 @@ void registerSetup() // --- Register beam pipe if (setup->GetGeoFileName(ECbmModuleId::kPipe, fileName)) { + setup->GetGeoTag(ECbmModuleId::kPipe, geoTag); std::cout << "-I- registerSetup: Registering PIPE " << geoTag << " using " << fileName << std::endl; - FairModule* pipe = new CbmPipe("PIPE"); - pipe->SetGeometryFileName(fileName.Data()); - run->AddModule(pipe); + + // handle more than 1 beampipe; + FairModule* pipe; + int pipe_counter = 0; + char *file, *ptr; + file = (char*) malloc(500 * sizeof(char)); + strncpy(file, fileName.Data(), 500); + + do { + ptr = strchr(file, ':'); + pipe = new CbmPipe(); + if (ptr) *ptr = '\0'; + pipe->SetGeometryFileName(file); + std::cout << "Beampipe " << pipe_counter << " is " << file << std::endl; + pipe->SetTitle(("pipe" + std::to_string(pipe_counter)).c_str()); + run->AddModule(pipe); + pipe_counter++; + file = (ptr + 1); + } while (ptr); } // --- Register other modules