// Author: 
// Written: 12.5.2009
// Revised: 
// PHadesParticleSmearer Class Header

#ifndef _PHADESPARTICLESMEARER_H_
#define _PHADESPARTICLESMEARER_H_

#include "TObject.h"
#include "PBulkInterface.h"
#include "PUtils.h"

class PHadesParticleSmearer: public PBulkInterface {
 
 public:
    PHadesParticleSmearer();
    
    Bool_t Modify(PParticle **stack, int *decay_done, int *num, int stacksize);   
    
    void SetResolutionFactor(Double_t x) {
	resolution_factor = x;
    };

 protected:

    static double detrk4[7][5] ;
    static double multscrk4[7][5] ;
    static double detrk3[7][5] ;
    static double multscrk3[7][5] ;
    static double detkick[7][5] ;
    TRandom3 rand;


    double GetResolution(PParticle *p, Int_t iSetup=4);
    void   Smear(PParticle *p, double gamma);
    double resolution_factor ;
 
    ClassDef(PHadesParticleSmearer, 0)  // Momentum smearing of HADES particle tracks

};

#endif
 PHadesParticleSmearer.h:1
 PHadesParticleSmearer.h:2
 PHadesParticleSmearer.h:3
 PHadesParticleSmearer.h:4
 PHadesParticleSmearer.h:5
 PHadesParticleSmearer.h:6
 PHadesParticleSmearer.h:7
 PHadesParticleSmearer.h:8
 PHadesParticleSmearer.h:9
 PHadesParticleSmearer.h:10
 PHadesParticleSmearer.h:11
 PHadesParticleSmearer.h:12
 PHadesParticleSmearer.h:13
 PHadesParticleSmearer.h:14
 PHadesParticleSmearer.h:15
 PHadesParticleSmearer.h:16
 PHadesParticleSmearer.h:17
 PHadesParticleSmearer.h:18
 PHadesParticleSmearer.h:19
 PHadesParticleSmearer.h:20
 PHadesParticleSmearer.h:21
 PHadesParticleSmearer.h:22
 PHadesParticleSmearer.h:23
 PHadesParticleSmearer.h:24
 PHadesParticleSmearer.h:25
 PHadesParticleSmearer.h:26
 PHadesParticleSmearer.h:27
 PHadesParticleSmearer.h:28
 PHadesParticleSmearer.h:29
 PHadesParticleSmearer.h:30
 PHadesParticleSmearer.h:31
 PHadesParticleSmearer.h:32
 PHadesParticleSmearer.h:33
 PHadesParticleSmearer.h:34
 PHadesParticleSmearer.h:35
 PHadesParticleSmearer.h:36
 PHadesParticleSmearer.h:37
 PHadesParticleSmearer.h:38
 PHadesParticleSmearer.h:39
 PHadesParticleSmearer.h:40
 PHadesParticleSmearer.h:41
 PHadesParticleSmearer.h:42