//
// This allows to check all possible combinations.
+struct XXX
+{
+ const char *bname;
+ const char *oname;
+ TBranch *branch;
+ AliESDVertex *vert;
+};
+
+XXX vvv[3] = {
+ { "VT", "PrimVertTracks" },
+ { "VTPC", "PrimVertTPC" },
+ { "VSPD", "PrimVertSPD" }
+};
void make_scan_results()
{
T = new TTree("SR", "Scanning results");
- TClonesArray* clones = new TClonesArray("AliESDtrack", 32);
- TBranch * tb = T->Branch("T", &clones);
+ TClonesArray* ts = new TClonesArray("AliESDtrack", 32);
+ TBranch * tb = T->Branch("T", &ts);
+ delete ts;
- AliMultiplicity *mult = 0;
- TBranch *mb = T->Branch("M", &mult);
+ AliMultiplicity *ms = 0;
+ TBranch *mb = T->Branch("M", &ms);
+ for (Int_t v = 0; v < 3; ++v)
+ {
+ vvv[v].vert = 0;
+ vvv[v].branch = T->Branch(vvv[v].bname, &vvv[v].vert);
+ }
for (Int_t i=0; i<=9999; ++i)
{
TString name;
name.Form("Tracks_%04d", i);
- TClonesArray* ts = (TClonesArray*) f->Get(name);
+ ts = (TClonesArray*) f->Get(name);
+ if (ts == 0)
+ continue;
name.Form("Tracklets_%04d", i);
- AliMultiplicity* ms = (AliMultiplicity*) f->Get(name);
+ ms = (AliMultiplicity*) f->Get(name);
+ if (ms == 0)
+ Error("make_scan_results", "'%s' not found.", name.Data());
- if (ts && ms)
- {
- tb->SetAddress(&ts);
- mb->SetAddress(&ms);
- T->Fill();
- }
- else if ((ts && !ms) || (!ts && ms))
+ tb->SetAddress(&ts);
+ mb->SetAddress(&ms);
+
+ for (Int_t v = 0; v < 3; ++v)
{
- Error("make_scan_results", "Only one of tracks/tracklets exists for index %d.", i);
+ name.Form("%s_%04d", vvv[v].oname, i);
+ vvv[v].vert = (AliESDVertex*) f->Get(name);
+ if (vvv[v].vert == 0)
+ Error("make_scan_results", "'%s' not found.", name.Data());
+ vvv[v].branch->SetAddress(&vvv[v].vert);
}
+ T->Fill();
+
+ delete ts;
+ delete ms;
+ for (Int_t v = 0; v < 3; ++v) delete vvv[v].vert;
}
T->Write();