(UNKNOWN PRODUCT) » INCLUDE » PChannel

class PChannel: public TObject

  PChannel Class implementation file

  PChannel is one of the main classes of Pluto.
  A Channel object represents one step of a reaction process,
  namely of a parent particle decaying into n decay products.
  A Channel consists of parent and decay particles and
  the decay mode. For an overview of the Pluto package
  see also PData, PParticle, PReaction, and PFilter.

                                  Author:  M.A. Kagarlis
                                  Written: 21.01.99
                         p+d part revised: 13.10.00 by V. Hejny
                                  Revised: 19.08.03 by R. Holzmann
            angular distributions Revised: 08.11.03 by I. Froehlich
           propagate parent index Revised: 22.03.05 by R. Holzmann
                     set sourceId Revised: 13.04.05 by R. Holzmann
                  helicity angles Revised: 28.11.05 by I. Froehlich
          eta->3pi matrix element Revised: 05.12.05 by I. Froehlich
             ds_dt(cos) bug fixed Revised: 11.07.06 by R. Holzmann
            e_cm static bug fixed Revised: 29.08.06 by R. Holzmann



Function Members (Methods)

public:
virtual~PChannel()
voidTObject::AbstractMethod(const char* method) const
Bool_tAddBulk(PBulkInterface* mybulk)
Bool_tAddPrologueBulk(PBulkInterface* mybulk)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidCheckDecayKey() const
intCheckSiblings(PParticle* p, PDistribution* dist, int flag)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
voidClearQuasi()
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
intDecay()
intdecay()
virtual voidTObject::Delete(Option_t* option = "")MENU
voidDisableHelicityAngle()
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
Bool_tDo(const char* command)
Bool_tDo(TH1F* f, const char* command, Int_t flag = 1)
Bool_tDo(TH2F* f, const char* command, Int_t flag = 1)
Bool_tDo(TH3F* f, const char* command, Int_t flag = 1)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
doubleGetBT()
PDistribution*GetDistributionNotFinalized(int i)
intGetDMIndex()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
static doubleGetGlobalWeight()
virtual const char*TObject::GetIconName() const
voidGetMessage()
virtual const char*GetName() const
intGetNumNotFinalized()
intGetNumPar()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
intGetParentSize()
PParticle**GetParticles()
int*GetPids()
PChannel*GetQuasi()
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
Bool_tInit()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
PChannel&operator=(const PChannel&)
virtual voidTObject::Paint(Option_t* option = "")
PChannel(const PChannel&)
PChannel(PParticle**, int nt = 2, int mf = 0, int af = 0, int bf = 0)
PChannel(int idx, PParticle** particles = __null, int mf = 0, int af = 0, int bf = 0)
PChannel(int idx, PParticle& parent, int mf = 0, int af = 0, int bf = 0)
virtual voidTObject::Pop()
virtual voidPrint(const Option_t* delme = "") const
voidPrintNew()
voidPrintReaction(Int_t check_key = 1) const
voidPrintReport() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
Bool_tReset()
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
Bool_tSetDaughters()
intSetDistribution(PDistribution* distribution)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidSetGlobalWeight(double w)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPrintTentative(bool t)
voidSetSourceId(Int_t mysourceid)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
private:
intDMIndex
intbid
PBulkInterface*bulk[5]
intbulkdecay_pos
PProjector*current_projector
intdecay_key! Key to data base entry
TStringdecay_string! For parsing the decay string
TStringdecay_string2
PDistribution*dist[10]
Double_tdist_counter[10]
Double_tdist_weight[10]
Double_tdist_weight_sum[10]
PDistribution*distribution_not_finalized[5]
Int_tdistribution_position
intdlSrc
doublee_cmused to save parameters between calls of ds_dt()
doubleecminvariant mass, weight of decay, energy threshold
doubleemininvariant mass, weight of decay, energy threshold
double*event_impact_paramfrom batch system
double*event_planefrom batch system
double*eventsfrom batch system
Long_tfEnablePattern
static doubleglobalWeight
PParticle*grandgrandparent
PParticle*grandparent
boolinit_done
TArrayIipid
intn
intnum_not_finalized
PParticle*orig_parent
PParticle*parent
PParticle*participant
boolprint_tentative
PBulkInterface*pro_bulk[5]
intpro_bulkdecay_pos
PParticle**ptcls
intptcls_extern
PParticle*quasi_composite
PChannel*quasi_pchannel
intsourceid
PParticle*spectator
intstatus
inttcSrc
intthSrc
boolthermal_disable_didx
inttid
doublewinvariant mass, weight of decay, energy threshold
Double_tweight_sumSum of all weights for debugging
double*weight_versionfrom batch system

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

