cbm simulation & analysis framework geant3 / gean4 configuration

19
10.05.2004 CBM Software Meeting 1 CBM Simulation & Analysis CBM Simulation & Analysis Framework Framework Geant3 / Gean4 configuration Geant3 / Gean4 configuration M. Al-Turany, D. Bertini

Upload: uyen

Post on 14-Jan-2016

69 views

Category:

Documents


0 download

DESCRIPTION

CBM Simulation & Analysis Framework Geant3 / Gean4 configuration. M. Al-Turany, D. Bertini. MC configuration is user defined and done via ROOT macro Geant3 Config Macro: /macro/run/g3Config.C Control of the physical process Full Access to Geant 3 common blocks: /GCPHYS/ - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 1

CBM Simulation & Analysis FrameworkCBM Simulation & Analysis FrameworkGeant3 / Gean4 configurationGeant3 / Gean4 configuration

M. Al-Turany, D. Bertini

Page 2: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 2

Simulation Run configuration Simulation Run configuration

• MC configuration is user defined and done via ROOT macro

• Geant3 Config Macro:– <CBM_VMC>/macro/run/g3Config.C– Control of the physical process

• Full Access to Geant 3 common blocks:– /GCPHYS/– /GCUTS/– /GCKING/

• Geant4 Config Macro– <CBM_VMC>/macro/run/g4Config.C– Definition of physic list ( + intrinsic cuts )– Definition of user defined Geant4 “actions”

Page 3: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 3

g3Config.Cg3Config.C

