1 #ifndef ALIDIGITIZATIONINPUT_H
2 #define ALIDIGITIZATIONINPUT_H
3 /* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 ////////////////////////////////////////////////////////////////////////
10 // Manager Class for Merging/Digitization
11 // This handles Merging and Digitisation of AliRoot events
12 // Author: Jiri Chudoba (CERN)
14 ////////////////////////////////////////////////////////////////////////
16 // --- ROOT system ---
20 #include "TClonesArray.h"
25 // --- AliRoot header files ---
27 #include "AliStream.h"
32 #define MAXSTREAMSTOMERGE 4
34 class AliDigitizationInput: public TNamed {
37 AliDigitizationInput();
38 AliDigitizationInput(Int_t nInputStreams, Int_t sperb=1);
40 virtual ~AliDigitizationInput();
42 void SetOutputFile(TString fn);
43 TString GetOutputFile() const {return fOutputFileName;}
45 void SetOutputDir(TString dn) {fOutputDirName = dn;}
46 TString GetOutputDir() const {return fOutputDirName;}
48 void SetInputStream(Int_t stream, const char *inputName, TString foldername = "");
50 void SetFirstOutputEventNr(Int_t i) {fEvent = i;}
51 void SetNrOfEventsToWrite(Int_t i) {fNrOfEventsToWrite = i;}
52 void SetCopyTreesFromInput(Int_t i) {fCopyTreesFromInput = i;}
53 Int_t GetCopyTreesFromInput() const {return fCopyTreesFromInput;}
54 Int_t GetOutputEventNr() const {return fEvent;}
55 void SetCombinationFileName(TString fn) {fCombinationFileName = fn;}
56 TString GetCombinationFileName() const {return fCombinationFileName;}
57 Int_t GetMask(Int_t i) const {return fkMASK[i];}
58 void SetRegionOfInterest(Bool_t flag) {fRegionOfInterest = flag;};
59 Bool_t GetRegionOfInterest() const {return fRegionOfInterest;};
60 Int_t GetNinputs() const {return fNinputs;}
61 const TString& GetInputFolderName(Int_t i) const;
62 const char* GetOutputFolderName();
66 // Nr of particles in all input files for a given event
67 // (as numbered in the output file)
68 Int_t GetNParticles(Int_t event) const;
70 // Nr of particles in input file input for a given event
71 // (as numbered in this input file)
72 Int_t GetNParticles(Int_t event, Int_t input) const;
74 // return pointer to an int array with input event numbers which were
75 // merged in the output event event
76 Int_t* GetInputEventNumbers(Int_t event) const;
78 // return an event number of an eventInput from input file input
79 // which was merged to create output event event
80 Int_t GetInputEventNumber(Int_t event, Int_t input) const;
82 AliStream * GetInputStream(Int_t index) const { return dynamic_cast<AliStream *>(fInputStreams->At(index)) ; }
83 // return pointer to particle with index i (index with mask)
84 TParticle* GetParticle(Int_t i, Int_t event) const;
86 // return pointer to particle with index i in the input file input
87 // (index without mask)
88 TParticle* GetParticle(Int_t i, Int_t input, Int_t event) const;
90 // return TString with input file name
91 TString GetInputFileName(Int_t input, Int_t order) const;
92 AliRunLoader* GetOutRunLoader();
94 Bool_t ConnectInputTrees();
95 Bool_t InitOutputGlobal();
101 AliDigitizationInput(const AliDigitizationInput& dig); // not implemented
102 AliDigitizationInput& operator=(const AliDigitizationInput& dig); // not implemented
103 void Copy(TObject& dig) const;
105 Int_t fkMASK[MAXSTREAMSTOMERGE]; //! masks for track ids from
106 // different source files
107 Int_t fkMASKSTEP; // step to increase MASK for
109 TString fOutputFileName; // output file name
110 TString fOutputDirName; // output dir name
112 Int_t fEvent; // output event nr.
113 Int_t fNrOfEventsToWrite; // Nr of events to write
114 Int_t fNrOfEventsWritten; // Nr of events written
115 Int_t fCopyTreesFromInput; // from which input file the trees
116 // should be copied, -1 for no copies
117 Int_t fNinputs; // nr of input streams - can be taken from the TClonesArray dimension
118 Int_t fNinputsGiven; // nr of input streams given by user
119 Bool_t fRegionOfInterest; // digitization in region of interest
120 TClonesArray * fInputStreams; // input signal streams
122 // AliStream* fOutputStream;
123 AliRunLoader* fOutRunLoader; //!
124 Bool_t fOutputInitialized; //indicates if outout was initialized
126 AliMergeCombi * fCombi; // pointer to the combination object
127 TArrayI fCombination; //! combination of events from
128 TString fCombinationFileName; // fn with combinations (used
129 // with type 2 of comb.)
130 static const TString fgkDefOutFolderName;//default name for output foler
131 static const TString fgkBaseInFolderName;//default name for input foler
132 ClassDef(AliDigitizationInput,2)
135 #endif // ALIRUNDIGITIZER_H