FairRoot/PandaRoot
Functions
QA/timeOrdered/run_reco.C File Reference
#include "../auxi.C"

Go to the source code of this file.

Functions

void deactivatePhiSplitter (FairTask *bumpSplitter)
 
int run_reco ()
 

Function Documentation

void deactivatePhiSplitter ( FairTask *  bumpSplitter)

Definition at line 5 of file QA/timeOrdered/run_reco.C.

Referenced by run_reco().

5  {
6  FairTask* phi_splitter= dynamic_cast<FairTask*>(bumpSplitter->GetListOfTasks()->FindObject("PndEmcPhiBumpSplitter"));
7  if(phi_splitter) {
8  cout << "Deactivating PhiBumpSplitter!" << endl;
9  phi_splitter->SetActive(kFALSE);
10  } else {
11  cout << "No PndEmcPhiBumpSplitter available" << endl;
12  }
13 }
int run_reco ( )

Definition at line 15 of file QA/timeOrdered/run_reco.C.

References allDigiFile, Bool_t, CloseGeoManager(), creator, ctime, deactivatePhiSplitter(), digiFile, Double_t, drchit, fRun, Geane, gemFindHits, inFile, iVerbose, mdtTrkProd, mvdmccls, nEvents, outFile, parFile, parInput1, parIo1, rtdb, rtime, PndSciTDigiTask::RunTimeBased(), PndSciTDigiTask::SetDeadTime(), PndSciTDigiTask::SetTimeResolution(), PndBlackBoxTask::SetVerbose(), PndEmcMakeCluster::StoreClusterBaseDigis(), timer, TString, and verbose.

