FairRoot/PandaRoot
Functions | Variables
lutaddbar.C File Reference

Go to the source code of this file.

Functions

int lutaddbar (TString inFile="lut_one_*.root", TString outFile="lut_all.root")
 
void adddirs (TString filename)
 

Variables

TClonesArray * fLutSum [5]
 

Function Documentation

void adddirs ( TString  filename)

Definition at line 59 of file lutaddbar.C.

References At, PndDrcLutNode::Entries(), f, fLutSum, PndDrcLutNode::GetDetectorId(), PndDrcLutNode::GetEntry(), PndDrcLutNode::GetPath(), PndDrcLutNode::GetPathId(), PndDrcLutNode::GetPos(), PndDrcLutNode::GetTime(), i, and t.

Referenced by lutaddbar().

59  {
60  TFile* f = new TFile(filename);
61  TTree *t=(TTree *) f->Get("dircsim") ;
62  TClonesArray* fLut[5];
63  for(Int_t l=0; l<5; l++){
64  fLut[l] = new TClonesArray("PndDrcLutNode");
65  t->SetBranchAddress(Form("LUT%d",l),&fLut[l]);
66  }
67  t->GetEntry(0);
68  std::cout<<filename<<" has "<<fLut[0]->GetEntriesFast()<< " entries" <<std::endl;
69  for(Int_t l=0; l<5; l++){
70  for (Int_t inode=0; inode<fLut[l]->GetEntriesFast(); inode++){
71  if(inode%10000==0) std::cout<<"Entry # "<< inode <<std::endl;
72  PndDrcLutNode *node= (PndDrcLutNode*) fLut[l]->At(inode);
73  for(int i=0; i< node->Entries(); i++){
74  ((PndDrcLutNode*)(fLutSum[l]->At(inode)))->AddEntry(node->GetDetectorId(), node->GetEntry(i),node->GetPath(i),node->GetPathId(i),node->GetTime(i),node->GetPos());
75  }
76  }
77  }
78 
79  f->Close();
80  return 0;
81 }
Int_t GetPathId(Int_t entry)
Definition: PndDrcLutNode.h:40
Int_t i
Definition: run_full.C:25
Double_t GetDetectorId()
Definition: PndDrcLutNode.h:37
Double_t GetPath(Int_t entry)
Definition: PndDrcLutNode.h:41
TFile * f
Definition: bump_analys.C:12
TVector3 GetEntry(Int_t entry)
Definition: PndDrcLutNode.h:39
TClonesArray * fLutSum[5]
Definition: lutaddbar.C:1
Double_t GetTime(Int_t entry)
Definition: PndDrcLutNode.h:42
Int_t Entries()
Definition: PndDrcLutNode.h:36
TTree * t
Definition: bump_analys.C:13
TVector3 GetPos()
Definition: PndDrcLutNode.h:43
cout<<"the Event No is "<< i<< endl;{{if(hit_array->GetEntriesFast()!=mc_array->GetEntriesFast()) continue;PndSdsHit *hit=(PndSdsHit *) hit_array-> At(j)
Definition: anaLmdCluster.C:71
const string filename
int lutaddbar ( TString  inFile = "lut_one_*.root",
TString  outFile = "lut_all.root" 
)

Definition at line 3 of file lutaddbar.C.

References adddirs(), ext, file, files, fLutSum, inFile, n, next, outFile, and TString.

3  {
4 
5  TTree *fTreeNew = new TTree("dircsim","Look-up table for DIRC");
6  for(Int_t l=0; l<5; l++){
7  fLutSum[l] = new TClonesArray("PndDrcLutNode");
8  fTreeNew->Branch(Form("LUT%d",l),&fLutSum[l],256000,0);
9  }
10 
11  Int_t Nnodes = 30000;
12  for(Int_t l=0; l<5; l++){
13  TClonesArray &fLutaSum = *fLutSum[l];
14  for (Long64_t n=0; n<Nnodes; n++) {
15  new((fLutaSum)[n]) PndDrcLutNode(-1);
16  }
17  }
18 
19  if(inFile.Contains("*")){
20  TString tname = inFile;
21  TString tname1 = inFile;
22  TString tname2 = inFile;
23  TString end = tname1.Remove(0,inFile.Last('*')+1);
24  TString start = tname2.Remove(inFile.Last('*'));
25 
26  TString dirname= tname.Remove(inFile.Last('/')) + "/";
27 
28  const char *ext=".root";
29  TSystemDirectory dir(dirname, dirname);
30  TList *files = dir.GetListOfFiles();
31  if (files) {
32  TSystemFile *file;
33  TString fname;
34  TIter next(files);
35  while ((file=(TSystemFile*)next())) {
36  fname = file->GetName();
37  if (!file->IsDirectory() && fname.EndsWith(ext)) {
38  TString path = dirname+fname;
39  TString substr = path.SubString(start);
40  if( substr.Length()>0 && path.EndsWith(end)){
41  adddirs(path);
42  }
43  }
44  }
45  }
46  }else{
47  adddirs(inFile);
48  }
49 
50  TFile *fFileNew = TFile::Open(outFile,"RECREATE");
51  fTreeNew->Fill();
52  fTreeNew->Write();
53  fFileNew->Write();
54  std::cout<<"File "<<outFile<<" was created." <<std::endl;
55 
56 }
TFile * file
TString outFile
Definition: hit_dirc.C:17
int n
std::map< int, TString > files
Definition: simubg.C:28
TString inFile
Definition: hit_dirc.C:8
TClonesArray * fLutSum[5]
Definition: lutaddbar.C:1
TNtuple * ext
Definition: reco_muo.C:24
void adddirs(TString filename)
Definition: lutaddbar.C:59
static int next[96]
Definition: ranlxd.cxx:374

Variable Documentation

TClonesArray* fLutSum[5]

Definition at line 1 of file lutaddbar.C.

Referenced by adddirs(), and lutaddbar().