//
// Macro to convert ITS local-coordinate points
// into globa lones
//
Int_t AliITSL2GConvertPointsV2
(const char* in_name = "ITS.RecPoints.root",
const char* out_name = "ITS.Neural.PointsV2.root", Int_t nev = 0)
{
TStopwatch timer;
// Open output file
TFile *in = new TFile(in_name);
TFile *out = new TFile(out_name, "recreate");
// Load event files
if (gAlice) {
delete AliRunLoader::Instance();
delete gAlice;
gAlice=0;
}
AliRunLoader* rl = AliRunLoader::Open("galice.root");
if (rl == 0x0) {
cerr << "AliITSL2GConvertPoints.C : Can not open session." << endl;
return 3;
}
Int_t retval = rl->LoadgAlice();
if (retval) {
cerr << "AliITSL2GConvertPoints.C : LoadgAlice returned error" << endl;
return 3;
}
gAlice=rl->GetAliRun();
AliITSLoader* gime = (AliITSLoader*)rl->GetLoader("ITSLoader");
if (gime == 0x0) {
cerr << "AliITSL2GConvertPoints.C : can not get ITS loader" << endl;
return 3;
}
AliITS *ITS = (AliITS*)gAlice->GetDetector("ITS");
if (!ITS) {
cerr << "AliITSL2GConvertPoints.C : AliITS object not found on file" << endl;
return 3;
} // end if !ITS
AliITSgeom *geom = (AliITSgeom*)ITS->GetITSgeom();
if(!geom) {
cerr << "AliITSL2GConvertPoints.C : AliITSgeom not found." << endl;
return 4;
} // end if
gime->LoadRecPoints("read");
rl->GetEvent(nev);
TTree *TR = gime->TreeR();
if (!TR) {
cerr << "AliITSL2GConvertPoints.C : Can't get the clusters tree." << endl;
return 4;
}
// Tree of recpoints
Int_t nModules = 0;
TTree *TR = (TTree*)in->Get(Form("Event%d/TreeR", nev));
nModules = (Int_t)TR->GetEntries();
if (!nModules) {
cout << "Empty TreeR!!!" << endl;
return;
}
timer.Start();
// Converts and stores the ITS points into global coordinate format
Int_t pos = 0;
AliITSRecPoint *local = 0;
AliITSNeuralPoint *global = 0;
TTree *TP = new TTree("TreeP", "Event points in global coords");
TP->Branch("pos", &pos, "pos/I");
TP->Branch("Points", "AliITSNeuralPoint", &global);
TObjArray *localArray = 0;
TR->SetBranchAddress("Clusters", &localArray);
Int_t module, layer, i, j, count, index;
Double_t locPos[3], globPos[3], locErr[3][3], globErr[3][3];
cout << geom->GetModuleIndex(1,1,1) << endl;
cout << geom->GetModuleIndex(2,1,1) << endl;
cout << geom->GetModuleIndex(3,1,1) << endl;
cout << geom->GetModuleIndex(4,1,1) << endl;
cout << geom->GetModuleIndex(5,1,1) << endl;
cout << geom->GetModuleIndex(6,1,1) << endl;
for(module = 0; module < nModules; module++) {
TR->GetEvent(module);
count = (Int_t)localArray->GetEntriesFast();
for (index = 0; index < count; index++) {
local = (AliITSRecPoint*)localArray->At(index);
cout << module << " - " << local->GetDetectorIndex() << endl;
global = new AliITSNeuralPoint(local, geom, module, index);
global->SetUser(-1);
global->ConfMap(0.0, 0.0);
TP->Fill();
pos++;
}
}
timer.Stop();
timer.Print();
cout << TP->GetEntries() << " points collected" << endl;
out->cd();
out->mkdir(Form("Event%d", nev));
out->cd(Form("Event%d", nev));
TP->Write(Form("TreeP", nev));
out->Close();
}
AliITSL2GConvertPointsV2.C:1 AliITSL2GConvertPointsV2.C:2 AliITSL2GConvertPointsV2.C:3 AliITSL2GConvertPointsV2.C:4 AliITSL2GConvertPointsV2.C:5 AliITSL2GConvertPointsV2.C:6 AliITSL2GConvertPointsV2.C:7 AliITSL2GConvertPointsV2.C:8 AliITSL2GConvertPointsV2.C:9 AliITSL2GConvertPointsV2.C:10 AliITSL2GConvertPointsV2.C:11 AliITSL2GConvertPointsV2.C:12 AliITSL2GConvertPointsV2.C:13 AliITSL2GConvertPointsV2.C:14 AliITSL2GConvertPointsV2.C:15 AliITSL2GConvertPointsV2.C:16 AliITSL2GConvertPointsV2.C:17 AliITSL2GConvertPointsV2.C:18 AliITSL2GConvertPointsV2.C:19 AliITSL2GConvertPointsV2.C:20 AliITSL2GConvertPointsV2.C:21 AliITSL2GConvertPointsV2.C:22 AliITSL2GConvertPointsV2.C:23 AliITSL2GConvertPointsV2.C:24 AliITSL2GConvertPointsV2.C:25 AliITSL2GConvertPointsV2.C:26 AliITSL2GConvertPointsV2.C:27 AliITSL2GConvertPointsV2.C:28 AliITSL2GConvertPointsV2.C:29 AliITSL2GConvertPointsV2.C:30 AliITSL2GConvertPointsV2.C:31 AliITSL2GConvertPointsV2.C:32 AliITSL2GConvertPointsV2.C:33 AliITSL2GConvertPointsV2.C:34 AliITSL2GConvertPointsV2.C:35 AliITSL2GConvertPointsV2.C:36 AliITSL2GConvertPointsV2.C:37 AliITSL2GConvertPointsV2.C:38 AliITSL2GConvertPointsV2.C:39 AliITSL2GConvertPointsV2.C:40 AliITSL2GConvertPointsV2.C:41 AliITSL2GConvertPointsV2.C:42 AliITSL2GConvertPointsV2.C:43 AliITSL2GConvertPointsV2.C:44 AliITSL2GConvertPointsV2.C:45 AliITSL2GConvertPointsV2.C:46 AliITSL2GConvertPointsV2.C:47 AliITSL2GConvertPointsV2.C:48 AliITSL2GConvertPointsV2.C:49 AliITSL2GConvertPointsV2.C:50 AliITSL2GConvertPointsV2.C:51 AliITSL2GConvertPointsV2.C:52 AliITSL2GConvertPointsV2.C:53 AliITSL2GConvertPointsV2.C:54 AliITSL2GConvertPointsV2.C:55 AliITSL2GConvertPointsV2.C:56 AliITSL2GConvertPointsV2.C:57 AliITSL2GConvertPointsV2.C:58 AliITSL2GConvertPointsV2.C:59 AliITSL2GConvertPointsV2.C:60 AliITSL2GConvertPointsV2.C:61 AliITSL2GConvertPointsV2.C:62 AliITSL2GConvertPointsV2.C:63 AliITSL2GConvertPointsV2.C:64 AliITSL2GConvertPointsV2.C:65 AliITSL2GConvertPointsV2.C:66 AliITSL2GConvertPointsV2.C:67 AliITSL2GConvertPointsV2.C:68 AliITSL2GConvertPointsV2.C:69 AliITSL2GConvertPointsV2.C:70 AliITSL2GConvertPointsV2.C:71 AliITSL2GConvertPointsV2.C:72 AliITSL2GConvertPointsV2.C:73 AliITSL2GConvertPointsV2.C:74 AliITSL2GConvertPointsV2.C:75 AliITSL2GConvertPointsV2.C:76 AliITSL2GConvertPointsV2.C:77 AliITSL2GConvertPointsV2.C:78 AliITSL2GConvertPointsV2.C:79 AliITSL2GConvertPointsV2.C:80 AliITSL2GConvertPointsV2.C:81 AliITSL2GConvertPointsV2.C:82 AliITSL2GConvertPointsV2.C:83 AliITSL2GConvertPointsV2.C:84 AliITSL2GConvertPointsV2.C:85 AliITSL2GConvertPointsV2.C:86 AliITSL2GConvertPointsV2.C:87 AliITSL2GConvertPointsV2.C:88 AliITSL2GConvertPointsV2.C:89 AliITSL2GConvertPointsV2.C:90 AliITSL2GConvertPointsV2.C:91 AliITSL2GConvertPointsV2.C:92 AliITSL2GConvertPointsV2.C:93 AliITSL2GConvertPointsV2.C:94 AliITSL2GConvertPointsV2.C:95 AliITSL2GConvertPointsV2.C:96 AliITSL2GConvertPointsV2.C:97 AliITSL2GConvertPointsV2.C:98 AliITSL2GConvertPointsV2.C:99 AliITSL2GConvertPointsV2.C:100 AliITSL2GConvertPointsV2.C:101 AliITSL2GConvertPointsV2.C:102 AliITSL2GConvertPointsV2.C:103 AliITSL2GConvertPointsV2.C:104 AliITSL2GConvertPointsV2.C:105 AliITSL2GConvertPointsV2.C:106 AliITSL2GConvertPointsV2.C:107 AliITSL2GConvertPointsV2.C:108 AliITSL2GConvertPointsV2.C:109 AliITSL2GConvertPointsV2.C:110 AliITSL2GConvertPointsV2.C:111 AliITSL2GConvertPointsV2.C:112