16 {
17  // Macro created 20/09/2006 by S.Spataro
18  // It loads a simulation file and digitize hits
19 
20  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
21  Int_t iVerbose = 0; // just forget about it, for the moment
22 
23  // Input file (MC events)
24  TString inFile = "sim_complete.root";
25  Int_t nEvents = 0;
26 
27  PndFileNameCreator creator(inFile.Data());
28  TString parFile = creator.GetParFileName().c_str();
29  TString digiFile = creator.GetDigiFileName("timebased").c_str();
30  TString outFile = creator.GetRecoFileName("timebased").c_str();
31  std::cout << "DigiFileName: " << outFile.Data() << std::endl;
32  // Digitisation file (ascii)
33  TString paramFile = "all.par";
34  // ----- Timer --------------------------------------------------------
35  TStopwatch timer;
36 
37  // ----- Reconstruction run -------------------------------------------
38  FairRunAna *fRun= new FairRunAna();
39  fRun->SetInputFile(digiFile);
40  fRun->AddFriend(inFile);
41  fRun->SetOutputFile(outFile);
42  fRun->SetGenerateRunInfo(kFALSE);
43  fRun->RunWithTimeStamps();
44  fRun->SetUseFairLinks(kTRUE);
45 
46  FairGeane *Geane = new FairGeane();
47  fRun->AddTask(Geane);
48  // ----- Parameter database --------------------------------------------
49  TString allDigiFile = gSystem->Getenv("VMCWORKDIR");
50  allDigiFile += "/macro/params/";
51  allDigiFile += paramFile;
52 
53  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
54  FairParRootFileIo* parInput1 = new FairParRootFileIo();
55  parInput1->open(parFile.Data());
56 
57  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
58  parIo1->open(allDigiFile.Data(),"in");
59 
60  rtdb->setFirstInput(parInput1);
61  rtdb->setSecondInput(parIo1);
62 
63  // ----- MVD reco ---------------------------------
65  mvdmccls->SetVerbose(iVerbose);
66  fRun->AddTask(mvdmccls);
67 
68  // ----- EMC reco ---------------------------------
69  Int_t verbose = 0;
70  Bool_t storeclusters = kTRUE;
71  Bool_t storebumps = kTRUE;
72 
73  PndEmcMakeCluster* clusterTask = new PndEmcMakeCluster(verbose, storeclusters);
74  clusterTask->StoreClusterBaseDigis(kTRUE);
75  fRun->AddTask(clusterTask);
76 
77  //TODO: tasks needed due to limitiations in EmcCluster data class
78  //Removes multiple entries of same crystal in one cluster --> PndEmcCluster cannot handle this
80  clusterTask->Add(corrTask);
81  corrTask->SetActive(kTRUE);
82 
83  PndEmcMakeBump* bumperTask = new PndEmcMakeBump(verbose, storebumps);
84  fRun->AddTask(bumperTask);
85 
86  //PndEmcHdrFiller* emcHdrFiller = new PndEmcHdrFiller();
87  //fRun->AddTask(emcHdrFiller); // ECM header
88 
89  // ----- SciT hit producers ---------------------------
90  Double_t SciTDeadtime = 1000;
91  Double_t SciTdt = 0.1;
92 
93  PndSciTDigiTask* SciTDigi = new PndSciTDigiTask();
94  SciTDigi->SetVerbose(iVerbose);
95  SciTDigi->SetDeadTime(SciTDeadtime);
96  SciTDigi->SetTimeResolution(SciTdt);
97  SciTDigi->RunTimeBased();
98  fRun->AddTask(SciTDigi);
99 
100  // ----- MDT hit producers ---------------------------------
102  fRun->AddTask(mdtTrkProd);
103 
104  // ----- DRC hit producers ---------------------------------
106  drchit->SetVerbose(iVerbose);
107  fRun->AddTask(drchit);
108 
109  // ----- GEM hit producers ---------------------------------
110  PndGemFindHits* gemFindHits = new PndGemFindHits("GEM Hit Finder", iVerbose);
111  fRun->AddTask(gemFindHits);
112 
113 
114  // ----- Intialise and run --------------------------------------------
115  fRun->Init();
116 
117  deactivatePhiSplitter(bumperTask);
118 
119  timer.Start();
120  fRun->Run(0, nEvents);
121 
122  // ----- Finish -------------------------------------------------------
123  timer.Stop();
124  Double_t rtime = timer.RealTime();
125  Double_t ctime = timer.CpuTime();
126  cout << endl << endl;
127  cout << "Macro finished successfully." << endl;
128  cout << "Output file is " << outFile << endl;
129  cout << "Parameter file is " << parFile << endl;
130  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
131  cout << endl;
132  // ------------------------------------------------------------------------
133  cout << " Test passed" << endl;
134  cout << " All ok " << endl;
135 
136  CloseGeoManager();
137  return 0;
138 }
void deactivatePhiSplitter(FairTask *bumpSplitter)
PndGemFindHits * gemFindHits
void SetDeadTime(Double_t deadtime)
TString outFile
Definition: hit_dirc.C:17
#define verbose
TString digiFile
Definition: bump_emc.C:20
TString inFile
Definition: hit_dirc.C:8
PndMvdStripClusterTask * mvdmccls
Definition: runclust.C:45
TString allDigiFile
Definition: hit_muo.C:36
void CloseGeoManager()
Definition: QA/auxi.C:11
FairGeane * Geane
FairRunAna * fRun
Definition: hit_dirc.C:58
Task to remove duplicate crystals.
PndDrcHitProducerReal * drchit
Definition: hit_dirc_draw.C:73
A simple class which adds the corresponding file extensions to a given base class.
Double_t
void SetTimeResolution(Double_t dt)
TString parFile
Definition: hit_dirc.C:14
void StoreClusterBaseDigis(Bool_t val=kTRUE)
Method to specify whether underlying digis are stored or not.
Int_t nEvents
Definition: hit_dirc.C:11
TStopwatch timer
Definition: hit_dirc.C:51
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
Takes clusters and slits them up into bumps.
void SetVerbose(Int_t iVerbose)
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
Double_t ctime
Definition: hit_dirc.C:114
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
Task to cluster PndEmcDigis.
PndMvdCreateDefaultApvMap * creator
Int_t iVerbose
PndMdtTrkProducer * mdtTrkProd
Definition: hit_muo.C:166
Double_t rtime
Definition: hit_dirc.C:113