StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
bfcMixer_TpcSvt.C
1 //
3 // Macro for running chain with different inputs
4 //
5 // Owner: Yuri Fisyak
6 //
7 // $Id: bfcMixer_TpcSvt.C,v 1.7 2013/04/28 14:41:31 fisyak Exp $
8 //
10 
11 class StChain;
12 StChain *Chain=0;
13 class StBFChain;
14 StBFChain *chain1, *chain2, *chain3;
15 //_____________________________________________________________________
16 void bfcMixer_TpcSvt(const Int_t Nevents=100,Int_t isSvtIn=1, Int_t isSsdIn=0,
17  const Char_t *daqfile="/star/rcf/test/daq/2005/051/st_physics_adc_6051006_raw_1050001.daq",
18  const Char_t *tagfile="/star/rcf/test/embedding/cuProductionMinBias/FullField/P07ic/2005/051/st_physics_adc_6051006_raw_1050001.tags.root",
19  const Float_t zvertex_low=-175.0,
20  const Float_t zvertex_high=175.0,
21  const Char_t *mode="strange",
22  const Char_t *acc_mode="off") {
23  // production chain for P07ib
24  TString prodP07ib("P2005b DbV20070518 MakeEvent ITTF Iana ssddat spt SsdIt SvtIt pmdRaw SCEbyE OGridLeak OShortR OSpaceZ2");// KeepSvtHit hitfilt skip1row");
25  TString geomP07ib("ry2005f");
26  TString chain1Opt("in magF tpcDb NoDefault -ittf NoOutput");
27  TString chain2Opt("NoInput PrepEmbed gen_T geomT sim_T trs -ittf -tpc_daq nodefault");
28  chain2Opt += " "; chain2Opt += geomP07ib;
29  TString chain3Opt = prodP07ib;
30  chain3Opt += " TpcMixer Embedding onlraw GeantOut MiniMcMk McAna -in NoInput,useInTracker EmbeddingShortCut";
31  if (isSvtIn) chain3Opt += " SvtEmbed";
32  chain3Opt += " "; chain3Opt += geomP07ib;
33  // Dynamically link some shared libs
34  gROOT->LoadMacro("bfc.C");
35  if (gClassTable->GetID("StBFChain") < 0) Load();
36  //______________Create the main chain object______________________________________
37  Chain = new StChain("Embedding");
38  //________________________________________________________________________________
39  bfc(-1,chain1Opt,daqfile);
40  chain1 = chain;
41  chain1->SetName("One");
42  Chain->cd();
43  //________________________________________________________________________________
44  bfc(-1,chain2Opt);
45  chain2 = chain;
46  chain2->SetName("Two");
47  Chain->cd();
48  if (chain2->GetOption("TRS")){
49  StTrsMaker *trsMk = (StTrsMaker *) chain2->GetMaker("Trs");
50  if (! trsMk) {
51  cout << "Cannot find Trs in chain2" << endl;
52  return;
53  }
54  trsMk->setNormalFactor(2.67);
55  }
56  //________________________________________________________________________________
57  // gSystem->Load("StFtpcMixerMaker");
58  // StFtpcMixerMaker *ftpcmixer = new StFtpcMixerMaker("FtpcMixer","daq","trs");
59  //________________________________________________________________________________
60  TString OutputFileName(gSystem->BaseName(daqfile));
61  OutputFileName.ReplaceAll("*","");
62  OutputFileName.ReplaceAll(".daq","");
63  // OutputFileName.Append("_emb.root");
64  OutputFileName.Append(".root");
65  bfc(-1,chain3Opt,0,OutputFileName);
66  chain3 = chain;
67  chain3->SetName("Three");
68  Chain->cd();
69  Chain->cd();
70  //________________________________________________________________________________
71  {
72  TDatime t;
73  gMessMgr->QAInfo() << Form("Run is started at Date/Time %i/%i",t.GetDate(),t.GetTime()) << endm;
74  }
75  gMessMgr->QAInfo() << Form("Run on %s in %s",gSystem->HostName(),gSystem->WorkingDirectory()) << endm;
76  gMessMgr->QAInfo() << Form("with %s", Chain->GetCVS()) << endm;
77  // embedded particle set
78  StPrepEmbedMaker *embMk = (StPrepEmbedMaker *) Chain->Maker("PrepEmbed");
79  if (! embMk) return;
80  embMk->SetTagFile(tagfile);
81  // pTlow,ptHigh,etaLow,etaHigh,phiLow,phiHigh
82  embMk->SetOpt( 0.1, 5., -1.3, 1.3, 0., 6.28);
83  // pid, mult
84  embMk->SetPartOpt( 8,0.05);
85  TAttr::SetDebug(0);
86  Chain->SetAttr(".Privilege",0,"*" ); //All makers are NOT priviliged
87  Chain->SetAttr(".Privilege",1,"StBFChain::*" ); //StBFChain is priviliged
88  Chain->SetAttr(".Privilege",1,"StIOInterFace::*" ); //All IO makers are priviliged
89  Chain->SetAttr(".Privilege",1,"St_geant_Maker::*"); //It is also IO maker
90  Chain->SetAttr(".Privilege",1,"StPrepEmbedMaker::*"); //It is also IO maker
91  // Chain->SetDEBUG(0);
92  if (Nevents < 0) return;
93  Int_t iInit = Chain->Init();
94  if (iInit >= kStEOF) {Chain->FatalErr(iInit,"on init"); return;}
95  StMaker *treeMk = Chain->GetMaker("outputStream");
96  Chain->EventLoop(Nevents,treeMk);
97  gMessMgr->QAInfo() << "Run completed " << endm;
98  gSystem->Exec("date");
99 }
100 
101 
Prepare GEANT Maker with input from embedding settings and DAQ event.
Definition: Stypes.h:43
virtual Int_t Load()
Routine handling library loading depending on chain options.
Definition: StBFChain.cxx:117