26            TString DetOpt=
"MvdGem EmcBar Drc Dsc FwdSpec" )
 
   30         TLorentzVector 
fIni(0,0,Mom,0.938272+
sqrt(Mom*Mom+0.938272*0.938272));
 
   31         TDatabasePDG::Instance()->AddParticle(
"pbarpSystem",
"pbarpSystem",fIni.M(),kFALSE,0.1,0, 
"",88888);
 
   32         TDatabasePDG::Instance()->AddParticle(
"pbarpSystem0",
"pbarpSystem0",fIni.M(),kFALSE,0.1,0, 
"",88880);
 
   35         bool SwMvdGem  = 
false;
 
   36         bool SwEmcBar  = 
false;
 
   39         bool SwFwdSpec = 
false;
 
   41         if (DetOpt.Contains(
"MvdGem")  || DetOpt.Contains(
"1") ) SwMvdGem  = 
true;
 
   42         if (DetOpt.Contains(
"EmcBar")  || DetOpt.Contains(
"2") ) SwEmcBar  = 
true;
 
   43         if (DetOpt.Contains(
"Drc")     || DetOpt.Contains(
"3") ) SwDrc     = 
true;
 
   44         if (DetOpt.Contains(
"Dsc")     || DetOpt.Contains(
"4") ) SwDsc     = 
true;
 
   45         if (DetOpt.Contains(
"FwdSpec") || DetOpt.Contains(
"5") ) SwFwdSpec = 
true;
 
   48         Bool_t enableSplitoff  = 
false;  
 
   49         Bool_t mergeNeutrals   = 
false;  
 
   50         Bool_t electronBrems   = 
false;  
 
   51         Bool_t useEventFilter  = 
false;  
 
   54         TString BaseDir =  gSystem->Getenv(
"VMCWORKDIR");
 
   55         TString splitpars = BaseDir+
"/fsim/splitpars.dat";
 
   59         TString  OutputFile     = Prefix+
"_fast.root";
 
   63         Bool_t UseEvtGenDirect  = kTRUE;
 
   65         Bool_t UseBoxGenerator  = kFALSE;
 
   70                 UseEvtGenDirect = kFALSE;
 
   77                 UseEvtGenDirect = kFALSE;
 
   78                 UseBoxGenerator = kTRUE;
 
   97         FairRunSim *
fRun = 
new FairRunSim();
 
   98         fRun->SetOutputFile(OutputFile.Data());
 
   99         fRun->SetGenerateRunInfo(kFALSE);
 
  101         FairLogger::GetLogger()->SetLogToFile(kFALSE);
 
  106         FairPrimaryGenerator* 
primGen = 
new FairPrimaryGenerator();
 
  107         fRun->SetGenerator(primGen);
 
  108         fRun->SetName(
"TGeant3");
 
  112                 FairBoxGenerator* 
boxGen = 
new FairBoxGenerator(Pdgcode, 1); 
 
  113                 boxGen->SetPRange(MomMin,MomMax); 
 
  114                 boxGen->SetPhiRange(0., 360.); 
 
  115                 boxGen->SetThetaRange(0., 180.); 
 
  116                 boxGen->SetXYZ(0., 0., 0.); 
 
  117                 primGen->AddGenerator(boxGen);
 
  127                 primGen->AddGenerator(Dpm);
 
  133                 primGen->AddGenerator(EvtGen);
 
  137         primGen->DoTracking(kFALSE);
 
  141         fRun->SetField(fField);
 
  209                 fastSim->
AddDetector(
"ScSttAlone",  
"thtMin=145.  thtMax=159.5 ptmin=0.1 pmin=0.0 pRes=0.04 thtRes=0.006 phiRes=0.007 efficiency=0.25");
 
  210                 fastSim->
AddDetector(
"ScSttMvd",    
"thtMin=20.9  thtMax=145.  ptmin=0.1 pmin=0.0 pRes=0.02 thtRes=0.001 phiRes=0.001 efficiency=0.85");
 
  211                 fastSim->
AddDetector(
"ScSttMvdGem", 
"thtMin=7.8   thtMax=20.9  ptmin=0.1 pmin=0.0 pRes=0.02 thtRes=0.001 phiRes=0.001 efficiency=0.85");
 
  212                 fastSim->
AddDetector(
"ScMvdGem",    
"thtMin=5.    thtMax=7.8   ptmin=0.1 pmin=0.0 pRes=0.03 thtRes=0.001 phiRes=0.001 efficiency=0.60");
 
  217                 fastSim->
AddDetector(
"ScSttAlone",  
"thtMin=133.6 thtMax=159.5 ptmin=0.1 pmin=0.0 pRes=0.04 thtRes=0.006 phiRes=0.007 efficiency=0.25");
 
  218                 fastSim->
AddDetector(
"ScSttAlone2", 
"thtMin=20.9  thtMax=133.6 ptmin=0.1 pmin=0.0 pRes=0.04 thtRes=0.006 phiRes=0.007 efficiency=0.80");
 
  219                 fastSim->
