本文整理汇总了C++中TChain::GetFile方法的典型用法代码示例。如果您正苦于以下问题:C++ TChain::GetFile方法的具体用法?C++ TChain::GetFile怎么用?C++ TChain::GetFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TChain
的用法示例。
在下文中一共展示了TChain::GetFile方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: process
//.........这里部分代码省略.........
trig_L1emNonIso_rank_M_To[il1] = 0;
trig_L1emIso_ieta_M_To[il1] = 0;
trig_L1emIso_iphi_M_To[il1] = 0;
trig_L1emIso_rank_M_To[il1] = 0;
}
for(int isp=0 ; isp<5000 ; isp++) {
spike_outOfTime[isp] = -999;
spike_severityLevel[isp] = -999 ;
//spike_SwissCross[isp] = -999 ;
spike_Et[isp] = -999 ;
spike_phi[isp] = -999 ;
spike_eta[isp] = -999 ;
spike_theta[isp] = -999 ;
spike_TTiphi[isp] = -999 ;
spike_TTieta[isp] = -999 ;
spike_TT_t[isp] = -999 ;
spike_TT_tE[isp] = -999 ;
spike_TT_sFGVB[isp] = -999 ;
spike_TT_adc[isp] = -999 ;
spike_Riphi[isp] = -999 ;
spike_Rieta[isp] = -999 ;
for(int i=0;i<5;i++) {
spike_TT_sFGVB_E[isp][i] = -999 ;
spike_TT_adc_E[isp][i] = -999 ;
}
}
myChain->GetEntry (iEvent) ;
// show processed file
if(iEvent==0) {
filename = myChain->GetFile()->GetName() ;
outlog << "File : " << filename << endl << endl;
}
else if( filename != myChain->GetFile()->GetName() ) {
filename = myChain->GetFile()->GetName() ;
outlog << "File : " << myChain->GetFile()->GetName() << endl << endl;
}
// show current run/iCat processed
if(iEvent==0) {
nCurrentRun = nRun ;
outlog << "nRun=" << nRun << endl;
}
else if(nRun!=nCurrentRun) {
nCurrentRun=nRun ;
outlog << "nRun=" << nRun << endl;
}
if(debug) cout << "iJson = " << iJson << endl;
if( iJson>-1 && iJson<5) {
isGoodRun = AcceptEventByRunAndLumiSection(nRun, nLumi, jsonMap[iJson]);
if(!isGoodRun) {
outlog << "failed JSON" << endl;
continue;
}
}
// JSON selection ////////////////////////////////////////////
if(debug) cout << "iJson = " << iJson << endl;
if( iJson>-1 && iJson<5) {
isGoodRun = false;
isGoodRun = AcceptEventByRunAndLumiSection(nRun, nLumi, jsonMap[iJson]);
if(!isGoodRun) {
示例2: process
//.........这里部分代码省略.........
for (int iEvent = 0 ; iEvent < nProcess ; iEvent++ )
{
// HLT information
for(int i=0 ; i<4 ; i++)
trig_HLT_path[i]=0;
for(int i=0 ; i<250 ; i++)
trig_hltInfo[i]=0;
// TP Initialization
trig_tower_N = 0;
for(int iTow=0 ; iTow<nTow ; iTow++) {
trig_tower_ieta[iTow] = trig_tower_iphi[iTow] = -999;
trig_tower_adc[iTow] = trig_tower_sFGVB[iTow] = -999;
}
trig_tower_N_modif = 0;
for(int iTow=0 ; iTow<nTow ; iTow++) {
trig_tower_ieta_modif[iTow] = trig_tower_iphi_modif[iTow] = -999;
trig_tower_adc_modif[iTow] = trig_tower_sFGVB_modif[iTow] = -999;
}
trig_tower_N_emul = 0;
for(int iTow=0 ; iTow<nTow ; iTow++) {
trig_tower_ieta_emul[iTow] = trig_tower_iphi_emul[iTow] = -999;
for(int i=0 ; i<5 ; i++)
trig_tower_adc_emul[iTow][i] = trig_tower_sFGVB_emul[iTow][i] = -999;
}
myChain->GetEntry (iEvent) ;
// show processed file
if(iEvent==0) {
filename = myChain->GetFile()->GetName() ;
outlog << "File : " << filename << endl << endl;
}
else if( filename != myChain->GetFile()->GetName() ) {
filename = myChain->GetFile()->GetName() ;
outlog << "File : " << myChain->GetFile()->GetName() << endl << endl;
}
// show current run/iCat processed
if(iEvent==0) {
nCurrentRun = nRun ;
outlog << "nRun=" << nRun << endl;
}
else if(nRun!=nCurrentRun) {
nCurrentRun=nRun ;
outlog << "nRun=" << nRun << endl;
}
// // run selection (using both json files)
// //int iJson = detJson(nRun);
// //int iJson = 4;
// if(debug) cout << "iJson = " << iJson << endl;
// outlog << "iJson = " << iJson << endl;
// if( iJson>-1 && iJson<9) {
// isGoodRun = AcceptEventByRunAndLumiSection(nRun, nLumi, jsonMap[iJson]);
// if(!isGoodRun) {
// outlog << "failed JSON" << endl;
// continue;
// }
// }
// else {
// outlog << "no proper JSON file" << endl;
// //continue;
示例3: spikes_getContamFromMerged
//.........这里部分代码省略.........
trig_L1emNonIso_N = 0;
trig_L1emIso_N_M_To = 0;
trig_L1emNonIso_N_M_To = 0;
trig_L1emIso_N_To = 0;
trig_L1emNonIso_N_To = 0;
for(int il1=0 ; il1<4 ; il1++) {
trig_L1emIso_ieta[il1] = 0;
trig_L1emIso_iphi[il1] = 0;
trig_L1emIso_rank[il1] = 0;
trig_L1emNonIso_ieta[il1] = 0;
trig_L1emNonIso_iphi[il1] = 0;
trig_L1emNonIso_rank[il1] = 0;
trig_L1emIso_ieta_To[il1] = 0;
trig_L1emIso_iphi_To[il1] = 0;
trig_L1emIso_rank_To[il1] = 0;
trig_L1emNonIso_ieta_To[il1] = 0;
trig_L1emNonIso_iphi_To[il1] = 0;
trig_L1emNonIso_rank_To[il1] = 0;
trig_L1emNonIso_ieta_M_To[il1] = 0;
trig_L1emNonIso_iphi_M_To[il1] = 0;
trig_L1emNonIso_rank_M_To[il1] = 0;
trig_L1emIso_ieta_M_To[il1] = 0;
trig_L1emIso_iphi_M_To[il1] = 0;
trig_L1emIso_rank_M_To[il1] = 0;
}
myChain->GetEntry (iEvent) ;
// show processed file
if(iEvent==0) {
filename = myChain->GetFile()->GetName() ;
outlog << "File : " << filename << endl << endl;
}
else if( filename != myChain->GetFile()->GetName() ) {
filename = myChain->GetFile()->GetName() ;
outlog << "File : " << myChain->GetFile()->GetName() << endl << endl;
}
// show current run/iCat processed
if(iEvent==0) {
nCurrentRun = nRun ;
outlog << "nRun=" << nRun << endl;
}
else if(nRun!=nCurrentRun) {
nCurrentRun=nRun ;
outlog << "nRun=" << nRun << endl;
}
// HLT selection //
if(usr_hlt=="unbias")
if(trig_HLT_path[0]==0) continue;
// CHECK EG12 FIRED //
evt_trig_EG12=false;
for(int i=0 ; i<4 ; i++) {
if(trig_L1emIso_rank[i] >= 12) evt_trig_EG12=true;
if(trig_L1emNonIso_rank[i] >= 12) evt_trig_EG12=true;
}
if(!evt_trig_EG12) continue;
// EXTRACT CONTAMINATION //
//
spike_trig=spike_trig_M=0;
示例4: anaGeneralJF_mc
void anaGeneralJF_mc(
Int_t jetType=2, // 1 for genjet, 2 for recjet
Int_t particleType=2 // 0 for genp, 2 for trk
)
{
cout << "start " << endl;
gSystem->Load("libMathCore");
gSystem->Load("libPhysics");
TString version("v12");
Int_t treeFormat=-1,doJEC=-1;
TString fdataname,tag,algo;
TChain * tevt = 0, * tjet = 0, * tp=0;
// Inputs/Output
// data
treeFormat = 1; // 0 for jra, 1 for pfana
algo = "j1";
// === HI ===
//TChain * chain = new TChain("PFJetAnalyzer/t","");
//Bool_t useTrkQual = true;
TChain * chain = new TChain("t","");
chain->Add("/net/hisrv0001/home/mnguyen/scratch/InclusiveJetAnalyzer/310X/Pyquen_UnquenchedDiJet_Pt80_GEN-SIM-RECO_393_setX/HICorrJetTuples_PFTowers_hiGoodTightTracks/pthat80_HIEmbedded_EscaleRepass_set1.root");
chain->Add("/net/hisrv0001/home/mnguyen/scratch/InclusiveJetAnalyzer/310X/Pyquen_UnquenchedDiJet_Pt80_GEN-SIM-RECO_393_setX/HICorrJetTuples_PFTowers_hiGoodTightTracks/pthat80_HIEmbedded_EscaleRepass_set2.root");
chain->Add("/net/hisrv0001/home/mnguyen/scratch/InclusiveJetAnalyzer/310X/Pyquen_UnquenchedDiJet_Pt80_GEN-SIM-RECO_393_setX/HICorrJetTuples_PFTowers_hiGoodTightTracks/pthat80_HIEmbedded_EscaleRepass_set3.root");
chain->Add("/net/hisrv0001/home/mnguyen/scratch/InclusiveJetAnalyzer/310X/Pyquen_UnquenchedDiJet_Pt80_GEN-SIM-RECO_393_setX/HICorrJetTuples_PFTowers_hiGoodTightTracks/pthat80_HIEmbedded_EscaleRepass_set4.root");
tag = Form("trana%s_hydjuq80pfhgtv1repass_%s_j%dt%d_et90",version.Data(),algo.Data(),jetType,particleType);
cout << chain->GetFile()->GetName() << endl;
tevt = chain;
tjet = chain;
tp = chain;
cout << fdataname << " output: " << tag << endl;
cout << "Input: " << chain->GetName() << endl;
cout << " Jet: " << algo << endl;
cout << "Output: " << tag << endl;
// output
TFile * outf = new TFile(Form("ntout/%s.root",tag.Data()),"RECREATE");
// ana
GeneralJetFragAna jfana(algo);
jfana.evtTree_ = tevt;
jfana.jetTree_ = tjet;
jfana.doMC_ = true;
jfana.useTrkQual_ = false;
jfana.pTree_ = tp;
jfana.leadJetPtMin_=90;
jfana.jetEtaMax_ = 2;
jfana.pptMin_=-1;
jfana.treeFormat_=treeFormat; // 0 for jra, 1 for pftree
jfana.Init(jetType,particleType);
jfana.Loop();
// All done
outf->Write();
outf->Close();
}
示例5: EmcalJetCDF
//.........这里部分代码省略.........
// AliVEvent::EOfflineTriggerTypes kSel_tasks = mykMB;
AliVEvent::EOfflineTriggerTypes kSel_chg = static_cast<AliVEvent::EOfflineTriggerTypes>(arg_sel_chg);
AliVEvent::EOfflineTriggerTypes kSel_full = static_cast<AliVEvent::EOfflineTriggerTypes>(arg_sel_full);
//############################################################
// Analysis manager
AliAnalysisManager* pMgr = new AliAnalysisManager(cTaskName);
pMgr->SetDebugLevel(mgr_debug);
if ( kUseSysInfo > 0 ) { pMgr->SetNSysInfo ( kUseSysInfo ); }
// actual runName in the form of LHCXXX....
TString sRunName;
Bool_t kIsAOD = kTRUE;
AliAnalysisTaskEmcal::EDataType_t iDataType = AliAnalysisTaskEmcal::kAOD; // assuming default is to process AOD
TString file;
AliAnalysisAlien* plugin = NULL;
if ( ManagerMode == AnalysisType::grid ) { // start grid analysis
// ( const char* gridMode, const char* tag, unsigned int nr_test_files, unsigned int TTL, const char* outdir, const char subworkdir, const char* extradirlvl);
plugin = CreateAlienHandler(cGridMode, kJobTag.Data(), kGridFilesPerJob, kTTL);
if ( !plugin ) { ::Error ( "runEMCalJetSampleTask.C - StartGridAnalysis", "plugin invalid" ); return NULL; }
pMgr->SetGridHandler(plugin);
// use this command to run the macro
plugin->SetExecutableCommand(kPluginExecutableCommand.Data());
// AliPhysics version.
plugin->SetAliPhysicsVersion ( kAliPhysicsVersion.Data() ); // Here you can set the (Ali)PHYSICS version you want to use
gROOT->LoadMacro("InputData.C");
InputData(kGridDataSet);
sRunName = CDF::GetPeriod( plugin->GetGridDataDir() );
file = CDF::GetFileFromPath(plugin->GetDataPattern());
if (file.Contains("AliESD")) { iDataType = AliAnalysisTaskEmcal::kESD; kIsAOD = kFALSE; }
plugin->SetMergeExcludes(kGridMergeExclude.Data());
}
if ( ManagerMode == AnalysisType::local ) { // start local analysis
if ( kDataSource.IsNull() ) { Printf("You need to provide the list of local files!"); return NULL; }
TChain* pChain = CDF::CreateChain(kDataSource.Data(), "auto", "", iNumFiles);
if (!pChain) { std::cout << ">>>>>>>>>>>>>> CHAIN NOT CREATED <<<<<<<<<<<<<<" << std::endl; return NULL; }
Printf("Setting local analysis for %d files from list %s, max events = %d", iNumFiles, kDataSource.Data(), iNumEvents);
// get the path of first file
file = pChain->GetFile()->GetEndpointUrl()->GetUrl();
sRunName = CDF::GetPeriod(file.Data()); // get the run name : first token beggining with lhc
if ( CDF::GetFileFromPath(file).Contains("AliESD") ) { iDataType = AliAnalysisTaskEmcal::kESD; kIsAOD = kFALSE; }
}
TString sDataType ("AOD");
if (!kIsAOD) { sDataType = "ESD"; }
std::cout << ">>> Analysis data type : " << sDataType.Data() << std::endl;
// name of de period (for MC is the name of "achored to" production)
TString sRunPeriod (cRunPeriod);
sRunPeriod.ToLower();
bool isMC = false;
isMC = CDF::PeriodIsMC(sRunName.Data());
// EMCAL corrections task configuration file
TString EMCALcfg ("CDF_CorrectionsConf.yaml");
if (isMC) {EMCALcfg = "CDF_MC_CorrectionsConf.yaml";}
示例6: mergeForest
void mergeForest(TString fname = "/data/jisun/temp/*.root",
TString outfile="/data/jisun/pp_2015_HeavyFlavor_AOD_tkpt1_D0pt1_eta2p5_D3d1_Prob0p05_1202.root",
bool failOnError = true)
{
// First, find on of the files within 'fname' and use it to make a
// list of trees. Unfortunately we have to know in advance at least
// one of the tree names. hiEvtAnalyzer/HiTree is a safe choice for
// HiForests. We also assume that every TTree is inside a
// TDirectoryFile which is in the top level of the root file.
TChain *dummyChain = new TChain("hltanalysis/HltTree");
dummyChain->Add(fname);
TFile *testFile = dummyChain->GetFile();
TList *topKeyList = testFile->GetListOfKeys();
std::vector<TString> trees;
std::vector<TString> dir;
for(int i = 0; i < topKeyList->GetEntries(); ++i)
{
TDirectoryFile *dFile = (TDirectoryFile*)testFile->Get(topKeyList->At(i)->GetName());
if(strcmp(dFile->ClassName(), "TDirectoryFile") != 0) continue;
TList *bottomKeyList = dFile->GetListOfKeys();
for(int j = 0; j < bottomKeyList->GetEntries(); ++j)
{
TString treeName = dFile->GetName();
treeName += "/";
treeName += bottomKeyList->At(j)->GetName();
TTree* tree = (TTree*)testFile->Get(treeName);
if(strcmp(tree->ClassName(), "TTree") != 0 && strcmp(tree->ClassName(), "TNtuple") != 0) continue;
trees.push_back(treeName);
dir.push_back(dFile->GetName());
}
}
testFile->Close();
delete dummyChain;
// Now use the list of tree names to make a new root file, filling
// it with the trees from 'fname'.
const int Ntrees = trees.size();
TChain* ch[Ntrees];
Long64_t nentries = 0;
for(int i = 0; i < Ntrees; ++i){
ch[i] = new TChain(trees[i]);
ch[i]->Add(fname);
std::cout << "Tree loaded : " << trees[i] << std::endl;
std::cout << "Entries : " << ch[i]->GetEntries() << std::endl;
// If the number of entries in this tree is different from other
// trees there is a problem. Quit and inform the user without
// producing output.
if(failOnError)
{
if(strcmp(trees[i],"HiForest/HiForestVersion") == 0) continue;
if(i == 0) nentries = ch[i]->GetEntries();
else if (nentries != ch[i]->GetEntries())
{
std::cout << "ERROR: number of entries in this tree does not match." << std::endl;
std::cout << "First inconsistent file: " <<ch[i]->GetFile()->GetName()<<std::endl;
std::cout << "Exiting. Please check input." << std::endl;
return;
}
}
else
{
std::cout << "WARN: error checking disabled" << std::endl;
}
}
TFile* file = new TFile(outfile, "RECREATE");
for(int i = 0; i < Ntrees; ++i)
{
file->cd();
std::cout << trees[i] << std::endl;
if (i==0)
{
file->mkdir(dir[i])->cd();
}
else
{
if ( dir[i] != dir[i-1] )
file->mkdir(dir[i])->cd();
else
file->cd(dir[i]);
}
ch[i]->Merge(file,0,"keep");
delete ch[i];
}
//file->Write();
file->Close();
std::cout << "Done. Output: " << outfile << std::endl;
}