Pluto v6.3.0
Loading...
Searching...
No Matches
PDummyModel.C
Go to the documentation of this file.
1//TITLE A dummy channel model including a new partial decay width
2
3//#include "../src/PChannelModel.h"
4
5//Class definition
6
7class PDummyModel : public PChannelModel {
8
9 public:
10
11 PDummyModel(const Char_t *id, const Char_t *de, Int_t key);
12 PDistribution* Clone(const char *delme=NULL) const;
13
14 Bool_t GetWidth(Double_t mass, Double_t *width, Int_t didx);
15
16 private:
17
18 Double_t parent_pole_mass; //Pole mass of the decay parent
19 Int_t parent_id; //Id of our parent
20 Double_t static_width; //Static width at pole mass of parent
21 ClassDef(PDummyModel, 0) //Just a dummy model for mass sampling, NO PHYSICS!
22};
23
24PDistribution *PDummyModel::Clone(const char*) const {
25 //clone the object
26 return new PDummyModel((const PDummyModel &)* this);
27};
28
29PDummyModel::PDummyModel(const Char_t *id, const Char_t *de, Int_t key) : PChannelModel(id, de,key) {
30 //Constructor
31 if (is_channel < 0)
32 Warning("PDummyModel", "The model (%s) should be bound to CHANNELS only", de);
33
34 //Do everything what we need later in advance
35 //This saves time in the event loop!
36
38 parent_pole_mass = makeStaticData()->GetParticleMass(parent_id);
40
41} ;
42
43Bool_t PDummyModel::GetWidth(Double_t mass, Double_t *width, Int_t didx) {
44 //Coupled-channel function for the partial width sampling
45
46 //Just a stupid dummy (step) function
47 *width = 0;
48 if (mass > parent_pole_mass-0.05)
49 *width = static_width;
50
51 return kTRUE;
52}
53
54
56
57
ClassImp(PBeamLineSimulation) PBeamLineSimulation
PStaticData * makeStaticData()
Bool_t GetWidth(Double_t mass, Double_t *width, Int_t didx)
Definition PDummyModel.C:43
PDummyModel(const Char_t *id, const Char_t *de, Int_t key)
Definition PDummyModel.C:29
PDistribution * Clone(const char *delme=NULL) const
Definition PDummyModel.C:24
Double_t GetDecayPartialWidth(Int_t id)
double GetParticleMass(const int &id)
int GetDecayParent(const int &)
Double_t mass