FairRoot/PandaRoot
printsttcoords.C
Go to the documentation of this file.
1 #include "TStopwatch.h"
2 #include "TTree.h"
3 #include "TFile.h"
4 #include "TClonesArray.h"
5 #include "basefunctions.hxx"
6 //#include "FairRunAna.h"
7 //#include "FairParRootFileIo.h"
8 //#include "FairRuntimeDb.h"
9 //#include "PndSttTrackFinderReal.h"
10 //#include "PndMCTrack.h"
11 //#include "PndSttHit.h"
12 //#include "PndTrack.h"
13 
14 // xy-projection of time-based MVD and STT Hits
15 // m.mertens@fz-juelich.de
16 
18  gROOT->Reset();
19  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
20  Int_t iVerbose = 0;
21 
22  TStopwatch timer;
23  timer.Start();
24  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
25  rootlogon();
26  //gSystem->Load("libSttMvdTracking");
27 
28  TString simFileName = "Sim_Dpm_500.root";
29  TString parFileName = "Sim_Dpm_500_params.root";
30  TString digiFileName = "Sim_Dpm_500_digi.root";
31  //TString recoFileName = "Sim_Dpm_500_reco.root";
32  TString outFileName = "Sim_Dpm_500_printsttcoords.root";
33 
34  TFile filedigi(digiFileName.Data());
35  //TFile filereco(recoFileName.Data());
36 
37  TTree *treedigi = (TTree*) filedigi.Get("pndsim");
38  TClonesArray *sttsortedhits = new TClonesArray("PndSttHit");
39  treedigi->SetBranchAddress("STTSortedHits",&sttsortedhits);
40 
41  FairRunAna *fRun= new FairRunAna();
42  fRun->SetInputFile(simFileName.Data());
43  //fRun->AddFriend(recoFile.Data());
44  fRun->AddFriend(digiFileName.Data());
45  //fRun->AddFriend(trackF.Data());
46  fRun->SetOutputFile(outFileName.Data());
47  //fRun->RunWithTimeStamps();
48  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
49  FairParRootFileIo* parInput1 = new FairParRootFileIo();
50  parInput1->open(parFileName.Data());
51  rtdb->setFirstInput(parInput1);
52 
53  //works around the "geometry not supported by map" error
55  PndSttFindTracks* sttFindTracks = new PndSttFindTracks("Track Finder", "FairTask", sttTrackFinder, iVerbose);
56  sttFindTracks->AddHitCollectionName("STTHit", "STTPoint");
57  //sttFindTracks->SetPersistence(kFALSE);
58  fRun->AddTask(sttFindTracks);
59  fRun->Init();
60  PndGeoSttPar* fSttParameters = (PndGeoSttPar*) rtdb->getContainer("PndGeoSttPar");
61  PndSttMapCreator* mapper = new PndSttMapCreator(fSttParameters);
62  TClonesArray* tubearray = mapper->FillTubeArray();
63 
64  PrintSttStats(tubearray);
65 
66  /*
67  for (Int_t entrynumber = 0; entrynumber < treedigi->GetEntriesFast(); entrynumber++) {
68  treedigi->GetEntry(entrynumber);
69  for (Int_t clonesnumber = 0; clonesnumber < sttsortedhits->GetEntriesFast(); clonesnumber++) {
70  PndSttHit* myHit = (PndSttHit*) sttsortedhits->At(clonesnumber);
71  TVector3 hitPos;
72  myHit->Position(hitPos);
73  Int_t tubeID = myHit->GetTubeID();
74  PndSttTube* myTube = (PndSttTube*) tubearray->At(tubeID);
75  TVector3 tubePos = myTube->GetPosition();
76  cout << entrynumber << " " << clonesnumber << " " << myHit->GetTimeStamp() << " " << tubeID << " " << hitPos.X() << " " << hitPos.Y() << " - " << tubePos.X() << " " << tubePos.Y() << endl;
77  }
78  }
79  */
80  return 0;
81 }
int printsttcoords()
PndSttTrackFinderReal * sttTrackFinder
FairRunAna * fRun
Definition: hit_dirc.C:58
TTree * treedigi
TStopwatch timer
Definition: hit_dirc.C:51
TFile filedigi("testdigi.root")
PndSttFindTracks * sttFindTracks
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
TClonesArray * FillTubeArray()
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
Int_t iVerbose
void AddHitCollectionName(char *hitCollectionName, char *pointCollectionName)