Main Page   Class Hierarchy   Compound List   File List   Compound Members  

ATHENA_ATLFAST_Event.h

00001 #ifndef ATHENA_ATLFAST_ATHENA_ATLFAST_EVENT_H
00002 #define ATHENA_ATLFAST_ATHENA_ATLFAST_EVENT_H
00003 
00004 #include <TROOT.h>
00005 #include <TChain.h>
00006 #include <TFile.h>
00007 #include <vector>
00008 #include <string>
00009 #include "util/user_param.h"
00010 
00011 class Particle;
00012 
00013 class ATHENA_ATLFAST_Event {
00014 
00015 private :
00016   TTree          *fChain;   
00017   Int_t           fCurrent; 
00018 
00019   //Declaration of leaves types
00020 public:
00021   Int_t           NELE;
00022   Int_t           KFELE[12];   //[NELE]
00023   Float_t         PXELE[12];   //[NELE]
00024   Float_t         PYELE[12];   //[NELE]
00025   Float_t         PZELE[12];   //[NELE]
00026   Float_t         EEELE[12];   //[NELE]
00027   Int_t           NPHO;
00028   Int_t           KFPHO[12];   //[NPHO]
00029   Float_t         PXPHO[12];   //[NPHO]
00030   Float_t         PYPHO[12];   //[NPHO]
00031   Float_t         PZPHO[12];   //[NPHO]
00032   Float_t         EEPHO[12];   //[NPHO]
00033   Int_t           NMUO;
00034   Int_t           KFMUO[12];   //[NMUO]
00035   Float_t         PXMUO[12];   //[NMUO]
00036   Float_t         PYMUO[12];   //[NMUO]
00037   Float_t         PZMUO[12];   //[NMUO]
00038   Float_t         EEMUO[12];   //[NMUO]
00039   Int_t           NMUX;
00040   Int_t           KFMUX[12];   //[NMUX]
00041   Float_t         PXMUX[12];   //[NMUX]
00042   Float_t         PYMUX[12];   //[NMUX]
00043   Float_t         PZMUX[12];   //[NMUX]
00044   Float_t         EEMUX[12];   //[NMUX]
00045   Int_t           NJET;
00046   Int_t           KFJET[40];   //[NJET]
00047   Float_t         PXJET[40];   //[NJET]
00048   Float_t         PYJET[40];   //[NJET]
00049   Float_t         PZJET[40];   //[NJET]
00050   Float_t         EEJET[40];   //[NJET]
00051   Float_t         PTcalo[40];   //[NJET]
00052   Float_t         PTbjet[40];   //[NJET]
00053   Float_t         PTujet[40];   //[NJET]
00054   Int_t           NJETB;
00055   Int_t           KFJETB[40];   //[NJETB]
00056   Float_t         PXJETB[40];   //[NJETB]
00057   Float_t         PYJETB[40];   //[NJETB]
00058   Float_t         PZJETB[40];   //[NJETB]
00059   Float_t         EEJETB[40];   //[NJETB]
00060   Int_t           NPART;
00061   Int_t           KPPART[40];   //[NPART]
00062   Int_t           KSPART[40];   //[NPART]
00063   Int_t           KFPART[40];   //[NPART]
00064   Int_t           KPMOTH[40];   //[NPART]
00065   Int_t           KFMOTH[40];   //[NPART]
00066   Float_t         PXPART[40];   //[NPART]
00067   Float_t         PYPART[40];   //[NPART]
00068   Float_t         PZPART[40];   //[NPART]
00069   Float_t         EEPART[40];   //[NPART]
00070   Int_t           ISUB;
00071   Int_t           JETB;
00072   Int_t           JETC;
00073   Int_t           JETTAU;
00074   Float_t         PXMISS;
00075   Float_t         PYMISS;
00076   Float_t         PXNUE;
00077   Float_t         PYNUE;
00078 
00079 private:
00080   //List of branches
00081   TBranch        *b_NELE;   
00082   TBranch        *b_KFELE;   
00083   TBranch        *b_PXELE;   
00084   TBranch        *b_PYELE;   
00085   TBranch        *b_PZELE;   
00086   TBranch        *b_EEELE;   
00087   TBranch        *b_NPHO;   
00088   TBranch        *b_KFPHO;   
00089   TBranch        *b_PXPHO;   
00090   TBranch        *b_PYPHO;   
00091   TBranch        *b_PZPHO;   
00092   TBranch        *b_EEPHO;   
00093   TBranch        *b_NMUO;   
00094   TBranch        *b_KFMUO;   
00095   TBranch        *b_PXMUO;   
00096   TBranch        *b_PYMUO;   
00097   TBranch        *b_PZMUO;   
00098   TBranch        *b_EEMUO;   
00099   TBranch        *b_NMUX;   
00100   TBranch        *b_KFMUX;   
00101   TBranch        *b_PXMUX;   
00102   TBranch        *b_PYMUX;   
00103   TBranch        *b_PZMUX;   
00104   TBranch        *b_EEMUX;   
00105   TBranch        *b_NJET;   
00106   TBranch        *b_KFJET;   
00107   TBranch        *b_PXJET;   
00108   TBranch        *b_PYJET;   
00109   TBranch        *b_PZJET;   
00110   TBranch        *b_EEJET;   
00111   TBranch        *b_PTcalo;   
00112   TBranch        *b_PTbjet;   
00113   TBranch        *b_PTujet;   
00114   TBranch        *b_NJETB;   
00115   TBranch        *b_KFJETB;   
00116   TBranch        *b_PXJETB;   
00117   TBranch        *b_PYJETB;   
00118   TBranch        *b_PZJETB;   
00119   TBranch        *b_EEJETB;   
00120   TBranch        *b_NPART;   
00121   TBranch        *b_KPPART;   
00122   TBranch        *b_KSPART;   
00123   TBranch        *b_KFPART;   
00124   TBranch        *b_KPMOTH;   
00125   TBranch        *b_KFMOTH;   
00126   TBranch        *b_PXPART;   
00127   TBranch        *b_PYPART;   
00128   TBranch        *b_PZPART;   
00129   TBranch        *b_EEPART;   
00130   TBranch        *b_ISUB;   
00131   TBranch        *b_JETB;   
00132   TBranch        *b_JETC;   
00133   TBranch        *b_JETTAU;   
00134   TBranch        *b_PXMISS;   
00135   TBranch        *b_PYMISS;   
00136   TBranch        *b_PXNUE;   
00137   TBranch        *b_PYNUE;   
00138 
00139 public:
00140   ATHENA_ATLFAST_Event() {};
00141   ATHENA_ATLFAST_Event(TTree *tree);
00142   ATHENA_ATLFAST_Event(int argc, char** argv);
00143   virtual ~ATHENA_ATLFAST_Event();
00144   void   Loop();
00145 
00146 private:
00147   Int_t  Cut(Int_t entry);
00148   Int_t  GetEntry(Int_t entry);
00149   Int_t  LoadTree(Int_t entry);
00150   void   Init(TTree *tree);
00151   Bool_t Notify();
00152   void   Show(Int_t entry = -1);
00153 
00154 protected:
00155   //
00156   // User analysis
00157   //
00158   virtual void Initialization() {};
00159   virtual void Doit() {};
00160   virtual void Finalization() {};  
00161   
00162   virtual std::string GetParam(const std::string&);
00163 
00164   virtual void ActivateInfo(const std::string&);
00165   virtual void DeactivateInfo(const std::string&);
00166 
00167   virtual void ActivateInfo();
00168   virtual void DeactivateInfo();
00169 
00170   virtual void ActivateMuon();
00171   virtual void DeactivateMuon();
00172 
00173   virtual void ActivateElec();
00174   virtual void DeactivateElec();
00175 
00176   virtual void ActivateGamma();
00177   virtual void DeactivateGamma();
00178 
00179   virtual void ActivateJet();
00180   virtual void DeactivateJet();
00181 
00182   virtual void ActivateTrk();
00183   virtual void DeactivateTrk();
00184 
00185   virtual void ActivateGen();
00186   virtual void DeactivateGen();
00187 
00188   virtual void ActivateMissPt();
00189   virtual void DeactivateMissPt();
00190 
00191   virtual void ActivateCell();
00192   virtual void DeactivateCell();
00193 
00194   virtual void ActivateOther();
00195   virtual void DeactivateOther();
00196 
00197   virtual void ActivateAll();
00198   virtual void DeactivateAll();
00199 
00200 private:
00201   Int_t indexRun;
00202   Int_t indexEvent;
00203   Double_t eventWeight;
00204   Int_t isMCFlag;
00205   Int_t modeMC;
00206   Int_t debugFlag;
00207   Int_t doSkim;
00208   std::vector<Particle*> MuonList;
00209   std::vector<Particle*> ElecList;
00210   std::vector<Particle*> GammaList;
00211   std::vector<Particle*> JetList;
00212   std::vector<Particle*> TrkList;
00213   std::vector<Particle*> GenList;
00214   std::vector<Particle*> CellList;
00215   Double_t missPx, missPy;
00216 
00217   Int_t isActivateInfo;
00218   Int_t isActivateMuon;
00219   Int_t isActivateElec;
00220   Int_t isActivateGamma;
00221   Int_t isActivateJet;
00222   Int_t isActivateTrk;
00223   Int_t isActivateMissPt;
00224   Int_t isActivateGen;
00225   Int_t isActivateCell;
00226   Int_t isActivateOther;
00227 
00228 public:
00229   const std::vector<Particle*> & GetMuonList() const { return MuonList; }
00230   const std::vector<Particle*> & GetElecList() const { return ElecList; }
00231   const std::vector<Particle*> & GetGammaList() const { return GammaList; }
00232   const std::vector<Particle*> & GetJetList() const { return JetList; }
00233   const std::vector<Particle*> & GetTrkList() const { return TrkList; }
00234   const std::vector<Particle*> & GetGenList() const { return GenList; }
00235   const std::vector<Particle*> & GetCellList() const { return CellList; }
00236 
00237   std::vector<Particle*> & GetMuonList() { return MuonList; }
00238   std::vector<Particle*> & GetElecList() { return ElecList; }
00239   std::vector<Particle*> & GetGammaList() { return GammaList; }
00240   std::vector<Particle*> & GetJetList() { return JetList; }
00241   std::vector<Particle*> & GetTrkList() { return TrkList; }
00242   std::vector<Particle*> & GetGenList() { return GenList; }
00243   std::vector<Particle*> & GetCellList() { return CellList; }
00244 
00245   double GetMissPx() const { return missPx; }
00246   double GetMissPy() const { return missPy; }
00247   int GetRunNumber() const { return indexRun; }
00248   int GetEventNumber() const { return indexEvent; }
00249   double GetEventWeight() const { return eventWeight; }
00250   int IsMC() const { return isMCFlag; }
00251   int GetModeMC() const { return modeMC; }
00252   int IsDebug() const { return debugFlag; }
00253   int IsSkim() const { return doSkim; }
00254   void SetDebug(int f) { debugFlag = Int_t(f); }
00255   void SetSkim(int f) { doSkim = Int_t(f); }
00256 
00257   //
00258   // Don't need to modify them
00259   //
00260   virtual void FillEvent();
00261   virtual void DeleteEvent();
00262   virtual void DeleteList(std::vector<Particle*> &list);
00263   virtual void doCmdInfo(const std::vector<std::string> &strs);
00264 
00265 private:
00266   //
00267   // These lists have the same contents of the lists in the "protected" region.
00268   // They exist in order to delete all contents. (to avoid memory leaks)
00269   //
00270   std::vector<Particle*> cloneMuonList;
00271   std::vector<Particle*> cloneElecList;
00272   std::vector<Particle*> cloneGammaList;
00273   std::vector<Particle*> cloneJetList;
00274   std::vector<Particle*> cloneTrkList;
00275   std::vector<Particle*> cloneGenList;
00276   std::vector<Particle*> cloneCellList;
00277 
00278   TChain *m_chain;
00279   unsigned m_isTreename;
00280   std::vector<std::string> m_fileList;
00281   std::string m_output;
00282   int m_skimFlag;
00283   int m_begin_evt, m_end_evt;
00284   std::vector<User_Param> m_userParamList;
00285 
00286   std::string m_prefix;
00287 };
00288 
00289 #endif // ATHENA_ATLFAST_ATHENA_ATLFAST_EVENT_H

Generated on Tue Apr 13 13:25:32 2004 for ATLAS JAPAN by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002