// Author: Ingo Froehlich
// Written: 11/07/2007
// Modified: 
// PEmbeddedParticles Class Header

#ifndef _PEMBEDDEDPARTICLES_H_
#define _PEMBEDDEDPARTICLES_H_

#include "PBulkInterface.h"

#define MAX_EMBEDDEDPARTICLES 500

class PEmbeddedParticles: public PBulkInterface {

 private:

    PParticle *local      [MAX_EMBEDDEDPARTICLES];
    Int_t downscaling     [MAX_EMBEDDEDPARTICLES];
    Int_t last_downscaling[MAX_EMBEDDEDPARTICLES];
    Int_t local_pos;

    Int_t local_version[MAX_EMBEDDEDPARTICLES];

    //Cone sampling:
    Double_t local_pMin        [MAX_EMBEDDEDPARTICLES];
    Double_t local_pMax        [MAX_EMBEDDEDPARTICLES];
    Double_t local_mMin        [MAX_EMBEDDEDPARTICLES];
    Double_t local_mMax        [MAX_EMBEDDEDPARTICLES];
    Double_t local_openingAngle[MAX_EMBEDDEDPARTICLES];
    Double_t local_theta       [MAX_EMBEDDEDPARTICLES];
    Double_t local_phi         [MAX_EMBEDDEDPARTICLES];
    
    //Alternative "sector" sampling
    Double_t local_thetaMin[MAX_EMBEDDEDPARTICLES];
    Double_t local_thetaMax[MAX_EMBEDDEDPARTICLES];
    Double_t local_phiMin  [MAX_EMBEDDEDPARTICLES];
    Double_t local_phiMax  [MAX_EMBEDDEDPARTICLES];
    Int_t    nParticle;
    Double_t startPhi;

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

 protected:
    
    
 public:
    
    PEmbeddedParticles();
    
    Bool_t Modify(PParticle **stack, int *decay_done, int *num, int stacksize);  //bulk interface
    
    Bool_t AddParticle(PParticle * particle, int downsc = 1);
    
    
    Bool_t SetSampling(Double_t pMin, Double_t pMax,
		       Double_t openingAngle, Double_t theta, Double_t phi,
		       Double_t mMin = 0., Double_t mMax = -.1);
    
    Bool_t SetSamplingSector(Double_t pMin    , Double_t pMax,
			     Double_t thetaMin, Double_t thetaMax,
			     Double_t phiMin  , Double_t phiMax,
			     Double_t phiStartVal, Int_t numParticle,
			     Double_t deltaPhi = 60., Int_t numSectors = 6);

    ClassDef(PEmbeddedParticles,0) // Add embedded particles in a PReaction
};
#endif 

















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