void Config() {

TGeant3* geant3 = new TGeant3("C++ Interface to Geant3");

cout << "Geant3 has been created." << endl;

// ******* GEANT3 configuration for simulated Runs *******

geant3->SetTRIG(1); //Number of events to be processed

geant3->SetSWIT(4, 10);

geant3->SetDEBU(0, 0, 1);

geant3->SetAUTO(1); //Select automatic STMIN etc... calc. (AUTO 1) or manual (AUTO 0)

geant3->SetABAN(0); //Restore behaviour for abandoned tracks

Page 4: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 4

Physical processesPhysical processes

• Direct pair production, Bremsstrahlung and muon nuclear interaction geant3->SetPAIR(1);

geant3->SetBREM(1); geant3->SetMUNU(1);

• Multiple scattering is switched on with the following line: geant3->SetMULS(1); and can be switched of for test purposes: geant3->SetMULS(0);

• With the following line we chose energy loss with restricted fluctuations and delta-electron production above a threshold. geant3->SetLOSS(1); geant3->SetDRAY(1);

• For test runs you might want to use full Landau fluctuations without delta-ray production: geant3->SetLOSS(2);

• Or no fluctuations at all: geant3->SetLOSS(4);

Page 5: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 5

Physical processesPhysical processes

• For background simulations it is important to simulate all photon interactions: geant3->SetCOMP(1); geant3->SetPHOT(1); geant3->SetPAIR(1);

• and processes producing photons: geant3->SetANNI(1);

• If Decays of the vector mesons are performed at the generator level through an interface (PYTHIA/JETSET) it is then important to switch on particle decays by GEANT: geant3->SetDCAY(1);

• For the simulation of hadronic showers you can chose between: geant3->SetHADR(1);  //Select pure GEANH geant3->SetHADR(3);  // GEANH/NUCRIN geant3->SetHADR(4);  // FLUKA interface

Page 6: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 6

Kinetic CutsKinetic Cuts

The kinetic energy cuts for the various particle types are specified in the following line:

Float_t cut    = 1.e-3; // 1 MeV cut by default

Float_t tofmax = 1.e10;

// GAM  ELEC NHAD  CHAD MUON EBREM  MUHAB EDEL  MUDE MUPA  TOFMAX geant3->SetCUTS(cut, cut, cut, cut, cut, cut,   cut,  cut,  cut,  2.1e-3, tofmax);

Page 7: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 7

g4Config.Cg4Config.C

void Config() {

// RunConfiguration for Geant4 (std VMC)

// TG4RunConfiguration* runConfiguration

// = new TG4RunConfiguration();

CBMRunConfiguration* runConfiguration = new CBMRunConfiguration();

cout << "Geant4 has been created. 1 " << endl;

// TGeant4 instance

TGeant4* geant4 = new TGeant4("TGeant4", "The Geant4 Monte Carlo", runConfiguration);

// Customise Geant4 setting // (verbose level, global range cut, ..)

geant4->ProcessGeantMacro("g4config.in"); }

Page 8: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 8

g4Config.ing4Config.in

# Geant4 configuration macro for g4

# (called from Root macro Config.C)

#/process/eLoss/subsec false

#/process/eLoss/minsubsec 2 cm

# switch on/off B field

/mcDet/fieldType None

# Store or don't store secondaries

/mcTracking/saveSecondaries true

# use debug/verbosity mode

/mcVerbose/all 1

/mcVerbose/physicsList 2

/tracking/verbose 2

Page 9: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 9

Physical ProcessesPhysical Processes

# Special setting for the different physic list

#Special cuts “a la Geant3”

/mcPhysics/setSpecialCuts false

mcPhysics/printGeneralCuts true

#Switch on off physic list

/mcPhysics/setEM true

/mcPhysics/setMuon true

/mcPhysics/setHadron false

/mcPhysics/setOptical false

# cut in range ( 1 mm)

/mcPhysics/rangeCut 1.

/run/particle/dumpCutValues

Page 10: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 10

G4 Config via compiled codeG4 Config via compiled code

• CBMRunConfiguration class– Creates the mandatory Geant4 physic classes and the other

user action classes. – void CBMRunConfiguration::CreateUserConfiguration() – Gives user access to Stacking mechanism

• Can use the new Geant4 Packaging Physic Lists– Recommended compare to using physic list from Example

N04/N06 – Provide different models for hadronic interaction

• User can choose in the Educated Guess Physics Lists for Geant4 HADronic Physics :

• http://cmsdoc.cern.ch/~hpw/GHAD/HomePage/

Page 11: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 11

G4 Config via CBMRunConfigurationG4 Config via CBMRunConfiguration

void CBMRunConfiguration::CreateUserConfiguration() {// create mandatory Geant4 classes fDetectorConstruction = new TG4DetConstruction(); fSDConstruction = new TG4SDConstruction(); fPhysicsList = new TG4ModularPhysicsList(); fPrimaryGenerator = new TG4PrimaryGeneratorAction();

// create the other user action classes fRunAction = new TG4RunAction(); fEventAction = new TG4EventAction(); fTrackingAction = new TG4TrackingAction(); fSteppingAction = new TG4SteppingAction(); fStackingAction = new CBMSpecialStackingAction();

…. }

Page 12: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 12

G4 Config via CBMRunConfigurationG4 Config via CBMRunConfiguration

void CBMRunConfiguration::CreateUserConfiguration() {

… TG4ModularPhysicsList* tg4fPhysicsList = dynamic_cast<TG4ModularPhysicsList*>(fPhysicsList);

// take User physic definition

tg4fPhysicsList->SetDefaultCutValue(0.1*mm);

G4double mycut = 0.1*mm;

tg4fPhysicsList->SetRangeCut(mycut);

tg4fPhysicsList->SetVerboseLevel(6);

// Register user defined physics constructor

tg4fPhysicsList->RegisterPhysics( new GeneralPhysics("general")); // General Physics

tg4fPhysicsList->RegisterPhysics( new EMPhysics("standard EM")); // EM Physics

tg4fPhysicsList->RegisterPhysics( new MuonPhysics("muon")); // Muon Physics

tg4fPhysicsList->RegisterPhysics( new HadronPhysicsQGSP("hadron")); // Hadron Physics

tg4fPhysicsList->RegisterPhysics( new IonPhysics("ion")); // Ion Physics

Page 13: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 13

CBMStackingActionCBMStackingActionG4ClassificationOfNewTrack CBMSpecialStackingAction::ClassifyNewTrack ( const

G4Track *   track ) {// Classifies the new track. // --- G4ClassificationOfNewTrack classification; G4int parentID = track->GetParentID();if (parentID ==0) return fUrgent; else{ // exclude secondary neutrinos G4ParticleDefinition* particle = track->GetDefinition(); if( particle == G4NeutrinoE::NeutrinoEDefinition() || particle == G4NeutrinoMu::NeutrinoMuDefinition() || particle == G4NeutrinoTau::NeutrinoTauDefinition() || particle == G4AntiNeutrinoE::AntiNeutrinoEDefinition() || particle == G4AntiNeutrinoMu::AntiNeutrinoMuDefinition() || particle == G4AntiNeutrinoTau::AntiNeutrinoTauDefinition()) { return fKill; } return fWaiting; } …return classification;}

Page 14: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 14

CBM Simulation & Analysis FrameworkCBM Simulation & Analysis FrameworkMerging Transported EventMerging Transported Event

M. Al-Turany, D. Bertini

Page 15: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 15

Creating bkg+signal Creating bkg+signal

Run_all.CSTS

UrQmD Gen

UrQmDInput File

STSPoints

Bkg.root

TParticle

TTree

Run_all.CSTS

AscII Gen

ASCIIInput FileD0 signal

STSPoints

SigD0.root

TParticle

TTree

Page 16: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 16

Merging at MCPoint levelMerging at MCPoint level

STSPoints

Bkg.root

TParticle

TTree

STSPoints

SigD0.root

TParticle

TTreeSTSPoints

Bkg+SigD0.root

TParticle

TTree

Merging

Reindexing/evts of arrays needed CBMStack CBMSTSPoints

Page 17: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 17

CBMROOTManagerCBMROOTManager

Method to store TObjectRegister(name,folder,TObject* obj)Register(name,folder,TCollection* obj)

Input Data ManipulationAddFriend( )

AddAndMerge()

CBMRootManager

• Provide service for merging:– AddAndMerge(TFile *f); – isMerging => kTRUE

• Modify Event loop– Reading an Event calls

• Reindexation and merging of Particle Stack information from different CBMApplication

• Reindexation and merging of all TClonesArray at the MCPoint level for all Detectors stored in the CBMApplication

• Dispatch calls to the different CBMDetector::CopyClones(…) implementation

Method to access DataFrom file: ActivateBranch( brname)

From Memory: GetMergedObject( brname)

Page 18: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 18

Virtual CBMDetector::CopyClonesVirtual CBMDetector::CopyClones

void CBMTracker::CopyClones ( TClonesArray *cl_orig, TClonesArray* cl_merged, Int_t offset ){ Int_t entries = cl_orig->GetEntriesFast(); TClonesArray &clRef = *cl_merged; CBMSTSPoint *pts = NULL; // Reindex and add pointer to merged TClonesArray for (Int_t i=0;i< entries ; i++ ) { pts = (CBMSTSPoint *) cl_orig->At(i); Int_t index = pts->GetTrackID() + offset; pts->SetTrackID( index ); CBMSTSPoint* pt = new (clRef[pos] ) CBMSTSPoint( *pts ); pos++; }}

Page 19: CBM Simulation & Analysis Framework Geant3 / Gean4 configuration

10.05.2004 CBM Software Meeting 19

Macro for merging Macro for merging

// Load Libraries gROOT->LoadMacro("../basiclibs.C"); basiclibs(); gSystem->Load("libCbm"); gSystem->Load("libITrack");

CBMRun *fRun= new CBMRun(); fRun->SetInputFile("background_g3.root"); // merge now inputs at the MC Points fRun->AddAndMerge("signal_g3.root"); fRun->AddAndMerge("background_g3.root");

fRun->SetOutputFile("cbmout.root"); CBMITrack *it= new CBMITrack ("ITrack"); fRun->AddTask(it); fRun->LoadGeometry(); fRun->Init(); fRun->Run(3);