Modified 17.12.08 by M. Al-Turany The hit producing is added to the simulation session, so that the EmcHits are produced on the fly during the simulation 
Set the digitization parameters
Get the run time data base for this session and set the needed input
Parameters created for this simulation goes to the out put
Add Hit producer task to the simulation
Initialize the session
After initialization now we can save the field parameters
All parameters are initialized and ready to be saved 
Definition at line 9 of file emc_complete.C.
References Bool_t, boxGen, Cave, ctime, digiFile, Double_t, Emc, emcDigiFile, emcHdrFiller, emcHitProd, emcHitsToWaveform, emcMakeBump, emcMakeCluster, emcMakeRecoHit, emcWaveformToDigi, fField, fRun, gDebug, kParameterMerged, Magnet, nEvents, output, Par, parFile, parIo1, Pipe, primGen, printf(), rootlogon(), rtdb, rtime, PndEmc::SetGeometryVersion(), PndMultiFieldPar::SetParameters(), PndEmcMakeCluster::SetStorageOfData(), PndEmcHitsToWaveform::SetStorageOfData(), PndEmcMakeBump::SetStorageOfData(), PndEmcWaveformToDigi::SetStorageOfData(), PndEmcHitProducer::SetStorageOfData(), PndEmc::SetStorageOfData(), timer, and TString.
   15   gROOT->LoadMacro(
"$VMCWORKDIR/gconfig/rootlogon.C");
 
   18   FairRunSim *
fRun = 
new FairRunSim();
 
   27   fRun->SetName(
"TGeant3");
 
   30   fRun->SetOutputFile(
"emc_complete.root");
 
   35   emcDigiFile += 
"/macro/params/";
 
   38   FairRuntimeDb* 
rtdb = fRun->GetRuntimeDb();
 
   39   FairParAsciiFileIo* 
parIo1 = 
new FairParAsciiFileIo();
 
   40   parIo1->open(emcDigiFile.Data(),
"in");
 
   41   rtdb->setFirstInput(parIo1);        
 
   45   FairParRootFileIo* 
output=
new FairParRootFileIo(kParameterMerged);
 
   46   output->open(
"simparams.root");
 
   47   rtdb->setOutput(output);
 
   51   fRun->SetMaterials(
"media_pnd.geo");
 
   56   Cave->SetGeometryFileName(
"pndcave.geo");
 
   57   fRun->AddModule(Cave); 
 
   60   Magnet->SetGeometryFileName(
"magnet.geo");
 
   61   fRun->AddModule(Magnet);
 
   64   Pipe->SetGeometryFileName(
"pipe.geo");
 
   65   fRun->AddModule(Pipe);
 
   77   FairPrimaryGenerator* 
primGen = 
new FairPrimaryGenerator();
 
   78   fRun->SetGenerator(primGen);
 
   81   FairBoxGenerator* 
boxGen = 
new FairBoxGenerator(22, 5); 
 
   84   boxGen->SetPRange(1.,1.); 
 
   86   boxGen->SetPhiRange(0., 360.); 
 
   87   boxGen->SetThetaRange(0., 180.); 
 
   88   boxGen->SetXYZ(0., 0., 0.); 
 
   89   primGen->AddGenerator(boxGen);  
 
   95   fRun->SetField(fField);
 
  102   fRun->AddTask(emcHitProd);
 
  108   fRun->AddTask(emcHitsToWaveform);  
 
  109   fRun->AddTask(emcWaveformToDigi);  
 
  113   fRun->AddTask(emcMakeCluster);
 
  116   fRun->AddTask(emcHdrFiller); 
 
  120   fRun->AddTask(emcMakeBump);
 
  123   fRun->AddTask(emcMakeRecoHit);
 
  132   Par->setInputVersion(fRun->GetRunId(),1);
 
  147   printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
 
void SetStorageOfData(Bool_t val)
Method to specify whether clusters are stored or not. 
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
Create PndEmcRecoHit from PndEmcBump. 
PndEmcHitsToWaveform * emcHitsToWaveform
void SetParameters(FairField *field)
creates PndEmcHits from PndEmcPoints 
void SetStorageOfData(Bool_t val)
PndEmcMakeBump * emcMakeBump
FairParRootFileIo * output
FairPrimaryGenerator * primGen
PndEmcHdrFiller * emcHdrFiller
void SetStorageOfData(Bool_t val)
PndEmcMakeCluster * emcMakeCluster
virtual void SetGeometryVersion(const Int_t GeoNumber)
void SetStorageOfData(Bool_t val)
Method to specify whether bumps are stored or not. 
Takes clusters and slits them up into bumps. 
PndEmcWaveformToDigi * emcWaveformToDigi
FairParAsciiFileIo * parIo1
FairBoxGenerator * boxGen
Task to cluster PndEmcDigis. 
Task to create Emc header.