-// Macro to perform ZDC reconstruction
-void ZDCDigits2Reco(Int_t nev=1)
+// ------------------------------------------------------------
+// Macro for ZDC reconstruction
+// ------------------------------------------------------------
+void ZDCDigits2Reco(Int_t totnev=1, const char *filedig="ZDCdigits.root",
+ const char *filerec="ZDCreco.root")
{
- delete gAlice;
- gAlice=0;
-// Dynamically link some shared libs
- if (gClassTable->GetID("AliRun") < 0) {
- gROOT->LoadMacro("loadlibs.C");
- loadlibs();
- }
+ delete gAlice;
+ gAlice=0;
+
+ // Dynamically link some shared libs
+ if (gClassTable->GetID("AliRun") < 0) {
+ gROOT->LoadMacro("loadlibs.C");
+ loadlibs();
+ }
-// Connect the Root Galice file containing Geometry, Kine, Hits and Digits
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (!file) {
+ // Connect the Root Galice file containing Geometry, Kine, Hits and Digits
+ TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
+ if (!file) {
printf("\n Creating galice.root \n");
- file = new TFile("galice.root","UPDATE");
- } else {
+ file = new TFile("galice.root");
+ } else {
printf("\n galice.root found in file list");
- }
-
-// Get AliRun object from file or create it if not on file
- if (!gAlice) {
- gAlice = (AliRun*)file->Get("gAlice");
- if (gAlice) printf("AliRun object found on file\n");
- if (!gAlice) {
- printf("\n create new gAlice object");
- gAlice = new AliRun("gAlice","Alice test program");
+ }
+
+ // Get AliRun object from file or create it if not on file
+ if (!gAlice) {
+ gAlice = (AliRun*)file->Get("gAlice");
+ if (gAlice) printf("AliRun object found on file\n");
+ if (!gAlice) {
+ printf("\n create new gAlice object");
+ gAlice = new AliRun("gAlice","Alice test program");
}
- }
-
- AliZDC *ZDC = (AliZDC*) gAlice->GetModule("ZDC");
- AliZDCMerger *merger = new AliZDCMerger();
- merger->SetMode(1);
- merger->SetBackgroundFileName("galice.root");
- ZDC->SetMerger(merger);
-
-// Loop over events to be reconstructed
- for(Int_t iev=0; iev<nev; iev++) {
- merger->SetBackgroundEventNum(iev);
- gAlice->Digits2Reco("ZDC");
- } // event loop
+ }
+ gAlice->SetTreeDFileName(filedig);
+ // File where SDigits and Digits Tree are written
+ TFile *file2 = gAlice->InitTreeFile("R",filerec);
+
+ AliZDC *ZDC = (AliZDC*) gAlice->GetModule("ZDC");
+ merger = new AliZDCMerger();
+ merger->SetMode(1);
+ merger->SetBackgroundFileName("galice.root");
+ ZDC->SetMerger(merger);
+ printf("\n AliZDCMerger set \n");
+
+ //
+ // Loop over events
+ //
+ for(Int_t iev=0; iev<totnev; iev++) {
+ gAlice->GetEvent(iev);
+ merger->SetBackgroundEventNum(iev);
+ printf(" iev = %d -> Background Event Num setted\n",iev);
+ gAlice->MakeTree("R",file2);
+ printf(" TreeR made\n");
+ ZDC->MakeBranch("R");
+ printf(" ZDC branch in TreeR made\n");
+ ZDC->Digits2Reco();
+ } // event loop
}
+
+
+
+
+
+
// mode = 1 -> Signal for spectators is added to the generated
// background and then the complete event is digitized
// ------------------------------------------------------------
-void ZDCHits2Digits(Int_t totnev, Int_t mode=1)
+void ZDCHits2Digits(Int_t totnev=1, const char *filedig="ZDCdigits.root", Int_t mode=1)
{
- delete gAlice;
- gAlice=0;
-// Dynamically link some shared libs
- if (gClassTable->GetID("AliRun") < 0) {
- gROOT->LoadMacro("loadlibs.C");
- loadlibs();
- }
+ delete gAlice;
+ gAlice=0;
+
+ // Dynamically link some shared libs
+ if (gClassTable->GetID("AliRun") < 0) {
+ gROOT->LoadMacro("loadlibs.C");
+ loadlibs();
+ }
-// Connect the Root Galice file containing Geometry, Kine, Hits and Digits
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
- if (!file) {
+ // Connect the Root Galice file containing Geometry, Kine, Hits and Digits
+ TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
+ if (!file) {
printf("\n Creating galice.root \n");
file = new TFile("galice.root");
- } else {
+ } else {
printf("\n galice.root found in file list");
- }
+ }
-// Get AliRun object from file or create it if not on file
- if (!gAlice) {
- gAlice = (AliRun*)file->Get("gAlice");
- if (gAlice) printf("AliRun object found on file\n");
- if (!gAlice) {
- printf("\n create new gAlice object");
- gAlice = new AliRun("gAlice","Alice test program");
+ // Get AliRun object from file or create it if not on file
+ if (!gAlice) {
+ gAlice = (AliRun*)file->Get("gAlice");
+ if (gAlice) printf("AliRun object found on file\n");
+ if (!gAlice) {
+ printf("\n create new gAlice object");
+ gAlice = new AliRun("gAlice","Alice test program");
}
- }
-
- AliZDCMerger *merger=0;
- AliZDC *ZDC = (AliZDC*) gAlice->GetModule("ZDC");
- if (ZDC && mode) {
- printf("\n Initializing AliZDCMerger\n");
- merger = new AliZDCMerger();
- merger->SetMode(mode);
- merger->SetBackgroundFileName("galice.root");
- ZDC->SetMerger(merger);
- }
-//
-// Loop over events
-//
- for(Int_t iev=0; iev<totnev; iev++) {
- if(mode){
- merger->SetBackgroundEventNum(iev);
- }
- gAlice->Hits2SDigits("ZDC");
- gAlice->SDigits2Digits("ZDC");
- } // event loop
+ }
+ // File where SDigits and Digits Tree are written
+ TFile *file2 = gAlice->InitTreeFile("SD", filedig);
+
+ AliZDC *ZDC = (AliZDC*) gAlice->GetModule("ZDC");
+ if (ZDC && mode) {
+ //printf("\n Initializing AliZDCMerger\n");
+ merger = new AliZDCMerger();
+ merger->SetMode(mode);
+ merger->SetBackgroundFileName("galice.root");
+ ZDC->SetMerger(merger);
+ }
+
+ //
+ // Loop over events
+ //
+ for(Int_t iev=0; iev<totnev; iev++) {
+ gAlice->GetEvent(iev);
+ if(mode){
+ merger->SetBackgroundEventNum(iev);
+ }
+ gAlice->MakeTree("S",file2);
+ gAlice->MakeTree("D",file2);
+ ZDC->MakeBranch("S");
+ ZDC->Hits2SDigits();
+ ZDC->MakeBranch("D");
+ ZDC->SDigits2Digits();
+ } // event loop
}
+
+
+
+
+
+