FairRoot/PandaRoot
runMvdTpcReco.C
Go to the documentation of this file.
1 {
2  // ========================================================================
3  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
4  Int_t iVerbose = 0;
5 
6  // Input file (MC events)
7 // TString MCFile = "Mvd_TestNewVersion.root";
8  // Parameter file
9 // TString parFile = "MvdParamsNewVersion.root";
10  // Parameter output file
11 // TString parOutFile = "MvdParamsNewVersion.root";
12  // Number of events to process
13  Int_t nEvents = 100;
14  // ---- Load libraries -------------------------------------------------
15 // gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
16  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
17  // ------------------------------------------------------------------------
18 
19  TString inFile="$SIMPATH/pandaroot/macro/data/MvdTpc_D+D-_2Disks/digiMVD/Combined.raw.root";
20  TString jobname="recoMVD";
21 
22  TString mcFile="$SIMPATH/pandaroot/macro/data/MvdTpc_D+D-_2Disks/Combined.mc.root";
23 
24  TString SIMPATH = gSystem->Getenv("SIMPATH");
25 
26  inFile.ReplaceAll("$SIMPATH",SIMPATH);
27  mcFile.ReplaceAll("$SIMPATH",SIMPATH);
28 
29  TString inDir=inFile(0,inFile.Last('/')+1);
30  // make new subdir
31  TString jobDir=inDir; jobDir+=jobname; jobDir+="/";
32  TString cmd="mkdir ";
33  cmd+=jobDir;
34  if(gSystem->Exec(cmd)){
35  std::cout<<"Could not create Job-Directory "<<jobDir
36  <<". Aborting."<<std::endl;
37  return;
38  }
39 
41  outFile.ReplaceAll(inDir,jobDir);
42  outFile.ReplaceAll(".raw.root",".reco.root");
43 
45  paramIn.ReplaceAll(".raw.root",".param.root");
47  paramOut.ReplaceAll(".reco.root",".param.root");
48 
49 /*
50  TString mcDir = inDir;
51  mcDir=mcDir(0,mcDir.Last('/')); // remove last /
52  mcDir=mcDir(0,mcDir.Last('/')+1); // one directory up
53  TString mcFile= inFile;
54  mcFile.ReplaceAll(inDir,mcDir);
55  mcFile.ReplaceAll(".raw.root",".mc.root");
56  */
57 
58  std::cout<<"Input: "<<inFile<<std::endl;
59  std::cout<<"Output: "<<outFile<<std::endl;
60  std::cout<<"MCFile: "<<mcFile<<std::endl;
61  std::cout<<"ParamIn: "<<paramIn<<std::endl;
62  std::cout<<"ParamOut: "<<paramOut<<std::endl;
63 
64  // --- Now choose concrete engines for the different tasks -------------
65  // ------------------------------------------------------------------------
66 
67 
68  // In general, the following parts need not be touched
69  // ========================================================================
70 
71 
72 
73 
74  // ----- Timer --------------------------------------------------------
75  TStopwatch timer;
76  timer.Start();
77  // ------------------------------------------------------------------------
78 
79 
80 
81  // ----- Reconstruction run -------------------------------------------
82  FairRunAna *fRun= new FairRunAna();
83 
84  fRun->SetInputFile(inFile);
85  fRun->AddFriend(mcFile);
86 
87  fRun->SetOutputFile(outFile);
88  // ------------------------------------------------------------------------
89 
90 
91 
92  // ----- Parameter database --------------------------------------------
93  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
94 
95  FairParRootFileIo* parInput1 = new FairParRootFileIo(kTRUE);
96  parInput1->open(paramIn.Data(),"UPDATE");
97 // FairParAsciiFileIo* parInput1 = new FairParAsciiFileIo();
98 // parInput1->open(parFile.Data(),"in");
99 
100  rtdb->setFirstInput(parInput1);
101 
102 
103 // fRun->LoadGeometry();
104 
105  // ------------------------------------------------------------------------
106 
107 
108 
109  // =========================================================================
110  // ====== Hit Producers ======
111  // =========================================================================
112 
113  // ----- MVD hit producer --------------------------------------------
114 
115 
118 
119  mvdmccls->SetVerbose(iVerbose);
120  fRun->AddTask(mvdmccls);
121 
123 
124  mvdClusterizer->SetVerbose(iVerbose);
125  fRun->AddTask(mvdClusterizer);
126 
127  FairParRootFileIo* output=new FairParRootFileIo(kTRUE);
128  output->open(paramOut.Data());
129  rtdb->setOutput(output);
130 // rtdb->setOutput(parInput1);
131  rtdb->print();
132  // ===== End of HitProducers =====
133  // =========================================================================
134 // PndMvdGeoPar* geoPar = (PndMvdGeoPar*)(rtdb->getContainer("PndMvdGeoPar"));
135 
136  // ----- Intialise and run --------------------------------------------
137  fRun->Init();
138 
139  fRun->Run(0,nEvents);
140  // ------------------------------------------------------------------------
141 
142 // rtdb->saveOutput();
143  // ----- Finish -------------------------------------------------------
144  timer.Stop();
145  Double_t rtime = timer.RealTime();
146  Double_t ctime = timer.CpuTime();
147  cout << endl << endl;
148  cout << "Macro finished succesfully." << endl;
149  cout << "Output file is " << outFile << endl;
150  cout << "Parameter file is " << paramOut << endl;
151  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
152  cout << endl;
153  // ------------------------------------------------------------------------
154 
155 
156 }
PndMvdPixelClusterTask * mvdClusterizer
Definition: runclust.C:50
TString outFile
Definition: hit_dirc.C:17
TString SIMPATH
Definition: runMvdTpcReco.C:24
Double_t chargecut
Definition: runclust.C:44
PndMvdStripClusterTask * mvdmccls
Definition: runclust.C:45
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
TString paramOut
Definition: runMvdTpcDigi.C:45
FairRunAna * fRun
Definition: hit_dirc.C:58
TString inFile
Definition: hit_dirc.C:8
Double_t
TString inDir
Definition: runMvdTpcDigi.C:28
Int_t nEvents
Definition: hit_dirc.C:11
TStopwatch timer
Definition: hit_dirc.C:51
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
TString jobDir
Definition: runMvdTpcDigi.C:30
TString mcFile
Definition: runMvdTpcReco.C:22
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
Double_t ctime
Definition: hit_dirc.C:114
TString cmd
Definition: runMvdTpcDigi.C:31
Int_t iVerbose
TString paramIn
Definition: runMvdTpcDigi.C:43
TString jobname
Definition: runMvdTpcDigi.C:26
Double_t rtime
Definition: hit_dirc.C:113