AliRoot Core  edcc906 (edcc906)
AliDigitizationInput.h
Go to the documentation of this file.
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 */
5 
6 /* $Id$ */
7 
9 //
10 // Manager Class for Merging/Digitization
11 // This handles Merging and Digitisation of AliRoot events
12 // Author: Jiri Chudoba (CERN)
13 //
15 
16 // --- ROOT system ---
17 
18 #include "TArrayI.h"
19 #include "TNamed.h"
20 #include "TClonesArray.h"
21 class TFile;
22 class TParticle;
23 class TTree;
24 
25 // --- AliRoot header files ---
26 
27 #include "AliStream.h"
28 class AliDigitizer;
29 class AliMergeCombi;
30 class AliRunLoader;
31 
32 #define MAXSTREAMSTOMERGE 4
33 
34 class AliDigitizationInput: public TNamed {
35 
36 public:
38  AliDigitizationInput(Int_t nInputStreams, Int_t sperb=1);
39 
40  virtual ~AliDigitizationInput();
41 
42  void SetOutputFile(TString fn);
43  TString GetOutputFile() const {return fOutputFileName;}
44 
45  void SetOutputDir(TString dn) {fOutputDirName = dn;}
46  TString GetOutputDir() const {return fOutputDirName;}
47 
48  void SetInputStream(Int_t stream, const char *inputName, TString foldername = "");
49 
50  void SetFirstOutputEventNr(Int_t i) {fEvent = i;}
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();
63 
64 
65 
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;
69 
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;
73 
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;
77 
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;
81 
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;
85 
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;
89 
90 // return TString with input file name
91  TString GetInputFileName(Int_t input, Int_t order) const;
93  //
94  Bool_t ConnectInputTrees();
95  Bool_t InitOutputGlobal();
96  void InitEvent();
97  void FinishEvent();
98  void FinishGlobal();
99 
100 private:
101  AliDigitizationInput(const AliDigitizationInput& dig); // not implemented
102  AliDigitizationInput& operator=(const AliDigitizationInput& dig); // not implemented
103  void Copy(TObject& dig) const;
104 
106  // different source files
107  Int_t fkMASKSTEP; // step to increase MASK for
108  // each input file
109  TString fOutputFileName; // output file name
110  TString fOutputDirName; // output dir name
111 
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
121 
122 // AliStream* fOutputStream;
124  Bool_t fOutputInitialized; //indicates if outout was initialized
125  //
126  AliMergeCombi * fCombi; // pointer to the combination object
127  TArrayI fCombination;
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)
133 };
134 
135 #endif // ALIRUNDIGITIZER_H
void SetRegionOfInterest(Bool_t flag)
const char * GetOutputFolderName()
static const TString fgkBaseInFolderName
Int_t GetMask(Int_t i) const
Int_t GetCopyTreesFromInput() const
void SetOutputDir(TString dn)
Int_t fkMASK[MAXSTREAMSTOMERGE]
TString fCombinationFileName
combination of events from
Int_t GetOutputEventNr() const
void SetCombinationFileName(TString fn)
const TString & GetInputFolderName(Int_t i) const
AliDigitizationInput & operator=(const AliDigitizationInput &dig)
#define MAXSTREAMSTOMERGE
TString GetOutputFile() const
TString GetOutputDir() const
void Copy(TObject &dig) const
void SetFirstOutputEventNr(Int_t i)
void SetOutputFile(TString fn)
Int_t * GetInputEventNumbers(Int_t event) const
AliStream * GetInputStream(Int_t index) const
AliRunLoader * GetOutRunLoader()
Bool_t GetRegionOfInterest() const
void SetInputStream(Int_t stream, const char *inputName, TString foldername="")
Int_t GetInputEventNumber(Int_t event, Int_t input) const
Int_t fkMASKSTEP
masks for track ids from
Int_t GetNParticles(Int_t event) const
TString GetInputFileName(Int_t input, Int_t order) const
static const TString fgkDefOutFolderName
TParticle * GetParticle(Int_t i, Int_t event) const
void SetNrOfEventsToWrite(Int_t i)
TString GetCombinationFileName() const
void SetCopyTreesFromInput(Int_t i)