// Author: Ingo Froehlich
// Written: 01/02/2011


#ifndef _PUNIGENINPUT_H_
#define _PUNIGENINPUT_H_

#include "PBulkInterface.h"
#include "UEvent.h"
#include "URun.h"
#include "TTree.h"
#include "TFile.h"

#define MAX_UNIGENPARTICLES 500
#define MAX_UNIGENUNKNOWNPDG 10

class PUniGenInput: public PBulkInterface {

 private:

    //PParticle *local      [MAX_UNIGENPARTICLES];

    //From batch system
    //Double_t *vertex_x,*vertex_y,*vertex_z;

    TFile  *fInFile;               // Input file
    TTree  *fInTree;               // Input tree
    URun   *fRun;                  // Run object
    UEvent *fEvent;                // Event
    
    Int_t centry, nentries, reset_mass;

    Int_t pdg_param, pid_param, *i_result;

    Int_t unknown_pdg[MAX_UNIGENUNKNOWNPDG];
    Int_t unknown_pdg_pointer;

 protected:
    
    
 public:
    
    PUniGenInput();
    PUniGenInput(char *filename);
    
    Bool_t Input(char *filename);

    Bool_t Modify(PParticle **stack, int *decay_done, int *num, int stacksize);  //bulk interface
    
    void ResetInvalidMass(void) {reset_mass=1;};
    
    ClassDef(PUniGenInput, 0) // Adds particles from an UniGen file into a PReaction
};
#endif 

















 PUniGenInput.h:1
 PUniGenInput.h:2
 PUniGenInput.h:3
 PUniGenInput.h:4
 PUniGenInput.h:5
 PUniGenInput.h:6
 PUniGenInput.h:7
 PUniGenInput.h:8
 PUniGenInput.h:9
 PUniGenInput.h:10
 PUniGenInput.h:11
 PUniGenInput.h:12
 PUniGenInput.h:13
 PUniGenInput.h:14
 PUniGenInput.h:15
 PUniGenInput.h:16
 PUniGenInput.h:17
 PUniGenInput.h:18
 PUniGenInput.h:19
 PUniGenInput.h:20
 PUniGenInput.h:21
 PUniGenInput.h:22
 PUniGenInput.h:23
 PUniGenInput.h:24
 PUniGenInput.h:25
 PUniGenInput.h:26
 PUniGenInput.h:27
 PUniGenInput.h:28
 PUniGenInput.h:29
 PUniGenInput.h:30
 PUniGenInput.h:31
 PUniGenInput.h:32
 PUniGenInput.h:33
 PUniGenInput.h:34
 PUniGenInput.h:35
 PUniGenInput.h:36
 PUniGenInput.h:37
 PUniGenInput.h:38
 PUniGenInput.h:39
 PUniGenInput.h:40
 PUniGenInput.h:41
 PUniGenInput.h:42
 PUniGenInput.h:43
 PUniGenInput.h:44
 PUniGenInput.h:45
 PUniGenInput.h:46
 PUniGenInput.h:47
 PUniGenInput.h:48
 PUniGenInput.h:49
 PUniGenInput.h:50
 PUniGenInput.h:51
 PUniGenInput.h:52
 PUniGenInput.h:53
 PUniGenInput.h:54
 PUniGenInput.h:55
 PUniGenInput.h:56
 PUniGenInput.h:57
 PUniGenInput.h:58
 PUniGenInput.h:59
 PUniGenInput.h:60
 PUniGenInput.h:61
 PUniGenInput.h:62
 PUniGenInput.h:63
 PUniGenInput.h:64
 PUniGenInput.h:65
 PUniGenInput.h:66
 PUniGenInput.h:67
 PUniGenInput.h:68
 PUniGenInput.h:69
 PUniGenInput.h:70
 PUniGenInput.h:71