1 ////////////////////////////////////////////////////////////////////////
3 // name: AliSDigits2Digits
5 // last update: 4.4.2002
6 // author: Jiri Chudoba
10 // creates digits from sdigits for several detectors
11 // stores sdigits in separate file (or in the source file
12 // with sdigits). Stores gAlice object and copies TE to the
16 // TString fileNameSDigits ... input file with sdigits
17 // TString fileNameDigits ... output file with digits
18 // Int_t nEvents ... how many events to process
19 // Int_t ITS, TPC, ... many flags for diff. detectors
23 // 04.04.02 - first version
25 ////////////////////////////////////////////////////////////////////////
27 #if !defined(__CINT__) || defined(__MAKECINT__)
29 #include "STEER/AliRun.h"
30 #include "STEER/AliRunDigitizer.h"
31 #include "ITS/AliITSDigitizer.h"
32 #include "TPC/AliTPCDigitizer.h"
33 #include "TRD/AliTRDdigitizer.h"
34 #include "PHOS/AliPHOSDigitizer.h"
35 #include "MUON/AliMUONDigitizer.h"
36 #include "RICH/AliRICHDigitizer.h"
37 #include "TStopwatch.h"
40 #include "AliHits2SDigits.C"
42 void AliCopyN(TString inputFile, TString outputFile);
44 Int_t AliSDigits2Digits(TString fileNameDigits="digits.root",
45 TString fileNameSDigits="rfio:sdigits.root",
46 Int_t nEvents = 1, Int_t iITS = 0, Int_t iTPC = 0,
47 Int_t iTRD = 0, Int_t iPHOS = 0, Int_t iMUON = 0,
48 Int_t iRICH = 0, Int_t iCopy = 1)
50 // delete the current gAlice object, the one from input file
57 AliRunDigitizer * manager = new AliRunDigitizer(1,1);
58 manager->SetInputStream(0,fileNameSDigits.Data());
59 if (fileNameDigits != "") {
61 AliCopyN(fileNameSDigits,fileNameDigits);
63 manager->SetOutputFile(fileNameDigits);
65 manager->SetNrOfEventsToWrite(nEvents);
66 if (iITS) AliITSDigitizer *dITS = new AliITSDigitizer(manager);
67 if (iTPC) AliTPCDigitizer *dTPC = new AliTPCDigitizer(manager);
68 if (iTRD) AliTRDdigitizer *dTRD = new AliTRDdigitizer(manager);
69 if (iPHOS) AliPHOSDigitizer *dPHOS = new AliPHOSDigitizer(manager);
70 if (iMUON) AliMUONDigitizer *dMUON = new AliMUONDigitizer(manager);
71 if (iRICH) AliRICHDigitizer *dRICH = new AliRICHDigitizer(manager);
74 manager->Exec("deb all");
81 ////////////////////////////////////////////////////////////////////////
82 void AliCopyN(TString inputFileName, TString outputFileName) {
85 TFile *inputFile = OpenFile(inputFileName);
86 if (!inputFile) return;
88 TFile *outputFile = TFile::Open(outputFileName.Data(),"update");
89 if (!outputFile->IsOpen()) {
90 cerr<<"Can't open "<<outputFileName.Data()<<" !\n";
93 if (!ImportgAlice(inputFile)) return;
94 AliCopy(inputFile, outputFile);
100 ////////////////////////////////////////////////////////////////////////