ROOT logo
////////////////////////////////////////////////////////////////////////
//
// name: AliPHOSHits2SDigits
// date: 4.4.2002
// last update: 4.4.2002
// author: Jiri Chudoba
// version: 1.0
//
// description: 
//       creates sdigits for digits for PHOS.
//       stores sdigits in separate file (or in the source file
//       with hits). Stores gAlice object and copies TE to the
//       file with sdigits.
//
// input:
//        TString fileNameHits ... input file with hits
//        TString fileNameSDigits ... output file with sdigits
//
// History:
//
// 04.04.02 - first version
// 
////////////////////////////////////////////////////////////////////////


Int_t AliPHOSHits2SDigits(TString
fileNameSDigits="PHOS.sdigits.root",TString fileNameHits="rfio:galice.root")

{
  TFile *fileSDigits;
  fileSDigits = Init(fileNameSDigits, fileNameHits);
  if (!fileSDigits) return 1;

  AliPHOSSDigitizer *sdPHOS = new AliPHOSSDigitizer(fileNameHits.Data(),"PHOS");

  TStopwatch timer;
  timer.Start();

  gAlice->MakeTree("S",fileSDigits);
  sdPHOS->ExecuteTask("deb all");

  timer.Stop(); 
  timer.Print();

  fileSDigits->Close();
  delete fileSDigits;

}
 

////////////////////////////////////////////////////////////////////////
TFile* Init(TString fileNameSDigits, TString fileNameHits) {
// open input file, read in gAlice, prepare output file
  if (gAlice) delete gAlice;
  gAlice = 0;

  Bool_t sameFiles = kFALSE;
  if (fileNameSDigits == fileNameHits || fileNameSDigits == "") sameFiles = kTRUE;

  TString fileMode = "read";
  if (sameFiles) fileMode = "update";

  TFile *fileHits =  OpenFile(fileNameHits.Data(),fileMode.Data());
  if (!fileHits) return 0;
  if (!ImportgAlice(fileHits)) return 0;
  if (!sameFiles) return gAlice->InitTreeFile("S",fileNameSDigits.Data());
  return fileHits;

}

////////////////////////////////////////////////////////////////////////
TFile* OpenFile(TString fileName, TString fileMode) {
// open file fileName
  TFile *file = TFile::Open(fileName.Data(),fileMode.Data());
  if (!file->IsOpen()) {
    cerr<<"Can't open "<<fileName.Data()<<" !\n";
    return 0;
  }
  return file;
}

////////////////////////////////////////////////////////////////////////
Bool_t ImportgAlice(TFile *file) {
// read in gAlice object from the file
  gAlice = (AliRun*)file->Get("gAlice");
  if (!gAlice)  return kFALSE;
  return kTRUE;
}
////////////////////////////////////////////////////////////////////////
 AliPHOSHits2SDigits.C:1
 AliPHOSHits2SDigits.C:2
 AliPHOSHits2SDigits.C:3
 AliPHOSHits2SDigits.C:4
 AliPHOSHits2SDigits.C:5
 AliPHOSHits2SDigits.C:6
 AliPHOSHits2SDigits.C:7
 AliPHOSHits2SDigits.C:8
 AliPHOSHits2SDigits.C:9
 AliPHOSHits2SDigits.C:10
 AliPHOSHits2SDigits.C:11
 AliPHOSHits2SDigits.C:12
 AliPHOSHits2SDigits.C:13
 AliPHOSHits2SDigits.C:14
 AliPHOSHits2SDigits.C:15
 AliPHOSHits2SDigits.C:16
 AliPHOSHits2SDigits.C:17
 AliPHOSHits2SDigits.C:18
 AliPHOSHits2SDigits.C:19
 AliPHOSHits2SDigits.C:20
 AliPHOSHits2SDigits.C:21
 AliPHOSHits2SDigits.C:22
 AliPHOSHits2SDigits.C:23
 AliPHOSHits2SDigits.C:24
 AliPHOSHits2SDigits.C:25
 AliPHOSHits2SDigits.C:26
 AliPHOSHits2SDigits.C:27
 AliPHOSHits2SDigits.C:28
 AliPHOSHits2SDigits.C:29
 AliPHOSHits2SDigits.C:30
 AliPHOSHits2SDigits.C:31
 AliPHOSHits2SDigits.C:32
 AliPHOSHits2SDigits.C:33
 AliPHOSHits2SDigits.C:34
 AliPHOSHits2SDigits.C:35
 AliPHOSHits2SDigits.C:36
 AliPHOSHits2SDigits.C:37
 AliPHOSHits2SDigits.C:38
 AliPHOSHits2SDigits.C:39
 AliPHOSHits2SDigits.C:40
 AliPHOSHits2SDigits.C:41
 AliPHOSHits2SDigits.C:42
 AliPHOSHits2SDigits.C:43
 AliPHOSHits2SDigits.C:44
 AliPHOSHits2SDigits.C:45
 AliPHOSHits2SDigits.C:46
 AliPHOSHits2SDigits.C:47
 AliPHOSHits2SDigits.C:48
 AliPHOSHits2SDigits.C:49
 AliPHOSHits2SDigits.C:50
 AliPHOSHits2SDigits.C:51
 AliPHOSHits2SDigits.C:52
 AliPHOSHits2SDigits.C:53
 AliPHOSHits2SDigits.C:54
 AliPHOSHits2SDigits.C:55
 AliPHOSHits2SDigits.C:56
 AliPHOSHits2SDigits.C:57
 AliPHOSHits2SDigits.C:58
 AliPHOSHits2SDigits.C:59
 AliPHOSHits2SDigits.C:60
 AliPHOSHits2SDigits.C:61
 AliPHOSHits2SDigits.C:62
 AliPHOSHits2SDigits.C:63
 AliPHOSHits2SDigits.C:64
 AliPHOSHits2SDigits.C:65
 AliPHOSHits2SDigits.C:66
 AliPHOSHits2SDigits.C:67
 AliPHOSHits2SDigits.C:68
 AliPHOSHits2SDigits.C:69
 AliPHOSHits2SDigits.C:70
 AliPHOSHits2SDigits.C:71
 AliPHOSHits2SDigits.C:72
 AliPHOSHits2SDigits.C:73
 AliPHOSHits2SDigits.C:74
 AliPHOSHits2SDigits.C:75
 AliPHOSHits2SDigits.C:76
 AliPHOSHits2SDigits.C:77
 AliPHOSHits2SDigits.C:78
 AliPHOSHits2SDigits.C:79
 AliPHOSHits2SDigits.C:80
 AliPHOSHits2SDigits.C:81
 AliPHOSHits2SDigits.C:82
 AliPHOSHits2SDigits.C:83
 AliPHOSHits2SDigits.C:84
 AliPHOSHits2SDigits.C:85
 AliPHOSHits2SDigits.C:86
 AliPHOSHits2SDigits.C:87
 AliPHOSHits2SDigits.C:88
 AliPHOSHits2SDigits.C:89
 AliPHOSHits2SDigits.C:90