AddDetector(
"ScSttAlone3", 
"thtMin=7.8   thtMax=20.9  ptmin=0.1 pmin=0.0 pRes=0.04 thtRes=0.006 phiRes=0.007 efficiency=0.25");
 
  224                 fastSim->
AddDetector(
"ScFts",       
"thtMin=0.    thtMax=5.    ptmin=0.0 pmin=0.5 pRes=0.05  thtRes=0.002 phiRes=0.002 efficiency=0.80");
 
  232                 fastSim->
AddDetector(
"ScVtxMvd",   
"thtMin=5. thtMax=145. ptmin=0.1 vtxRes=0.005 efficiency=1."); 
 
  233                 fastSim->
AddDetector(
"ScVtxNoMvd", 
"thtMin=0. thtMax=5.   ptmin=0.0 vtxRes=0.05  efficiency=1."); 
 
  237                 fastSim->
AddDetector(
"ScVtxNoMvd", 
"thtMin=0. thtMax=160. ptmin=0.1 vtxRes=0.1 efficiency=1."); 
 
  244         fastSim->
AddDetector(
"EmcFwCap", 
"thtMin=10.0 thtMax=22.0 Emin=0.01 dist=2.5");
 
  245         fastSim->
AddDetector(
"EmcBwCap", 
"thtMin=142.0 thtMax=160.0 Emin=0.01 dist=0.7");
 
  251                 fastSim->
AddDetector(
"EmcBarrel",
"thtMin=22.0 thtMax=142.0 Emin=0.01 barrelRadius=0.5");
 
  256                 fastSim->
AddDetector(
"EmcFS",    
"thtMin=0.05 thtMax=10.0 aPar=0.013 bPar=0.0283 Emin=0.01 dist=8.2");
 
  265         fastSim->
AddDetector(
"SttPid",
"thtMin=7.8 thtMax=159.5 ptmin=0.1 dEdxRes=0.15 efficiency=1.");
 
  266         fastSim->
AddDetector(
"ScMdtPidBarrel", 
"thtMin=10.0 thtMax=130.0 pmin=0.5 efficiency=0.95 misId=0.01");
 
  267         fastSim->
AddDetector(
"ScEmcPidFwCap",  
"thtMin=10.0  thtMax=22.0  ptmin=0.0 pmin=0.0 efficiency=1.0");
 
  268         fastSim->
AddDetector(
"ScEmcPidBwCap",  
"thtMin=142.0 thtMax=160.0  ptmin=0.0 pmin=0.0 efficiency=1.0");
 
  273                 fastSim->
AddDetector(
"MvdPid",
"thtMin=5.  thtMax=133.6 ptmin=0.1  dEdxResMulti=1. efficiency=1.");
 
  278                 fastSim->
AddDetector(
"ScEmcPidBarrel", 
"thtMin=22.0  thtMax=142.0 ptmin=0.2 pmin=0.0 efficiency=1.0");
 
  283                 fastSim->
AddDetector(
"DrcBarrel",
"thtMin=22.0 thtMax=140.0 dthtc=0.01 nPhotMin=5 effNPhotons=0.075");
 
  288                 fastSim->
AddDetector(
"DrcDisc",
"thtMin=5.0 thtMax=22.0 dthtc=0.01 nPhotMin=5 effNPhotons=0.075");
 
  293                 fastSim->
AddDetector(
"ScEmcPidFS",     
"thtMin=0.5   thtMax=10.0  ptmin=0.0 pmin=0.5 efficiency=1.0");
 
  294                 fastSim->
AddDetector(
"Rich",
"angleXMax=5.0 angleYMax=10.0 dthtc=0.01 nPhotMin=5 effNPhotons=0.075");
 
  295                 fastSim->
AddDetector(
"ScMdtPidForward",
"thtMin=0.0  thtMax=10.0  pmin=0.5 efficiency=0.95 misId=0.01");
 
  299         fRun->AddTask(fastSim);
 
  308         printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
 
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
friend F32vec4 sqrt(const F32vec4 &a)
bool AddDetector(std::string name, std::string params="")
void SetUseFlatCov(bool v=true)
FairPrimaryGenerator * primGen
void SetUnstable(int pdg)
bool MergeNeutralClusters(bool merge=true, double par=0.389)
void SetInvMassFilter(TString filter, double min, double max, int mult=1)
void SetStoreTree(Bool_t store=true)
void EnableElectronBremsstrahlung(bool brems=true)
bool EnableSplitoffs(std::string fname="splitpars.dat")
FairBoxGenerator * boxGen
void SetMultFilter(TString type, int min, int max=1000)
void SetVerbosity(int vb)
int simfast_opt(TString Prefix, TString Decfile, Float_t Mom, Int_t nEvents=1000, TString Resonance="pbarpSystem0", int Pdgcode=11, TString DetOpt="MvdGem EmcBar Drc Dsc FwdSpec")