本文整理汇总了C++中TObjArray::Delete方法的典型用法代码示例。如果您正苦于以下问题:C++ TObjArray::Delete方法的具体用法?C++ TObjArray::Delete怎么用?C++ TObjArray::Delete使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TObjArray
的用法示例。
在下文中一共展示了TObjArray::Delete方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tmp
/**
* Add distributions from other experiments to stacks
*
* @param name Name of current bin
* @param i Index of current bin
* @param sNN Center of mass energy
* @param allALICE Stack of ALICE data
* @param allCMS Stack of CMS data
* @param alice Possible ALICE result on return
* @param cms Possible CMS result on return
*/
void Other2Stack(const TString& name, Int_t i,
UShort_t sNN, TMultiGraph* allALICE, TMultiGraph* allCMS,
TGraph*& alice, TGraph*& cms)
{
if (!allALICE && !allCMS) return;
TString tmp(name);
tmp.ReplaceAll("p", "+");
tmp.ReplaceAll("m", "-");
tmp.ReplaceAll("_", " ");
tmp.ReplaceAll("d", ".");
TObjArray* tokens = tmp.Tokenize(" ");
if (!tokens || tokens->GetEntriesFast() < 2) {
Error("Other2Stack", "Failed to decode eta range from %s", name.Data());
if (tokens) tokens->Delete();
return;
}
Double_t eta1 = static_cast<TObjString*>(tokens->At(0))->String().Atof();
Double_t eta2 = static_cast<TObjString*>(tokens->At(1))->String().Atof();
tokens->Delete();
if (TMath::Abs(eta2+eta1) > 1e-3) {
// Not symmetric bin
// Info("Other2Stack", "bin [%f,%f] is not symmetric (%f)",
// eta1, eta2, TMath::Abs(eta2-eta1));
return;
}
Double_t aEta = TMath::Abs(eta1);
Int_t open, closed;
Double_t factor;
Float_t size;
BinAttributes(i, open, closed, size, factor);
if (allALICE) {
TGraphAsymmErrors* g = GetOther(1, aEta, sNN, factor);
if (g) {
g->SetMarkerStyle(closed);
g->SetMarkerColor(kColorALICE);
g->SetMarkerSize(size);
allALICE->Add(g, "p same");
alice = g;
}
}
if (allCMS) {
TGraphAsymmErrors* g = GetOther(0, aEta, sNN, factor);
if (g) {
g->SetMarkerStyle(closed);
g->SetMarkerColor(kColorCMS);
g->SetMarkerSize(size);
allCMS->Add(g, "p same");
cms = g;
}
}
}
示例2: OnCharacters
void TBDataParser::OnCharacters(const char *characters)
{
if(_currentElement != NULL && !strcmp(_currentElement->Data(),"vector")) {
TString *string = new TString(characters);
TObjArray *values = string->Tokenize(", ");
for(Int_t i = 0; i < values->GetEntries(); i++) {
TObjString *object = (TObjString *) values->At(i);
TString value = object->GetString().ReplaceAll("\n", "").ReplaceAll("\t", "").ReplaceAll(" ", "").ReplaceAll("\0", "");
if(value.IsFloat()) {
_vector->Fill(value.Atof());
}
}
if(_vectorsStack->GetEntries() == 1) {
_motherVecEntries = _vector->GetEntries();
} else if(_currentMethod != NULL && !strcmp(_currentMethod->Data(),"all")) {
for(Int_t i = 1; i < _motherVecEntries; i++) {
TObjString *object = (TObjString *) values->First();
TString value = object->GetString().ReplaceAll("\n", "").ReplaceAll("\t", "").ReplaceAll(" ", "").ReplaceAll("\0", "");
if(value.IsFloat())
_vector->Fill(value.Atof());
}
}
values->Delete();
}
}
示例3: getHistosFromRE
void getHistosFromRE(const string& mhid,
const string& filepath,
const string& sre,
vector<std::pair<string,wTH1*> >& v_wth1)
{
if (gl_verbose)
cout<<"Searching for regexp "<<sre<<" in "<<filepath;
// allow for multiple regexes in OR combination
//
vector<string> v_regexes;
Tokenize(sre,v_regexes,"|");
if (!v_regexes.size())
v_regexes.push_back(sre);
// Build validated TRegexp arguments in preparation for directory recursion
//
TObjArray *Args = new TObjArray();
for (size_t i=0; i<v_regexes.size(); i++) {
TRegexp re(v_regexes[i].c_str(),kTRUE);
if (re.Status() != TRegexp::kOK) {
cerr << "The regexp " << v_regexes[i] << " is invalid, Status() = ";
cerr << re.Status() << endl;
exit(-1);
}
else {
Args->AddLast(new TObjString(v_regexes[i].c_str()));
}
}
// Get the root file
//
TFile *rootfile = openRootFile(filepath);
if (!rootfile) {
cerr << "File failed to open, " << filepath << endl;
Args->Delete();
delete Args;
return;
}
// Do the recursion, collect matches
//
TObjArray *Matches = new TObjArray();
recurseDirs(rootfile, ®exMatchHisto, Args, Matches);
Args->Delete();
delete Args;
// Returns two objects per match:
// 1. the (string) path that was matched and
// 2. the object whose path matched
//
int nx2matches = Matches->GetEntriesFast();
if (gl_verbose) cout << "... " << nx2matches/2 << " match(es) found.";
// Add the matches to the global map of histos
//
int istart = v_wth1.size();
for (int i=0; i<nx2matches; i+=2) {
TString fullspec = ((TObjString *)(*Matches)[i])->GetString();
wTH1 *wth1 = new wTH1((TH1 *)((*Matches)[i+1]));
wth1->histo()->UseCurrentStyle();
wth1->histo()->SetLineColor(((i/2)%9)+1);
wth1->histo()->SetLineStyle((i/18)+1);
wth1->histo()->SetLineWidth(2);
wth1->SetLegendEntry(wth1->histo()->GetName());
string hidi= mhid+"_"+int2str(istart+(i/2));
v_wth1.push_back(std::pair<string,wTH1 *>(hidi,wth1));
//glmap_objpath2id.insert(pair<string,string>(fullspec,hidi));
glmap_id2histo.insert(pair<string,wTH1 *>(hidi,wth1));
glmap_id2objpath.insert(pair<string,string>(hidi,string(fullspec.Data())));
}
//Matches->Delete(); // need the histos!
delete Matches;
if (gl_verbose) cout << endl;
} // getHistosFromRE
示例4: compClusHitsMod2
//.........这里部分代码省略.........
int label = cl->GetLabel(0);
TParticle* part = 0;
if (label>=0 && (part=stack->Particle(label)) ) {
cSum.pdg = part->GetPdgCode();
cSum.eta = part->Eta();
cSum.pt = part->Pt();
cSum.phi = part->Phi();
cSum.prim = stack->IsPhysicalPrimary(label);
}
cSum.ntr = 0;
for (int ilb=0;ilb<3;ilb++) if (cl->GetLabel(ilb)>=0) cSum.ntr++;
for (int i=0;i<3;i++) cSum.xyz[i] = xyzClGloF[i];
//
trOut->Fill();
/*
if (clsize==5) {
printf("\nL%d(%c) Mod%d, Cl:%d | %+5.1f %+5.1f (%d/%d)|H:%e %e %e | C:%e %e %e\n",ilr,cl->TestBit(kSplit) ? 'S':'N',
modID,icl,(txyzH[0]-xyzClTr[0])*1e4,(txyzH[2]-xyzClTr[2])*1e4, row,col,
gxyzH[0],gxyzH[1],gxyzH[2],xyzClGlo[0],xyzClGlo[1],xyzClGlo[2]);
cl->Print();
pHit->Print();
//
double a0,b0,c0,a1,b1,c1,e0;
pHit->GetPositionL0(a0,b0,c0,e0);
pHit->GetPositionL(a1,b1,c1);
float cloc[3];
cl->GetLocalXYZ(cloc);
printf("LocH: %e %e %e | %e %e %e\n",a0,b0,c0,a1,b1,c1);
printf("LocC: %e %e %e | %e %e %e\n",cloc[0],cloc[1],cloc[2],xyzClTr[0],xyzClTr[1],xyzClTr[2]);
}
*/
//
}
}
}
// layerClus.Clear();
//
arrMCTracks.Delete();
}//event loop
//
DB.EndAndSort();
DB.SetThresholdCumulative(0.95);
cout << "Over threshold: : "<< DB.GetOverThr()<<endl;
DB.Grouping(10,10);
DB.PrintDB("Database1.txt");
flOut->cd();
trOut->Write();
delete trOut;
flOut->Close();
flOut->Delete();
DrawReport("clinfo.ps",&histoArr);
TFile* flDB = TFile::Open("TopologyDatabase.root", "recreate");
flDB->WriteObject(&DB,"DB","kSingleKey");
flDB->Close();
delete flDB;
TCanvas* cnv123 = new TCanvas("cnv123","cnv123");
cnv123->Divide(1,2);
cnv123->Print("anglesdistr.pdf[");
cnv123->cd(1);
hL0A->Draw();
cnv123->cd(2);
hL0B->Draw();
cnv123->Print("anglesdistr.pdf");
cnv123->cd(1);
hL1A->Draw();
cnv123->cd(2);
hL1B->Draw();
cnv123->Print("anglesdistr.pdf");
cnv123->cd(1);
hL2A->Draw();
cnv123->cd(2);
hL2B->Draw();
cnv123->Print("anglesdistr.pdf");
cnv123->cd(1);
hL3A->Draw();
cnv123->cd(2);
hL3B->Draw();
cnv123->Print("anglesdistr.pdf");
cnv123->cd(1);
hL4A->Draw();
cnv123->cd(2);
hL4B->Draw();
cnv123->Print("anglesdistr.pdf");
cnv123->cd(1);
hL5A->Draw();
cnv123->cd(2);
hL5B->Draw();
cnv123->Print("anglesdistr.pdf");
cnv123->cd(1);
hL6A->Draw();
cnv123->cd(2);
hL6B->Draw();
cnv123->Print("anglesdistr.pdf");
cnv123->Print("anglesdistr.pdf]");
//
}
示例5: parseTitle
TString parseTitle(TString l, unsigned int level=10){
// setup isobar dictionary key->tex
map<TString, TString> isobars;
isobars["pi+" ] = "\\pi^{+}";
isobars["pi-" ] = "\\pi^{-}";
isobars["pi+-" ] = "\\pi^{\\pm}";
isobars["pi-+" ] = "\\pi^{\\pm}";
isobars["sigma" ] = "\\sigma";
isobars["rho770" ] = "\\rho(770)";
isobars["a11269" ] = "a_{1}(1269)";
isobars["a21320" ] = "a_{2}(1320)";
isobars["rho1450" ] = "\\rho(1450)";
isobars["rho1600" ] = "\\rho(1600)";
isobars["rho1700" ] = "\\rho(1700)";
isobars["pi1300" ] = "\\pi(1300)";
isobars["pi1800" ] = "\\pi(1800)";
isobars["pi21670" ] = "\\pi_2(1670)";
isobars["f01370" ] = "f_{0}(1370)";
isobars["f01500" ] = "f_{0}(1500)";
isobars["f01700" ] = "f_{0}(1700)";
isobars["f11285" ] = "f_{1}(1285)";
isobars["f11420" ] = "f_{1}(1420)";
isobars["b11235" ] = "b_{1}(1235)";
isobars["b11800" ] = "b_{1}(1800)";
isobars["b11500" ] = "b_{1}(1500)";
isobars["f21270" ] = "f_{2}(1270)";
isobars["f21950" ] = "f_{2}(1950)";
isobars["f21565" ] = "f_{2}(1565)";
isobars["f21270" ] = "f_{2}(1270)";
isobars["f22010" ] = "f_{2}(2010)";
isobars["f11420" ] = "f_{1}(1420)";
isobars["eta1440" ] = "\\eta(1420)";
isobars["eta11600" ] = "\\eta_{1}(1600)";
isobars["eta21645"] = "\\eta_{2}(1645)";
isobars["rho31690"] = "\\rho_{3(1690)";
// remove file extension
l.Remove(l.Length() - 4);
// extract X quantum numbers
const TString head = l(0, 7);
const TString I = head(0, 1);
const TString G = head(1, 1);
const TString J = head(2, 1);
const TString P = head(3, 1);
const TString C = head(4, 1);
const TString M = head(5, 1);
const TString refl = head(6, 1);
l.Remove(0, 7);
// print X quantum numbers
stringstream res;
res << I << "^{" << G <<"}(" << J << "^{" << P << C << "}" << M << "^{" << refl << "})";
// tokenize input
TObjArray* tokens = l.Tokenize("_=");
int mode = 0;
unsigned int counter=0;
for (int i = 0; i < tokens->GetEntries(); ++i) {
const TString token = ((TObjString*)tokens->At(i))->GetString();
cerr << " " << mode << ": '" << token << "'" << endl;
if (mode == 0) { // isobar mode
if (isobars.find(token) != isobars.end())
res << isobars[token];
else
res << token;
res << " ";
// check which mode to switch to depending whether we get _ or =
l.Remove(0, token.Length());
if (l(0, 1) == "_")
mode = 1;
else
mode = 2;
} else if (mode == 1) { // ls mode
if (token.Length() == 1) // only l
res << "[" << token << "] ";
else
res << "\\left[#splitline{" << token(0, 1) << "}{"
<< token(1, 1) << "}\\right]";
l.Remove(0, token.Length());
mode = 0;
} else if (mode == 2) {
if(level<=counter) break;
++counter;
res << "\\rightarrow ";
if (isobars.find(token) != isobars.end())
res << isobars[token];
else
res << token;
res << " ";
l.Remove(0, token.Length());
if (l(0, 1) == "_" )
mode = 1;
else
mode = 2;
}
l.Remove(0, 1); // remove delimiter
}
res;
tokens->Delete();
//.........这里部分代码省略.........