#include <map>
#include "TKey.h"
#include <TROOT.h>
#include <TList.h>
#include <TTree.h>
#include <TFile.h>
#include <TChain.h>
#include "TChainElement.h"
#include <iostream>
#include "Log.hh"
#include "MicroException.hh"
#include <string>
#include "root/CaloRun.hh"
#include "root/CaloEvent.hh"
Include dependency graph for TChainExample.cpp:
Go to the source code of this file.
Functions | |
int | main (int argc, char **argv) |
int main | ( | int | argc, | |
char ** | argv | |||
) |
Definition at line 24 of file TChainExample.cpp.
00024 { 00025 00026 00027 TChain chain("T"); 00028 chain.Add("/lapp_data/LC/data/TB2012/SPS_H2_may_2012/Production/CaloHits/DHCAL_714372_DHCAL_714372_I0_0.CaloHit.root"); 00029 chain.Add("/lapp_data/LC/data/TB2012/SPS_H2_may_2012/Production/CaloHits/DHCAL_714372_DHCAL_714372_I1_0.CaloHit.root"); 00030 chain.Add("/lapp_data/LC/data/TB2012/SPS_H2_may_2012/Production/CaloHits/DHCAL_714372_DHCAL_714372_I2_0.CaloHit.root"); 00031 chain.Add("/lapp_data/LC/data/TB2012/SPS_H2_may_2012/Production/CaloHits/DHCAL_714372_DHCAL_714372_I3_0.CaloHit.root"); 00032 chain.Add("/lapp_data/LC/data/TB2012/SPS_H2_may_2012/Production/CaloHits/DHCAL_714372_DHCAL_714372_I4_0.CaloHit.root"); 00033 00034 TObjArray *fileElements=chain.GetListOfFiles(); 00035 TIter next(fileElements); 00036 TChainElement *chEl=0; 00037 while (( chEl=(TChainElement*)next() )) { 00038 TFile f(chEl->GetTitle()); 00039 00040 00041 TIter nextkey(f.GetListOfKeys()); 00042 TKey *key; 00043 while (key = (TKey*)nextkey()) 00044 { 00045 TTree *tree = (TTree*)key->ReadObj(); 00046 cout << tree->GetName() <<endl; 00047 CaloRun *run=NULL; 00048 try 00049 { 00050 run=dynamic_cast<CaloRun *>(tree->GetUserInfo()->First()); 00051 if ( run != NULL ) 00052 { 00053 cout << "Run Id: " << run->GetRunId() << endl ; 00054 } 00055 } 00056 catch (...) {} 00057 00058 CaloEvent *evt = new CaloEvent(); 00059 TBranch *branch= tree->GetBranch("CaloEvent"); 00060 branch->SetAddress(&evt); 00061 int nbEntries = tree->GetEntries(); 00062 cout << "Nb event:" << nbEntries << endl; 00063 00064 } 00065 } 00066 return 1; 00067 }