本文整理汇总了C++中TIter::Next方法的典型用法代码示例。如果您正苦于以下问题:C++ TIter::Next方法的具体用法?C++ TIter::Next怎么用?C++ TIter::Next使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TIter
的用法示例。
在下文中一共展示了TIter::Next方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AODmerge
//______________________________________________________________________________
void AODmerge()
{
// Merging method. No staging and no terminate phase.
TStopwatch timer;
timer.Start();
TString outputDir = "wn.xml";
TString outputFiles = VAR_AOD_MERGE_FILES;
TString mergeExcludes = "";
TObjArray *list = outputFiles.Tokenize(",");
TIter *iter = new TIter(list);
TObjString *str;
TString outputFile;
Bool_t merged = kTRUE;
while((str=(TObjString*)iter->Next())) {
outputFile = str->GetString();
// Skip already merged outputs
if (!gSystem->AccessPathName(outputFile)) {
printf("Output file <%s> found. Not merging again.",outputFile.Data());
continue;
}
if (mergeExcludes.Contains(outputFile.Data())) continue;
merged = AliAnalysisAlien::MergeOutput(outputFile, outputDir, 10, 0);
if (!merged) {
printf("ERROR: Cannot merge %s\n", outputFile.Data());
return;
}
}
// all outputs merged, validate
ofstream out;
out.open("outputs_valid_merge", ios::out);
out.close();
timer.Print();
}
示例2: QAmerge
void QAmerge(const char *suffix, const char *dir, Int_t stage)
{
// Merging method
TStopwatch timer;
timer.Start();
TString outputDir = dir;
TString outputFiles = Form("QAresults%s.root,EventStat_temp%s.root,RecoQAresults%s.root",suffix,suffix,suffix);
TString mergeExcludes = "";
TObjArray *list = outputFiles.Tokenize(",");
TIter *iter = new TIter(list);
TObjString *str;
TString outputFile;
Bool_t merged = kTRUE;
while((str=(TObjString*)iter->Next())) {
outputFile = str->GetString();
// Skip already merged outputs
if (!gSystem->AccessPathName(outputFile)) {
printf("Output file <%s> found. Not merging again.",outputFile.Data());
continue;
}
if (mergeExcludes.Contains(outputFile.Data())) continue;
merged = IlcAnalysisAlien::MergeOutput(outputFile, outputDir, 10, stage);
if (!merged && !outputFile.Contains("RecoQAresults")) {
printf("ERROR: Cannot merge %s\n", outputFile.Data());
return;
}
}
// read the analysis manager from file
if (!outputDir.Contains("Stage")) {
ofstream out;
out.open("outputs_valid", ios::out);
out.close();
return;
}
IlcAnalysisManager *mgr = IlcAnalysisManager::GetAnalysisManager();
mgr->SetRunFromPath(mgr->GetRunFromAlienPath(dir));
mgr->SetSkipTerminate(kFALSE);
if (!mgr->InitAnalysis()) return;
mgr->PrintStatus();
IlcLog::SetGlobalLogLevel(IlcLog::kError);
TTree *tree = NULL;
mgr->StartAnalysis("gridterminate", tree);
if (strlen(suffix)) {
if (gSystem->Exec(Form("mv trending.root trending%s.root", suffix)))
::Error("QAmerge", "File trending.root was not produced");
if (gSystem->Exec(Form("mv event_stat.root event_stat%s.root", suffix)))
::Error("QAmerge", "File trending.root was not produced");
}
ofstream out;
out.open("outputs_valid", ios::out);
out.close();
timer.Print();
}
示例3: InitChannels
void InitChannels(TTree *tree = (TTree*)gROOT->FindObjectAny("FragmentTree")) {
if(!tree)
return;
TList *list = tree->GetUserInfo();
TIter *iter = new TIter(list);
TChannel *chan = 0;
while(chan = (TChannel*)iter->Next()) {
TChannel *cur_chan = TChannel::GetChannel(chan->GetAddress());
TChannel::CopyChannel(cur_chan,chan);
}
}
示例4: QAmerge
void QAmerge(const char *dir, Int_t stage)
{
// Merging method
TStopwatch timer;
timer.Start();
TString outputDir = dir;
TString outputFiles = "QAresults.root,EventStat_temp.root";
TString mergeExcludes = "";
TObjArray *list = outputFiles.Tokenize(",");
TIter *iter = new TIter(list);
TObjString *str;
TString outputFile;
Bool_t merged = kTRUE;
while((str=(TObjString*)iter->Next())) {
outputFile = str->GetString();
// Skip already merged outputs
if (!gSystem->AccessPathName(outputFile)) {
printf("Output file <%s> found. Not merging again.",outputFile.Data());
continue;
}
if (mergeExcludes.Contains(outputFile.Data())) continue;
merged = AliAnalysisAlien::MergeOutput(outputFile, outputDir, 10, stage);
if (!merged) {
printf("ERROR: Cannot merge %s\n", outputFile.Data());
continue;
}
}
TString infolog = "fileinfo.log";
AliAnalysisAlien::MergeInfo(infolog, dir);
// read the analysis manager from file
if (!outputDir.Contains("Stage")) {
ofstream out;
out.open("outputs_valid", ios::out);
out.close();
return;
}
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
mgr->SetRunFromPath(mgr->GetRunFromAlienPath(dir));
mgr->SetSkipTerminate(kFALSE);
if (!mgr->InitAnalysis()) return;
mgr->PrintStatus();
AliLog::SetGlobalLogLevel(AliLog::kError);
TTree *tree = NULL;
gROOT->cd();
mgr->StartAnalysis("gridterminate", tree);
ofstream out;
out.open("outputs_valid", ios::out);
out.close();
timer.Print();
}
示例5: AODmerge
//______________________________________________________________________________
void AODmerge()
{
// Merging method. No staging and no terminate phase.
TStopwatch timer;
timer.Start();
TString outputDir = "wn.xml";
TString outputFiles = "EventStat_temp.root,AODQA.root,AliAOD.root,AliAOD.VertexingHF.root,AliAODGammaConversion.root,FilterEvents_Trees.root,AliAOD.Muons.root";
TString mergeExcludes = "";
TObjArray *list = outputFiles.Tokenize(",");
TIter *iter = new TIter(list);
TObjString *str;
TString outputFile;
Bool_t merged = kTRUE;
while((str=(TObjString*)iter->Next())) {
outputFile = str->GetString();
// Skip already merged outputs
if (!gSystem->AccessPathName(outputFile)) {
printf("Output file <%s> found. Not merging again.",outputFile.Data());
continue;
}
if (mergeExcludes.Contains(outputFile.Data())) continue;
merged = AliAnalysisAlien::MergeOutput(outputFile, outputDir, 10, 0);
if (!merged) {
printf("ERROR: Cannot merge %s\n", outputFile.Data());
continue;
}
}
// all outputs merged, validate
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
mgr->InitAnalysis();
mgr->SetGridHandler(new AliAnalysisAlien);
mgr->StartAnalysis("gridterminate",0);
ofstream out;
out.open("outputs_valid", ios::out);
out.close();
timer.Print();
}
示例6: iter
void
makeUnfoldingSystematicsComparisonPlots (int whichobservable, int whichjet, int whichlepton, int inclusive)
{
//Open the file and form the name
string fileSystematics;
string suffix="/gpfs/cms/data/2011/Systematics/postApproval_v58_Journal/";
//string suffix="/tmp/";
if (whichlepton==1) suffix=suffix+"ele/";
if (whichlepton==2) suffix=suffix+"muo/";
// setTDRStyle ();
gStyle->SetErrorX(0);
gStyle->SetPadGridX(0);
gStyle->SetPadGridY(0);
bool absoluteNormalization = true;
int lepton = 3; //1 -> electron, 2-> muon , 3 -> combined reults!
bool addLumiUncertainties = true;
double lumiError = 0.025;
int use_case = whichobservable;
int whichjet = whichjet;
string version = "_v2_32";
//string s = "/afs/infn.it/ts/user/marone/html/ZJets/FinalPlotsForAN/v41/SVDBayes/";
string s="/afs/infn.it/ts/user/marone/html/ZJets/FinalPlotsForAN/v58_Journal/UnfoldingSyst/ele/";
// string s = "/gpfs/cms/users/schizzi/EleMuComparisonPlots/PostUnfolding/";
string eleplotpath = "/gpfs/cms/users/schizzi/Systematics/ele/";
string muoplotpath = "/gpfs/cms/users/schizzi/Systematics/muo/";
gStyle->SetOptStat (0);
TCanvas *plots = new TCanvas ("plots", "EB", 200, 100, 600, 800);
//DATA:
//string elepathFile ="/gpfs/cms/data/2011/Unfolding/testReferenceMu.root";
//string muopathFile ="/gpfs/cms/data/2011/Unfolding/testMu.root";
string elepathFile ="/gpfs/cms/data/2011/Unfolding/UnfoldingOfficialV58_afterCWR.root";
string muopathFile ="/gpfs/cms/data/2011/Unfolding/UnfoldingOfficialV58_BinWidth.root";
string thirdpathFile ="/gpfs/cms/data/2011/Unfolding/UnfoldingOfficialV58_SherpaV2.root";
if (whichlepton==2){
elepathFile ="/gpfs/cms/data/2011/Unfolding/UnfoldingOfficialV58_afterCWRMu.root";
muopathFile ="/gpfs/cms/data/2011/Unfolding/UnfoldingOfficialV58_BinWidthMu.root";
thirdpathFile ="/gpfs/cms/data/2011/Unfolding/UnfoldingOfficialV58_SherpaV2Mu.root";
s="/afs/infn.it/ts/user/marone/html/ZJets/FinalPlotsForAN/v58_Journal/UnfoldingSyst/muo/";
}
//string elepathFile ="/gpfs/cms/data/2011/Unfolding/UnfoldingOfficialV57_3NoSQRT.root";
//string muopathFile ="/gpfs/cms/data/2011/Unfolding/UnfoldingOfficialV57_3NoMCToy.root";
TFile *histof = TFile::Open (elepathFile.c_str ());
histof->cd ("");
TDirectory *dir = gDirectory;
TList *mylist = (TList *) dir->GetListOfKeys ();
TIter iter (mylist);
TObject *tobj = 0;
TFile *histof2 = TFile::Open (thirdpathFile.c_str ());
histof2->cd ("");
TDirectory *dir2 = gDirectory;
TList *mylist2 = (TList *) dir2->GetListOfKeys ();
TIter iter2 (mylist);
TObject *tobj2 = 0;
TFile *histofmuo = TFile::Open (muopathFile.c_str ());
string stringmatch;
string systPathFile;
string systPathFileMuo;
histof->cd ("");
int i = 0; // solo di servizio quando debuggo...
while ((tobj = iter.Next ()))
{
string name = tobj->GetName ();
if (use_case == 1)
{ // Jet Multiplicity
stringmatch = "JetMultiplicityUnfolded";
systPathFile = eleplotpath + "systematicsEff_jetMult" + version + ".txt";
systPathFileMuo = muoplotpath + "systematicsEff_jetMult" + version + ".txt";
fileSystematics = suffix+"systematicsUnfReweight_jetMult" + version + ".txt";
}
if (use_case == 2)
{ // Jet Pt
if (whichjet == 1)
{
stringmatch = "jReco_leading";
systPathFile = eleplotpath + "systematicsEff_jet1Pt" + version + ".txt";
systPathFileMuo = muoplotpath + "systematicsEff_jet1Pt" + version + ".txt";
fileSystematics = suffix+"systematicsUnfReweight_jet1Pt" + version + ".txt";
}
if (whichjet == 2)
{
stringmatch = "jReco_subleading";
//.........这里部分代码省略.........
示例7: generateCodeFromStreamers
std::string generateCodeFromStreamers(std::string url, std::string treeLocation, std::vector<std::string> &classNames, std::string &errorMessage) {
TFile *tfile = TFile::Open(url.c_str());
if (tfile == nullptr || !tfile->IsOpen()) {
errorMessage = std::string("File not found: ") + url;
return std::string();
}
if (tfile->IsZombie()) {
errorMessage = std::string("Not a ROOT file: ") + url;
return std::string();
}
TTreeReader reader(treeLocation.c_str(), tfile);
if (reader.IsZombie()) {
errorMessage = std::string("Not a TTree: ") + treeLocation.c_str() + std::string(" in file: ") + url;
return std::string();
}
TTree *ttree = reader.GetTree();
std::set<std::string> includes;
std::vector<ClassStructure> classes;
TIter listOfBranches = ttree->GetListOfBranches();
for (TBranch *tbranch = (TBranch*)listOfBranches.Next(); tbranch != nullptr; tbranch = (TBranch*)listOfBranches.Next()) {
TClass *tclass = TClass::GetClass(tbranch->GetClassName());
if (tclass != nullptr && tbranch->GetListOfBranches()->GetEntries() > 0)
classesFromBranch(tbranch, tclass, classes, 0, includes);
}
for (int i = 0; i < classes.size(); i++)
classNames.push_back(classes[i].fullName);
tfile->Close();
std::string out;
for (std::set<std::string>::iterator iter = includes.begin(); iter != includes.end(); ++iter)
out += *iter + "\n";
out += "\n";
for (std::vector<ClassStructure>::iterator iter = classes.begin(); iter != classes.end(); ++iter) {
int i = 0;
for (; i < iter->splitName.size() - 1; i++)
out += std::string(i * 2, ' ') + "namespace " + iter->splitName[i] + " {\n";
out += std::string(i * 2, ' ') + "class " + iter->splitName.back() + ";\n";
i--;
for (; i >= 0; i--)
out += std::string(i * 2, ' ') + "}\n";
}
out += "\n";
for (std::vector<ClassStructure>::iterator iter = classes.begin(); iter != classes.end(); ++iter) {
int i = 0;
for (; i < iter->splitName.size() - 1; i++)
out += std::string(i * 2, ' ') + "namespace " + iter->splitName[i] + " {\n";
out += iter->cpp(i * 2) + "\n";
i--;
for (; i >= 0; i--)
out += std::string(i * 2, ' ') + "}\n";
}
for (std::vector<ClassStructure>::iterator iter = classes.begin(); iter != classes.end(); ++iter) {
int i = 0;
for (; i < iter->splitName.size() - 1; i++)
out += std::string(i * 2, ' ') + "namespace " + iter->splitName[i] + " {\n";
out += std::string(i * 2, ' ') + "ClassImp(" + iter->splitName.back() + ")\n";
i--;
for (; i >= 0; i--)
out += std::string(i * 2, ' ') + "}\n";
}
return out;
}
示例8: classesFromBranch
void classesFromBranch(TBranch *tbranch, TClass *tclass, std::vector<ClassStructure> &classes, int prefix, std::set<std::string> &includes) {
std::string className = tclass->GetName();
if (className == std::string("TObject"))
includes.insert("#include \"TObject.h\"");
else if (className == std::string("TRef"))
includes.insert("#include \"TRef.h\"");
else if (className == std::string("TRefArray"))
includes.insert("#include \"TRefArray.h\"");
else if (className == std::string("TH1"))
includes.insert("#include \"TH1.h\"");
else if (className == std::string("TBits")) {
includes.insert("#include \"TBits.h\"");
}
else {
bool classSeen = false;
for (int i = 0; i < classes.size(); i++)
if (classes[i].fullName == className)
classSeen = true;
if (!classSeen) {
TVirtualStreamerInfo *tVirtualStreamerInfo = tclass->GetStreamerInfo();
int version = tVirtualStreamerInfo->GetClassVersion();
ClassStructure classStructure(tclass, version);
if (tVirtualStreamerInfo->GetElements()->GetEntries() == 1 &&
((TStreamerElement*)(tVirtualStreamerInfo->GetElements()->First()))->IsBase() &&
std::string(tVirtualStreamerInfo->GetElements()->First()->GetName()) == std::string("TObjArray")) {
TVirtualStreamerInfo *substreamer = ((TBranchElement*)tbranch)->GetInfo();
if (std::string(substreamer->GetName()) == std::string("TClonesArray")) {
ROOT::Internal::TTreeGeneratorBase ttreeGenerator(tbranch->GetTree(), "");
TString className = ttreeGenerator.GetContainedClassName((TBranchElement*)tbranch, (TStreamerElement*)(substreamer->GetElements()->First()), true);
classesFromBranch(tbranch, TClass::GetClass(className), classes, prefix + std::string(tbranch->GetName()).size() + 1, includes);
}
}
TIter elements = tVirtualStreamerInfo->GetElements();
for (TStreamerElement *tStreamerElement = (TStreamerElement*)elements.Next(); tStreamerElement != nullptr; tStreamerElement = (TStreamerElement*)elements.Next()) {
std::string streamerName = tStreamerElement->GetName();
if (tStreamerElement->IsBase()) {
TClass *elementClass = tStreamerElement->GetClassPointer();
std::string type = elementClass->GetName();
if (type == std::string("TObject")) {
classStructure.bases.push_back(type);
includes.insert(std::string("#include \"") + type + std::string(".h\""));
}
}
else {
TIter listOfBranches = tbranch->GetListOfBranches();
TBranch *subbranch;
for (subbranch = (TBranch*)listOfBranches.Next(); subbranch != nullptr; subbranch = (TBranch*)listOfBranches.Next()) {
std::string branchName = subbranch->GetName();
branchName = branchName.substr(prefix, std::string::npos);
int firstDot = branchName.find('.');
int firstBracket = branchName.find('[');
if (firstDot != std::string::npos && firstBracket != std::string::npos)
branchName = branchName.substr(0, firstDot < firstBracket ? firstDot : firstBracket);
else if (firstDot != std::string::npos)
branchName = branchName.substr(0, firstDot);
else if (firstBracket != std::string::npos)
branchName = branchName.substr(0, firstBracket);
if (branchName == streamerName)
break;
}
if (subbranch == nullptr)
continue;
std::string branchName = subbranch->GetName();
std::string variable = tStreamerElement->GetName();
std::string variableWithArray = subbranch->GetName();
variableWithArray = variableWithArray.substr(prefix, std::string::npos);
variableWithArray = variableWithArray.substr(0, variableWithArray.find('.'));
std::string comment = tStreamerElement->GetTitle();
std::string type;
Bool_t pointer = false;
switch (tStreamerElement->GetType()) {
case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kBool:
pointer = true;
case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kBool:
case TVirtualStreamerInfo::kBool:
type = "Bool_t";
break;
case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kChar:
pointer = true;
case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kChar:
case TVirtualStreamerInfo::kChar:
type = "Char_t";
break;
//.........这里部分代码省略.........