PChannel(PParticle** , int nt = 2, int mf = 0, int af = 0, int bf = 0)
 Channel constructor by pointer to array of pointers to particles
 (parent, decay products), number of decay particles (default 2).

 Flags: (obsolete)
PChannel(int idx, PParticle** particles = __null, int mf = 0, int af = 0, int bf = 0)
 Channel constructor by decay-mode index
PChannel(int idx, PParticle& parent, int mf = 0, int af = 0, int bf = 0)
 Channel constructor by decay-mode index and parent reference
void IsReaction()
 Identify beam and target if the current channel is a beam + target reaction.
void CheckDecayKey(void)
void IdChannel()
 Make quasi-channel for d+p reactions
void ThermalSampling()
 parent is midrapidity thermal source
void MakeDilepton()
 parent is dilepton source
int CheckSiblings(PParticle* p, PDistribution* dist, int flag)
Bool_t Reset()
Bool_t SetDaughters()
Bool_t Init()
On the 1st call, set the grandparent, etc...
look for tentative distributions
int Decay()
 The N-body phase-space decay function is based on the CERNLIB
 routine GENBOD.

 Return code:

 status = 0  all ok
        = 1  not used
        = 2  weighting negative
        = 3  not enough energy
        = 4  not enough energy to decay to final state
        = 5  genbod error (energy violation)
        = 6  genbod error (kinematics failed)
        = 7  genbod error (energy violation)
        = 8  EOF on input in PFileInput::readParticle()
        = 9  not used
        = 10 Abort distribution rejection after 10 times, do chain again
        = 11 Fermi sampling failed for deuteron wave function
 > 80 is for PReaction
        = 80 Empty event
   STATUS_NOT_DECAYED 99
int Genbod(int )
 N-body phase-space decay of a particle in its rest frame,
 wrapper function to all the distribution methods
int SetDistribution(PDistribution* distribution)
return -1 if distribution does not match the channel
void GetMessage()
{ printf(" %s\n",Message[status]); }
char const * GetName(void)
returns the name from the data base
void PrintReport() const
void PrintReaction(Int_t check_key = 1) const
void PrintNew()
void Print(const Option_t* delme = "") const
Bool_t AddBulk(PBulkInterface* mybulk)
Add a bulk interface to the list
Each bulk object will be executed during the event loop
after the normal decay
Bool_t AddPrologueBulk(PBulkInterface* mybulk)
Add a bulk interface to the list
Each bulk object will be executed during the event loop
before the normal decay
PChannel(PParticle** , int nt = 2, int mf = 0, int af = 0, int bf = 0)
 Channel constructor by particle array
~PChannel()
 Channel constructor by decay-mode index and parent reference
void SetSourceId(Int_t mysourceid)
int decay()
 N-body phase-space decay function based on the CERNLIB routine
 GENBOD. Resonance and dilepton masses (for Dalitz decays)
 are sampled in PData. Scattering angles are sampled here, for
 selected channels (see idChannel).
PParticle ** GetParticles()
 address of array of pointers to the channel particles
int * GetPids()
 address of array of channel-particle ids
int GetNumPar()
 number of decay products
double GetBT()
PChannel * GetQuasi(void)
******for quasi-elastic handling:
void ClearQuasi(void)
int GetParentSize()
 1 or 2 for elementary or quasi particles respectively
void SetGlobalWeight(double w)
double GetGlobalWeight()
int GetDMIndex()
returns the decay mode index of this channel
void SetPrintTentative(bool t)
  double ds_dt(double);
 ...> moved to PParticle (IF)
 ds/dt(cos_th_cm) in the cm for N+N->N+Delta. With the mass of Delta
 sampled independently in PData, the simulated events are distributed
 as ds/dOmega (normalized). Ref: NPA459 (1986) 503
void DisableHelicityAngle()
int GetNumNotFinalized()
this is for envelope distributions:
PDistribution * GetDistributionNotFinalized(int i)
Bool_t Do(const char* command)
return GetCurrentProjector()
Bool_t Do(TH1F* f, const char* command, Int_t flag = 1)
Bool_t Do(TH2F* f, const char* command, Int_t flag = 1)
Bool_t Do(TH3F* f, const char* command, Int_t flag = 1)
Int_t ReadFileInput()
 parent is midrapidity thermal source