Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

AlphaBanks.h

Go to the documentation of this file.
00001 
00002 // Class AlphaBanks
00003 // acts as a container for the AlephObjects
00004 //
00005 // Author : R. Cavanaugh
00006 //
00007 // C. Delaere : added Event, Run and Vertices
00008 // C. Delaere : converted it into a ROOT object
00009 // 
00011 
00012 #ifndef _ALPHABANKS_H_
00013 #define _ALPHABANKS_H_
00014 
00015 #include <vector>
00016 #include <map>
00017 #include <TObject.h>
00018 #include "AlTrack.h"
00019 #include "AlMuon.h"
00020 #include "AlEflw.h"
00021 #include "AlGamp.h"
00022 #include "AlMCtruth.h"
00023 #include "AlElec.h"
00024 #include "AlEvent.h"
00025 #include "AlRun.h"
00026 #include "AlConcreteVertices.h"
00027 class HepLorentzVector;
00028 template <class T> class AlephCollection;
00029 #include "BankClasses.h"
00030 #include "BankPatterns.h"
00031 
00032 class AlphaBanks : public TObject
00033 {
00034 public:
00035      enum DataSource { BOS, ROOT };
00036      AlphaBanks(DataSource src=ROOT);
00037      virtual ~AlphaBanks();                  
00038      void LoadFromBos();             
00039      void InitObjectStructure();     
00040      AlephCollection< AlGamp     >& GampV() ;
00041      AlephCollection< AlGamp*    >  GampPV() ;
00042      AlephCollection< AlEflw     >& EflwV() ;
00043      AlephCollection< AlEflw*    >  EflwPV() ;     
00044      AlephCollection< AlTrack    >& TrackV() ;
00045      AlephCollection< AlTrack*   >  TrackPV() ;
00046      AlephCollection< AlTrack    >& V0TrackV() ;
00047      AlephCollection< AlTrack*   >  V0TrackPV() ;
00048      AlephCollection< AlTrack    >& StdV0V() ;
00049      AlephCollection< AlTrack*   >  StdV0PV() ;
00050      AlephCollection< AlTrack    >& LongV0V() ;
00051      AlephCollection< AlTrack*   >  LongV0PV() ;
00052      AlephCollection< AlMCtruth  >& MCtruthV() ;
00053      AlephCollection< AlMCtruth* >  MCtruthPV() ;
00054      AlephCollection< AlMuon     >& MuonV() ;
00055      AlephCollection< AlMuon*    >  MuonPV() ;
00056      AlephCollection< AlElec     >& ElecV() ;
00057      AlephCollection< AlElec*    >  ElecPV() ;
00058      AlVertex& MainVertex();
00059      AlVertex* MainVertexP();
00060      AlephCollection< AlVertex   >& SecVerticesV() ;
00061      AlephCollection< AlVertex*  >  SecVerticesPV() ;
00062      AlephCollection< AlVertex   >& MCverticesV() ;
00063      AlephCollection< AlVertex*  >  MCverticesPV() ;
00064      AlephCollection< AlObject*  >  ObjectPV() ;
00065      AlEvent& Event()  {return _Event;}
00066      AlRun&   Run()  {return _Run;}
00067      void addObject(AlObject* obj);
00068      template <class T> void AlphaBanks::addObject(AlephCollection<T>);
00069      bool isValid() const;
00070 private:
00071      vector<QVEC> qvec;        
00072      vector<QVRT> qvrt;        
00073      QEXT qext;                
00074      QHAC qhac;                
00075      int  KFCHT, KLCHT, KNCHT, OKFCHT,
00076           KFCOT, KLCOT, KNCOT, OKFCOT,
00077           KFIST, KLIST, KNIST, OKFIST,
00078           KFAST, KLAST, KNAST, OKFAST,
00079           KFRET, KLRET, KNRET, OKFRET,
00080           KFEFT, KLEFT, KNEFT, OKFEFT,
00081           KFNET, KLNET, KNNET, OKFNET,
00082           KFGAT, KLGAT, KNGAT, OKFGAT,
00083           KFJET, KLJET, KNJET, OKFJET,
00084           KFMCT, KLMCT, KNMCT, OKFMCT,
00085           KFV0T, KLV0T, KNV0T, OKFV0T,
00086           KFLVT, KLLVT, KNLVT, OKFLVT,
00087           KFDCT, KLDCT, KNDCT, OKFDCT,
00088           KFREV, KLREV, KNREV, OKFREV,
00089           KFMCV, KLMCV, KNMCV, OKFMCV;
00090      AlephCollection< AlGamp     > Gamp;        
00091      AlephCollection< AlEflw     > Eflw;        
00092      AlephCollection< AlTrack    > Track;       
00093      AlephCollection< AlTrack    > V0Track;     
00094      AlephCollection< AlTrack    > StdV0;       
00095      AlephCollection< AlTrack    > LongV0;      
00096      AlephCollection< AlMCtruth  > MCtruth;     
00097      AlephCollection< AlMuon     > Muon;        
00098      AlephCollection< AlElec     > Elec;        
00099      AlephCollection< AlVertex   > SecVertices; 
00100      AlephCollection< AlVertex   > MCvertices;  
00101      AlVertex _MainVertex;                      
00102      AlephCollection< AlObject*  > Objects;     
00103      AlEvent _Event;                            
00104      AlRun   _Run;                              
00105      map<AlTrack*,int> TEmap;                   
00106      bool _Valid;                               
00107 ClassDef(AlphaBanks,1) // The ALPHA++ BOS-wrapper
00108 }; 
00109 #endif
00110 

Generated at Wed Jun 18 17:19:11 2003 for ALPHA++ by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001