AliFMDInput.h

Go to the documentation of this file.
00001 #ifndef AliFMDInput_H
00002 #define AliFMDInput_H
00003 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
00004  * reserved. 
00005  *
00006  * See cxx source for full Copyright notice                               
00007  */
00008 //___________________________________________________________________
00017 #include <TObject.h>
00018 #ifndef ROOT_TString
00019 # include <TString.h>
00020 #endif
00021 class AliRunLoader;
00022 class AliLoader;
00023 class AliStack;
00024 class AliRun;
00025 class AliRawReader;
00026 class AliFMD;
00027 class AliFMDHit;
00028 class AliFMDDigit;
00029 class AliFMDSDigit;
00030 class AliFMDRecPoint;
00031 class AliESD;
00032 class AliESDFMD;
00033 class TString;
00034 class TClonesArray;
00035 class TTree;
00036 class TGeoManager;
00037 class TParticle;
00038 class TChain;
00039 
00040 //___________________________________________________________________
00085 class AliFMDInput : public TObject
00086 {
00087 public:
00089   enum ETrees {
00090     kHits       = 1,  // Hits
00091     kKinematics,      // Kinematics (from sim)
00092     kDigits,          // Digits
00093     kSDigits,         // Summable digits 
00094     kHeader,          // Header information 
00095     kRecPoints,       // Reconstructed points
00096     kESD,             // Load ESD's
00097     kRaw,             // Read raw data 
00098     kGeometry         // Not really a tree 
00099   };
00101   AliFMDInput();
00104   AliFMDInput(const char* gAliceFile);
00106   virtual ~AliFMDInput() {}
00107 
00110   virtual void   AddLoad(ETrees tree)     { SETBIT(fTreeMask, tree); }
00113   virtual void   RemoveLoad(ETrees tree)  { CLRBIT(fTreeMask, tree); }
00115   virtual Int_t  NEvents() const;
00116 
00120   virtual Bool_t Init();
00126   virtual Bool_t Begin(Int_t event);
00131   virtual Bool_t Event();
00134   virtual Bool_t End();
00137   virtual Bool_t Finish() { return kTRUE; }
00140   virtual Bool_t Run();
00141 
00145   virtual Bool_t ProcessHits();
00148   virtual Bool_t ProcessDigits();
00152   virtual Bool_t ProcessSDigits();
00156   virtual Bool_t ProcessRawDigits();
00160   virtual Bool_t ProcessRecPoints();
00161 
00165   virtual Bool_t ProcessHit(AliFMDHit*, TParticle*)  { return kTRUE; }
00168   virtual Bool_t ProcessDigit(AliFMDDigit*)          { return kTRUE; }
00172   virtual Bool_t ProcessSDigit(AliFMDSDigit*)        { return kTRUE; }
00176   virtual Bool_t ProcessRawDigit(AliFMDDigit*)       { return kTRUE; }
00180   virtual Bool_t ProcessRecPoint(AliFMDRecPoint*)    { return kTRUE; }
00184   virtual Bool_t ProcessESD(AliESDFMD*)              { return kTRUE; }
00185   
00186 protected:
00187   TString       fGAliceFile; // File name of gAlice file
00188   AliRunLoader* fLoader;     // Loader of FMD data 
00189   AliRun*       fRun;        // Run information
00190   AliStack*     fStack;      // Stack of particles 
00191   AliLoader*    fFMDLoader;  // Loader of FMD data 
00192   AliRawReader* fReader;     // Raw data reader 
00193   AliFMD*       fFMD;        // FMD object
00194   AliESD*       fMainESD;    // ESD Object
00195   AliESDFMD*    fESD;        // FMD ESD data  
00196   TTree*        fTreeE;      // Header tree 
00197   TTree*        fTreeH;      // Hits tree
00198   TTree*        fTreeD;      // Digit tree 
00199   TTree*        fTreeS;      // SDigit tree 
00200   TTree*        fTreeR;      // RecPoint tree
00201   TTree*        fTreeA;      // Raw data tree
00202   TChain*       fChainE;     // Chain of ESD's
00203   TClonesArray* fArrayE;     // Event info array
00204   TClonesArray* fArrayH;     // Hit info array
00205   TClonesArray* fArrayD;     // Digit info array
00206   TClonesArray* fArrayS;     // SDigit info array
00207   TClonesArray* fArrayR;     // Rec points info array
00208   TClonesArray* fArrayA;     // Raw data (digits) info array
00209   TGeoManager*  fGeoManager; // Geometry manager
00210   Int_t         fTreeMask;   // Which tree's to load
00211   Bool_t        fIsInit;
00212   ClassDef(AliFMDInput,0)  //Hits for detector FMD
00213 };
00214 
00215 
00216 //____________________________________________________________________
00217 class AliFMDHit;
00218 class AliFMDInputHits : public AliFMDInput 
00219 {
00220 public:
00221   AliFMDInputHits(const char* file="galice.root") 
00222     : AliFMDInput(file) { AddLoad(kHits); }
00223   ClassDef(AliFMDInputHits, 0);
00224 };
00225 
00226 //____________________________________________________________________
00227 class AliFMDDigit;
00228 class AliFMDInputDigits : public AliFMDInput 
00229 {
00230 public:
00231   AliFMDInputDigits(const char* file="galice.root")
00232     : AliFMDInput(file) { AddLoad(kDigits); }
00233   ClassDef(AliFMDInputDigits, 0);
00234 };
00235 
00236 //____________________________________________________________________
00237 class AliFMDSDigit;
00238 class AliFMDInputSDigits : public AliFMDInput 
00239 {
00240 public:
00241   AliFMDInputSDigits(const char* file="galice.root") 
00242     : AliFMDInput(file) { AddLoad(kSDigits); }
00243   ClassDef(AliFMDInputSDigits, 0);
00244 };
00245 
00246 //____________________________________________________________________
00247 class AliFMDInputRaw : public AliFMDInput 
00248 {
00249 public:
00250   AliFMDInputRaw(const char* file="galice.root") 
00251     : AliFMDInput(file) { AddLoad(kRaw); }
00252   ClassDef(AliFMDInputRaw, 0);
00253 };
00254 
00255 //____________________________________________________________________
00256 class AliFMDRecPoint;
00257 class AliFMDInputRecPoints : public AliFMDInput 
00258 {
00259 public:
00260   AliFMDInputRecPoints(const char* file="galice.root") 
00261     : AliFMDInput(file) { AddLoad(kRecPoints); }
00262   ClassDef(AliFMDInputRecPoints, 0);
00263 };
00264 
00265 #endif
00266 //____________________________________________________________________
00267 //
00268 // Local Variables:
00269 //   mode: C++
00270 // End:
00271 //
00272 // EOF
00273 //

Generated on Fri Mar 24 17:11:21 2006 for ALICE FMD Off-line by  doxygen 1.4.6