TFile* AccessFile(TString inFile="galice.root", TString acctype="R");
void writeAR(TFile * fin, TFile *fou);
void AliITSSD2D(TString inFile, TString outFile);
void AliITSSDigits2DigitsDubna(TString inFile= "galiceS.root",
TString outFile = "galiceD.root"){
// This macro takes SDigits and produces Digits. No merging is done
// and only one galice.root file is used.
// Dynamically link some shared libs
TStopwatch timer;
if(gAlice){
delete gAlice;
gAlice = 0;
} // end if gAlice
cout << "Creating digits from summable digits for the ITS..." << endl;
AliITSSD2D(inFile,outFile);
timer.Stop();
timer.Print();
}
//______________________________________________________________________
void AliITSSD2D(TString inFile, TString outFile){
AliRunDigitizer * manager = new AliRunDigitizer(1,1);
char ftmp[50];
sprintf(ftmp,"%s",inFile.Data());
TFile *file0 = AccessFile(ftmp);
AliITS *ITS = (AliITS*)gAlice->GetDetector("ITS");
if (!ITS) {
cerr<<"AliITSHits2DigitsDefault.C : AliITS object not found on file"
<< endl;
return 3;
} // end if !ITS
if(!(ITS->GetITSgeom())){
cerr << " AliITSgeom not found. Can't digitize with out it." << endl;
return 4;
} // end if
// For old files, must change SPD noise.
AliITSresponseSPDdubna *resp0 = new AliITSresponseSPDdubna();
if(ITS->DetType(0)->GetResponseModel() !=0){
delete ((AliITSresponse*)ITS->DetType(0)->GetResponseModel());
ITS->DetType(0)->ResponseModel(0);
} // end if
ITS->DetType(0)->ResponseModel(resp0);
AliITSsegmentationSPD *seg0 = (AliITSsegmentationSPD*)ITS->DetType(0)->
GetSegmentationModel();
AliITSsimulationSPDdubna *sim0 = new AliITSsimulationSPDdubna(seg0,resp0);
if(ITS->DetType(0)->GetSimulationModel() !=0){
delete ((AliITSsimulation*)ITS->DetType(0)->GetSimulationModel());
ITS->DetType(0)->SimulationModel(0);
} // end if
ITS->DetType(0)->SimulationModel(sim0);
manager->SetInputStream(0,ftmp);
if(outFile != "")manager->SetOutputFile(outFile);
AliITSDigitizer *dITS = new AliITSDigitizer(manager);
manager->Exec("");
TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(inFile);
TFile *file2 = 0;
if(outFile != ""){
file2 = new TFile(outFile,"UPDATE");
writeAR(file,file2);
} // end if outFile!=""
delete manager;
if(file){
file->Write();
} // end if file
if(file2){
file2->Close();
delete file2;
} // end if file2
}
//______________________________________________________________________
TFile * AccessFile(TString FileName, TString acctype){
// Function used to open the input file and fetch the AliRun object
TFile *retfil = 0;
TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(FileName);
if (file) {file->Close(); delete file; file = 0;}
if(acctype.Contains("U")){
file = new TFile(FileName,"update");
}
if(acctype.Contains("N") && !file){
file = new TFile(FileName,"recreate");
}
if(!file) file = new TFile(FileName); // default readonly
if (!file->IsOpen()) {
cerr<<"Can't open "<<FileName<<" !" << endl;
return retfil;
}
// Get AliRun object from file or return if not on file
if (gAlice) {delete gAlice; gAlice = 0;}
gAlice = (AliRun*)file->Get("gAlice");
if (!gAlice) {
cerr << "AliRun object not found on file"<< endl;
return retfil;
}
return file;
}
//______________________________________________________________________
void writeAR(TFile * fin, TFile *fou) {
TDirectory *current = gDirectory;
TTree *Te;
TTree *TeNew;
AliHeader *alhe = new AliHeader();
Te = (TTree*)fin->Get("TE");
Te->SetBranchAddress("Header",&alhe);
Te->SetBranchStatus("*",1);
fou->cd();
TeNew = Te->CloneTree();
TeNew->Write(0,TObject::kOverwrite);
gAlice->Write(0,TObject::kOverwrite);
current->cd();
delete alhe;
cout<<"AliRun object written to file\n";
}
AliITSSDigits2DigitsDubna.C:1 AliITSSDigits2DigitsDubna.C:2 AliITSSDigits2DigitsDubna.C:3 AliITSSDigits2DigitsDubna.C:4 AliITSSDigits2DigitsDubna.C:5 AliITSSDigits2DigitsDubna.C:6 AliITSSDigits2DigitsDubna.C:7 AliITSSDigits2DigitsDubna.C:8 AliITSSDigits2DigitsDubna.C:9 AliITSSDigits2DigitsDubna.C:10 AliITSSDigits2DigitsDubna.C:11 AliITSSDigits2DigitsDubna.C:12 AliITSSDigits2DigitsDubna.C:13 AliITSSDigits2DigitsDubna.C:14 AliITSSDigits2DigitsDubna.C:15 AliITSSDigits2DigitsDubna.C:16 AliITSSDigits2DigitsDubna.C:17 AliITSSDigits2DigitsDubna.C:18 AliITSSDigits2DigitsDubna.C:19 AliITSSDigits2DigitsDubna.C:20 AliITSSDigits2DigitsDubna.C:21 AliITSSDigits2DigitsDubna.C:22 AliITSSDigits2DigitsDubna.C:23 AliITSSDigits2DigitsDubna.C:24 AliITSSDigits2DigitsDubna.C:25 AliITSSDigits2DigitsDubna.C:26 AliITSSDigits2DigitsDubna.C:27 AliITSSDigits2DigitsDubna.C:28 AliITSSDigits2DigitsDubna.C:29 AliITSSDigits2DigitsDubna.C:30 AliITSSDigits2DigitsDubna.C:31 AliITSSDigits2DigitsDubna.C:32 AliITSSDigits2DigitsDubna.C:33 AliITSSDigits2DigitsDubna.C:34 AliITSSDigits2DigitsDubna.C:35 AliITSSDigits2DigitsDubna.C:36 AliITSSDigits2DigitsDubna.C:37 AliITSSDigits2DigitsDubna.C:38 AliITSSDigits2DigitsDubna.C:39 AliITSSDigits2DigitsDubna.C:40 AliITSSDigits2DigitsDubna.C:41 AliITSSDigits2DigitsDubna.C:42 AliITSSDigits2DigitsDubna.C:43 AliITSSDigits2DigitsDubna.C:44 AliITSSDigits2DigitsDubna.C:45 AliITSSDigits2DigitsDubna.C:46 AliITSSDigits2DigitsDubna.C:47 AliITSSDigits2DigitsDubna.C:48 AliITSSDigits2DigitsDubna.C:49 AliITSSDigits2DigitsDubna.C:50 AliITSSDigits2DigitsDubna.C:51 AliITSSDigits2DigitsDubna.C:52 AliITSSDigits2DigitsDubna.C:53 AliITSSDigits2DigitsDubna.C:54 AliITSSDigits2DigitsDubna.C:55 AliITSSDigits2DigitsDubna.C:56 AliITSSDigits2DigitsDubna.C:57 AliITSSDigits2DigitsDubna.C:58 AliITSSDigits2DigitsDubna.C:59 AliITSSDigits2DigitsDubna.C:60 AliITSSDigits2DigitsDubna.C:61 AliITSSDigits2DigitsDubna.C:62 AliITSSDigits2DigitsDubna.C:63 AliITSSDigits2DigitsDubna.C:64 AliITSSDigits2DigitsDubna.C:65 AliITSSDigits2DigitsDubna.C:66 AliITSSDigits2DigitsDubna.C:67 AliITSSDigits2DigitsDubna.C:68 AliITSSDigits2DigitsDubna.C:69 AliITSSDigits2DigitsDubna.C:70 AliITSSDigits2DigitsDubna.C:71 AliITSSDigits2DigitsDubna.C:72 AliITSSDigits2DigitsDubna.C:73 AliITSSDigits2DigitsDubna.C:74 AliITSSDigits2DigitsDubna.C:75 AliITSSDigits2DigitsDubna.C:76 AliITSSDigits2DigitsDubna.C:77 AliITSSDigits2DigitsDubna.C:78 AliITSSDigits2DigitsDubna.C:79 AliITSSDigits2DigitsDubna.C:80 AliITSSDigits2DigitsDubna.C:81 AliITSSDigits2DigitsDubna.C:82 AliITSSDigits2DigitsDubna.C:83 AliITSSDigits2DigitsDubna.C:84 AliITSSDigits2DigitsDubna.C:85 AliITSSDigits2DigitsDubna.C:86 AliITSSDigits2DigitsDubna.C:87 AliITSSDigits2DigitsDubna.C:88 AliITSSDigits2DigitsDubna.C:89 AliITSSDigits2DigitsDubna.C:90 AliITSSDigits2DigitsDubna.C:91 AliITSSDigits2DigitsDubna.C:92 AliITSSDigits2DigitsDubna.C:93 AliITSSDigits2DigitsDubna.C:94 AliITSSDigits2DigitsDubna.C:95 AliITSSDigits2DigitsDubna.C:96 AliITSSDigits2DigitsDubna.C:97 AliITSSDigits2DigitsDubna.C:98 AliITSSDigits2DigitsDubna.C:99 AliITSSDigits2DigitsDubna.C:100 AliITSSDigits2DigitsDubna.C:101 AliITSSDigits2DigitsDubna.C:102 AliITSSDigits2DigitsDubna.C:103 AliITSSDigits2DigitsDubna.C:104 AliITSSDigits2DigitsDubna.C:105 AliITSSDigits2DigitsDubna.C:106 AliITSSDigits2DigitsDubna.C:107 AliITSSDigits2DigitsDubna.C:108 AliITSSDigits2DigitsDubna.C:109 AliITSSDigits2DigitsDubna.C:110 AliITSSDigits2DigitsDubna.C:111 AliITSSDigits2DigitsDubna.C:112 AliITSSDigits2DigitsDubna.C:113 AliITSSDigits2DigitsDubna.C:114 AliITSSDigits2DigitsDubna.C:115 AliITSSDigits2DigitsDubna.C:116 AliITSSDigits2DigitsDubna.C:117 AliITSSDigits2DigitsDubna.C:118