diff --git a/CMakeLists.txt b/CMakeLists.txt index fc8c37f..ff389a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,7 +52,7 @@ ENDFOREACH(f) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/PluginLinkDef.h) FOREACH(f ${PLUGIN_CLASSES_NAMES}) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/PluginLinkDef.h "\#pragma link C++ class ${f};\n") -ENDFOREACH(f) +ENDFOREACH(f) ########################################################### diff --git a/include/PAdaptiveMesh.h b/include/PAdaptiveMesh.h index 809f55d..ce9aee0 100644 --- a/include/PAdaptiveMesh.h +++ b/include/PAdaptiveMesh.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 1.02.2003 -// Revised: +// Revised: #ifndef _PADAPTIVEMESH_H_ #define _PADAPTIVEMESH_H_ @@ -22,7 +22,7 @@ class PAdaptiveMesh : public TObject { PAdaptiveMesh *sub_tree[MAX_SUBMESH]; Double_t sub_area[MAX_SUBMESH]; TF1 *tf1; - TLine *line; //upper line for the Draw() function + TLine *line; //upper line for the Draw() function void ReCalc(void); PAdaptiveMesh *GetRandomBin(Double_t f_random); @@ -31,11 +31,11 @@ class PAdaptiveMesh : public TObject { //constructor PAdaptiveMesh(Double_t my_x_max, Double_t my_x_min, Double_t my_y_max); ~PAdaptiveMesh(); - + void SetTF1(TF1 * t) {tf1 = t;}; Double_t GetRandom(); Double_t GetArea() {return area_size;}; - + Double_t GetXMax() {return x_max;}; Double_t GetXMin() {return x_min;}; Double_t GetYMax() {return y_max;}; diff --git a/include/PAdaptiveMeshN.h b/include/PAdaptiveMeshN.h index c99cf09..9f6e068 100644 --- a/include/PAdaptiveMeshN.h +++ b/include/PAdaptiveMeshN.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 1.02.2008 -// Revised: +// Revised: #ifndef _PADAPTIVEMESHN_H_ #define _PADAPTIVEMESHN_H_ @@ -33,7 +33,7 @@ class PAdaptiveMeshN : public TObject { void ReCalc(void); //re-calculate all volumes void FixArray(void); //set the fixed array contributions - + UInt_t pattern; Int_t mcpoints; Double_t threshold_diff; @@ -45,10 +45,10 @@ class PAdaptiveMeshN : public TObject { //constructor //pattern sets the variables to be sampled in the GetWeight method in PChannelModel - PAdaptiveMeshN(UInt_t my_pattern, Int_t my_max_dimensions, + PAdaptiveMeshN(UInt_t my_pattern, Int_t my_max_dimensions, PChannelModel *my_model, Double_t my_y_max); PAdaptiveMeshN(); - void SetDefaults(UInt_t my_pattern, Int_t my_max_dimensions, + void SetDefaults(UInt_t my_pattern, Int_t my_max_dimensions, PChannelModel *my_model, Double_t my_y_max); void ReCalcYMax(void); ~PAdaptiveMeshN(); @@ -61,7 +61,7 @@ class PAdaptiveMeshN : public TObject { Bool_t GetRandom(); Double_t GetArea() {return area_size;}; - + Double_t GetArrayValue(Int_t dimension) { if (dimension > num_dimensions) { Warning("GetArrayValue", "dimension>num_dimensions"); @@ -87,7 +87,7 @@ class PAdaptiveMeshN : public TObject { void SetYMax(Double_t d) {y_max = d;}; void SetMCPoints(Int_t n) {mcpoints = n;}; - + void SetThreshold(Double_t diff, Double_t abs) { threshold_diff = diff; threshold_abs = abs; diff --git a/include/PAngularDistribution.h b/include/PAngularDistribution.h index 6571c3a..8889c1a 100644 --- a/include/PAngularDistribution.h +++ b/include/PAngularDistribution.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 3.7.2006 -// Revised: +// Revised: #ifndef _PANGULARDISTRIBUTION_H_ #define _PANGULARDISTRIBUTION_H_ @@ -17,13 +17,13 @@ class PAngularDistribution : public PDistribution { - + public: PAngularDistribution(); PAngularDistribution(const Char_t *id, const Char_t *de); - + PDistribution* Clone(const char *delme=NULL) const; - + Bool_t Init(void); Bool_t Prepare(void); Bool_t Finalize(void); @@ -33,7 +33,7 @@ class PAngularDistribution : public PDistribution { void SetAngleFunction(TF1 *f) {angles1=f;}; void SetAngleFunction(TF2 *f) {angles2=f;}; - void SetAngleFunction(TGraph *f, Bool_t useSpline=kFALSE, + void SetAngleFunction(TGraph *f, Bool_t useSpline=kFALSE, Bool_t useSymmetry=kFALSE) { anglesg = f; spline = useSpline; @@ -57,7 +57,7 @@ class PAngularDistribution : public PDistribution { Bool_t direct_sampling_possible, direct_sampling_done; //Try to use direct sampling and not rejection protected: - + TF1 *angles1; TF2 *angles2; TH1 *anglesh; diff --git a/include/PAnyDistribution.h b/include/PAnyDistribution.h index 37c581f..ce366e8 100644 --- a/include/PAnyDistribution.h +++ b/include/PAnyDistribution.h @@ -14,7 +14,7 @@ class PAnyDistribution : public PDistribution { - + public: PAnyDistribution(); PAnyDistribution(const Char_t *id, const Char_t *de); @@ -30,7 +30,7 @@ class PAnyDistribution : public PDistribution { Bool_t AddEquation(TH2 *histo, const char *command); //adds an equation + cache for non-uniform distributions Bool_t AddEquation(TH3 *histo, const char *command); //adds an equation + cache for non-uniform distributions Bool_t AddEquation(const char *command); - + void SetMaxEnhancementFactor(Double_t _max_enhance_factor) { max_enhance_factor = _max_enhance_factor; }; @@ -55,7 +55,7 @@ class PAnyDistribution : public PDistribution { Double_t *x, *y, *z; Double_t max, max_enhance_factor; - ClassDef(PAnyDistribution, 0) //Any possible distribution for a->b+c+d + ClassDef(PAnyDistribution, 0) //Any possible distribution for a->b+c+d }; diff --git a/include/PArray.h b/include/PArray.h index f8b70c1..33e189d 100644 --- a/include/PArray.h +++ b/include/PArray.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 1.08.2009 -// Revised: +// Revised: // PArray // 1 or 2dim array from file(s) @@ -27,14 +27,14 @@ class PArray : public TObject { TArrayD *vals_2d; Int_t real_size_1d; Double_t scaling; - + public: //constructor PArray(Int_t dimension); ~PArray(); - + void Scaling(Double_t sc) { scaling=sc; }; diff --git a/include/PBatch.h b/include/PBatch.h index 649f0d6..8616f64 100644 --- a/include/PBatch.h +++ b/include/PBatch.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 14.02.2008 -// +// #ifndef _PBATCH_H_ #define _PBATCH_H_ @@ -109,8 +109,8 @@ class PBatch : public TObject { private: Bool_t CheckAndSplit(char * arg, char delim, int *key1, int *key2); - - Bool_t GetArguments(const char *a, /* const char *b, */ + + Bool_t GetArguments(const char *a, /* const char *b, */ char *name, char **function, char **arg1, char **arg2); Int_t CheckObjectType(Int_t key); Int_t GetKey(char *name, int fl, int makeflag); @@ -153,13 +153,13 @@ class PBatch : public TObject { Int_t else_position; Int_t current_position; - static Int_t stack_num_batch[MAX_STACK_GOSUB], stack_num_bulk[MAX_STACK_GOSUB], + static Int_t stack_num_batch[MAX_STACK_GOSUB], stack_num_bulk[MAX_STACK_GOSUB], stack_num_command[MAX_STACK_GOSUB], stack_num_pos; void AddSpacePlaceholder(char *command); void RemoveSpacePlaceholder(char *command); Int_t EvalPFormula(char *command); - + PValues pdummy; @@ -182,7 +182,7 @@ class PBatch : public TObject { TTree *tree; //Pointer to storage tree Int_t *size_branches; Int_t *key_branches; - + public: @@ -195,7 +195,7 @@ class PBatch : public TObject { Bool_t AddCommand(char command, int key_a, int key1, int key2, int key3=-1, int key4=-1, int key5=-1); void SetPosition(Int_t my_num_batch, Int_t my_num_bulk) { - num_batch = my_num_batch; + num_batch = my_num_batch; num_bulk = my_num_bulk; }; Int_t GetNewBatch() {return locnum_batch;}; @@ -260,7 +260,7 @@ class PBatch : public TObject { void SetVarList(char *my_x) { //Allowed commands for new variables - //Format must be "a;b;c;" with trailing ;'s + //Format must be "a;b;c;" with trailing ;'s //If NULL don't care! varlist = my_x; }; diff --git a/include/PBeamSmearing.h b/include/PBeamSmearing.h index 6c87cb5..fa126f4 100644 --- a/include/PBeamSmearing.h +++ b/include/PBeamSmearing.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 18.7.2007 -// Revised: +// Revised: #ifndef _PBEAMSMEARING_H_ #define _PBEAMSMEARING_H_ @@ -13,19 +13,19 @@ class PBeamSmearing : public PDistribution { - + public: PBeamSmearing(); ~PBeamSmearing(); PBeamSmearing(const Char_t *id, const Char_t *de); - + PDistribution *Clone(const char *delme=NULL) const; Bool_t Init(void); Bool_t Prepare(void); - + void Print(const Option_t *delme=NULL) const; //Debug info - + void SetMomentumSmearing(TF1 *f) { //A function stretching the beam momentum (x=1 means no modification) mom_smearing = f; @@ -35,17 +35,17 @@ class PBeamSmearing : public PDistribution { //A function stretching the beam momentum (x=1 means no modification) mom_smearing_histo = f; }; - + void SetMomentumFunction(TF1 *f) { //A function which desribes the absolute momentum distribution mom_function = f; }; - + void SetMomentumFunction(TH1 *f) { //A function which desribes the absolute momentum distribution mom_function_histo = f; }; - + void SetBeamParameters(Double_t th, Double_t ph, Double_t sig) { //N.B. these are in units DEGREE because this is more convenient! thetaBeam = th * TMath::Pi() / 180.; @@ -57,7 +57,7 @@ class PBeamSmearing : public PDistribution { //smearing distribution in degree ang_smearing=f; }; - + void SetReaction(const char *reaction); private: diff --git a/include/PBreitWigner.h b/include/PBreitWigner.h index 059dc9a..4982d1d 100644 --- a/include/PBreitWigner.h +++ b/include/PBreitWigner.h @@ -10,13 +10,13 @@ #include "PHadronModel.h" class PBreitWigner : public PHadronModel { - + public: PBreitWigner(); PBreitWigner(const Char_t *id, const Char_t *de, Int_t key); PDistribution* Clone(const char *delme=NULL) const; - using PDistribution::GetWeight; + using PDistribution::GetWeight; virtual Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); using PDistribution::SampleMass; Bool_t SampleMass(Double_t *mass, Int_t *didx=NULL); @@ -25,9 +25,9 @@ class PBreitWigner : public PHadronModel { //overwrites the partial model from the data base width_model = m; }; - + protected: - + Double_t mr; // Resonance pole mass PChannelModel *width_model; diff --git a/include/PBulkInterface.h b/include/PBulkInterface.h index 1a6ffe2..4e504cd 100644 --- a/include/PBulkInterface.h +++ b/include/PBulkInterface.h @@ -1,6 +1,6 @@ // Author: Ingo Froehlich // Written: 10/07/2007 -// Modified: +// Modified: // PBulkInterface Class Header #ifndef _PBULKINTERFACE_H_ @@ -22,10 +22,10 @@ class PBulkInterface: public TObject { private: - static Int_t gBulkCounter; - + static Int_t gBulkCounter; + protected: - + Double_t current_weight; Int_t bulk_id; //Unique bulk ID Int_t fPriority; //order when adding the bulk in PReaction @@ -38,7 +38,7 @@ class PBulkInterface: public TObject { public: PBulkInterface(); - + virtual bool Modify(PParticle ** array, int *decay_done, int *num, int maxnum); //Modify particle bulk void SetWeight(Double_t c) {current_weight = c;}; @@ -66,7 +66,7 @@ ClassDef(PBulkInterface,0) // Pluto bulk interface base class }; -#endif +#endif diff --git a/include/PChannel.h b/include/PChannel.h index 9c29567..174dfd9 100644 --- a/include/PChannel.h +++ b/include/PChannel.h @@ -31,7 +31,7 @@ class PChannel : public TObject { - + public: PChannel(PParticle **, int nt=2, int mf=0, int af=0, int bf=0); @@ -45,7 +45,7 @@ class PChannel : public TObject { ~PChannel() { // Channel destructor - if (ipid.GetArray()) + if (ipid.GetArray()) ipid.~TArrayI(); // necessary, because of constr 2+3, for constr 1 also better if (ptcls && ptcls_extern>=0) { @@ -69,7 +69,7 @@ class PChannel : public TObject { } int Decay(); - // N-body phase-space decay function based on the CERNLIB routine + // 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). @@ -77,7 +77,7 @@ class PChannel : public TObject { int decay() { //kept for comp. return Decay(); - }; + }; PParticle **GetParticles() { // address of array of pointers to the channel particles @@ -87,13 +87,13 @@ class PChannel : public TObject { int *GetPids() { // address of array of channel-particle ids return ipid.GetArray(); - } + } - int GetNumPar() { + int GetNumPar() { // number of decay products - return n; + return n; } - + //******for distribution handling: int SetDistribution(PDistribution *distribution); // return -1 if distribution does not match the channel @@ -102,7 +102,7 @@ class PChannel : public TObject { double GetBT() { PParticle *beam = ptcls[0]->GetScattering(0); PParticle *target = ptcls[0]->GetScattering(1); - + if (beam) { return (beam->KE() > target->KE()? beam->KE(): target->KE()); } @@ -117,21 +117,21 @@ class PChannel : public TObject { quasi_pchannel = NULL; }; - int GetParentSize() { + int GetParentSize() { // 1 or 2 for elementary or quasi particles respectively - return 1 + (ipid[0]>=1000); - } - - static void SetGlobalWeight(double w) { - globalWeight = w; - } - static double GetGlobalWeight() { - return globalWeight; + return 1 + (ipid[0]>=1000); + } + + static void SetGlobalWeight(double w) { + globalWeight = w; + } + static double GetGlobalWeight() { + return globalWeight; } - int GetDMIndex() { + int GetDMIndex() { //returns the decay mode index of this channel - return DMIndex; + return DMIndex; } void GetMessage(); @@ -140,7 +140,7 @@ class PChannel : public TObject { void Print(const Option_t *delme="") const; void PrintReaction(Int_t check_key = 1) const; void PrintNew(); - + void PrintReport() const; //Print a final report after sampling void CheckDecayKey() const; @@ -152,7 +152,7 @@ class PChannel : public TObject { // sampled independently in PData, the simulated events are distributed // as ds/dOmega (normalized). Ref: NPA459 (1986) 503 - void SetPrintTentative(bool t){ + void SetPrintTentative(bool t){ // Print the tentative messages on the 1st call print_tentative = t; }; @@ -168,7 +168,7 @@ class PChannel : public TObject { PDistribution *GetDistributionNotFinalized(int i) { return distribution_not_finalized[i]; }; - + Bool_t AddBulk(PBulkInterface *mybulk); Bool_t AddPrologueBulk(PBulkInterface *mybulk); //Bulk IO before any decay @@ -197,7 +197,7 @@ class PChannel : public TObject { int decay_key; //! Key to data base entry TString decay_string; //! For parsing the decay string - TString decay_string2; + TString decay_string2; // For generic distributions PDistribution *dist[MAX_DISTRIBUTIONS]; @@ -261,7 +261,7 @@ class PChannel : public TObject { PDistribution *distribution_not_finalized[MAX_NUM_NOT_FINALIZED]; int bulkdecay_pos, pro_bulkdecay_pos; - + PBulkInterface *bulk[MAX_BULKDECAY]; PBulkInterface *pro_bulk[MAX_BULKDECAY]; PProjector *current_projector; @@ -279,14 +279,14 @@ class PChannel : public TObject { current_projector = new PProjector(); AddBulk(current_projector); } - } else { + } else { current_projector = new PProjector(); AddBulk(current_projector); } } return current_projector; } - + ClassDef(PChannel,0) //Pluto Channel Class }; diff --git a/include/PChannelModel.h b/include/PChannelModel.h index 6870926..50aae94 100644 --- a/include/PChannelModel.h +++ b/include/PChannelModel.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 23.5.2007 -// Revised: +// Revised: #ifndef _PCHANNELMODEL_H_ #define _PCHANNELMODEL_H_ @@ -13,13 +13,13 @@ class PChannelModel : public PDistribution { - + public: PChannelModel(); PChannelModel(const Char_t *id, const Char_t *de, Int_t key=-1); PDistribution* Clone(const char*delme=NULL) const; - using PDistribution::SampleMass; + using PDistribution::SampleMass; virtual Bool_t SampleMass(Double_t *mass, Int_t *didx=NULL); @@ -28,15 +28,15 @@ class PChannelModel : public PDistribution { if (SampleMass(&mass, &didx)) return mass; return 0.; } - Double_t SampleTotalMass(void) { - return SampleMass(-1); - } + Double_t SampleTotalMass(void) { + return SampleMass(-1); + } //weight/amplitude calculations: To avoid endless loops, - using PDistribution::GetWeight; + using PDistribution::GetWeight; virtual Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); - + Double_t GetWeight(Double_t mass, Int_t *didx=NULL) { //wrapper for models with single variable only return GetWeight(&mass, didx); @@ -56,7 +56,7 @@ class PChannelModel : public PDistribution { m[2] = mass3; return GetWeight(m, didx); }; - Double_t GetWeight(Double_t mass, Double_t mass2, Double_t mass3, Double_t mass4, + Double_t GetWeight(Double_t mass, Double_t mass2, Double_t mass3, Double_t mass4, Int_t *didx=NULL) { //wrapper for models with 4 variables Double_t m[4]; @@ -66,7 +66,7 @@ class PChannelModel : public PDistribution { m[3] = mass4; return GetWeight(m, didx); }; - Double_t GetWeight(Double_t mass, Double_t mass2, Double_t mass3, Double_t mass4, Double_t mass5, + Double_t GetWeight(Double_t mass, Double_t mass2, Double_t mass3, Double_t mass4, Double_t mass5, Int_t *didx=NULL) { //wrapper for models with 5 variables Double_t m[5]; @@ -94,13 +94,13 @@ class PChannelModel : public PDistribution { Bool_t res = GetBR(mass, &br); if (res) return br; return 0.; - } + } virtual Bool_t GetBR(Double_t mass, Double_t *br, Double_t totalwidth=-1.); virtual int GetDepth(int i=0); - // Returns the total number of embedded recursive decays + // Returns the total number of embedded recursive decays // (TDepth if flag=0) or the number of embedded recursive // hadronic decays (HDepth if flag=1). // The default value 0 means the index has not been accessed yet. @@ -145,7 +145,7 @@ class PChannelModel : public PDistribution { void SetWidthInit (Int_t w) {width_init=w;}; protected: - + Double_t width; //Mass-dependent width container PMesh *mesh; //Linear mesh container for fast lookup Int_t width_init; //flag for the 1st initialization in getWidth diff --git a/include/PCommandList.h b/include/PCommandList.h index 5b4ff47..e265beb 100644 --- a/include/PCommandList.h +++ b/include/PCommandList.h @@ -14,7 +14,7 @@ class PCommandList : public TObjString { TObjString fCmd; //command - TObjString fNext; //Next command + TObjString fNext; //Next command PCommandList *fNextP; //! Pointer to next command Int_t fLevel; //! Level of nested objects @@ -28,7 +28,7 @@ class PCommandList : public TObjString { PCommandList(TString name, TString cmd); PCommandList(TObject *obj, TString name, TString cmd); ~PCommandList(); - + const char *GetCmd() const { return fCmd.GetString().Data(); }; @@ -37,8 +37,8 @@ class PCommandList : public TObjString { Bool_t AddCommand(TObject *obj, const char *cmd, const char *basename = NULL, int level = 0); Bool_t GetCommand(char **cmd, int level = 0, TObject **obj = NULL); - using TObject::Write; - Int_t Write(const char *name, Int_t option, Int_t bufsize) const; + using TObject::Write; + Int_t Write(const char *name, Int_t option, Int_t bufsize) const; void Print(const Option_t *delme = NULL) const; ClassDef(PCommandList, 1) //Tool class to make lists of commands diff --git a/include/PComplexBreitWigner.h b/include/PComplexBreitWigner.h index d8d65a1..37fb234 100644 --- a/include/PComplexBreitWigner.h +++ b/include/PComplexBreitWigner.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 28.6.2007 -// Revised: +// Revised: #ifndef _PCOMPLEXBREITWIGNER_H_ #define _PCOMPLEXBREITWIGNER_H_ @@ -14,13 +14,13 @@ class PComplexBreitWigner : public PBreitWigner { - + public: PComplexBreitWigner(); PComplexBreitWigner(const Char_t *id, const Char_t *de, Int_t key); PDistribution* Clone(const char *delme=NULL) const; - using PDistribution::GetWeight; + using PDistribution::GetWeight; Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); TComplex GetAmplitude(Double_t *mass, Int_t *didx=NULL); @@ -41,7 +41,7 @@ class PComplexBreitWigner : public PBreitWigner { virtual void Print(const Option_t *delme=NULL) const ; //Debug info private: - + void ReadModes(void); void ReadModels(void); int readModesDone,readModelsDone,updateAmplitude; diff --git a/include/PCross.h b/include/PCross.h index 46a96b6..5fbb527 100644 --- a/include/PCross.h +++ b/include/PCross.h @@ -1,7 +1,7 @@ // Author: K.Tyminska // Written: 20/11/2001 // Revised: 08/07/2004 R.H. -// +// #ifndef _PCROSS_H_ #define _PCROSS_H_ @@ -17,11 +17,11 @@ class PCross : public TObject { public: PCross(); ~PCross(){;} - + static void print(int, Double_t bmin=0., Double_t bmax=100.); static void print(char *,Double_t bmin=0., Double_t bmax=100.); - static void setSystem(int, int, int, int, Double_t Energy = 1., Bool_t flag=0); - static void plot(int, Double_t, Double_t, Double_t bmin=0., + static void setSystem(int, int, int, int, Double_t Energy = 1., Bool_t flag=0); + static void plot(int, Double_t, Double_t, Double_t bmin=0., Double_t bmax=100., const char * Opt = "L", Int_t col=1); static void plot(char *, Double_t, Double_t, Double_t bmin=0., Double_t bmax=100., const char * Opt = "L", Int_t col=1); @@ -40,10 +40,10 @@ class PCross : public TObject { static Bool_t doMult; static Double_t Npart(int, int, Double_t); - static Double_t ratiosignew(Double_t, Double_t); // T in MeV, mm = MeV + static Double_t ratiosignew(Double_t, Double_t); // T in MeV, mm = MeV static Double_t calc(Double_t* , Double_t*); static Bool_t check(Int_t part); - + ClassDef(PCross,0) // meson production cross sections in HIC }; diff --git a/include/PDalitzDecay.h b/include/PDalitzDecay.h index f39991d..60f32c8 100644 --- a/include/PDalitzDecay.h +++ b/include/PDalitzDecay.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 27.5.2007 -// Revised: +// Revised: #ifndef _PDALITZDECAY_H_ #define _PDALITZDECAY_H_ @@ -12,7 +12,7 @@ #include "PKinematics.h" class PDalitzDecay : public PChannelModel { - + public: PDalitzDecay(); PDalitzDecay(const Char_t *id, const Char_t *de, Int_t key); @@ -24,7 +24,7 @@ class PDalitzDecay : public PChannelModel { Bool_t GetWidth(Double_t mass, Double_t *width, Int_t didx=-1); - using PDistribution::GetWeight; + using PDistribution::GetWeight; Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); Double_t GetWeight(void); int GetDepth(int i=0); @@ -42,7 +42,7 @@ class PDalitzDecay : public PChannelModel { Double_t draw_parent_mass; protected: - + PParticle *parent, *dilepton, *other; long double alpha; @@ -53,7 +53,7 @@ class PDalitzDecay : public PChannelModel { double p1; double mass_e, mass_ee; - + double p2; double p3; double mass_x; // mass of second (non dilepton) product @@ -81,10 +81,10 @@ class PDalitzDecay : public PChannelModel { //they are used here by the official wrapper funcions virtual double dGdM(const int &id, const double &m, const double &ecm); double FDalitz(const int &id, const double &m, double ecm); - void sampleMD(const double &ecm, const int &id, + void sampleMD(const double &ecm, const int &id, double &m, const double &m1); double PhotonBR(const int &id); - + ClassDef(PDalitzDecay, 0) // Dalitz decays "a -> dilepton/dimuon + b" }; diff --git a/include/PDalitzDistribution.h b/include/PDalitzDistribution.h index 33e18f4..9954a65 100644 --- a/include/PDalitzDistribution.h +++ b/include/PDalitzDistribution.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 3.7.2006 -// Revised: +// Revised: #ifndef _PDALITZDISTRIBUTION_H_ #define _PDALITZDISTRIBUTION_H_ @@ -12,7 +12,7 @@ class PDalitzDistribution : public PDistribution { - + public: PDalitzDistribution(); PDalitzDistribution(const Char_t *id, const Char_t *de); @@ -51,7 +51,7 @@ class PDalitzDistribution : public PDistribution { void MakeVars(void); - ClassDef(PDalitzDistribution, 0) //Dalitz plane decay slopes for a->b+c+d + ClassDef(PDalitzDistribution, 0) //Dalitz plane decay slopes for a->b+c+d }; #endif diff --git a/include/PData.h b/include/PData.h index 9a5c668..6c2d98a 100644 --- a/include/PData.h +++ b/include/PData.h @@ -14,12 +14,12 @@ using namespace std; class PData : public TObject { - + public: static void SetWeightVersion(Int_t i) { //PData::WeightVersion = i; - *(makeStaticData()->GetBatchValue("_system_weight_version")) + *(makeStaticData()->GetBatchValue("_system_weight_version")) = (Double_t) i; } @@ -30,7 +30,7 @@ class PData : public TObject { static double LMass(const int &id) { - // lower mass limit, by particle pid + // lower mass limit, by particle pid Double_t *mass; @@ -40,31 +40,31 @@ class PData : public TObject { if ( makeStaticData()->GetParticleTotalWidth(id) < 1.e-3 ) { // (quasi)stable - return 0.999*makeStaticData()->GetParticleMass(id); + return 0.999*makeStaticData()->GetParticleMass(id); } // else if ( id==41 ) return 2.*PMass[8]; // rho0 else if (id == 41) // rho0 - return 2.*makeStaticData()->GetParticleMass(2); + return 2.*makeStaticData()->GetParticleMass(2); else if (id == 42 || id == 43) // rho+,rho- return makeStaticData()->GetParticleMass(8)+ - makeStaticData()->GetParticleMass(7); + makeStaticData()->GetParticleMass(7); else if (id == 52) // omega - return 2.*makeStaticData()->GetParticleMass(2); + return 2.*makeStaticData()->GetParticleMass(2); else if (id == 55) // phi - return 3.*makeStaticData()->GetParticleMass(2); + return 3.*makeStaticData()->GetParticleMass(2); else if (makeStaticData()->GetParticleBaryon(id)) // resonance - return makeStaticData()->GetParticleMass(14); - else if (makeStaticData()->GetParticleTotalWidth(id) > 0.01) + return makeStaticData()->GetParticleMass(14); + else if (makeStaticData()->GetParticleTotalWidth(id) > 0.01) return TMath::Max(0., 0.999*(makeStaticData()->GetParticleMass(id)- 5.*makeStaticData()->GetParticleTotalWidth(id))); - else + else return TMath::Max(0., 0.999*(makeStaticData()->GetParticleMass(id)- 15.*makeStaticData()->GetParticleTotalWidth(id))); } - - static double LMass(const char *id) { + + static double LMass(const char *id) { // lower mass limit, by name - return LMass(makeStaticData()->IsParticleValid(id)); + return LMass(makeStaticData()->IsParticleValid(id)); } static double UMass(const int &id) { @@ -74,18 +74,18 @@ class PData : public TObject { if (makeDataBase()->GetParamDouble ((char*)"pid", id, (char*)"umass", &mass)) return *mass; if (id==50 || makeStaticData()->IsParticle(id,"dilepton")) // dilepton - return 1.e10; + return 1.e10; else if (makeStaticData()->GetParticleTotalWidth(id) < 1.e-3) // (quasi)stable - return 1.001*makeStaticData()->GetParticleMass(id); + return 1.001*makeStaticData()->GetParticleMass(id); // else return makeStaticData()->GetParticleMass(id)+1.; // just go 1 GeV above pole else return makeStaticData()->GetParticleMass(id) +10.*makeStaticData()->GetParticleTotalWidth(id); //better in units of sigma } - - static double UMass(const char * id) { + + static double UMass(const char * id) { // upper mass limit, by name - return UMass(makeStaticData()->IsParticleValid(id)); + return UMass(makeStaticData()->IsParticleValid(id)); } @@ -106,122 +106,122 @@ class PData : public TObject { return (id == makeStaticData()->GetParticleID("NS11+")|| id == makeStaticData()->GetParticleID("NS110")); } - + static int IsPi(const int &id) { // check if id corresponds to a pion return (id == makeStaticData()->GetParticleID("pi0")|| id == makeStaticData()->GetParticleID("pi+")|| id == makeStaticData()->GetParticleID("pi-")); } - - static int IsN(const int &id) { + + static int IsN(const int &id) { // check if id corresponds to a nucleon return (id == makeStaticData()->GetParticleID("p")|| id == makeStaticData()->GetParticleID("n")); } - + static int IsRho(const int &id) { // check if id corresponds to a rho meson return (id == makeStaticData()->GetParticleID("rho0")|| id == makeStaticData()->GetParticleID("rho+")|| id == makeStaticData()->GetParticleID("rho-")); } - + static int IsNPiPi(const int &i1, const int &i2, const int &i3) { // checks if i1+i2+i3 are N+pi+pi return ((IsN(i1) && IsPi(i2) && IsPi(i3))|| - (IsN(i2) && IsPi(i1) && IsPi(i3))|| + (IsN(i2) && IsPi(i1) && IsPi(i3))|| (IsN(i3) && IsPi(i1) && IsPi(i2))); } - + static int IsDalitz(const int &id, const int &i1, const int &i2) { // checks if the decay id->i1+i2 is a known Dalitz decay - int eeg = - (makeStaticData()->IsParticle(i1,"dilepton") && - makeStaticData()->IsParticle(i2,"g")) || - (makeStaticData()->IsParticle(i1,"g") && + int eeg = + (makeStaticData()->IsParticle(i1,"dilepton") && + makeStaticData()->IsParticle(i2,"g")) || + (makeStaticData()->IsParticle(i1,"g") && makeStaticData()->IsParticle(i2,"dilepton")); // e+e-gamma? - int mumug = - (makeStaticData()->IsParticle(i1,"dimuon") && - makeStaticData()->IsParticle(i2,"g")) || - (makeStaticData()->IsParticle(i1,"g") && + int mumug = + (makeStaticData()->IsParticle(i1,"dimuon") && + makeStaticData()->IsParticle(i2,"g")) || + (makeStaticData()->IsParticle(i1,"g") && makeStaticData()->IsParticle(i2,"dimuon")); // mu+mu-gamma? - int eepi = - (makeStaticData()->IsParticle(i1,"dilepton") && - makeStaticData()->IsParticle(i2,"pi0")) || - (makeStaticData()->IsParticle(i1,"pi0") && + int eepi = + (makeStaticData()->IsParticle(i1,"dilepton") && + makeStaticData()->IsParticle(i2,"pi0")) || + (makeStaticData()->IsParticle(i1,"pi0") && makeStaticData()->IsParticle(i2,"dilepton")); // e+e-pi0? - int mumupi = - (makeStaticData()->IsParticle(i1,"dimuon") && - makeStaticData()->IsParticle(i2,"pi0")) || - (makeStaticData()->IsParticle(i1,"pi0") && + int mumupi = + (makeStaticData()->IsParticle(i1,"dimuon") && + makeStaticData()->IsParticle(i2,"pi0")) || + (makeStaticData()->IsParticle(i1,"pi0") && makeStaticData()->IsParticle(i2,"dimuon")); // mu+mu-pi0? // int eeeta = (Is(i1,"dilepton")&&Is(i2,"eta")) || (Is(i1,"eta")&&Is(i2,"dilepton")); // e+e-eta? - - int pseudo = - (makeStaticData()->IsParticle(id,"eta") || - makeStaticData()->IsParticle(id,"eta'") || + + int pseudo = + (makeStaticData()->IsParticle(id,"eta") || + makeStaticData()->IsParticle(id,"eta'") || makeStaticData()->IsParticle(id,"pi0")); // pseudo-scalar meson? - int vector = - (makeStaticData()->IsParticle(id,"w") || - makeStaticData()->IsParticle(id,"phi") || + int vector = + (makeStaticData()->IsParticle(id,"w") || + makeStaticData()->IsParticle(id,"phi") || makeStaticData()->IsParticle(id,"J/Psi")); // vector meson? int d = makeStaticData()->GetParticleBaryon(id) && // Baryon Dalitz decay in general? - ((makeStaticData()->IsParticle(i1,"dilepton") && - makeStaticData()->GetParticleBaryon(i2)) || - (makeStaticData()->GetParticleBaryon(i1) && + ((makeStaticData()->IsParticle(i1,"dilepton") && + makeStaticData()->GetParticleBaryon(i2)) || + (makeStaticData()->GetParticleBaryon(i1) && makeStaticData()->IsParticle(i2,"dilepton"))); #if 1 - int D0 = + int D0 = makeStaticData()->IsParticle(id,"D0") && // Delta0 Dalitz decay? - ((makeStaticData()->IsParticle(i1,"dilepton") && - makeStaticData()->IsParticle(i2,"n")) || - (makeStaticData()->IsParticle(i1,"n") && + ((makeStaticData()->IsParticle(i1,"dilepton") && + makeStaticData()->IsParticle(i2,"n")) || + (makeStaticData()->IsParticle(i1,"n") && makeStaticData()->IsParticle(i2,"dilepton"))); - int Dp = + int Dp = makeStaticData()->IsParticle(id,"D+") && // Delta+ Dalitz decay? - ((makeStaticData()->IsParticle(i1,"dilepton") && - makeStaticData()->IsParticle(i2,"p")) || - (makeStaticData()->IsParticle(i1,"p") && + ((makeStaticData()->IsParticle(i1,"dilepton") && + makeStaticData()->IsParticle(i2,"p")) || + (makeStaticData()->IsParticle(i1,"p") && makeStaticData()->IsParticle(i2,"dilepton"))); - int D0m = + int D0m = makeStaticData()->IsParticle(id,"D0") && // Delta0 Dalitz decay? - ((makeStaticData()->IsParticle(i1,"dimuon") && - makeStaticData()->IsParticle(i2,"n")) || - (makeStaticData()->IsParticle(i1,"n") && + ((makeStaticData()->IsParticle(i1,"dimuon") && + makeStaticData()->IsParticle(i2,"n")) || + (makeStaticData()->IsParticle(i1,"n") && makeStaticData()->IsParticle(i2,"dimuon"))); - int Dpm = + int Dpm = makeStaticData()->IsParticle(id,"D+") && // Delta+ Dalitz decay? - ((makeStaticData()->IsParticle(i1,"dimuon") && - makeStaticData()->IsParticle(i2,"p")) || - (makeStaticData()->IsParticle(i1,"p") && + ((makeStaticData()->IsParticle(i1,"dimuon") && + makeStaticData()->IsParticle(i2,"p")) || + (makeStaticData()->IsParticle(i1,"p") && makeStaticData()->IsParticle(i2,"dimuon"))); - int pn = + int pn = makeStaticData()->IsParticle(id,"pn") && // pn bremsstrahlung? - ((makeStaticData()->IsParticle(i1,"dilepton") && - makeStaticData()->IsParticle(i2,"p")) || - (makeStaticData()->IsParticle(i1,"p") && + ((makeStaticData()->IsParticle(i1,"dilepton") && + makeStaticData()->IsParticle(i2,"p")) || + (makeStaticData()->IsParticle(i1,"p") && makeStaticData()->IsParticle(i2,"dilepton"))); - int NS0 = + int NS0 = makeStaticData()->IsParticle(id,"NS110") && // N(1535)0 Dalitz decay? - ((makeStaticData()->IsParticle(i1,"dilepton") && - makeStaticData()->IsParticle(i2,"n")) || - (makeStaticData()->IsParticle(i1,"n") && + ((makeStaticData()->IsParticle(i1,"dilepton") && + makeStaticData()->IsParticle(i2,"n")) || + (makeStaticData()->IsParticle(i1,"n") && makeStaticData()->IsParticle(i2,"dilepton"))); - int NSp = + int NSp = makeStaticData()->IsParticle(id,"NS11+") && // N(1535)+ Dalitz decay? - ((makeStaticData()->IsParticle(i1,"dilepton") && - makeStaticData()->IsParticle(i2,"p")) || - (makeStaticData()->IsParticle(i1,"p") && + ((makeStaticData()->IsParticle(i1,"dilepton") && + makeStaticData()->IsParticle(i2,"p")) || + (makeStaticData()->IsParticle(i1,"p") && makeStaticData()->IsParticle(i2,"dilepton"))); -#endif - - return (pseudo&&eeg) || (pseudo&&mumug) || +#endif + + return (pseudo&&eeg) || (pseudo&&mumug) || (vector&&eepi) || (vector&&mumupi) || D0m || Dpm || D0 || Dp || pn || NS0 || NSp || d; } - + static int IsDalitz(int * i) { // as above, for pid array @@ -233,7 +233,7 @@ class PData : public TObject { // checks if idx is the index of a Dalitz decay mode int i[10]; - + i[0] = 2; //max 2 particles makeStaticData()->GetDecayMode(idx,i); if (*i != 2) return 0; // other than two products in this decay mode @@ -243,22 +243,22 @@ class PData : public TObject { static int IsPseudoscalarDalitz(const int &id, const int &i1, const int &i2) { // checks if the decay id->i1+i2 is a known pseudoscalar Dalitz decay - int eeg = - (makeStaticData()->IsParticle(i1,"dilepton") && - makeStaticData()->IsParticle(i2,"g")) || - (makeStaticData()->IsParticle(i1,"g") && + int eeg = + (makeStaticData()->IsParticle(i1,"dilepton") && + makeStaticData()->IsParticle(i2,"g")) || + (makeStaticData()->IsParticle(i1,"g") && makeStaticData()->IsParticle(i2,"dilepton")); // e+e-gamma? - int mumug = - (makeStaticData()->IsParticle(i1,"dimuon") && - makeStaticData()->IsParticle(i2,"g")) || - (makeStaticData()->IsParticle(i1,"g") && + int mumug = + (makeStaticData()->IsParticle(i1,"dimuon") && + makeStaticData()->IsParticle(i2,"g")) || + (makeStaticData()->IsParticle(i1,"g") && makeStaticData()->IsParticle(i2,"dimuon")); // mu+mu-gamma? - int pseudo = - (makeStaticData()->IsParticle(id,"eta") || - makeStaticData()->IsParticle(id,"eta'") || + int pseudo = + (makeStaticData()->IsParticle(id,"eta") || + makeStaticData()->IsParticle(id,"eta'") || makeStaticData()->IsParticle(id,"pi0")); // pseudo-scalar meson? - + return (pseudo&&eeg) || (pseudo&&mumug); } @@ -275,20 +275,20 @@ class PData : public TObject { i[0]=2; //max 2 particles makeStaticData()->GetDecayMode(idx, i); - if (*i != 2) + if (*i != 2) return 0; // other than two products in this decay mode - return + return IsPseudoscalarDalitz(makeStaticData()->GetDecayParent(idx), i[1], i[2]); } static int IsDirectEE(const int &id, const int &i1, const int &i2) { // checks if the decay id->i1+i2 is a direct vector-meson ee decay - - return - (makeStaticData()->IsParticleMeson(id) && - ((makeStaticData()->IsParticle(i1,"e+") && + + return + (makeStaticData()->IsParticleMeson(id) && + ((makeStaticData()->IsParticle(i1,"e+") && makeStaticData()->IsParticle(i2,"e-"))|| - (makeStaticData()->IsParticle(i1,"e-") && + (makeStaticData()->IsParticle(i1,"e-") && makeStaticData()->IsParticle(i2,"e+")))); } @@ -297,27 +297,27 @@ class PData : public TObject { int i[10]; i[0] = 2; //max 2 particles makeStaticData()->GetDecayMode(idx, i); - if (*i != 2) + if (*i != 2) return 0; // other than two products in this decay mode - return + return IsDirectEE(makeStaticData()->GetDecayParent(idx), i[1], i[2]); } static int IsDirectMuMu(const int &id, const int &i1, const int &i2) { // checks if the decay id->i1+i2 is a direct vector-meson mumu decay - - return - (makeStaticData()->IsParticleMeson(id) && - ((makeStaticData()->IsParticle(i1,"mu+") && + + return + (makeStaticData()->IsParticleMeson(id) && + ((makeStaticData()->IsParticle(i1,"mu+") && makeStaticData()->IsParticle(i2,"mu-"))|| - (makeStaticData()->IsParticle(i1,"mu-") && + (makeStaticData()->IsParticle(i1,"mu-") && makeStaticData()->IsParticle(i2,"mu+")))); } static int IsDirectMuMu(const int &idx) { // checks if idx is the index of a direct vector-meson mumu decay int i[10]; - + i[0] = 2; //max 2 particles makeStaticData()->GetDecayMode(idx, i); if (*i != 2) return 0; // other than two products in this decay mode @@ -332,7 +332,7 @@ class PData : public TObject { static int IsMDalitz(const int &); // checks if decay mode with index idx is a mesonic Dalitz decay - + static Float_t mtIntegral(Double_t m, Float_t T) { // integral of thermal // mt distribution @@ -353,7 +353,7 @@ class PSplash : public TObject { public: PSplash(); - + protected: ClassDef(PSplash, 0) //Pluto welcome message diff --git a/include/PDataBase.h b/include/PDataBase.h index 4e2d33e..16e9e4e 100644 --- a/include/PDataBase.h +++ b/include/PDataBase.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 11.04.2007 -// Revised: +// Revised: // PDataBase // Replacement for the particle data base in PData @@ -30,13 +30,13 @@ class PDataBase : public TObject { //Entries properties const char *param_double_name[PDATABASE_MAX_DOUBLE_PARAM]; //the parameter name matching the ID - const char *param_string_name[PDATABASE_MAX_STRING_PARAM]; - const char *param_int_name[PDATABASE_MAX_INT_PARAM]; - const char *param_tobj_name[PDATABASE_MAX_INT_PARAM]; + const char *param_string_name[PDATABASE_MAX_STRING_PARAM]; + const char *param_int_name[PDATABASE_MAX_INT_PARAM]; + const char *param_tobj_name[PDATABASE_MAX_INT_PARAM]; const char *param_double_descr[PDATABASE_MAX_DOUBLE_PARAM]; //the parameter long description - const char *param_string_descr[PDATABASE_MAX_STRING_PARAM]; - const char *param_int_descr[PDATABASE_MAX_INT_PARAM]; - const char *param_tobj_descr[PDATABASE_MAX_INT_PARAM]; + const char *param_string_descr[PDATABASE_MAX_STRING_PARAM]; + const char *param_int_descr[PDATABASE_MAX_INT_PARAM]; + const char *param_tobj_descr[PDATABASE_MAX_INT_PARAM]; Int_t param_double_pointer; Int_t param_string_pointer; Int_t param_int_pointer; @@ -68,13 +68,13 @@ class PDataBase : public TObject { void SetFastKey(Int_t pkey, Int_t maxkey); //return value of the makeParam's: the param_id of -1 on failure - Int_t MakeParamDouble(const char *paramname, + Int_t MakeParamDouble(const char *paramname, const char *descr);//add "paramname" to double database - Int_t MakeParamString(const char *paramname, + Int_t MakeParamString(const char *paramname, const char *descr); //add "paramname" to string database - Int_t MakeParamInt(const char *paramname, + Int_t MakeParamInt(const char *paramname, const char *descr); //add "paramname" to int database - Int_t MakeParamTObj(const char *paramname, + Int_t MakeParamTObj(const char *paramname, const char *descr); //add "paramname" to object database Int_t GetParamDouble(const char *paramname); //get "paramname" from double database @@ -86,20 +86,20 @@ class PDataBase : public TObject { void GetFastParamInt(const char* paramname, Int_t *pkey) { if ((*pkey)<0) *pkey = GetParamInt(paramname); - }; + }; void GetFastParamString(const char* paramname, Int_t *pkey) { if ((*pkey)<0) *pkey = GetParamString(paramname); - }; + }; void GetFastParamDouble(const char* paramname, Int_t *pkey) { if ((*pkey)<0) *pkey = GetParamDouble(paramname); - }; + }; void GetFastParamTObj(const char* paramname, Int_t *pkey) { if ((*pkey)<0) *pkey = GetParamTObj(paramname); - }; - + }; + using TObject::GetName; const char *GetName(Int_t key); - //getting particle/decay properties from data base + //getting particle/decay properties from data base //return kFALSE if 1.) key not existing or 2.) Param not existing or 3.) Param not used for entry Bool_t GetParamDouble (Int_t key, const char *paramname, Double_t **result); Bool_t GetParamString (Int_t key, const char *paramname, const char **result); @@ -118,7 +118,7 @@ class PDataBase : public TObject { Bool_t b = GetParamInt (key, pkey, &p); if (b && p) *result = *p; - else + else *result = 0; return b; }; @@ -138,16 +138,16 @@ class PDataBase : public TObject { }; //Getting param by matching integer value - Bool_t GetParamInt(const char *paramname1, Int_t value1, const char *paramname2, Int_t **result) { + Bool_t GetParamInt(const char *paramname1, Int_t value1, const char *paramname2, Int_t **result) { return GetParamInt(GetEntryInt(paramname1,value1), paramname2, result); }; - Bool_t GetParamDouble(const char *paramname1, Int_t value1, const char *paramname2, Double_t **result) { + Bool_t GetParamDouble(const char *paramname1, Int_t value1, const char *paramname2, Double_t **result) { return GetParamDouble(GetEntryInt(paramname1,value1), paramname2, result); }; - Bool_t GetParamString(const char *paramname1, Int_t value1, const char *paramname2, const char **result) { + Bool_t GetParamString(const char *paramname1, Int_t value1, const char *paramname2, const char **result) { return GetParamString (GetEntryInt(paramname1,value1), paramname2, result); }; - Bool_t GetParamTObj(const char *paramname1, Int_t value1, const char *paramname2, TObject **result) { + Bool_t GetParamTObj(const char *paramname1, Int_t value1, const char *paramname2, TObject **result) { return GetParamTObj(GetEntryInt(paramname1,value1), paramname2, result); }; @@ -155,21 +155,21 @@ class PDataBase : public TObject { Bool_t GetParamInt (Int_t pkey1, Int_t value1, Int_t pkey2, Int_t **result) { return GetParamInt(GetEntryInt(pkey1,value1), pkey2, result); }; - Bool_t GetParamDouble(Int_t pkey1, Int_t value1, Int_t pkey2, Double_t **result) { + Bool_t GetParamDouble(Int_t pkey1, Int_t value1, Int_t pkey2, Double_t **result) { return GetParamDouble(GetEntryInt(pkey1,value1), pkey2, result); }; - Bool_t GetParamString(Int_t pkey1, Int_t value1, Int_t pkey2, const char **result) { + Bool_t GetParamString(Int_t pkey1, Int_t value1, Int_t pkey2, const char **result) { return GetParamString(GetEntryInt(pkey1,value1), pkey2, result); }; - Bool_t GetParamTObj(Int_t pkey1, Int_t value1, Int_t pkey2, TObject **result) { + Bool_t GetParamTObj(Int_t pkey1, Int_t value1, Int_t pkey2, TObject **result) { return GetParamTObj(GetEntryInt(pkey1,value1), pkey2, result); }; Bool_t SetParamDouble (Int_t key, const char *paramname, Double_t *result); - Bool_t SetParamString (Int_t key, const char *paramname, char *result); - Bool_t SetParamInt (Int_t key, const char *paramname, Int_t *result); - Bool_t SetParamTObj (Int_t key, const char *paramname, TObject *result); + Bool_t SetParamString (Int_t key, const char *paramname, char *result); + Bool_t SetParamInt (Int_t key, const char *paramname, Int_t *result); + Bool_t SetParamTObj (Int_t key, const char *paramname, TObject *result); //faster: Bool_t SetParamTObj(Int_t key, Int_t pp, TObject *result); @@ -188,19 +188,19 @@ class PDataBase : public TObject { Int_t key = GetEntry(name); if (key<0) return kFALSE; return SetParamString(key, paramname, result); - }; + }; Bool_t SetParamTObj(const char *name, const char *paramname, TObject *result) { Int_t key = GetEntry(name); if (key<0) return kFALSE; return SetParamTObj(key, paramname, result); - }; + }; //Dealing with the entries Bool_t AddEntry(Int_t key, const char *name); Int_t AddEntry(const char *name); - Int_t GetEntry(const char *name); - Int_t GetEntryInt(const char *paramname, Int_t value); - Int_t GetEntryInt(Int_t pkey, Int_t value); + Int_t GetEntry(const char *name); + Int_t GetEntryInt(const char *paramname, Int_t value); + Int_t GetEntryInt(Int_t pkey, Int_t value); //listings Int_t AddListEntry(const char *name, const char *count, const char *link, const char *newname); diff --git a/include/PDebugFileOutput.h b/include/PDebugFileOutput.h index 36f66c7..e5e6317 100644 --- a/include/PDebugFileOutput.h +++ b/include/PDebugFileOutput.h @@ -1,6 +1,6 @@ // Author: Ingo Froehlich // Written: 14/05/2007 -// Modified: +// Modified: // PDebugFileOutput Class Header #ifndef _PFILEDEBUGOUTPUT_H_ @@ -14,7 +14,7 @@ class PDebugFileOutput: public PFileOutput { protected: FILE *fp; - + public: PDebugFileOutput(); ~PDebugFileOutput(); @@ -24,13 +24,13 @@ class PDebugFileOutput: public PFileOutput { bool CloseFile(void); // bool WriteEvent(void); //next event bool WriteParticle(PParticle *par); //write one particle - + ClassDef(PDebugFileOutput, 0) // Pluto debug file output }; -#endif +#endif diff --git a/include/PDecayChannel.h b/include/PDecayChannel.h index 86da9aa..0650b0c 100644 --- a/include/PDecayChannel.h +++ b/include/PDecayChannel.h @@ -8,7 +8,7 @@ // Revised: 23.07.07 IF // // This class implements a list of decay modes (normally for one particle. -// Each instance is linked to a next one if there are more choices to +// Each instance is linked to a next one if there are more choices to // decay. // ----------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////// @@ -32,38 +32,38 @@ class PDecayChannel : public TObject { Int_t NumOfDaughters; // number of decay products TArrayI Daughters; // particle ids of decay products PDecayChannel* Next; // pointer to an alternative channel - + public: - + PDecayChannel(); ~PDecayChannel(); - + // Add one decay channel by referencing an existing one. void AddChannel(PDecayChannel *n); // Add one decay channel by giving the weight and the particle ids. In // case of more than four particles one could also use a array of ids // together with its length. - void AddChannel(Double_t w, Int_t d1); + void AddChannel(Double_t w, Int_t d1); void AddChannel(Double_t w, Int_t d1, Int_t d2); void AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3); void AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3, Int_t d4); void AddChannel(Double_t w, Int_t nd, Int_t* ld); - + // The same as above using PParticle* instead of ids. void AddChannel(Double_t w, PParticle *d1); void AddChannel(Double_t w, PParticle *d1, PParticle *d2); void AddChannel(Double_t w, PParticle *d1, PParticle *d2, PParticle *d3); void AddChannel(Double_t w, PParticle *d1, PParticle *d2, PParticle *d3, PParticle *d4); void AddChannel(Double_t w, Int_t nd, PParticle **ld); - + // The same as above using particle names instead of ids. void AddChannel(Double_t w, const char *d1); void AddChannel(Double_t w, const char *d1, const char *d2); void AddChannel(Double_t w, const char *d1, const char *d2, const char *d3); void AddChannel(Double_t w, const char *d1, const char *d2, const char *d3, const char *d4); void AddChannel(Double_t w, Int_t nd, char **ld); - + // Get the information out of the class ... Double_t GetWeight(); Int_t *GetDaughters(int &n); @@ -72,15 +72,15 @@ class PDecayChannel : public TObject { void setAngleFunction(TF1 *) {Warning("setAngleFunction", "setAngleFunction is obsolete");}; void setAngleFunction(TF2 *) {Warning("setAngleFunction", "setAngleFunction is obsolete");}; - + // Unlink means to return the next decay channel and to set Next to NULL PDecayChannel *Unlink(); - + // print decay channel information void Print(const Option_t *delme=NULL) const; - + ClassDef(PDecayChannel, 0)//Pluto Decay Channel Class }; // end of PDecayChannel - + #endif // _PDECAYCHANNEL_H_ diff --git a/include/PDecayManager.h b/include/PDecayManager.h index f68297a..cde7c51 100644 --- a/include/PDecayManager.h +++ b/include/PDecayManager.h @@ -5,7 +5,7 @@ // Revised: 21.06.00 MK // Revised: 21.03.05 R. Holzmann // -// This header file contains +// This header file contains // template class PNextList // template class PStack // class PReactionList @@ -37,11 +37,11 @@ class PDecayChannel; // the following templates and the class PReactionList are // private members of PDecayManager, but I due to problems using // ClassImp() and ClassDef() with nested classes, they are -// not derived from TObject. The members are all public for better +// not derived from TObject. The members are all public for better // use inside PDecayManager. // template PNextList: -// implements a linked list of pointers(!) to object T. A delete does +// implements a linked list of pointers(!) to object T. A delete does // not imply a delete of the object T itself. If this is wanted -> use // member function Delete(). template @@ -49,37 +49,37 @@ class PNextList { public: T *Curr; // Pointer to object T PNextList *Next; // Pointer to next list node - + PNextList() : Curr(NULL), Next(NULL) {}; PNextList(T *t) : Curr(t), Next(NULL) {}; ~PNextList() { if (Next) delete Next; }; void Add(T *t) { - if (!Curr) + if (!Curr) Curr = t; // if node still empty - else if (!Next) + else if (!Next) Next = new PNextList(t); // if node has no successor - else - Next->Add(t); + else + Next->Add(t); } - + void Delete() { // delete all T objects - delete Curr; - if (Next) + delete Curr; + if (Next) Next->Delete(); } -}; +}; // end of template PNextList // template PStack: -// implements a last-in-first-out standard stack via a single linked +// implements a last-in-first-out standard stack via a single linked // list. Additionally the number of objects is counted. template class PStack { public: PNextList *top; // Pointer to top node Int_t Count; - + PStack() : top(NULL), Count(0) {}; ~PStack() { delete top; }; // delete the nodes, not // the object itself @@ -89,28 +89,28 @@ class PStack { top = temp; // make new node the top node Count++; } - + T *Pop() { if (!top) return NULL; T *t = top->Curr; // this object is to be returned PNextList *t2 = top; // store top to delete - top = top->Next; + top = top->Next; t2->Next = NULL; // unlink - delete t2; + delete t2; Count--; return t; } // Clone doubles the whole stack. Either an empty stack is // used (giving UseThis as an argument) or a new stack is - // produced. + // produced. PStack *Clone(PStack *UseThis = NULL) { PStack *t1; - if (UseThis) + if (UseThis) t1 = UseThis; - else + else t1 = new PStack(); - if (!top) + if (!top) return t1; // return an empty stack t1->Push(top->Curr); // push top node object PNextList *t2 = top; @@ -126,7 +126,7 @@ class PStack { // class PReactionList: // implements two connected stacks of PChannel to organize the -// already processed decay channels and the work to do. +// already processed decay channels and the work to do. // The variable ReactionWeight contains the overall weight of // this specific channel. class PReactionList { @@ -136,7 +136,7 @@ class PReactionList { Double_t ReactionWeight; Int_t ID; static Int_t maxID; - + PReactionList() { Finished = new PStack; ToDo = new PStack; @@ -173,11 +173,11 @@ class PDecayManager : public TObject { Int_t verbose; // verbose flag (0/1) Double_t CurrentWeight; // weight of currently active reaction Int_t CurrentReactionNumber; // serial number of currently active reaction - + PNextList *UsedParticles; // collection of used particles to delete them later on PNextList *UsedParticleArrays; // same for particle arrays PNextList *UsedChannels; // same for used channels - + PNextList *ReactionList; // collection of all possible decay branches PNextList *CurrentReactionListPointer; // pointer to the currently active decay branch PChannel **ListForReaction; // used for PReaction @@ -186,27 +186,27 @@ class PDecayManager : public TObject { Int_t decaychannel_param; // param for all known particle decay modes Bool_t fHGeant; // set if PLUTO runs in HGeant - void* userSelection; // selection function + void* userSelection; // selection function Int_t nTrigCond; // trigger multiplicity Bool_t fWriteIndex; // write parent indices out, if set TPythia6 *fPythia; // pointer to Pythia object - + // ContructPChannel is used internally to construct a new PChannel from // parent particle *p and the decay channel *c1 and store it in the // ToDo stack of PReactionList *RL. // If CopyFlag is set, the particle *p is copied before using. This // is necessary for the top channel. - void ConstructPChannel(PParticle *p, PDecayChannel *c1, + void ConstructPChannel(PParticle *p, PDecayChannel *c1, PReactionList *RL, Int_t CopyFlag=0); - + // utility function for PrintReactionList void PrintReactionListEntry(PReactionList*, ostream &os) const; void PrintChain(PParticle *p, PChannel **l, Int_t c, ostream &os) const; - // wrapper for PList.getName() to avoid error for composed + // wrapper for PList.getName() to avoid error for composed // particles using TObject::GetName; const char *GetName(Int_t id) const; @@ -220,7 +220,7 @@ class PDecayManager : public TObject { int bulkdecay_pos, pro_bulkdecay_pos; - + PBulkInterface *bulk[MAX_BULKDECAY]; PBulkInterface *pro_bulk[MAX_BULKDECAY]; PProjector *current_projector; @@ -228,60 +228,60 @@ class PDecayManager : public TObject { public: - + PDecayManager(); ~PDecayManager(); - void SetVerbose(Int_t v = 1); // set verbose on/off - + void SetVerbose(Int_t v = 1); // set verbose on/off + // add/assign/get a specific decay channel to one particle either by - // particle id, by an instance of PParticle or just by name + // particle id, by an instance of PParticle or just by name void AddChannel(Int_t id, PDecayChannel *n); - void AddChannel(PParticle *p, PDecayChannel *n); - void AddChannel(const char *p, PDecayChannel *n); + void AddChannel(PParticle *p, PDecayChannel *n); + void AddChannel(const char *p, PDecayChannel *n); PDecayChannel *GetChannel(Int_t id) const; - PDecayChannel *GetChannel(PParticle *p) const; - PDecayChannel *GetChannel(char *n) const; - + PDecayChannel *GetChannel(PParticle *p) const; + PDecayChannel *GetChannel(char *n) const; + // set the default decay channel for this particle (according to PDG) void SetDefault(Int_t id, Int_t recursive=0); - void SetDefault(PParticle *p, Int_t recursive=0); - void SetDefault(const char *p, Int_t recursive=0); + void SetDefault(PParticle *p, Int_t recursive=0); + void SetDefault(const char *p, Int_t recursive=0); // clear the channel void Clear(Int_t id); - void Clear(PParticle *p); + void Clear(PParticle *p); void MyClear(char *); void Clear(const Option_t *delme=NULL) { if (delme) MyClear((char*) delme); }; - - + + // by specifying one start particle InitReaction does look for all // possible decay chains and lists them in ReactionList. The initial // decay channel can be given either by a special decay channel or, // if it is a standard particle, the standard decay channel can be used. void InitReaction(PParticle *start, PDecayChannel *c1 = NULL); - + // GetNextReaction calls the constructor of PReaction for the next // reaction in ReactionList. The given parameters are forwarded - // to the constructor. If wf is set, the weight stored in the reaction + // to the constructor. If wf is set, the weight stored in the reaction // list is transfered to the initial particle; each reaction is simulated // with the same nb. of events, product particles have a proper weight set. // The second form is obsolete (and implies wf=0) - PReaction *GetNextReaction(int wf, const char *name, int f0=0, int f1=0, + PReaction *GetNextReaction(int wf, const char *name, int f0=0, int f1=0, int f2=0, int f3=0, TTree *tt=NULL); - PReaction *GetNextReaction(const char *name, int f0=0, int f1=0, int f2=0, + PReaction *GetNextReaction(const char *name, int f0=0, int f1=0, int f2=0, int f3=0, TTree *tt=NULL); - + // loop does a loop over all possible reaction channels and write // the output in a file name.root. The arguments are the same as // in GetNextReaction. - Int_t Loop(int num, int wf, const char* name, int f0=0, + Int_t Loop(int num, int wf, const char* name, int f0=0, int f1=0, int f2=0, int f3=0, int rf=0); - Int_t loop(int num, int wf, const char* name, int f0=0, + Int_t loop(int num, int wf, const char* name, int f0=0, int f1=0, int f2=0, int f3=0, int rf=0) { return Loop(num, wf, name, f0, f1, f2, f3, rf); } @@ -289,7 +289,7 @@ class PDecayManager : public TObject { // GetCurrentWeight provides the weight factor of the actual // reaction Double_t GetCurrentWeight(); - + // prints out the decay channel list void Print(const Option_t *delme=NULL) const { if (delme && strlen(delme)) { @@ -320,7 +320,7 @@ class PDecayManager : public TObject { // visualize the decay chains void PrintReactionList() const; - + void SetPythia(TPythia6 *p) { fPythia = p; } diff --git a/include/PDeltaAngularDistribution.h b/include/PDeltaAngularDistribution.h index 975bc32..87b366a 100644 --- a/include/PDeltaAngularDistribution.h +++ b/include/PDeltaAngularDistribution.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 23.6.2007 -// Revised: +// Revised: #ifndef _PDELTAANGULARDISTRIBUTION_H_ #define _PDELTAANGULARDISTRIBUTION_H_ @@ -10,19 +10,19 @@ #include "PAngularDistribution.h" class PDeltaAngularDistribution : public PAngularDistribution { - + public: PDeltaAngularDistribution(); PDeltaAngularDistribution(const Char_t *id, const Char_t *de); - + PDistribution *Clone(const char *delme=NULL) const; Bool_t Init(void); Bool_t Prepare(void); Bool_t IsNotRejected(void); - + void Print(const Option_t *delme=NULL) const; //Debug info - + void SetTerm(int i) { use_term=i; }; @@ -36,8 +36,8 @@ class PDeltaAngularDistribution : public PAngularDistribution { // parameters for N+N->N+Delta double lambda2, prefac, mres; - int anisotropy; - + int anisotropy; + int use_term; ClassDef(PDeltaAngularDistribution,0) //Angular distributions is the NN->N Delta reaction diff --git a/include/PDensityMatrix.h b/include/PDensityMatrix.h index 245e5d9..7ebe244 100644 --- a/include/PDensityMatrix.h +++ b/include/PDensityMatrix.h @@ -14,7 +14,7 @@ class PDensityMatrix: public PEmbeddedParticles { private: - Double_t *matrix[DENSITYMATRIX_MAX_MATRICES], + Double_t *matrix[DENSITYMATRIX_MAX_MATRICES], *matrix_integral[DENSITYMATRIX_MAX_MATRICES]; Double_t *axes[3]; @@ -24,16 +24,16 @@ class PDensityMatrix: public PEmbeddedParticles { Int_t current_matrix; Bool_t IsBorder(Int_t bin); - + PProjector *projector; Double_t *x,*y,*z; - + public: - + PDensityMatrix(); - + Bool_t Modify(PParticle **stack, int *decay_done, int *num, int stacksize); //bulk interface - + Bool_t ReadDensityMatrix(const char *filename, Int_t dim, Bool_t use_bin_width, Double_t min_selection, Double_t max_selection); @@ -48,7 +48,7 @@ class PDensityMatrix: public PEmbeddedParticles { ClassDef(PDensityMatrix, 0) // Add particles from a density matrix }; -#endif +#endif diff --git a/include/PDiLepton.h b/include/PDiLepton.h index abe89b4..5ddf7f7 100644 --- a/include/PDiLepton.h +++ b/include/PDiLepton.h @@ -32,7 +32,7 @@ class PDiLepton : public PParticle { Float_t getY1() { return y1; } Float_t getY2() { return y2; } Int_t IsDilepton() { return 1; } - void samplePartCM(double &px, double &py, double &pz, double &E); + void samplePartCM(double &px, double &py, double &pz, double &E); virtual void Print(const Option_t *delme=NULL) const; virtual ~PDiLepton() { } diff --git a/include/PDistribution.h b/include/PDistribution.h index 1919c5c..9562ee4 100644 --- a/include/PDistribution.h +++ b/include/PDistribution.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 3.7.2006 -// Revised: +// Revised: // Base class for common distributions #ifndef _PDISTRIBUTION_H_ @@ -36,29 +36,29 @@ class PDistribution : public TF1 { - + public: PDistribution(); PDistribution(const Char_t *id, const Char_t *de); virtual ~PDistribution(); - + virtual PDistribution* Clone(const char *delme=NULL) const; Int_t Add(const Char_t *opt); - Int_t Add(const Char_t *name, int flag, + Int_t Add(const Char_t *name, int flag, const Char_t *pflag); //Adds a particle placehoulder to the list - - Int_t Add(const Char_t *name, const Char_t *flag1, + + Int_t Add(const Char_t *name, const Char_t *flag1, const Char_t *flag2 = NULL, const Char_t *flag3 = NULL); //Helper function - + Int_t Set(const Char_t *opt); Int_t Set(const Char_t *name, const Char_t *pflag); //Like Add(), but rather replace it void Reset(void); - - Int_t SetParticle(PParticle *part, int pid, int flag); + + Int_t SetParticle(PParticle *part, int pid, int flag); //Replaces the pointer for the given particle //This function should be called from PChannel @@ -70,13 +70,13 @@ class PDistribution : public TF1 { group=gr; } - PParticle *GetParticle(const Char_t *pflag=NULL); //get the particly with the private flag - + PParticle *GetParticle(const Char_t *pflag=NULL); //get the particly with the private flag + Int_t GetStatus(void); //returns 0 if all particles are set Int_t CheckDaughters(void) ; //returns 0 if all daughters are set void NoDaughters(void) {no_daughters=1;}; void ResetStatus(void); //Clean setted particles - + virtual void Print(const Option_t *delme=NULL) const ; //Debug info void BasePrint(void) const ; //Debug info const Char_t *OptString(void) {return opt_string;}; @@ -90,19 +90,19 @@ class PDistribution : public TF1 { Int_t GetEnable(void) {return enable;}; void SetActivated(Int_t en) {is_activated=en;}; Int_t GetActivated(void) {return is_activated;}; - + void SetVersionFlag(Int_t f) {version_flag |= f;}; void ClearVersionFlag(Int_t f) {version_flag &= (~f);}; UInt_t GetVersionFlag(UInt_t f = 0xffffffff) const { return version_flag & f; }; - + /* the following tool functions set different versions */ void DisableSampling(void) { ClearVersionFlag(VERSION_SAMPLING); }; //No Sampling in the GenBod - + void EnableGenerator(void) { ClearVersionFlag(VERSION_WEIGHTING); SetVersionFlag(VERSION_INVERT_WEIGHTING); @@ -112,17 +112,17 @@ class PDistribution : public TF1 { ClearVersionFlag(VERSION_SAMPLING); SetVersionFlag(VERSION_WEIGHTING); }; //Use distribution as a generator - + virtual Bool_t FreezeOut(void); virtual Bool_t Init(void); virtual Bool_t Prepare(void); - + virtual Bool_t SampleMass(void); virtual Bool_t SampleMomentum(void); - + virtual Bool_t SampleAngle(void); virtual Bool_t IsNotRejected(void); @@ -132,7 +132,7 @@ class PDistribution : public TF1 { virtual Bool_t Finalize(void); virtual Bool_t EndOfChain(void); - + virtual Double_t GetWeight(void); virtual Bool_t WriteDebugInfo(PParticle *par); @@ -182,17 +182,17 @@ class PDistribution : public TF1 { return dynamic_range; }; - Bool_t Exec(const char * command); - virtual Bool_t ExecCommand(const char *command, Double_t value); + Bool_t Exec(const char * command); + virtual Bool_t ExecCommand(const char *command, Double_t value); - Int_t debug_flag; + Int_t debug_flag; void PreParticles(void) {preliminary_particles = 1;}; void SetDrawScaling(Double_t my_draw_scaling) {draw_scaling = my_draw_scaling;}; protected: - + const Char_t *identifier, *description; Int_t enable, is_activated; char *parse[4]; //Option strings @@ -202,7 +202,7 @@ class PDistribution : public TF1 { const Char_t *names[MAX_PARTICLE_LIST]; const Char_t *private_flag[MAX_PARTICLE_LIST]; const Char_t *private_flag_int[MAX_PARTICLE_LIST]; - const Char_t *opt_string; + const Char_t *opt_string; Int_t particle_flag[MAX_PARTICLE_LIST], pid[MAX_PARTICLE_LIST]; Int_t position, current_flag; @@ -231,4 +231,4 @@ class PDistribution : public TF1 { #endif - + diff --git a/include/PDistributionCollection.h b/include/PDistributionCollection.h index 4987db1..6bdf33b 100644 --- a/include/PDistributionCollection.h +++ b/include/PDistributionCollection.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 13.8.2008 -// Revised: +// Revised: #ifndef _PDISTRIBUTIONCOLLECTION_H_ #define _PDISTRIBUTIONCOLLECTION_H_ @@ -11,7 +11,7 @@ class PDistributionCollection : public PDistribution { - + public: PDistributionCollection(); @@ -22,7 +22,7 @@ class PDistributionCollection : public PDistribution { const char *GetDependency(Int_t *pointer); protected: - + Bool_t RequiresPlugin(const char *name); Int_t plugin_pointer; diff --git a/include/PDistributionManager.h b/include/PDistributionManager.h index 3afbcac..312960e 100644 --- a/include/PDistributionManager.h +++ b/include/PDistributionManager.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 3.7.2006 -// Revised: +// Revised: // Base class for common distributions #ifndef _PDISTRIBUTIONMANAGER_H_ @@ -26,11 +26,11 @@ PDistributionManager &fDistributionManager(); PDistributionManager *makeDistributionManager(); class PDistributionManager : public TObject { - + public: - + PDistributionManager(); - + int Add(PDistribution *dist) { //Adds user-defined distribution return pdmutil->Add(dist); @@ -102,7 +102,7 @@ class PDistributionManager : public TObject { Bool_t AddPlugin(PDistributionCollection *plugin); - Bool_t Exec(const char *command); + Bool_t Exec(const char *command); Bool_t ExecAll(const char *command = "init"); Bool_t Activate(const char *name); @@ -116,7 +116,7 @@ class PDistributionManager : public TObject { }; private: - + PDistributionManagerUtil *pdmutil; PStdModels *std_models; diff --git a/include/PDistributionManagerUtil.h b/include/PDistributionManagerUtil.h index 8379e9a..19ea0ca 100644 --- a/include/PDistributionManagerUtil.h +++ b/include/PDistributionManagerUtil.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 26.7.2008 -// Revised: +// Revised: // Util class for common distributions #ifndef _PDISTRIBUTIONMANAGERUTIL_H_ @@ -25,7 +25,7 @@ PDistributionManagerUtil &fDistributionManagerUtil(); PDistributionManagerUtil *makeDistributionManagerUtil(); class PDistributionManagerUtil : public TObject { - + public: PDistributionManagerUtil(); @@ -61,17 +61,17 @@ class PDistributionManagerUtil : public TObject { Bool_t no_warning; private: - + Int_t position; PDistribution *distribution[MAX_DISTRIBUTION_LIST]; int alt_distribution[MAX_DISTRIBUTION_LIST]; - + Int_t group_position; const Char_t *group_identifier[MAX_GROUP_LIST], *group_description[MAX_GROUP_LIST]; Int_t group_expanded[MAX_GROUP_LIST]; Int_t group_corr[MAX_GROUP_LIST]; - + Int_t GetGroup(const Char_t *id, Int_t warning=1); //get the group number from string //return a "none" (=0) when id not found Int_t current_group; @@ -83,7 +83,7 @@ class PDistributionManagerUtil : public TObject { Int_t linkdb_done; //flag for linkdb freeze out BUGBUG: Needs to be checked in Add() ClassDef(PDistributionManagerUtil,0) //Util class for the distribution manager - + }; #endif diff --git a/include/PDynamicData.h b/include/PDynamicData.h index 8ab73b9..327710f 100644 --- a/include/PDynamicData.h +++ b/include/PDynamicData.h @@ -1,6 +1,6 @@ // Author: IF // Written: 25.05.2007 -// Revised: +// Revised: // PDynamicData Class Header #ifndef _PDYNAMICDATA_H_ @@ -24,14 +24,14 @@ PDynamicData *makeDynamicData(); PDynamicData &fDynamicData(); class PDynamicData : public TObject { - + public: PDynamicData(); //**** Decays Double_t GetDecayPartialWidth(Double_t mass,Int_t didx); - + PChannelModel *GetDecayModel(Int_t didx); PChannelModel *GetDecayModelByKey(Int_t key); PChannelModel *GetDecayModelByKey(Int_t key, Int_t defkey); @@ -40,33 +40,33 @@ class PDynamicData : public TObject { Double_t GetDecaySCFactor(Int_t didx); void SetDecaySCFactor(Int_t didx, Double_t factor); bool CheckSCAbort(Int_t didx); //to stop endless loops - double GetDecayBR(int , double); - // branching ratio by mode index & mass (GeV/c^2) - - void ListDecayBR(const Char_t *pid, double mass) { - ListDecayBR(makeStaticData()->IsParticleValid(pid), mass); - } - void ListDecayBR(int pid, double mass); - // list branching ratios by particle id & mass (GeV/c^2) - + double GetDecayBR(int , double); + // branching ratio by mode index & mass (GeV/c^2) + + void ListDecayBR(const Char_t *pid, double mass) { + ListDecayBR(makeStaticData()->IsParticleValid(pid), mass); + } + void ListDecayBR(int pid, double mass); + // list branching ratios by particle id & mass (GeV/c^2) + int PickDecayChannel(const int &, const double &); // decay index for particle pid of given mass (GeV/c**2), // randomly selected consistent with the branching ratios int PickDecayChannel(const char *id, const double &m) { // as above, by particle name - return PickDecayChannel(makeStaticData()->IsParticleValid(id), m); + return PickDecayChannel(makeStaticData()->IsParticleValid(id), m); } int PickDecayChannel(const int &, const double &, int *); - // number and pids of decay products for the decay of particle - // pid of given mass(GeV/c**2), via a randomly selected mode - + // number and pids of decay products for the decay of particle + // pid of given mass(GeV/c**2), via a randomly selected mode + int PickDecayChannel(const char *id, const double &m, int *array) { // as above, by particle name return PickDecayChannel(makeStaticData()->IsParticleValid(id), m, array); } - + //**** Particles PChannelModel *GetParticleModel(Int_t pid); PChannelModel *GetParticleSecondaryModel(const char *name, const char *modelname); @@ -83,17 +83,17 @@ class PDynamicData : public TObject { void SetParticleScalingFactor(Int_t didx, Double_t factor); int GetParticleDepth(const int &id, int flag=0); - - int GetParticleDepth(const char *id, int i=0) { + + int GetParticleDepth(const char *id, int i=0) { return GetParticleDepth(makeStaticData()->IsParticleValid(id), i); } - + double GetParticleLife(const int &id, double m=0, int idx=-1); // mean life - // Arguments: 1. id=particle id + // Arguments: 1. id=particle id // 2. m=mass (GeV/c**2) // 3. idx=decay-mode index - + double GetParticleLife(const char *id, double m=0, int idx=-1) { // as above, by particle name return GetParticleLife(makeStaticData()->IsParticleValid(id), m, idx); diff --git a/include/PEEDirectDecay.h b/include/PEEDirectDecay.h index 0046c8e..fa0d424 100644 --- a/include/PEEDirectDecay.h +++ b/include/PEEDirectDecay.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 27.5.2007 -// Revised: +// Revised: #ifndef _PEEDIRECTDECAY_H_ #define _PEEDIRECTDECAY_H_ @@ -12,7 +12,7 @@ #include "PKinematics.h" class PEEDirectDecay : public PChannelModel { - + public: PEEDirectDecay(); PEEDirectDecay(const Char_t *id, const Char_t *de, Int_t key=-1); @@ -24,7 +24,7 @@ class PEEDirectDecay : public PChannelModel { Bool_t GetWidth(Double_t mass, Double_t *width, Int_t didx=-1); - using PDistribution::GetWeight; + using PDistribution::GetWeight; Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); int GetDepth(int i=0); @@ -39,9 +39,9 @@ class PEEDirectDecay : public PChannelModel { }; protected: - + PParticle *parent, *e1, *e2; - + int use_pi_cutoff, use_hadronic_ps; int parent_id; double cv, mlep; diff --git a/include/PEmbeddedParticles.h b/include/PEmbeddedParticles.h index f8a62e9..bcd66e2 100644 --- a/include/PEmbeddedParticles.h +++ b/include/PEmbeddedParticles.h @@ -1,6 +1,6 @@ // Author: Ingo Froehlich // Written: 11/07/2007 -// Modified: +// Modified: // PEmbeddedParticles Class Header #ifndef _PEMBEDDEDPARTICLES_H_ @@ -29,7 +29,7 @@ class PEmbeddedParticles: public PBulkInterface { 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]; @@ -42,21 +42,21 @@ class PEmbeddedParticles: public PBulkInterface { 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, @@ -65,7 +65,7 @@ class PEmbeddedParticles: public PBulkInterface { ClassDef(PEmbeddedParticles,0) // Add embedded particles in a PReaction }; -#endif +#endif diff --git a/include/PF1.h b/include/PF1.h index 2e9496e..17fc524 100644 --- a/include/PF1.h +++ b/include/PF1.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 14.9.2012 -// Revised: +// Revised: #ifndef _PF1_H_ #define _PF1_H_ @@ -13,7 +13,7 @@ class PF1: public TF1 { public: - + //Standard ROOT ctors PF1(); PF1(const char *name, const char *formula, Double_t xmin=0, Double_t xmax=1); @@ -21,16 +21,16 @@ class PF1: public TF1 { PF1(const char *name, Double_t (*fcn)(Double_t *, Double_t *), Double_t xmin=0, Double_t xmax=1, Int_t npar=0); PF1(const char *name, Double_t (*fcn)(const Double_t *, const Double_t *), Double_t xmin=0, Double_t xmax=1, Int_t npar=0); - PF1(const char *name, ROOT::Math::ParamFunctor f, Double_t xmin = 0, Double_t xmax = 1, Int_t npar = 0); + PF1(const char *name, ROOT::Math::ParamFunctor f, Double_t xmin = 0, Double_t xmax = 1, Int_t npar = 0); PF1(const PF1 &f1); - + //Pluto ctor PF1(const char *name, Double_t xmin, Double_t xmax); virtual Double_t EvalPar(const Double_t *x, const Double_t *params); //TF wrapper - + Bool_t Add(char *command); Bool_t Add(TH1 *histo, const char *command = ""); Bool_t Add(TH2 *histo, const char *command = ""); diff --git a/include/PF2.h b/include/PF2.h index 700c018..0d2ed23 100644 --- a/include/PF2.h +++ b/include/PF2.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 18.8.2010 -// Revised: +// Revised: #ifndef _PF2_H_ #define _PF2_H_ @@ -13,7 +13,7 @@ class PF2: public TF2 { public: - + //Standard ROOT ctors PF2(); PF2(const char *name, const char *formula, Double_t xmin=0, Double_t xmax=1, Double_t ymin=0, Double_t ymax=1); @@ -21,16 +21,16 @@ class PF2: public TF2 { PF2(const char *name, Double_t (*fcn)(Double_t *, Double_t *), Double_t xmin=0, Double_t xmax=1, Double_t ymin=0, Double_t ymax=1, Int_t npar=0); PF2(const char *name, Double_t (*fcn)(const Double_t *, const Double_t *), Double_t xmin=0, Double_t xmax=1, Double_t ymin=0, Double_t ymax=1, Int_t npar=0); - PF2(const char *name, ROOT::Math::ParamFunctor f, Double_t xmin = 0, Double_t xmax = 1, Double_t ymin = 0, Double_t ymax = 1, Int_t npar = 0); + PF2(const char *name, ROOT::Math::ParamFunctor f, Double_t xmin = 0, Double_t xmax = 1, Double_t ymin = 0, Double_t ymax = 1, Int_t npar = 0); PF2(const PF2 &f2); - + //Pluto ctor PF2(const char *name, Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax); virtual Double_t EvalPar(const Double_t *x, const Double_t *params); //TF wrapper - + Bool_t Add(const char *command); Bool_t Add(TH1 *histo, const char *command = ""); Bool_t Add(TH2 *histo, const char *command = ""); diff --git a/include/PF3.h b/include/PF3.h index 6db3d73..01bcad1 100644 --- a/include/PF3.h +++ b/include/PF3.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 14.9.2012 -// Revised: +// Revised: #ifndef _PF3_H_ #define _PF3_H_ @@ -13,27 +13,27 @@ class PF3: public TF3 { public: - + //Standard ROOT ctors PF3(); PF3(const char *name, const char *formula, Double_t xmin=0, Double_t xmax=1, Double_t ymin=0, Double_t ymax=1, Double_t zmin=0, Double_t zmax=1); //PF3(const char *name, void *fcn, Double_t xmin=0, Double_t xmax=1, Double_t ymin=0, Double_t ymax=1, Double_t zmin=0, Double_t zmax=1, Int_t npar=0); - PF3(const char *name, Double_t (*fcn)(Double_t *, Double_t *), Double_t xmin=0, Double_t xmax=1, + PF3(const char *name, Double_t (*fcn)(Double_t *, Double_t *), Double_t xmin=0, Double_t xmax=1, Double_t ymin=0, Double_t ymax=1, Double_t zmin=0, Double_t zmax=1, Int_t npar=0); - PF3(const char *name, Double_t (*fcn)(const Double_t *, const Double_t *), Double_t xmin=0, Double_t xmax=1, + PF3(const char *name, Double_t (*fcn)(const Double_t *, const Double_t *), Double_t xmin=0, Double_t xmax=1, Double_t ymin=0, Double_t ymax=1, Double_t zmin=0, Double_t zmax=1, Int_t npar=0); PF3(const char *name, ROOT::Math::ParamFunctor f, Double_t xmin = 0, Double_t xmax = 1, - Double_t ymin=0, Double_t ymax=1, Double_t zmin=0, Double_t zmax=1, Int_t npar = 0); + Double_t ymin=0, Double_t ymax=1, Double_t zmin=0, Double_t zmax=1, Int_t npar = 0); PF3(const PF3 &f3); - + //Pluto ctor PF3(const char *name, Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax); virtual Double_t EvalPar(const Double_t *x, const Double_t *params); //TF wrapper - + Bool_t Add(char *command); Bool_t Add(TH1 *histo, const char *command = ""); Bool_t Add(TH2 *histo, const char *command = ""); diff --git a/include/PFermiMomentum.h b/include/PFermiMomentum.h index 35d6d15..d0566cb 100644 --- a/include/PFermiMomentum.h +++ b/include/PFermiMomentum.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 23.6.2007 -// Revised: +// Revised: #ifndef _PFERMIMOMENTUM_H_ #define _PFERMIMOMENTUM_H_ @@ -14,7 +14,7 @@ class PFermiMomentum : public PChannelModel { - + public: PFermiMomentum(); PFermiMomentum(const Char_t *id, const Char_t *de, Int_t key); @@ -29,7 +29,7 @@ class PFermiMomentum : public PChannelModel { void Print(const Option_t *delme=NULL) const; //Debug info void SubPrint(Int_t opt) const; - + using PDistribution::GetWeight; Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); @@ -49,7 +49,7 @@ class PFermiMomentum : public PChannelModel { //TF1 wrapper protected: - + double SampleFermi(double &px, double &py, double &pz); private: diff --git a/include/PFermiMomentumDD.h b/include/PFermiMomentumDD.h index 354f35c..37861b5 100644 --- a/include/PFermiMomentumDD.h +++ b/include/PFermiMomentumDD.h @@ -1,17 +1,17 @@ // Author: I. Froehlich // Written: 13.11.2007 -// Revised: +// Revised: #include "PFermiMomentum.h" //Class definition class PFermiMomentumDD : public PFermiMomentum { - + public: PFermiMomentumDD(const Char_t *id, const Char_t *de, Int_t key); - + PDistribution *Clone(const char *delme=NULL) const; Bool_t Init(void); diff --git a/include/PFileInput.h b/include/PFileInput.h index d5151eb..f6ac06c 100644 --- a/include/PFileInput.h +++ b/include/PFileInput.h @@ -23,11 +23,11 @@ class PFileInput: public PParticle { public: PFileInput(Char_t *mode, Char_t *filename); - + void setToMidrapidity(float agev); - Int_t IsFileInput() { - return 1; - } + Int_t IsFileInput() { + return 1; + } Int_t readEventHeader(Float_t &b); Int_t readParticle(Double_t &px, Double_t &py, Double_t &pz, Double_t &E, Double_t &vx, Double_t &vy, Double_t &vz, Double_t &vt, @@ -37,7 +37,7 @@ class PFileInput: public PParticle { virtual ~PFileInput() { if (fp) fclose(fp); } - + ClassDef(PFileInput,1) // Pluto file input }; diff --git a/include/PFileOutput.h b/include/PFileOutput.h index 4d25c06..6c6239b 100644 --- a/include/PFileOutput.h +++ b/include/PFileOutput.h @@ -1,6 +1,6 @@ // Author: Ingo Froehlich // Written: 14/05/2007 -// Modified: +// Modified: // PFileOutput Class Header #ifndef _PFILEOUTPUT_H_ @@ -33,7 +33,7 @@ class PFileOutput: public PBulkInterface { public: PFileOutput(); - void SetHeader(Int_t _cnt, + void SetHeader(Int_t _cnt, Int_t _allPARTICLES, Int_t _getVERTEX, Int_t _asciiOUTPUT, @@ -71,7 +71,7 @@ class PFileOutput: public PBulkInterface { ClassDef(PFileOutput, 0) // Pluto file output base class }; -#endif +#endif diff --git a/include/PFilter.h b/include/PFilter.h index 550af58..64fb27a 100644 --- a/include/PFilter.h +++ b/include/PFilter.h @@ -10,12 +10,12 @@ class PReaction; class PFilter : public TObject { - + public: - + PFilter(PReaction *, char *); // PFilter constructor by pointer to the PReaction where the filter should apply, - + ClassDef(PFilter, 0)//Pluto Filter Class }; diff --git a/include/PFireball.h b/include/PFireball.h index c39c26f..ac0391d 100644 --- a/include/PFireball.h +++ b/include/PFireball.h @@ -25,20 +25,20 @@ class PFireball: public PParticle { int prodId; // product id float T1; // temperature of component 1 (in GeV) float T2; // temperature of component 2 (in GeV) - float frac; // fraction of component 1 (0 < frac < 1) + float frac; // fraction of component 1 (0 < frac < 1) float blast; // radial blast velocity (0 < blast < 1) float power1; // power of p**n term in p**n exp(-E/T) sampling at 0 deg float power2; // power of p**n term at 90 deg float A2; // polar anisotropy (dN/dOmega = 1 + A2*cost**2 + A4*cost**4) - float A4; // + float A4; // float v1; // directed flow parameter at mid-rapidity float v2; // elliptic flow (squeeze out) at mid-rapidity float Ap; // projectile mass float At; // target mass float prob; // particle production probability per participant nucleon - float bmin; // min impact parameter + float bmin; // min impact parameter float bmax; // max impact parameter - float meanN; // mean multiplicity + float meanN; // mean multiplicity int nProd; // number of product particles bool flag; //! if set, sample impact parameter first, then Poisson Npart float mt_fac; //! mt scaling of mass distribution @@ -72,28 +72,28 @@ class PFireball: public PParticle { PFunction *pfE; //!Envelope for thermal channel model E PAdaptiveMeshN *afE; //!Mesh for thermal channel model E - Float_t y0; // mid-rapidity of source + Float_t y0; // mid-rapidity of source public: PFireball(const char *particle, float AGeV, float t1, float t2=0.0, float f=1.0, float b=0.0, float a2=0.0, float a4=0.0, float w1=0.0, float w2=0.0, int sp=0); void setTemperature(float t1, float t2, float f, int id=0) { - T1 = t1; - T2 = t2; + T1 = t1; + T2 = t2; frac = f; updateFunctions(id); - if (mt_fac > 0.) + if (mt_fac > 0.) mt_fac = mtIntegral(makeStaticData()->GetParticleMass(prodId),T1); } //Rapidity sampling: void setSigma(double s) { SetSigma(s); - } + } void SetSigma(double s) { sig = s; - } + } void SetRapidityDistribution(TF1 *f) { rapidity_function = f; }; @@ -104,11 +104,11 @@ class PFireball: public PParticle { } void setAnisotropy(float a2, float a4, int id=0) { A2 = a2; - A4 = a4; + A4 = a4; updateFunctions(id); } void setFlow(float a, float b) { - v1 = a; + v1 = a; v2 = b; } @@ -118,20 +118,20 @@ class PFireball: public PParticle { /pow((pow(ap,0.333)+pow(at,0.333)),2); // average Apart } void setRandomB(float ap, float at, float p=0., float bn=0., float bx=20.) { - Ap = ap; - At = at; - prob = p; - flag = 1; - bmin = bn; + Ap = ap; + At = at; + prob = p; + flag = 1; + bmin = bn; bmax = bx; - if (prob <= 0.) + if (prob <= 0.) prob = meanN/AvApart(Ap, At); meanN = prob*AvApart(Ap, At, bmin, bmax); if (bmax > 1.14*(pow((double)Ap,(double)0.333) + pow((double)At,(double)0.333))+2.) bmax = 1.14*(pow((double)Ap,(double)0.333) + pow((double)At,(double)0.333)+2.); if (bmin > bmax) { - float temp = bmin; - bmin = bmax; + float temp = bmin; + bmin = bmax; bmax = temp; } } @@ -181,12 +181,12 @@ class PFireball: public PParticle { void sampleECM(Double_t &E, Double_t &M, int didx); - + void sampleECM1(Double_t &E, Double_t &M, int didx) { if (fE1) { if (didx != didx_old) { didx_old = didx; //prevent random initialization each time - if (didx < 0) + if (didx < 0) fE1->SetParameter(5, -1.1); else fE1->SetParameter(5, (double) didx); @@ -203,7 +203,7 @@ class PFireball: public PParticle { if (fE2) { if (didx != didx_old) { didx_old = didx; //prevent random initialization each time - if (didx<0) + if (didx<0) fE2->SetParameter(5, -1.1); else fE2->SetParameter(5, (double) didx); @@ -215,7 +215,7 @@ class PFireball: public PParticle { Error("sampleECM2", "fE2 not found"); } } - + void sampleECM3(Double_t &E, Double_t &Theta) { fE3->GetRandom2(E, Theta); } @@ -230,10 +230,10 @@ class PFireball: public PParticle { int IsFireball() {return 1;} PChannel *makeChannel(Int_t nMax, Float_t nAverage=0.); - + void setTrueThermal(Bool_t flag=kTRUE) { trueThermal = flag; - } + } void setMtScaling() { mt_fac = mtIntegral(makeStaticData()->GetParticleMass(prodId),T1); } @@ -258,7 +258,7 @@ class PFireball: public PParticle { if (*(makeStaticData()->GetBatchValue("_system_weight_version"))) { Info("SetW", "Use old weighting method (pure chain based)"); } - *(makeStaticData()->GetBatchValue("_system_weight_version")) = 0.; + *(makeStaticData()->GetBatchValue("_system_weight_version")) = 0.; PParticle::SetW(w); }; diff --git a/include/PFixedDecay.h b/include/PFixedDecay.h index d843897..646fc5c 100644 --- a/include/PFixedDecay.h +++ b/include/PFixedDecay.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 27.5.2007 -// Revised: +// Revised: #ifndef _PFIXEDDECAY_H_ #define _PFIXEDDECAY_H_ @@ -14,7 +14,7 @@ #define MAX_FIXED_NUM 10 class PFixedDecay : public PChannelModel { - + public: PFixedDecay(); PFixedDecay(const Char_t *id, const Char_t *de, Int_t key); diff --git a/include/PFixedProduction.h b/include/PFixedProduction.h index ab13572..16ccf14 100644 --- a/include/PFixedProduction.h +++ b/include/PFixedProduction.h @@ -9,7 +9,7 @@ #include "PKinematics.h" class PFixedProduction : public PChannelModel { - + public: PFixedProduction(); PFixedProduction(const Char_t *id, const Char_t *de, Int_t key); diff --git a/include/PFormula.h b/include/PFormula.h index 528a5b2..4ce4a7b 100644 --- a/include/PFormula.h +++ b/include/PFormula.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 19.2.2009 -// Revised: +// Revised: // PFormula Class Header #ifndef _PFORMULA_H_ @@ -15,7 +15,7 @@ class PFormula: public ROOT::v5::TFormula { PFormula(); PFormula(const char *name,const char *expression); - + TString error_string; Int_t error_code; TString chaine; diff --git a/include/PFunction.h b/include/PFunction.h index 8222afa..e39ea40 100644 --- a/include/PFunction.h +++ b/include/PFunction.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 07.4.2008 -// Revised: +// Revised: #ifndef _PFUNCTION_H_ #define _PFUNCTION_H_ @@ -15,7 +15,7 @@ class PFunction : public PChannelModel { - + public: PFunction(); PFunction(const Char_t *id, const Char_t *de, Int_t key); @@ -23,8 +23,8 @@ class PFunction : public PChannelModel { Bool_t Init(void); - using PDistribution::GetWeight; - Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); + using PDistribution::GetWeight; + Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); using TF1::SetFunction; void SetFunction(TF1 *my_tf1) {tf1 = my_tf1;}; @@ -33,7 +33,7 @@ class PFunction : public PChannelModel { void SetFunction(Double_t c) {constant = c;}; Bool_t AddEquation(const char *command); - using PDistribution::SampleMass; + using PDistribution::SampleMass; Bool_t SampleMass(Double_t *mass, Int_t *didx=NULL); private: diff --git a/include/PGenBod.h b/include/PGenBod.h index 9d6245a..fddaaab 100644 --- a/include/PGenBod.h +++ b/include/PGenBod.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written:2.6.2007 -// Revised: +// Revised: #ifndef _PGENBOD_H_ #define _PGENBOD_H_ @@ -15,11 +15,11 @@ class PGenBod : public PChannelModel { - + public: PGenBod(); PGenBod(const Char_t *id, const Char_t *de, Int_t key); - + PDistribution *Clone(const char*delme=NULL) const; Bool_t Init(void); @@ -31,7 +31,7 @@ class PGenBod : public PChannelModel { void UseWeights(void){SetVersionFlag(VERSION_WEIGHTING);}; void Print(const Option_t* delme=NULL) const; //Debug info - + private: PParticle *parent, *primary, *daughter[MAX_GENBOD_NUM]; @@ -39,7 +39,7 @@ class PGenBod : public PChannelModel { Double_t local_weight,weight_max; PChannelModel *correlator; - + ClassDef(PGenBod, 0) //Pluto's adaption from the original genbod }; diff --git a/include/PHadronDecay.h b/include/PHadronDecay.h index 3928f37..802eccf 100644 --- a/include/PHadronDecay.h +++ b/include/PHadronDecay.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 27.5.2007 -// Revised: +// Revised: #ifndef _PHADRONDECAY_H_ #define _PHADRONDECAY_H_ @@ -12,7 +12,7 @@ #include "PKinematics.h" class PHadronDecay : public PChannelModel { - + public: PHadronDecay(); PHadronDecay(const Char_t *id, const Char_t *de, Int_t key); @@ -39,7 +39,7 @@ class PHadronDecay : public PChannelModel { int parent_id, id1, id2; //PIDs double parent_mass, mass1, mass2; //Static Masses double parent_g0; //Static Width of parent - + //Width Configuration int use_fixed_delta; double fixed_delta; diff --git a/include/PHadronDecayM1.h b/include/PHadronDecayM1.h index cad811d..504af8f 100644 --- a/include/PHadronDecayM1.h +++ b/include/PHadronDecayM1.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 27.5.2007 -// Revised: +// Revised: #ifndef _PHADRONDECAYM1_H_ #define _PHADRONDECAYM1_H_ @@ -12,7 +12,7 @@ #include "PKinematics.h" class PHadronDecayM1 : public PHadronDecay { - + public: PHadronDecayM1(); @@ -52,11 +52,11 @@ class PHadronDecayM1 : public PHadronDecay { Double_t stable_mass; bool sampleM1(const double &ecm); Double_t scale; - double BWWeight(const int &i1, const double &m, - const double &m1, const double &m2, int didx_local1=-1, + double BWWeight(const int &i1, const double &m, + const double &m1, const double &m2, int didx_local1=-1, int i2=0, int didx_local2=-1); double maxBWWeight(const int &i1, const double &m, const double &lower, - const double &upper, double &max1, const double &m2, int didx_local1=-1, + const double &upper, double &max1, const double &m2, int didx_local1=-1, int i2=0, int didx_local2=-1); PParticle *parent, *daughter1, *daughter2; diff --git a/include/PHadronDecayM1N.h b/include/PHadronDecayM1N.h index 8a1688e..bfe9253 100644 --- a/include/PHadronDecayM1N.h +++ b/include/PHadronDecayM1N.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 22.01.2010 -// Revised: +// Revised: #ifndef _PHADRONDECAYM1N_H_ #define _PHADRONDECAYM1N_H_ @@ -18,7 +18,7 @@ #define M1N_PARENT_GRID 0.1 class PHadronDecayM1N : public PChannelModel { - + public: PHadronDecayM1N(); PHadronDecayM1N(const Char_t *id, const Char_t *de, Int_t key); @@ -41,7 +41,7 @@ class PHadronDecayM1N : public PChannelModel { protected: //int didx1,didx2,didx3; - PParticle * parent, *daughters[M1N_MAX_DAUGHTERS], *unstable_particle; + PParticle * parent, *daughters[M1N_MAX_DAUGHTERS], *unstable_particle; Int_t daughter_pos, unstable_daughter; PChannelModel *unstable_model; @@ -50,7 +50,7 @@ class PHadronDecayM1N : public PChannelModel { daughter_didx[M1N_MAX_DAUGHTERS], unstable_id, parent_id, unstable_didx; Double_t unstable_width, daughter_masses[M1N_MAX_DAUGHTERS], parent_mass, old_parent_mass; - + PMesh *mesh; TGenPhaseSpace *event; diff --git a/include/PHadronDecayM2.h b/include/PHadronDecayM2.h index a0d9936..2d5ce53 100644 --- a/include/PHadronDecayM2.h +++ b/include/PHadronDecayM2.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 25.7.2007 -// Revised: +// Revised: #ifndef _PHADRONDECAYM2_H_ #define _PHADRONDECAYM2_H_ @@ -12,7 +12,7 @@ #include "PKinematics.h" class PHadronDecayM2 : public PHadronDecayM1 { - + public: PHadronDecayM2(); PHadronDecayM2(const Char_t *id, const Char_t *de, Int_t key); @@ -24,14 +24,14 @@ class PHadronDecayM2 : public PHadronDecayM1 { Bool_t SampleMass(void); Bool_t SampleMass(Double_t *mass, Int_t *didx=NULL); - + Bool_t GetWidth(Double_t mass, Double_t *width, Int_t didx=-1); - using PHadronDecayM1::GetWeight; + using PHadronDecayM1::GetWeight; Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); int GetDepth(int i=0); - + protected: Double_t dynamic_mass1, dynamic_mass2; //return value from sampleM2 diff --git a/include/PHadronDecayM3.h b/include/PHadronDecayM3.h index 44dc029..6710cac 100644 --- a/include/PHadronDecayM3.h +++ b/include/PHadronDecayM3.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 27.5.2007 -// Revised: +// Revised: #ifndef _PHADRONDECAYM3_H_ #define _PHADRONDECAYM3_H_ @@ -12,7 +12,7 @@ #include "PKinematics.h" class PHadronDecayM3 : public PChannelModel { - + public: PHadronDecayM3(); PHadronDecayM3(const Char_t *id, const Char_t *de, Int_t key); diff --git a/include/PHadronModel.h b/include/PHadronModel.h index 49c1e61..84e53c1 100644 --- a/include/PHadronModel.h +++ b/include/PHadronModel.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 23.5.2007 -// Revised: +// Revised: #ifndef _PHADRONMODEL_H_ #define _PHADRONMODEL_H_ @@ -11,7 +11,7 @@ #include "PDynamicData.h" class PHadronModel : public PChannelModel { - + public: PHadronModel(); PHadronModel(const Char_t *id, const Char_t *de, Int_t key); diff --git a/include/PInclusiveModel.h b/include/PInclusiveModel.h index 96de24d..4b60d7b 100644 --- a/include/PInclusiveModel.h +++ b/include/PInclusiveModel.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 27.9.2006 -// Revised: +// Revised: #ifndef _PINCLUSIVEMODEL_H_ #define _PINCLUSIVEMODEL_H_ @@ -12,7 +12,7 @@ #include "PChannelModel.h" class PInclusiveModel : public PChannelModel { - + public: PInclusiveModel(); @@ -24,7 +24,7 @@ class PInclusiveModel : public PChannelModel { using PChannelModel::GetWeight; Double_t GetWeight(void); - + Bool_t SampleMass(void); int GetDepth(int i=0); @@ -32,7 +32,7 @@ class PInclusiveModel : public PChannelModel { void SetSampleFunction(Double_t f) {sample_d=f;}; private: - PParticle *parent, *daughters[INCLUSIVE_MAX_DAUGHTERS], *primary; + PParticle *parent, *daughters[INCLUSIVE_MAX_DAUGHTERS], *primary; PChannelModel *daughter_models[INCLUSIVE_MAX_DAUGHTERS]; int daughter_pos; TF1 *sample; @@ -40,7 +40,7 @@ class PInclusiveModel : public PChannelModel { Double_t weight; void Setup(); - + ClassDef(PInclusiveModel, 0) //Model for mass sampling for X in a->b+c+X }; diff --git a/include/PKinematics.h b/include/PKinematics.h index 56122e6..2fa157e 100644 --- a/include/PKinematics.h +++ b/include/PKinematics.h @@ -24,14 +24,14 @@ class PKinematics { // cm momentum^2 for the decay of M to m1 and m2 return (M>0.) ? 0.25*lambda(M,m1,m2)/(M*M) : 0.; } - + static double pcms(double M, double m1, double m2) { // cm momentum for the decay of M to m1 and m2 return sqrt(pcms2(M,m1,m2)); } - + static double pcmt(double m, double t) { - const double mp = makeStaticData()->GetParticleMass("p"), + const double mp = makeStaticData()->GetParticleMass("p"), mp2 = mp*mp; double m2 = m*m; double arg = m2+mp2-t; @@ -41,8 +41,8 @@ class PKinematics { static void rotes(double c, double s, double c2, double s2, double *pr) { // rotation used by GENBOD - double sa = *pr, - sb = *(pr+1), + double sa = *pr, + sb = *(pr+1), a = sa*c-sb*s; *(pr+1) = sa*s+sb*c; double b = *(pr+2); diff --git a/include/PMassSampling.h b/include/PMassSampling.h index 9139066..3dca765 100644 --- a/include/PMassSampling.h +++ b/include/PMassSampling.h @@ -1,6 +1,6 @@ -// Author: I. Froehlich +// Author: I. Froehlich // Written: 5.6.2007 -// Revised: +// Revised: #ifndef _PMASSAMPLING_H_ #define _PMASSAMPLING_H_ @@ -13,13 +13,13 @@ class PMassSampling : public PHadronModel { - + public: PMassSampling(); PMassSampling(const Char_t *id, const Char_t *de, Int_t key); PDistribution* Clone(const char *delme=NULL) const; - using PDistribution::GetWeight; + using PDistribution::GetWeight; Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); using PDistribution::SampleMass; @@ -28,7 +28,7 @@ class PMassSampling : public PHadronModel { void SetSamplingFunction(TF1 * f) {shape1=f;}; private: - + TF1 *shape1; //mass sampling shape as a function of resonance mass (=x) ClassDef(PMassSampling, 0) // General purpose mass sampling model diff --git a/include/PMesh.h b/include/PMesh.h index a12414f..b49fd29 100644 --- a/include/PMesh.h +++ b/include/PMesh.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 7.05.2007 -// Revised: +// Revised: // PMesh // Linear Mesh @@ -17,29 +17,29 @@ class PMesh : public TF1 { Double_t *td; Double_t max, min; Int_t size; - + public: //constructor PMesh(Int_t size, const Char_t * name); ~PMesh(); - + Int_t GetSize(void) {return size;}; //meshsize void SetMax(Double_t pmax) {max=pmax; fXmax=pmax;}; void SetMin(Double_t pmin) {min=pmin; fXmin=pmin;}; Double_t GetMax(void) {return max;}; Double_t GetMin(void) {return min;}; - + void SetNode(Int_t node, Double_t v); Double_t GetNode(Int_t node); Double_t GetLinearIP(Double_t m) const ; void Print(const Option_t* = NULL) const; - + Double_t Eval(Double_t x, Double_t y = 0, Double_t z = 0, Double_t t = 0) const; Double_t EvalPar(const Double_t *x, const Double_t *params); //TF1 wrapper - + ClassDef(PMesh, 0) //The linear mesh array }; diff --git a/include/PParticle.h b/include/PParticle.h index dc162fd..f6c3ef1 100644 --- a/include/PParticle.h +++ b/include/PParticle.h @@ -6,10 +6,10 @@ // and decayTime) // Revised: 15.12.00 R. Holzmann (creation time added) // Revised: 22.03.05 R. Holzmann (get/setParent() added) -// Revised: 23.07.07 IF (new framework) +// Revised: 23.07.07 IF (new framework) // PParticle Class Header - + #ifndef _PPARTICLE_H_ #define _PPARTICLE_H_ @@ -23,26 +23,26 @@ class PParticle: public TLorentzVector { - + public: PParticle(Int_t id=0, Double_t T=0., Double_t w=1.); // id, lab kinetic energy (GeV), weight - + PParticle(const char *, Double_t T=0., Double_t w=1.); // name, lab kinetic energy (GeV), weight - + PParticle(Int_t, Double_t, Double_t, Double_t, Double_t m=0., Double_t w=1.); // id, Px, Py, Pz (GeV/c), mass (GeV/c**2) overrides default, weight - + PParticle(const char *, Double_t, Double_t, Double_t,Double_t m=0., Double_t w=1.); // name, Px, Py, Pz (GeV/c), mass (GeV/c**2) overrides default, weight - + PParticle(Int_t, const TVector3 &, Double_t m=0., Double_t w=1.); // id, 3-momentum vector (GeV/c), mass (GeV/c**2) overrides default, weight PParticle(Int_t, Double_t *, Double_t w=1.); // id, pointer to 4-dim array (Px, Py, Pz, E) (GeV/c, GeV), weight - + PParticle(Int_t, float *, Double_t w=1.); // id, pointer to 4-dim array (Px, Py, Pz, E) (GeV/c, GeV), weight @@ -58,18 +58,18 @@ class PParticle: public TLorentzVector { if (values) delete values; } - Int_t Is(const char * id) { - return (pid==makeStaticData()->GetParticleID(id)); + Int_t Is(const char * id) { + return (pid==makeStaticData()->GetParticleID(id)); } - Int_t is(const char * id) { + Int_t is(const char * id) { //kept for compatibility only - return Is(id); + return Is(id); } - Int_t HasID(const Int_t id) { - return (pid==id); + Int_t HasID(const Int_t id) { + return (pid==id); } - Int_t HasNotID(const Int_t id) { - return (pid!=id); + Int_t HasNotID(const Int_t id) { + return (pid!=id); } Int_t size() { return (pid<1000)?1:2; } @@ -79,8 +79,8 @@ class PParticle: public TLorentzVector { Int_t IsRho() { return (Is("rho0") || Is("rho+") || Is("rho-")); } Int_t ID() const { return pid; } - const char *Name() { - return makeStaticData()->GetParticleName(pid); + const char *Name() { + return makeStaticData()->GetParticleName(pid); } void SetSpectator(Int_t s) {spectator=s;}; @@ -105,7 +105,7 @@ class PParticle: public TLorentzVector { void SetMom(Double_t mom=0.); // reset by momentum void ResetE() { // reset E to be consistent with mass(ID) - if (makeStaticData()->GetParticleTotalWidth(pid) > 1.e-3) + if (makeStaticData()->GetParticleTotalWidth(pid) > 1.e-3) return; // broad particle Double_t m = makeStaticData()->GetParticleMass(pid); // get tabulated mass Double_t px = Px(), py = Py(), pz = Pz(); @@ -122,7 +122,7 @@ class PParticle: public TLorentzVector { Int_t LeptonN() const { return makeStaticData()->GetParticleLepton(pid); } Int_t Charge() const { return makeStaticData()->GetParticleCharge(pid); } Int_t Key() const { return makeStaticData()->GetParticleKey(pid); } - void Reset(const Int_t id, const TLorentzVector & v, const Double_t w=1.) { + void Reset(const Int_t id, const TLorentzVector & v, const Double_t w=1.) { pid = id; wt = w; SetVect4(v); @@ -155,7 +155,7 @@ class PParticle: public TLorentzVector { if (!values) return kFALSE; return values->GetValue(id, val); }; - + Int_t GetDBInt(char *name) { Int_t param = makeDataBase()->GetParamInt(name); @@ -188,14 +188,14 @@ class PParticle: public TLorentzVector { void SetStatus(Int_t st){ status=st; }; - + Int_t GetStatus(){ return status; }; Double_t InvariantT(Double_t m3, Double_t m4, Double_t cos_th_cm); // The Mandelstam invariant t in 1 + 2 --> 3 + 4 scattering - + PParticle operator + (const PParticle & b) const { // "addition" for composite quasi-particles PParticle v( *this ); @@ -222,7 +222,7 @@ class PParticle: public TLorentzVector { PParticle & SubTmp( const PParticle & p); void Print(const Option_t* delme= NULL) const; - + inline void SetParentId(Int_t pId) {parentId = pId;} inline void SetSourceId(Int_t sId) {sourceId = sId;} @@ -236,17 +236,17 @@ class PParticle: public TLorentzVector { inline void SetDecayModeIndex(Int_t pInd, Int_t i=0) { if (i) { decayModeIndex = -1; - destroyDecayModeIndex = pInd; + destroyDecayModeIndex = pInd; } else { decayModeIndex = pInd; destroyDecayModeIndex = -1; } } - + //Internal models should use opt=1, they will not get the "wrong" getDecayModeIndex inline Int_t GetDecayModeIndex(Int_t opt=0) const { if ((opt ==0) && (decayModeIndex<0) && (destroyDecayModeIndex>0)) - return destroyDecayModeIndex; + return destroyDecayModeIndex; return decayModeIndex; } inline void SetDaughterIndex(Int_t dInd) {daughterIndex = dInd;} @@ -262,10 +262,10 @@ class PParticle: public TLorentzVector { void SetProperTime(); // sample time until decay in proper time (sec) void SetProperTime(Double_t t) {decayTime = t;} - inline Double_t GetProperTime() const {return decayTime;} + inline Double_t GetProperTime() const {return decayTime;} void SetVertex(Double_t x, Double_t y, Double_t z, Double_t t) { - fV.SetXYZ(x, y, z); + fV.SetXYZ(x, y, z); fT = t; } void SetVertex(Double_t x, Double_t y, Double_t z) { @@ -286,9 +286,9 @@ class PParticle: public TLorentzVector { inline PParticle* GetParent() {return pParticle;} inline void SetSibling(PParticle *p) {sParticle = p;} inline PParticle* GetSibling() { - if (sParticle) + if (sParticle) return sParticle; - else + else return this; }; @@ -307,14 +307,14 @@ class PParticle: public TLorentzVector { Error("SetDaughter","MAX_DAUGHTERS reached"); }; - inline PParticle *GetDaughter(int i) { + inline PParticle *GetDaughter(int i) { return daughters[i]; } inline PParticle *GetScattering(Int_t i) { - if (i == 0) - return qParticle1; - else + if (i == 0) + return qParticle1; + else return qParticle2; }; @@ -326,8 +326,8 @@ class PParticle: public TLorentzVector { }; void addDebugString(char * s) { - debug.Append(s); - debug.Append(":"); + debug.Append(s); + debug.Append(":"); } void clearDebugString() { debug = ""; //BUGBUG memory leak? @@ -372,7 +372,7 @@ class PParticle: public TLorentzVector { PParticle* qParticle1;//! PParticle* qParticle2;//! PParticle* sParticle; //! pointer to particle object - PParticle* daughters[MAX_DAUGHTERS+1]; //!pointer to daughter array + PParticle* daughters[MAX_DAUGHTERS+1]; //!pointer to daughter array TString debug; //! debug string PValues * values; //!pointer to value container diff --git a/include/PPiOmegaAngularDistribution.h b/include/PPiOmegaAngularDistribution.h index b470b1c..78519e9 100644 --- a/include/PPiOmegaAngularDistribution.h +++ b/include/PPiOmegaAngularDistribution.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 23.6.2007 -// Revised: +// Revised: #ifndef _PPIOMEGAANGULARDISTRIBUTION_H_ #define _PPIOMEGAANGULARDISTRIBUTION_H_ @@ -15,19 +15,19 @@ class PPiOmegaAngularDistribution : public PAngularDistribution { - + public: PPiOmegaAngularDistribution(); PPiOmegaAngularDistribution(const Char_t *id, const Char_t *de); - + PDistribution *Clone(const char *delme=NULL) const; Bool_t Init(void); Bool_t Prepare(void); Bool_t IsNotRejected(void); - + void Print(const Option_t *delme=NULL) const; //Debug info - + double SamplePolarAngle(double); void SetVersion(int i) { @@ -35,7 +35,7 @@ class PPiOmegaAngularDistribution : public PAngularDistribution { }; private: - + double e_cm; int version; void getPiN_wN_param(); diff --git a/include/PPlutoBulkDecay.h b/include/PPlutoBulkDecay.h index 60981be..94deb2c 100644 --- a/include/PPlutoBulkDecay.h +++ b/include/PPlutoBulkDecay.h @@ -1,6 +1,6 @@ // Author: Ingo Froehlich // Written: 10/07/2007 -// Modified: +// Modified: // PPlutoBulkDecay Class Header #ifndef _PPLUTOBULKDECAY_H_ @@ -18,28 +18,28 @@ class PPlutoBulkDecay: public PBulkInterface { int recursiveMode; protected: - + public: PPlutoBulkDecay(); bool Modify(PParticle **stack, int *decay_done, int *num, int maxnum); //decay all particle - + void SetTauMax(double t) { // go to sec tauMax = t*1.e-9; - }; + }; void SetRecursiveMode(int t) { //0: no recursive decay //1: recursive decay enabled recursiveMode=t; }; - - ClassDef(PPlutoBulkDecay, 0) // Let particles decay the Pluto way + + ClassDef(PPlutoBulkDecay, 0) // Let particles decay the Pluto way }; -#endif +#endif diff --git a/include/PProjector.h b/include/PProjector.h index bbac478..4acfb34 100644 --- a/include/PProjector.h +++ b/include/PProjector.h @@ -1,6 +1,6 @@ // Author: Ingo Froehlich // Written: 14/02/2007 -// Modified: +// Modified: #ifndef _PPROJECTOR_H_ #define _PPROJECTOR_H_ @@ -53,27 +53,27 @@ class PProjector: public PBulkInterface { //for embedding particles Int_t stackpointer; PParticle stack[PROJECTOR_MAX_STACK]; - Int_t SetParticles(PParticle ** mstack, int *decay_done, + Int_t SetParticles(PParticle ** mstack, int *decay_done, int * num, int stacksize, Int_t first_time); //set the particles from the stream protected: - - + + public: - + PProjector(); ~PProjector(); Bool_t Modify(PParticle **stack, int *decay_done, int *num, int stacksize); //bulk interface - + Bool_t AddCommand(const char *command); //adds a command line to batch Bool_t Do(const char *command) {return AddCommand(command);}; - Bool_t AddHistogram(TH3 *histo, const char *command = "", + Bool_t AddHistogram(TH3 *histo, const char *command = "", Int_t fillflag = 1); //Add a command and a histogram as a tool object - Bool_t AddHistogram(TH2 * histo, const char *command = "", + Bool_t AddHistogram(TH2 * histo, const char *command = "", Int_t fillflag = 1); //Add a command and a histogram as a tool object - Bool_t AddHistogram(TH1 *histo, const char *command = "", + Bool_t AddHistogram(TH1 *histo, const char *command = "", Int_t fillflag = 1); //Add a command and a histogram as a tool object //fillflag=0: do not fill // =1: fill with weight @@ -87,7 +87,7 @@ class PProjector: public PBulkInterface { return AddInputTNtuple(n); }; Bool_t AddInputASCII(const char *filename, const char *command = ""); - + Bool_t AddOutputTNtuple(TNtuple *n, const char *command = ""); Bool_t AddOutputASCII(const char *filename, const char *command = ""); @@ -105,7 +105,7 @@ class PProjector: public PBulkInterface { ClassDef(PProjector, 0) // Project particle array to histograms }; -#endif +#endif diff --git a/include/PPropagator.h b/include/PPropagator.h index 087bccd..1e829a3 100644 --- a/include/PPropagator.h +++ b/include/PPropagator.h @@ -16,18 +16,18 @@ class PPropagator : public PChannelModel PPropagator(const Char_t *id, const Char_t *de, Int_t key); PDistribution *Clone(const char *delme=NULL) const; - + using PChannelModel::GetAmplitude; - + TComplex GetAmplitude(Double_t *mass, Int_t *didx=NULL); - + void SetPID(int i) { // Overwrite pid if needed - pid = i; + pid = i; }; - + private: - + int pid; // Local PID to be overwritten ClassDef(PPropagator, 0) // Off-shell vector meson propagator diff --git a/include/PReaction.h b/include/PReaction.h index 51c7a90..960d2ec 100644 --- a/include/PReaction.h +++ b/include/PReaction.h @@ -48,14 +48,14 @@ class PReaction : public TObject { PReaction(PChannel **, int n=2, unsigned int ff=0, TTree *ttree=NULL, const char *filename=NULL); PReaction(Double_t momentum, const char *beam, const char *target, const char *reaction, const char *file_name=NULL, - Int_t f0=1, Int_t f1=0, Int_t f2=0, Int_t f3=0, TTree *ttree=NULL); + Int_t f0=1, Int_t f1=0, Int_t f2=0, Int_t f3=0, TTree *ttree=NULL); // build reaction from a descriptor string - PReaction(const char *command, const char *beam, const char *target, + PReaction(const char *command, const char *beam, const char *target, const char *reaction, const char *file_name=NULL, - Int_t f0=1, Int_t f1=0, Int_t f2=0, Int_t f3=0, TTree *ttree=NULL); + Int_t f0=1, Int_t f1=0, Int_t f2=0, Int_t f3=0, TTree *ttree=NULL); // build reaction from a descriptor string but uses energy parser PReaction(PParticle *, const char *reaction, const char *file_name=NULL, - Int_t f0=1, Int_t f1=0, Int_t f2=0, Int_t f3=0, TTree *ttree=NULL); + Int_t f0=1, Int_t f1=0, Int_t f2=0, Int_t f3=0, TTree *ttree=NULL); // build reaction from a descriptor string but uses a seed particle void AddReaction(const char *reaction); @@ -77,7 +77,7 @@ class PReaction : public TObject { int GetNumAll() { return ndpar; } // returns number of all the particles in the reaction - int *GetCIndex() { + int *GetCIndex() { return cindex.GetArray(); } // returns product channel index @@ -147,7 +147,7 @@ class PReaction : public TObject { // close root output file void SetHGeant(int flag) {HGeant = (flag!=0);} // set to 1, if PLUTO is run - // from the HGeant prompt + // from the HGeant prompt void setHGeant(int flag) {SetHGeant(flag);}; //backward comp. void SetUserSelection(Int_t (*f)(PParticle*)) { // compiled user selection @@ -162,12 +162,12 @@ class PReaction : public TObject { void SetTrigCond(Int_t n) {nTrigCond = n;} // set trigger level - void setDecayAll(Float_t tau=1.) { + void setDecayAll(Float_t tau=1.) { Warning ("setDecayAll", "This method is depreciated: use SetDecayAll()"); SetDecayAll(tau); } - void SetDecayAll(Float_t tau=1.) { + void SetDecayAll(Float_t tau=1.) { // decay all particles with // lifetime < tau (in ns) // choose either Pluto or Pythia, depending on availability @@ -180,10 +180,10 @@ class PReaction : public TObject { //Wrapper to the new scheme tauMax = tau; // go to sec - + #ifdef USE_PYTHIA6 - + PPythiaBulkDecay *pl = new PPythiaBulkDecay(); pl->SetPythia(fPythia); pl->SetTauMax(tauMax); @@ -197,7 +197,7 @@ class PReaction : public TObject { AddBulk(pl); #endif - + } @@ -207,7 +207,7 @@ class PReaction : public TObject { #if 0 Int_t testPointer(void *p2f) { // determine type of pointer-to-function - // (see CINT reference manual for details) + // (see CINT reference manual for details) if (p2f == NULL) return -1; Int_t ret = G__isinterpretedp2f(p2f); char *fname; @@ -283,7 +283,7 @@ class PReaction : public TObject { current_projector = new PProjector(); AddBulk(current_projector); } - } else { + } else { current_projector = new PProjector(); AddBulk(current_projector); } @@ -291,7 +291,7 @@ class PReaction : public TObject { /* && (bulk[bulkdecay_pos-1] -> GetPriority() > FILTER_PRIORITY)) { */ /* current_projector = (PProjector *)bulk[bulkdecay_pos-1]; */ /* } else { */ - + /* current_projector = new PProjector(); */ /* AddBulk(current_projector); */ /* } */ @@ -309,12 +309,12 @@ class PReaction : public TObject { private: Int_t reactionId; // reaction identifier - Int_t (*userSelection)(PParticle*); //! pointer to selection function - Int_t (*userAnalysis)(PParticle**,Int_t); //! pointer to analysis function + Int_t (*userSelection)(PParticle*); //! pointer to selection function + Int_t (*userAnalysis)(PParticle**,Int_t); //! pointer to analysis function Int_t num_filters; //! Filters from PBatch commands - Int_t filter_keys[MAX_REACTION_FILTERS], filter_counter[MAX_REACTION_FILTERS]; - Double_t *filter_values[MAX_REACTION_FILTERS]; + Int_t filter_keys[MAX_REACTION_FILTERS], filter_counter[MAX_REACTION_FILTERS]; + Double_t *filter_values[MAX_REACTION_FILTERS]; int nchan, ntpar, ndpar, nclones, loop_count, reset_count, status; // number of reaction channels (channels), @@ -336,7 +336,7 @@ class PReaction : public TObject { static const unsigned int ff0, ff1, ff2, ff3, ff4; // option flags (see constructor) - Float_t tauMax; // max lifetime for decay (see decayALL option) + Float_t tauMax; // max lifetime for decay (see decayALL option) PChannel **channel; // address of array of pointers to reaction channels @@ -344,7 +344,7 @@ class PReaction : public TObject { TString filename, file1, file2, original_filename,reaction_string; // output file name, filename.evt for (GEANT), filename.root (ROOT) void ConvertFilename(void); - + TTree *tree; // address of the event tree @@ -369,12 +369,12 @@ class PReaction : public TObject { int fileoutput_pos; PFileOutput *files[MAX_FILEOUTPUT]; int bulkdecay_pos, pro_bulkdecay_pos; - + PBulkInterface *bulk[MAX_BULKDECAY]; PBulkInterface *pro_bulk[MAX_BULKDECAY]; PProjector *current_projector; - + Int_t nTrigCond; TPythia6 *fPythia; //! pointer to Pythia object @@ -386,7 +386,7 @@ class PReaction : public TObject { // get the channels and particles, identify the physics, set up the defaults. Bool_t parse_script(const char *e, const char *beam, const char *target, const char *reaction, const char *file_name=NULL, - Int_t f0=1, Int_t f1=0, Int_t f2=0, Int_t f3=0, TTree *ttree=NULL); + Int_t f0=1, Int_t f1=0, Int_t f2=0, Int_t f3=0, TTree *ttree=NULL); void InitLoop(); // resets the dynamical objects of the reaction and opens files @@ -447,4 +447,4 @@ class PReaction : public TObject { - + diff --git a/include/PSaid.h b/include/PSaid.h index 87133c0..0ecdb82 100644 --- a/include/PSaid.h +++ b/include/PSaid.h @@ -17,16 +17,16 @@ class PSaid : public PAngularDistribution { public: - + PSaid(); PSaid(const Char_t *id, const Char_t *de); - + PDistribution *Clone(const char *delme=NULL) const; Bool_t Init(void); Bool_t Prepare(void); Bool_t IsNotRejected(void); - + double SamplePolarAngle(double); ~PSaid(); @@ -34,7 +34,7 @@ class PSaid : public PAngularDistribution { private: double told; - + int dim; //TRandom3 *REngine; // private M-Twistor random number engine TArrayD y, aa; // private arrays for the sampling algorithm diff --git a/include/PScatterDistribution.h b/include/PScatterDistribution.h index 1c6c91d..9f6db1b 100644 --- a/include/PScatterDistribution.h +++ b/include/PScatterDistribution.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 27.9.2006 -// Revised: +// Revised: #ifndef _PSCATTERDISTRIBUTION_H_ #define _PSCATTERDISTRIBUTION_H_ @@ -13,7 +13,7 @@ class PScatterDistribution : public PDistribution { - + public: PScatterDistribution(); @@ -33,7 +33,7 @@ class PScatterDistribution : public PDistribution { private: - + TF1 *angles1; TF2 *angles2; PParticle *primary; diff --git a/include/PSimpleVMDFF.h b/include/PSimpleVMDFF.h index b1878d6..520c0d6 100644 --- a/include/PSimpleVMDFF.h +++ b/include/PSimpleVMDFF.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 09.11.2010 -// Revised: +// Revised: #ifndef _PSIMPLEVMDFF_H_ #define _PSIMPLEVMDFF_H_ @@ -11,16 +11,16 @@ #include "PBatch.h" class PSimpleVMDFF : public PChannelModel { - + public: PSimpleVMDFF(); PSimpleVMDFF(const Char_t *id, const Char_t *de, Int_t key); PDistribution* Clone(const char *delme=NULL) const; Bool_t Init(void); - + using PChannelModel::GetWeight; - + Double_t GetWeight(void); Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); diff --git a/include/PStaticData.h b/include/PStaticData.h index 6b746b3..5cada59 100644 --- a/include/PStaticData.h +++ b/include/PStaticData.h @@ -29,7 +29,7 @@ void listModes(int id = -1); void listModes(const char *id); class PStaticData : public TObject { - + public: PStaticData(); @@ -43,7 +43,7 @@ class PStaticData : public TObject { //re-loop PStdModels freeze = kFALSE; }; - + bool GetFreezeOut(void) { return freeze; } @@ -53,7 +53,7 @@ class PStaticData : public TObject { const char *new_name); //adds an alias, ret value is alias key int GetAliasParent(const char *alias_name); int GetAliasParent(int key); - + int MakeDirectoryEntry(const char *name, const char *n, const char *l, const char *ename); //adds a directory, ret value is key Double_t *GetBatchValue(const char *name, Int_t make_val=1); @@ -114,13 +114,13 @@ class PStaticData : public TObject { int GetParticleParity(const char *id); // parity (0 if irrelevant) void SetParticleParity(const char *id, Int_t parity); - double GetParticleMass(const int &id); // mass by id + double GetParticleMass(const int &id); // mass by id double GetParticleMass(const char *id); // mass by name double GetParticleMassByKey(const int &id); void SetParticleMass(Int_t id, Float_t mass); //reset mass void SetParticleMass(const char *id, Float_t mass); //reset mass - int GetParticleNChannels(const int &id); // number of decay channels by pid + int GetParticleNChannels(const int &id); // number of decay channels by pid int GetParticleNChannels(const char *id);// number of decay channels by name int GetParticleNChannelsByKey(int id); @@ -130,7 +130,7 @@ class PStaticData : public TObject { double GetParticleTotalWidth(const char *id) { return GetParticleTotalWidth(GetParticleID(id)); }; - double GetParticleTotalWidthByKey(const int &id); + double GetParticleTotalWidthByKey(const int &id); double GetParticleEmin(const int &id); // Returns the energy threshold for the particle void SetParticleEmin(const int &id, const double v); @@ -171,34 +171,34 @@ class PStaticData : public TObject { const char *GetDecayNameByKey(Int_t key); Int_t IsDecayHadronic(Int_t didx); - - int AddDecay(int didx, const char *name, const char *parent, + + int AddDecay(int didx, const char *name, const char *parent, const char *daughters , double br); - int AddDecay(const char *name, const char *parent, + int AddDecay(const char *name, const char *parent, const char *daughters , double br) { - return AddDecay(-1, name, parent, + return AddDecay(-1, name, parent, daughters , br); }; int AddDecay(int *ipid, int n); void PrintDecayByKey(int key); - int GetDecayNProducts(const int &); // retrieve number of products by mode index - int GetDecayNProducts(const char *);// number of products by name + int GetDecayNProducts(const int &); // retrieve number of products by mode index + int GetDecayNProducts(const char *);// number of products by name int GetDecayNProductsByKey(const int &key); int GetDecayParent(const int &); // parent pid from decay mode index - int GetDecayParentByKey(const int &); + int GetDecayParentByKey(const int &); void GetDecayMode(const int, int *n); // retrieve product number, pids, by mode index - void GetDecayModeByKey(const int, int *n); + void GetDecayModeByKey(const int, int *n); int GetDecayIdx(int *pid, int n); // decay-mode index from parent and product ids; ->getChannel int GetDecayIdx(const char *parent, const char *daughters); - int GetDecayKey(int *pid, int n); + int GetDecayKey(int *pid, int n); int GetDecayKey(const int &id); int GetDecayIdxByKey(int key); - + int GetDecayBRFlag(int didx); void SetDecayBRFlag(int didx, int flag); - + double GetDecayEmin(const int &idx); // Returns the energy threshold for the decay mode with index=idx void SetDecayEmin(const int &idx, const double v); @@ -213,10 +213,10 @@ class PStaticData : public TObject { void SetTWidx(const int &, const int &); // total width flag from index void SetPWidx(const int &, const int &); // partial width flag from index - int GetTDepth(const int &); - void SetTDepth(const int &, const int &); - int GetHDepth(const int &); - void SetHDepth(const int &, const int &); + int GetTDepth(const int &); + void SetTDepth(const int &, const int &); + int GetHDepth(const int &); + void SetHDepth(const int &, const int &); void SetTWidthMesh(const int &, PMesh *mesh); PMesh * GetTWidthMesh(const int &); @@ -229,7 +229,7 @@ class PStaticData : public TObject { //global friend functions //Keeping for backward compatibility - + friend void listParticle(int id); // list particles in data base and their properties, by particle pid @@ -237,16 +237,16 @@ class PStaticData : public TObject { listParticle(makeStaticData()->GetParticleID(id)); }; // list particles in data base and their properties, by particle code name - + friend void listModes(int id); // list decay modes in data base, by particle pid - + friend void listModes(const char *id){ listModes(makeStaticData()->GetParticleID(id)); }; // list decay modes in data base, by particle name - - + + private: Int_t *i_result; @@ -282,4 +282,4 @@ class PStaticData : public TObject { - + diff --git a/include/PStdData.h b/include/PStdData.h index c9982e0..588f452 100644 --- a/include/PStdData.h +++ b/include/PStdData.h @@ -19,24 +19,24 @@ PStdData *makeStdData(); PStdData &fStdData(); class PStdData : public TObject { - + public: //constructor PStdData(); //destructor ~PStdData(); - + Bool_t fillDataBase(void); //Copies the static entries into the PDataBase - - + + private: - + int disable; - + void resetPosition() { // Resets the array PPosition - + int i, nm, position=0; for (i=0; iRndm(); } - + Double_t sampleGaus(Double_t c, Double_t s) { // Samples from a Gaussian distribution return rnd->Gaus(c,s); } - + Int_t samplePoisson(Double_t mean) { // Samples from a Poisson distribution return rnd->Poisson(mean); @@ -55,23 +55,23 @@ class PUtilsREngine : public TObject { // Samples from a binomial distribution return rnd->Binomial(ntot,prob); } - + Double_t sampleBW(Double_t c, Double_t g) { // Samples from a Breit Wigner distribution if (g == 0.) return c; return (c+0.5*g*TMath::Tan((2.0*rnd->Rndm()-1.0)*TMath::Pi()*0.5)); } - + void SetSeed(UInt_t s); Double_t lambda(double M, double m1, double m2) { return PKinematics::lambda(M, m1, m2); } - + Double_t pcms2(double M, double m1, double m2) { return PKinematics::pcms2(M, m1, m2); } - + Double_t pcms(double M, double m1, double m2) { // cm momentum for the decay of M to m1 and m2 return PKinematics::pcms(M, m1, m2); @@ -79,9 +79,9 @@ class PUtilsREngine : public TObject { private: - + TRandom3 *rnd; - + ClassDef(PUtilsREngine, 0) //Pluto Utilities Class (random wrapper) }; @@ -89,9 +89,9 @@ class PUtilsREngine : public TObject { class PUtils : public TObject { public: - PUtils() { + PUtils() { cout << "seed: " << SEED << endl; - SetSeed(SEED); + SetSeed(SEED); } // create former behaviour @@ -106,15 +106,15 @@ class PUtils : public TObject { //see example: //Int_t a[3]={8,9,9}; //PUtils::isort(a,3); - + //workaround: add very small number - + Double_t x[n]; - for (int j=0; jSetSeed(s); } static Bool_t Tokenize(const char *options, const char *delimiter, char **array, int *size); @@ -173,7 +173,7 @@ class PUtils : public TObject { sprintf(newvar, "%s", var); return newvar; }; - + static void correct_histo(TH1 *histo); static void correct(TH1 *histo); diff --git a/include/PValues.h b/include/PValues.h index 3572992..ec19d2c 100644 --- a/include/PValues.h +++ b/include/PValues.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 9.7.2007 -// Revised: +// Revised: // PValues Class Header #ifndef _PVALUES_H_ diff --git a/plugins/beamline/PBeamLineSimulation.cc b/plugins/beamline/PBeamLineSimulation.cc index 59fc34b..d4b9600 100644 --- a/plugins/beamline/PBeamLineSimulation.cc +++ b/plugins/beamline/PBeamLineSimulation.cc @@ -56,12 +56,12 @@ PDistribution* PBeamLineSimulation::Clone(const char *) const { void PBeamLineSimulation::MakeVars() { if (!projector) projector = new PProjector(); - in_xi = makeStaticData()->GetBatchValue("_beam_x"); - in_yi = makeStaticData()->GetBatchValue("_beam_y"); - in_dp = makeStaticData()->GetBatchValue("_beam_dp"); - in_xpi = makeStaticData()->GetBatchValue("_beam_px"); - in_ypi = makeStaticData()->GetBatchValue("_beam_py"); - + in_xi = makeStaticData()->GetBatchValue("_beam_x"); + in_yi = makeStaticData()->GetBatchValue("_beam_y"); + in_dp = makeStaticData()->GetBatchValue("_beam_dp"); + in_xpi = makeStaticData()->GetBatchValue("_beam_px"); + in_ypi = makeStaticData()->GetBatchValue("_beam_py"); + filter = makeStaticData()->GetBatchValue("#_beamline_filter"); }; @@ -104,7 +104,7 @@ Int_t PBeamLineSimulation::AddBeamParticle(char *name) { return -1; } } - + //generate beam particles and put them to the stack if (beam_counter == MAX_NUM_BEAM_PARTICLES) { @@ -115,14 +115,14 @@ Int_t PBeamLineSimulation::AddBeamParticle(char *name) { beam_particles[beam_counter] = new PParticle(); beam_id[beam_counter] = used_id; beam_counter++; - + return beam_counter; }; Int_t PBeamLineSimulation::AddDetector(char *name, Double_t distance) { //adds a detector "name" at place "distance" [in mm] //(distance must be negative if placed before the target) - + if (detector_counter == MAX_NUM_BEAM_PARTICLES) { Error("AddDetector","MAX_NUM_BEAM_PARTICLES reached"); return -1; @@ -154,10 +154,10 @@ Bool_t PBeamLineSimulation::InitBeamLine(char *filename) { string str; Bool_t readfile = kTRUE; - + while (readfile) { - - str.clear(); + + str.clear(); int i = nelem; plik1>>along[i]>>txt2>>aa>>sig11>>txt5; @@ -166,10 +166,10 @@ Bool_t PBeamLineSimulation::InitBeamLine(char *filename) { plik1>>aa>>sig44>>txt5>>r14>>r24>>r34; plik1>>aa>>sig55>>txt5>>r15>>r25>>r35>>r45; plik1>>aa>>sig66>>txt5>>r16>>r26>>r36>>r46>>r56; - - getline(plik1,str,'\n'); + + getline(plik1,str,'\n'); getline(plik1,str,'\n'); - + plik1>>T11[i]>>T12[i]>>T13[i]>>T14[i]>>aa>>T16[i]; plik1>>T21[i]>>T22[i]>>T23[i]>>T24[i]>>aa>>T26[i]; plik1>>T31[i]>>T32[i]>>T33[i]>>T34[i]>>aa>>T36[i]>>std::fixed; @@ -178,7 +178,7 @@ Bool_t PBeamLineSimulation::InitBeamLine(char *filename) { plik1>>aa>>aa>>aa>>aa>>aa>>aa; plik1>>aa>>aa>>aa>>aa>>aa>>aa; getline(plik1,str); - + //C //C lecture second ordre T1ij //C @@ -191,7 +191,7 @@ Bool_t PBeamLineSimulation::InitBeamLine(char *filename) { plik1>>ind1>>ind23>>T116[i]>>ind1>>ind23>>T126[i]>>ind1>>ind23>>T136[i]>>ind1>>ind23>>T146[i]>>ind1>>ind23>>aa>>ind1>>ind23>>T166[i]; getline(plik1,str); //plik2<<".."<>ii>>ii>>T213[i]>>ii>>ii>>T223[i]>>ii>>ii>>T233[i]; plik1>>ii>>ii>>T214[i]>>ii>>ii>>T224[i]>>ii>>ii>>T234[i]>>ii>>ii>>T244[i]; plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa; - plik1>>ii>>ii>>T216[i]>>ii>>ii>>T226[i]>>ii>>ii>>T236[i]>>ii>>ii>>T246[i]>>ii>>ii>>aa>>ii>>ii>>T266[i]; + plik1>>ii>>ii>>T216[i]>>ii>>ii>>T226[i]>>ii>>ii>>T236[i]>>ii>>ii>>T246[i]>>ii>>ii>>aa>>ii>>ii>>T266[i]; getline(plik1,str); //plik2<<".."<>ii>>ii>>T411[i]; plik1>>ii>>ii>>T412[i]>>ii>>ii>>T422[i]; plik1>>ii>>ii>>T413[i]>>ii>>ii>>T423[i]>>ii>>ii>>T433[i]; @@ -234,7 +234,7 @@ Bool_t PBeamLineSimulation::InitBeamLine(char *filename) { //C //C lecture second ordre T5ij //C - + plik1>>ii>>ii>>aa; plik1>>ii>>ii>>aa>>ii>>ii>>aa; plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa; @@ -243,14 +243,14 @@ Bool_t PBeamLineSimulation::InitBeamLine(char *filename) { plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa; getline(plik1,str); getline(plik1,str,'\n'); - - if (!plik1.eof()) + + if (!plik1.eof()) nelem++; - else + else readfile = kFALSE; - + } //end nelem - + plik1.close(); Info("InitBeamLine", "Read %i elements from file %s", nelem-1, filename); @@ -284,7 +284,7 @@ Bool_t PBeamLineSimulation::Init(void) { Error("Init","Parent not found"); return kFALSE; } - + for (int i=0; iP() > target->P()) { //change "beam" real_beam = beam; - } + } //the global event vertex cannot be set at this point. //this would require a major change in PReaction @@ -323,14 +323,14 @@ Bool_t PBeamLineSimulation::Prepare(void) { //beam offset (in cm) at prod target in y Int_t num = 0; projector->Modify(NULL, NULL, &num, 0); - + xi = *in_xi/10.; //convert from Pluto standard (mm) to cm yi = *in_xi/10.; //convert from Pluto standard (mm) to cm xpi = *in_xpi*1000.; //convert from rad to mrad ypi = *in_ypi*1000.; //convert from rad to mrad dp = *in_dp * 100.; //convert from dp/p to percent (as discussed with T.H. at CM Prague) //dp = 0.08; - + //now loop over the number of elements for(Int_t k = 1; k < nelem; k++){ @@ -349,7 +349,7 @@ Bool_t PBeamLineSimulation::Prepare(void) { yf1 = yf; xpf1 = xpf; ypf1 = ypf; - + xf = xf1+T111[k]*xi*xi+T112[k]*xi*xpi+T113[k]*xi*yi; xf = xf+T114[k]*xi*ypi+T116[k]*xi*dp; xf = xf+T122[k]*xpi*xpi+T123[k]*xpi*yi+T124[k]*xpi*ypi; @@ -357,7 +357,7 @@ Bool_t PBeamLineSimulation::Prepare(void) { xf = xf+T133[k]*yi*yi+T134[k]*yi*ypi+T136[k]*yi*dp; xf = xf+T144[k]*ypi*ypi+T146[k]*ypi*dp; xf = xf+T166[k]*dp*dp; - + // xf=xf1+T126[k]*xpi*dp+T166[k]*dp*dp; // xf=xf1+T126[k]*xpi*dp; @@ -368,7 +368,7 @@ Bool_t PBeamLineSimulation::Prepare(void) { xpf = xpf+T233[k]*yi*yi+T234[k]*yi*ypi+T236[k]*yi*dp; xpf = xpf+T244[k]*ypi*ypi+T246[k]*ypi*dp; xpf = xpf+T266[k]*dp*dp; - + yf = yf1+T311[k]*xi*xi+T312[k]*xi*xpi+T313[k]*xi*yi; yf = yf+T314[k]*xi*ypi+T316[k]*xi*dp; yf = yf+T322[k]*xpi*xpi+T323[k]*xpi*yi+T324[k]*xpi*ypi; @@ -376,7 +376,7 @@ Bool_t PBeamLineSimulation::Prepare(void) { yf = yf+T333[k]*yi*yi+T334[k]*yi*ypi+T336[k]*yi*dp; yf = yf+T344[k]*ypi*ypi+T346[k]*ypi*dp; yf = yf+T366[k]*dp*dp; - + ypf = ypf1+T411[k]*xi*xi+T412[k]*xi*xpi+T413[k]*xi*yi; ypf = ypf+T414[k]*xi*ypi+T416[k]*xi*dp; ypf = ypf+T422[k]*xpi*xpi+T423[k]*xpi*yi+T424[k]*xpi*ypi; @@ -387,53 +387,53 @@ Bool_t PBeamLineSimulation::Prepare(void) { //C //C yf=yf1+T346[k]*ypi*dp+T366[k]*dp*dp //C yf=yf1+T346[k]*ypi*dp - // rxf = + // rxf = xf2 = xf; xpf2 = xpf; yf2 = yf; ypf2 = ypf; - + out_xi[k] = xf2*10.; //convert back from cm. to mm out_yi[k] = yf2*10.; //convert back from cm. to mm out_dp[k] = dp/100.; //convert back from % to fraction out_xpi[k] = xpf2/1000.; //convert back from mrad to rad out_ypi[k] = ypf2/1000.; //convert back from mrad to rad - + //cout << out_xi[k] << ":" << out_yi[k] << ":" << out_xpi[k] << ":" << out_ypi[k] << endl; } Double_t p = global_p * (1. + out_dp[num_target]); - Double_t p_z = p / sqrt(1.+ tan(out_xpi[num_target])*tan(out_xpi[num_target]) + + Double_t p_z = p / sqrt(1.+ tan(out_xpi[num_target])*tan(out_xpi[num_target]) + tan(out_ypi[num_target])*tan(out_ypi[num_target])); Double_t p_x = p_z * tan(out_xpi[num_target]); Double_t p_y = p_z * tan(out_ypi[num_target]); - + real_beam->SetXYZM(p_x, p_y, p_z, makeStaticData()->GetParticleMass(real_beam->ID())); - + //real_beam->Print(); - + parent->Reconstruct(); - + //parent->Print(); - + //change particles at detector places for (int i=0; iSetPx(p_x); beam_particles[i]->SetPy(p_y); beam_particles[i]->SetPz(p_z); - + //cout << p_x << ":" << p_y << ":" << p_z << endl; - + } - + } } - + for (int k=1; k 0 && out_xi[k] > beamtube_size_x) { *filter = 0; - } + } if (beamtube_size_y > 0 && out_yi[k] > beamtube_size_y) { *filter = 0; } } - + for (int i=0; iGetBranchNum(beam_id[i]))) = 0; - - + + for (int i=0; iGetBranchArray(beam_id[i])) [*(makeGlobalBulk()->GetBranchNum(beam_id[i]))] ) diff --git a/plugins/beamline/PBeamLineSimulation.h b/plugins/beamline/PBeamLineSimulation.h index 4e2c889..778e93c 100644 --- a/plugins/beamline/PBeamLineSimulation.h +++ b/plugins/beamline/PBeamLineSimulation.h @@ -10,12 +10,12 @@ class PBeamLineSimulation : public PBeamSmearing { - + public: PBeamLineSimulation(); ~PBeamLineSimulation(); PBeamLineSimulation(Char_t *id, Char_t *de); - + PDistribution *Clone(const char *delme=NULL) const; Bool_t Init(void); @@ -31,12 +31,12 @@ class PBeamLineSimulation : public PBeamSmearing { Bool_t AddHistogram(TH2 *histo, const char *command = ""); Bool_t Do(char *command) {return AddEquation(command);}; Bool_t Do(TH2 *histo, const char *command = "") {return AddHistogram(histo, command);}; - + void SetBeamtubeSize(Double_t _beamtube_size_x, Double_t _beamtube_size_y) { beamtube_size_x = _beamtube_size_x; beamtube_size_y = _beamtube_size_y; }; - + private: PParticle *beam, *mybeam; @@ -53,7 +53,7 @@ class PBeamLineSimulation : public PBeamSmearing { char *detector_name[MAX_NUM_BEAM_PARTICLES]; Double_t detector_distance[MAX_NUM_BEAM_PARTICLES]; Int_t detector_counter; - + Int_t AddBeamParticle(char *name); void MakeVars(void); @@ -67,12 +67,12 @@ class PBeamLineSimulation : public PBeamSmearing { long double T144[51],T146[51]; long double T166[51],along[51]; - long double T21[51],T22[51],T23[51],T24[51],T26[51]; + long double T21[51],T22[51],T23[51],T24[51],T26[51]; long double T211[51],T212[51],T213[51],T214[51],T216[51]; long double T222[51],T223[51],T224[51],T226[51]; long double T233[51],T234[51],T236[51]; long double T244[51],T246[51]; - long double T266[51]; + long double T266[51]; long double T31[51],T32[51],T33[51],T34[51],T36[51]; long double T311[51],T312[51],T313[51],T314[51],T316[51]; @@ -81,70 +81,70 @@ class PBeamLineSimulation : public PBeamSmearing { long double T344[51],T346[51]; long double T366[51]; - long double T41[51],T42[51],T43[51],T44[51],T46[51]; + long double T41[51],T42[51],T43[51],T44[51],T46[51]; long double T411[51],T412[51],T413[51],T414[51],T416[51]; long double T422[51],T423[51],T424[51],T426[51]; long double T433[51],T434[51],T436[51]; long double T444[51],T446[51]; long double T466[51]; - - Int_t nelem; - - char txt2[3]; - char txt5[6]; - - long double z1; - long double z2; - long double z3; - long double z4; - long double z5; - - long double xi; + + Int_t nelem; + + char txt2[3]; + char txt5[6]; + + long double z1; + long double z2; + long double z3; + long double z4; + long double z5; + + long double xi; long double xpi; - long double yi; - long double ypi; - long double dp; - - Int_t iok; - long double xf; - long double yf; - long double xpf; - long double ypf; - long double xf1; - long double yf1; - long double xpf1; - long double ypf1; - long double xf2; - long double xpf2; - long double yf2; - long double ypf2; + long double yi; + long double ypi; + long double dp; + + Int_t iok; + long double xf; + long double yf; + long double xpf; + long double ypf; + long double xf1; + long double yf1; + long double xpf1; + long double ypf1; + long double xf2; + long double xpf2; + long double yf2; + long double ypf2; long double aa; - long double sig11; - long double sig22; - long double r12; - long double sig33; - long double r13; - long double r23; + long double sig11; + long double sig22; + long double r12; + long double sig33; + long double r13; + long double r23; long double sig44; - long double r14; - long double r24; - long double r34; - long double sig55; - long double r15; - long double r25; - long double r35; - long double r45; - long double sig66; - long double r16; - long double r26; - long double r36; - long double r46; - long double r56; - - Int_t ii; - Int_t ind1; - Int_t ind23; + long double r14; + long double r24; + long double r34; + long double sig55; + long double r15; + long double r25; + long double r35; + long double r45; + long double sig66; + long double r16; + long double r26; + long double r36; + long double r46; + long double r56; + + Int_t ii; + Int_t ind1; + Int_t ind23; Int_t num_target; diff --git a/plugins/brems/PBremsstrahlung.cc b/plugins/brems/PBremsstrahlung.cc index 3f5ac80..f93623e 100644 --- a/plugins/brems/PBremsstrahlung.cc +++ b/plugins/brems/PBremsstrahlung.cc @@ -2,7 +2,7 @@ // // Parameterization of the virtual pn/pp Bremsstrahlung // Ref. 19 and Ref. 20 -// +// // // Author: Wuestenfeld/Dohrmann ///////////////////////////////////////////////////////////////////// @@ -31,7 +31,7 @@ Double_t PBremsstrahlung::Pol3(Double_t z, Double_t par1, Double_t par2, Double_ Double_t PBremsstrahlung::DLines(Double_t x, Double_t par0, Double_t par1, Double_t par2, Double_t par3) const { Double_t m,n; - + if(x < 1.9) { m = (par1-par0)/(0.65); n = par0-m*1.25; @@ -52,9 +52,9 @@ Double_t PBremsstrahlung::DLines(Double_t x, Double_t par0, Double_t par1, Doubl Double_t PBremsstrahlung::AGauss(Double_t x, Double_t *par) const { Double_t result; - + if(par[0] == 0) return 0; - + if(x-par[2] > 0) { result = par[0]*exp(-0.5*pow((x-par[2])/(TMath::Max(1.e-10,((1.0 + par[3])*par[1]))),2)); } else { @@ -71,7 +71,7 @@ PDistribution *PBremsstrahlung::Clone(const char*) const { return new PBremsstrahlung((const PBremsstrahlung &)* this); }; -PBremsstrahlung::PBremsstrahlung(const Char_t *id, const Char_t *de, Int_t key) : +PBremsstrahlung::PBremsstrahlung(const Char_t *id, const Char_t *de, Int_t key) : PChannelModel(id, de, key) { //Constructor @@ -81,7 +81,7 @@ PBremsstrahlung::PBremsstrahlung(const Char_t *id, const Char_t *de, Int_t key) //try to figure out if the model is pp or pn //in addition make some consistency checks Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(primary_key, tid); // retrieve current mode info @@ -160,10 +160,10 @@ Double_t PBremsstrahlung::EvalSM(Double_t x, Double_t, Double_t, Double_t) const Double_t kinLim; Double_t M = x; Double_t b0=0, b1=0, b2=0, b3=0; - + if(neutron_position > -1) { // p + n case - + kinLim = TMath::Sqrt(pow((mn + mp),2)+2*mp* p2_energy)-(mn+mp); if(M>kinLim) { // FD this is somewhat clumsy, but ... return 0; @@ -218,7 +218,7 @@ Double_t PBremsstrahlung::EvalSM(Double_t x, Double_t, Double_t, Double_t) const b0 = Pol2(p2_energy, 2.13375, 7.31236, -1.44497); b1 = Pol2(p2_energy, 49.7263, -40.9453, 6.24139); b2 = Pol2(p2_energy, 1.93576, -2.96657, 1.02646); - b3 = Pol2(p2_energy, 0.621623, 1.22859, -0.160213); + b3 = Pol2(p2_energy, 0.621623, 1.22859, -0.160213); } else { if(model == gN1520) { b0 = Pol2(p2_energy, 43.3482, -24.036, 3.24966); @@ -297,7 +297,7 @@ Double_t PBremsstrahlung::Eval(Double_t x, Double_t y , Double_t z , Double_t t) parA[1] = Pol1(p2_energy, -0.008866, 0.00908); parA[2] = Pol1(p2_energy, 0.7693, 0.004265); parA[3] = Pol1(p2_energy, 0.5262, -0.2392); - + parB[0] = Pol2(p2_energy, -0.7279, 0.4763, -0.04907); parB[1] = Pol1(p2_energy, -0.1483, 0.09447); parB[2] = Pol1(p2_energy, 0.7329, 0.009148); @@ -320,7 +320,7 @@ Double_t PBremsstrahlung::Eval(Double_t x, Double_t y , Double_t z , Double_t t) } } return (1./1000000.)*pow(fabs(M - kinLim),b3)/(b2*exp(b0*M+b1*M*M)); - //FD probably could omit 'fabs' function here + //FD probably could omit 'fabs' function here } else { // p + p case @@ -328,7 +328,7 @@ Double_t PBremsstrahlung::Eval(Double_t x, Double_t y , Double_t z , Double_t t) if(M > kinLim) { // FD this is somewhat clumsy again, but ... return 0; } - + //FD 24/01/08 Take either this block (note return function) //FD do NOT delete this set of parameters /* b0 = Pol2(Teff,33.6382,-15.3112,2.10402); @@ -359,7 +359,7 @@ Double_t PBremsstrahlung::Eval(Double_t x, Double_t y , Double_t z , Double_t t) b3 = Pol2(p2_energy, 2.48228, 0.668239, -0.0493283); } else { if(model == FSI) { - + } else { if(model == VMD) { } else { @@ -401,20 +401,20 @@ Double_t PBremsstrahlung::GetWeight(void) { Bool_t PBremsstrahlung::SampleMass(void) { //boost particle 2 such to be in particle 1 rest frame - + PParticle tmp(p2); //particle under investigation. Make better a copy tmp.Boost(-p1->BoostVector()); p2_energy = tmp.KE(); if (!bin) { bin = new PAdaptiveMesh(0, 3, 0.5); - + bin->SetTF1((TF1*)this); //bin->Divide(5,3); bin->Divide(3, 3); bin->Print(); } - + //dilepton->SetM(this->GetRandom()); dilepton->SetM(bin->GetRandom()); diff --git a/plugins/brems/PBremsstrahlung.h b/plugins/brems/PBremsstrahlung.h index c01de1f..c9888c7 100644 --- a/plugins/brems/PBremsstrahlung.h +++ b/plugins/brems/PBremsstrahlung.h @@ -1,6 +1,6 @@ // Author: Wuestenfeld/Dohrmann // Written: 2.2.2008 -// Revised: +// Revised: #ifndef PBREMSSTRAHLUNG__H @@ -25,20 +25,20 @@ class PBremsstrahlung : public PChannelModel { Bool_t Init(void); using PChannelModel::SampleMass; Bool_t SampleMass(void); - + using PChannelModel::GetWeight; Double_t GetWeight(void); - + Double_t Eval(Double_t x, Double_t y = 0, Double_t z = 0, Double_t t = 0) const; Double_t EvalPar(const Double_t *x, const Double_t *params); //TF1 wrapper to use GetRandom of ROOT - + void SetSqrtS(Double_t s) {sqrt_s = s;}; void SetMode(Char_t mode); void SetAuthor(Int_t a) {author = a;}; //0=KK, 1=SM void SetFunc(TGraph *gr) {graph = gr;}; //overwrites author by handmade array void SetFunc(TGraph2D *gr) {graph2d = gr;}; //overwrites author by handmade array - + //This are variables needed for the standalone Draw() void SetNeutron(Int_t n) {neutron_position = n;}; void SetP2E(Double_t s) {p2_energy = s;}; @@ -53,7 +53,7 @@ class PBremsstrahlung : public PChannelModel { Double_t sqrt_s, threshold; PParticle *dilepton, *parent; PParticle *p1, *p2, *p3, *p4; - + Int_t dilepton_position,neutron_position,author; Double_t p2_energy; PAdaptiveMesh *bin; diff --git a/plugins/brems/PBremsstrahlungPlugin.cc b/plugins/brems/PBremsstrahlungPlugin.cc index 4551f12..5124655 100644 --- a/plugins/brems/PBremsstrahlungPlugin.cc +++ b/plugins/brems/PBremsstrahlungPlugin.cc @@ -2,9 +2,9 @@ //Plugin for the Bremsstrahlung from Kaptari/Kaempfer [L1] and //Shyam/Mosel [L2] // -//It can be activated with +//It can be activated with //makeDistributionManager()->Exec("brems: kaptari"); -// +// //Commands can be formwarded to the plugin via: //makeDistributionManager()->Exec("brems: command"); // @@ -21,7 +21,7 @@ // //Example: //makeDistributionManager()->Exec("brems: kaptari ; kin_max=0.9 ; weighting"); -// +// //Author: I. Froehlich //Written: 27.7.2008 // @@ -72,7 +72,7 @@ Bool_t PBremsstrahlungPlugin::Activate(void) { // if (!makeStaticData()->IsParticleValid("p + d")) { // makeStaticData()->AddParticle(45014, "p + d",2.); // } - + Int_t ipid[4]; ipid[0] = makeStaticData()->GetParticleID("p + n"); ipid[1] = makeStaticData()->GetParticleID("p"); @@ -81,26 +81,26 @@ Bool_t PBremsstrahlungPlugin::Activate(void) { //Add decay if (makeStaticData()->GetDecayKey(ipid, 3) < 0) - makeStaticData()->AddDecay(-1, "p + n -> p + n + dilepton (Bremsstrahlung)", + makeStaticData()->AddDecay(-1, "p + n -> p + n + dilepton (Bremsstrahlung)", "p + n", "p,n,dilepton", 1.0 ); ipid[0] = makeStaticData()->GetParticleID("n + p"); if (makeStaticData()->GetDecayKey(ipid, 3) < 0) - makeStaticData()->AddDecay(-1, "n + p -> p + n + dilepton (Bremsstrahlung)", + makeStaticData()->AddDecay(-1, "n + p -> p + n + dilepton (Bremsstrahlung)", "n + p", "p,n,dilepton", 1.0 ); ipid[0] = makeStaticData()->GetParticleID("p + p"); ipid[2] = makeStaticData()->GetParticleID("p"); if (makeStaticData()->GetDecayKey(ipid, 3) < 0) - makeStaticData()->AddDecay(-1, "p + p -> p + p + dilepton (Bremsstrahlung)", + makeStaticData()->AddDecay(-1, "p + p -> p + p + dilepton (Bremsstrahlung)", "p + p", "p,p,dilepton", 1.0 ); //deuteron beam ipid[0] = makeStaticData()->GetParticleID("d + p"); ipid[2] = makeStaticData()->GetParticleID("n + p"); if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "d + p -> p + (n + p) (Quasi-Free)", + makeStaticData()->AddDecay(-1, "d + p -> p + (n + p) (Quasi-Free)", "d + p", "p,n + p", 1.0 ); - + pdmutil->AddSubGroup("bremsstrahlung", "Bremsstrahlung", "root"); pdmutil->SetGroup("bremsstrahlung"); @@ -119,21 +119,21 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pn->EnableWeighting(); pn->SetExpectedWeightMean(-1); pn->SetVersionFlag(VERSION_GENERATOR_MC); - + pp->EnableWeighting(); pp->SetExpectedWeightMean(-1); pp->SetVersionFlag(VERSION_GENERATOR_MC); if (pn_gen) return kTRUE; - + //TF1 object representing the di-lepton statistics: TF1 *flat = new TF1("flat", "1", 0, kin_max); - + //The "PInclusiveModel" can be used as a generator: - pn_gen = + pn_gen = new PInclusiveModel("flat@p + n_brems_p_n_dilepton/generator", "Dilepton generator", -1); - + //The distribution template: pn_gen->Add("q,parent"); pn_gen->Add("p,daughter"); @@ -141,13 +141,13 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pn_gen->Add("dilepton,daughter,primary"); pn_gen->SetSampleFunction(flat); //Enable distribution as a generator - pn_gen->EnableGenerator(); + pn_gen->EnableGenerator(); makeDistributionManagerUtil()->Add(pn_gen); //repeat this for the pp case: - pp_gen = + pp_gen = new PInclusiveModel("flat2@p + p_brems_p_p_dilepton/generator", "Dilepton generator", -1); - + //The distribution template: pp_gen->Add("q,parent"); pp_gen->Add("p,daughter"); @@ -155,7 +155,7 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pp_gen->Add("dilepton,daughter,primary"); pp_gen->SetSampleFunction(flat); //Enable distribution as a generator - pp_gen->EnableGenerator(); + pp_gen->EnableGenerator(); makeDistributionManagerUtil()->Add(pp_gen); return kTRUE; @@ -228,7 +228,7 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { return kTRUE; } else if (strcmp (command,"kaptari") == 0) { current_author = 0; - + if (pp_kk) { pp = pp_kk; pn = pn_kk; @@ -239,32 +239,32 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { PDistributionManagerUtil *pdmutil = makeDistributionManagerUtil(); pdmutil->AddSubGroup("bremsstrahlung_kk", "Bremsstrahlung from KK", "bremsstrahlung"); pdmutil->SetGroup("bremsstrahlung_kk"); - + pn = new PBremsstrahlung("p + n_brems_p_n_dilepton", "pn Kaptari/Kaempfer bremsstrahlung", -1); - + pn->Add("q,parent"); pn->Add("p,grandparent,p1"); pn->Add("n,grandparent,p2"); pn->Add("p,daughter,p3"); pn->Add("n,daughter,p4"); pn->Add("dilepton", "daughter"); - + PBremsstrahlung *newmodel3 = new PBremsstrahlung("n + p_brems_p_n_dilepton", "pn Kaptari/Kaempfer bremsstrahlung [clone]",-1); - newmodel3->Add("dummy,parent"); - + newmodel3->Add("dummy,parent"); + pp = new PBremsstrahlung("p + p_brems_p_p_dilepton", "pp Kaptari/Kaempfer bremsstrahlung", -1); - + pp->Add("q,parent"); pp->Add("p,grandparent,p1"); pp->Add("p,grandparent,p2"); pp->Add("p,daughter,p3"); pp->Add("p,daughter,p4"); pp->Add("dilepton", "daughter"); - + //make it known to the Pluto world: pdmutil->Add(pp); pdmutil->Add(pn); - + pdmutil->Add(newmodel3); pp_kk = pp; pn_kk = pn; @@ -291,7 +291,7 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { array_pp_sm_125 = new PArray(1); //Dim = 1 array_pp_sm_125->Scaling(0.001); //convert to barn array_pp_sm_125->OpenFile(path + TString("/plugins/brems/shyam_pp_1.25GeV.dat"), 0, 5); - + array_pn_sm_125 = new PArray(2); //Dim = 2, 3 files array_pn_sm_125->Scaling(0.001); //convert to barn @@ -302,20 +302,20 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { //******* Modify groups PDistributionManagerUtil * pdmutil = makeDistributionManagerUtil(); pdmutil->AddSubGroup("bremsstrahlung_sm", "Bremsstrahlung from Shyam/Mosel", "bremsstrahlung"); - pdmutil->AddSubGroup("bremsstrahlung_sm_total", + pdmutil->AddSubGroup("bremsstrahlung_sm_total", "Bremsstrahlung from Shyam/Mosel (total)", "bremsstrahlung_sm"); - pdmutil->AddSubGroup("bremsstrahlung_sm_elastic", + pdmutil->AddSubGroup("bremsstrahlung_sm_elastic", "Bremsstrahlung from Shyam/Mosel (elastic)", "bremsstrahlung_sm"); - pdmutil->AddSubGroup("bremsstrahlung_sm_delta", + pdmutil->AddSubGroup("bremsstrahlung_sm_delta", "Bremsstrahlung from Shyam/Mosel (delta)", "bremsstrahlung_sm"); - pdmutil->AddSubGroup("bremsstrahlung_sm_n1520", + pdmutil->AddSubGroup("bremsstrahlung_sm_n1520", "Bremsstrahlung from Shyam/Mosel (N*1520)", "bremsstrahlung_sm"); - + //******* pp case TOTAL pdmutil->SetGroup("bremsstrahlung_sm_total"); - pp_sm_total = new PBremsstrahlung("pp_sm_total@p + p_brems_p_p_dilepton", + pp_sm_total = new PBremsstrahlung("pp_sm_total@p + p_brems_p_p_dilepton", "pp Shyam/Mosel bremsstrahlung (total)", -1); - + pp_sm_total->Add("q,parent"); pp_sm_total->Add("p,grandparent,p1"); pp_sm_total->Add("p,grandparent,p2"); @@ -326,9 +326,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pdmutil->Add(pp_sm_total); //******* pn case TOTAL - pn_sm_total = new PBremsstrahlung("pn_sm_total@p + n_brems_p_n_dilepton", + pn_sm_total = new PBremsstrahlung("pn_sm_total@p + n_brems_p_n_dilepton", "pn Shyam/Mosel bremsstrahlung (total)", -1); - + pn_sm_total->Add("q,parent"); pn_sm_total->Add("p,grandparent,p1"); pn_sm_total->Add("n,grandparent,p2"); @@ -337,9 +337,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pn_sm_total->Add("dilepton", "daughter"); TGraph2D *gr = array_pn_sm_125->GetTGraph2D(0,1); //1=total pn_sm_total->SetFunc(gr); - pdmutil->Add(pn_sm_total); - - PBremsstrahlung *newmodel3 = new PBremsstrahlung("np_sm_total@n + p_brems_p_n_dilepton", + pdmutil->Add(pn_sm_total); + + PBremsstrahlung *newmodel3 = new PBremsstrahlung("np_sm_total@n + p_brems_p_n_dilepton", "pn Shyam/Mosel bremsstrahlung (total) [clone]", -1); newmodel3->Add("dummy,parent"); newmodel3->SetFunc(gr); @@ -347,9 +347,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { //******* pp case ELASTIC pdmutil->SetGroup("bremsstrahlung_sm_elastic"); - pp_sm_elastic = new PBremsstrahlung("pp_sm_elastic@p + p_brems_p_p_dilepton", + pp_sm_elastic = new PBremsstrahlung("pp_sm_elastic@p + p_brems_p_p_dilepton", "pp Shyam/Mosel bremsstrahlung (elastic)",-1); - + pp_sm_elastic->Add("p,grandparent,p1"); pp_sm_elastic->Add("p,grandparent,p2"); pp_sm_elastic->Add("q,parent"); @@ -360,9 +360,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pdmutil->Add(pp_sm_elastic); //******* pn case ELASTIC - pn_sm_elastic = new PBremsstrahlung("pn_sm_elastic@p + n_brems_p_n_dilepton", + pn_sm_elastic = new PBremsstrahlung("pn_sm_elastic@p + n_brems_p_n_dilepton", "pn Shyam/Mosel bremsstrahlung (elastic)", -1); - + pn_sm_elastic->Add("p,grandparent,p1"); pn_sm_elastic->Add("n,grandparent,p2"); pn_sm_elastic->Add("q,parent"); @@ -371,9 +371,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pn_sm_elastic->Add("dilepton", "daughter"); gr = array_pn_sm_125->GetTGraph2D(0,2); //2=elastic pn_sm_elastic->SetFunc(gr); - pdmutil->Add(pn_sm_elastic); - - newmodel3 = new PBremsstrahlung("np_sm_elastic@n + p_brems_p_n_dilepton", + pdmutil->Add(pn_sm_elastic); + + newmodel3 = new PBremsstrahlung("np_sm_elastic@n + p_brems_p_n_dilepton", "pn Shyam/Mosel bremsstrahlung (elastic) [clone]", -1); newmodel3->Add("dummy,parent"); newmodel3->SetFunc(gr); @@ -381,9 +381,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { //******* pp case DELTA pdmutil->SetGroup("bremsstrahlung_sm_delta"); - pp_sm_delta = new PBremsstrahlung("pp_sm_delta@p + p_brems_p_p_dilepton", + pp_sm_delta = new PBremsstrahlung("pp_sm_delta@p + p_brems_p_p_dilepton", "pp Shyam/Mosel bremsstrahlung (delta)", -1); - + pp_sm_delta->Add("p,grandparent,p1"); pp_sm_delta->Add("p,grandparent,p2"); pp_sm_delta->Add("q,parent"); @@ -394,9 +394,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pdmutil->Add(pp_sm_delta); //******* pn case DELTA - pn_sm_delta = new PBremsstrahlung("pn_sm_delta@p + n_brems_p_n_dilepton", + pn_sm_delta = new PBremsstrahlung("pn_sm_delta@p + n_brems_p_n_dilepton", "pn Shyam/Mosel bremsstrahlung (delta)", -1); - + pn_sm_delta->Add("p,grandparent,p1"); pn_sm_delta->Add("n,grandparent,p2"); pn_sm_delta->Add("q,parent"); @@ -405,9 +405,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pn_sm_delta->Add("dilepton", "daughter"); gr = array_pn_sm_125->GetTGraph2D(0,3); //3=delta pn_sm_delta->SetFunc(gr); - pdmutil->Add(pn_sm_delta); - - newmodel3 = new PBremsstrahlung("np_sm_delta@n + p_brems_p_n_dilepton", + pdmutil->Add(pn_sm_delta); + + newmodel3 = new PBremsstrahlung("np_sm_delta@n + p_brems_p_n_dilepton", "pn Shyam/Mosel bremsstrahlung (delta) [clone]", -1); newmodel3->Add("dummy,parent"); newmodel3->SetFunc(gr); @@ -415,9 +415,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { //******* pp case N1520 pdmutil->SetGroup("bremsstrahlung_sm_n1520"); - pp_sm_n1520 = new PBremsstrahlung("pp_sm_n1520@p + p_brems_p_p_dilepton", + pp_sm_n1520 = new PBremsstrahlung("pp_sm_n1520@p + p_brems_p_p_dilepton", "pp Shyam/Mosel bremsstrahlung (n1520)", -1); - + pp_sm_n1520->Add("p,grandparent,p1"); pp_sm_n1520->Add("p,grandparent,p2"); pp_sm_n1520->Add("q,parent"); @@ -428,9 +428,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pdmutil->Add(pp_sm_n1520); //******* pn case N1520 - pn_sm_n1520 = new PBremsstrahlung("pn_sm_n1520@p + n_brems_p_n_dilepton", + pn_sm_n1520 = new PBremsstrahlung("pn_sm_n1520@p + n_brems_p_n_dilepton", "pn Shyam/Mosel bremsstrahlung (n1520)", -1); - + pn_sm_n1520->Add("p,grandparent,p1"); pn_sm_n1520->Add("n,grandparent,p2"); pn_sm_n1520->Add("q,parent"); @@ -439,9 +439,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pn_sm_n1520->Add("dilepton", "daughter"); gr = array_pn_sm_125->GetTGraph2D(0,4); //4=n1520 pn_sm_n1520->SetFunc(gr); - pdmutil->Add(pn_sm_n1520); - - newmodel3 = new PBremsstrahlung("np_sm_n1520@n + p_brems_p_n_dilepton", + pdmutil->Add(pn_sm_n1520); + + newmodel3 = new PBremsstrahlung("np_sm_n1520@n + p_brems_p_n_dilepton", "pn Shyam/Mosel bremsstrahlung (n1520) [clone]", -1); newmodel3->Add("dummy,parent"); newmodel3->SetFunc(gr); @@ -449,9 +449,9 @@ Bool_t PBremsstrahlungPlugin::ExecCommand(const char *command, Double_t value) { pp = pp_sm_total; pn = pn_sm_total; - + return kTRUE; - } + } return kFALSE; } diff --git a/plugins/brems/PBremsstrahlungPlugin.h b/plugins/brems/PBremsstrahlungPlugin.h index 219e390..bb77bf9 100644 --- a/plugins/brems/PBremsstrahlungPlugin.h +++ b/plugins/brems/PBremsstrahlungPlugin.h @@ -1,7 +1,7 @@ // Author: I. Froehlich // Written: 27.7.2008 -// Revised: -// +// Revised: +// #ifndef _PBREMSSTRAHLUNG_PLUGIN_H_ @@ -21,7 +21,7 @@ using namespace std; class PBremsstrahlungPlugin : public PDistributionCollection { - + public: //constructor @@ -29,7 +29,7 @@ class PBremsstrahlungPlugin : public PDistributionCollection { //destructor ~PBremsstrahlungPlugin(); - Bool_t ExecCommand(const char *command, Double_t value); + Bool_t ExecCommand(const char *command, Double_t value); Bool_t Activate(void); diff --git a/plugins/dalitz_mod/PDalitzModPlugin.cc b/plugins/dalitz_mod/PDalitzModPlugin.cc index 34270ba..5eb09e7 100644 --- a/plugins/dalitz_mod/PDalitzModPlugin.cc +++ b/plugins/dalitz_mod/PDalitzModPlugin.cc @@ -2,12 +2,12 @@ //Plugin to modify the Dalitz decays // //This plugin is part of the distribution manager -//It can be activated with +//It can be activated with //makeDistributionManager()->Exec("dalitz_mod: command"); // //where the plugin supports the following commands: //static_br_thresh=value Threshold for disabling static br in GeV -//flat_generator Enables a flat generator for all registered +//flat_generator Enables a flat generator for all registered // Dalitz decays. Instead of the static br we // use the dG/dm directly, if the parent res // width is > static_br_thresh @@ -29,7 +29,7 @@ PDalitzModPlugin::PDalitzModPlugin(const Char_t *id, const Char_t *de): PDistributionCollection(id, de) { - + resonances_done = kFALSE; RequiresPlugin("pdg:extend_resonances"); } @@ -60,8 +60,8 @@ Bool_t PDalitzModPlugin::ExecCommand(const char *command, Double_t value) { pdmutil->SetGroup("dalitz_zetenyi_wolf"); makeStaticData()->AddDecay(-1, "N*(1520)+ -> p + dilepton", "ND13+", "p, dilepton", 4.0e-5); - - PResonanceDalitz *newmodel = + + PResonanceDalitz *newmodel = new PResonanceDalitz("ND13+_dalitz@ND13+_to_p_dilepton", "dgdm from Zetenyi/Wolf", -1); newmodel->setGm(0.793); @@ -90,7 +90,7 @@ Bool_t PDalitzModPlugin::ExecCommand(const char *command, Double_t value) { makeStaticData()->AddDecay(-1, "N*(1440)0 -> n + dilepton", "N*(1440)0", "n, dilepton", 1.1e-5); newmodel = new PResonanceDalitz("NP110_dalitz@NP110_to_n_dilepton", "dgdm from Zetenyi/Wolf", -1); - newmodel->setGm(0.098); + newmodel->setGm(0.098); pdmutil->Add(newmodel); @@ -100,7 +100,7 @@ Bool_t PDalitzModPlugin::ExecCommand(const char *command, Double_t value) { newmodel->setGm(0.549); pdmutil->Add(newmodel); - + // setGm(0 , 1.98 , 1.980, 1, 3); // D1232 @@ -118,8 +118,8 @@ Bool_t PDalitzModPlugin::ExecCommand(const char *command, Double_t value) { // setGm(12, 0.549 , 0.549,-1, 3); // D1700 // setGm(13, 0.713 , 0.713, 1, 5); // D1905 // setGm(14, 0.066 , 0.066, 1, 1); // D1910 - // setGm(15, 0.479 , 0.479,-1, 5); // D1930 - + // setGm(15, 0.479 , 0.479,-1, 5); // D1930 + resonances_done = kTRUE; } @@ -141,19 +141,19 @@ Bool_t PDalitzModPlugin::ExecCommand(const char *command, Double_t value) { //loop over particles while (makeDataBase()->MakeListIterator(header, "snpart", "slink", &particlekey)) { - + Int_t decaykey = -1; Int_t pid = makeStaticData()->GetParticleIDByKey(particlekey); //loop over decays - while ((makeStaticData()->GetParticleNChannelsByKey(particlekey)>0) && + while ((makeStaticData()->GetParticleNChannelsByKey(particlekey)>0) && (makeDataBase()->MakeListIterator(particlekey, "pnmodes", "link", &decaykey))) { Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(decaykey, tid); // retrieve current mode info if (PData::IsDalitz(pid, tid[1], tid[2])) { - + TString *id = new TString(makeStaticData()->GetParticleName(pid)); id->Append("_generator_"); for (int p=1; p<=tid[0]; p++) { @@ -169,12 +169,12 @@ Bool_t PDalitzModPlugin::ExecCommand(const char *command, Double_t value) { } id->Append("&generator"); - PInclusiveModel *dilepton_generator = - new PInclusiveModel((char*)id->Data(), "Dilepton generator", -2); + PInclusiveModel *dilepton_generator = + new PInclusiveModel((char*)id->Data(), "Dilepton generator", -2); dilepton_generator->Set("dilepton,primary"); dilepton_generator->SetSampleFunction(flat); dilepton_generator->EnableGenerator(); - + pdmutil->Add(dilepton_generator); PChannelModel *pmodel = makeDynamicData()->GetDecayModelByKey(decaykey); @@ -187,14 +187,14 @@ Bool_t PDalitzModPlugin::ExecCommand(const char *command, Double_t value) { pmodel->SetExpectedWeightMean(-1); Info("ExecCommand","Model <%s> uses dGamma/dM for the branching ratio", pmodel->GetIdentifier()); - } + } } else { Warning("ExecCommand", "Primary model not found"); } } //isDalitz } } - + return kTRUE; } else if (strcmp (command,"static_br_thresh") == 0) { @@ -226,7 +226,7 @@ Bool_t PDalitzModPlugin::ExecCommand(const char *command, Double_t value) { vmd_newmodel = new PDeltaDalitzFF("D0_iachello_ff@D0_to_n_dilepton/formfactor", "Iachello ff for D0 -> n e+e-", -1); pdmutil->Add(vmd_newmodel); - + //Add QED-FF in the qed group pdmutil->AddSubGroup("qed", "QED form factors", "root"); @@ -243,8 +243,8 @@ Bool_t PDalitzModPlugin::ExecCommand(const char *command, Double_t value) { qed_newmodel->SetCC(3.0,0,0); pdmutil->Add(qed_newmodel); return kTRUE; - } - + } + return kFALSE; } @@ -254,4 +254,4 @@ ClassImp(PDalitzModPlugin) - + diff --git a/plugins/dalitz_mod/PDalitzModPlugin.h b/plugins/dalitz_mod/PDalitzModPlugin.h index 71d3840..ccf2787 100644 --- a/plugins/dalitz_mod/PDalitzModPlugin.h +++ b/plugins/dalitz_mod/PDalitzModPlugin.h @@ -1,7 +1,7 @@ // Author: I. Froehlich // Written: 17.9.2008 -// Revised: -// +// Revised: +// #ifndef _PDALITZMOD_PLUGIN_H_ @@ -20,7 +20,7 @@ using namespace std; class PDalitzModPlugin : public PDistributionCollection { - + public: //constructor @@ -28,7 +28,7 @@ class PDalitzModPlugin : public PDistributionCollection { //destructor ~PDalitzModPlugin(); - Bool_t ExecCommand(const char *command, Double_t value); + Bool_t ExecCommand(const char *command, Double_t value); Bool_t Activate(void); @@ -39,7 +39,7 @@ class PDalitzModPlugin : public PDistributionCollection { Double_t static_br_thresh; //Threshold for disabling static br in GeV Bool_t resonances_done; - + PDeltaDalitzKrivoruchenko *kriv1, *kriv2; ClassDef(PDalitzModPlugin, 0) //Plugin to modify Dalitz decays diff --git a/plugins/dalitz_mod/PDeltaDalitzFF.cc b/plugins/dalitz_mod/PDeltaDalitzFF.cc index c76046e..d0b6bd5 100644 --- a/plugins/dalitz_mod/PDeltaDalitzFF.cc +++ b/plugins/dalitz_mod/PDeltaDalitzFF.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////// -// +// // Dalitz decay form factor models // // QED: Version with factors from M.I. Krivoruchenko, nucl-th/0104045 @@ -13,7 +13,7 @@ // Provided by B. Ramstein // SetCC(G_m,G_e,G_c); -> re-normalize VMD model such that // it matches to the QED at pole mass -// +// // Author: I. Froehlich / B. Ramstein ///////////////////////////////////////////////////////////////////// @@ -27,7 +27,7 @@ PDistribution *PDeltaDalitzFF::Clone(const char*) const { return new PDeltaDalitzFF((const PDeltaDalitzFF &)* this); }; -PDeltaDalitzFF::PDeltaDalitzFF(const Char_t *id ,const Char_t *de, Int_t key) : +PDeltaDalitzFF::PDeltaDalitzFF(const Char_t *id ,const Char_t *de, Int_t key) : PChannelModel(id, de, key) { //Constructor @@ -57,16 +57,16 @@ PDeltaDalitzFF::PDeltaDalitzFF(const Char_t *id ,const Char_t *de, Int_t key) : }; Double_t PDeltaDalitzFF::gk2(Double_t t) { - // intrinsic form_factor + // intrinsic form_factor Double_t denom2 = 1 + a2*a2*t*t + 2.*a2*t*cos(theta*TMath::Pi()/180.); //cout <<"t= "<GetParticleTotalWidth(sqrt(x), rhopid); - + if ((useQED == -2) && (x < fm_pis)) { //TODO: Make a more meaningfull flag name alpha = sqrt((fm_pis - x)/x)*(1.-2/TMath::Pi() *atan(sqrt((fm_pis - x)/x))); beta = 0.; @@ -87,14 +87,14 @@ Double_t PDeltaDalitzFF::facteur_rho(Double_t x) { alpha = 2/TMath::Pi()*sqrt((x - fm_pis )/x)*log(logpart); beta = sqrt(pow(qnorm-1.,3)/qnorm); } - + // Double_t logpart = (sqrt(x - fm_pis ) + sqrt(x))/(2*mass_pi); // Double_t alpha= 2/TMath::Pi()*sqrt((x - fm_pis )/x)*log(logpart); Double_t denom_reel = mass_rho*mass_rho - x + (fm_pis -x)*gamma_rho*alpha/mass_pi; // Double_t qnorm=x/fm_pis; // Double_t beta = sqrt(pow(qnorm-1.,3)/qnorm); double denom_im = gamma_rho*4*mass_pi*beta; - return scale*(mass_rho*mass_rho + + return scale*(mass_rho*mass_rho + 8*gamma_rho*mass_pi/TMath::Pi()) /sqrt(denom_reel*denom_reel+denom_im*denom_im); } diff --git a/plugins/dalitz_mod/PDeltaDalitzFF.h b/plugins/dalitz_mod/PDeltaDalitzFF.h index 49afd60..05fe82c 100644 --- a/plugins/dalitz_mod/PDeltaDalitzFF.h +++ b/plugins/dalitz_mod/PDeltaDalitzFF.h @@ -1,19 +1,19 @@ // Author: B. Ramstein, I. Froehlich // Written: 12.10.2008 -// Revised: +// Revised: #include "PChannelModel.h" class PDeltaDalitzFF : public PChannelModel { - + public: using PDistribution::GetWeight; PDeltaDalitzFF(const Char_t *id, const Char_t *de, Int_t key); PDistribution *Clone(const char *delme=NULL) const; Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); - + void SetQED(Int_t i){ //0 QED //1 VMD @@ -26,7 +26,7 @@ class PDeltaDalitzFF : public PChannelModel { g_c2 = c*c; rescale = 1; }; - + private: @@ -35,20 +35,20 @@ class PDeltaDalitzFF : public PChannelModel { Double_t beta_prime;// rho meson coupling strength Double_t beta;// size parameter for N-Delta transition (fitted using space-like data) - + Double_t a2; // phase for space-like to time-like continuation (fitted to elastic time-like - // form factor data) + // form factor data) //Masses: Double_t mass_pi, fm_pis, mass_rho, gamma_rho, mass_delta, mass_n, mu_p; Double_t theta; - + //Coupling constants for QED version Double_t g_m2, g_e2, g_c2; Int_t useQED, rescale, rhopid; - + ClassDef(PDeltaDalitzFF, 0) //Form factor model to be attached to Delta-Dalitz }; diff --git a/plugins/dalitz_mod/PDeltaDalitzKrivoruchenko.cc b/plugins/dalitz_mod/PDeltaDalitzKrivoruchenko.cc index 23fd4f5..9e0bf5b 100644 --- a/plugins/dalitz_mod/PDeltaDalitzKrivoruchenko.cc +++ b/plugins/dalitz_mod/PDeltaDalitzKrivoruchenko.cc @@ -1,11 +1,11 @@ ///////////////////////////////////////////////////////////////////// -// +// // Dalitz decay following // Eq. 2 from Comment on delta radiative and Dalitz decays. // M.I. Krivoruchenko (Tubingen U. & Moscow, ITEP) , Amand Faessler (Tubingen U.) . Apr 2001. 5pp. // Published in Phys.Rev.D65:017502,2002. // e-Print: nucl-th/0104045 (Ref21) -// +// // Author: I. Froehlich ///////////////////////////////////////////////////////////////////// @@ -17,7 +17,7 @@ PDistribution *PDeltaDalitzKrivoruchenko::Clone(const char*) const { return new PDeltaDalitzKrivoruchenko((const PDeltaDalitzKrivoruchenko &)* this); }; -PDeltaDalitzKrivoruchenko::PDeltaDalitzKrivoruchenko(const Char_t *id, const Char_t *de, Int_t key) : +PDeltaDalitzKrivoruchenko::PDeltaDalitzKrivoruchenko(const Char_t *id, const Char_t *de, Int_t key) : PDalitzDecay(id, de, key) { //Constructor @@ -38,7 +38,7 @@ double PDeltaDalitzKrivoruchenko::dGdM(const int& id, const double& m, const dou // cout << m << ":" << ecm << endl; double mn = mass_n; - if (id==Delta_plus || id==S11_plus) + if (id==Delta_plus || id==S11_plus) mn = mass_p; double ff = 2.7*2.7; diff --git a/plugins/dalitz_mod/PDeltaDalitzKrivoruchenko.h b/plugins/dalitz_mod/PDeltaDalitzKrivoruchenko.h index 7bba5d7..b0d2f9f 100644 --- a/plugins/dalitz_mod/PDeltaDalitzKrivoruchenko.h +++ b/plugins/dalitz_mod/PDeltaDalitzKrivoruchenko.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 18.9.2008 -// Revised: +// Revised: #ifndef _PDELTADALITZKRIVORUCHENKO_H_ #define _PDELTADALITZKRIVORUCHENKO_H_ @@ -8,7 +8,7 @@ #include "PDalitzDecay.h" class PDeltaDalitzKrivoruchenko : public PDalitzDecay { - + public: Bool_t FreezeOut(void); @@ -17,7 +17,7 @@ class PDeltaDalitzKrivoruchenko : public PDalitzDecay { PDistribution *Clone(const char *delme=NULL) const; double dGdM(const int& id, const double& m, const double& ecm); - + ClassDef(PDeltaDalitzKrivoruchenko, 0) //Another Delta Dalitz description }; diff --git a/plugins/elementary/PElementaryPlugin.cc b/plugins/elementary/PElementaryPlugin.cc index 12287d9..400c6a2 100644 --- a/plugins/elementary/PElementaryPlugin.cc +++ b/plugins/elementary/PElementaryPlugin.cc @@ -2,14 +2,14 @@ // A plugin to activate the NN composite particles // and decays needed for other plugins, // and total cross sections for specific reactions -// -// Total cross sections for NN->Delta N are added from Teis et al. +// +// Total cross sections for NN->Delta N are added from Teis et al. // (Ref 10) // // For the eta cross sections, the following references have been used: // // [L1] P. Moskal et al., -// "Near threshold production of the eta meson via the quasi-free +// "Near threshold production of the eta meson via the quasi-free // pn --> pn eta reaction" // PRC 79 (2009) 015208, arXiv:0807.0722 [hep-ex] // [L2] H. Calen et al., @@ -22,7 +22,7 @@ // // Author: I. Froehlich // Written: 21.8.2008 -// +// ////////////////////////////////////////////////////////////////////// @@ -103,7 +103,7 @@ Bool_t PElementaryPlugin::Activate(void) { //************** Composite decays ******************// //* *// //* Do not change the order here, otherwise - //* the decays_idx will be re-sorted + //* the decays_idx will be re-sorted //**************************************************// Int_t ipid[5]; @@ -114,35 +114,35 @@ Bool_t PElementaryPlugin::Activate(void) { //Delta(1232) production if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "p + p -> p + D+", + makeStaticData()->AddDecay(-1, "p + p -> p + D+", "p + p", "p,D+", 1.0 ); ipid[1] = makeStaticData()->GetParticleID("n"); ipid[2] = makeStaticData()->GetParticleID("D++"); if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "p + p -> n + D++", + makeStaticData()->AddDecay(-1, "p + p -> n + D++", "p + p", "n,D++", 1.0 ); - + ipid[0] = makeStaticData()->GetParticleID("p + n"); ipid[1] = makeStaticData()->GetParticleID("n"); ipid[2] = makeStaticData()->GetParticleID("D+"); if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "p + n -> n + D+", + makeStaticData()->AddDecay(-1, "p + n -> n + D+", "p + n", "n,D+", 1.0 ); ipid[1] = makeStaticData()->GetParticleID("p"); ipid[2] = makeStaticData()->GetParticleID("D0"); if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "p + n -> p + D0", + makeStaticData()->AddDecay(-1, "p + n -> p + D0", "p + n", "p,D0", 1.0 ); ipid[0] = makeStaticData()->GetParticleID("n + p"); ipid[1] = makeStaticData()->GetParticleID("n"); ipid[2] = makeStaticData()->GetParticleID("D+"); if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "n + p -> n + D+", + makeStaticData()->AddDecay(-1, "n + p -> n + D+", "n + p", "n,D+", 1.0 ); ipid[1] = makeStaticData()->GetParticleID("p"); ipid[2] = makeStaticData()->GetParticleID("D0"); if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "n + p -> p + D0", + makeStaticData()->AddDecay(-1, "n + p -> p + D0", "n + p", "p,D0", 1.0 ); //This causes the BR the be equally distributed. This is a caveat //since the exp_w_mean will be folded in the PChannel. @@ -154,16 +154,16 @@ Bool_t PElementaryPlugin::Activate(void) { ipid[2] = makeStaticData()->GetParticleID("p"); ipid[3] = makeStaticData()->GetParticleID("eta"); if (makeStaticData()->GetDecayKey(ipid, 3) < 0) - makeStaticData()->AddDecay(-1, "p + p -> p + p + eta", + makeStaticData()->AddDecay(-1, "p + p -> p + p + eta", "p + p", "p,p,eta", 1.0 ); ipid[0] = makeStaticData()->GetParticleID("n + p"); ipid[1] = makeStaticData()->GetParticleID("n"); if (makeStaticData()->GetDecayKey(ipid, 3) < 0) - makeStaticData()->AddDecay(-1, "n + p -> n + p + eta", + makeStaticData()->AddDecay(-1, "n + p -> n + p + eta", "n + p", "n,p,eta", 1.0 ); ipid[0] = makeStaticData()->GetParticleID("p + n"); if (makeStaticData()->GetDecayKey(ipid, 3) < 0) - makeStaticData()->AddDecay(-1, "p + n -> n + p + eta", + makeStaticData()->AddDecay(-1, "p + n -> n + p + eta", "p + n", "n,p,eta", 1.0 ); //pn -> d eta @@ -172,12 +172,12 @@ Bool_t PElementaryPlugin::Activate(void) { ipid[2] = makeStaticData()->GetParticleID("eta"); if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "p + n -> d + eta", + makeStaticData()->AddDecay(-1, "p + n -> d + eta", "p + n", "d,eta", 1.0 ); ipid[0] = makeStaticData()->GetParticleID("n + p"); if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "n + p -> d + eta", + makeStaticData()->AddDecay(-1, "n + p -> d + eta", "n + p", "d,eta", 1.0 ); // x=4.98953, y=0.156364 @@ -253,7 +253,7 @@ Bool_t PElementaryPlugin::Activate(void) { TGraph *delta_gra = new TGraph(20, x, y); - PTCrossWeight *delta_cross = + PTCrossWeight *delta_cross = new PTCrossWeight("p + p_to_D+_p/tcross", "D+ cross section in the p+p reaction", -1); delta_cross->Add("p,grandparent,beam"); @@ -261,12 +261,12 @@ Bool_t PElementaryPlugin::Activate(void) { delta_cross->Add("q,parent"); delta_cross->Add("p,daughter"); delta_cross->Add("D+,daughter"); - delta_cross->SetCrossSection(delta_gra, kTRUE); + delta_cross->SetCrossSection(delta_gra, kTRUE); delta_cross->SetScaling((3./2.) / 1000.); //Isospin coefficient //factor 1000 to convert in [b] pdmutil->Add(delta_cross); - delta_cross = + delta_cross = new PTCrossWeight("p + p_to_D++_n/tcross", "D++ cross section in the p+p reaction", -1); delta_cross->Add("p,grandparent,beam"); @@ -274,11 +274,11 @@ Bool_t PElementaryPlugin::Activate(void) { delta_cross->Add("q,parent"); delta_cross->Add("n,daughter"); delta_cross->Add("D++,daughter"); - delta_cross->SetCrossSection(delta_gra,kTRUE); + delta_cross->SetCrossSection(delta_gra,kTRUE); delta_cross->SetScaling((3./2.) * 3./1000.); //Isospin coefficient pdmutil->Add(delta_cross); - delta_cross = + delta_cross = new PTCrossWeight("p + n_to_D0_p/tcross", "D0 cross section in the p+n reaction", -1); delta_cross->Add("p,grandparent,beam"); @@ -286,19 +286,19 @@ Bool_t PElementaryPlugin::Activate(void) { delta_cross->Add("q,parent"); delta_cross->Add("p,daughter"); delta_cross->Add("D0,daughter"); - delta_cross->SetCrossSection(delta_gra,kTRUE); + delta_cross->SetCrossSection(delta_gra,kTRUE); delta_cross->SetScaling((3./2.) / 1000.); //Isospin coefficient pdmutil->Add(delta_cross); - - delta_cross = + + delta_cross = new PTCrossWeight("n + p_to_D0_p/tcross", "D0 cross section in the p+n reaction [clone]", -1); delta_cross->Add("dummy,parent"); - delta_cross->SetCrossSection(delta_gra,kTRUE); + delta_cross->SetCrossSection(delta_gra,kTRUE); delta_cross->SetScaling((3./2.) / 1000.); //Isospin coefficient pdmutil->Add(delta_cross); - delta_cross = + delta_cross = new PTCrossWeight("p + n_to_D+_n/tcross", "D+ cross section in the p+n reaction", -1); delta_cross->Add("p,grandparent,beam"); @@ -306,15 +306,15 @@ Bool_t PElementaryPlugin::Activate(void) { delta_cross->Add("q,parent"); delta_cross->Add("n,daughter"); delta_cross->Add("D+,daughter"); - delta_cross->SetCrossSection(delta_gra,kTRUE); + delta_cross->SetCrossSection(delta_gra,kTRUE); delta_cross->SetScaling((3./2.) / 1000.); //Isospin coefficient pdmutil->Add(delta_cross); - - delta_cross = + + delta_cross = new PTCrossWeight("n + p_to_D+_n/tcross", "D+ cross section in the p+n reaction [clone]", -1); delta_cross->Add("dummy,parent"); - delta_cross->SetCrossSection(delta_gra,kTRUE); + delta_cross->SetCrossSection(delta_gra,kTRUE); delta_cross->SetScaling((3./2.) / 1000.); //Isospin coefficient pdmutil->Add(delta_cross); @@ -333,7 +333,7 @@ Bool_t PElementaryPlugin::Activate(void) { // x=91.3589, y=29.2215 // x=103.202, y=43.7908 // x=117.371, y=62.1022 - + Double_t x_pp_eta[13] = { 0, 1.0574, 2.32627, 4.86402, 9.09359, 19.0331, // 28.5496, @@ -355,10 +355,10 @@ Bool_t PElementaryPlugin::Activate(void) { x_pp_eta[i] *= 0.001; //in GeV x_pp_eta[i] += thr; } - + TGraph *pp_eta_gra = new TGraph(13, x_pp_eta, y_pp_eta); - PTCrossWeight *pp_eta_cross = + PTCrossWeight *pp_eta_cross = new PTCrossWeight("p + p_to_p_p_eta/tcross", "Eta cross section in the p+p reaction (<120 MeV)", -1); pp_eta_cross->Add("p,grandparent,beam"); @@ -367,7 +367,7 @@ Bool_t PElementaryPlugin::Activate(void) { pp_eta_cross->Add("p,daughter"); pp_eta_cross->Add("p,daughter"); pp_eta_cross->Add("eta,daughter"); - pp_eta_cross->SetCrossSection(pp_eta_gra, kFALSE); + pp_eta_cross->SetCrossSection(pp_eta_gra, kFALSE); pp_eta_cross->SetScaling(.000001); //convert from [ub] to [b] // pp_eta_cross->SetExcessEnergy(kTRUE,kTRUE); //Q in MeV pdmutil->Add(pp_eta_cross); @@ -392,10 +392,10 @@ Bool_t PElementaryPlugin::Activate(void) { Double_t x_pn_eta[14] = { 0., 2.74923, 7.40176, 12.6887,25.8004, 35.7399, 45.468, 55.4075, 63.4437, 73.8061, 81.6308, 90.09, 98.5492, 108.489}; - Double_t y_pn_eta[14] = { + Double_t y_pn_eta[14] = { 0., 1.02883, 3.79588, 9.51891, 20.2298, 35.1202, 51.6716, 68.0823, 91.3697, 124.898, 139.466, 164.565, 220.854, 229.127}; - + thr = makeStaticData()->GetParticleMass("p")+ makeStaticData()->GetParticleMass("n")+ makeStaticData()->GetParticleMass("eta"); @@ -408,8 +408,8 @@ Bool_t PElementaryPlugin::Activate(void) { TGraph *pn_eta_gra = new TGraph(14, x_pn_eta, y_pn_eta); - - PTCrossWeight *pn_eta_cross = + + PTCrossWeight *pn_eta_cross = new PTCrossWeight("p + n_to_p_n_eta/tcross", "Eta cross section in the p+n reaction (<120 MeV)", -1); pn_eta_cross->Add("p,grandparent,beam"); @@ -418,16 +418,16 @@ Bool_t PElementaryPlugin::Activate(void) { pn_eta_cross->Add("p,daughter"); pn_eta_cross->Add("n,daughter"); pn_eta_cross->Add("eta,daughter"); - pn_eta_cross->SetCrossSection(pn_eta_gra, kFALSE); + pn_eta_cross->SetCrossSection(pn_eta_gra, kFALSE); pn_eta_cross->SetScaling(.000001); //convert from [ub] to [b] // pn_eta_cross->SetExcessEnergy(kTRUE,kTRUE); //Q in MeV pdmutil->Add(pn_eta_cross); - pn_eta_cross = + pn_eta_cross = new PTCrossWeight("n + p_to_p_n_eta/tcross", "Eta cross section in the p+n reaction (<120 MeV) [clone]", -1); pn_eta_cross->Add("dummy,parent"); - pn_eta_cross->SetCrossSection(pn_eta_gra, kFALSE); + pn_eta_cross->SetCrossSection(pn_eta_gra, kFALSE); pn_eta_cross->SetScaling(.000001); //convert from [ub] to [b] // pn_eta_cross->SetExcessEnergy(kTRUE,kTRUE); //Q in MeV //BUGBUG: I want to have an automatic clone here.... @@ -448,11 +448,11 @@ Bool_t PElementaryPlugin::Activate(void) { // x=0.09445, y=88.9097 // x=0.10268, y=92.0373 // x=0.113262, y=96.9363 - + Double_t x_d_eta[14] = {0, 0.000195955, 0.00803413, 0.0158723, 0.0248862, 0.0350758, 0.0466371, 0.0548672, 0.0654487, 0.0744626, 0.0846523, 0.09445, 0.10268, 0.113262}; //in Q [MeV] - + Double_t y_d_eta[14] = {0, 21.1751, 28.9042, 39.4545, 57.7113, 61.8431, 85.8883, 98.6266, 98.6266, 92.0373, 88.9097, 88.9097, 92.0373, 96.9363}; //in [ub] thr=makeStaticData()->GetParticleMass("d")+ @@ -463,7 +463,7 @@ Bool_t PElementaryPlugin::Activate(void) { } TGraph *d_eta_gra = new TGraph(14, x_d_eta, y_d_eta); - PTCrossWeight *d_eta_cross = + PTCrossWeight *d_eta_cross = new PTCrossWeight("p + n_to_d_eta/tcross", "Eta cross section in the p+n->d eta reaction (<120 MeV)", -1); d_eta_cross->Add("p,grandparent,beam"); @@ -471,15 +471,15 @@ Bool_t PElementaryPlugin::Activate(void) { d_eta_cross->Add("q,parent"); d_eta_cross->Add("d,daughter"); d_eta_cross->Add("eta,daughter"); - d_eta_cross->SetCrossSection(d_eta_gra, kFALSE); + d_eta_cross->SetCrossSection(d_eta_gra, kFALSE); d_eta_cross->SetScaling(.000001); //convert from [ub] to [b] pdmutil->Add(d_eta_cross); - d_eta_cross = + d_eta_cross = new PTCrossWeight("n + p_to_d_eta/tcross", "Eta cross section in the p+n->d eta reaction (<120 MeV) [clone]", -1); d_eta_cross->Add("dummy,parent"); - d_eta_cross->SetCrossSection(d_eta_gra, kFALSE); + d_eta_cross->SetCrossSection(d_eta_gra, kFALSE); d_eta_cross->SetScaling(.000001); //convert from [ub] to [b] pdmutil->Add(d_eta_cross); diff --git a/plugins/elementary/PElementaryPlugin.h b/plugins/elementary/PElementaryPlugin.h index d58b559..78c38f6 100644 --- a/plugins/elementary/PElementaryPlugin.h +++ b/plugins/elementary/PElementaryPlugin.h @@ -1,7 +1,7 @@ // Author: I. Froehlich // Written: 21.8.2008 -// Revised: -// +// Revised: +// #ifndef _PTEISPLUGIN_H_ @@ -21,7 +21,7 @@ using namespace std; class PElementaryPlugin : public PDistributionCollection { - + public: //constructor @@ -30,7 +30,7 @@ class PElementaryPlugin : public PDistributionCollection { //destructor ~PElementaryPlugin(); - Bool_t ExecCommand(const char *command, Double_t value); + Bool_t ExecCommand(const char *command, Double_t value); Bool_t Activate(void); diff --git a/plugins/elementary/PNNFSI.cc b/plugins/elementary/PNNFSI.cc index 1fc5f25..31cce43 100644 --- a/plugins/elementary/PNNFSI.cc +++ b/plugins/elementary/PNNFSI.cc @@ -16,7 +16,7 @@ using namespace std; ClassImp(PNNFSI) - + PNNFSI::PNNFSI() { Setup(); }; @@ -64,12 +64,12 @@ Bool_t PNNFSI::Init(void) { //Now get all daugthers for (int i=0; i pipi gamma (not rare) // - + //Standalone models, up to now nothing special - eta_pipi_gamma = + eta_pipi_gamma = new PEtaPiPiGamma("eta_pipi_gamma_matrix_weighting@eta_to_pi+_pi-_g/matrix", "Matrix element eta -> pipi gamma (Weighting)", -1); - + eta_pipi_gamma->EnableWeighting(); makeDistributionManagerUtil()->Add(eta_pipi_gamma); - eta_pipi_gamma = + eta_pipi_gamma = new PEtaPiPiGamma("eta_pipi_gamma_matrix@eta_to_pi+_pi-_g/matrix", "Matrix element eta -> pipi gamma", -1); makeDistributionManagerUtil()->Add(eta_pipi_gamma); - + // // eta -> e+e-e+e- (rare) // @@ -146,15 +146,15 @@ Bool_t PEtaDecaysPlugin::ExecCommand(const char *, Double_t) { ipid[0] = makeStaticData()->GetParticleID("eta"); ipid[1] = makeStaticData()->GetParticleID("dilepton"); ipid[2] = makeStaticData()->GetParticleID("dilepton"); - + if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1,"eta -> dilepton + dilepton", + makeStaticData()->AddDecay(-1,"eta -> dilepton + dilepton", "eta", "dilepton,dilepton", ETA_DOUBLE_DALITZ_BR); - + //Create and add simple model: eta_dd_simple = new PEtaDoubleDalitz("eta_double_dalitz_simple@eta_to_dilepton_dilepton", "Dilepton generator for eta -> dilepton + dilepton", -1); - + makeDistributionManagerUtil()->SetGroup("rare_eta_decays"); makeDistributionManagerUtil()->Add(eta_dd_simple); @@ -178,24 +178,24 @@ Bool_t PEtaDecaysPlugin::ExecCommand(const char *, Double_t) { "Simple VMD form factor for eta Double Dalitz", -1); ff->SetVectorMesonMass(0.77); ff->SetWeightMax(5.); - + makeDistributionManagerUtil()->Add(ff); // // eta -> e+e-pi+pi- (rare) - // // - - + // + + //Add decay, if not yet present: ipid[0] = makeStaticData()->GetParticleID("eta"); ipid[1] = makeStaticData()->GetParticleID("e+"); ipid[2] = makeStaticData()->GetParticleID("e-"); ipid[3] = makeStaticData()->GetParticleID("pi+"); ipid[4] = makeStaticData()->GetParticleID("pi-"); - + if (makeStaticData()->GetDecayKey(ipid, 4) < 0) - makeStaticData()->AddDecay(-1,"eta -> e+ + e- + pi+ + pi-", + makeStaticData()->AddDecay(-1,"eta -> e+ + e- + pi+ + pi-", "eta", "e+,e-,pi+,pi-", ETA_EE_PIPI_BR); //first, the standard ff @@ -207,7 +207,7 @@ Bool_t PEtaDecaysPlugin::ExecCommand(const char *, Double_t) { //mass distribution of the di-lepton mass. Here we use the //function to be folded into the genbod model - PEtaPiPiDileptonMass *main = + PEtaPiPiDileptonMass *main = new PEtaPiPiDileptonMass("eta_ee_pipi_mass@eta_to_e+_e-_pi+_pi-/correlation", "eta -> pi pi dilepton a la Wirzba (dilepton mass)", -1); makeDistributionManagerUtil()->Add(main); diff --git a/plugins/eta_decays/PEtaDecaysPlugin.h b/plugins/eta_decays/PEtaDecaysPlugin.h index 7c459e6..06a2cbd 100644 --- a/plugins/eta_decays/PEtaDecaysPlugin.h +++ b/plugins/eta_decays/PEtaDecaysPlugin.h @@ -1,7 +1,7 @@ // Author: I. Froehlich // Written: 16.9.2009 -// Revised: -// +// Revised: +// #ifndef _PETADECAYSPLUGIN_H_ @@ -30,7 +30,7 @@ using namespace std; class PEtaDecaysPlugin : public PDistributionCollection { - + public: //constructor @@ -39,7 +39,7 @@ class PEtaDecaysPlugin : public PDistributionCollection { //destructor ~PEtaDecaysPlugin(); - Bool_t ExecCommand(const char *command, Double_t value); + Bool_t ExecCommand(const char *command, Double_t value); Bool_t Activate(void); diff --git a/plugins/eta_decays/PEtaDoubleDalitz.cc b/plugins/eta_decays/PEtaDoubleDalitz.cc index fc5f50f..0dc8bf1 100644 --- a/plugins/eta_decays/PEtaDoubleDalitz.cc +++ b/plugins/eta_decays/PEtaDoubleDalitz.cc @@ -5,7 +5,7 @@ // // Author: I. Froehlich // Written: 17.9.2009 -// +// ////////////////////////////////////////////////////////////////////// #include "PEtaDoubleDalitz.h" @@ -41,38 +41,38 @@ Double_t PEtaDoubleDalitz::Gen2lepton1(Double_t m) { Bool_t PEtaDoubleDalitz::Init(void) { - + parent = GetParticle("parent"); if (!parent) { Warning("Init", "Parent not found"); return kFALSE; } - + dil1 = GetParticle("dilepton"); dil2 = GetParticle("dilepton"); - + if (!dil1 || !dil2) { Warning("Init", "Dileptons not found"); return kFALSE; } - + formfactor_model = GetSecondaryModel("formfactor"); if (formfactor_model) ff_w_max = formfactor_model->GetWeightMax(); if (ff_w_max < 0) { Warning("Init", "Max value of the FF model not initialized, FF disabled"); - formfactor_model = NULL; - } + formfactor_model = NULL; + } if (!formfactor_model) ff_w_max = 1.; - + return kTRUE; } Bool_t PEtaDoubleDalitz::SampleMass(void) { Double_t MEta = parent->M(); - + Double_t weight = 1.; Double_t mVV[2]; do { @@ -85,11 +85,11 @@ Bool_t PEtaDoubleDalitz::SampleMass(void) { } } while((mVV[0]+mVV[1]>MEta) || ((weight/ff_w_max) < PUtils::sampleFlat()) ); - - + + dil1->SetM(mVV[0]); dil2->SetM(mVV[1]); - + return kTRUE; }; diff --git a/plugins/eta_decays/PEtaDoubleDalitz.h b/plugins/eta_decays/PEtaDoubleDalitz.h index 981b3b0..e9fabfe 100644 --- a/plugins/eta_decays/PEtaDoubleDalitz.h +++ b/plugins/eta_decays/PEtaDoubleDalitz.h @@ -1,7 +1,7 @@ // Author: I. Froehlich // Written: 16.9.2009 -// Revised: -// +// Revised: +// #ifndef _PETADOUBLEDALITZ_H_ #define _PETADOUBLEDALITZ_H_ @@ -12,26 +12,26 @@ class PEtaDoubleDalitz : public PChannelModel { - + public: - + PEtaDoubleDalitz(const Char_t *id, const Char_t *de, Int_t key); PDistribution* Clone(const char*delme=NULL) const; - + Bool_t Init(void); - + using PChannelModel::SampleMass; Bool_t SampleMass(void); - + private: - + Double_t Gen2lepton1(Double_t m); TRandom2 *gRand; PParticle *dil1, *dil2, *parent; Double_t ff_w_max; //Max weight of FF model PChannelModel *formfactor_model; //form factor object - + ClassDef(PEtaDoubleDalitz, 0) // Simple Eta Dalitz decay based on two dileptons }; diff --git a/plugins/eta_decays/PEtaDoubleDalitzEnv.cc b/plugins/eta_decays/PEtaDoubleDalitzEnv.cc index 30c8235..868397f 100644 --- a/plugins/eta_decays/PEtaDoubleDalitzEnv.cc +++ b/plugins/eta_decays/PEtaDoubleDalitzEnv.cc @@ -5,7 +5,7 @@ // // Author: I. Froehlich // Written: 30.3.2010 -// +// ////////////////////////////////////////////////////////////////////// #include "PEtaDoubleDalitzEnv.h" @@ -23,7 +23,7 @@ PEtaDoubleDalitzEnv::PEtaDoubleDalitzEnv(const Char_t *id, const Char_t *de, Int Bool_t PEtaDoubleDalitzEnv::Init(void) { - + parent = GetParticle("parent"); if (!parent) { Warning("Init", "Parent not found"); @@ -32,17 +32,17 @@ Bool_t PEtaDoubleDalitzEnv::Init(void) { dil1 = GetParticle("dilepton"); dil2 = GetParticle("dilepton"); - + if (!dil1 || !dil2) { Warning("Init", "Dileptons not found"); return kFALSE; } - ep1 = GetParticle("e+"); + ep1 = GetParticle("e+"); ep2 = GetParticle("e+"); - em1 = GetParticle("e-"); + em1 = GetParticle("e-"); em2 = GetParticle("e-"); - + return kTRUE; } @@ -62,9 +62,9 @@ Bool_t PEtaDoubleDalitzEnv::EndOfChain(void) { PParticle em1_tmp(em1); PParticle em2_tmp(em2); - ep1_tmp.Boost(-parent->BoostVector()); + ep1_tmp.Boost(-parent->BoostVector()); ep2_tmp.Boost(-parent->BoostVector()); - em1_tmp.Boost(-parent->BoostVector()); + em1_tmp.Boost(-parent->BoostVector()); em2_tmp.Boost(-parent->BoostVector()); PParticle dil1_tmp(ep1_tmp); @@ -106,7 +106,7 @@ Bool_t PEtaDoubleDalitzEnv::EndOfChain(void) { Double_t beta2_2 = 1 - 4* ep2->M2() / dil2_tmp.M2(); Double_t amplitude = - 0.5*((1 + (1 - beta1_2*sin1_2) * (1 - beta2_2*sin2_2)) + 0.5*((1 + (1 - beta1_2*sin1_2) * (1 - beta2_2*sin2_2)) * sin(phi)* sin(phi) + (2 - beta1_2*sin1_2 - beta2_2*sin2_2) * cos(phi)* cos(phi)); diff --git a/plugins/eta_decays/PEtaDoubleDalitzEnv.h b/plugins/eta_decays/PEtaDoubleDalitzEnv.h index ec52ebe..61e18b9 100644 --- a/plugins/eta_decays/PEtaDoubleDalitzEnv.h +++ b/plugins/eta_decays/PEtaDoubleDalitzEnv.h @@ -1,7 +1,7 @@ // Author: I. Froehlich // Written: 30.3.2010 -// Revised: -// +// Revised: +// #ifndef _PETADOUBLEDALITZENV_H_ #define _PETADOUBLEDALITZENV_H_ @@ -12,23 +12,23 @@ class PEtaDoubleDalitzEnv : public PChannelModel { - + public: - + PEtaDoubleDalitzEnv(const Char_t *id, const Char_t *de, Int_t key); PDistribution* Clone(const char *delme=NULL) const; - + Bool_t Init(void); Bool_t Finalize(void); Bool_t EndOfChain(void); - - + + private: - + PParticle *dil1, *dil2, *parent, *ep1, *ep2, *em1, *em2; - + ClassDef(PEtaDoubleDalitzEnv, 0) //Complete Eta Dalitz decay, enveloped over the decey chain }; diff --git a/plugins/eta_decays/PEtaDoubleDalitzFF.cc b/plugins/eta_decays/PEtaDoubleDalitzFF.cc index dc7db09..ba59b18 100644 --- a/plugins/eta_decays/PEtaDoubleDalitzFF.cc +++ b/plugins/eta_decays/PEtaDoubleDalitzFF.cc @@ -5,7 +5,7 @@ // // Author: I. Froehlich // Written: 17.9.2009 -// +// ////////////////////////////////////////////////////////////////////// @@ -17,56 +17,56 @@ PDistribution *PEtaDoubleDalitzFF::Clone(const char*) const { return new PEtaDoubleDalitzFF((const PEtaDoubleDalitzFF &)* this); }; -PEtaDoubleDalitzFF::PEtaDoubleDalitzFF(Char_t *id, Char_t *de, Int_t key) : +PEtaDoubleDalitzFF::PEtaDoubleDalitzFF(Char_t *id, Char_t *de, Int_t key) : PChannelModel(id, de, key) { - //Constructor + //Constructor Lambda = 0.770; //default value dil1 = dil2 = parent = NULL; }; Bool_t PEtaDoubleDalitzFF::Init(void) { - + parent = GetParticle("parent"); if (!parent) { Warning("Init", "Parent not found"); return kFALSE; } - + dil1 = GetParticle("dilepton"); dil2 = GetParticle("dilepton"); - + if (!dil1 || !dil2) { Warning("Init","Dileptons not found"); return kFALSE; } - + EnableWeighting(); SetExpectedWeightMean(-1); - + return kTRUE; } Double_t PEtaDoubleDalitzFF::GetWeight() { - + TLorentzVector *P3, *P4; P3 = (TLorentzVector*) dil1; P4 = (TLorentzVector*) dil2; - - + + //******************* Extraction of physics observables **************** Double_t q1_2 = (*P3)*(*P3);//Lorentz Vector of 1st g squared Double_t q2_2 = (*P4)*(*P4);//Lorentz Vector of 2nd g squared //*************FF from Johan and Fredrik paper*********************** // Double_t FF=Lambda^4/(Lambda^2+mVV[0])*Lambda/(Lambda^2+mVV[1]);// including process with Lambda parameter - Ro meson // Double_t FF=Lambda*Lambda*Lambda*Lambda/((Lambda*Lambda-q1_2)*(Lambda*Lambda-q2_2)); - + // Double_t FF=Lambda*Lambda/((Lambda*Lambda-q1_2)); Double_t FF = Lambda*Lambda*Lambda*Lambda/((Lambda*Lambda-q1_2)*(Lambda*Lambda-q2_2)); float weightFF = FF; - + //weightFF = 20; // cout << weightFF << endl; - return weightFF; + return weightFF; } diff --git a/plugins/eta_decays/PEtaDoubleDalitzFF.h b/plugins/eta_decays/PEtaDoubleDalitzFF.h index 48a333f..7695461 100644 --- a/plugins/eta_decays/PEtaDoubleDalitzFF.h +++ b/plugins/eta_decays/PEtaDoubleDalitzFF.h @@ -1,7 +1,7 @@ // Author: I. Froehlich // Written: 16.9.2009 -// Revised: -// +// Revised: +// #ifndef _PETADOUBLEDALITZFF_H_ #define _PETADOUBLEDALITZFF_H_ @@ -12,18 +12,18 @@ //Additional weight for the eta double Dalitz FF class PEtaDoubleDalitzFF : public PChannelModel { - + public: - + using PChannelModel::GetWeight; PEtaDoubleDalitzFF(Char_t *id, Char_t *de, Int_t key); PDistribution *Clone(const char *delme=NULL) const; Double_t GetWeight(); - + void SetLambda(Double_t val) {Lambda=val;}; Bool_t Init(void); - + private: PParticle *dil1, *dil2, *parent; //decay particles diff --git a/plugins/eta_decays/PEtaPiPiDilepton.cc b/plugins/eta_decays/PEtaPiPiDilepton.cc index 061b1da..ea31b9e 100644 --- a/plugins/eta_decays/PEtaPiPiDilepton.cc +++ b/plugins/eta_decays/PEtaPiPiDilepton.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////// -// +// // Decay eta -> pi+ pi- dilepton // PiPi correlation including the angles after the dilepton sampling // @@ -10,7 +10,7 @@ // References: // [L1] Thimo Petri and Andreas Wirzba // Internal Report, Juelich -// +// // Author: I. Froehlich ///////////////////////////////////////////////////////////////////// @@ -35,8 +35,8 @@ PEtaPiPiDilepton::PEtaPiPiDilepton(const Char_t *id, const Char_t *de, Int_t key Warning("PEtaPiPiDilepton", "This model should be bound to CHANNELS only"); m_pi = makeStaticData()->GetParticleMass("pi+"); - mass_e = makeStaticData()->GetParticleMass("e-"); - mass_eta = makeStaticData()->GetParticleMass("eta"); + mass_e = makeStaticData()->GetParticleMass("e-"); + mass_eta = makeStaticData()->GetParticleMass("eta"); mass_ee = 2.*mass_e; weight_max = 0.00000001; }; @@ -47,7 +47,7 @@ PDistribution *PEtaPiPiDilepton::Clone(const char *) const { Bool_t PEtaPiPiDilepton::Init(void) { //Init function called once for each PChannel - + //looking for parent. This is mandatory parent = GetParticle("parent"); if (!parent) { @@ -112,7 +112,7 @@ Double_t PEtaPiPiDilepton::GetWeight(void) { + (*(TLorentzVector*) pim)); TLorentzVector dil = ((*(TLorentzVector*) ep) + (*(TLorentzVector*) em)); - + PParticle p_star(pip); //rotate such that twopi points to z-axis: @@ -126,7 +126,7 @@ Double_t PEtaPiPiDilepton::GetWeight(void) { Double_t theta_pi = TMath::Pi() - p_star.Theta(); - Double_t s_pipi = twopi.M(); + Double_t s_pipi = twopi.M(); PParticle ep_tmp(pip); Phi = dil.Phi(); @@ -145,19 +145,19 @@ Double_t PEtaPiPiDilepton::GetWeight(void) { Bool_t PEtaPiPiDilepton::IsNotRejected(void) { //Use rejection mode... - if (GetVersionFlag(VERSION_WEIGHTING)) return kTRUE; + if (GetVersionFlag(VERSION_WEIGHTING)) return kTRUE; //...but not if weighting enabled. Double_t weight = GetWeight(); - + if (weight>weight_max) { Warning("IsNotRejected", "Weight (%lf) > max (%lf)", weight, weight_max); weight_max = weight*1.1; } - if ((weight/weight_max)>PUtils::sampleFlat()) + if ((weight/weight_max)>PUtils::sampleFlat()) return kTRUE; // sample now distribution - + return kFALSE; } diff --git a/plugins/eta_decays/PEtaPiPiDilepton.h b/plugins/eta_decays/PEtaPiPiDilepton.h index 1406dce..c183b73 100644 --- a/plugins/eta_decays/PEtaPiPiDilepton.h +++ b/plugins/eta_decays/PEtaPiPiDilepton.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 09.11.2010 -// Revised: +// Revised: #ifndef _PETAPIPIDILEPTON_H_ #define _PETAPIPIDILEPTON_H_ @@ -12,7 +12,7 @@ #include "PKinematics.h" class PEtaPiPiDilepton : public PChannelModel { - + public: PEtaPiPiDilepton(); PEtaPiPiDilepton(const Char_t *id, const Char_t *de, Int_t key); @@ -34,11 +34,11 @@ class PEtaPiPiDilepton : public PChannelModel { Bool_t IsNotRejected(void); protected: - + PParticle *parent, *pip, *pim, *ep, *em; Double_t m_pi, mass_ee, mass_e, mass_eta; Double_t weight_max; //Maximum - + ClassDef(PEtaPiPiDilepton, 0) // pipi correlation in eta -> pi+ pi- dilepton }; diff --git a/plugins/eta_decays/PEtaPiPiDileptonMass.cc b/plugins/eta_decays/PEtaPiPiDileptonMass.cc index df6fca0..4c7cc26 100644 --- a/plugins/eta_decays/PEtaPiPiDileptonMass.cc +++ b/plugins/eta_decays/PEtaPiPiDileptonMass.cc @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////// -// +// // Decay eta -> pi+ pi- dilepton // Model to sample the dilepton mass // // References: // [L1] Thimo Petri and Andreas Wirzba // Internal Report, Juelich -// +// // Author: I. Froehlich ///////////////////////////////////////////////////////////////////// @@ -31,7 +31,7 @@ PEtaPiPiDileptonMass::PEtaPiPiDileptonMass(const Char_t *id, const Char_t *de, I Warning("PEtaPiPiDileptonMass", "This model should be bound to CHANNELS only"); m_pi = makeStaticData()->GetParticleMass("pi+"); - mass_e = makeStaticData()->GetParticleMass("e-"); + mass_e = makeStaticData()->GetParticleMass("e-"); mass_ee = 2.*mass_e; vmd_formfactor_model = NULL; @@ -46,7 +46,7 @@ PDistribution* PEtaPiPiDileptonMass::Clone(const char*) const { Bool_t PEtaPiPiDileptonMass::Init(void) { //Init function called once for each PChannel - + //looking for parent. This is mandatory parent = GetParticle("parent"); if (!parent) { @@ -89,7 +89,7 @@ Double_t PEtaPiPiDileptonMass::GetWeight(Double_t *mass, Int_t *) { } Double_t PEtaPiPiDileptonMass::GetMassWeight(Double_t mass) const { - + //Mass-dependent part of the eqn. 64 if (mass < mass_ee) return 0.; diff --git a/plugins/eta_decays/PEtaPiPiDileptonMass.h b/plugins/eta_decays/PEtaPiPiDileptonMass.h index 1abfd00..8191774 100644 --- a/plugins/eta_decays/PEtaPiPiDileptonMass.h +++ b/plugins/eta_decays/PEtaPiPiDileptonMass.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 09.11.2010 -// Revised: +// Revised: #ifndef _PETAPIPIDILEPTONMASS_H_ #define _PETAPIPIDILEPTONMASS_H_ @@ -12,7 +12,7 @@ #include "PKinematics.h" class PEtaPiPiDileptonMass : public PChannelModel { - + public: PEtaPiPiDileptonMass(); PEtaPiPiDileptonMass(const Char_t *id, const Char_t *de, Int_t key); @@ -30,12 +30,12 @@ class PEtaPiPiDileptonMass : public PChannelModel { Double_t Eval(Double_t x, Double_t y, Double_t z, Double_t t) const; protected: - + PParticle *parent, *pip, *pim, *ep, *em; Double_t m_pi, mass_ee, mass_e; PChannelModel *vmd_formfactor_model; //form factor object - + ClassDef(PEtaPiPiDileptonMass, 0) // Decay eta -> pi+ pi- dilepton (mass sampling) }; diff --git a/plugins/eta_decays/PEtaPiPiGamma.cc b/plugins/eta_decays/PEtaPiPiGamma.cc index 557669e..999cb29 100644 --- a/plugins/eta_decays/PEtaPiPiGamma.cc +++ b/plugins/eta_decays/PEtaPiPiGamma.cc @@ -1,11 +1,11 @@ ///////////////////////////////////////////////////////////////////// -// +// // Decay eta -> pi+ pi- gamma // // References: // [L1] Thimo Petri and Andreas Wirzba // Internal Report, Juelich -// +// // Author: I. Froehlich ///////////////////////////////////////////////////////////////////// @@ -38,7 +38,7 @@ PDistribution* PEtaPiPiGamma::Clone(const char *) const { Bool_t PEtaPiPiGamma::Init(void) { //Init function called once for each PChannel - + //looking for parent. This is mandatory parent = GetParticle("parent"); if (!parent) { @@ -60,7 +60,7 @@ Bool_t PEtaPiPiGamma::Init(void) { Warning("Init", "Gamma not found"); return kFALSE; } - + m_formfactor_model = GetSecondaryModel("formfactor"); @@ -117,19 +117,19 @@ Double_t PEtaPiPiGamma::GetWeight(void) { Bool_t PEtaPiPiGamma::IsNotRejected(void) { //Use rejection mode... - if (GetVersionFlag() & VERSION_WEIGHTING) return kTRUE; + if (GetVersionFlag() & VERSION_WEIGHTING) return kTRUE; //...but not if weighting enabled. Double_t weight = GetWeight(); - + if (weight > weight_max) { weight_max = weight*1.1; Warning("IsNotRejected", "Weight > max, new max is %lf", weight_max); } - if ((weight/weight_max) > PUtils::sampleFlat()) + if ((weight/weight_max) > PUtils::sampleFlat()) return kTRUE; // sample now distribution - + return kFALSE; } diff --git a/plugins/eta_decays/PEtaPiPiGamma.h b/plugins/eta_decays/PEtaPiPiGamma.h index 3a63536..39e2b4d 100644 --- a/plugins/eta_decays/PEtaPiPiGamma.h +++ b/plugins/eta_decays/PEtaPiPiGamma.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 01.10.2009 -// Revised: +// Revised: #ifndef _PETAPIPIGAMMA_H_ #define _PETAPIPIGAMMA_H_ @@ -12,7 +12,7 @@ #include "PKinematics.h" class PEtaPiPiGamma : public PChannelModel { - + public: PEtaPiPiGamma(); PEtaPiPiGamma(const Char_t *id, const Char_t *de, Int_t key); @@ -28,13 +28,13 @@ class PEtaPiPiGamma : public PChannelModel { Bool_t IsNotRejected(void); protected: - + PParticle *parent, *pip, *pim, *gamma; PChannelModel *m_formfactor_model; //form factor object Double_t weight_max; //Maximum - + ClassDef(PEtaPiPiGamma, 0) // Decay eta -> pi+ pi- gamma }; diff --git a/plugins/fairroot/PFairGenerator.cc b/plugins/fairroot/PFairGenerator.cc index e33ea26..4ed9e83 100644 --- a/plugins/fairroot/PFairGenerator.cc +++ b/plugins/fairroot/PFairGenerator.cc @@ -19,7 +19,7 @@ PFairGenerator::PFairGenerator() { } bool PFairGenerator::Modify(PParticle **stack, int *decay_done, int *num, int) { - + fNumberParticles = 0; //cout << "PFairGenerator::Modify" << endl; @@ -27,7 +27,7 @@ bool PFairGenerator::Modify(PParticle **stack, int *decay_done, int *num, int) { for (int i=0; i<*num; i++) { //Loop over stack particles - if (stack[i]->IsActive()) { + if (stack[i]->IsActive()) { //count only active particles //because the fireball macros have a multiplicity sampling if (!decay_done[i]) { @@ -38,7 +38,7 @@ bool PFairGenerator::Modify(PParticle **stack, int *decay_done, int *num, int) { return kFALSE; } fLocalStack[fNumberParticles] = stack[i]; - fNumberParticles++; + fNumberParticles++; } } } @@ -46,7 +46,7 @@ bool PFairGenerator::Modify(PParticle **stack, int *decay_done, int *num, int) { return kTRUE; } -Bool_t PFairGenerator::GetNextParticle(Int_t *pdgType, Double_t *px, Double_t *py, +Bool_t PFairGenerator::GetNextParticle(Int_t *pdgType, Double_t *px, Double_t *py, Double_t *pz, Double_t *vx, Double_t *vy, Double_t *vz) { //iterator for reading the particles @@ -56,7 +56,7 @@ Bool_t PFairGenerator::GetNextParticle(Int_t *pdgType, Double_t *px, Double_t * fNumberParticles--; PParticle *part = fLocalStack[fNumberParticles]; - + TLorentzVector mom = part->Vect4(); *px = mom.Px(); *py = mom.Py(); @@ -74,4 +74,4 @@ Bool_t PFairGenerator::GetNextParticle(Int_t *pdgType, Double_t *px, Double_t * } -ClassImp(PFairGenerator) +ClassImp(PFairGenerator) diff --git a/plugins/fairroot/PFairGenerator.h b/plugins/fairroot/PFairGenerator.h index 5455d76..25c547c 100644 --- a/plugins/fairroot/PFairGenerator.h +++ b/plugins/fairroot/PFairGenerator.h @@ -1,6 +1,6 @@ // Author: Ingo Froehlich // Written: 13/10/2009 -// Modified: +// Modified: // PFairGenerator Class Header #ifndef _PFAIRGENERATOR_H_ @@ -16,23 +16,23 @@ class PFairGenerator: public PBulkInterface { Int_t fNumberParticles; //number of stored pparticles PParticle *fLocalStack[FAIRGENERATOR_STACKSIZE]; //stack - + protected: - - + + public: - + PFairGenerator(); - + bool Modify(PParticle **stack, int *decay_done, int *num, int maxnum); //get particle array - - Bool_t GetNextParticle(Int_t *pdgType, Double_t *px, Double_t *py, + + Bool_t GetNextParticle(Int_t *pdgType, Double_t *px, Double_t *py, Double_t *pz, Double_t *vx, Double_t *vy, Double_t *vz); - + ClassDef(PFairGenerator, 0) // Interface to FairRoots primary generator }; -#endif +#endif diff --git a/plugins/hades/PHGeantOutput.cc b/plugins/hades/PHGeantOutput.cc index bbad3f5..ecd959e 100644 --- a/plugins/hades/PHGeantOutput.cc +++ b/plugins/hades/PHGeantOutput.cc @@ -31,7 +31,7 @@ // // { // PReaction my_reaction(..settings...); // create reaction -// +// // ... // add all channels , bulk etc // // PHGeantOutput* output = new PHGeantOutput(); // created output @@ -181,7 +181,7 @@ bool PHGeantOutput::WriteParticle(PParticle *par) { } } } else { - + if (writeINDEX == 0) { if(!writeSEQNUMBER){ fprintf(asciiFile," %e %e %e %e %e %e %e %e %i %i %i %e\n", // 12 vars @@ -220,4 +220,4 @@ bool PHGeantOutput::WriteParticle(PParticle *par) { } -ClassImp(PHGeantOutput) +ClassImp(PHGeantOutput) diff --git a/plugins/hades/PHGeantOutput.h b/plugins/hades/PHGeantOutput.h index fcdb3c3..ab879be 100644 --- a/plugins/hades/PHGeantOutput.h +++ b/plugins/hades/PHGeantOutput.h @@ -1,6 +1,6 @@ // Author: Jochen Markert // Written: 05/12/2007 -// Modified: +// Modified: // PHGeantOutput Class Header #ifndef _PHGEANTOUTPUT_H_ @@ -28,13 +28,13 @@ class PHGeantOutput: public PFileOutput { bool OpenFile(const char *_filename); //filename bool CloseFile(void); // - bool WriteEventHeader(void); + bool WriteEventHeader(void); bool WriteParticle(PParticle *par); //write one particle void SetWriteSeqNumber(Bool_t write) { writeSEQNUMBER = write; } ClassDef(PHGeantOutput, 0) // Pluto ascii file output for HGEANT }; -#endif +#endif diff --git a/plugins/hades/PHUrCollisionHeader.h b/plugins/hades/PHUrCollisionHeader.h index fd2c8b9..b084773 100644 --- a/plugins/hades/PHUrCollisionHeader.h +++ b/plugins/hades/PHUrCollisionHeader.h @@ -27,7 +27,7 @@ class PHUrCollisionHeader : public TObject { Bool_t Read(ifstream& in) { if(in.eof()) return kFALSE; if(!in.good()) return kFALSE; - in >> n_in >> n_out >> process_id >> n_collision >> t_collision >> + in >> n_in >> n_out >> process_id >> n_collision >> t_collision >> E_total_CM >> sig_total >> sig_partial >> baryon_density; if(n_in!=-2 && !in.eof() && !in.good()) return kFALSE; return kTRUE; diff --git a/plugins/hades/PHUrDilep.cc b/plugins/hades/PHUrDilep.cc index da0cf4a..9aebd58 100644 --- a/plugins/hades/PHUrDilep.cc +++ b/plugins/hades/PHUrDilep.cc @@ -100,7 +100,7 @@ void PHUrDilep::Dilep() { Double_t tgamma; // changed in gamma_star() Double_t xgstar, ygstar, zgstar, tgstar; // changed in gamma_star() Double_t xgamma, ygamma, zgamma; // changed in gamma_star() - + Double_t dgamma; // changed in dalpi(),daleta(),daletaprime(),dalomega() Double_t mgstar; // mgstar=s s from gamma_star() Double_t p0_gstar, p0_nucleon, p0_pion, p0_gamma; // local variables @@ -161,7 +161,7 @@ void PHUrDilep::Dilep() { if(p0_gstar > mgstar) { validm++; - + lobo_dal(p0_gstar, p0_pion, mgstar, beta, gamma, xgstar, ygstar, zgstar, tgstar, xgamma, ygamma, zgamma, particleOut->mass);// em,ep output @@ -317,7 +317,7 @@ void PHUrDilep::Dilep() { if (t <= dgamma) { - + mgstar = s ; p0_gstar = particleOut->mass/2. - (pow(mass_nucleon,2) - pow(mgstar,2))/(2.*particleOut->mass); @@ -338,7 +338,7 @@ void PHUrDilep::Dilep() { void PHUrDilep::dalpi(Double_t mx, Double_t &dgamma) { // form factor from Landsberg 1985 (Phys.Rept.128,301-376) - + Double_t t1 = ((4.*alpha_em)/(3.*TMath::Pi()*mx))* sqrt(1.-(4.*pow(mass_electron,2))/(pow(mx,2)))* (1.+(2.*pow(mass_electron,2))/(pow(mx,2))); @@ -348,7 +348,7 @@ void PHUrDilep::dalpi(Double_t mx, Double_t &dgamma) { } void PHUrDilep::daleta(Double_t mx, Double_t &dgamma) { - + //### integration dgamma, for more details please refer to (REFERENCE, MANUAL) #### Double_t t1 =((4.*alpha_em)/(3.*TMath::Pi()*mx))* @@ -379,7 +379,7 @@ void PHUrDilep::daletaprime(Double_t mx, Double_t &dgamma) { (pow(lambda_etaprime,2)+pow(gamma_etaprime,2)))/ (pow((pow(lambda_etaprime,2)-pow(mx,2)),2)+ (pow(lambda_etaprime,2)*pow(gamma_etaprime,2))); - + dgamma = t1*t2*f1*br_etaprime; } @@ -415,7 +415,7 @@ void PHUrDilep::daldelta(Double_t tau, Double_t mx, Double_t mres, Double_t &dga } void PHUrDilep::dalomega(Double_t tau, Double_t mx, Double_t &dgamma) { - + //######### Landsberg 85 Double_t t1 = ((2.*alpha_em)/(3.*TMath::Pi()*mx))* @@ -442,7 +442,7 @@ void PHUrDilep::diromega(Double_t tau, Double_t mres, Int_t multi, Double_t &we } void PHUrDilep::dirphi(Double_t, Double_t mres, Int_t multi, Double_t &weight) { - + const Double_t gamma_tot = 0.00426; const Double_t cv = 0.0000012411; @@ -453,13 +453,13 @@ void PHUrDilep::dirphi(Double_t, Double_t mres, Int_t multi, Double_t &weight) { } void PHUrDilep::dirrho(Double_t tau, Double_t mres, Int_t multi, Double_t &weight) { - + const Double_t cv = 0.0000090545; Double_t dwidth = (cv/ pow(mres,3))*pow(vacmass_rho,4); Double_t br = dwidth*(tau/gev); - weight = br/multi; + weight = br/multi; } void PHUrDilep::lobo_dal(Double_t p0_gstar, Double_t, @@ -907,7 +907,7 @@ void PHUrDilep::dgamma_sum(Int_t ityp, Double_t tau, Int_t multi, Double_t mx = 0, t1 = 0, t2 = 0, f1 = 0; Int_t z = 0; if(ityp == pion) { // pi0 - + smin = 0.0013; smax = 0.1348; tmax = 1.9065; @@ -928,7 +928,7 @@ void PHUrDilep::dgamma_sum(Int_t ityp, Double_t tau, Int_t multi, } weight = dgamma_sum*dx/multi; - + } else if(ityp == omega) { // omega smin = 0.0013; @@ -1025,8 +1025,8 @@ void PHUrDilep::dgamma_sum_delta(Double_t tau,Double_t mres,Int_t multi, Double_t mx, pf, q0, e, f, mt, ml, lambda, gamma0, dgamma, dgamma_sum=0; //Double_t q,qr; // cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc - - + + smin_del = 0.0013; tmax_del = 0.00903; smax_del = mres-mass_nucleon; @@ -1035,9 +1035,9 @@ void PHUrDilep::dgamma_sum_delta(Double_t tau,Double_t mres,Int_t multi, Int_t z_del = (Int_t)((smax_del-smin_del)/dx); for(Int_t i=1; i <= z_del; i++) { - + mx = smin_del+dx*i; - + pf = sqrt((pow(mres,2)-pow((mass_nucleon+mx),2))* (pow(mres,2)-pow((mass_nucleon-mx),2)))/2./mres; @@ -1052,16 +1052,16 @@ void PHUrDilep::dgamma_sum_delta(Double_t tau,Double_t mres,Int_t multi, */ f = (-3./2.)*(mres+mass_nucleon)/ (mass_nucleon*(pow((mres+mass_nucleon),2)-mx*mx)); - + e = sqrt(4.*TMath::Pi()*alpha_em); - + mt = pow((e*f*g),2)*pow(mres,2)/9./mass_nucleon* (pow(q0,2)*(5.*mres-3.*(q0+mass_nucleon))- pow(mx,2)*(mres+mass_nucleon+q0)); - + ml = pow((e*f*g),2)*pow(mres,2)/9./mass_nucleon*mx*mx*4.* (mres-mass_nucleon-q0); - + lambda = pow(mx,4)+pow(mass_nucleon,4)+pow(mres,4)-2.* (mx*mx*pow(mass_nucleon,2)+mx*mx*pow(mres,2)+pow(mass_nucleon,2)*mres*mres); @@ -1069,7 +1069,7 @@ void PHUrDilep::dgamma_sum_delta(Double_t tau,Double_t mres,Int_t multi, if(fabs(lambda) <= 1e-15) { lambda = 0; } - + if(mx <= q0) { gamma0 = sqrt(lambda)/(16.*TMath::Pi()*mres*mres)*mass_nucleon*(2.*mt+ml); dgamma = (2.*alpha_em)/(3.*TMath::Pi()*mx)*gamma0*(tau/gev); @@ -1078,7 +1078,7 @@ void PHUrDilep::dgamma_sum_delta(Double_t tau,Double_t mres,Int_t multi, dgamma_sum = 0; // added } } - + weight_delta = dgamma_sum*dx/multi; } diff --git a/plugins/hades/PHUrEventHeader.h b/plugins/hades/PHUrEventHeader.h index de314f4..cdef2d3 100644 --- a/plugins/hades/PHUrEventHeader.h +++ b/plugins/hades/PHUrEventHeader.h @@ -12,7 +12,7 @@ using namespace std; -class PHUrEventHeader : public TObject { +class PHUrEventHeader : public TObject { public: Int_t id; // 1 : Int_t The first integer in the event header is a -1. @@ -29,9 +29,9 @@ class PHUrEventHeader : public TObject { Bool_t Read(ifstream& in){ if(in.eof()) return kFALSE; if(!in.good()) return kFALSE; - in >> id >> evtnum >> mass_proj >> mass_target >> impact_par >> + in >> id >> evtnum >> mass_proj >> mass_target >> impact_par >> E_reaction >> tot_sig >> E_beam >> mom_per_particle; - if(evtnum!=-2 && !in.eof() && !in.good()) + if(evtnum!=-2 && !in.eof() && !in.good()) return kFALSE; return kTRUE; } diff --git a/plugins/hades/PHUrParticle.h b/plugins/hades/PHUrParticle.h index a855821..df00146 100644 --- a/plugins/hades/PHUrParticle.h +++ b/plugins/hades/PHUrParticle.h @@ -44,7 +44,7 @@ class PHUrParticle : public TLorentzVector { if(!in.good()) return kFALSE; Double_t px, py, pz, E; Double_t rx, ry, rz; - in >> ind >> t >> rx >> ry >> rz >> E >> px >> py >> pz >> mass >> id >> I3 >> + in >> ind >> t >> rx >> ry >> rz >> E >> px >> py >> pz >> mass >> id >> I3 >> chrg >> ind_part >> ncoll >> s >> parent_process; ind -= 1; // fortran ->C++ ind_part -= 1; // fortran ->C++ diff --git a/plugins/hades/PHUrReader.cc b/plugins/hades/PHUrReader.cc index ccce47e..983b4be 100644 --- a/plugins/hades/PHUrReader.cc +++ b/plugins/hades/PHUrReader.cc @@ -513,9 +513,9 @@ Bool_t PHUrReader::ReadEvent() { for(Int_t i = 0; i < colheader.n_in; i++) { PHUrParticle part; - if(!part.Read(fInputAscii)) { - Error("ReadEvent()", "Could not read in-going particle!"); - return kFALSE; + if(!part.Read(fInputAscii)) { + Error("ReadEvent()", "Could not read in-going particle!"); + return kFALSE; } Int_t pdg = 1000; @@ -535,9 +535,9 @@ Bool_t PHUrReader::ReadEvent() { for(Int_t i = 0; i < colheader.n_out; i++) { PHUrParticle part; - if(!part.Read(fInputAscii)) { - Error("ReadEvent()", "Could not read out-going particle!"); - return kFALSE; + if(!part.Read(fInputAscii)) { + Error("ReadEvent()", "Could not read out-going particle!"); + return kFALSE; } Int_t pdg = 1000; @@ -565,7 +565,7 @@ Bool_t PHUrReader::ReadEvent() { Bool_t PHUrReader::Modify(PParticle **mstack, int *, int *num, int stacksize) { if(!ReadEvent()) return kFALSE; - + //---------------------------------------------------------------------------------- // for the first call : create event structure @@ -685,7 +685,7 @@ Bool_t PHUrReader::Modify(PParticle **mstack, int *, int *num, int stacksize) { ) { // dilepton interest continue; } - + if(ct == fNumMax-50) { continue; } @@ -714,7 +714,7 @@ Bool_t PHUrReader::Modify(PParticle **mstack, int *, int *num, int stacksize) { } for(UInt_t iout = 0; iout < collisionsOut[icol].size(); iout++) { // out-going particles - + PHUrParticle &particle = collisionsOut [icol][iout]; PHUrCollisionHeader &collision = collisions[icol]; @@ -769,52 +769,52 @@ Bool_t PHUrReader::Modify(PParticle **mstack, int *, int *num, int stacksize) { // following collisions for(UInt_t icol2 = icol+1; icol2 < numberCol; icol2++) { // following collisions for(UInt_t iin = 0; iin < collisionsIn[icol2].size(); iin++) { // in-going particles - + PHUrParticle &particleIn = collisionsIn [icol2][iin]; PHUrParticle &particleOut = collisionsOut[icol ][iout]; - + if (particleIn.id == particleOut.id && particleIn.Pz() == particleOut.Pz()) { // same particle in following collision - + // found the same particle Bool_t dilepton = kFALSE; - + if(particleIn.id == dilep.omega || particleIn.id == dilep.delta || // omega || delta || rho || phi particleIn.id == dilep.rho || particleIn.id == dilep.phi) { // dilepton interest - + dilep.evtheader = &evtheader; dilep.particleIn = &particleIn; dilep.particleOut = &particleOut; dilep.collisionIn = &collisions[icol2]; dilep.collisionOut = &collisions[icol ]; - - if(!outputFreezeoutDiLeptons) { - dilep.Dilep(); - } else + + if(!outputFreezeoutDiLeptons) { + dilep.Dilep(); + } else flag = 0; // not final state - + dilepton = kTRUE; - + } // if dilepton interest - + if(particleIn.id == dilep.pion || particleIn.id == dilep.etaprime || particleIn.id == dilep.eta) { // pion || etaprime || eta flag = 0; dilepton = kTRUE; } - - if(!dilepton) flag_noLep = 0; - + + if(!dilepton) flag_noLep = 0; + } // if same particle in following collision } // for iin } // for col2 //---------------------------------------------------------------------------------- - + PHUrParticle &particleOut = collisionsOut[icol ][iout]; - + //---------------------------------------------------------------------------------- // in case of freeze out dileptons we have to // take care @@ -822,15 +822,15 @@ Bool_t PHUrReader::Modify(PParticle **mstack, int *, int *num, int stacksize) { particleOut.id == dilep.delta || // omega || delta || rho || phi particleOut.id == dilep.rho || particleOut.id == dilep.phi) { // dilepton interest - + if(outputFreezeoutDiLeptons && flag != 0) { - + dilep.evtheader = &evtheader; dilep.particleIn = &particleOut; dilep.particleOut = &particleOut; dilep.collisionIn = &collisions[icol]; dilep.collisionOut = &collisions[icol]; - + dilep.Dilep(); } } @@ -857,9 +857,9 @@ Bool_t PHUrReader::Modify(PParticle **mstack, int *, int *num, int stacksize) { particleOut.id == dilep.delta || // omega || delta || rho || phi particleOut.id == dilep.rho || particleOut.id == dilep.phi ) - + ) { - + if (flag_noLep != 0) { // final out non lepton if (outputNonDiLeptons == 1) { @@ -914,7 +914,7 @@ Bool_t PHUrReader::Modify(PParticle **mstack, int *, int *num, int stacksize) { PParticle *part = (PParticle*) fEvent->At(i); Int_t id = part->ID(); // already urqmd -> pdg code - + if (!makeDataBase()->GetParamInt (pdg_param, id, pid_param, &i_result)) { if(find(funknownIDs.begin(),funknownIDs.end(),id) == funknownIDs.end()){ diff --git a/plugins/hades/PHadesParticleSmearer.cc b/plugins/hades/PHadesParticleSmearer.cc index 6d86e3d..bd7d90c 100644 --- a/plugins/hades/PHadesParticleSmearer.cc +++ b/plugins/hades/PHadesParticleSmearer.cc @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////// // Momentum smearer implementation file // -// +// // //////////////////////////////////////////////////////// @@ -11,7 +11,7 @@ #include using namespace std; - + PHadesParticleSmearer:: PHadesParticleSmearer() { resolution_factor = 1; fPriority = FILTER_PRIORITY+1; //for HADES it is standard to filter first and then smear @@ -22,8 +22,8 @@ bool PHadesParticleSmearer::Modify(PParticle **stack, int *, int *num, int) { for (int i=0; i<*num; i++) { PParticle *cur = stack[i]; //cur->Print(); - - if (cur->Is("pi+") || cur->Is("pi-")|| cur->Is("p") + + if (cur->Is("pi+") || cur->Is("pi-")|| cur->Is("p") || cur->LeptonN()) { /* @@ -33,14 +33,14 @@ bool PHadesParticleSmearer::Modify(PParticle **stack, int *, int *num, int) { */ //double mom_measured = PUtils::sampleGaus(Impulsx, Impulsx*0.1); //cur->SetPx(mom_measured); - - double res = GetResolution(cur, 4); - Smear(cur, res);// momentum smearing / 4mdcs / geidar's parametrisation - + + double res = GetResolution(cur, 4); + Smear(cur, res);// momentum smearing / 4mdcs / geidar's parametrisation + cur->ResetE(); } } - + return kTRUE; }; @@ -87,7 +87,7 @@ void PHadesParticleSmearer::Smear(PParticle *p, double gamma) { double ptot = p->P(); if (ptot <= 0.) return; double th = p->Theta(), ph=p->Phi(), sth =sin(th), mass=p->M(); - if (fabs(sth) < 1.e-6) + if (fabs(sth) < 1.e-6) sth = (sth>0.) ? 1.e-6 : -1.e-6; double smeared_ptot = ( rand.Gaus(ptot, gamma ) ); if(gamma == 0.1) smeared_ptot = ptot+0.04; @@ -99,7 +99,7 @@ void PHadesParticleSmearer::Smear(PParticle *p, double gamma) { double smeared_theta = rand.Gaus(th, 0.0023 ); double smeared_phi = ( rand.Gaus(sth*ph, 0.0023 ) )/sth; double theta_check = smeared_theta-2.*TMath::Pi()*int(smeared_theta/(2.*TMath::Pi())); - if (theta_check>TMath::Pi() || theta_check<0.) + if (theta_check>TMath::Pi() || theta_check<0.) smeared_phi -= TMath::Pi(); p->SetRho(smeared_ptot); // keeping theta, phi constant p->SetTheta(smeared_theta); // keeping |p|, phi constant diff --git a/plugins/hades/PHadesParticleSmearer.h b/plugins/hades/PHadesParticleSmearer.h index bb9474c..ff03ef6 100644 --- a/plugins/hades/PHadesParticleSmearer.h +++ b/plugins/hades/PHadesParticleSmearer.h @@ -1,6 +1,6 @@ -// Author: +// Author: // Written: 12.5.2009 -// Revised: +// Revised: // PHadesParticleSmearer Class Header #ifndef _PHADESPARTICLESMEARER_H_ @@ -11,12 +11,12 @@ #include "PUtils.h" class PHadesParticleSmearer: public PBulkInterface { - + public: PHadesParticleSmearer(); - - Bool_t Modify(PParticle **stack, int *decay_done, int *num, int stacksize); - + + Bool_t Modify(PParticle **stack, int *decay_done, int *num, int stacksize); + void SetResolutionFactor(Double_t x) { resolution_factor = x; }; @@ -34,7 +34,7 @@ class PHadesParticleSmearer: public PBulkInterface { 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 }; diff --git a/plugins/nucleus_fermi/PFermiDistributions.cc b/plugins/nucleus_fermi/PFermiDistributions.cc index d1256e5..db45011 100644 --- a/plugins/nucleus_fermi/PFermiDistributions.cc +++ b/plugins/nucleus_fermi/PFermiDistributions.cc @@ -21,15 +21,15 @@ PFermiDistributions::PFermiDistributions(const Char_t *id, const Char_t *de, Int PChannelModel(id, de, key) { DeutC = new double[13]; - DeutD = new double[13]; + DeutD = new double[13]; DeutM2 = new double[13]; - + TString Target(makeStaticData()->GetParticleName(is_pid)); Double_t target_mass = makeStaticData()->GetParticleMass(is_pid); #if 1 Target.ToUpper(); - + if (Target == "D") { SetDeuteronValues(); @@ -59,24 +59,24 @@ PFermiDistributions::PFermiDistributions(const Char_t *id, const Char_t *de, Int } else if (target_mass > 0.5*(makeStaticData()->GetParticleMass("40Ca") +makeStaticData()->GetParticleMass("12C"))) { Warning("SetTargetMaterial","Target Material %s not found, assuming 40Ca", - makeStaticData()->GetParticleName(is_pid)); + makeStaticData()->GetParticleName(is_pid)); version_flag = NUCLEAR_FERMI_40CA; MeV2GeV = 0.001; } else if (target_mass > 0.5*(makeStaticData()->GetParticleMass("7Li") +makeStaticData()->GetParticleMass("12C"))) { Warning("SetTargetMaterial","Target Material %s not found, assuming 12C", - makeStaticData()->GetParticleName(is_pid)); + makeStaticData()->GetParticleName(is_pid)); version_flag = NUCLEAR_FERMI_12C; MeV2GeV = 0.001; } else if (target_mass > 0.5*(makeStaticData()->GetParticleMass("7Li") +makeStaticData()->GetParticleMass("alpha"))) { Warning("SetTargetMaterial","Target Material %s not found, assuming 7Li", - makeStaticData()->GetParticleName(is_pid)); + makeStaticData()->GetParticleName(is_pid)); version_flag = NUCLEAR_FERMI_7LI; MeV2GeV = 0.001; } else { version_flag = 0; - Error("SetTargetMaterial","Target Material not found"); + Error("SetTargetMaterial","Target Material not found"); } #endif }; @@ -99,7 +99,7 @@ Double_t PFermiDistributions::EvalPar(const double *x, const double *) { Double_t PFermiDistributions::Eval(Double_t x, Double_t, Double_t, Double_t) const { // Returns connected fermi distribution - + Double_t p = x/MeV2GeV; if (version_flag == NUCLEAR_FERMI_D) return FermiDisD(&p, NULL); @@ -121,7 +121,7 @@ Double_t PFermiDistributions::Eval(Double_t x, Double_t, Double_t, Double_t) con double PFermiDistributions::FermiDisD(double *x, double *) const { const double pi = 3.1415927; - const double hbar = 0.197463569747999998; // unit: GeV*fm/c + const double hbar = 0.197463569747999998; // unit: GeV*fm/c double par0 = 0.; double par1 = 0.; for (int j=0; j<13; j++) { @@ -131,8 +131,8 @@ double PFermiDistributions::FermiDisD(double *x, double *) const { par0 = TMath::Sqrt(2./pi)*par0; par1 = TMath::Sqrt(2./pi)*par1; Double_t mom = (par0*par0+par1*par1)*x[0]*x[0]/(hbar*hbar); - - return mom; + + return mom; } //---------------------- Fermi Distribution of Helium-3 --------------------- @@ -143,11 +143,11 @@ double PFermiDistributions::FermiDis3He(double *x, double *) const { const double b = 5.38753; const double c = 9.90202; const double d = 0.779408; - + Double_t par0 = (4./TMath::Sqrt(pi))*TMath::Power(a,3./2.); Double_t par1 = x[0]*x[0]*25./(1.E6); Double_t mom = d*par0*par1*(TMath::Exp(-par1*a) + c*TMath::Exp(-TMath::Sqrt(par1)*b)); - + return mom; } @@ -157,25 +157,25 @@ double PFermiDistributions::FermiDis4He(double *x, double *) const { const double hbar = 0.197463569747999998; const double a = 0.7352; const double b = 0.05511; - + Double_t par0 = TMath::Exp(-x[0]*x[0]/(hbar*hbar*a)); Double_t mom = x[0]*x[0]/(hbar*hbar*b)*par0; - + return mom; } //---------------------- Fermi Distribution of Lithium-7 --------------------- double PFermiDistributions::FermiDis7Li(double *x, double *) const { - + const double a = 1.2e-4; const double b = 6.87e-3; const double c = 110.; - + Double_t par0 = x[0]*x[0]*a; Double_t par1 = (1. + b*x[0]); Double_t par2 = x[0]/c; Double_t mom = par0*par1*TMath::Exp(-par2*par2); - + return mom; } @@ -186,11 +186,11 @@ double PFermiDistributions::FermiDis12C(double *x, double *) const { const double a = 1/0.416; const double b = 1/0.23; const double c = 0.04; - + Double_t par0 = (4./TMath::Sqrt(pi))*TMath::Power(a,3./2.); Double_t par1 = x[0]*x[0]*25./(1.E6); Double_t mom = par0*par1*(TMath::Exp(-par1*a) + c*TMath::Exp(-TMath::Sqrt(par1)*b)); - + return mom; } @@ -201,17 +201,17 @@ double PFermiDistributions::FermiDis40Ca( double *x, double *) const { const double a = 1/0.42; const double b = 1/0.23; const double c = 0.04; - + Double_t par0 = (4./TMath::Sqrt(pi))*TMath::Power(a,3./2.); Double_t par1 = x[0]*x[0]*25./(1.E6); Double_t mom = par0*par1*(TMath::Exp(-par1*a) + c*TMath::Exp(-TMath::Sqrt(par1)*b)); - + return mom; } //------ Calculate Values for Deuteron Wave Function ---------------- void PFermiDistributions::SetDeuteronValues( ) { - + const double alpha = 0.23162461; // unit: 1/fm const double mZero = 1.; // unit: 1/fm double cj[13]={ 0.88688076E0, // unit: 1/sqrt(fm) @@ -250,16 +250,16 @@ void PFermiDistributions::SetDeuteronValues( ) { int n1; int n2; int temp; - + for (int j=0; j<13; j++) { mj[j] = alpha + j*mZero; mj2[j] = mj[j]*mj[j]; - } - + } + cj[12] = 0.; - for (int i=0; i<12; i++) + for (int i=0; i<12; i++) cj[12] = cj[12] - cj[i]; - + for (int k=0; k<5; k++) { rtmp = dj[k*2]/mj2[k*2] + dj[k*2+1]/mj2[k*2+1]; sum1 = sum1 + rtmp; @@ -272,17 +272,17 @@ void PFermiDistributions::SetDeuteronValues( ) { n = 12; n1 = 11; n2 = 10; - - for (int l=0; l<3; l++) { + + for (int l=0; l<3; l++) { dj[n2] = -mj2[n1]*mj2[n]*sum1 + (mj2[n1]+mj2[n])*sum2 - sum3; - dj[n2] = dj[n2] * mj2[n2]/(mj2[n]-mj2[n2])/(mj2[n1]-mj2[n2]); - + dj[n2] = dj[n2] * mj2[n2]/(mj2[n]-mj2[n2])/(mj2[n1]-mj2[n2]); + temp = n2; n2 = n1; n1 = n; - n = temp; + n = temp; } - + for (int j=0; j<13; j++) { DeutC[j] = cj[j]; DeutD[j] = dj[j]; diff --git a/plugins/nucleus_fermi/PFermiDistributions.h b/plugins/nucleus_fermi/PFermiDistributions.h index ca221e6..b107117 100644 --- a/plugins/nucleus_fermi/PFermiDistributions.h +++ b/plugins/nucleus_fermi/PFermiDistributions.h @@ -22,12 +22,12 @@ class PFermiDistributions : public PChannelModel { - + public: - + PFermiDistributions(); PFermiDistributions(const Char_t *id, const Char_t *de, Int_t key); - + //PFermiDistributions(TString Target); ~PFermiDistributions(); @@ -36,8 +36,8 @@ class PFermiDistributions : public PChannelModel { virtual Double_t Eval(Double_t x, Double_t y = 0, Double_t z = 0, Double_t t = 0) const; virtual Double_t EvalPar(const Double_t *x, const Double_t *params); //TF1 wrapper - - + + private: int version_flag; double FermiDisD (double *x, double *par) const; @@ -47,16 +47,16 @@ class PFermiDistributions : public PChannelModel { double FermiDis12C (double *x, double *par) const; double FermiDis40Ca(double *x, double *par) const; void SetDeuteronValues(); - + // TF1 *FM; double MeV2GeV; - double *DeutC; - double *DeutD; - double *DeutM2; - + double *DeutC; + double *DeutD; + double *DeutM2; + public: - + ClassDef(PFermiDistributions, 0) //Helper class for A-Fermi }; diff --git a/plugins/nucleus_fermi/PFermiMomentumGA.cc b/plugins/nucleus_fermi/PFermiMomentumGA.cc index 0246a3b..2e51f14 100644 --- a/plugins/nucleus_fermi/PFermiMomentumGA.cc +++ b/plugins/nucleus_fermi/PFermiMomentumGA.cc @@ -20,10 +20,10 @@ PFermiMomentumGA::PFermiMomentumGA() { }; -PFermiMomentumGA::PFermiMomentumGA(const Char_t *id, const Char_t *de, Int_t key) : +PFermiMomentumGA::PFermiMomentumGA(const Char_t *id, const Char_t *de, Int_t key) : PChannelModel(id, de, key) { - - fermi_model = NULL; + + fermi_model = NULL; beam = NULL; target = NULL; spectator = NULL; @@ -41,16 +41,16 @@ PDistribution *PFermiMomentumGA::Clone(const char *) const { //----------------------------------------------------------------------------------- Bool_t PFermiMomentumGA::Init(void) { - + beam = GetParticle("beam"); target = GetParticle("target"); parent = GetParticle("parent"); - + if (!beam || !target) { Warning("Init", "<%s> beam or target not found", GetIdentifier()); return kFALSE; } - + spectator = GetParticle("spectator"); participant = GetParticle("participant"); p2 = GetParticle("p2"); @@ -70,7 +70,7 @@ Double_t PFermiMomentumGA::GetRandomFermiMomentum(Double_t &px, Double_t &py, Do //Read secondary fermi model //This can only happen in Init, so after the freeze-out of the user Int_t parent_id = makeStaticData()->GetDecayParentByKey(primary_key); - + Int_t id1 = parent_id/1000; Int_t id2 = parent_id%1000; if (id1 > 600) { @@ -87,7 +87,7 @@ Double_t PFermiMomentumGA::GetRandomFermiMomentum(Double_t &px, Double_t &py, Do > makeStaticData()->GetParticleBaryon(id1)) { fermi_model = makeDynamicData()-> GetParticleSecondaryModel(makeStaticData()->GetParticleName(id2), "fermi"); - } + } if (!fermi_model) { Error("GetRandomFermiMomentum", "No fermi model found"); @@ -108,11 +108,11 @@ Double_t PFermiMomentumGA::GetRandomFermiMomentum(Double_t &px, Double_t &py, Do } Bool_t PFermiMomentumGA::SampleMass(void) { - + Double_t massS, eS, eP, ptot, px, py, pz, t=-1., mAi; - parent->Reconstruct(); - + parent->Reconstruct(); + while (t < 0.) { ptot = GetRandomFermiMomentum(px,py,pz); // Fermi momentum massS = spectator->M(); // mass of spectator fragment @@ -123,11 +123,11 @@ Bool_t PFermiMomentumGA::SampleMass(void) { eP = sqrt(ptot*ptot + t); // participant total energy - participant->SetPxPyPzE(-px,-py,-pz,eP); // initialize participant + participant->SetPxPyPzE(-px,-py,-pz,eP); // initialize participant spectator->SetPxPyPzE(px,py,pz,eS); // initialize spectator fragment - + participant->Boost(target->BoostVector()); - spectator->Boost(target->BoostVector()); + spectator->Boost(target->BoostVector()); *p2 = *beam; @@ -136,7 +136,7 @@ Bool_t PFermiMomentumGA::SampleMass(void) { p2->Boost(-parent->BoostVector()); spectator->Boost(-parent->BoostVector()); - composite->Reconstruct(); + composite->Reconstruct(); //boost scatter back to lab participant->Boost(parent->BoostVector()); diff --git a/plugins/nucleus_fermi/PFermiMomentumGA.h b/plugins/nucleus_fermi/PFermiMomentumGA.h index 55c54af..522ca55 100644 --- a/plugins/nucleus_fermi/PFermiMomentumGA.h +++ b/plugins/nucleus_fermi/PFermiMomentumGA.h @@ -14,9 +14,9 @@ class PFermiMomentumGA : public PChannelModel { - + public: - + PFermiMomentumGA(); PFermiMomentumGA(const Char_t *id, const Char_t *de, Int_t key); PDistribution *Clone(const char *delme=NULL) const; @@ -25,10 +25,10 @@ class PFermiMomentumGA : public PChannelModel { Bool_t SampleMass(void); Bool_t SampleMomentum(void); Double_t GetRandomFermiMomentum(Double_t &px, Double_t &py, Double_t &pz); - + private: - // PFermiDistributions *Dist; + // PFermiDistributions *Dist; PParticle *beam; PParticle *target; PParticle *spectator; @@ -40,7 +40,7 @@ class PFermiMomentumGA : public PChannelModel { PChannelModel *fermi_model; - ClassDef(PFermiMomentumGA, 0) + ClassDef(PFermiMomentumGA, 0) }; diff --git a/plugins/nucleus_fermi/PNucleusFermiPlugin.cc b/plugins/nucleus_fermi/PNucleusFermiPlugin.cc index 8f9c5e4..ec4010e 100644 --- a/plugins/nucleus_fermi/PNucleusFermiPlugin.cc +++ b/plugins/nucleus_fermi/PNucleusFermiPlugin.cc @@ -26,10 +26,10 @@ // 96Zr Z=40, ID=751 // 92Nb Z=41, ID=753 // 93Nb Z=41, ID=754 (*) -// +// // Author: I. Froehlich // Written: 27.7.2008 -// Revised: +// Revised: ////////////////////////////////////////////////////////////////////// #include "PNucleusFermiPlugin.h" @@ -47,100 +47,100 @@ Bool_t PNucleusFermiPlugin::Activate(void) { //To be consistent: makeStaticData()->AddAlias("He3", "3He"); makeStaticData()->AddAlias("alpha", "4He"); - + //Add our nuclei: - - if (!makeStaticData()->IsParticleValid("6He")) { + + if (!makeStaticData()->IsParticleValid("6He")) { makeStaticData()->AddParticle(600, "6He", 6.0188891); } //7Li Z=3, ID=602 - if (!makeStaticData()->IsParticleValid("7Li")) { + if (!makeStaticData()->IsParticleValid("7Li")) { makeStaticData()->AddParticle(602, "7Li", 6.533833); } //6Li Z=3, ID=601 - if (!makeStaticData()->IsParticleValid("6Li")) { + if (!makeStaticData()->IsParticleValid("6Li")) { makeStaticData()->AddParticle(601, "6Li", 5.601518); } // 10B Z=5, ID=609 - if (!makeStaticData()->IsParticleValid("10B")) { + if (!makeStaticData()->IsParticleValid("10B")) { makeStaticData()->AddParticle(609, "10B", 10.0129370*0.931494); } // 11B Z=5, ID=610 - if (!makeStaticData()->IsParticleValid("11B")) { + if (!makeStaticData()->IsParticleValid("11B")) { makeStaticData()->AddParticle(610, "11B", 11.0093054*0.931494); } //http://en.wikipedia.org/wiki/Isotopes_of_boron //12C Z=6, ID=614 - if (!makeStaticData()->IsParticleValid("12C")) { + if (!makeStaticData()->IsParticleValid("12C")) { makeStaticData()->AddParticle(614, "12C", 11.174862); } //11C Z=6, ID=613 - if (!makeStaticData()->IsParticleValid("11C")) { + if (!makeStaticData()->IsParticleValid("11C")) { makeStaticData()->AddParticle(613, "11C", 10.254018); } // 39K Z=19, ID=666 - if (!makeStaticData()->IsParticleValid("39K")) { + if (!makeStaticData()->IsParticleValid("39K")) { makeStaticData()->AddParticle(666, "39K", 38.96370668*0.931494); } // 40K Z=19, ID=667 - if (!makeStaticData()->IsParticleValid("40K")) { + if (!makeStaticData()->IsParticleValid("40K")) { makeStaticData()->AddParticle(667, "40K", 39.96399848*0.931494); } // 41K Z=19, ID=668 - if (!makeStaticData()->IsParticleValid("41K")) { + if (!makeStaticData()->IsParticleValid("41K")) { makeStaticData()->AddParticle(668, "41K", 40.96182576*0.931494); } //http://en.wikipedia.org/wiki/Isotopes_of_potassium //40Ca Z=20, ID=670 - if (!makeStaticData()->IsParticleValid("40Ca")) { + if (!makeStaticData()->IsParticleValid("40Ca")) { makeStaticData()->AddParticle(670, "40Ca", 37.214694); } //39Ca Z=20, ID=669 - if (!makeStaticData()->IsParticleValid("39Ca")) { + if (!makeStaticData()->IsParticleValid("39Ca")) { makeStaticData()->AddParticle(669, "39Ca", 36.290772); } // 90Zr Z=40, ID=745 - if (!makeStaticData()->IsParticleValid("90Zr")) { + if (!makeStaticData()->IsParticleValid("90Zr")) { makeStaticData()->AddParticle(745, "90Zr", 89.9047044*0.931494); } // 91Zr Z=40, ID=746 - if (!makeStaticData()->IsParticleValid("91Zr")) { + if (!makeStaticData()->IsParticleValid("91Zr")) { makeStaticData()->AddParticle(746, "91Zr", 90.9056458*0.931494); } // 92Zr Z=40, ID=747 - if (!makeStaticData()->IsParticleValid("92Zr")) { + if (!makeStaticData()->IsParticleValid("92Zr")) { makeStaticData()->AddParticle(747, "92Zr", 91.9050408*0.931494); } // 93Zr Z=40, ID=748 - if (!makeStaticData()->IsParticleValid("93Zr")) { + if (!makeStaticData()->IsParticleValid("93Zr")) { makeStaticData()->AddParticle(748, "93Zr", 92.9064760*0.931494); } // 94Zr Z=40, ID=749 - if (!makeStaticData()->IsParticleValid("94Zr")) { + if (!makeStaticData()->IsParticleValid("94Zr")) { makeStaticData()->AddParticle(749, "94Zr", 93.9063152*0.931494); } // 95Zr Z=40, ID=750 (*,exception) - if (!makeStaticData()->IsParticleValid("95Zr")) { + if (!makeStaticData()->IsParticleValid("95Zr")) { makeStaticData()->AddParticle(750, "95Zr", 94.9080426*0.931494); } // 96Zr Z=40, ID=751 - if (!makeStaticData()->IsParticleValid("96Zr")) { + if (!makeStaticData()->IsParticleValid("96Zr")) { makeStaticData()->AddParticle(751, "96Zr", 95.9082734*0.931494); } //http://en.wikipedia.org/wiki/Isotopes_of_zirconium //92Nb Z=41, ID=753 - if (!makeStaticData()->IsParticleValid("92Nb")) { + if (!makeStaticData()->IsParticleValid("92Nb")) { makeStaticData()->AddParticle(753, "92Nb",85.59005); } //93Nb Z=41, ID=754 - if (!makeStaticData()->IsParticleValid("93Nb")) { + if (!makeStaticData()->IsParticleValid("93Nb")) { makeStaticData()->AddParticle(754, "93Nb", 86.520784); } @@ -153,13 +153,13 @@ Bool_t PNucleusFermiPlugin::Activate(void) { pdmutil->SetGroup("fermi"); - PFermiDistributions *model = + PFermiDistributions *model = new PFermiDistributions("3He_fermi@3He/fermi", "Fermi momentum of 3He", -1); model->SetRange(0,2.); - pdmutil->Add(model); + pdmutil->Add(model); model = new PFermiDistributions("4He_fermi@4He/fermi", "Fermi momentum of 4He", -1); model->SetRange(0,2.); - pdmutil->Add(model); + pdmutil->Add(model); model = new PFermiDistributions("7Li_fermi@7Li/fermi", "Fermi momentum of 7Li", -1); model->SetRange(0,2.); pdmutil->Add(model); @@ -183,9 +183,9 @@ PNucleusFermiPlugin::~PNucleusFermiPlugin() { Bool_t PNucleusFermiPlugin::ExecCommand(const char *command, Double_t) { PDistributionManagerUtil *pdmutil = makeDistributionManagerUtil(); - + if (strcmp (command,"gamma") == 0) { - + if (gamma_active) return kTRUE; pdmutil->AddSubGroup("gamma_beam", "Physics with gamma-beam", "root"); @@ -197,168 +197,168 @@ Bool_t PNucleusFermiPlugin::ExecCommand(const char *command, Double_t) { makeStaticData()->AddAlias("g + 7Li", "g+7Li"); makeStaticData()->AddDecay(-1, "g + 7Li -> (g + n) + 6Li (quasi-free)", "g + 7Li", "g + n,6Li", 1.0 ); - PFermiMomentumGA *pmodel = + PFermiMomentumGA *pmodel = new PFermiMomentumGA("gn_in_7Li@g + 7Li_to_g + n_6Li", - "Quasi-free particle production ", -1); + "Quasi-free particle production ", -1); // Now add all particles // Define spectators and final decay products (the granddaughters) - pmodel->Add("q,parent"); - pmodel->Add("g,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("g,grandparent,beam"); pmodel->Add("7Li,grandparent,target"); pmodel->Add("6Li,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("n,granddaughter,participant"); - pmodel->Add("g,granddaughter,p2"); + pmodel->Add("n,granddaughter,participant"); + pmodel->Add("g,granddaughter,p2"); pdmutil->Add(pmodel); //(p spectator) makeStaticData()->AddDecay(-1, "g + 7Li -> (g + p) + 6He (quasi-free)", "g + 7Li", "g + p,6He", 1.0 ); - pmodel = + pmodel = new PFermiMomentumGA("gp_in_7Li@g + 7Li_to_g + p_6He", - "Quasi-free particle production ", -1); + "Quasi-free particle production ", -1); // Now add all particles // Define spectators and final decay products (the granddaughters) - pmodel->Add("q,parent"); - pmodel->Add("g,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("g,grandparent,beam"); pmodel->Add("7Li,grandparent,target"); pmodel->Add("6He,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("p,granddaughter,participant"); - pmodel->Add("g,granddaughter,p2"); + pmodel->Add("p,granddaughter,participant"); + pmodel->Add("g,granddaughter,p2"); pdmutil->Add(pmodel); //12C (n spectator) //***************** - makeStaticData()->AddParticle(614001, "g + 12C", 11.174862); + makeStaticData()->AddParticle(614001, "g + 12C", 11.174862); makeStaticData()->AddAlias("g + 12C", "g+12C"); makeStaticData()->AddDecay(-1, "g + 12C -> (g + n) + 11C (quasi-free)", "g + 12C"," g + n,11C", 1.0 ); - pmodel = + pmodel = new PFermiMomentumGA("gn_in_12C@g + 12C_to_g + n_11C", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("g,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("g,grandparent,beam"); pmodel->Add("12C,grandparent,target"); pmodel->Add("11C,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("n,granddaughter,participant"); + pmodel->Add("n,granddaughter,participant"); pmodel->Add("g,granddaughter,p2"); pdmutil->Add(pmodel); //(p spectator) makeStaticData()->AddDecay(-1, "g + 12C -> (g + p) + 11B (quasi-free)", "g + 12C", "g + p,11B", 1.0 ); - pmodel = + pmodel = new PFermiMomentumGA("gp_in_12C@g + 12C_to_g + p_11B", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("g,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("g,grandparent,beam"); pmodel->Add("12C,grandparent,target"); pmodel->Add("11B,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("p,granddaughter,participant"); + pmodel->Add("p,granddaughter,participant"); pmodel->Add("g,granddaughter,p2"); pdmutil->Add(pmodel); //40Ca (n spectator) //***************** - makeStaticData()->AddParticle(670001, "g + 40Ca", 37.214694); + makeStaticData()->AddParticle(670001, "g + 40Ca", 37.214694); makeStaticData()->AddAlias("g + 40Ca", "g+40Ca"); makeStaticData()->AddDecay(-1, "g + 40Ca -> (g + n) + 39Ca (quasi-free)", "g + 40Ca", "g + n,39Ca", 1.0 ); - pmodel = + pmodel = new PFermiMomentumGA("gn_in_40Ca@g + 40Ca_to_g + n_39Ca", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("g,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("g,grandparent,beam"); pmodel->Add("40Ca,grandparent,target"); pmodel->Add("39Ca,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("n,granddaughter,participant"); + pmodel->Add("n,granddaughter,participant"); pmodel->Add("g,granddaughter,p2"); pdmutil->Add(pmodel); //(p spectator) makeStaticData()->AddDecay(-1, "g + 40Ca -> (g + p) + 39K (quasi-free)", "g + 40Ca","g + p,39K", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("gp_in_40Ca@g + 40Ca_to_g + p_39K", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("g,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("g,grandparent,beam"); pmodel->Add("40Ca,grandparent,target"); pmodel->Add("39K,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("p,granddaughter,participant"); + pmodel->Add("p,granddaughter,participant"); pmodel->Add("g,granddaughter,p2"); pdmutil->Add(pmodel); //93Nb (n spectator) //***************** - makeStaticData()->AddParticle(754001, "g + 93Nb", 86.520784); + makeStaticData()->AddParticle(754001, "g + 93Nb", 86.520784); makeStaticData()->AddAlias("g + 93Nb", "g+93Nb"); makeStaticData()->AddDecay(-1, "g + 93Nb -> (g + n) + 92Nb (quasi-free)", "g + 93Nb","g + n,92Nb", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("gn_in_93Nb@g + 93Nb_to_g + n_92Nb", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("g,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("g,grandparent,beam"); pmodel->Add("93Nb,grandparent,target"); pmodel->Add("92Nb,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("n,granddaughter,participant"); + pmodel->Add("n,granddaughter,participant"); pmodel->Add("g,granddaughter,p2"); pdmutil->Add(pmodel); //(p spectator) makeStaticData()->AddDecay(-1, "g + 93Nb -> (g + p) + 92Zr (quasi-free)", "g + 93Nb", "g + p,92Zr", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("gp_in_93Nb@g + 93Nb_to_g + p_92Zr", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("g,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("g,grandparent,beam"); pmodel->Add("93Nb,grandparent,target"); pmodel->Add("92Zr,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("p,granddaughter,participant"); + pmodel->Add("p,granddaughter,participant"); pmodel->Add("g,granddaughter,p2"); pdmutil->Add(pmodel); //3He - makeStaticData()->AddParticle(49001, "g + 3He", 2.808391); + makeStaticData()->AddParticle(49001, "g + 3He", 2.808391); makeStaticData()->AddAlias("g + 3He", "g+3He"); makeStaticData()->AddDecay(-1, "g + 3He -> (g + p) + d (quasi-free)", "g + 3He", "g + p,d", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("gp_in_3He@g + 3He_to_g + p_d", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("g,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("g,grandparent,beam"); pmodel->Add("3He,grandparent,target"); pmodel->Add("d,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("p,granddaughter,participant"); + pmodel->Add("p,granddaughter,participant"); pmodel->Add("g,granddaughter,p2"); pdmutil->Add(pmodel); //4He - makeStaticData()->AddParticle(47001, "g + 4He", 3.727379); + makeStaticData()->AddParticle(47001, "g + 4He", 3.727379); makeStaticData()->AddAlias("g + 4He","g+4He"); makeStaticData()->AddDecay(-1, "g + 4He -> (g + n) + 3He (quasi-free)", "g + 4He", "g + n,3He", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("gn_in_4He@g + 4He_to_g + n_3He", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("g,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("g,grandparent,beam"); pmodel->Add("4He,grandparent,target"); pmodel->Add("3He,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("n,granddaughter,participant"); + pmodel->Add("n,granddaughter,participant"); pmodel->Add("g,granddaughter,p2"); pdmutil->Add(pmodel); @@ -378,170 +378,170 @@ Bool_t PNucleusFermiPlugin::ExecCommand(const char *command, Double_t) { makeStaticData()->AddAlias("p + 7Li", "p+7Li"); makeStaticData()->AddDecay(-1, "p + 7Li -> (p + n) + 6Li (quasi-free)", "p + 7Li", "p + n,6Li", 1.0); - PFermiMomentumGA *pmodel = + PFermiMomentumGA *pmodel = new PFermiMomentumGA("pn_in_7Li@p + 7Li_to_p + n_6Li", - "Quasi-free particle production ", -1); + "Quasi-free particle production ", -1); // Now add all particles // Define spectators and final decay products (the granddaughters) - pmodel->Add("q,parent"); - pmodel->Add("p,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("p,grandparent,beam"); pmodel->Add("7Li,grandparent,target"); pmodel->Add("6Li,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("n,granddaughter,participant"); - pmodel->Add("p,granddaughter,p2"); + pmodel->Add("n,granddaughter,participant"); + pmodel->Add("p,granddaughter,p2"); pdmutil->Add(pmodel); - //Li6 (p spectator): + //Li6 (p spectator): makeStaticData()->AddDecay(-1, "p + 7Li -> (p + p) + 6He (quasi-free)", "p + 7Li", "p + p,6He", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("pp_in_7Li@p + 7Li_to_p + p_6He", - "Quasi-free particle production ", -1); + "Quasi-free particle production ", -1); // Now add all particles // Define spectators and final decay products (the granddaughters) - pmodel->Add("q,parent"); - pmodel->Add("p,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("p,grandparent,beam"); pmodel->Add("7Li,grandparent,target"); pmodel->Add("6He,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("p,granddaughter,participant"); - pmodel->Add("p,granddaughter,p2"); + pmodel->Add("p,granddaughter,participant"); + pmodel->Add("p,granddaughter,p2"); pdmutil->Add(pmodel); //12C - makeStaticData()->AddParticle(614014, "p + 12C", 11.174862 + p_mass); + makeStaticData()->AddParticle(614014, "p + 12C", 11.174862 + p_mass); makeStaticData()->AddAlias("p + 12C", "p+12C"); makeStaticData()->AddDecay(-1, "p + 12C -> (p + n) + 11C (quasi-free)", "p + 12C", "p + n,11C", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("pn_in_12C@p + 12C_to_p + n_11C", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("p,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("p,grandparent,beam"); pmodel->Add("12C,grandparent,target"); pmodel->Add("11C,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("n,granddaughter,participant"); + pmodel->Add("n,granddaughter,participant"); pmodel->Add("p,granddaughter,p2"); pdmutil->Add(pmodel); //p spectator: makeStaticData()->AddDecay(-1, "p + 12C -> (p + p) + 11B (quasi-free)", "p + 12C", "p + p,11B", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("pp_in_12C@p + 12C_to_p + p_11B", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("p,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("p,grandparent,beam"); pmodel->Add("12C,grandparent,target"); pmodel->Add("11B,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("p,granddaughter,participant"); + pmodel->Add("p,granddaughter,participant"); pmodel->Add("p,granddaughter,p2"); pdmutil->Add(pmodel); //40Ca - makeStaticData()->AddParticle(670014, "p + 40Ca", 37.214694 + p_mass); + makeStaticData()->AddParticle(670014, "p + 40Ca", 37.214694 + p_mass); makeStaticData()->AddAlias("p + 40Ca", "p+40Ca"); makeStaticData()->AddDecay(-1, "p + 40Ca -> (p + n) + 39Ca (quasi-free)", "p + 40Ca","p + n,39Ca", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("pn_in_40Ca@p + 40Ca_to_p + n_39Ca", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("p,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("p,grandparent,beam"); pmodel->Add("40Ca,grandparent,target"); pmodel->Add("39Ca,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("n,granddaughter,participant"); + pmodel->Add("n,granddaughter,participant"); pmodel->Add("p,granddaughter,p2"); pdmutil->Add(pmodel); //p spectator: makeStaticData()->AddDecay(-1, "p + 40Ca -> (p + p) + 39K (quasi-free)", "p + 40Ca", "p + p,39K", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("pp_in_40Ca@p + 40Ca_to_p + p_39K", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("p,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("p,grandparent,beam"); pmodel->Add("40Ca,grandparent,target"); pmodel->Add("39K,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("p,granddaughter,participant"); + pmodel->Add("p,granddaughter,participant"); pmodel->Add("p,granddaughter,p2"); pdmutil->Add(pmodel); //93Nb - makeStaticData()->AddParticle(754014, "p + 93Nb", 86.520784 + p_mass); + makeStaticData()->AddParticle(754014, "p + 93Nb", 86.520784 + p_mass); makeStaticData()->AddAlias("p + 93Nb","p+93Nb"); makeStaticData()->AddDecay(-1, "p + 93Nb -> (p + n) + 92Nb (quasi-free)", "p + 93Nb", "p + n,92Nb", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("pn_in_93Nb@p + 93Nb_to_p + n_92Nb", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("p,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("p,grandparent,beam"); pmodel->Add("93Nb,grandparent,target"); pmodel->Add("92Nb,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("n,granddaughter,participant"); + pmodel->Add("n,granddaughter,participant"); pmodel->Add("p,granddaughter,p2"); pdmutil->Add(pmodel); //p spectator: makeStaticData()->AddDecay(-1, "p + 93Nb -> (p + p) + 92Zr (quasi-free)", "p + 93Nb", "p + p,92Zr", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("pp_in_93Nb@p + 93Nb_to_p + p_92Zr", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("p,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("p,grandparent,beam"); pmodel->Add("93Nb,grandparent,target"); pmodel->Add("92Zr,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("p,granddaughter,participant"); + pmodel->Add("p,granddaughter,participant"); pmodel->Add("p,granddaughter,p2"); pdmutil->Add(pmodel); //3He - makeStaticData()->AddParticle(49014,"p + 3He",2.808391 + p_mass); + makeStaticData()->AddParticle(49014,"p + 3He",2.808391 + p_mass); makeStaticData()->AddAlias("p + 3He", "p+3He"); makeStaticData()->AddDecay(-1, "p + 3He -> (p + p) + d (quasi-free)", "p + 3He", "p + p,d", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("pp_in_3He@p + 3He_to_p + p_d", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("p,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("p,grandparent,beam"); pmodel->Add("3He,grandparent,target"); pmodel->Add("d,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("p,granddaughter,participant"); + pmodel->Add("p,granddaughter,participant"); pmodel->Add("p,granddaughter,p2"); pdmutil->Add(pmodel); //4He - makeStaticData()->AddParticle(47014, "p + 4He", 3.727379 + p_mass); + makeStaticData()->AddParticle(47014, "p + 4He", 3.727379 + p_mass); makeStaticData()->AddAlias("p + 4He", "p+4He"); makeStaticData()->AddDecay(-1, "p + 4He -> (p + n) + 3He (quasi-free)", "p + 4He", "p + n,3He", 1.0); - pmodel = + pmodel = new PFermiMomentumGA("pn_in_4He@p + 4He_to_p + n_3He", "Quasi-free particle production ", -1); - pmodel->Add("q,parent"); - pmodel->Add("p,grandparent,beam"); + pmodel->Add("q,parent"); + pmodel->Add("p,grandparent,beam"); pmodel->Add("4He,grandparent,target"); pmodel->Add("3He,daughter,spectator"); pmodel->Add("q,daughter,composite"); - pmodel->Add("n,granddaughter,participant"); + pmodel->Add("n,granddaughter,participant"); pmodel->Add("p,granddaughter,p2"); pdmutil->Add(pmodel); proton_active = kTRUE; return kTRUE; - } + } return kFALSE; diff --git a/plugins/nucleus_fermi/PNucleusFermiPlugin.h b/plugins/nucleus_fermi/PNucleusFermiPlugin.h index 6b178eb..5b73702 100644 --- a/plugins/nucleus_fermi/PNucleusFermiPlugin.h +++ b/plugins/nucleus_fermi/PNucleusFermiPlugin.h @@ -1,7 +1,7 @@ // Author: // Written: 20.5.2009 -// Revised: -// +// Revised: +// #ifndef _PNUCLEUS_FERMI_PLUGIN_H_ @@ -18,7 +18,7 @@ using namespace std; class PNucleusFermiPlugin : public PDistributionCollection { - + public: //constructor @@ -26,7 +26,7 @@ class PNucleusFermiPlugin : public PDistributionCollection { //destructor ~PNucleusFermiPlugin(); - Bool_t ExecCommand(const char *command, Double_t value); + Bool_t ExecCommand(const char *command, Double_t value); Bool_t Activate(void); diff --git a/plugins/pdg_unigen/PPDGPlugin.cc b/plugins/pdg_unigen/PPDGPlugin.cc index 3896960..ad25077 100644 --- a/plugins/pdg_unigen/PPDGPlugin.cc +++ b/plugins/pdg_unigen/PPDGPlugin.cc @@ -50,7 +50,7 @@ Bool_t PPDGPlugin::ExecCommand(const char *command, Double_t) { "D-,pi+", 0.097482/6. ); //------------------ N,rho ------------- makeStaticData()->AddDecay("NF150 --> p + rho-", "NF150", - "p,rho-", 0.1/3. ); //PDG - {0.03-0.15} + "p,rho-", 0.1/3. ); //PDG - {0.03-0.15} makeStaticData()->AddDecay("NF150 --> n + rho0", "NF150", "n,rho0", 0.1*2./3. ); //------------------ p,pi,pi ------------- @@ -86,7 +86,7 @@ Bool_t PPDGPlugin::ExecCommand(const char *command, Double_t) { "D0,pi+", 0.097482/6. ); //------------------ N,rho ------------- makeStaticData()->AddDecay("NF15+ --> p + rho0", "NF15+", - "p,rho0", 0.1/3. ); //PDG - {0.03-0.15} + "p,rho0", 0.1/3. ); //PDG - {0.03-0.15} makeStaticData()->AddDecay("NF15+ --> n + rho+", "NF15+", "n,rho+", 0.1*2./3. ); //------------------ p,pi,pi ------------- @@ -247,7 +247,7 @@ Bool_t PPDGPlugin::ExecCommand(const char *command, Double_t) { makeStaticData()->AddDecay("DF350 --> p + pi-", "DF350", "p,pi-", 0.12/3. ); //PDG - {0.09-0.15} makeStaticData()->AddDecay("DF350 --> n + pi0", "DF350", - "n,pi0", 0.12*2./3. ); + "n,pi0", 0.12*2./3. ); //------------------ D1232,pi ------------- makeStaticData()->AddDecay("DF350 --> Delta+ + pi-", "DF350", "D+,pi-", 1.479854e-01*8./15. );//PDG - {0.3-0.6} @@ -279,7 +279,7 @@ Bool_t PPDGPlugin::ExecCommand(const char *command, Double_t) { makeStaticData()->AddDecay("DF35+ --> p + pi0", "DF35+", "p,pi0", 0.12*2./3. ); //PDG - {0.09-0.15} makeStaticData()->AddDecay("DF35+ --> n + pi+", "DF35+", - "n,pi+", 0.12/3. ); + "n,pi+", 0.12/3. ); //------------------ D1232,pi ------------- makeStaticData()->AddDecay("DF35+ --> Delta++ + pi-", "DF35+", "D++,pi-", 1.479854e-01*2./5. );//PDG - {<25%} @@ -399,24 +399,24 @@ Bool_t PPDGPlugin::ExecCommand(const char *command, Double_t) { 443, 100443, 0}; - + for (int i=0; i<71; i++) { //loop over known particles - + int pkey = makeStaticData()->GetParticleKey(i); - + if (pkey > 0) { if (!makeDataBase()->SetParamInt (pkey, "pdg", new Int_t(pdg[i]))) return kFALSE; // else // cout << pkey << ":" << pdg[i] << endl; } - + } } return kTRUE; } - + return kFALSE; } @@ -426,4 +426,4 @@ ClassImp(PPDGPlugin) - + diff --git a/plugins/pdg_unigen/PPDGPlugin.h b/plugins/pdg_unigen/PPDGPlugin.h index 4cb4853..0b675f2 100644 --- a/plugins/pdg_unigen/PPDGPlugin.h +++ b/plugins/pdg_unigen/PPDGPlugin.h @@ -1,7 +1,7 @@ // Author: I. Froehlich // Written: 02.02.2011 -// Revised: -// +// Revised: +// #ifndef _PPDG_PLUGIN_H_ @@ -16,7 +16,7 @@ using namespace std; class PPDGPlugin : public PDistributionCollection { - + public: //constructor @@ -24,7 +24,7 @@ class PPDGPlugin : public PDistributionCollection { //destructor ~PPDGPlugin(); - Bool_t ExecCommand(const char *command, Double_t value); + Bool_t ExecCommand(const char *command, Double_t value); Bool_t Activate(void); diff --git a/plugins/pdg_unigen/PUniGenInput.cc b/plugins/pdg_unigen/PUniGenInput.cc index 605f802..d641254 100644 --- a/plugins/pdg_unigen/PUniGenInput.cc +++ b/plugins/pdg_unigen/PUniGenInput.cc @@ -1,11 +1,11 @@ //////////////////////////////////////////////////////// -// +// //This class reads UniGen-files //see //http://www.gsi.de/forschung/helmholtz-vi/unigen/ //for further information // -//Parts of the source code have been taken from +//Parts of the source code have been taken from //the UniGen project. // // @@ -44,14 +44,14 @@ Bool_t PUniGenInput::Input(char *filename) { } fRun = (URun*) fInFile->Get("run"); - + fInTree = (TTree*) fInFile->Get("events"); if(NULL == fInTree) { Fatal("SetInputFile", "Input file <%s> has no events tree", filename); } Info("Input", "Input file has %lli events", fInTree->GetEntries()); - + nentries = fInTree->GetEntries(); centry = 0; @@ -67,11 +67,11 @@ Bool_t PUniGenInput::Input(char *filename) { Bool_t PUniGenInput::Modify(PParticle **mstack, int *, int *num, int stacksize) { - if (centry == 0) { + if (centry == 0) { //init before 1st event makeDistributionManager()->Exec("pdg:init"); pdg_param = makeDataBase()->GetParamInt("pdg"); - if (pdg_param < 0) + if (pdg_param < 0) return kFALSE; pid_param = makeDataBase()->GetParamInt("pid"); } @@ -80,7 +80,7 @@ Bool_t PUniGenInput::Modify(PParticle **mstack, int *, int *num, int stacksize) Info("Modify", "Unigen file: number of events reached"); return kFALSE; } - + int cur = *num; PParticle dummy("dummy"); @@ -107,7 +107,7 @@ Bool_t PUniGenInput::Modify(PParticle **mstack, int *, int *num, int stacksize) if (!makeDataBase()->GetParamInt (pdg_param, part->GetPdg(), pid_param, &i_result)) { bool found = kFALSE; for (int i=0; iGetPdg()) + if (unknown_pdg[i] == part->GetPdg()) found=kTRUE; } if (!found) { @@ -117,13 +117,13 @@ Bool_t PUniGenInput::Modify(PParticle **mstack, int *, int *num, int stacksize) if (unknown_pdg_pointer != MAX_UNIGENUNKNOWNPDG) { unknown_pdg[unknown_pdg_pointer] = part->GetPdg(); unknown_pdg_pointer++; - } + } } - + } else { dummy.SetID(*i_result); } - + dummy.SetVect4(part->GetMomentum()); Double_t x = part->GetPosition().X(); Double_t y = part->GetPosition().Y(); @@ -135,7 +135,7 @@ Bool_t PUniGenInput::Modify(PParticle **mstack, int *, int *num, int stacksize) dummy.SetSiblingIndex(part->GetMate()); dummy.SetSourceId(part->GetParentDecay()); dummy.SetW(part->GetWeight()); - + if (dummy.M() < PData::LMass(dummy.ID()) || dummy.M() > PData::UMass(dummy.ID())) { if (reset_mass == 1) { dummy.SetM(makeStaticData()->GetParticleMass(dummy.ID())); @@ -143,12 +143,12 @@ Bool_t PUniGenInput::Modify(PParticle **mstack, int *, int *num, int stacksize) Warning("Modify", "Found a particle mass which is out of bounds, it is recommended to use ResetInvalidMass()"); Warning("Modify", "(following warnings will be skipped)"); reset_mass=-1; - } + } } - + *(mstack[cur]) = dummy; - - cur++; + + cur++; } *num = cur; diff --git a/plugins/pdg_unigen/PUniGenInput.h b/plugins/pdg_unigen/PUniGenInput.h index dda339f..771e3c1 100644 --- a/plugins/pdg_unigen/PUniGenInput.h +++ b/plugins/pdg_unigen/PUniGenInput.h @@ -27,7 +27,7 @@ class PUniGenInput: public PBulkInterface { 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; @@ -36,22 +36,22 @@ class PUniGenInput: public PBulkInterface { 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 +#endif diff --git a/plugins/pdg_unigen/UEvent.h b/plugins/pdg_unigen/UEvent.h index 9411736..d43cfe5 100644 --- a/plugins/pdg_unigen/UEvent.h +++ b/plugins/pdg_unigen/UEvent.h @@ -20,7 +20,7 @@ class UEvent : public TObject { Double_t fStepT; // Event step time Int_t fNpa; // Number of particles TClonesArray *fParticles; // Array of particles - + public: UEvent(); UEvent(const UEvent& right); @@ -59,7 +59,7 @@ class UEvent : public TObject { using TObject::Clear; void Clear(const Option_t * = NULL); void RemoveAt(Int_t i); - + ClassDef(UEvent, 1); }; diff --git a/plugins/pdg_unigen/UParticle.cc b/plugins/pdg_unigen/UParticle.cc index b0b42b0..f7bcca0 100644 --- a/plugins/pdg_unigen/UParticle.cc +++ b/plugins/pdg_unigen/UParticle.cc @@ -10,7 +10,7 @@ using namespace std; //____________________________________________________________________ // // UParticle -// +// // Class for particle description. // diff --git a/plugins/pdg_unigen/UParticle.h b/plugins/pdg_unigen/UParticle.h index e4f3217..7d5086e 100644 --- a/plugins/pdg_unigen/UParticle.h +++ b/plugins/pdg_unigen/UParticle.h @@ -27,7 +27,7 @@ class UParticle : public TObject { Double32_t fZ; // z (fm) Double32_t fT; // t (fm) Double32_t fWeight; // weight - + public: UParticle(); UParticle(Int_t index, Int_t pdg, Int_t status, @@ -95,7 +95,7 @@ class UParticle : public TObject { inline void SetPosition(Double_t x, Double_t y, Double_t z, Double_t t) {fX = x; fY = y; fZ = z; fT = t;} inline void SetPosition(TLorentzVector pos) {fX=pos.X(); fY=pos.Y(); fZ=pos.Z(); fT=pos.T();} inline void SetWeight (Double_t weight) {fWeight = weight;} - + ClassDef(UParticle, 1); }; diff --git a/plugins/pdg_unigen/URun.cc b/plugins/pdg_unigen/URun.cc index 6326944..b8da7e0 100644 --- a/plugins/pdg_unigen/URun.cc +++ b/plugins/pdg_unigen/URun.cc @@ -8,7 +8,7 @@ using namespace std; //____________________________________________________________________ // // URun -// +// // Class for handling the run description. // See the standard constructor and public accessors // @@ -33,7 +33,7 @@ URun::URun() : TNamed("run", "Run Header") { URun::URun(const char *generator, const char *comment, Int_t aProj, Int_t zProj, Double_t pProj, Int_t aTarg, Int_t zTarg, Double_t pTarg, Double_t bMin, Double_t bMax, Int_t bWeight, - Double_t phiMin, Double_t phiMax, Double_t sigma, + Double_t phiMin, Double_t phiMax, Double_t sigma, Int_t nEvents) : TNamed("run", "Run Header") { // Standard constructor fGenerator = generator; diff --git a/plugins/pdg_unigen/URun.h b/plugins/pdg_unigen/URun.h index 39a23cb..e9ee1af 100644 --- a/plugins/pdg_unigen/URun.h +++ b/plugins/pdg_unigen/URun.h @@ -19,17 +19,17 @@ class URun : public TNamed { Double32_t fPTarg; // Target momentum per nucleon (GeV) Double32_t fBMin; // Minimum impact parameter Double32_t fBMax; // Maximum impact parameter - - Int_t fBWeight; + + Int_t fBWeight; // Impact parameter weighting // 0 for geometrical weights (bdb) // 1 for flat distribution - + Double32_t fPhiMin; // Event plane minimum angle (rad) Double32_t fPhiMax; // Event plane maximum angle (rad) Double32_t fSigma; // Cross-section (mb) Int_t fNEvents; // Requested number of events - + public: URun(); URun(const char *generator, const char *comment, Int_t aProj, @@ -64,7 +64,7 @@ class URun : public TNamed { inline void SetPProj (Double_t pProj) {fPProj = pProj;} inline void SetPTarg (Double_t pTarg) {fPTarg = pTarg;} inline void SetDecayer(TString decayer) {fDecayer = decayer;} - + ClassDef(URun, 1); }; diff --git a/plugins/pion_beam/PPionBeamAmplitude.cc b/plugins/pion_beam/PPionBeamAmplitude.cc index 1f61aad..13fbd8e 100644 --- a/plugins/pion_beam/PPionBeamAmplitude.cc +++ b/plugins/pion_beam/PPionBeamAmplitude.cc @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////// // PPionBeamAmplitude // -// This class contains Eqns. (15-18, 31-33) from +// This class contains Eqns. (15-18, 31-33) from // Ref. 23 // // Author: H. Schuldes / IF @@ -19,7 +19,7 @@ PDistribution *PPionBeamAmplitude::Clone(const char*) const { return new PPionBeamAmplitude((const PPionBeamAmplitude &)* this); }; -PPionBeamAmplitude::PPionBeamAmplitude(const Char_t *id, const Char_t *de, Int_t key) : +PPionBeamAmplitude::PPionBeamAmplitude(const Char_t *id, const Char_t *de, Int_t key) : PChannelModel(id, de, key) { //Constructor dilepton = NULL; @@ -27,28 +27,28 @@ PPionBeamAmplitude::PPionBeamAmplitude(const Char_t *id, const Char_t *de, Int_t RhoPropagator = NULL; OmPropagator = NULL; p_in = NULL; - pion = NULL; + pion = NULL; p_out = NULL; term = 0; mode = 0; monte_carlo = 0; }; -Bool_t PPionBeamAmplitude::Init(void) { +Bool_t PPionBeamAmplitude::Init(void) { - //looking for the mandatory particles + //looking for the mandatory particles dilepton = GetParticle("dilepton"); if (!dilepton) { Warning("Init", "Dilepton not found"); return kFALSE; } - + parent = GetParticle("parent"); if (!parent) { Warning("Init", "Parent not found"); return kFALSE; } - + p_in= GetParticle("p_in"); if (!p_in) { Warning("Init", "p_in not found"); @@ -66,8 +66,8 @@ Bool_t PPionBeamAmplitude::Init(void) { Warning("Init", "p_out not found"); return kFALSE; } - - if (pion->Is("pi+")) + + if (pion->Is("pi+")) mode = 1; return kTRUE; @@ -85,13 +85,13 @@ Double_t PPionBeamAmplitude::GetWeight(void) { p_bar_p = p_out->P(); q_bar_p = dilepton->P(); //Monte-Carlo p_p = p_in_tmp.P(); - p_0 = p_in_tmp.E(); + p_0 = p_in_tmp.E(); p_bar_0 = p_out->E(); s = parent->M2(); - + s = parent->M2(); monte_carlo = 1; - + Double_t dilepton_mass = dilepton->M(); Double_t wert = GetWeight(&dilepton_mass); @@ -118,26 +118,26 @@ Double_t PPionBeamAmplitude::GetWeight(Double_t *mass, Int_t *) { // if (q_bar_m < 2* m_e) return 0.; if (q_bar_m < m_pi_minus) return 0.; - + if (q_bar_m > (sqrt(s) - M_p)) return 0.; if (!monte_carlo) { //if Pluto is not in Monte-Carlo mode use kinematic eqn from Ref. 23 - p_p = sqrt(s) / 2. * sqrt(1. - 2. * (M_p*M_p + m_pi_minus*m_pi_minus) / s + + p_p = sqrt(s) / 2. * sqrt(1. - 2. * (M_p*M_p + m_pi_minus*m_pi_minus) / s + (M_p*M_p - m_pi_minus*m_pi_minus)*(M_p*M_p - m_pi_minus*m_pi_minus) / (s*s) ); - - p_bar_p = sqrt(s) / 2. * sqrt(1. - 2. * (M_p*M_p + q_bar_m2) / s + + + p_bar_p = sqrt(s) / 2. * sqrt(1. - 2. * (M_p*M_p + q_bar_m2) / s + (M_p*M_p - q_bar_m2)*(M_p*M_p - q_bar_m2) / (s*s) ); - - + + p_0 = sqrt(p_p*p_p + M_p*M_p); - - p_bar_0 = sqrt(p_bar_p*p_bar_p + M_n*M_n); + + p_bar_0 = sqrt(p_bar_p*p_bar_p + M_n*M_n); } - Double_t C_1_2_1_2_bar = ((p_0 + M_p) * (p_bar_0 + M_n)) / (4. * M_n * M_p) + Double_t C_1_2_1_2_bar = ((p_0 + M_p) * (p_bar_0 + M_n)) / (4. * M_n * M_p) * (1. + p_bar_p * p_bar_p / (3. * q_bar_m2)); - Double_t C_3_2_3_2_bar = (p_bar_0 + M_n) / (p_0 + M_p) + Double_t C_3_2_3_2_bar = (p_bar_0 + M_n) / (p_0 + M_p) * ((p_p*p_p*p_p*p_p) / (2. * M_n * M_p) ) * (1. + p_bar_p * p_bar_p / (3. * q_bar_m2)); @@ -151,11 +151,11 @@ Double_t PPionBeamAmplitude::GetWeight(Double_t *mass, Int_t *) { TComplex Rho_J_1_2,Rho_J_3_2; if (mode == 0){ - Rho_J_1_2 = sqrt(2.) / 3. * (Rho_I_3_2_J_1_2 - Rho_I_1_2_J_1_2); + Rho_J_1_2 = sqrt(2.) / 3. * (Rho_I_3_2_J_1_2 - Rho_I_1_2_J_1_2); Rho_J_3_2 = sqrt(2.) / 3. * (Rho_I_3_2_J_3_2 - Rho_I_1_2_J_3_2); //Paper Eqn (15) } else { - Rho_J_1_2 = sqrt(2.) / 3. * (Rho_I_1_2_J_1_2 - Rho_I_3_2_J_1_2); + Rho_J_1_2 = sqrt(2.) / 3. * (Rho_I_1_2_J_1_2 - Rho_I_3_2_J_1_2); Rho_J_3_2 = sqrt(2.) / 3. * (Rho_I_1_2_J_3_2 - Rho_I_3_2_J_3_2); } @@ -180,7 +180,7 @@ Double_t PPionBeamAmplitude::GetWeight(Double_t *mass, Int_t *) { return 0.; } } - + if (OmPropagator == NULL) { OmPropagator = makeDynamicData()->GetParticleSecondaryModel("w", "propagator"); if (!OmPropagator) { @@ -191,11 +191,11 @@ Double_t PPionBeamAmplitude::GetWeight(Double_t *mass, Int_t *) { TComplex S_rho = RhoPropagator->GetAmplitude(&q_bar_m); TComplex S_w = OmPropagator->GetAmplitude(&q_bar_m); - + TComplex S_rho_Star = TComplex::Conjugate(S_rho); TComplex S_w_Star = TComplex::Conjugate(S_w); - TComplex Part_1 = (f_Rho*f_Rho / (M_Rho*M_Rho*M_Rho*M_Rho)) + TComplex Part_1 = (f_Rho*f_Rho / (M_Rho*M_Rho*M_Rho*M_Rho)) * S_rho_Star * S_rho * (C_1_2_1_2_bar * Rho_J_1_2_Star * Rho_J_1_2 + C_3_2_3_2_bar * Rho_J_3_2_Star * Rho_J_3_2); @@ -210,27 +210,27 @@ Double_t PPionBeamAmplitude::GetWeight(Double_t *mass, Int_t *) { * (C_1_2_1_2_bar * Om_J_1_2_Star * Rho_J_1_2 + C_3_2_3_2_bar * Om_J_3_2_Star * Rho_J_3_2)); - TComplex Part_4 = (f_Om*f_Om / (M_Om*M_Om*M_Om*M_Om)) + TComplex Part_4 = (f_Om*f_Om / (M_Om*M_Om*M_Om*M_Om)) * S_w_Star * S_w * (C_1_2_1_2_bar * Om_J_1_2_Star * Om_J_1_2 + C_3_2_3_2_bar * Om_J_3_2_Star * Om_J_3_2); - Double_t Vorfaktor = (1./137.) /(6.* TMath::Pi()*TMath::Pi()) - * M_p*M_n / s - * (p_bar_p / p_p) * m_e*m_e * + Double_t Vorfaktor = (1./137.) /(6.* TMath::Pi()*TMath::Pi()) + * M_p*M_n / s + * (p_bar_p / p_p) * m_e*m_e * (1. + q_bar_m2 / (2. * m_e*m_e) ) * sqrt(1. - 4. * m_e*m_e / q_bar_m2); - + Double_t d_Sigma_d_q_bar2=0.; if (term == 0) - d_Sigma_d_q_bar2 = Vorfaktor * (Part_1 + Part_2 + Part_3 + Part_4).Re(); + d_Sigma_d_q_bar2 = Vorfaktor * (Part_1 + Part_2 + Part_3 + Part_4).Re(); else if (term == 1) - d_Sigma_d_q_bar2 = Vorfaktor * (Part_1).Re(); + d_Sigma_d_q_bar2 = Vorfaktor * (Part_1).Re(); else if (term == 2) - d_Sigma_d_q_bar2 = Vorfaktor * (Part_4).Re(); + d_Sigma_d_q_bar2 = Vorfaktor * (Part_4).Re(); return 2. * q_bar_m * d_Sigma_d_q_bar2 / 2100. ; diff --git a/plugins/pion_beam/PPionBeamAmplitude.h b/plugins/pion_beam/PPionBeamAmplitude.h index 9eb5bd1..fec2b0f 100644 --- a/plugins/pion_beam/PPionBeamAmplitude.h +++ b/plugins/pion_beam/PPionBeamAmplitude.h @@ -16,9 +16,9 @@ class PPionBeamAmplitude : public PChannelModel PPionBeamAmplitude(const Char_t *id, const Char_t *de, Int_t key); PDistribution *Clone(const char *delme=NULL) const; - + using PChannelModel::GetWeight; - + Double_t GetWeight(Double_t *mass, Int_t *didx=NULL); Bool_t Init(); Double_t GetWeight(void); @@ -26,10 +26,10 @@ class PPionBeamAmplitude : public PChannelModel void SetGraph_Rho_Re_T11(TGraph * f) { Graph_Rho_Re_T11 = f; }; - + void SetGraph_Rho_Im_T11(TGraph * f) { Graph_Rho_Im_T11 = f; - }; + }; void SetGraph_Rho_Re_T13(TGraph * f) { Graph_Rho_Re_T13 = f; @@ -84,13 +84,13 @@ class PPionBeamAmplitude : public PChannelModel void SetMode(int f) { //mode: 0=pi_minus - // 1=pi_plus + // 1=pi_plus mode = f; }; private: - + TGraph *Graph_Rho_Re_T11; TGraph *Graph_Rho_Im_T11; TGraph *Graph_Rho_Re_T13; @@ -103,16 +103,16 @@ class PPionBeamAmplitude : public PChannelModel TGraph *Graph_Om_Im_T11; TGraph *Graph_Om_Re_T13; TGraph *Graph_Om_Im_T13; - + PChannelModel *RhoPropagator; PChannelModel *OmPropagator; - + PParticle *dilepton, *parent, *p_in, *pion, *p_out; Double_t p_bar_p; //Momentum of outgoing Neutron Double_t q_bar_p; //Momentum of Dilepton - - Double_t p_0; //Energy of incoming Proton + + Double_t p_0; //Energy of incoming Proton Double_t p_bar_0; //Energy of Neutron Double_t p_p; //Momentum of Proton Double_t s; //Mass of parent squared @@ -120,10 +120,10 @@ class PPionBeamAmplitude : public PChannelModel Int_t mode; Double_t f_Rho, f_Om; //Coupling constants of the rho- and w-meson (real und positiv) - + Double_t M_Rho, M_Om, M_p, M_n, m_e, m_pi_minus, m_pi_plus; //some constants - + ClassDef(PPionBeamAmplitude, 0) // Pion beam amplitudes }; diff --git a/plugins/pion_beam/PPionBeamPlugin.cc b/plugins/pion_beam/PPionBeamPlugin.cc index cc9b057..16b1191 100644 --- a/plugins/pion_beam/PPionBeamPlugin.cc +++ b/plugins/pion_beam/PPionBeamPlugin.cc @@ -4,15 +4,15 @@ //This plugin enables the amplitudes from Ref. 23 for the //reaction pi + N -> N e+ e- // -//The energy-dependent matrix elements have been supported by -//the authors of Ref. 23 +//The energy-dependent matrix elements have been supported by +//the authors of Ref. 23 // //To use this plugin, type: //makeDistributionManager()->Exec("pion_beam"); //A flat di-electron generator is automatially employed //Therefore, the weights of the particles have to be used. // -// +// // Author: Schuldes/Froehlich // Written: Jul 2009 ////////////////////////////////////////////////////////////////////// @@ -38,7 +38,7 @@ PPionBeamPlugin::PPionBeamPlugin(const Char_t *id, const Char_t *de): Bool_t PPionBeamPlugin::Activate(void) { PDistributionManagerUtil *pdmutil = makeDistributionManagerUtil(); - + if (!makeStaticData()->IsParticleValid("pi- + p")) { makeStaticData()->AddParticle(14009, "pi- + p", 1.1); } @@ -52,27 +52,27 @@ Bool_t PPionBeamPlugin::Activate(void) { ipid[1] = makeStaticData()->GetParticleID("n"); ipid[2] = makeStaticData()->GetParticleID("dilepton"); - + //Add decay if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "pi- + p -> n + dilepton", + makeStaticData()->AddDecay(-1, "pi- + p -> n + dilepton", "pi- + p","n,dilepton", 1.0 ); - + ipid[0] = makeStaticData()->GetParticleID("pi+ + n"); ipid[1] = makeStaticData()->GetParticleID("p"); ipid[2] = makeStaticData()->GetParticleID("dilepton"); if (makeStaticData()->GetDecayKey(ipid, 2) < 0) - makeStaticData()->AddDecay(-1, "pi+ + n -> p + dilepton", + makeStaticData()->AddDecay(-1, "pi+ + n -> p + dilepton", "pi+ + n","p,dilepton", 1.0 ); - - + + pdmutil->AddSubGroup("pion_beam", "Elementary pion beam reactions", "root"); pdmutil->SetGroup("pion_beam"); - Pi_minusBeamAmplitude = + Pi_minusBeamAmplitude = new PPionBeamAmplitude("Pi_minusBeamAmplitude@pi- + p_to_n_dilepton", "Model from Lutz/Soyeur/Friman", -1); @@ -82,10 +82,10 @@ Bool_t PPionBeamPlugin::Activate(void) { Pi_minusBeamAmplitude->Add("n,daughter,p_out"); Pi_minusBeamAmplitude->Add("q,parent"); - PPionBeamAmplitude *Pi_plusBeamAmplitude = + PPionBeamAmplitude *Pi_plusBeamAmplitude = new PPionBeamAmplitude("Pi_plusBeamAmplitude@pi+ + n_to_p_dilepton", "Model from Lutz/Soyeur/Friman", -1); - + Pi_plusBeamAmplitude->Add("pi+,grandparent,pion"); Pi_plusBeamAmplitude->Add("n,grandparent,p_in"); Pi_plusBeamAmplitude->Add("dilepton,daughter"); @@ -95,38 +95,38 @@ Bool_t PPionBeamPlugin::Activate(void) { TF1 *flat = new TF1("pion_flat", "1.", 0, 0.99); //The "PInclusiveModel" can be used as a generator: - Pi_minusBeamAmplitude_gen = + Pi_minusBeamAmplitude_gen = new PInclusiveModel("pi-_flat@pi- + p_brems_n_dilepton/generator", "Dilepton generator", -1); - + //The distribution template: - Pi_minusBeamAmplitude_gen->Add("q,parent"); + Pi_minusBeamAmplitude_gen->Add("q,parent"); Pi_minusBeamAmplitude_gen->Add("n,daughter"); Pi_minusBeamAmplitude_gen->Add("dilepton,daughter,primary"); Pi_minusBeamAmplitude_gen->SetSampleFunction(flat); //Enable distribution as a generator - Pi_minusBeamAmplitude_gen->EnableGenerator(); + Pi_minusBeamAmplitude_gen->EnableGenerator(); pdmutil->Add(Pi_minusBeamAmplitude_gen); - Pi_plusBeamAmplitude_gen = + Pi_plusBeamAmplitude_gen = new PInclusiveModel("pi+_flat@pi+ + n_brems_p_dilepton/generator", "Dilepton generator", -1); - + //The distribution template: - Pi_plusBeamAmplitude_gen->Add("q,parent"); + Pi_plusBeamAmplitude_gen->Add("q,parent"); Pi_plusBeamAmplitude_gen->Add("p,daughter"); Pi_plusBeamAmplitude_gen->Add("dilepton,daughter,primary"); Pi_plusBeamAmplitude_gen->SetSampleFunction(flat); //Enable distribution as a generator - Pi_plusBeamAmplitude_gen->EnableGenerator(); + Pi_plusBeamAmplitude_gen->EnableGenerator(); pdmutil->Add(Pi_plusBeamAmplitude_gen); - + double Graph_Rho_x[150] = { 1.200010, 1.205343, - 1.210677, + 1.210677, 1.216010, 1.221343, 1.226677, - 1.232010, + 1.232010, 1.237343, 1.242677, 1.248010, @@ -571,9 +571,9 @@ Bool_t PPionBeamPlugin::Activate(void) { 3.610366, 3.591602, 3.573178, - 3.555080 + 3.555080 }; - + double Graph_Rho_y_Re_T13[150] = {79.999754, 81.202991, 82.440358, @@ -1182,7 +1182,7 @@ Bool_t PPionBeamPlugin::Activate(void) { 8.882464, 8.852699 }; - + double Graph_Rho_y_Re_T33[150] = {-44.165564, -44.782299, -45.413780, @@ -1334,8 +1334,8 @@ Bool_t PPionBeamPlugin::Activate(void) { -6.711708, -7.032907 }; - - + + double Graph_Rho_y_Im_T33[150] = {-0.009574, -0.011236, -0.013128, @@ -1639,13 +1639,13 @@ Bool_t PPionBeamPlugin::Activate(void) { 1.989343, 1.994677 }; - - - + + + double Graph_Om_y_Im_T11 [150] = { 1.389068, 1.456658, 1.526448, @@ -1950,7 +1950,7 @@ Bool_t PPionBeamPlugin::Activate(void) { 2.288926, 2.310179 }; - + double Graph_Om_y_Re_T13 [150] = { 145.316208, 148.083055, 150.944508, @@ -2103,7 +2103,7 @@ Bool_t PPionBeamPlugin::Activate(void) { -38.132059 }; - + double Graph_Om_y_Im_T13 [150] = { 0.313878, 0.368610, 0.431055, @@ -2269,7 +2269,7 @@ Bool_t PPionBeamPlugin::Activate(void) { TGraph *Graph_Om_Im_T11 = new TGraph(150, Graph_Om_x, Graph_Om_y_Im_T11 ); TGraph *Graph_Om_Re_T13 = new TGraph(150, Graph_Om_x, Graph_Om_y_Re_T13 ); TGraph *Graph_Om_Im_T13 = new TGraph(150, Graph_Om_x, Graph_Om_y_Im_T13 ); - + Pi_minusBeamAmplitude->SetGraph_Rho_Re_T11(Graph_Rho_Re_T11); Pi_minusBeamAmplitude->SetGraph_Rho_Im_T11(Graph_Rho_Im_T11); Pi_minusBeamAmplitude->SetGraph_Rho_Re_T13(Graph_Rho_Re_T13); @@ -2286,10 +2286,10 @@ Bool_t PPionBeamPlugin::Activate(void) { Pi_minusBeamAmplitude->EnableWeighting(); Pi_minusBeamAmplitude->SetExpectedWeightMean(-1); Pi_minusBeamAmplitude->SetVersionFlag(512); - + pdmutil->Add(Pi_minusBeamAmplitude); - + Pi_plusBeamAmplitude->SetGraph_Rho_Re_T11(Graph_Rho_Re_T11); diff --git a/plugins/pion_beam/PPionBeamPlugin.h b/plugins/pion_beam/PPionBeamPlugin.h index 7292c87..c4b223f 100644 --- a/plugins/pion_beam/PPionBeamPlugin.h +++ b/plugins/pion_beam/PPionBeamPlugin.h @@ -9,7 +9,7 @@ #include "PChannelModel.h" #include "PDistributionManagerUtil.h" -#include "PDistributionCollection.h" +#include "PDistributionCollection.h" #include "PPionBeamAmplitude.h" #include "PPropagator.h" @@ -19,7 +19,7 @@ using namespace std; class PPionBeamPlugin : public PDistributionCollection { - + public: //constructor @@ -27,16 +27,16 @@ class PPionBeamPlugin : public PDistributionCollection { //destructor ~PPionBeamPlugin(); - Bool_t ExecCommand(const char *command, Double_t value); + Bool_t ExecCommand(const char *command, Double_t value); Bool_t Activate(void); private: - PPionBeamAmplitude *Pi_minusBeamAmplitude, *Pi_plusBeamAmplitude; - PPropagator *Rho0Propagator, *OmegaPropagator; + PPionBeamAmplitude *Pi_minusBeamAmplitude, *Pi_plusBeamAmplitude; + PPropagator *Rho0Propagator, *OmegaPropagator; PInclusiveModel *Pi_minusBeamAmplitude_gen, *Pi_plusBeamAmplitude_gen; - - ClassDef(PPionBeamPlugin, 0) + + ClassDef(PPionBeamPlugin, 0) }; #endif //_PPionBeam_PLUGIN_H_ diff --git a/plugins/scatter_mod/PSaidLowEnergy.cc b/plugins/scatter_mod/PSaidLowEnergy.cc index cd3ad72..ea90ce6 100644 --- a/plugins/scatter_mod/PSaidLowEnergy.cc +++ b/plugins/scatter_mod/PSaidLowEnergy.cc @@ -1,21 +1,21 @@ /////////////////////////////////////////////////////// // Pluto SAID parametrization implementation file // Low energy SAID pp-elastic parametrization. -// Created by Nodar Lomidze and Mirian Tabidze; -// ANKE/PAX Collaboration 03.09.09 +// Created by Nodar Lomidze and Mirian Tabidze; +// ANKE/PAX Collaboration 03.09.09 // // For each theta (0-180) deg. dsg/dT_kin distributions was fitted using function -// a*pow[T_kin,b*pow(T_kin,c)] + d, where a,b,c, and d parameters are functions of +// a*pow[T_kin,b*pow(T_kin,c)] + d, where a,b,c, and d parameters are functions of // theta, T_kin is proton kinetic energy. -// For approximation this parameters full theta region was divided into 5 intervals +// For approximation this parameters full theta region was divided into 5 intervals // (0-1), (1-4), (4-20), (20-40) and (40-90) deg. -// In each interval polynomial functions (pol4-pol6) or function -// pol1+A*x^B*sin^C(x)*exp(D*x) was used (see code below), +// In each interval polynomial functions (pol4-pol6) or function +// pol1+A*x^B*sin^C(x)*exp(D*x) was used (see code below), // where A,B,C and D are parameters. -// In (90-180) deg. interval same function was used as in (90-0) deg. +// In (90-180) deg. interval same function was used as in (90-0) deg. // // Differences from SAID above 4 MeV incident proton kinetic energy in theta -// (25-90) deg. are less then 1%, in (4-25) deg. ~4-6% and in (1-4) deg. (10-15)%. +// (25-90) deg. are less then 1%, in (4-25) deg. ~4-6% and in (1-4) deg. (10-15)%. // Below 4 MeV parametrization is worse ~(10-20)% in all theta intervals. // // @@ -44,7 +44,7 @@ PDistribution* PSaidLowEnergy::Clone(const char*) const { Bool_t PSaidLowEnergy::IsNotRejected(void) { - + if (!direct_sampling_done) { Fatal("IsNotRejected", "Sampling not finished"); } @@ -93,7 +93,7 @@ double PSaidLowEnergy::dsdw(double th, double tlab) { // normalized pp elastic differential cross sections (mb/sr) // arguments: scattering angle (deg), lab beam kinetic energy (GeV) - double Tlab = tlab*1000; + double Tlab = tlab*1000; long double a0 = 825.770315997777; long double a1 = -36.1806390269961; @@ -102,78 +102,78 @@ double PSaidLowEnergy::dsdw(double th, double tlab) { long double a4 = -9.46167840068291e-05; long double a5 = 1.18647782825118e-06; long double a6 = -4.23920644982741e-09; - + long double a01 = 158509949.824459; long double a11 = -1.05462493339422; long double a21 = 0.999464445523888; long double a31 = -0.331696205972712; long double a41 = -1.9817093971156; long double a51 = 339.459572120675; - + long double a02 = 7013162.6023937; long double a12 = -2.60581893459221; long double a22 = -1.17622988844922 ; long double a32 = -0.0572294874172003; long double a42 = -242.76957186148; long double a52 = 4972.40753398661; - + long double a03 = 7363793.10073931; long double a13 = -2.78666712844778; long double a23 = -1.19175331577741; // long double a33=-0.0168240994020085; long double a43 = 2919.73115823142; long double a53 = -11247.1848613229; - + long double b0 = -1.11987335717749; long double b1 = 0.0375681831247435; long double b2 = -0.000806720177542215; long double b3 = 7.31226869503504e-06; long double b4 = -2.40772264489991e-08 ; - + long double b01 = 5.49631512561751; long double b11 = -1.41153243358003; long double b21 = 0.0873325395997571; long double b31 = -0.00210915057288232; long double b41 = 1.78555710528402e-05; - + long double b02 = -2.01651356175559; long double b12 = 0.00952134681173633; long double b22 = -0.00424259230244138; long double b32 = 0.000815075673344715; long double b42 = -6.09637287432679e-05; long double b52 = 1.5439817446594e-06; - + long double c0 = -0.0899947020336036; long double c1 = 0.0165457502998486; long double c2 = -0.00035225623300735; long double c3 = 3.18377219079531e-06; long double c4 = -1.04867548784599e-08; - + long double c01 = 4.02283676522501; long double c11 = -0.571280456418181; long double c21 = 0.0286964703485152; long double c31 = -0.000606564121973199; long double c41 = 4.6543463351715e-06; - + long double c02 = 0.000449138526079407; long double c12 = -0.00323470722989942; long double c22 = 0.00101229269064745; long double c32 = -8.04320221005051e-05; long double c42 = 1.38972236339651e-06; long double c52 = 1.51442646510768e-08; - + long double d0 = 0.14637558766108; long double d1 = 0.242429384264589; long double d2 = -0.00515619107849952; long double d3 = 4.5272537785055e-05; long double d4 = -1.42514150093272e-07; - + long double d01 = 90.5702938678518; long double d11 = -12.623103132398; long double d21 = 0.63864747288047; long double d31 = -0.0137296412910617; long double d41 = 0.000107543327455007; - + long double d03 = 95.4776480269654; long double d13 = -2.46798492423323; long double d23 = -1.27436869909584; @@ -182,44 +182,44 @@ double PSaidLowEnergy::dsdw(double th, double tlab) { long double d53 = -64.5772975461858; long double d63 = -0.702778910136937; long double d73 = 0.014105237506306; - + long double as=0, bs=0, cs=0, ds=0; - + if(th > 40) { as = a0+a1*th+a2*pow(th,2)+a3*pow(th,3)+a4*pow(th,4)+a5*pow(th,5)+a6*pow(th,6); bs = b0+b1*th+b2*pow(th,2)+b3*pow(th,3)+b4*pow(th,4); cs = c0+c1*th+c2*pow(th,2)+c3*pow(th,3)+c4*pow(th,4); - ds = d0+d1*th+d2*pow(th,2)+d3*pow(th,3)+d4*pow(th,4); + ds = d0+d1*th+d2*pow(th,2)+d3*pow(th,3)+d4*pow(th,4); } - + if(th > 20 && th <= 40) { as = a01*powl((long double)th,a11)*pow(sin(th*d2r),a21)*exp(a31*th)+a41*th+a51; bs = b01+b11*th+b21*pow(th,2)+b31*pow(th,3)+b41*pow(th,4); cs = c01+c11*th+c21*pow(th,2)+c31*pow(th,3)+c41*pow(th,4); - ds = d01+d11*th+d21*pow(th,2)+d31*pow(th,3)+d41*pow(th,4); + ds = d01+d11*th+d21*pow(th,2)+d31*pow(th,3)+d41*pow(th,4); } - + if(th > 3.99 && th <= 20) { as = a02*powl((long double)th,a12)*pow(sin(th*d2r),a22)*exp(a32*th)+a42*th+a52; bs = b02+b12*th+b22*pow(th,2)+b32*pow(th,3)+b42*pow(th,4)+b52*pow(th,5); cs = c02+c12*th+c22*pow(th,2)+c32*pow(th,3)+c42*pow(th,4)+c52*pow(th,5); ds = d03*powl((long double)th,d13)*pow(sin(th*d2r),d23)*exp(d33*th)+d43*th+d53+d63*pow(th,2)+d73*pow(th,3); } - + if(th > 1 && th <= 3.99) { as = a03*powl((long double)th,a13)*pow(sin(th*d2r),a23)*exp(a32*th)+a43*th+a53; bs = b02+b12*th+b22*pow(th,2)+b32*pow(th,3)+b42*pow(th,4)+b52*pow(th,5); cs = c02+c12*th+c22*pow(th,2)+c32*pow(th,3)+c42*pow(th,4)+c52*pow(th,5); ds = d03*powl((long double)th,d13)*pow(sin(th*d2r),d23)*exp(d33*th)+d43*th+d53+d63*pow(th,2)+d73*pow(th,3); } - + if(th <= 1) { as = (901707552-762)*th+762; bs = (-2.01+0.628)*th-0.628; cs = (-0.0024+0.229)*th-0.229; ds = (10244.8+267.38)*th-267.38; } - + double sinth = sin(th*d2r); /* @@ -229,12 +229,12 @@ double PSaidLowEnergy::dsdw(double th, double tlab) { dSdT = sinth*dSdW; if(I_print <= 110) { cout << I_print << " Tkin = " << Tlab << endl; - cout << " Theta " << th << " dS/dW " << dSdW + cout << " Theta " << th << " dS/dW " << dSdW << " dS/dT " << dSdT << endl; } hf0t->Fill(th); */ - + return sinth*(as*pow((long double)Tlab,bs*pow((long double)Tlab,cs)) + ds); } @@ -247,14 +247,14 @@ double PSaidLowEnergy::sample(double r, double tlab) { if (told != tlab) { told = tlab; double sum = 0.; - for (i=0; i<=dim; ++i) + for (i=0; i<=dim; ++i) y[i] = fac * dsdw((double)(i+1), tlab); for (i=0; iy[i]) ? y[i+1] : y[i] ; aa[i] = sum; } } - + // _____________________________________________________________________ // sample cm scattering angle with the rejection method double rr, f, tf, r2, c0, r1 = r; diff --git a/plugins/scatter_mod/PSaidLowEnergy.h b/plugins/scatter_mod/PSaidLowEnergy.h index cfde3e5..7776daf 100644 --- a/plugins/scatter_mod/PSaidLowEnergy.h +++ b/plugins/scatter_mod/PSaidLowEnergy.h @@ -13,16 +13,16 @@ class PSaidLowEnergy : public PAngularDistribution { public: - + PSaidLowEnergy(); PSaidLowEnergy(const Char_t *id, const Char_t *de); - + PDistribution *Clone(const char *delme=NULL) const; Bool_t Init(void); Bool_t Prepare(void); Bool_t IsNotRejected(void); - + double SamplePolarAngle(double); private: diff --git a/plugins/scatter_mod/PSaidPN.cc b/plugins/scatter_mod/PSaidPN.cc index 8e8f6ed..1719040 100644 --- a/plugins/scatter_mod/PSaidPN.cc +++ b/plugins/scatter_mod/PSaidPN.cc @@ -1,7 +1,7 @@ /////////////////////////////////////////////////////// // Pluto SAID parametrization implementation file // SAID pn-elastic parametrization. -// Created by Mirian Tabidze; +// Created by Mirian Tabidze; // ANKE/PAX Collaboration (2010) // //////////////////////////////////////////////////////// @@ -30,7 +30,7 @@ PDistribution *PSaidPN::Clone(const char *) const { }; Bool_t PSaidPN::IsNotRejected(void) { - + if (!direct_sampling_done) { Fatal("IsNotRejected", "Sampling not finished"); } @@ -38,7 +38,7 @@ Bool_t PSaidPN::IsNotRejected(void) { }; Bool_t PSaidPN::Init(void) { - + if (!PAngularDistribution::Init()) return kFALSE; if (!beam || !target) { @@ -69,86 +69,86 @@ double PSaidPN::dsdw(double th, double tlab) { // Normalized np elastic differential cross sections (mb/sr); // arguments: scattering angle (deg), lab beam kinetic energy (GeV). - // Parametrized beam kinetic energy range 1-3000 MeV. + // Parametrized beam kinetic energy range 1-3000 MeV. // Created by Nodar Lomidze and Mirian Tabidze; // ANKE/PAX Collaboration 10.01.2010. - - Double_t Tlab = tlab*1000; - + + Double_t Tlab = tlab*1000; + // 1 < t <= 10 MeV - + Double_t a711=4539.60307960841601015999913216; Double_t a721=0.00752681897087725815254088956863; Double_t a731=-6.78245408535227412016865855549e-05; - + Double_t a712=4539.02501799385299818823114038; Double_t a722=0.0195923919679152902517671464011; Double_t a732=-5.90373107640998484590966199903e-05; - + Double_t a713=4542.63246565786630526417866349; Double_t a723=-0.0367270219040887191397359856637; Double_t a733=0.000150479366404190212369584855878; - + Double_t a714=4599.64072085160387359792366624; Double_t a724=-0.69636713261622606996326112494; Double_t a734=0.00204901580574626523273407130432; - + Double_t b711=1027.1110718433226338675012812; Double_t b721=-0.00250973591724257261148522957228; Double_t b731=3.40351275642941653032380600052e-05; - + b711=b711*1e-3; b721=b721*1e-3; b731=b731*1e-3; - + Double_t b712=1027.30197644404802304052282125; Double_t b722=-0.00603008467870358444429257360753; Double_t b732=2.20231569236263580169321585345e-05; - + b712=b712*1e-3; b722=b722*1e-3; b732=b732*1e-3; - + Double_t b713=1025.79594553870083473157137632; Double_t b723=0.017633572296861910189136324334; Double_t b733=-6.77495961738348861924663424361e-05; - + b713=b713*1e-3; b723=b723*1e-3; b733=b733*1e-3; - + Double_t b714=1006.11632161798411289055366069; Double_t b724=0.24496891365587847300133716999; Double_t b734=-0.000720654698491387602291013969591; - + b714=b714*1e-3; b724=b724*1e-3; b734=b734*1e-3; - + Double_t c711=-3956.28582875398979012970812619; Double_t c721=0.436230037021566374733083648607; Double_t c731=-0.00861326169470216784773697327182; - + c711=c711*1e-6; c721=c721*1e-6; c731=c731*1e-6; - + Double_t c712=-3982.55195758380932602449320257; Double_t c722=0.747615347868268109721157088643; Double_t c732=-0.00302084300206519051901210559663; - + c712=c712*1e-6; c722=c722*1e-6; c732=c732*1e-6; - + Double_t c713=-3707.52255752172231950680725276; Double_t c723=-3.61276538826876914001218210615; Double_t c733=0.0137295676718120068793282939623; - + c713=c713*1e-6; c723=c723*1e-6; c733=c733*1e-6; - + Double_t c714=-376.734120560502560692839324474; Double_t c724=-41.9878472921726668687369965483; Double_t c734=0.123605984540839264340661429742; @@ -156,63 +156,63 @@ double PSaidPN::dsdw(double th, double tlab) { c714=c714*1e-6; c724=c724*1e-6; c734=c734*1e-6; - + Double_t d711=550339822899.100830078125; Double_t d721=-15437424.6341329850256443023682; Double_t d731=377735.00044624751899391412735; - + d711=d711*1e-9; d721=d721*1e-9; d731=d731*1e-9; - + Double_t d712=551330896329.685302734375; Double_t d722=-28402879.7241111062467098236084; Double_t d732=201350.6160830332082696259021760; - + d712=d712*1e-9; d722=d722*1e-9; d732=d732*1e-9; - + Double_t d713=534982789012.4525146484375; Double_t d723=231614124.018608659505844116211; Double_t d733=-806692.935594742302782833576202; - + d713=d713*1e-9; d723=d723*1e-9; d733=d733*1e-9; - + Double_t d714=324213961620.5838623046875; Double_t d724=2679043927.8085079193115234375; Double_t d734=-7877500.49959708191454410552979; - + d714=d714*1e-9; d724=d724*1e-9; d734=d734*1e-9; - + Double_t e711=-4777302473008.5888671875; Double_t e721=9785749.0821783803403377532959; Double_t e731=-83059.2992513257631799206137657; - + e711=e711*1e-9; e721=e721*1e-9; e731=e731*1e-9; - + Double_t e712=-4778242712167.7001953125; Double_t e722=30444273.1718424744904041290283; Double_t e732=-104675.355601904535433277487755; - + e712=e712*1e-9; e722=e722*1e-9; e732=e732*1e-9; - + Double_t e713=-4771744055772.7490234375; Double_t e723=-71079311.6152839064598083496094; Double_t e733=278945.57256805134238675236702; - + e713=e713*1e-9; e723=e723*1e-9; e733=e733*1e-9; - + Double_t e714=-4684500557379.8388671875; Double_t e724=-1079706906.676479339599609375; Double_t e734=3177793.29517898336052894592285; @@ -222,55 +222,55 @@ double PSaidPN::dsdw(double th, double tlab) { e734=e734*1e-9; // 10 < t <= 150 MeV - + Double_t a011=280.988883232264015532564371824; Double_t a021=-1.2177691742418588205509877298; Double_t a031=0.222128243817439507967748113515; Double_t a041=-0.00501823344764219109181979661116; Double_t a051=3.23246195376400931634740254506e-05; - + Double_t a012=252.537332079565970843759714626; Double_t a022=6.26598319895761868281169881811; Double_t a032=-0.124214597690752104330869087789; Double_t a042=0.000878031017884496655170889489739; Double_t a052=-2.20075804836157298829892210723e-06; - + Double_t a013=2224.2910797913341411913279444; Double_t a023=-29.1165463720663275637434708187; Double_t a033=0.0295830042274358925857846713825; Double_t a043=0.00116812273353987246087004603368; Double_t a053=-4.31766062565598209379603977798e-06; - + Double_t a014=-3571.52045872113558289129287004; Double_t a024=49.9587605670696888182646944188 ; Double_t a034=-0.0118980651043120617960102691768; Double_t a044=-0.001885748021239132439508257022; Double_t a054=5.91472087493390507695160962509e-06; - + Double_t b011=-0.368600091598161427874913442793; Double_t b021=0.00070921291732507470498281243465; Double_t b031=-0.000210439809892587167180350027351; Double_t b041=6.10126041381089026703296064602e-07; Double_t b051=5.86115757976900380346970591619e-08; - + Double_t b012=-0.334604425563661378451030259384; Double_t b022=-0.00969373187740862202188552032567; Double_t b032=0.000180082736553450122951938738858; Double_t b042=-1.04216649383704479223014104788e-06; Double_t b052=1.79718949566048717459940864589e-09; - + Double_t b013=-0.226793636082256083730257500974; Double_t b023=-0.0108668467472905917042824697205; Double_t b033=0.000176873179439550565162850293; Double_t b043=-9.67900961915323784296371831259e-07; Double_t b053=1.57296915955838665368297633906e-09; - + Double_t b014=-2.17784944926909851403706852579; Double_t b024=0.00987373490958328922650899528435 ; Double_t b034= 0.000140179428546595603866098400658; Double_t b044=-1.22367419558757078961580815751e-06; Double_t b054=2.57839465829339766884928802644e-09; - + Double_t c011=262.65818684088884538141428493; Double_t c021=1.28141669745747011077696697612; Double_t c031=-0.290574928599716564292521070456 ; @@ -282,7 +282,7 @@ double PSaidPN::dsdw(double th, double tlab) { c031=c031*1e-3; c041=c041*1e-3; c051=c051*1e-3; - + Double_t c012=-24.7051973187336244563994114287; Double_t c022=7.83310921438477514300302573247; Double_t c032=-0.151544199915834149061666380476; @@ -294,7 +294,7 @@ double PSaidPN::dsdw(double th, double tlab) { c032=c032*1e-3; c042=c042*1e-3; c052=c052*1e-3; - + Double_t c013=-5381.3442541142321715597063303; Double_t c023=80.9980424193125827514450065792; Double_t c033=-0.0107601485720134927570601490743; @@ -306,19 +306,19 @@ double PSaidPN::dsdw(double th, double tlab) { c033=c033*1e-3; c043=c043*1e-3; c053=c053*1e-3; - + Double_t c014=8395.32363116006308700889348984; Double_t c024=-106.289569664433187767826893833; Double_t c034=0.0402392918497720686321628136284; Double_t c044=0.00386630196197447527708956904746; Double_t c054=-1.2206692233255915381174953882e-05; - + c014=c014*1e-3; c024=c024*1e-3; c034=c034*1e-3; c044=c044*1e-3; c054=c054*1e-3; - + Double_t d011=13809143.5907383374869823455811; Double_t d021=75389.9699077490950003266334534; Double_t d031=-12495.9410690938093466684222221; @@ -330,7 +330,7 @@ double PSaidPN::dsdw(double th, double tlab) { d031=d031*1e-6; d041=d041*1e-6; d051=d051*1e-6; - + Double_t d012=18072482.8951823115348815917969; Double_t d022=-292744.751829294080380350351334; Double_t d032=-4379.86052800174275034805759788; @@ -342,7 +342,7 @@ double PSaidPN::dsdw(double th, double tlab) { d032=d032*1e-6; d042=d042*1e-6; d052=d052*1e-6; - + Double_t d013=1633901944.51936793327331542969; Double_t d023=-50812855.3188116699457168579102; Double_t d033=589775.797529974603094160556793; @@ -354,7 +354,7 @@ double PSaidPN::dsdw(double th, double tlab) { d033=d033*1e-6; d043=d043*1e-6; d053=d053*1e-6; - + Double_t d014=49404326397.42669677734375; Double_t d024=-1191114835.2664012908935546875; Double_t d034=10744988.1387704908847808837891; @@ -366,7 +366,7 @@ double PSaidPN::dsdw(double th, double tlab) { d034=d034*1e-6; d044=d044*1e-6; d054=d054*1e-6; - + Double_t e011=-30758522.9680781401693820953369; Double_t e021=-629133.209790516062639653682709; Double_t e031=29689.4940516852329892572015524; @@ -378,7 +378,7 @@ double PSaidPN::dsdw(double th, double tlab) { e031=e031*1e-9; e041=e041*1e-9; e051=e051*1e-9; - + Double_t e012=-26628412.9835556410253047943115; Double_t e022=-741706.592572910012677311897278; Double_t e032=51206.4980289838058524765074253; @@ -390,19 +390,19 @@ double PSaidPN::dsdw(double th, double tlab) { e032=e032*1e-9; e042=e042*1e-9; e052=e052*1e-9; - + Double_t e013=-922015280.121418356895446777344; Double_t e023=38500015.4333336949348449707031; Double_t e033=-552583.676858801511116325855255 ; Double_t e043=3356.65857880652174571878276765; Double_t e053=-7.4277079909561898318770545302; - + e013=e013*1e-9; e023=e023*1e-9; e033=e033*1e-9; e043=e043*1e-9; e053=e053*1e-9; - + Double_t e014=-285002237703.16705322265625; Double_t e024=6917510671.8432407379150390625; Double_t e034=-62834191.1933749467134475708008; @@ -422,25 +422,25 @@ double PSaidPN::dsdw(double th, double tlab) { Double_t a131=-0.00331936904518996978713518686277; Double_t a141=-5.78012727715596842550764555835e-05; Double_t a151=1.10296804110113708074483642591e-06; - + Double_t a112=22.5326405949818777685322856996; Double_t a122=-0.205408182638080000215197173929; Double_t a132=-0.00407236806452648987530995583484 ; Double_t a142=6.91309992902746842232883373036e-05; Double_t a152=-2.44266682752841438297882652522e-07 ; - + Double_t a113=48.9620202894678016036777989939; Double_t a123=-2.01966497554739854436434143281; Double_t a133=0.0307230195733171757010993019321; Double_t a143=-0.000194897693464035219644905905234; Double_t a153=4.61399831830805130775574780799e-07; - + Double_t a114=-497.393960769805289601208642125; Double_t a124=4.97405314386081442989961942658; Double_t a134=0.0116672799448331223487462793287; Double_t a144=-0.000236013487613045188501237348078; Double_t a154=5.88389691314652550754773357999e-07; - + Double_t b111=-63.0232848709729367442378134001; Double_t b121=0.169797722983754506564935127244; Double_t b131=-0.139121795283793342479228272168; @@ -452,7 +452,7 @@ double PSaidPN::dsdw(double th, double tlab) { b131=b131*1e-3; b141=b141*1e-3; b151=b151*1e-3; - + Double_t b112=-50.8279586212917351417672762182; Double_t b122=-3.61127434193662599781760036421; Double_t b132=0.117252381838553326742768945223; @@ -464,7 +464,7 @@ double PSaidPN::dsdw(double th, double tlab) { b132=b132*1e-3; b142=b142*1e-3; b152=b152*1e-3; - + Double_t b113=-14.1499609189426607258610602003 ; Double_t b123=-1.11069574093095813083209577599; Double_t b133=0.00546449703268872457456728497505; @@ -476,7 +476,7 @@ double PSaidPN::dsdw(double th, double tlab) { b133=b133*1e-3; b143=b143*1e-3; b153=b153*1e-3; - + Double_t b114=15770.775284139419454731978476; Double_t b124=-189.443404858807241453177994117; Double_t b134=0.00633854300141153091663337448836; @@ -488,7 +488,7 @@ double PSaidPN::dsdw(double th, double tlab) { b134=b134*1e-3; b144=b144*1e-3; b154=b154*1e-3; - + Double_t c111=120.493591877953775792775559239; Double_t c121=-0.024991634332026002596194302896; Double_t c131=0.340852002172772283739021759175; @@ -499,8 +499,8 @@ double PSaidPN::dsdw(double th, double tlab) { c121=c121*1e-6; c131=c131*1e-6; c141=c141*1e-6; - c151=c151*1e-6; - + c151=c151*1e-6; + Double_t c112=624.624715290332233053050003946; Double_t c122= -11.2120750552410193279229133623; Double_t c132=0.0387871975796240595069086509739; @@ -512,7 +512,7 @@ double PSaidPN::dsdw(double th, double tlab) { c132=c132*1e-6; c142=c142*1e-6; c152=c152*1e-6; - + Double_t c113=2029.17114502638014528201892972; Double_t c123=-26.6817075099832656803755526198; Double_t c133=-0.00738101725047722763417556990362; @@ -524,7 +524,7 @@ double PSaidPN::dsdw(double th, double tlab) { c133=c133*1e-6; c143=c143*1e-6; c153=c153*1e-6; - + Double_t c114=-47115.3281632940343115478754044; Double_t c124=575.899509969403652576147578657; Double_t c134=-0.0669339870303421874409011138596; @@ -536,7 +536,7 @@ double PSaidPN::dsdw(double th, double tlab) { c134=c134*1e-6; c144=c144*1e-6; c154=c154*1e-6; - + Double_t d111=-71.7274004434660383822119911201; Double_t d121=1.14292452343935924119477931526; Double_t d131=-0.445365264308371477941506100251; @@ -548,7 +548,7 @@ double PSaidPN::dsdw(double th, double tlab) { d131=d131*1e-9; d141=d141*1e-9; d151=d151*1e-9; - + Double_t d112=-314.193150437753502046689391136; Double_t d122=-2.39640444653943029962306354719; Double_t d132=0.173797000179225058502652245807; @@ -560,7 +560,7 @@ double PSaidPN::dsdw(double th, double tlab) { d132=d132*1e-9; d142=d142*1e-9; d152=d152*1e-9; - + Double_t d113=-3017.51169359347613863064907491; Double_t d123=42.6440309279125671082510962151; Double_t d133=-0.00321909626470435117004398328788; @@ -572,7 +572,7 @@ double PSaidPN::dsdw(double th, double tlab) { d133=d133*1e-9; d143=d143*1e-9; d153=d153*1e-9; - + Double_t d114=42360.4662757067781058140099049; Double_t d124=-522.786637329773043347813654691; Double_t d134=0.0744317850192869751024815627716; @@ -586,31 +586,31 @@ double PSaidPN::dsdw(double th, double tlab) { d154=d154*1e-9; // 370 < t < 700 MeV - + Double_t a211=38.8280288704706748603712185286; Double_t a221=-0.263982877781892999458079884789; Double_t a231=-0.0445072250500043870014010849445; Double_t a241=0.00120988294033848049063850638163; Double_t a251=-9.64840473508445992784597622371e-06; - + Double_t a212=47.5868548390417629434523405507; Double_t a222=-1.64015079069219593677075863525; Double_t a232=0.0218177238068056889019885602465; Double_t a242=-0.000138197401300520840731686500469; Double_t a252=3.74283331192169170673555381873e-07; - + Double_t a213=-145.280908187119422336763818748; Double_t a223=0.463787914413491986209692186094; Double_t a233=0.0321730201461149084574131506997; Double_t a243=-0.000305050847329301844448878888727; Double_t a253=7.5745582467836168829607287542e-07; - + Double_t a214=-1655.87004243952355864166747779; Double_t a224=19.1507118570349028630062093725; Double_t a234=0.0107499137523899643970048956021; Double_t a244=-0.00074793642127144051821863168783; Double_t a254=2.10579042344223326570836624105e-06; - + Double_t b211=-192.830012519173919827153440565; Double_t b221=1.26220344915611137892597071186; Double_t b231=0.215013109777751398876688426753; @@ -622,7 +622,7 @@ double PSaidPN::dsdw(double th, double tlab) { b231=b231*1e-3; b241=b241*1e-3; b251=b251*1e-3; - + Double_t b212=-278.541822543976422821287997067; Double_t b222=10.3918652240168949418830379727; Double_t b232=-0.144304607018130581774784104709; @@ -634,7 +634,7 @@ double PSaidPN::dsdw(double th, double tlab) { b232=b232*1e-3; b242=b242*1e-3; b252=b252*1e-3; - + Double_t b213=1543.51696941649015570874325931; Double_t b223=-21.7880762675509522807715256931; Double_t b233=-0.00194485508538852621893133765241; @@ -646,7 +646,7 @@ double PSaidPN::dsdw(double th, double tlab) { b233=b233*1e-3; b243=b243*1e-3; b253=b253*1e-3; - + Double_t b214=18591.5146084772422909736633301; Double_t b224=-222.840246766107014764202176593; Double_t b234=0.00109094990789550434773236275987; @@ -658,7 +658,7 @@ double PSaidPN::dsdw(double th, double tlab) { b234=b234*1e-3; b244=b244*1e-3; b254=b254*1e-3; - + Double_t c211=355.708076574930487367964815348; Double_t c221=-3.15825030275451856809354467259; Double_t c231=-0.292897132927128545087924749168; @@ -670,7 +670,7 @@ double PSaidPN::dsdw(double th, double tlab) { c231=c231*1e-6; c241=c241*1e-6; c251=c251*1e-6; - + Double_t c212=602.170481340616561283241026103; Double_t c222=-22.1018450068403460306853958173; Double_t c232=0.30624825912073383449296670733; @@ -682,7 +682,7 @@ double PSaidPN::dsdw(double th, double tlab) { c232=c232*1e-6; c242=c242*1e-6; c252=c252*1e-6; - + Double_t c213=-2617.98149787897364149102941155; Double_t c223=37.6546793744541332671360578388; Double_t c233=-0.000779442854891873202968777256672; @@ -694,7 +694,7 @@ double PSaidPN::dsdw(double th, double tlab) { c233=c233*1e-6; c243=c243*1e-6; c253=c253*1e-6; - + Double_t c214=-39514.4542600430868333205580711; Double_t c224=476.844180161561212116794195026; Double_t c234=-0.0214794822415537711712829604949; @@ -706,7 +706,7 @@ double PSaidPN::dsdw(double th, double tlab) { c234=c234*1e-6; c244=c244*1e-6; c254=c254*1e-6; - + Double_t d211=-193.935479569752772022184217349; Double_t d221=2.14790682860712500712452310836; Double_t d231=0.114226168519773144116591367947; @@ -718,7 +718,7 @@ double PSaidPN::dsdw(double th, double tlab) { d231=d231*1e-9; d241=d241*1e-9; d251=d251*1e-9; - + Double_t d212=-366.534391693851318905217340216; Double_t d222=13.1306015684250478869898870471; Double_t d232=-0.181810619155537173119441263225; @@ -730,7 +730,7 @@ double PSaidPN::dsdw(double th, double tlab) { d232=d232*1e-9; d242=d242*1e-9; d252=d252*1e-9; - + Double_t d213=1349.91019799946843704674392939; Double_t d223=-19.6566749325439147355609748047; Double_t d233=0.00179585649675323248686265031893; @@ -742,7 +742,7 @@ double PSaidPN::dsdw(double th, double tlab) { d233=d233*1e-9; d243=d243*1e-9; d253=d253*1e-9; - + Double_t d214=23834.9249162660635192878544331; Double_t d224=-287.952173843357797977660084143; Double_t d234=0.00773197553914641618616476748116; @@ -756,31 +756,31 @@ double PSaidPN::dsdw(double th, double tlab) { d254=d254*1e-9; // 700 <= t < 1340 MeV - + Double_t a311=-16.7339695455916945832086639712; Double_t a321=0.410858118520914306071034616252; Double_t a331=-0.0291039970348530400989783828436; Double_t a341=0.00131336656979566795272473811451; Double_t a351=-1.40304452013664640618647444503e-05; - + Double_t a312=-97.243735957946256576178711839; Double_t a322=4.94550941012511913186244782992; Double_t a332=-0.0809429895987969771908865368459; Double_t a342=0.000548958152924852683593459623523; Double_t a352=-1.34281331734555239156112416837e-06; - + Double_t a313=253.449749073540971266993437894; Double_t a323=-5.23614396902913004083757186891; Double_t a333=0.0319938469783311169036821297595; Double_t a343=-2.6734521353081374734532785209e-05; Double_t a353=-1.87085594292834266599761324119e-07; - + Double_t a314=2175.22619228574285443755798042; Double_t a324=-26.8974450770923638742715411354; Double_t a334=0.0123097935005911374162224092288; Double_t a344=0.000874540269287660135613671208432; Double_t a354=-2.69577871764866192801622137021e-06; - + Double_t b311=75.5638915386094680570749915205; Double_t b321=-2.00629314432976624260618336848; Double_t b331=0.117006628757149955255556506017; @@ -792,7 +792,7 @@ double PSaidPN::dsdw(double th, double tlab) { b331=b331*1e-3; b341=b341*1e-3; b351=b351*1e-3; - + Double_t b312=354.025231102021393780887592584; Double_t b322=-16.2257269011451690232661349; Double_t b332=0.252563454336966697333366482781; @@ -804,7 +804,7 @@ double PSaidPN::dsdw(double th, double tlab) { b332=b332*1e-3; b342=b342*1e-3; b352=b352*1e-3; - + Double_t b313=-258.843139531004283071524696425; Double_t b323=4.0556987677958513671683249413; Double_t b333=-0.00182574325961018545973202353849; @@ -816,7 +816,7 @@ double PSaidPN::dsdw(double th, double tlab) { b333=b333*1e-3; b343=b343*1e-3; b353=b353*1e-3; - + Double_t b314=-4030.87964950808827779837884009; Double_t b324=50.2579233860782892406859900802; Double_t b334=-0.0131189571804045824326978575414; @@ -828,7 +828,7 @@ double PSaidPN::dsdw(double th, double tlab) { b334=b334*1e-3; b344=b344*1e-3; b354=b354*1e-3; - + Double_t c311=-65.5506296675690975916950264946; Double_t c321=2.04664273720001688161573838443; Double_t c331=-0.120239376925325505696129368971; @@ -840,7 +840,7 @@ double PSaidPN::dsdw(double th, double tlab) { c331=c331*1e-6; c341=c341*1e-6; c351=c351*1e-6; - + Double_t c312=-322.69010703126673433871474117; Double_t c322=14.2113203454018943716619105544; Double_t c332=-0.214634219448837648691608137597; @@ -852,7 +852,7 @@ double PSaidPN::dsdw(double th, double tlab) { c332=c332*1e-6; c342=c342*1e-6; c352=c352*1e-6; - + Double_t c313=77.694078567927675749160698615; Double_t c323=-1.21371927747354835247506343876; Double_t c333=0.000422785591358837290268390951553; @@ -864,7 +864,7 @@ double PSaidPN::dsdw(double th, double tlab) { c333=c333*1e-6; c343=c343*1e-6; c353=c353*1e-6; - + Double_t c314=1796.63173042967559922544751316; Double_t c324=-23.1765752135956155655094335089; Double_t c334=0.0105074595934139466968382237155; @@ -876,7 +876,7 @@ double PSaidPN::dsdw(double th, double tlab) { c334=c334*1e-6; c344=c344*1e-6; c354=c354*1e-6; - + Double_t d311=22.2230842525465561720920959488; Double_t d321=-0.579628298901678995491693058284; Double_t d331=0.0222693439053093661383897483574; @@ -888,7 +888,7 @@ double PSaidPN::dsdw(double th, double tlab) { d331=d331*1e-9; d341=d341*1e-9; d351=d351*1e-9; - + Double_t d312=87.6065281114019569486117688939; Double_t d322=-3.69293224431998279300159992999; Double_t d332=0.0530622988574960124941171102364; @@ -900,7 +900,7 @@ double PSaidPN::dsdw(double th, double tlab) { d332=d332*1e-9; d342=d342*1e-9; d352=d352*1e-9; - + Double_t d313=-3.61188400528913167164546393906; Double_t d323=0.0246185836640670854813528478644; Double_t d333=0.000218122197264948092850639360663; @@ -912,7 +912,7 @@ double PSaidPN::dsdw(double th, double tlab) { d333=d333*1e-9; d343=d343*1e-9; d353=d353*1e-9; - + Double_t d314=-198.497748324768679140106542036; Double_t d324=3.46043662596812051646111285663; Double_t d334=-0.0133374494190890459377474286384; @@ -926,31 +926,31 @@ double PSaidPN::dsdw(double th, double tlab) { d354=d354*1e-9; // 1340 <= t <= 2000 MeV - + Double_t a411=-12.7584281205485687848977249814; Double_t a421=-0.810828830515470055928517467692; Double_t a431=0.11727577941561032059958336049; Double_t a441=-0.00306471583621413913925413119443; Double_t a451=2.33025032084072329771531201237e-05; - + Double_t a412=186.789257366342667410208377987; Double_t a422=-9.21831435279970889951073331758; Double_t a432=0.166114387907598914928541944391; Double_t a442=-0.00128984963387176630386643516601; Double_t a452=3.63766099652079555085387556346e-06; - + Double_t a413=166.148351780900185303835314699; Double_t a423=-3.62013911872450044882043584948; Double_t a433=0.029480687397011533235069435932; Double_t a443=-0.000122860581922417641574998836695; Double_t a453=2.62166228557376848699720555194e-07; - + Double_t a414=-663.731432312853030452970415354; Double_t a424=7.39908390540204052854278415907; Double_t a434=0.00845097963381020653161890265892; Double_t a444=-0.000327195416702142694888311158508; Double_t a454=9.34019306292568798726072554217e-07; - + Double_t b411=36.3514104224731298131700896192; Double_t b421=0.992648979911832096689749960206; Double_t b431=-0.155508226192793141962056324701; @@ -962,7 +962,7 @@ double PSaidPN::dsdw(double th, double tlab) { b431=b431*1e-3; b441=b441*1e-3; b451=b451*1e-3; - + Double_t b412=-239.761112400200204319844488055; Double_t b422=12.2925220650717026416032240377; Double_t b432=-0.226942339023619821247734762437 ; @@ -974,7 +974,7 @@ double PSaidPN::dsdw(double th, double tlab) { b432=b432*1e-3; b442=b442*1e-3; b452=b452*1e-3; - + Double_t b413=-99.5852780037004521318522165529; Double_t b423=1.15049893940818726001396044012; Double_t b433=0.00224965626435622619710974490204; @@ -998,7 +998,7 @@ double PSaidPN::dsdw(double th, double tlab) { b434=b434*1e-3; b444=b444*1e-3; b454=b454*1e-3; - + Double_t c411=-10.6412055794955957566116921953; Double_t c421=-0.330381569766683147459929159595; Double_t c431=0.0362084068376701817548735107266; @@ -1010,7 +1010,7 @@ double PSaidPN::dsdw(double th, double tlab) { c431=c431*1e-6; c441=c441*1e-6; c451=c451*1e-6; - + Double_t c412= 96.984368712742167417673044838; Double_t c422=-5.03771902858119702273143047933; Double_t c432=0.0935611355220900969831276938748; @@ -1022,7 +1022,7 @@ double PSaidPN::dsdw(double th, double tlab) { c432=c432*1e-6; c442=c442*1e-6; c452=c452*1e-6; - + Double_t c413=16.4938353285128656011693237815; Double_t c423=-0.0872224255923418623215326306308; Double_t c433=-0.00103213661999113862771659810846; @@ -1034,7 +1034,7 @@ double PSaidPN::dsdw(double th, double tlab) { c433=c433*1e-6; c443=c443*1e-6; c453=c453*1e-6; - + Double_t c414=-13.5246941801859072995739552425; Double_t c424=0.0139555380560209656148895618344; Double_t c434=0.000342943303929599816511769594385; @@ -1046,7 +1046,7 @@ double PSaidPN::dsdw(double th, double tlab) { c434=c434*1e-6; c444=c444*1e-6; c454=c454*1e-6; - + Double_t d411=1.37409064370393507736878291325; Double_t d421=0.0337998620352999712412866983868; Double_t d431=-0.00350402642305315276810562252763; @@ -1058,7 +1058,7 @@ double PSaidPN::dsdw(double th, double tlab) { d431=d431*1e-9; d441=d441*1e-9; d451=d451*1e-9; - + Double_t d412=-12.6140141871848712185055774171; Double_t d422=0.655296528252096166511364572216; Double_t d432=-0.0121151884191820612829415537703; @@ -1070,7 +1070,7 @@ double PSaidPN::dsdw(double th, double tlab) { d432=d432*1e-9; d442=d442*1e-9; d452=d452*1e-9; - + Double_t d413=-2.99967585603287245632486701652; Double_t d423=0.0196980122736698758101336892423; Double_t d433=0.00015637694319464091516867776388; @@ -1082,7 +1082,7 @@ double PSaidPN::dsdw(double th, double tlab) { d433=d433*1e-9; d443=d443*1e-9; d453=d453*1e-9; - + Double_t d414=-75.1430050719748123810859397054; Double_t d424=1.47718250176611753943234361941; Double_t d434=-0.0102813448497441704138077867015; @@ -1096,31 +1096,31 @@ double PSaidPN::dsdw(double th, double tlab) { d454=d454*1e-9; // 2000 < t <= 2500 MeV - + Double_t a511=3.47254972730605349084953559213; Double_t a521=-0.472442493833277632475642349164; Double_t a531=0.0844983975058501285415601955719; Double_t a541=-0.00289197600513564547636269352893; Double_t a551=2.79686206727054621887142843439e-05; - + Double_t a512=41.0026020488243716499709989876; Double_t a522=-1.68973510327236264849659619358; Double_t a532=0.0278155093544221396206772567439; Double_t a542=-0.00021377614361777448680028423933; Double_t a552=6.28407827389216938936817007794e-07; - + Double_t a513=126.145401815058448846684768796; Double_t a523=-3.30663136057926276833995871129; Double_t a533=0.030621248060286872932911350631; Double_t a543=-0.000117386783252675192478452215195; Double_t a553=1.56039022867282605495518801181e-07; - + Double_t a514=106.035560296066151408922451083; Double_t a524=-1.29832575078676204505256919219; Double_t a534=0.00691378047701294087823420397854; Double_t a544=-2.26807633859038199649997558094e-05; Double_t a554=3.00202057378542013940005551802e-08; - + Double_t b511=14.892382942754631258708286623; Double_t b521=0.490092437647822287694054921303; Double_t b531=-0.10546489508652936994970161777; @@ -1132,7 +1132,7 @@ double PSaidPN::dsdw(double th, double tlab) { b531=b531*1e-3; b541=b541*1e-3; b551=b551*1e-3; - + Double_t b512=-42.9571753416644810386060271412; Double_t b522=2.12817208154404724496089329477; Double_t b532=-0.0400784399115883746556043831788; @@ -1144,7 +1144,7 @@ double PSaidPN::dsdw(double th, double tlab) { b532=b532*1e-3; b542=b542*1e-3; b552=b552*1e-3; - + Double_t b513=-75.7623276044806175377743784338; Double_t b523=1.21688087513552511964576297032; Double_t b533=-0.000571654488810795116497665002697; @@ -1156,7 +1156,7 @@ double PSaidPN::dsdw(double th, double tlab) { b533=b533*1e-3; b543=b543*1e-3; b553=b553*1e-3; - + Double_t b514=50.1659294334849619190208613873; Double_t b524=-0.244392960152603477830268730031; Double_t b534=-0.00222104303245211761805300021422; @@ -1168,7 +1168,7 @@ double PSaidPN::dsdw(double th, double tlab) { b534=b534*1e-3; b544=b544*1e-3; b554=b554*1e-3; - + Double_t c511=-1.2281240374562036876682213915; Double_t c521=-0.0935125321937136100292065066242; Double_t c531=0.0120451574968636777179797903159; @@ -1180,7 +1180,7 @@ double PSaidPN::dsdw(double th, double tlab) { c531=c531*1e-6; c541=c541*1e-6; c551=c551*1e-6; - + Double_t c512=10.5342635624410512207305146148; Double_t c522=-0.561406402681982275026939532836; Double_t c532=0.0110607484615416820639133277382; @@ -1192,7 +1192,7 @@ double PSaidPN::dsdw(double th, double tlab) { c532=c532*1e-6; c542=c542*1e-6; c552=c552*1e-6; - + Double_t c513=-1.33646152633203207926726463484; Double_t c523=0.00278316057281262699274471117405; Double_t c533=4.79388293232475273461523634921e-05; @@ -1204,7 +1204,7 @@ double PSaidPN::dsdw(double th, double tlab) { c533=c533*1e-6; c543=c543*1e-6; c553=c553*1e-6; - + Double_t c514=-12.1640170879757292254907952156; Double_t c524=0.0536441980651616856512475806085; Double_t c534=0.000515937344651880226871487611362; @@ -1218,31 +1218,31 @@ double PSaidPN::dsdw(double th, double tlab) { c554=c554*1e-6; // 2500 < t <= 3000 MeV - + Double_t a611=7.76189989283533332553588479641; Double_t a621=-0.601143002261986358902845495322; Double_t a631=0.0936460242763701433688083852758; Double_t a641=-0.0032888371410665188931954361351; Double_t a651=3.29364032522508028751756503638e-05; - + Double_t a612=-58.4487101376154143395069695543; Double_t a622=3.71211975107332792234160478984; Double_t a632=-0.0751862587212258765001493543423; Double_t a642=0.000620298842829583065017207132996; Double_t a652=-1.81605524824121946356799556233e-06; - + Double_t a613=431.45095193914301034965319559; Double_t a623=-7.96518268410425189784973554197; Double_t a633=0.0331194660629376760874187368699; Double_t a643=0.000111786130084919578466136347306; Double_t a653=-7.05560663993457093486527578058e-07; - + Double_t a614=-224.96614331268523301332606934; Double_t a624=1.85520376158219457707332367136; Double_t a634=0.0104944722178547406726822899259; Double_t a644=-0.000113378393613579255168322124092; Double_t a654=1.89335051033456154384899548966e-07; - + Double_t b611=11.0746037373865551245444294182; Double_t b621=0.583715251026991621685624522797; Double_t b631=-0.111341554452420499199405412583; @@ -1254,7 +1254,7 @@ double PSaidPN::dsdw(double th, double tlab) { b631=b631*1e-3; b641=b641*1e-3; b651=b651*1e-3; - + Double_t b612=36.3398674187633119458951114211; Double_t b622=-2.18632192076425857507615546638; Double_t b632=0.0423582724740546937014507022923; @@ -1266,7 +1266,7 @@ double PSaidPN::dsdw(double th, double tlab) { b632=b632*1e-3; b642=b642*1e-3; b652=b652*1e-3; - + Double_t b613=-314.434305516411654934927355498; Double_t b623=4.85782013260413059185793827055; Double_t b633=-0.00254127727057998180348885597368; @@ -1278,7 +1278,7 @@ double PSaidPN::dsdw(double th, double tlab) { b633=b633*1e-3; b643=b643*1e-3; b653=b653*1e-3; - + Double_t b614=122.255212405983868961811822373; Double_t b624=-0.501935381644469824635734767071; Double_t b634=-0.00494559003534167113819153271947; @@ -1290,7 +1290,7 @@ double PSaidPN::dsdw(double th, double tlab) { b634=b634*1e-3; b644=b644*1e-3; b654=b654*1e-3; - + Double_t c611=-0.387983460867299512209172007715; Double_t c621=-0.110273414905126709850691213433; Double_t c631=0.0129259982507889288616542700083; @@ -1302,7 +1302,7 @@ double PSaidPN::dsdw(double th, double tlab) { c631=c631*1e-6; c641=c641*1e-6; c651=c651*1e-6; - + Double_t c612=-5.28836907884832818638187745819; Double_t c622=0.301034869790244963283498691453; Double_t c632=-0.00545235730130092660639107293719; @@ -1314,7 +1314,7 @@ double PSaidPN::dsdw(double th, double tlab) { c632=c632*1e-6; c642=c642*1e-6; c652=c652*1e-6; - + Double_t c613=46.0984068296820339583064196631; Double_t c623=-0.719017618428171689792804954777; Double_t c633=0.000416809160160313478364624284467; @@ -1326,7 +1326,7 @@ double PSaidPN::dsdw(double th, double tlab) { c633=c633*1e-6; c643=c643*1e-6; c653=c653*1e-6; - + Double_t c614=-26.4277070391693342799044330604; Double_t c624=0.104450195975400034198443677269; Double_t c634=0.001053876893611264660768900292; @@ -1338,52 +1338,52 @@ double PSaidPN::dsdw(double th, double tlab) { c634=c634*1e-6; c644=c644*1e-6; c654=c654*1e-6; - + Double_t A0=0,A1=0,A2=0,A3=0,A4=0; //Double_t avper; //Int_t i; - + Double_t dsg_calc=0; - - if( Tlab >= 1 && Tlab <= 10) { - if(th <= 48) { + + if( Tlab >= 1 && Tlab <= 10) { + if(th <= 48) { A0=a711+a721*th+a731*pow(th,2); A1=b711+b721*th+b731*pow(th,2); A2=c711+c721*th+c731*pow(th,2); A3=d711+d721*th+d731*pow(th,2); A4=e711+e721*th+e731*pow(th,2); - } - if(th > 48 && th <= 123) { + } + if(th > 48 && th <= 123) { A0=a712+a722*th+a732*pow(th,2); A1=b712+b722*th+b732*pow(th,2); A2=c712+c722*th+c732*pow(th,2); A3=d712+d722*th+d732*pow(th,2); A4=e712+e722*th+e732*pow(th,2); - } - if(th > 123 && th <= 159) { + } + if(th > 123 && th <= 159) { A0=a713+a723*th+a733*pow(th,2); A1=b713+b723*th+b733*pow(th,2); A2=c713+c723*th+c733*pow(th,2); A3=d713+d723*th+d733*pow(th,2); A4=e713+e723*th+e733*pow(th,2); - } - if(th > 159 && th <= 180) { + } + if(th > 159 && th <= 180) { A0=a714+a724*th+a734*pow(th,2); A1=b714+b724*th+b734*pow(th,2); A2=c714+c724*th+c734*pow(th,2); A3=d714+d724*th+d734*pow(th,2); A4=e714+e724*th+e734*pow(th,2); - } + } dsg_calc=A0*pow(Tlab,A1*pow(Tlab,A2))+A3+A4*Tlab; - if( Tlab >=1 && Tlab < 2) dsg_calc=1.077*dsg_calc; + if( Tlab >=1 && Tlab < 2) dsg_calc=1.077*dsg_calc; } - - if( Tlab >10 && Tlab <= 150) { - if(th <= 51) { + + if( Tlab >10 && Tlab <= 150) { + if(th <= 51) { A0=a011+a021*th+a031*pow(th,2)+a041*pow(th,3)+a051*pow(th,4); } if(th <= 39) { - A1=b011+b021*th+b031*pow(th,2)+b041*pow(th,3)+b051*pow(th,4); + A1=b011+b021*th+b031*pow(th,2)+b041*pow(th,3)+b051*pow(th,4); } if(th <= 60) { A2=c011+c021*th+c031*pow(th,2)+c041*pow(th,3)+c051*pow(th,4); @@ -1393,10 +1393,10 @@ double PSaidPN::dsdw(double th, double tlab) { A4=e011+e021*th+e031*pow(th,2)+e041*pow(th,3)+e051*pow(th,4); } if(th > 51 && th <= 123) { - A0=a012+a022*th+a032*pow(th,2)+a042*pow(th,3)+a052*pow(th,4); + A0=a012+a022*th+a032*pow(th,2)+a042*pow(th,3)+a052*pow(th,4); } if(th > 39 && th <= 123) { - A1=b012+b022*th+b032*pow(th,2)+b042*pow(th,3)+b052*pow(th,4); + A1=b012+b022*th+b032*pow(th,2)+b042*pow(th,3)+b052*pow(th,4); } if(th > 60 && th <= 126) { A2=c012+c022*th+c032*pow(th,2)+c042*pow(th,3)+c052*pow(th,4); @@ -1412,7 +1412,7 @@ double PSaidPN::dsdw(double th, double tlab) { A4=e013+e023*th+e033*pow(th,2)+e043*pow(th,3)+e053*pow(th,4); } if(th > 126 && th <= 153) { - A2=c013+c023*th+c033*pow(th,2)+c043*pow(th,3)+c053*pow(th,4); + A2=c013+c023*th+c033*pow(th,2)+c043*pow(th,3)+c053*pow(th,4); } if(th > 153 && th <= 180) { A0=a014+a024*th+a034*pow(th,2)+a044*pow(th,3)+a054*pow(th,4); @@ -1420,31 +1420,31 @@ double PSaidPN::dsdw(double th, double tlab) { A2=c014+c024*th+c034*pow(th,2)+c044*pow(th,3)+c054*pow(th,4); A3=d014+d024*th+d034*pow(th,2)+d044*pow(th,3)+d054*pow(th,4); A4=e014+e024*th+e034*pow(th,2)+e044*pow(th,3)+e054*pow(th,4); - } + } dsg_calc=A0*pow(Tlab,A1*pow(Tlab,A2))+A3+A4*Tlab; } if( Tlab > 150 && Tlab <= 370) { if(th <= 51) { - A0=a111+a121*th+a131*pow(th,2)+a141*pow(th,3)+a151*pow(th,4); + A0=a111+a121*th+a131*pow(th,2)+a141*pow(th,3)+a151*pow(th,4); } if(th <= 39) { - A1=b111+b121*th+b131*pow(th,2)+b141*pow(th,3)+b151*pow(th,4); + A1=b111+b121*th+b131*pow(th,2)+b141*pow(th,3)+b151*pow(th,4); } if(th <= 60) { - A2=c111+c121*th+c131*pow(th,2)+c141*pow(th,3)+c151*pow(th,4); + A2=c111+c121*th+c131*pow(th,2)+c141*pow(th,3)+c151*pow(th,4); } if(th <= 57) { - A3=d111+d121*th+d131*pow(th,2)+d141*pow(th,3)+d151*pow(th,4); + A3=d111+d121*th+d131*pow(th,2)+d141*pow(th,3)+d151*pow(th,4); } if(th > 51 && th <= 123) { - A0=a112+a122*th+a132*pow(th,2)+a142*pow(th,3)+a152*pow(th,4); + A0=a112+a122*th+a132*pow(th,2)+a142*pow(th,3)+a152*pow(th,4); } if(th > 39 && th <= 123) { - A1=b112+b122*th+b132*pow(th,2)+b142*pow(th,3)+b152*pow(th,4); + A1=b112+b122*th+b132*pow(th,2)+b142*pow(th,3)+b152*pow(th,4); } if(th > 60 && th <= 126) { - A2=c112+c122*th+c132*pow(th,2)+c142*pow(th,3)+c152*pow(th,4); + A2=c112+c122*th+c132*pow(th,2)+c142*pow(th,3)+c152*pow(th,4); } if(th > 57 && th <= 123) { A3=d112+d122*th+d132*pow(th,2)+d142*pow(th,3)+d152*pow(th,4); @@ -1455,16 +1455,16 @@ double PSaidPN::dsdw(double th, double tlab) { A3=d113+d123*th+d133*pow(th,2)+d143*pow(th,3)+d153*pow(th,4); } if(th > 126 && th <= 153) { - A2=c113+c123*th+c133*pow(th,2)+c143*pow(th,3)+c153*pow(th,4); + A2=c113+c123*th+c133*pow(th,2)+c143*pow(th,3)+c153*pow(th,4); } if(th > 153 && th <= 180) { A0=a114+a124*th+a134*pow(th,2)+a144*pow(th,3)+a154*pow(th,4); A1=b114+b124*th+b134*pow(th,2)+b144*pow(th,3)+b154*pow(th,4); A2=c114+c124*th+c134*pow(th,2)+c144*pow(th,3)+c154*pow(th,4); - A3=d114+d124*th+d134*pow(th,2)+d144*pow(th,3)+d154*pow(th,4); + A3=d114+d124*th+d134*pow(th,2)+d144*pow(th,3)+d154*pow(th,4); } - dsg_calc=A0+A1*Tlab+A2*pow(Tlab,2)+A3*pow(Tlab,3); - } + dsg_calc=A0+A1*Tlab+A2*pow(Tlab,2)+A3*pow(Tlab,3); + } if( Tlab >= 370 && Tlab < 700) { if(th <= 51) { @@ -1519,7 +1519,7 @@ double PSaidPN::dsdw(double th, double tlab) { A2=c314+c324*th+c334*pow(th,2)+c344*pow(th,3)+c354*pow(th,4); A3=d314+d324*th+d334*pow(th,2)+d344*pow(th,3)+d354*pow(th,4); } - dsg_calc=A0+A1*Tlab+A2*pow(Tlab,2)+A3*pow(Tlab,3); + dsg_calc=A0+A1*Tlab+A2*pow(Tlab,2)+A3*pow(Tlab,3); } if( Tlab >= 1340 && Tlab <= 2000) { @@ -1598,7 +1598,7 @@ double PSaidPN::dsdw(double th, double tlab) { } dsg_calc = A0+A1*Tlab+A2*pow(Tlab,2); } - + return dsg_calc; } @@ -1618,7 +1618,7 @@ double PSaidPN::sample(double r, double tlab) { aa[i] = sum; } } - + // _____________________________________________________________________ // sample cm scattering angle with the rejection method double rr, f, tf, r2, c0, r1 = r; diff --git a/plugins/scatter_mod/PSaidPN.h b/plugins/scatter_mod/PSaidPN.h index a526d8f..49f15e4 100644 --- a/plugins/scatter_mod/PSaidPN.h +++ b/plugins/scatter_mod/PSaidPN.h @@ -13,16 +13,16 @@ class PSaidPN : public PAngularDistribution { public: - + PSaidPN(); PSaidPN(const Char_t *id, const Char_t *de); - + PDistribution* Clone(const char *delme=NULL) const; Bool_t Init(void); Bool_t Prepare(void); - Bool_t IsNotRejected(void); - + Bool_t IsNotRejected(void); + double SamplePolarAngle(double); private: diff --git a/plugins/scatter_mod/PScatterCrossSection.cc b/plugins/scatter_mod/PScatterCrossSection.cc index 3dd4d31..aebe652 100644 --- a/plugins/scatter_mod/PScatterCrossSection.cc +++ b/plugins/scatter_mod/PScatterCrossSection.cc @@ -30,7 +30,7 @@ PScatterCrossSection::PScatterCrossSection(const Char_t *id, const Char_t *de) : TF1 *dummy = new TF1("dummy", "1", -1, 1); SetAngleFunction(dummy); - + }; PDistribution *PScatterCrossSection::Clone(const char *) const { @@ -46,7 +46,7 @@ void PScatterCrossSection::SetNpy(Int_t my_npy) { npy = my_npy; if (pf2) pf2->SetNpy(npy); }; - + Bool_t PScatterCrossSection::MakeVars() { if (qmin < 0) { Error("MakeVars", "Range of the c.m. energy not defined"); @@ -58,8 +58,8 @@ Bool_t PScatterCrossSection::MakeVars() { if (npy > 0) pf2->SetNpy(npy); } - vprimary = makeDynamicData()->GetBatchParticle("_primary"); - vf = makeStaticData()->GetBatchValue("_f"); + vprimary = makeDynamicData()->GetBatchParticle("_primary"); + vf = makeStaticData()->GetBatchValue("_f"); return kTRUE; }; @@ -68,7 +68,7 @@ Bool_t PScatterCrossSection::AddEquation(char *command) { return pf2->Add(command); }; -Bool_t PScatterCrossSection::AddHistogram(TH1 *histo, char *command) { +Bool_t PScatterCrossSection::AddHistogram(TH1 *histo, char *command) { if (!MakeVars()) return kFALSE; return pf2->Add(histo, command); }; @@ -86,7 +86,7 @@ Bool_t PScatterCrossSection::Init(void) { return kFALSE; } - return kTRUE; + return kTRUE; }; Bool_t PScatterCrossSection::Prepare(void) { diff --git a/plugins/scatter_mod/PScatterCrossSection.h b/plugins/scatter_mod/PScatterCrossSection.h index 23d70e2..f78005c 100644 --- a/plugins/scatter_mod/PScatterCrossSection.h +++ b/plugins/scatter_mod/PScatterCrossSection.h @@ -1,6 +1,6 @@ // Author: I. Froehlich // Written: 14.8.2012 -// Revised: +// Revised: #ifndef _PSCATTERCROSSSECTION_H_ #define _PSCATTERCROSSSECTION_H_ @@ -14,7 +14,7 @@ class PScatterCrossSection : public PAngularDistribution { - + public: PScatterCrossSection(); PScatterCrossSection(const Char_t *id, const Char_t *de); @@ -36,18 +36,18 @@ class PScatterCrossSection : public PAngularDistribution { void SetNpx(Int_t my_npx); void SetNpy(Int_t my_npy); - + PF2 *GetFunction(void) {return pf2;}; protected: - + double SamplePolarAngle(double); Double_t qmin,qmax; Double_t costheta, q; PF2 *pf2; - + PParticle *vprimary; Double_t *vf; Bool_t MakeVars(void); diff --git a/plugins/strangeness/PStrangenessPlugin.cc b/plugins/strangeness/PStrangenessPlugin.cc index 6395eab..721c3dd 100644 --- a/plugins/strangeness/PStrangenessPlugin.cc +++ b/plugins/strangeness/PStrangenessPlugin.cc @@ -38,19 +38,19 @@ Bool_t PStrangenessPlugin::ExecCommand(const char *command, Double_t) { if (makeStaticData()->AddParticle(70, "Lambda1405", 1.406) > 0) { makeStaticData()->AddAlias("Lambda1405", "Lambda(1405)"); - + makeStaticData()->SetParticleTotalWidth("Lambda1405", 0.05); makeStaticData()->SetParticleBaryon("Lambda1405", 1); - - - makeStaticData()->AddDecay("Lambda(1405)0 --> Sigma+ + pi-", "Lambda1405", + + + makeStaticData()->AddDecay("Lambda(1405)0 --> Sigma+ + pi-", "Lambda1405", "Sigma+,pi-", .3333 ); - makeStaticData()->AddDecay("Lambda(1405)0 --> Sigma- + pi+", "Lambda1405", + makeStaticData()->AddDecay("Lambda(1405)0 --> Sigma- + pi+", "Lambda1405", "Sigma-,pi+", .3333 ); - makeStaticData()->AddDecay("Lambda(1405)0 --> Sigma0 + pi0", "Lambda1405", + makeStaticData()->AddDecay("Lambda(1405)0 --> Sigma0 + pi0", "Lambda1405", "Sigma0,pi0", .3333 ); - - + + makeStaticData()->AddParticle(71, "Sigma1385+", 1.3828); makeStaticData()->AddAlias("Sigma1385+", "Sigma(1385)+"); makeStaticData()->SetParticleTotalWidth("Sigma1385+", 0.0358); @@ -58,14 +58,14 @@ Bool_t PStrangenessPlugin::ExecCommand(const char *command, Double_t) { makeStaticData()->SetParticleLMass("Sigma1385+", 1.2); makeStaticData()->AddDecay("Sigma(1385)+ --> Lambda + pi+", "Sigma1385+", - "Lambda,pi+", .8815 ); + "Lambda,pi+", .8815 ); makeStaticData()->AddDecay("Sigma(1385)+ --> Sigma+ + pi0", "Sigma1385+", "Sigma+, pi0", .05925); makeStaticData()->AddDecay("Sigma(1385)+ --> Sigma0 + pi+", "Sigma1385+", "Sigma0, pi+", .05925); - - - + + + makeStaticData()->AddParticle(72, "Sigma1385-", 1.3872); makeStaticData()->AddAlias("Sigma1385-", "Sigma(1385)-"); makeStaticData()->SetParticleTotalWidth("Sigma1385-", 0.0394); @@ -73,12 +73,12 @@ Bool_t PStrangenessPlugin::ExecCommand(const char *command, Double_t) { makeStaticData()->SetParticleLMass("Sigma1385-", 1.2); makeStaticData()->AddDecay("Sigma(1385)- --> Lambda + pi-", "Sigma1385-", - "Lambda,pi-", .8815 ); + "Lambda,pi-", .8815 ); makeStaticData()->AddDecay("Sigma(1385)- --> Sigma- + pi0", "Sigma1385-", "Sigma-, pi0", .05925); makeStaticData()->AddDecay("Sigma(1385)- --> Sigma0 + pi-", "Sigma1385-", "Sigma0, pi-", .05925); - + makeStaticData()->AddParticle(73,"Sigma13850", 1.3837); @@ -88,26 +88,26 @@ Bool_t PStrangenessPlugin::ExecCommand(const char *command, Double_t) { makeStaticData()->SetParticleLMass("Sigma13850", 1.2); makeStaticData()->AddDecay("Sigma(1385)0 --> Lambda + pi0", "Sigma13850", - "Lambda,pi0", .87000 ); + "Lambda,pi0", .87000 ); makeStaticData()->AddDecay("Sigma(1385)0 --> Lambda + g", "Sigma13850", - "Lambda,g", .01300 ); + "Lambda,g", .01300 ); makeStaticData()->AddDecay("Sigma(1385)0 --> Sigma+ + pi-", "Sigma13850", "Sigma+, pi-", .05850); makeStaticData()->AddDecay("Sigma(1385)0 --> Sigma- + pi+", "Sigma13850", "Sigma-, pi+", .05850); - + } else { Error("ExecCommand", "PIDs blocked, plugin disabled"); } - (*system_alloc_verbosity) = old; + (*system_alloc_verbosity) = old; } return kTRUE; } - + return kFALSE; } ClassImp(PStrangenessPlugin) - + diff --git a/plugins/strangeness/PStrangenessPlugin.h b/plugins/strangeness/PStrangenessPlugin.h index 11f3ada..d20b8bd 100644 --- a/plugins/strangeness/PStrangenessPlugin.h +++ b/plugins/strangeness/PStrangenessPlugin.h @@ -1,7 +1,7 @@ // Author: I. Froehlich // Written: 12.10.2008 -// Revised: -// +// Revised: +// #ifndef _PSTRANGENESS_PLUGIN_H_ @@ -16,7 +16,7 @@ using namespace std; class PStrangenessPlugin : public PDistributionCollection { - + public: //constructor @@ -24,7 +24,7 @@ class PStrangenessPlugin : public PDistributionCollection { //destructor ~PStrangenessPlugin(); - Bool_t ExecCommand(const char *command, Double_t value); + Bool_t ExecCommand(const char *command, Double_t value); Bool_t Activate(void); private: diff --git a/plugins/tools/PGammaConversion.cc b/plugins/tools/PGammaConversion.cc index 4713952..29efd89 100755 --- a/plugins/tools/PGammaConversion.cc +++ b/plugins/tools/PGammaConversion.cc @@ -2,9 +2,9 @@ // Fast conversion gamma -> e+e- in material // // -// Author: +// Author: // Written: 12/01/2014 -// Revised: +// Revised: // //////////////////////////////////////////////////////// @@ -23,8 +23,8 @@ PGammaConversion::PGammaConversion() { convpar[2] = 0.000359; ep = PParticle("e+"); em = PParticle("e-"); - - for (Int_t i=0; iDelete(); ulep->Delete(); RGen->Delete(); @@ -100,14 +100,14 @@ Float_t PGammaConversion::ConversionXS(Float_t E) { // return total conversion c const Float_t EMass = 5.109990615e-4; // electron mass in GeV if ( E<2.*EMass ) return 0; // unphysical region Float_t Eph = (E<10 ? E : 10.); - + // Coefficients from Geant3 routine GPRSGA const Float_t CPar[18] = {0.87842E-3, -0.19625E-2, 0.12949E-2, -0.20028E-3, 0.12575E-4, -0.28333E-6, -0.10342E-4, 0.17692E-4, -0.82391E-5, 0.13063E-5, -0.90815E-7, 0.23586E-8, -0.45263E-3, 0.11161E-2, -0.86749E-3, 0.21773E-3, -0.20467E-4, 0.65372E-6}; Float_t CC[3] = {0, 0, 0}; Float_t X = log(Eph/EMass); - + // initialising parameters of CC1, CC2, CC3 for (Int_t i=0; i<3; i++) { Float_t D = 1; @@ -117,7 +117,7 @@ Float_t PGammaConversion::ConversionXS(Float_t E) { // return total conversion c D = D*X; } } - + // total cross section for element with Z return (Z*(Z+1.0) * (CC[0] + CC[1]*Z + CC[2]/Z)); } @@ -125,17 +125,17 @@ Float_t PGammaConversion::ConversionXS(Float_t E) { // return total conversion c Float_t PGammaConversion::GetConversionProb(Float_t E, Float_t th, Int_t run = 0) { // return conversion prob for photon of energy E [GeV] and polar angle theta [deg] - if (th<0. || th>90) + if (th<0. || th>90) return 0; // out of HADES acceptance - if (ConvProb >= 1.0) + if (ConvProb >= 1.0) return 1; // convert all - if (ConvProb > 0) - return ConvProb; // use constant conversion probability + if (ConvProb > 0) + return ConvProb; // use constant conversion probability else { - if (run != 2) + if (run != 2) return 0.01 * convpar[0] * (1. + convpar[1]*th + convpar[2]*th*th) * ConversionXS(E); - if (run == 2) - return 0.01 * convpar[0] * (1. + convpar[1]*th + convpar[2]*th*th + + if (run == 2) + return 0.01 * convpar[0] * (1. + convpar[1]*th + convpar[2]*th*th + convpar[3]*th*th*th+convpar[4]*th*th*th*th) * ConversionXS(E); } return 0.; @@ -146,12 +146,12 @@ Double_t PGammaConversion::dSde(Double_t *x, Double_t *par) { // electron energ Double_t Z = par[1]; // average atomic charge of converter material Double_t eps = x[0]/E; // electron fraction of photon energy - if (eps<=0 || eps>=1 || Z<1) + if (eps<=0 || eps>=1 || Z<1) return 0; const Double_t alpha = 1./137.036; // fine structure constant const Double_t me = 0.0005109989; // electron mass in GeV - + Double_t a = pow(alpha*Z,2); Double_t fcZ = alpha*(1/(1+alpha) + 0.20206 - 0.0369*a + 0.0083*a*a - 0.002*a*a*a); // Coulomb correction Double_t FZ = E<0.05 ? 4./3.*log(Z) : 4./3.*log(Z)+4.*fcZ; @@ -176,7 +176,7 @@ Double_t PGammaConversion::dSde(Double_t *x, Double_t *par) { // electron energ } Int_t PGammaConversion::readHist(TString input) { - + if(gSystem->AccessPathName(input.Data())!=0) { Error("readHist()", "File %s not found!", input.Data()); return -1; @@ -200,7 +200,7 @@ Int_t PGammaConversion::readHist(TString input) { nbinTheta = h->GetNbinsZ(); nbinR = h->GetNbinsY(); nbinZ = h->GetNbinsX(); - + if(size == -1) { hdimension = h; @@ -208,7 +208,7 @@ Int_t PGammaConversion::readHist(TString input) { for(Int_t i=0; iGetXaxis()->FindBin(zVertexEvt); - if(bin > hvertexgeom->GetNbinsX()) + if(bin > hvertexgeom->GetNbinsX()) bin = -1; - else + else bin -= 1; return bin; } else return bin; @@ -247,9 +247,9 @@ Int_t PGammaConversion::getThetaBin(Double_t thetadeg) { if(hdimension) { Int_t bin = hdimension->GetZaxis()->FindBin(thetadeg); - if(thetadeg==0||thetadeg>=nbinTheta) + if(thetadeg==0||thetadeg>=nbinTheta) return -1; - else + else return bin; } return -1; @@ -259,11 +259,11 @@ TH2F *PGammaConversion::getHist(Double_t zVertexEvt, Double_t thetadeg) { if(hdimension) { Int_t thbin = getThetaBin(thetadeg); - if(thbin < 0) + if(thbin < 0) return 0; Int_t binVertex = findVertexBin(zVertexEvt); - if(binVertex < 0) + if(binVertex < 0) return 0; return fhzr[binVertex*nbinTheta+thbin] ; @@ -277,16 +277,16 @@ Bool_t PGammaConversion::Modify(PParticle **mstack, int *decay_done, int *num, i const Double_t R2D = 57.295780; // rad to deg const Double_t me = 0.0005109989; // electron mass in GeV - + int cur = *num; int gamma_id = makeStaticData()->GetParticleID("g"); - + // cout << cur << " " << mstack[0]->ID() << endl; - + for (int i=0; iHasID(gamma_id) && mstack[i]->IsActive()) { // this is a photon - + if ((*num) == stacksize) { Warning("Modify", "stacksize reached"); return kFALSE; @@ -309,10 +309,10 @@ Bool_t PGammaConversion::Modify(PParticle **mstack, int *decay_done, int *num, i */ // Int_t mesonId = track->GetParentId(); - if (Ephot < 2*me) + if (Ephot < 2*me) return kFALSE; Int_t index = int(Ephot/0.01); // select energy slice of 0.01 GeV/c - if (index < 0) + if (index < 0) return kFALSE; index = min(index, NEFUNCS-1); @@ -392,31 +392,31 @@ Bool_t PGammaConversion::Modify(PParticle **mstack, int *decay_done, int *num, i //---------------------------------- // Convert vertex into target num TH2F *hzr = getHist(vertex.Z(), thphot); - + if(!hzr) { Error("Modify()", "hzr at theta %f and vertex %f not found !", thphot, vertex.Z()); continue; } - + Double_t z,r; hzr->GetRandom2(z, r); - + if(!TMath::Finite(z) || !TMath::Finite(r)) { ep.SetVertex(0, 0, 10000, 0); em.SetVertex(0, 0, 10000, 0); - } else { + } else { Double_t phi = gRandom->Rndm()*2*TMath::Pi(); Double_t x = cos(phi)*r; Double_t y = sin(phi)*r;; ep.SetVertex(x, y, z, 0); - em.SetVertex(x, y, z, 0); - - cout<<" x " << x << " y " << y << " phi " << phi*TMath::RadToDeg() << - " r " << r << " th " << thphot << endl; + em.SetVertex(x, y, z, 0); + + cout<<" x " << x << " y " << y << " phi " << phi*TMath::RadToDeg() << + " r " << r << " th " << thphot << endl; } } else { ep.SetVertex(x1, y1, z1, 0); - em.SetVertex(x1, y1, z1, 0); + em.SetVertex(x1, y1, z1, 0); } *(mstack[*num]) = ep; @@ -424,9 +424,9 @@ Bool_t PGammaConversion::Modify(PParticle **mstack, int *decay_done, int *num, i *(mstack[*num]) = em; (*num)++; decay_done[i] = 1; - } + } } - + return kTRUE; } diff --git a/plugins/tools/PGammaConversion.h b/plugins/tools/PGammaConversion.h index c9532d1..6305cd8 100755 --- a/plugins/tools/PGammaConversion.h +++ b/plugins/tools/PGammaConversion.h @@ -1,6 +1,6 @@ // Author: // Written: 12/01/2014 -// Modified: +// Modified: // PGammaConversion Class Header #ifndef _PGAMMACONVERSION_H_ @@ -53,12 +53,12 @@ class PGammaConversion: public PBulkInterface { TH2F *getHist(Double_t zVertexEvt, Double_t thetadeg); //------------------------------------ - + protected: - - + + public: - + PGammaConversion(); PGammaConversion(Float_t Z, Float_t p,Int_t run); ~PGammaConversion(); @@ -71,12 +71,12 @@ class PGammaConversion: public PBulkInterface { void SetVertex(Double_t x, Double_t y, Double_t z) { x1 = x; y1 = y; z1 = z; }; - + Bool_t Modify(PParticle **stack, int *decay_done, int *num, int stacksize); //bulk interface ClassDef(PGammaConversion, 0) // Fast post processing gamma conversion in material }; -#endif +#endif diff --git a/plugins/w_decays/POmega3Pi.cc b/plugins/w_decays/POmega3Pi.cc index bed9115..c087ff8 100644 --- a/plugins/w_decays/POmega3Pi.cc +++ b/plugins/w_decays/POmega3Pi.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////// -// +// // Decay w -> pi+ pi- pi0 // // References: @@ -7,8 +7,8 @@ // S. Leupold, (Frankfurt U.) , M.F.M. Lutz, (Darmstadt, GSI) // Jul 2008. 7pp. // Published in Eur.Phys.J.A39:205-212,2009. -// e-Print: arXiv:0807.4686 [hep-ph] -// +// e-Print: arXiv:0807.4686 [hep-ph] +// // Authors: I. Froehlich, T. Scheib and S. Leupold ///////////////////////////////////////////////////////////////////// @@ -26,7 +26,7 @@ ClassImp(POmega3Pi) POmega3Pi::POmega3Pi() { primary = NULL; - parent = NULL; + parent = NULL; }; POmega3Pi::POmega3Pi(const Char_t *id, const Char_t *de) : @@ -43,7 +43,7 @@ PDistribution *POmega3Pi::Clone(const char *) const { }; Bool_t POmega3Pi::Init(void) { - + //looking for primary. This is mandatory primary = GetParticle("primary"); if (!primary) { @@ -64,7 +64,7 @@ Bool_t POmega3Pi::Init(void) { int side = 0; for (int i=0; i max) { Warning("IsNotRejected", "Dalitz factor %f > max %f", factor, max); @@ -112,14 +112,14 @@ Bool_t POmega3Pi::IsNotRejected(void) { Warning("IsNotRejected", "Dalitz factor max not set"); } max = factor*1.02; - } + } if (factor < 0) { return kFALSE; - } + } - if (((factor/max)) > PUtils::sampleFlat()) { - return kTRUE; + if (((factor/max)) > PUtils::sampleFlat()) { + return kTRUE; } return kFALSE; @@ -140,51 +140,51 @@ double POmega3Pi::diffgam(double M00, double M01) { TComplex h1, h2, h3, addh; // phase space, returned variable double p, dg; - + TComplex a,b,c,d,e,ff; //Take Pluto build-in rho propagator if (RhoPropagator == NULL) { RhoPropagator = makeDynamicData()->GetParticleSecondaryModel("rho0", "propagator"); - if (RhoPropagator == NULL) + if (RhoPropagator == NULL) Fatal ("diffgam", "RhoPropagator not defined"); } - + mv = 0.78; hp = 0.304; ha = 2.1; f = 0.09; mpi = 0.14; mom = 0.78; - + M02 = -M00 - M01 + TMath::Power(mom,2) + 3*TMath::Power(mpi,2); - - p = -1./3.*((TMath::Power(M00,2)*M01)/4. + (M00*TMath::Power(M01,2))/4. - - (M00*M01*TMath::Power(mom,2))/4. - - (3*M00*M01*TMath::Power(mpi,2))/4. + (TMath::Power(mom,4)*TMath::Power(mpi,2))/4. - + + p = -1./3.*((TMath::Power(M00,2)*M01)/4. + (M00*TMath::Power(M01,2))/4. + - (M00*M01*TMath::Power(mom,2))/4. - + (3*M00*M01*TMath::Power(mpi,2))/4. + (TMath::Power(mom,4)*TMath::Power(mpi,2))/4. - (TMath::Power(mom,2)*TMath::Power(mpi,4))/2. + TMath::Power(mpi,6)/4.); - - - + + + a = M00 + TMath::Power(mom,2); h1 = RhoPropagator->GetAmplitude(&M00)*a.Re(); - + b = M01 + TMath::Power(mom,2); h2 = RhoPropagator->GetAmplitude(&M01)*b.Re(); - + c = M02 + TMath::Power(mom,2); h3 = RhoPropagator->GetAmplitude(&M02)*c.Re(); - + d = h1+h2; addh = d+h3; - + e = ha*hp*mv / (4.*TMath::Power(f,3)*mom); cc = addh * e; - + ff = p*cc*TComplex::Conjugate(cc); dg = ff/(8.*pi*pi*pi*32.*mom*mom*mom); - + return dg; }; diff --git a/plugins/w_decays/POmega3Pi.h b/plugins/w_decays/POmega3Pi.h index 2165515..47e614e 100644 --- a/plugins/w_decays/POmega3Pi.h +++ b/plugins/w_decays/POmega3Pi.h @@ -1,6 +1,6 @@ // Author: I. Froehlich & T. Scheib // Written: 17.01.2010 -// Revised: +// Revised: #ifndef _POMEGA3PI_H_ #define _POMEGA3PI_H_ @@ -13,14 +13,14 @@ #include "PPropagator.h" class POmega3Pi : public PDistribution { - - public: + + public: POmega3Pi(); POmega3Pi(const Char_t *id, const Char_t *de); PDistribution* Clone(const char *delme=NULL) const; - Bool_t Init(void); + Bool_t Init(void); Bool_t Prepare(void); Bool_t Finalize(void); Bool_t IsNotRejected(void); @@ -30,15 +30,15 @@ class POmega3Pi : public PDistribution { max = x; }; - - private: + + private: PParticle *side_particle[2]; //2 additional particles PParticle *primary; PParticle *parent; Double_t max; - + double diffgam(double M00, double M01); PChannelModel *RhoPropagator; diff --git a/src/PAdaptiveMesh.cc b/src/PAdaptiveMesh.cc index 401b239..28c1769 100644 --- a/src/PAdaptiveMesh.cc +++ b/src/PAdaptiveMesh.cc @@ -1,21 +1,21 @@ //////////////////////////////////////////////////////// // An adaptive mesh for enveloping the TF1 function -// Used for fast random sapmling when the ROOT +// Used for fast random sapmling when the ROOT // GetRandom function cannot be used // The build-in ROOT random sampling has really big -// disadvantages when parameters (e.g. kinetic energy of the +// disadvantages when parameters (e.g. kinetic energy of the // parent) are not stable and the shape of the function is changes -// In this case ROOT re-creates the polymonials and this +// In this case ROOT re-creates the polymonials and this // takes AGES! // // The adaptive mesh method here is based on the rejection -// meshod, the test function is a step function which is +// meshod, the test function is a step function which is // adaptable: If the function is steep, more bins are created -// +// // // Author: I. Froehlich // Written: 1.02.2003 -// Revised: +// Revised: // //////////////////////////////////////////////////////// @@ -44,7 +44,7 @@ PAdaptiveMesh::~PAdaptiveMesh() { } void PAdaptiveMesh::ReCalc() { - + if (sub_size) { area_size = 0; for (int i=0; iGetRandomBin(f_random - sub_area[i-1]); @@ -116,14 +116,14 @@ void PAdaptiveMesh::Divide(Int_t num, Int_t my_layer) { Double_t min = x_min+((x_max- x_min)/(Double_t)num)*(Double_t)i; Double_t max = min+((x_max- x_min)/(Double_t)num); Double_t ymax = tf1->Eval(min); - if (tf1->Eval(max)> ymax) + if (tf1->Eval(max)> ymax) ymax = tf1->Eval(max); if (ymax < 0) ymax = 0; sub_tree[i] = new PAdaptiveMesh(min, max, ymax); sub_tree[i]->SetTF1(tf1); - + layer = my_layer; if (layer > 0) { diff --git a/src/PAdaptiveMeshN.cc b/src/PAdaptiveMeshN.cc index 9564b98..011383e 100644 --- a/src/PAdaptiveMeshN.cc +++ b/src/PAdaptiveMeshN.cc @@ -1,22 +1,22 @@ //////////////////////////////////////////////////////// // An adaptive mesh for enveloping the GetWeight() function // of a PChannelModel -// Used for fast random sapmling when the ROOT +// Used for fast random sapmling when the ROOT // GetRandom function cannot be used // The build-in ROOT random sampling has really big -// disadvantages when parameters (e.g. kinetic energy of the +// disadvantages when parameters (e.g. kinetic energy of the // parent) are not stable and the shape of the function is changes -// In this case ROOT re-creates the polymonials and this +// In this case ROOT re-creates the polymonials and this // takes AGES! // // The adaptive mesh method here is based on the rejection -// meshod, the test function is a step function which is +// meshod, the test function is a step function which is // adaptable: If the function is steep, more bins are created -// +// // // Author: I. Froehlich // Written: 1.02.2008 -// Revised: +// Revised: // //////////////////////////////////////////////////////// @@ -32,7 +32,7 @@ using namespace std; -PAdaptiveMeshN::PAdaptiveMeshN(UInt_t my_pattern, Int_t my_max_dimensions, +PAdaptiveMeshN::PAdaptiveMeshN(UInt_t my_pattern, Int_t my_max_dimensions, PChannelModel *my_model, Double_t my_y_max) { // Constructor for the adaptive mesh // The "pattern" defines which dimensions of the GetWeight method @@ -44,21 +44,21 @@ PAdaptiveMeshN::PAdaptiveMeshN(UInt_t my_pattern, Int_t my_max_dimensions, // "my_y_max" is the starting value for the rejection limit. // It will be dynamically updated - but it should not be too far from the // max value of the GetWeight - - SetDefaults(my_pattern, my_max_dimensions, + + SetDefaults(my_pattern, my_max_dimensions, my_model, my_y_max); } PAdaptiveMeshN::PAdaptiveMeshN() { } -void PAdaptiveMeshN::SetDefaults(UInt_t my_pattern, Int_t my_max_dimensions, +void PAdaptiveMeshN::SetDefaults(UInt_t my_pattern, Int_t my_max_dimensions, PChannelModel *my_model, Double_t my_y_max) { if (my_max_dimensions > MAX_DIMENSIONS) { Fatal("SetDefaults", "my_max_dimensions>MAX_DIMENSIONS"); } - + model = my_model; pattern = my_pattern; y_max = my_y_max; @@ -67,7 +67,7 @@ void PAdaptiveMeshN::SetDefaults(UInt_t my_pattern, Int_t my_max_dimensions, variable_dimensions = 0; for (int i=0; i> i) & 0x1) == 0x1) { + if (((pattern >> i) & 0x1) == 0x1) { variable_dimensions++; x_max[i] = 0.; x_min[i] = 0.; @@ -76,7 +76,7 @@ void PAdaptiveMeshN::SetDefaults(UInt_t my_pattern, Int_t my_max_dimensions, } sub_size[i] = 0; } - is_divided = 0; + is_divided = 0; total_sub_size = 0; threshold_abs = 0.1; threshold_diff = 1.1; @@ -84,7 +84,7 @@ void PAdaptiveMeshN::SetDefaults(UInt_t my_pattern, Int_t my_max_dimensions, sub_tree = NULL; sub_area = NULL; - + ReCalc(); }; @@ -92,20 +92,20 @@ PAdaptiveMeshN::~PAdaptiveMeshN() { }; void PAdaptiveMeshN::ReCalc() { - + area_size = 0.; - for (int i=0; i> i) & 0x1) == 0x1) { + for (int i=0; i> i) & 0x1) == 0x1) { area_size *= (x_max[i]-x_min[i]); } //cout << x_min << "," << x_max<< endl; @@ -115,7 +115,7 @@ void PAdaptiveMeshN::ReCalc() { PAdaptiveMeshN *PAdaptiveMeshN::GetRandomBin(Double_t f_random) { if (!total_sub_size) return this; - + for (int i=0; i> i) & 0x1) == 0x1) { - array[i] = PUtils::sampleFlat()*(bin->GetXMax(i)-bin->GetXMin(i)) + if (((pattern >> i) & 0x1) == 0x1) { + array[i] = PUtils::sampleFlat()*(bin->GetXMax(i)-bin->GetXMin(i)) + bin->GetXMin(i); } } @@ -168,7 +168,7 @@ Bool_t PAdaptiveMeshN::GetRandom() { goto repeat2; } - + //if (num>10) return kTRUE; if (y_random > (bin->GetYMax()*PUtils::sampleFlat())) { @@ -176,7 +176,7 @@ Bool_t PAdaptiveMeshN::GetRandom() { // cout << "num: " << num << endl; return kTRUE; } - + //cout << x_random << ":" << bin->GetYMax() << ":" << bin->GetArea() << endl; //printf("%f sec\n",timer.RealTime());timer.Continue(); @@ -214,11 +214,11 @@ void PAdaptiveMeshN::Divide(Int_t num, Int_t my_layer) { min_atmax[MAX_DIMENSIONS], // "left" side max_atmin[MAX_DIMENSIONS], min_atmin[MAX_DIMENSIONS]; // "right" side - + for (int i=0; i> i) & 0x1) == 0x1) { + if (((pattern >> i) & 0x1) == 0x1) { //outer loop over variable dimensions - + //cout << "checking dim. " << i << endl; //now try to get all possible min/max combinations of the remaining @@ -232,12 +232,12 @@ void PAdaptiveMeshN::Divide(Int_t num, Int_t my_layer) { //next loop over the other variable dimensions //for each dimension we take the min/max according //to the mm_pattern - + Int_t pattern_position = 0; FixArray(); for (int j=0; j> j) & 0x1) == 0x1) && (i!=j)){ - + //cout << "setting dim. " << j << endl; Int_t local_bit = (mm_pattern>>pattern_position) & 0x1; if (local_bit) @@ -282,7 +282,7 @@ void PAdaptiveMeshN::Divide(Int_t num, Int_t my_layer) { //Now we try to get an answer if the current dimension should be divided at all Double_t diff1 = 0.; - if (min_atmin[i]) + if (min_atmin[i]) diff1 = max_atmax[i]/min_atmin[i]; Double_t abs_diff1 = fabs(max_atmax[i]-min_atmin[i]); Double_t diff2 = 0.; @@ -313,7 +313,7 @@ void PAdaptiveMeshN::Divide(Int_t num, Int_t my_layer) { sub_tree = new PAdaptiveMeshN[total_sub_size]; for (int i=0; i= sub_size[current_dimension]) { - - for (int j=0;j<=current_dimension;j++) + + for (int j=0;j<=current_dimension;j++) sub_mesh_pos[j] = 0; - + current_dimension++; sub_mesh_pos[current_dimension]++; } - + current_dimension = 0; } ReCalcYMax(); - + if (layer > 0) { //cout << "sub-divide" << endl; for (int i=0; i> j) & 0x1) == 0x1)) { - cout << " x_min[" << j << "]=" - << x_min[j] - << " x_max[" << j << "]=" + cout << " x_min[" << j << "]=" + << x_min[j] + << " x_max[" << j << "]=" << x_max[j]; } } cout << " y_max=" << y_max << endl; - for (int i=0; iGetWeight(array); - if (local_max > y_max) + if (local_max > y_max) y_max = local_max; } @@ -434,7 +434,7 @@ void PAdaptiveMeshN::ReCalcYMax(void) { } } Double_t local_max = model->GetWeight(array); - if (local_max > y_max) + if (local_max > y_max) y_max = local_max; } @@ -447,7 +447,7 @@ void PAdaptiveMeshN::ReCalcYMax(void) { // for (int i=0;iDraw(); // } - + // } else { // if (!line) // line = new TLine(x_min, y_max, x_max, y_max); diff --git a/src/PAngularDistribution.cc b/src/PAngularDistribution.cc index f8cc9c7..2188581 100644 --- a/src/PAngularDistribution.cc +++ b/src/PAngularDistribution.cc @@ -19,7 +19,7 @@ // // // If "align" is set, the reference will be the composite particle -// of the primary + align +// of the primary + align // This can be used for the alignment of two particles // // The 2nd parameter for TF2 is the mass of the reference @@ -30,8 +30,8 @@ // Author: I. Froehlich // Written: 01.10.2006 // Revised: 24.10.2010 -// -// +// +// ///////////////////////////////////////////////////////////////////// @@ -83,11 +83,11 @@ PAngularDistribution::PAngularDistribution(const Char_t *id,const Char_t *de) : #else fParams = new TF1Parameters(fNpar); #endif - + fParErrors[0] = 0; fParMin[0] = 0; fParMax[0] = 0; - + fParams->SetParName(0, "Mass reference for 2-dim angular distributions"); fParams->SetParameter(0, 0); @@ -110,7 +110,7 @@ PAngularDistribution::PAngularDistribution(const Char_t *id,const Char_t *de) : fParams[0]=0; #endif - fNpx = 1000; + fNpx = 1000; fXmin = -1; fXmax = 1; @@ -146,7 +146,7 @@ Bool_t PAngularDistribution::Init(void) { mass_reference = GetParticle("mass_reference"); ang_reference = GetParticle("ang_reference"); align = GetParticle("align"); - + if (align) {//check if align is a daughter or parent if ((current_flag == PARTICLE_LIST_PARENT) || (current_flag == PARTICLE_LIST_DAUGHTER)) @@ -171,11 +171,11 @@ Bool_t PAngularDistribution::Init(void) { } if (!reference) reference = parent; - + for (int i=0; iPrint(); // for (int i=0;iPrint(); - - if (!Rotate(1)) return kFALSE; - + + if (!Rotate(1)) return kFALSE; + // cout << "---" << endl; // primary_tmp.Print(); // for (int i=0;iPrint(); // cout << "*********************" << endl; - + //now we rotate all daughters such that primary_tmp is pointing to the z-axis double prim_phi = primary_tmp.Phi(); double prim_theta = primary_tmp.Theta(); #if 1 - + //primary->Print(); // primary_tmp.Print(); // for (int i=0;iPrint(); @@ -256,7 +256,7 @@ Bool_t PAngularDistribution::SampleAngle(void) { } //sample the polar angle - double polar_angle = acos(SamplePolarAngle(0.5*(cos(prim_theta)+1))); + double polar_angle = acos(SamplePolarAngle(0.5*(cos(prim_theta)+1))); //2r=cos_theta-1 was the definition in the baryon_cos alg of the original PChannel //polar_angle=prim_theta; //cout << polar_angle << endl; @@ -277,13 +277,13 @@ Bool_t PAngularDistribution::SampleAngle(void) { daughter[i]->RotateZ(prim_phi); #endif //rotate back to the old frame - if (!RotateBack(1)) return kFALSE; + if (!RotateBack(1)) return kFALSE; //if all worked out we can copy the primary : *primary = primary_tmp; - + direct_sampling_done = kTRUE; - + return kTRUE; } @@ -294,10 +294,10 @@ Bool_t PAngularDistribution::Rotate(Int_t rotate_daughters) { //are rotated as well. This is needed for direct samplings Int_t loc_n_daughters = n_daughters * rotate_daughters; - + primary_tmp = primary; //particle under investigation. Make better a copy primary_tmp.Boost(parent->BoostVector()); // go back to lab frame - for (int i=0; iBoost(parent->BoostVector()); PParticle compound(primary_tmp); PParticle atmp; @@ -328,7 +328,7 @@ Bool_t PAngularDistribution::Rotate(Int_t rotate_daughters) { } else { primary_tmp.Boost(-reference->BoostVector()); for (int i=0; iBoost(-reference->BoostVector()); + daughter[i]->Boost(-reference->BoostVector()); } } } else { // first go to 2nd reference (e.g. base_reference=eta), then @@ -336,7 +336,7 @@ Bool_t PAngularDistribution::Rotate(Int_t rotate_daughters) { reference_tmp = reference; primary_tmp.Boost(-base_reference->BoostVector()); // daughter in base_reference - ang_tmp.Boost(-base_reference->BoostVector()); + ang_tmp.Boost(-base_reference->BoostVector()); reference_tmp.Boost(-base_reference->BoostVector()); // reference in base_reference for (int i=0; iBoost(-base_reference->BoostVector()); @@ -346,7 +346,7 @@ Bool_t PAngularDistribution::Rotate(Int_t rotate_daughters) { primary_tmp.RotateY(-reference_tmp.Theta()); primary_tmp.Boost(0, 0, -reference_tmp.Beta()); ang_tmp.RotateZ(-reference_tmp.Phi()); - ang_tmp.RotateY(-reference_tmp.Theta()); + ang_tmp.RotateY(-reference_tmp.Theta()); ang_tmp.Boost(0, 0, -reference_tmp.Beta()); for (int i=0; iRotateZ(-reference_tmp.Phi()); @@ -355,11 +355,11 @@ Bool_t PAngularDistribution::Rotate(Int_t rotate_daughters) { } } else { primary_tmp.Boost(-reference_tmp.BoostVector()); // go to reference - for (int i=0; iBoost(-reference_tmp.BoostVector()); } } - + //finally take ang_reference into account if (ang_reference && rotate) { primary_tmp.RotateZ(-ang_tmp.Phi()); // rotate daughter reference onto z-axis @@ -367,7 +367,7 @@ Bool_t PAngularDistribution::Rotate(Int_t rotate_daughters) { for (int i=0; iRotateZ(-ang_tmp.Phi()); daughter[i]->RotateY(-ang_tmp.Theta()); - } + } } return kTRUE; @@ -384,12 +384,12 @@ Bool_t PAngularDistribution::RotateBack(Int_t rotate_daughters) { for (int i=0; iRotateY(ang_tmp.Theta()); daughter[i]->RotateZ(ang_tmp.Phi()); - } + } } if (base_reference==NULL) { // no 2nd reference frame if (rotate) { - primary_tmp.Boost(0, 0, reference->Beta()); // go to 1st reference frame + primary_tmp.Boost(0, 0, reference->Beta()); // go to 1st reference frame primary_tmp.RotateY(reference->Theta()); primary_tmp.RotateZ(reference->Phi()); for (int i=0; iBoost(0, 0, reference_tmp.Beta()); daughter[i]->RotateY(reference_tmp.Theta()); daughter[i]->RotateZ(reference_tmp.Phi()); - } + } primary_tmp.Boost(base_reference->BoostVector()); // daughter in base_reference reference_tmp.Boost(base_reference->BoostVector()); // reference in base_reference for (int i=0; iBoost(base_reference->BoostVector()); + daughter[i]->Boost(base_reference->BoostVector()); } } primary_tmp.Boost(-parent->BoostVector()); // go back to parent frame - for (int i=0; iBoost(-parent->BoostVector()); return kTRUE; } @@ -432,11 +432,11 @@ Bool_t PAngularDistribution::IsNotRejected(void) { if (direct_sampling_done) return kTRUE; Double_t tmp_c0, f; - + if (!Rotate(0)) return kFALSE; tmp_c0 = cos(primary_tmp.Theta()); - + if ((reflection_symmetry) && (tmp_c0<0.)) { tmp_c0 = -tmp_c0; } @@ -458,9 +458,9 @@ Bool_t PAngularDistribution::IsNotRejected(void) { Warning("IsNotRejected", "[%s] Weight > max, new max is %lf", GetName(), weight_max); } - if ((f/weight_max) > PUtils::sampleFlat()) + if ((f/weight_max) > PUtils::sampleFlat()) return kTRUE; // sample now distribution - + return kFALSE; }; @@ -491,7 +491,7 @@ Double_t PAngularDistribution::EvalPar(const Double_t *x, const Double_t *params } return Eval(x[0]); } - + Double_t PAngularDistribution::Eval(Double_t x, Double_t, Double_t, Double_t) const { if ((reflection_symmetry) && (x<0.)) x = -x; @@ -506,7 +506,7 @@ void PAngularDistribution::Print(const Option_t *) const { BasePrint(); cout << " Formula used: "; - if (angles1) { + if (angles1) { if (angles1->GetExpFormula() != TString("")) cout << angles1->GetExpFormula(); else cout << ""; } else if (angles2) { @@ -515,7 +515,7 @@ void PAngularDistribution::Print(const Option_t *) const { } else if (anglesg) { cout << ""; } else cout << "NONE"; - + cout << endl; } diff --git a/src/PAnyDistribution.cc b/src/PAnyDistribution.cc index 51b7b39..911f1b3 100644 --- a/src/PAnyDistribution.cc +++ b/src/PAnyDistribution.cc @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////// // -// Generic distribution to change any kind of distribution +// Generic distribution to change any kind of distribution // by using the batch script language to define equations // // This is a rejection method. It works as an afterburner @@ -8,7 +8,7 @@ // // Usage: // 1.) Define a template, e.g.: -// PAnyDistribution* decay = +// PAnyDistribution* decay = // new PAnyDistribution("name","description"); // decay->Add("...., parent"); // decay->Add("...., daughter"); @@ -21,11 +21,11 @@ // be chosen such, that during runtime (or even better: during Preheating) the statistic // is sufficiently filled // TH1F * cache = new TH1F ("cache","......",...); -// (2- or 3-dim histograms are possible as well - if one has enough time!) +// (2- or 3-dim histograms are possible as well - if one has enough time!) // // 3.) Add the equation to fill the cache: // decay->AddEquation(cache,"_x = ...(calculate something here)...;"); -// Here it is important to know that the daughters are in +// Here it is important to know that the daughters are in // their rest frame (i.e. the parent). // But the parent itself is in lab frame. // The parent is indicated by "_parent" @@ -39,7 +39,7 @@ // decay->AddEquation("_f = ...(calculate something here)..."); // // 5.) Remember, AnyDistribution is a rejection method. Therefore -// it can happen, that parts of the phase space, where _f has a +// it can happen, that parts of the phase space, where _f has a // large probability, is not well populated by the generated events. // In this case, the event loop will run forever, as Pluto tries // to match the shape defined by _f. @@ -50,7 +50,7 @@ // // 6.) Add this model to the Pluto data base: // makeDistributionManager()->Add(decay); -// +// // An example can be found in macros/demo_PAnyDistribution.C // // Author: I. Froehlich @@ -95,12 +95,12 @@ PDistribution *PAnyDistribution::Clone(const char *) const { void PAnyDistribution::MakeVars() { if (!projector) projector = new PProjector(); - vparent = makeDynamicData()->GetBatchParticle("_parent"); - vf = makeStaticData()->GetBatchValue("_f"); + vparent = makeDynamicData()->GetBatchParticle("_parent"); + vf = makeStaticData()->GetBatchValue("_f"); - x = makeStaticData()->GetBatchValue("_x"); - y = makeStaticData()->GetBatchValue("_y"); - z = makeStaticData()->GetBatchValue("_z"); + x = makeStaticData()->GetBatchValue("_x"); + y = makeStaticData()->GetBatchValue("_y"); + z = makeStaticData()->GetBatchValue("_z"); }; Bool_t PAnyDistribution::AddEquation(const char *command) { @@ -145,16 +145,16 @@ Bool_t PAnyDistribution::Init(void) { Warning("Init", "Parent not found"); return kFALSE; } - + //Now get all daughters for (int i=0; iBoost(-parent->BoostVector()); + //vparent->Boost(-parent->BoostVector()); stack[0] = vparent; for (int i=0; iExecute(); Int_t num = daughter_pos + 1; - projector->Modify((PParticle **)&stack,(int *)&decay_done, &num, + projector->Modify((PParticle **)&stack,(int *)&decay_done, &num, ANY_DISTRIBUTION_MAX_DAUGHTERS); factor = *vf; } else { Fatal("IsNotRejected", "No equation set"); } - + Double_t myres = 0.; if (cache1) { int bin = cache1->FindBin(*x); @@ -207,8 +207,8 @@ Bool_t PAnyDistribution::IsNotRejected(void) { int bin = cache3->FindBin(*x,*y,*z); myres = cache3->GetBinContent(bin); if (cache3->GetEntries()) myres /= cache3->GetEntries(); - } - + } + Double_t reduction_factor = 1.; if (myres) { reduction_factor /= myres; @@ -222,9 +222,9 @@ Bool_t PAnyDistribution::IsNotRejected(void) { max = factor * 1.1; Warning("IsNotRejected", "Factor > max, increased (%f)",max); } - - if ((factor/max) > PUtils::sampleFlat()) return kTRUE; // sample now - + + if ((factor/max) > PUtils::sampleFlat()) return kTRUE; // sample now + return kFALSE; }; diff --git a/src/PArray.cc b/src/PArray.cc index 75d1d72..e61c00a 100644 --- a/src/PArray.cc +++ b/src/PArray.cc @@ -1,11 +1,11 @@ //////////////////////////////////////////////////////// -// Small tool class to convert text files into TGraph +// Small tool class to convert text files into TGraph // objects -// +// // // Author: I. Froehlich // Written: 1.08.2007 -// Revised: +// Revised: // //////////////////////////////////////////////////////// @@ -52,7 +52,7 @@ Bool_t PArray::OpenFile(const char *filename, Int_t, Int_t num_columns, Double_t Error("OpenFile", "Cannot open file %s", filename); return kFALSE; } - + Int_t ret = 0; while (ret != EOF) { if (num_columns == 5) { @@ -91,7 +91,7 @@ Bool_t PArray::OpenFile(const char *filename, Int_t, Int_t num_columns, Double_t real_size_1d += row; Info("OpenFile", "%d lines read from file %s", row, filename); - + fclose(fp); return kTRUE; } @@ -99,7 +99,7 @@ Bool_t PArray::OpenFile(const char *filename, Int_t, Int_t num_columns, Double_t TGraph *PArray::GetTGraph(Int_t xcol, Int_t ycol) { //NB: TGraph is not killed, it must be deleted in the app. - + if (dim == 1) { if (!vals_1d[0]) { Error ("GetTGraph", "No (1dim) file opened"); @@ -114,7 +114,7 @@ TGraph *PArray::GetTGraph(Int_t xcol, Int_t ycol) { TGraph2D *PArray::GetTGraph2D(Int_t xcol, Int_t ycol) { //NB: TGraph is not killed, it must be deleted in the app. - + if (dim == 2) { if (!vals_1d[0]) { Error ("GetTGraph", "No (2dim) files opened"); diff --git a/src/PBatch.cc b/src/PBatch.cc index ead84cc..c57a64e 100644 --- a/src/PBatch.cc +++ b/src/PBatch.cc @@ -14,7 +14,7 @@ // has been simplified to make it more readable, and an interface // to the particle input (and maybe to the database in a later step) // has been foreseen -// +// // As usual we have assignments, operators, functions and methods // Each operation can be seperated by a semicolon (;) // @@ -23,7 +23,7 @@ // This means that the double _x (which is automatically constructed) // is assigned to the mass of the particle [p,1] // Particle in brackets are the only allowed use without instantiantion -// as they are (hopefully) filled by the input. The additional number +// as they are (hopefully) filled by the input. The additional number // can be used for ordering information // // + and - operation @@ -35,7 +35,7 @@ // CAVEAT: Do _not_ use object name which are // already assigned to particles in the data base, e.g. // pi0=[pi0] is not allowed, use _pi0=[pi0] instead -// +// // Brackets: Objects can be nested: // _x = ([p,1] + [p,2])->M(); // ...makes the same as the 2 lines above @@ -74,17 +74,17 @@ // // A very complex example: Look for the helicity distribution // of the e+e- pair in the eta Dalitz decay -// _eta=[eta]; _ep=[e+]; _em=[e-]; -// _eta->Boost([p + p]); _em->Boost([p + p]); _ep->Boost([p + p]); -// _ep->Rot(_eta); _em->Rot(_eta); _eta->Rot(_eta) ; -// _ep->Boost(_eta); _em->Boost(_eta); dil=_ep+_em; -// _ep->Rot(dil); _em->Rot(dil); dil->Rot(dil); _ep->Boost(dil); _em->Boost(dil) ; +// _eta=[eta]; _ep=[e+]; _em=[e-]; +// _eta->Boost([p + p]); _em->Boost([p + p]); _ep->Boost([p + p]); +// _ep->Rot(_eta); _em->Rot(_eta); _eta->Rot(_eta) ; +// _ep->Boost(_eta); _em->Boost(_eta); dil=_ep+_em; +// _ep->Rot(dil); _em->Rot(dil); dil->Rot(dil); _ep->Boost(dil); _em->Boost(dil) ; // s1= _ep->Theta(); _x = cos(s1) // // // Author: I. Froehlich // Written: 14.02.2008 -// Revised: +// Revised: // //////////////////////////////////////////////////////// @@ -105,8 +105,8 @@ #include Int_t PBatch::stack_num_pos = 0; -Int_t PBatch::stack_num_batch[MAX_STACK_GOSUB], - PBatch::stack_num_bulk[MAX_STACK_GOSUB], +Int_t PBatch::stack_num_batch[MAX_STACK_GOSUB], + PBatch::stack_num_bulk[MAX_STACK_GOSUB], PBatch::stack_num_command[MAX_STACK_GOSUB]; PBatch &fBatch() { @@ -121,7 +121,7 @@ PBatch *makeGlobalBatch() { PBatch::PBatch() { makeStaticData(); - + command_pointer = last_command_pointer = 0; method_pointer = 0; @@ -140,38 +140,38 @@ PBatch::PBatch() { pid_param = makeDataBase()->GetParamInt("batch_pid"); Int_t batch_position_param = makeDataBase()->GetParamInt("batch_position"); - if (batch_particle_param < 0) - batch_particle_param = makeDataBase()->MakeParamTObj("batch_particle", + if (batch_particle_param < 0) + batch_particle_param = makeDataBase()->MakeParamTObj("batch_particle", "PParticle storage for batch"); - if (batch_value_param < 0) - batch_value_param = makeDataBase()->MakeParamDouble("batch_value", + if (batch_value_param < 0) + batch_value_param = makeDataBase()->MakeParamDouble("batch_value", "Value storage for batch"); - if (batch_models_param < 0) + if (batch_models_param < 0) batch_models_param = makeDataBase()->MakeParamTObj("batch_models", "Storage for distribution objects"); - if (pid_param < 0) + if (pid_param < 0) pid_param = makeDataBase()->MakeParamInt("batch_pid", "PID for batch"); - if (batch_position_param < 0) + if (batch_position_param < 0) makeDataBase()->MakeParamInt("batch_position", "PID position for batch"); batch_histogram_param = makeDataBase()->GetParamTObj("batch_histogram"); - if (batch_histogram_param < 0) + if (batch_histogram_param < 0) batch_histogram_param = makeDataBase()->MakeParamTObj("batch_histogram", "Histogram storage for batch"); - + //This is used for the "goto" - num_command_param = makeDataBase()->GetParamInt("num_command"); - if (num_command_param < 0) + num_command_param = makeDataBase()->GetParamInt("num_command"); + if (num_command_param < 0) num_command_param = makeDataBase()->MakeParamInt("num_command", "Number of command for a label"); - num_batch_param = makeDataBase()->GetParamInt("num_batch"); - if (num_batch_param < 0) + num_batch_param = makeDataBase()->GetParamInt("num_batch"); + if (num_batch_param < 0) num_batch_param = makeDataBase()->MakeParamInt("num_batch", "Number of batch object for a label"); - num_bulk_param = makeDataBase()->GetParamInt("num_bulk"); - if (num_bulk_param < 0) + num_bulk_param = makeDataBase()->GetParamInt("num_bulk"); + if (num_bulk_param < 0) num_bulk_param = makeDataBase()->MakeParamInt("num_bulk", "Number of bulk for a label"); num_batch = num_bulk = -1; @@ -179,19 +179,19 @@ PBatch::PBatch() { if (makeDataBase()->GetParamInt("branch_idx") < 0) { makeDataBase()->MakeParamInt("branch_idx", "Index of the tree branch in PReaction"); } - + //Used for "formore" stream_default_pos_param = makeDataBase()->GetParamInt(STREAM_DEFAULT_POS); - if (stream_default_pos_param < 0) + if (stream_default_pos_param < 0) stream_default_pos_param = makeDataBase()->MakeParamInt(STREAM_DEFAULT_POS, "Default position"); stream_max_pos_param = makeDataBase()->GetParamInt(STREAM_MAX_POS); - if (stream_max_pos_param < 0) + if (stream_max_pos_param < 0) stream_max_pos_param = makeDataBase()->MakeParamInt(STREAM_MAX_POS, "Max position in stream"); batch_update_param = makeDataBase()->GetParamInt("batch_update"); if (batch_update_param < 0) - makeDataBase()->MakeParamInt("batch_update", - "If set this is a variable which must trigger an update"); + makeDataBase()->MakeParamInt("batch_update", + "If set this is a variable which must trigger an update"); for (int i=0; iGetParamTObj(lst_key[1][i], batch_particle_param, &res); makeDataBase()->GetParamTObj(lst_key[2][i], batch_particle_param, &res2); makeDataBase()->GetParamTObj(lst_key_a[i], batch_particle_param, &res3); - + if (res && res2 && res3) { PParticle *a1 = (PParticle *) res; PParticle *a2 = (PParticle *) res2; @@ -246,12 +246,12 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { *r = *a1; r->AddTmp(*a2); found = kTRUE; - } - + } + makeDataBase()->GetParamDouble(lst_key[1][i], batch_value_param, &val); makeDataBase()->GetParamDouble(lst_key[2][i], batch_value_param, &val2); makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val3); - + if (val && val2 && val3) { *val3 = *val2 + *val; found = kTRUE; @@ -265,49 +265,49 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { makeDataBase()->GetParamTObj(lst_key[1][i], batch_particle_param, &res); makeDataBase()->GetParamTObj(lst_key[2][i], batch_particle_param, &res2); makeDataBase()->GetParamTObj(lst_key_a[i], batch_particle_param, &res3); - + if (res && res2 && res3) { PParticle *a1 = (PParticle *) res; PParticle *a2 = (PParticle *) res2; PParticle *r = (PParticle *) res3; *r = *a1 - *a2; found = kTRUE; - } - + } + makeDataBase()->GetParamDouble(lst_key[1][i], batch_value_param, &val); makeDataBase()->GetParamDouble(lst_key[2][i], batch_value_param, &val2); makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val3); - + if (val && val2 && val3) { *val3 = *val - *val2; found = kTRUE; } if (!found) return found; - } else if (lst_command[i] == COMMAND_MULT) { + } else if (lst_command[i] == COMMAND_MULT) { // // Internal *= // Bool_t found = kFALSE; makeDataBase()->GetParamDouble(lst_key[1][i], batch_value_param, &val); makeDataBase()->GetParamDouble(lst_key[2][i], batch_value_param, &val2); - makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val3); + makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val3); if (val && val2 && val3) { *val3 = *val * *val2; found = kTRUE; - } + } if (!found) return found; - } else if (lst_command[i] == COMMAND_DIV) { + } else if (lst_command[i] == COMMAND_DIV) { // // Internal *= // Bool_t found = kFALSE; makeDataBase()->GetParamDouble(lst_key[1][i], batch_value_param, &val); makeDataBase()->GetParamDouble(lst_key[2][i], batch_value_param, &val2); - makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val3); + makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val3); if (val && val2 && val3) { *val3 = *val / *val2; found = kTRUE; - } + } if (!found) return found; } else if (lst_command[i] == COMMAND_EQUAL) { // @@ -317,16 +317,16 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { makeDataBase()->GetParamDouble(lst_key[1][i], batch_value_param, &val); makeDataBase()->GetParamDouble(lst_key[2][i], batch_value_param, &val2); makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val3); - + if (val && val2 && val3) { - if (fabs(*val - *val2) < 0.5) + if (fabs(*val - *val2) < 0.5) *val3 = 1.; - else + else *val3 = 0.; found = kTRUE; } if (!found) return retval; - } else if (lst_command[i] == COMMAND_BOOST) { + } else if (lst_command[i] == COMMAND_BOOST) { // //boost pparticles // @@ -336,9 +336,9 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { makeDataBase()->GetParamTObj(lst_key[2][i], batch_particle_param, &res); if (!res) return retval; PParticle *a2 = (PParticle *) res; - + a1->Boost(-a2->BoostVector()) ; - } else if (lst_command[i] == COMMAND_GETBEAM) { + } else if (lst_command[i] == COMMAND_GETBEAM) { // //read the beam from composite // @@ -357,7 +357,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { return retval; } *a2 = *a3; - } else if (lst_command[i] == COMMAND_GETTARGET) { + } else if (lst_command[i] == COMMAND_GETTARGET) { // //read the target from composite // @@ -373,7 +373,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { return retval; } *a2 = *a3; - } else if (lst_command[i] == COMMAND_ANGLE) { + } else if (lst_command[i] == COMMAND_ANGLE) { // //angle between particle tracks // @@ -383,16 +383,16 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { makeDataBase()->GetParamTObj (lst_key[2][i], batch_particle_param, &res); if (!res) return retval; PParticle *a2 = (PParticle *) res; - + Double_t angle = a1->Vect().Angle(a2->Vect()); - + makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val); if (!val) { Warning("Angle()", "Result value not found"); return kFALSE; } *val = angle; - } else if (lst_command[i] == COMMAND_ROT) { + } else if (lst_command[i] == COMMAND_ROT) { // //rotate // @@ -406,7 +406,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { double tmp_theta = a2->Theta(); a1->RotateZ(-tmp_phi); - a1->RotateY(-tmp_theta); + a1->RotateY(-tmp_theta); } else if (lst_command[i] == COMMAND_IS) { // // '=' @@ -426,7 +426,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { r->SetW(w); } found = kTRUE; - } + } makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val2); makeDataBase()->GetParamDouble(lst_key[1][i], batch_value_param, &val); @@ -435,7 +435,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { *val2 = *val; found = kTRUE; } - + if (!found) return retval; Int_t *update; if (makeDataBase()->GetParamInt(lst_key_a[i], batch_update_param, &update)) { @@ -471,7 +471,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { makeDataBase()->GetParamTObj(lst_key[1][i], batch_particle_param, &res); if (!res) return retval; PParticle *a1 = (PParticle *) res; - + makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val); if (!val) return retval; *val = a1 -> M2(); @@ -499,7 +499,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { makeDataBase()->GetParamTObj(lst_key[1][i], batch_particle_param, &res); if (!res) return retval; PParticle *a1 = (PParticle *) res; - + makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val); if (!val) return retval; *val = (a1 -> Theta()); @@ -551,7 +551,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { return retval; } methods[lst_command_int[i]]->SetParam((Long_t)*argval); - } + } } //Execute internal @@ -567,7 +567,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { methods[lst_command_int[i]]->Execute(a1, ret); //cout << "Int_t meth " << method_name[i] << " called, result " << ret << endl; (*val) = (Double_t) ret; - } else if (methods_flags[lst_command_int[i]] == METHOD_RETURN_PPARTICLE) { + } else if (methods_flags[lst_command_int[i]] == METHOD_RETURN_PPARTICLE) { //PParticle* ret2;//, *ret; makeDataBase()->GetParamTObj(lst_key_a[i], batch_particle_param, &res); if (!res) return retval; @@ -595,7 +595,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { makeDataBase()->GetName(lst_key_a[i])); } return retval; - } + } if (lst_key[3][i] == 0) { //PValue makeDataBase()->GetParamTObj(lst_key[1][i], batch_particle_param, &res); if (!res) return retval; @@ -606,7 +606,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { Error("Execute", "PValue %i not set", lst_key[2][i]); } return retval; - } + } } else { //database entry if (lst_key[3][i] < 0) { makeDataBase()->GetParamDouble(lst_key[1][i], (-lst_key[3][i]) - 1, &val2); @@ -614,17 +614,17 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { Error("Execute", "Connection to data base for double %i failed", (-lst_key[3][i]) - 1); return retval; } - *val = *val2; + *val = *val2; } else { Int_t *intval; makeDataBase()->GetParamInt(lst_key[1][i], lst_key[3][i] - 1, &intval); *val = (Double_t)*intval; - } + } } } else if (lst_command[i] == COMMAND_BRANCH) { // // Returns the branch index - // + // // makeDataBase()->GetParamDouble (lst_key_a[i], batch_value_param, &val); if (!val) { @@ -634,7 +634,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { makeDataBase()->GetName(lst_key_a[i])); } return retval; - } + } *val = lst_key[2][i]; } else if (lst_command[i] == COMMAND_PFORMULA) { // @@ -675,7 +675,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { return retval; } Double_t myres = cos(*val); - + makeDataBase()->GetParamDouble(lst_key_a[i], batch_value_param, &val); if (!val) return retval; @@ -702,7 +702,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { TH3 *my_fHisto3 = NULL; TGraph *my_fGraph = NULL; TGraph2D *my_fGraph2D = NULL; - + if (lst_key[1][i] == -1) { //no external histo my_fHisto1 = fHisto1; @@ -757,7 +757,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { int bin = my_fHisto1->FindBin(*val2); myres = my_fHisto1->GetBinContent(bin); } else if (my_fGraph) { - myres = my_fGraph->Eval(*x); + myres = my_fGraph->Eval(*x); } else { if (!eval_err_dumped) { eval_err_dumped = 1; @@ -787,7 +787,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { makeDataBase()->GetParamDouble(lst_key[2][i], batch_value_param, &val2); makeDataBase()->GetParamDouble(lst_key[3][i], batch_value_param, &val3); makeDataBase()->GetParamDouble(lst_key[4][i], batch_value_param, &val4); - + if (!val2 || !val3 || !val4) { return retval; } @@ -816,7 +816,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { TH1 *my_fHisto1 = NULL; TH2 *my_fHisto2 = NULL; TH3 *my_fHisto3 = NULL; - + if (lst_key[1][i] == -1) { //no external histo my_fHisto1 = fHisto1; @@ -884,7 +884,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { makeDataBase()->GetParamDouble(lst_key[2][i], batch_value_param, &val2); makeDataBase()->GetParamDouble(lst_key[3][i], batch_value_param, &val3); makeDataBase()->GetParamDouble(lst_key[4][i], batch_value_param, &val4); - + if (!val2 || !val3 || !val4) { return retval; } @@ -911,7 +911,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { // Double_t myres=0.; TH2 * my_fHisto2 = NULL; - + if (lst_key[1][i] == -1) { //no external histo my_fHisto2 = fHisto2; @@ -929,12 +929,12 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { if (my_fHisto2) { int n_x = my_fHisto2->GetNbinsX(); int n_y = my_fHisto2->GetNbinsY(); - + if (!slicesy) { //first time call slicesy = new TH1D*[n_y]; for (int i=0; iGetName(), i), "Projected", n_x, - my_fHisto2->GetXaxis()->GetXmin(), + slicesy[i] = new TH1D(Form("%s_y_%i",my_fHisto2->GetName(), i), "Projected", n_x, + my_fHisto2->GetXaxis()->GetXmin(), my_fHisto2->GetXaxis()->GetXmax()); slicesy[i]->SetDirectory(0); for (int j=0; jGetNbinsX(); int n_y = my_fHisto2->GetNbinsY(); - + if (!slicesx) { //first time call slicesx = new TH1D*[n_x]; for (int i=0; iGetName(), i), "Projected", n_y, - my_fHisto2->GetYaxis()->GetXmin(), + slicesx[i] = new TH1D(Form("%s_x_%i",my_fHisto2->GetName(), i), "Projected", n_y, + my_fHisto2->GetYaxis()->GetXmin(), my_fHisto2->GetYaxis()->GetXmax()); slicesx[i]->SetDirectory(0); for (int j=0; jGetParamDouble(lst_key_a[i], batch_value_param, &val); if (!val) return retval; @@ -1040,11 +1040,11 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { if (!res || !val || !val2 || !val3 || !val4) { return kTRUE; } - + ((PParticle *) res)->SetPxPyPzE((*val),(*val2),(*val3), sqrt((*val)*(*val)+(*val2)*(*val2)+ (*val3)*(*val3)+(*val4)*(*val4))); - + } else if (lst_command[i] == COMMAND_P3E) { // // Constructor for PParticles (with energy) @@ -1058,15 +1058,15 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { if (!res || !val || !val2 || !val3 || !val4) { return kTRUE; } - + ((PParticle *) res)->SetPxPyPzE((*val),(*val2),(*val3),(*val4)); - + } else if (lst_command[i] == COMMAND_GOTO) { // // Goto // Bool_t labelfound = kTRUE; - if (!makeDataBase()->GetParamInt(lst_key[1][i], num_command_param, &locnum_command)) + if (!makeDataBase()->GetParamInt(lst_key[1][i], num_command_param, &locnum_command)) labelfound = kFALSE; makeDataBase()->GetParamInt(lst_key[1][i], num_batch_param, &locnum_batch); makeDataBase()->GetParamInt(lst_key[1][i], num_bulk_param, &locnum_bulk); @@ -1089,7 +1089,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { } Bool_t labelfound = kTRUE; - if (!makeDataBase()->GetParamInt(lst_key[1][i], num_command_param, &locnum_command)) + if (!makeDataBase()->GetParamInt(lst_key[1][i], num_command_param, &locnum_command)) labelfound = kFALSE; makeDataBase()->GetParamInt(lst_key[1][i], num_batch_param, &locnum_batch); makeDataBase()->GetParamInt(lst_key[1][i], num_bulk_param, &locnum_bulk); @@ -1163,13 +1163,13 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { if ( (*stream_default) >= stream_max) { //Maximum reached, abort //reset value: (*stream_default) = 0; - return kFOREACHEND; - } + return kFOREACHEND; + } } else { //FOREACH if ((*stream_default) > stream_max) { //Maximum reached, abort //reset value: (*stream_default) = 0; - return kFOREACHEND; + return kFOREACHEND; } else { retval = kFOREACH; } @@ -1211,7 +1211,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { unsigned int puffer_pointer = 0, format_puffer_pointer = 0; if (!file) - printf(" "); + printf(" "); Int_t seek_mode = 0; for (unsigned int j=0; j<=strlen(echo_string[i]); j++) { char current = (*(echo_string[i]+j)); @@ -1219,7 +1219,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { seek_mode = 1; else { //if (seek_mode && (((*(echo_string[i]+j)) == ' ') || (*(echo_string[i]+j)) == '\0') ) { - if ((seek_mode==1) && (current!='%') && + if ((seek_mode==1) && (current!='%') && (current!='#') && (current!='_') && (!isalnum(current))) { //end seek_mode = 0; @@ -1227,7 +1227,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { Double_t *x = makeStaticData()->GetBatchValue(puffer, 0); if (file) { if (x) { - if (format_puffer_pointer<2) + if (format_puffer_pointer<2) fprintf(file, "%#g", *x); else { format_puffer[format_puffer_pointer] = '\0'; @@ -1242,11 +1242,11 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { else if (type == 'c') fprintf(file, format_puffer, (char)*x); else - fprintf(file, format_puffer, *x); + fprintf(file, format_puffer, *x); } } else fprintf(file, "-"); - } else { + } else { if (x) { if (format_puffer_pointer<2) printf("%#g", *x); else { @@ -1267,7 +1267,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { } else printf("[Error: %s not found]", puffer); } - + puffer_pointer = 0; format_puffer_pointer = 0; } @@ -1288,7 +1288,7 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { } if (seek_mode == 2) { format_puffer[format_puffer_pointer] = current; - + if (format_puffer_pointer < 1000) format_puffer_pointer++; else { if (!file) @@ -1296,14 +1296,14 @@ Int_t PBatch::Execute(Int_t command_pos, Int_t retval) { seek_mode = 1; } } - + if (!seek_mode) { if (file && (current != '\0')) fprintf(file,"%c",current); else printf("%c",current); } } } - if (file) + if (file) fprintf(file, "\n"); else { if (seek_mode == 2) printf("[Error: format string not closed]"); @@ -1366,12 +1366,12 @@ Bool_t PBatch::AddCommand(const char *_command) { if (tmp_file) file = tmp_file; PUtils::remove_spaces(&dummy); echo_string[command_pointer] = dummy; - } else + } else echo_string[command_pointer] = new char('\0'); AddCommand(COMMAND_ECHO, -1, -1, -1); return kTRUE; - } - + } + //readline if (!strncmp(command, "readline", 8)) { if (strlen(command) > 8) { @@ -1387,7 +1387,7 @@ Bool_t PBatch::AddCommand(const char *_command) { unsigned int puffer_pointer = 0, dummy2_pointer = 0, args_pointer = 0; char *dummy2 = new char[strlen(dummy)+20]; readline_args[command_pointer] = new Double_t*[MAX_READLINE_ARGS]; - + Int_t seek_mode = 0; for (unsigned int j=0; j<=strlen(dummy); j++) { char current = (*(dummy+j)); @@ -1397,7 +1397,7 @@ Bool_t PBatch::AddCommand(const char *_command) { dummy2[dummy2_pointer+1] = 'l'; dummy2[dummy2_pointer+2] = 'e'; //dummy2[dummy2_pointer+3] = ' '; - dummy2_pointer += 3; + dummy2_pointer += 3; if (dummy2_pointer > (strlen(dummy)+20)) { Fatal("AddCommand", "strlen for tmp string too short"); } @@ -1409,7 +1409,7 @@ Bool_t PBatch::AddCommand(const char *_command) { Info("Readline", "Write to batch variable '%s'", puffer); char *dummy3 = new char[strlen(puffer)+1]; strcpy(dummy3, puffer); - + Double_t *x = makeStaticData()->GetBatchValue(dummy3, 1); if (x) { if (args_pointer < MAX_READLINE_ARGS) { @@ -1419,9 +1419,9 @@ Bool_t PBatch::AddCommand(const char *_command) { } else { Error("AddCommand", "Readline: %s too many variables (>MAX_READLINE_ARGS)", dummy); } - } else + } else Error("AddCommand", "Readline: puffer %s not initialized", puffer); - + puffer_pointer = 0; } if (seek_mode) { @@ -1432,7 +1432,7 @@ Bool_t PBatch::AddCommand(const char *_command) { seek_mode = 0; } } - + if (!seek_mode) { dummy2[dummy2_pointer] = dummy[j]; dummy2_pointer++; @@ -1452,7 +1452,7 @@ Bool_t PBatch::AddCommand(const char *_command) { //first, check for a label for (UInt_t i=1; i0 && i<(strlen(command)-1) - && command[i-1]!='<' && command[i-1]!='>' - && command[i-1]!='*' && command[i-1]!='/' - && command[i-1]!='-' && command[i-1]!='+' + if (i>0 && i<(strlen(command)-1) + && command[i-1]!='<' && command[i-1]!='>' + && command[i-1]!='*' && command[i-1]!='/' + && command[i-1]!='-' && command[i-1]!='+' && command[i-1]!='=' && command[i+1]!='=') is_operator++; } } @@ -1520,7 +1520,7 @@ Bool_t PBatch::AddCommand(const char *_command) { strncpy(dummy, command+4, strlen(command)-4); dummy[strlen(command)-4] = '\0'; key1 = GetKey(dummy, 1, 1); - if (AddCommand(COMMAND_GOTO, key_a, key1, -1)) + if (AddCommand(COMMAND_GOTO, key_a, key1, -1)) return kTRUE; return kFALSE; } @@ -1531,7 +1531,7 @@ Bool_t PBatch::AddCommand(const char *_command) { strncpy(dummy, command+5, strlen(command)-5); dummy[strlen(command)-5] = '\0'; key1 = GetKey(dummy, 1, 1); - if (AddCommand(COMMAND_GOSUB, key_a, key1, -1)) + if (AddCommand(COMMAND_GOSUB, key_a, key1, -1)) return kTRUE; return kFALSE; } @@ -1615,7 +1615,7 @@ Bool_t PBatch::AddCommand(const char *_command) { key1 = GetKey(dummy, 1, 1); else key1 = GetKey((char *)"dummy", 1, 1); - if (AddCommand(COMMAND_FORMORE, key_a, key1, -1)) + if (AddCommand(COMMAND_FORMORE, key_a, key1, -1)) return kTRUE; return kFALSE; } @@ -1629,7 +1629,7 @@ Bool_t PBatch::AddCommand(const char *_command) { key1 = GetKey(dummy,1,1); else key1 = GetKey((char *)"dummy",1,1); - if (AddCommand(COMMAND_FOREACH,key_a,key1,-1)) + if (AddCommand(COMMAND_FOREACH,key_a,key1,-1)) return kTRUE; return kFALSE; } @@ -1646,7 +1646,7 @@ Bool_t PBatch::AddCommand(const char *_command) { Warning("AddCommand", "[%s]: the object you want to push is not a particle", command); return kFALSE; } - if (AddCommand(COMMAND_PUSH, key_a, key1, -1)) + if (AddCommand(COMMAND_PUSH, key_a, key1, -1)) return kTRUE; return kFALSE; } @@ -1668,20 +1668,20 @@ Bool_t PBatch::AddCommand(const char *_command) { PUtils::Tokenize(command+5, ",", prodx, &prodx_s); if (prodx_s > 3) { Warning("AddCommand", "Maximum 3 arguments for Eval()"); - } + } *(prodx[prodx_s-1]+strlen(prodx[prodx_s-1])-1) = '\0'; //remove trailing ) - + int key3=-1, key4=-1; - if (prodx_s > 0) + if (prodx_s > 0) key2 = GetKey(prodx[0], 1, -1); - if (prodx_s > 1) + if (prodx_s > 1) key3 = GetKey(prodx[1], 1, -1); - if (prodx_s > 2) + if (prodx_s > 2) key4 = GetKey(prodx[2], 1, -1); - + key_a = makeStaticData()-> MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, command3); - + if (AddCommand(COMMAND_EVAL, key_a, -1, key2, key3, key4)) { Double_t *delme = new Double_t(0.); makeDataBase()->SetParamDouble(key_a, "batch_value", delme); @@ -1689,7 +1689,7 @@ Bool_t PBatch::AddCommand(const char *_command) { return kTRUE; } return kFALSE; - } + } if (!strncmp(command,"GetRandom()",11) || !strncmp(command,"getrandom()",11)) { key_a = makeStaticData()-> @@ -1705,24 +1705,24 @@ Bool_t PBatch::AddCommand(const char *_command) { //Exists also as method!!! char *prodx[10]; Int_t prodx_s = 10; //max 10 products (but problems catched below) - + PUtils::Tokenize(command+10, ",", prodx, &prodx_s); if (prodx_s > 3) { Warning("AddCommand", "Maximum 3 arguments for GetRandom()"); - } + } *(prodx[prodx_s-1]+strlen(prodx[prodx_s-1])-1) = '\0'; //remove trailing ) - + int key3=-1, key4=-1; - if (prodx_s > 0) + if (prodx_s > 0) key2 = GetKey(prodx[0], 1, -1); - if (prodx_s > 1) + if (prodx_s > 1) key3 = GetKey(prodx[1], 1, -1); - if (prodx_s > 2) + if (prodx_s > 2) key4 = GetKey(prodx[2], 1, -1); - + key_a = makeStaticData()-> MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, command3); - + if (AddCommand(COMMAND_GETRANDOM, key_a, -1, key2, key3, key4)) { Double_t *delme = new Double_t(0.); makeDataBase()->SetParamDouble(key_a, "batch_value", delme); @@ -1730,7 +1730,7 @@ Bool_t PBatch::AddCommand(const char *_command) { return kTRUE; } return kFALSE; - } + } if (!strncmp(command,"GetRandomX",10) || !strncmp(command,"getrandomx",10)) { key_a = makeStaticData()-> @@ -1743,7 +1743,7 @@ Bool_t PBatch::AddCommand(const char *_command) { return kTRUE; } return kFALSE; - } + } if (!strncmp(command,"GetRandomY",10) || !strncmp(command,"getrandomy",10)) { key_a = makeStaticData()-> @@ -1756,14 +1756,14 @@ Bool_t PBatch::AddCommand(const char *_command) { return kTRUE; } return kFALSE; - } + } if (!strncmp(command,"cos(",4)) { key_a = makeStaticData()-> MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, command3); key1 = GetKey(command+3, 1, -1); if (AddCommand(COMMAND_COS, key_a, key1, -1)) { - + //final thing is to create the result Double_t *delme = new Double_t(0.); makeDataBase()->SetParamDouble(key_a, "batch_value", delme); @@ -1785,13 +1785,13 @@ Bool_t PBatch::AddCommand(const char *_command) { } return kFALSE; } - + if (!strncmp(command,"if(",3) || !strncmp(command,"if ",3) || !strncmp(command,"ifx",3)) { key_a = makeStaticData()-> MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, command3); - + //check if the next char after () is a ';': int bracket_pos=-1, bracket_pos2=-1, bracket_num=0, found_trailer=0; for (unsigned int i=2; iSetParamDouble(key4, "batch_value", val); } - + return kTRUE; } return kFALSE; @@ -1948,7 +1948,7 @@ Bool_t PBatch::AddCommand(const char *_command) { PUtils::Tokenize(command, "*=", prod, &prod_s); key1 = GetKey(prod[0], 1, -1); key2 = GetKey(prod[1], 1, -1); - if (AddCommand(COMMAND_MULT, key1, key1, key2)) + if (AddCommand(COMMAND_MULT, key1, key1, key2)) return kTRUE; return kFALSE; } @@ -1956,7 +1956,7 @@ Bool_t PBatch::AddCommand(const char *_command) { PUtils::Tokenize(command, "/=", prod, &prod_s); key1 = GetKey(prod[0], 1, -1); key2 = GetKey(prod[1], 1, -1); - if (AddCommand(COMMAND_DIV, key1, key1, key2)) + if (AddCommand(COMMAND_DIV, key1, key1, key2)) return kTRUE; return kFALSE; } @@ -1964,7 +1964,7 @@ Bool_t PBatch::AddCommand(const char *_command) { PUtils::Tokenize(command, "+=", prod, &prod_s); key1 = GetKey(prod[0], 1, -1); key2 = GetKey(prod[1], 1, -1); - if (AddCommand(COMMAND_PLUS, key1, key1, key2)) + if (AddCommand(COMMAND_PLUS, key1, key1, key2)) return kTRUE; return kFALSE; } @@ -1972,7 +1972,7 @@ Bool_t PBatch::AddCommand(const char *_command) { PUtils::Tokenize(command, "-=", prod, &prod_s); key1 = GetKey(prod[0], 1, -1); key2 = GetKey(prod[1], 1, -1); - if (AddCommand(COMMAND_MINUS, key1, key1, key2)) + if (AddCommand(COMMAND_MINUS, key1, key1, key2)) return kTRUE; return kFALSE; } @@ -2008,9 +2008,9 @@ Bool_t PBatch::AddCommand(const char *_command) { brack_counter = 0; if (dot_version > 0) { for (int i = method_position-1; i>=0; i--) { - if (command[i]=='(' || command[i]=='[' || command[i]=='{') + if (command[i]=='(' || command[i]=='[' || command[i]=='{') brack_counter--; - if (command[i]==')' || command[i]==']' || command[i]=='}') + if (command[i]==')' || command[i]==']' || command[i]=='}') brack_counter++; if (brack_counter==0 && ((command[i]==' ') || (command[i]=='+') || (command[i]=='-'))) dot_version = 0; //cases like "a + b.x" @@ -2030,7 +2030,7 @@ Bool_t PBatch::AddCommand(const char *_command) { prodx[0] = new char[method_position+1]; strncpy(prodx[0], command, method_position); prodx[0][method_position] = '\0'; - + key_a = makeStaticData()-> MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, command); @@ -2042,38 +2042,38 @@ Bool_t PBatch::AddCommand(const char *_command) { prodx[1] = new char[strlen(command)-method_position-1]; strncpy(prodx[1], command+method_position+2, strlen(command)-method_position-2); prodx[1][strlen(command)-method_position-2] = '\0'; - - } + + } if (!strcmp(prodx[1], "M2()")) { key1 = GetKey(prodx[0], 1, -1); if (key1 < 0) return kFALSE; - if (AddCommand(COMMAND_MASS2, key_a, key1, -1)) + if (AddCommand(COMMAND_MASS2, key_a, key1, -1)) found = kTRUE; } if (!strcmp(prodx[1], "M()")) { key1 = GetKey(prodx[0], 1, -1); - if (AddCommand(COMMAND_MASS, key_a, key1, -1)) + if (AddCommand(COMMAND_MASS, key_a, key1, -1)) found = kTRUE; } if (!strcmp(prodx[1], "Theta()")) { key1 = GetKey(prodx[0], 1, -1); - if (AddCommand(COMMAND_THETA, key_a, key1, -1)) + if (AddCommand(COMMAND_THETA, key_a, key1, -1)) found = kTRUE; } if (!strcmp(prodx[1], "Print()")) { key1 = GetKey(prodx[0], 1, -1); - if (AddCommand(COMMAND_PRINT, key_a, key1, -1)) + if (AddCommand(COMMAND_PRINT, key_a, key1, -1)) found = kTRUE; } // if (!strcmp(prodx[1],"Parent()")) { // key1 = GetKey(prodx[0],1,0); -// if (AddCommand(COMMAND_PARENT,key_a,key1,-1)) +// if (AddCommand(COMMAND_PARENT,key_a,key1,-1)) // found=kTRUE; // } // if (!strcmp(prodx[1],"ID()")) { // key1 = GetKey(prodx[0],1,0); -// if (AddCommand(COMMAND_ID,key_a,key1,-1)) +// if (AddCommand(COMMAND_ID,key_a,key1,-1)) // found=kTRUE; // } @@ -2081,24 +2081,24 @@ Bool_t PBatch::AddCommand(const char *_command) { if (!strncmp(prodx[1], "Boost(", 6)) { key1 = GetKey(prodx[0], 1, -1); key2 = GetKey(prodx[1]+5, 1, -1); - if (AddCommand(COMMAND_BOOST, key_a, key1, key2)) + if (AddCommand(COMMAND_BOOST, key_a, key1, key2)) found = kTRUE; } if (!strncmp(prodx[1], "Angle(", 6)) { key1 = GetKey(prodx[0], 1, -1); key2 = GetKey(prodx[1]+5, 1, -1); - if (AddCommand(COMMAND_ANGLE, key_a, key1, key2)) + if (AddCommand(COMMAND_ANGLE, key_a, key1, key2)) found = kTRUE; } if (!strncmp(prodx[1], "Rot(", 4)) { key1 = GetKey(prodx[0], 1, -1); key2 = GetKey(prodx[1]+3, 1, -1); - if (AddCommand(COMMAND_ROT, key_a, key1, key2)) + if (AddCommand(COMMAND_ROT, key_a, key1, key2)) found = kTRUE; } if (!strncmp(prodx[1], "GetBeam(", 8)) { key1 = GetKey(prodx[0], 1, -1); - if (AddCommand(COMMAND_GETBEAM, key_a, key1, -1)) + if (AddCommand(COMMAND_GETBEAM, key_a, key1, -1)) found = kTRUE; TObject *delme = NULL; makeDataBase()->GetParamTObj(key_a, batch_particle_param, &delme); @@ -2109,7 +2109,7 @@ Bool_t PBatch::AddCommand(const char *_command) { } if (!strncmp(prodx[1], "GetTarget(", 10)) { key1 = GetKey(prodx[0], 1, -1); - if (AddCommand(COMMAND_GETTARGET, key_a, key1, -1)) + if (AddCommand(COMMAND_GETTARGET, key_a, key1, -1)) found = kTRUE; TObject *delme = NULL; makeDataBase()->GetParamTObj(key_a, batch_particle_param, &delme); @@ -2121,7 +2121,7 @@ Bool_t PBatch::AddCommand(const char *_command) { if (!strncmp(prodx[1],"Push(",5) || !strncmp(prodx[1],"push(",5)) { key1 = GetKey(prodx[0], 1, -1); key2 = GetKey(prodx[1]+4, 1, -1); - if (AddCommand(COMMAND_PUSH, key_a, key1, key2)) + if (AddCommand(COMMAND_PUSH, key_a, key1, key2)) found = kTRUE; } if (!strncmp(prodx[1],"Eval(",5) || !strncmp(prodx[1],"eval(",5)) { @@ -2132,16 +2132,16 @@ Bool_t PBatch::AddCommand(const char *_command) { PUtils::Tokenize(prodx[1]+5, ",", prodxx, &prodxx_s); if (prodxx_s > 3) { Warning("AddCommand", "[%s] Too many arguments for ->Eval()", command); - } + } *(prodxx[prodxx_s-1]+strlen(prodxx[prodxx_s-1])-1) = '\0'; //remove trailing ) - + int key3=-1, key4=-1; - if (prodxx_s > 0) + if (prodxx_s > 0) key2 = GetKey(prodxx[0], 1, -1); - if (prodxx_s > 1) + if (prodxx_s > 1) key3 = GetKey(prodxx[1], 1, -1); - if (prodxx_s > 2) + if (prodxx_s > 2) key4 = GetKey(prodxx[2], 1, -1); //check if histogram is there... TObject *ret; @@ -2178,8 +2178,8 @@ Bool_t PBatch::AddCommand(const char *_command) { makeDataBase()->GetParamDouble(prodx[1]); if (database_id == 0) Error("AddCommand", "[%s] The value %s is unknown", command, prodx[1]); - } - if ((val_id>=0) || database_id){ + } + if ((val_id>=0) || database_id){ if (strcmp(prodx[0],"*") == 0) { //dummy * key1 = GetKey((char *)"dummy", 1, 0); } else { @@ -2188,7 +2188,7 @@ Bool_t PBatch::AddCommand(const char *_command) { if (key1 >= 0) { AddCommand(COMMAND_PVALUE, key_a, key1, val_id, database_id); found = kTRUE; - } + } } } @@ -2199,7 +2199,7 @@ Bool_t PBatch::AddCommand(const char *_command) { key1 = makeDataBase()->GetEntry(prodx[0]); if (key1 >= 0) { Int_t handle = GetMethodHandle(prodx[1], 2); - if (handle>=0) { + if (handle>=0) { //cout << "key1:" << key1 << " arg1:" << arg1 << " handle:" << handle << endl; if (AddCommand(COMMAND_INTERNAL, key_a, key1, arg1, arg2, arg3, arg4)) { found = kTRUE; @@ -2215,7 +2215,7 @@ Bool_t PBatch::AddCommand(const char *_command) { } } else { //for pparticle: Int_t handle = GetMethodHandle(prodx[1]); - if (handle >= 0) { + if (handle >= 0) { key1 = GetKey(prodx[0], 1, -1); if (AddCommand(COMMAND_INTERNAL, key_a, key1, arg1, arg2, arg3, arg4)) { found = kTRUE; @@ -2231,7 +2231,7 @@ Bool_t PBatch::AddCommand(const char *_command) { found = EvalPFormula(command); if (found) return kTRUE; } - + if (!found) { Error("AddCommand", "[%s] The method ->%s is unknown", command, prodx[1]); return kFALSE; @@ -2239,7 +2239,7 @@ Bool_t PBatch::AddCommand(const char *_command) { //final thing is to create the result Double_t *delme = new Double_t(0.); makeDataBase()->SetParamDouble(key_a, "batch_value", delme); - + return kTRUE; } } else { @@ -2273,9 +2273,9 @@ Bool_t PBatch::AddCommand(const char *_command) { key_a = GetKey(prod[0], 2, 2); copy_ctor = 1; } - + found = kFALSE; - + if (!is_operator) { //look for the arguments if (CheckAndSplit(prod[1], '~', &key1, &key2)) { @@ -2305,7 +2305,7 @@ Bool_t PBatch::AddCommand(const char *_command) { Bool_t makenew = kFALSE; //is lvalue one of the "switching" functions? - for (UInt_t i=0; i= 0) { + if (handle >= 0) { //cout << "found PUtils with " << command3<< endl; key1 = makeStaticData()-> MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, command3); @@ -2333,7 +2333,7 @@ Bool_t PBatch::AddCommand(const char *_command) { } if (found) { - + //Now look to the arguments, in order to know //if the result object is a PParticle or a double @@ -2347,7 +2347,7 @@ Bool_t PBatch::AddCommand(const char *_command) { //loop over 2 args Int_t key = key1; if (pos == 1) key = key2; - + if (key > -1) { Double_t *delme; if (makeDataBase()->GetParamDouble(key, "batch_value", &delme)) @@ -2358,14 +2358,14 @@ Bool_t PBatch::AddCommand(const char *_command) { if (!is_value_result_type && !is_obj_result_type) { //have to check if objects are there and what kind they are //4momentum? - + Int_t type = CheckObjectType(key); if (type < 0) { Error("AddCommand", "[%s] Object not identified: %s", command, makeDataBase()->GetName(key)); return kFALSE; } - + if (type == IS_OBJECT) is_obj_result_type++; else is_value_result_type++; } @@ -2391,7 +2391,7 @@ Bool_t PBatch::AddCommand(const char *_command) { delme = new Double_t (0.); makeDataBase()->SetParamDouble (key_a, "batch_value", delme); //some warning for the access to PFormula - if (is_operator && (strcmp(prod[0],"t") == 0 || strcmp(prod[0],"x") == 0 + if (is_operator && (strcmp(prod[0],"t") == 0 || strcmp(prod[0],"x") == 0 || strcmp(prod[0],"y") == 0 || strcmp(prod[0],"z") == 0)) { Warning("AddCommand", "[%s] The '%s' is a reserved keyword in TFormula. You might run into problems.", @@ -2442,7 +2442,7 @@ Int_t PBatch::EvalPFormula(char *command) { AddSpacePlaceholder(command); //cout << "PFormula called:" << command << endl; - PFormula *tmp = new PFormula(command,command); + PFormula *tmp = new PFormula(command,command); Int_t worked_out = 1, num_params = 0; const char *mod_command = command; @@ -2452,7 +2452,7 @@ Int_t PBatch::EvalPFormula(char *command) { for (int i=0; ierror_code && num_params<(MAX_COMMAND_OPTIONS-1)) { - + //try to get the ugly guy //copy the error string first char *internal_command = new char[strlen(tmp->error_string.Data())+1]; @@ -2467,7 +2467,7 @@ Int_t PBatch::EvalPFormula(char *command) { return 0; } - // mod_command = ...aus PFormula, after replacing + // mod_command = ...aus PFormula, after replacing TString *op = new TString(tmp->chaine); //cout << "Chaine from TFormula: "<< op->Data() << endl; char opt[5]; @@ -2482,7 +2482,7 @@ Int_t PBatch::EvalPFormula(char *command) { Int_t key = GetKey(internal_command, 1, -1); if (key >= 0) lst_key_tmp[num_params+1] = key; lst_options_counter_tmp++; - tmp = new PFormula(mod_command, mod_command); + tmp = new PFormula(mod_command, mod_command); num_params++; } @@ -2493,7 +2493,7 @@ Int_t PBatch::EvalPFormula(char *command) { lst_options_counter[command_pointer] = lst_options_counter_tmp; for (int i=0; i MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, command); Double_t *delme = new Double_t(0.); @@ -2503,7 +2503,7 @@ Int_t PBatch::EvalPFormula(char *command) { lst_command[command_pointer] = COMMAND_PFORMULA; command_pointer++; } else RemoveSpacePlaceholder(command); - + return worked_out; } @@ -2528,22 +2528,22 @@ void PBatch::ReplaceAll(TString *op, const char *oldstring, const char *newstrin if (PUtils::ValidVariableName(mystring+i-1, strlen(oldstring)+1)) varname = kTRUE; } - + if (mystring[i+strlen(oldstring)]) { //not the last if (PUtils::ValidVariableName(mystring+i, strlen(oldstring)+1)) varname = kTRUE; } - + // if (strncmp(oldstring,mystring+i,strlen(oldstring))==0) { // //match // //cout << "match: " << mystring << ":" << oldstring << ":" << newstring << endl; // char nextchar = mystring[i+strlen(oldstring)]; - - // if ((nextchar == '\0') || - // (!isalpha(nextchar) && + + // if ((nextchar == '\0') || + // (!isalpha(nextchar) && // (nextchar != '.') && // (nextchar != '-') && - // (nextchar != '_')) || + // (nextchar != '_')) || // ((nextchar == '-') && (mystring[i+strlen(oldstring)+1] != '>')) // ) { if (!varname) { @@ -2580,34 +2580,34 @@ Int_t PBatch::GetMethodHandle(char *name, Int_t flag) { while ((meth = (TMethod *) iter->Next())) { UInt_t realname_len = 0; - for (;realname_lenGetName(),name,realname_len) == 0) && + + if ((strncmp(meth->GetName(),name,realname_len) == 0) && (strlen(meth->GetName()) == realname_len)) { //found name //cout << meth->GetReturnTypeName() << endl; - if ((strcmp(meth->GetReturnTypeName(), "Double_t") ==0 ) || - (strcmp(meth->GetReturnTypeName(), "Int_t") ==0 ) || - (strcmp(meth->GetReturnTypeName(), "PParticle*") ==0 ) || + if ((strcmp(meth->GetReturnTypeName(), "Double_t") ==0 ) || + (strcmp(meth->GetReturnTypeName(), "Int_t") ==0 ) || + (strcmp(meth->GetReturnTypeName(), "PParticle*") ==0 ) || (strcmp(meth->GetReturnTypeName(), "void") ==0 )) { - - //Set handle and prepare the pointers + + //Set handle and prepare the pointers //is MethodCall existing? for (int i=0; iGetName()) == 0) { - //found old entry + //found old entry CrackMethodArgs(name+realname_len+1); return i; } } - + if (method_pointer == MAX_COMMAND_TMETHODS) { Error("GetMethodHandle", "MAX_COMMAND_TMETHODS reached"); return -1; } - + arg1 = arg2 = arg3 = arg4 = -1; Int_t numargs = 0; TString argstring(""); @@ -2621,7 +2621,7 @@ Int_t PBatch::GetMethodHandle(char *name, Int_t flag) { TList *arg_list = meth->GetListOfMethodArgs(); TIterator *arg_iter = arg_list->MakeIterator(); TMethodArg *arg_meth; - + int j = 0; while ((arg_meth=(TMethodArg *) arg_iter->Next())) { //set up the argument list @@ -2648,28 +2648,28 @@ Int_t PBatch::GetMethodHandle(char *name, Int_t flag) { } j++; } - - numargs = CrackMethodArgs(name+realname_len+1); + + numargs = CrackMethodArgs(name+realname_len+1); } methods[method_pointer] = new TMethodCall(); - + //cout << numargs << ":" << meth->GetNargs() << endl; if (numargs == meth->GetNargs()) { - + if (strcmp(meth->GetReturnTypeName(), "Double_t") ==0 ) methods_flags[method_pointer] = METHOD_RETURN_DOUBLE; else if (strcmp(meth->GetReturnTypeName(), "Int_t") ==0 ) methods_flags[method_pointer] = METHOD_RETURN_INT; else if (strcmp(meth->GetReturnTypeName(), "PParticle*") ==0 ) methods_flags[method_pointer] = METHOD_RETURN_PPARTICLE; - else + else methods_flags[method_pointer] = METHOD_RETURN_VOID; - + char *new_name = new char[strlen(argstring.Data())+1]; strcpy(new_name, argstring.Data()); - + if (flag == 0) methods[method_pointer]->InitWithPrototype(gROOT->GetClass("PParticle"), meth->GetName(), new_name); @@ -2684,13 +2684,13 @@ Int_t PBatch::GetMethodHandle(char *name, Int_t flag) { method_name[method_pointer] = new_name; method_pointer++; return method_pointer-1; - } else { + } else { error = 3; } - + } else { if (!error) { - error = 1; + error = 1; } else if (error == 2){ //unsupported return type Error("GetMethodHandle", "Method %s has a return type %s, not yet supported", @@ -2725,11 +2725,11 @@ Int_t PBatch::CrackMethodArgs(char *name) { char *prodx[4]; Int_t prodx_s = 4; //max 4 args - + PUtils::Tokenize(name, ",", prodx, &prodx_s); *(prodx[prodx_s-1]+strlen(prodx[prodx_s-1])-1) = '\0'; //remove trailing ) - if (!prodx_s) return 0; + if (!prodx_s) return 0; numbrack = 0; for (UInt_t i=0; i0)) name[i]=','; } - + arg1 = GetKey(prodx[0], 1, -1); if (arg1 < 0) return 0; if (prodx_s > 1) arg2 = GetKey(prodx[1], 1, -1); @@ -2781,7 +2781,7 @@ Bool_t PBatch::AddCommand(char command, int key_a, int key1, int key2, int key3, Bool_t PBatch::GetArguments(const char *a, char *name, char **function, char **arg1, char **arg2) { //looks for syntax like f(a,b); - + char *prod[2]; Int_t prod_s = 2; //max 2 products @@ -2789,7 +2789,7 @@ Bool_t PBatch::GetArguments(const char *a, char *name, char **function, char **a if (prod[1] == NULL) { *function = NULL; - prod[1] = prod[0]; + prod[1] = prod[0]; } *(prod[1]+strlen(prod[1])-1) = '\0'; @@ -2800,7 +2800,7 @@ Bool_t PBatch::GetArguments(const char *a, char *name, char **function, char **a for (UInt_t i=0; i 1) { Error("AddCommand", "[%s] Too many kommas", prod[1]); return kFALSE; @@ -2809,7 +2809,7 @@ Bool_t PBatch::GetArguments(const char *a, char *name, char **function, char **a if (komma) { char *prodx[2]; Int_t prodx_s = 2; //max 2 products - + PUtils::Tokenize(prod[1], ",", prodx, &prodx_s); *arg1 = prodx[0]; *arg2 = prodx[1]; @@ -2822,8 +2822,8 @@ Bool_t PBatch::GetArguments(const char *a, char *name, char **function, char **a } Int_t PBatch::GetDelimPosition(char *arg, char delim, Int_t *yes) { - - Int_t brackets = 0, + + Int_t brackets = 0, split_pos = -1, found_something = 0; for (UInt_t i=0; i=0; i--) { if (arg[i] != ' ') { - if (arg[i] == '<' || arg[i] == '>' || arg[i] == '=' + if (arg[i] == '<' || arg[i] == '>' || arg[i] == '=' || arg[i] == ':'|| arg[i] == ',') { - return kFALSE; + return kFALSE; } - i = -1; + i = -1; } } if (!yes) { - return kFALSE; + return kFALSE; } char *prod[2]; - + prod[0] = new char[split_pos+1]; prod[1] = new char[strlen(arg)-split_pos+1]; strncpy(prod[0], arg, split_pos); @@ -2896,13 +2896,13 @@ Int_t PBatch::GetKey(char *name, int fl, int makeflag) { // (but see also SetVarList) //makeflag=2 : Same as above, but it must be a valid variable name //makeflag=-1 : put into DB only if we have a composite object - // This is the case if we find () or + or - + // This is the case if we find () or + or - // e.g. obj->... // make AddCommand //fl=2 : Take SetVarList into account //cout << "getKey" << name << ":" << makeflag << endl; - + //do we contain ()? //int br = 0; //int found_br = 0; @@ -2915,14 +2915,14 @@ Int_t PBatch::GetKey(char *name, int fl, int makeflag) { } PUtils::remove_spaces(&name); - Int_t key = -1; + Int_t key = -1; if (strlen(name) == 0) return -1; //first check for file-input if (name[0] == '[' && name[strlen(name)-1]==']' && strlen(name)>2) { //found [] at the very begin & end - + //further look to the content //if we find any additional brackets, it is a composite object! Int_t num_brackets = 0; @@ -2934,35 +2934,35 @@ Int_t PBatch::GetKey(char *name, int fl, int makeflag) { key = makeStaticData()-> MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, name); - + char *function, *arg1, *arg2; GetArguments("[", /* "]", */ name, &function, &arg1, &arg2); - - if (!arg1) { + + if (!arg1) { Error("AddCommand", "[%s] Argument not found", name); return kFALSE; } - + Int_t pid = 0; //DUMMY if (strcmp(arg1, "*")) { //no Joker pid = makeStaticData()->GetParticleID(arg1); - if (pid==0) { + if (pid==0) { Error("AddCommand", "[%s] Unknown particle %s", name, arg1); return kFALSE; } } - + Int_t *ii = new int(pid); //never destructed, but called only once! - + if (!makeDataBase()->SetParamInt (key, "batch_pid", ii)) { delete ii; return kFALSE; } - + Int_t number = -999; - + if (arg2) { //try to get number Int_t *delme = new Int_t(number); Int_t numkey = -999; @@ -2976,22 +2976,22 @@ Int_t PBatch::GetKey(char *name, int fl, int makeflag) { numkey = -1; } else { Int_t *result = new Int_t(1); - makeDataBase()->SetParamInt(numkey, "batch_update", result); + makeDataBase()->SetParamInt(numkey, "batch_update", result); } } - } + } if (numkey < 0) { Error("AddCommand", "[%s] Unknown variable '%s'", name, arg2); - } + } *delme = -1000 - numkey; //-999 means not found! } else if (PUtils::IsInt(arg2)) { sscanf(arg2, "%i", &number); *delme = number; - if (strcmp(arg2,"+") == 0) { + if (strcmp(arg2,"+") == 0) { *delme = -111; status = 1; } - } else + } else Error("AddCommand", "[%s] Unknown value '%s'", name, arg2); makeDataBase()->SetParamInt(key, "batch_position", delme); } @@ -3009,9 +3009,9 @@ Int_t PBatch::GetKey(char *name, int fl, int makeflag) { makeflag = 0; Error("GetKey", "[%s] is not a valid variable name", name); } - if (makeflag == 2) + if (makeflag == 2) makeflag = 1; - if (makeflag == -1) + if (makeflag == -1) AddCommand(name); if (makeflag) { @@ -3020,13 +3020,13 @@ Int_t PBatch::GetKey(char *name, int fl, int makeflag) { MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, name); } else { for (unsigned int j=0; j<((strlen(varlist) - strlen(name))); j++) { - if ((strncmp(varlist+j,name,strlen(name)) == 0) && + if ((strncmp(varlist+j,name,strlen(name)) == 0) && varlist[j+strlen(name)] == ';') { key = makeStaticData()-> MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, name); } } - if (key < 0) + if (key < 0) Error("AddCommand", "[%s] is not an allowed object name, the list in this context is [%s] ", name, varlist); @@ -3037,7 +3037,7 @@ Int_t PBatch::GetKey(char *name, int fl, int makeflag) { if (key < 0) { Error("AddCommand", "[%s] Unknown object", name); } - + return key; } @@ -3049,84 +3049,84 @@ void PBatch::Print(const Option_t *) const { // if (lst_command[i] == COMMAND_PFORMULA) { -// cout << makeDataBase()->GetName(lst_key_a[i]) +// cout << makeDataBase()->GetName(lst_key_a[i]) // << " <" << lst_command[i] << "> "; // for (int j=0;jGetName(lst_key[j+1][i]) << " "; // } // cout << endl; -// } else +// } else { - - if (lst_command[i] == COMMAND_PFORMULA) + + if (lst_command[i] == COMMAND_PFORMULA) cout << "[PFormula] :"; - if (lst_command[i] == COMMAND_MASS) + if (lst_command[i] == COMMAND_MASS) cout << "->M() :"; - if (lst_command[i] == COMMAND_MASS2) + if (lst_command[i] == COMMAND_MASS2) cout << "->M2() :"; - if (lst_command[i] == COMMAND_IF) + if (lst_command[i] == COMMAND_IF) cout << "if :"; - if (lst_command[i] == COMMAND_PLUS) + if (lst_command[i] == COMMAND_PLUS) cout << "+ :"; - if (lst_command[i] == COMMAND_MINUS) + if (lst_command[i] == COMMAND_MINUS) cout << "- :"; - if (lst_command[i] == COMMAND_EQUAL) + if (lst_command[i] == COMMAND_EQUAL) cout << "~ :"; - if (lst_command[i] == COMMAND_IS) + if (lst_command[i] == COMMAND_IS) cout << "= :"; - if (lst_command[i] == COMMAND_COS) + if (lst_command[i] == COMMAND_COS) cout << "cos() :"; - if (lst_command[i] == COMMAND_BOOST) + if (lst_command[i] == COMMAND_BOOST) cout << "->Boost() :"; - if (lst_command[i] == COMMAND_GETBEAM) + if (lst_command[i] == COMMAND_GETBEAM) cout << "->GetBeam() :"; - if (lst_command[i] == COMMAND_GETTARGET) + if (lst_command[i] == COMMAND_GETTARGET) cout << "->GetTarget():"; - if (lst_command[i] == COMMAND_FABS) + if (lst_command[i] == COMMAND_FABS) cout << "fabs() :"; - if (lst_command[i] == COMMAND_PRINT) + if (lst_command[i] == COMMAND_PRINT) cout << "->Print() :"; - if (lst_command[i] == COMMAND_ROT) + if (lst_command[i] == COMMAND_ROT) cout << "->Rot() :"; - if (lst_command[i] == COMMAND_THETA) + if (lst_command[i] == COMMAND_THETA) cout << "->Theta() :"; - if (lst_command[i] == COMMAND_INTERNAL) + if (lst_command[i] == COMMAND_INTERNAL) cout << "[internal] :"; - if (lst_command[i] == COMMAND_EVAL) + if (lst_command[i] == COMMAND_EVAL) cout << "Eval() :"; - if (lst_command[i] == COMMAND_GETRANDOM) + if (lst_command[i] == COMMAND_GETRANDOM) cout << "GetRandom() :"; - if (lst_command[i] == COMMAND_ANGLE) + if (lst_command[i] == COMMAND_ANGLE) cout << "->Angle() :"; - if (lst_command[i] == COMMAND_P3M) + if (lst_command[i] == COMMAND_P3M) cout << "P3M() :"; - if (lst_command[i] == COMMAND_P3E) + if (lst_command[i] == COMMAND_P3E) cout << "P3E() :"; - if (lst_command[i] == COMMAND_PVALUE) + if (lst_command[i] == COMMAND_PVALUE) cout << ".val :"; - if (lst_command[i] == COMMAND_LABEL) + if (lst_command[i] == COMMAND_LABEL) cout << "label: :"; - if (lst_command[i] == COMMAND_GOTO) + if (lst_command[i] == COMMAND_GOTO) cout << "goto :"; - if (lst_command[i] == COMMAND_GOSUB) + if (lst_command[i] == COMMAND_GOSUB) cout << "gosub :"; - if (lst_command[i] == COMMAND_RETURN) + if (lst_command[i] == COMMAND_RETURN) cout << "return :"; - if (lst_command[i] == COMMAND_EXIT) + if (lst_command[i] == COMMAND_EXIT) cout << "exit :"; - if (lst_command[i] == COMMAND_FORMORE) + if (lst_command[i] == COMMAND_FORMORE) cout << "formore :"; - if (lst_command[i] == COMMAND_FOREACH) + if (lst_command[i] == COMMAND_FOREACH) cout << "foreach :"; - if (lst_command[i] == COMMAND_ECHO) + if (lst_command[i] == COMMAND_ECHO) cout << "echo :"; - if (lst_command[i] == COMMAND_READLINE) + if (lst_command[i] == COMMAND_READLINE) cout << "readline :"; - if (lst_command[i] == COMMAND_PUSH) + if (lst_command[i] == COMMAND_PUSH) cout << "push :"; - if (lst_command[i] == COMMAND_BRANCH) + if (lst_command[i] == COMMAND_BRANCH) cout << "branch :"; - if (lst_command[i] == COMMAND_ELSE) + if (lst_command[i] == COMMAND_ELSE) cout << "else :"; if (lst_key_a[i] > -1) { @@ -3134,26 +3134,26 @@ void PBatch::Print(const Option_t *) const { } if (lst_key[1][i] > -1) { - cout << " <=== {" << lst_key[1][i] - << "=" << makeDataBase()->GetName(lst_key[1][i]) + cout << " <=== {" << lst_key[1][i] + << "=" << makeDataBase()->GetName(lst_key[1][i]) << "}"; } if (lst_key[2][i] > -1) { - cout << ",{" << lst_key[2][i] - << "=" << makeDataBase()->GetName(lst_key[2][i]) + cout << ",{" << lst_key[2][i] + << "=" << makeDataBase()->GetName(lst_key[2][i]) << "}"; } if (lst_key[3][i] > -1) { - cout << ",{" << lst_key[3][i] - << "=" << makeDataBase()->GetName(lst_key[3][i]) + cout << ",{" << lst_key[3][i] + << "=" << makeDataBase()->GetName(lst_key[3][i]) << "}"; } if (lst_key[4][i] > -1) { - cout << ",{" << lst_key[4][i] - << "=" << makeDataBase()->GetName(lst_key[4][i]) + cout << ",{" << lst_key[4][i] + << "=" << makeDataBase()->GetName(lst_key[4][i]) << "}"; } diff --git a/src/PBeamSmearing.cc b/src/PBeamSmearing.cc index 5dae64d..4cc7ec9 100644 --- a/src/PBeamSmearing.cc +++ b/src/PBeamSmearing.cc @@ -1,14 +1,14 @@ ///////////////////////////////////////////////////////////////////// // -// Beam smearing models: Angular semaring is possible as well -// as momentum smearing using TF1 objects. +// Beam smearing models: Angular semaring is possible as well +// as momentum smearing using TF1 objects. // Particles needed: beam and target (as grandparent), parent -// The particle from(beam, target) +// The particle from(beam, target) // with higher momentum is defined as the real beam // // Author: I. Froehlich // Written: 18.7.2007 -// Revised: +// Revised: ///////////////////////////////////////////////////////////////////// @@ -89,13 +89,13 @@ Bool_t PBeamSmearing::Prepare(void) { //the mass and momentum sampling done in the next steps Double_t angle = 0; - if (ang_smearing) + if (ang_smearing) angle = ang_smearing->GetRandom() *TMath::Pi() / 180.; Double_t mom = 1.; - if (mom_smearing) + if (mom_smearing) mom = mom_smearing->GetRandom(); - if (mom_smearing_histo) + if (mom_smearing_histo) mom *= mom_smearing->GetRandom(); //restore saved particles @@ -106,18 +106,18 @@ Bool_t PBeamSmearing::Prepare(void) { //because the following step includes tilting if (beam->P() > target->P()) { Double_t mymom = beam->Rho(); - if (mom_function) + if (mom_function) mymom = mom_function->GetRandom(); - if (mom_function_histo) + if (mom_function_histo) mymom = mom_function_histo->GetRandom(); beam->SetMom(mymom*mom); beam->RotateX(angle); beam->RotateZ(PUtils::sampleFlat()*2*TMath::Pi()); } else { Double_t mymom = target->Rho(); - if (mom_function) + if (mom_function) mymom = mom_function->GetRandom(); - if (mom_function_histo) + if (mom_function_histo) mymom = mom_function_histo->GetRandom(); target->SetMom(mymom*mom); target->RotateX(angle); @@ -131,7 +131,7 @@ Bool_t PBeamSmearing::Prepare(void) { if (sigmaBeam > 0.) { // gaussian smearing of beam axis // thB = TMath::Abs(PUtils::sampleGaus(0.,sigmaBeam)); // phB = 6.283185308*PUtils::sampleFlat(); - Double_t thx = PUtils::sampleGaus(0., sigmaBeam); + Double_t thx = PUtils::sampleGaus(0., sigmaBeam); // this gives better results Double_t thy = PUtils::sampleGaus(0., sigmaBeam); thB = sqrt(thx*thx+thy*thy); @@ -147,7 +147,7 @@ Bool_t PBeamSmearing::Prepare(void) { TMath::Cos(thetaBeam)); beamAxis.RotateUz(skew); } - + if (beam->P() > target->P()) { beam->RotateUz(beamAxis); @@ -155,7 +155,7 @@ Bool_t PBeamSmearing::Prepare(void) { target->RotateUz(beamAxis); } } - + parent->Reconstruct(); return kTRUE; diff --git a/src/PBreitWigner.cc b/src/PBreitWigner.cc index 7ac0a9b..f74515b 100644 --- a/src/PBreitWigner.cc +++ b/src/PBreitWigner.cc @@ -4,11 +4,11 @@ // Breit-Wigner distribution with mass-dependent width Breit-Wigner // (low-mass cutoff through Gamma0*(q/q0)**(2L+1) ). // -// Author: Kagarlis +// Author: Kagarlis // Implemented: I. Froehlich // Written: 23.5.2007 -// Revised: -// +// Revised: +// ///////////////////////////////////////////////////////////////////// @@ -52,7 +52,7 @@ Bool_t PBreitWigner::SampleMass(Double_t *mass, Int_t *didx) { SetParameter(1, didx_option); } } - + mass[0] = this->GetRandom(); return kTRUE; @@ -60,12 +60,12 @@ Bool_t PBreitWigner::SampleMass(Double_t *mass, Int_t *didx) { Double_t PBreitWigner::GetWeight(Double_t *mass, Int_t *didx) { // relativistic Breit-Wigner distribution function for particle "key" - + double m = mass[0]; if ((m < GetMin()) || (m > GetMax())) return 0.; - double m2 = m*m, + double m2 = m*m, mm = mr*mr-m2; int didx_local = -1; if (didx) didx_local = didx[0]; @@ -79,18 +79,18 @@ Double_t PBreitWigner::GetWeight(Double_t *mass, Int_t *didx) { } //N.B.: If didx is used, we sample the partial decay width - double g = width, + double g = width, g2 = g*g; double partial_width; if (didx_local >= 0) { if (!GetWidth(m, &partial_width, didx_local)) { Warning("GetWeight", "GetWidth failed"); return -1; - } + } if (width_model) { width_model->GetWidth(m, &partial_width, didx_local); } - } else + } else partial_width = width; @@ -99,7 +99,7 @@ Double_t PBreitWigner::GetWeight(Double_t *mass, Int_t *didx) { // fold rho line shape with thermal distribution // double mcut = TMath::Max(m,0.28); // cut mass at 2 pion masses // wmt = mtIntegral(mcut,tempMtScaling)/mtIntegral(Mass(id),tempMtScaling); -// } +// } // return wmt*m2*g2/(mm*mm+m2*g2); // -> BW(Mres) = 1 // cout << "result: " << global_weight_scaling*wmt*m2*partial_width/(mm*mm+m2*g2) << endl; diff --git a/src/PBulkInterface.cc b/src/PBulkInterface.cc index f592913..e73c150 100644 --- a/src/PBulkInterface.cc +++ b/src/PBulkInterface.cc @@ -4,7 +4,7 @@ // This class serves as a base class for bulk modifications // It can be used for bulk decays (e.g. Pythia, Pluto) // or to add array of particles to the particle stream -// +// // Author: Ingo Froehlich // Written: 14/05/2007 // Revised: @@ -22,7 +22,7 @@ PBulkInterface *makeGlobalBulk() { return &fPBulkInterface(); } -PBulkInterface::PBulkInterface() { +PBulkInterface::PBulkInterface() { bulk_id = (++gBulkCounter); fPriority = -1; tree = NULL; @@ -42,4 +42,4 @@ bool PBulkInterface::Modify(PParticle**, int*, int*, int) { Int_t PBulkInterface::gBulkCounter=0; -ClassImp(PBulkInterface) +ClassImp(PBulkInterface) diff --git a/src/PChannel.cc b/src/PChannel.cc index cd6b192..4e9c425 100644 --- a/src/PChannel.cc +++ b/src/PChannel.cc @@ -72,13 +72,13 @@ PChannel::PChannel(PParticle **particles, int nt, int, int, int) { int i, k = -1; status = (!particles); // true if argument pid array is invalid n = nt; // number of product particles - + if (!status) { ipid.Set(n+1); // pid array for (i=0; i<=n; ++i) { k = particles[i]->ID(); // id of current particle // if ((i&&k>1000)||!k) { // error in pid (Not longer true, IF) - if (!k) { + if (!k) { status = 1; ipid.~TArrayI(); break; @@ -107,7 +107,7 @@ PChannel::PChannel(PParticle **particles, int nt, int, int, int) { PChannel::PChannel(int idx, PParticle **particles, int, int, int) { // Channel constructor by decay-mode index - + makeStdData()->fillDataBase();//init physics, if not yet done init_done = kFALSE; e_cm = 0; @@ -119,13 +119,13 @@ PChannel::PChannel(int idx, PParticle **particles, int, int, int) { if (key < 0) { printf("%s\n", Message[12]); // invalid decay mode return; - } else + } else makeStaticData()->GetDecayMode(idx,ia); // retrieve decay-mode info DMIndex = idx; // decay-mode index n = ia[0]; // number of products in current mode ipid.Set(n+1); // set up pid array - + if (!particles) { // no particle-array passed as argument ptcls = new PParticle*[n+1]; // create channel particle array for(int i=0; i<=n; i++) ptcls[i] = 0; @@ -134,20 +134,20 @@ PChannel::PChannel(int idx, PParticle **particles, int, int, int) { ptcls = particles; // copy ptcls_extern = -1; } - + int i; for (i=0; i<=n; ++i) { // fill particle and id arrays - if (particles) + if (particles) ipid[i] = particles[i]->ID(); else { // create from decay-mode info if (!i) // parent id ipid[0] = makeStaticData()->GetDecayParent(idx); - else + else ipid[i] = ia[i+1]; // product ids ptcls[i] = new PParticle(ipid[i]); } - } - + } + if (particles) { // consistency checks ia[0] = ipid[0]; // reset first entry to parent pid PUtils::isort(ia, n+1); // sort pids (parent & products) in ascending order @@ -162,18 +162,18 @@ PChannel::PChannel(int idx, PParticle **particles, int, int, int) { return; } } - + IsReaction(); // if reaction channel identify beam, target & decay mode ptcls[0]->SetDecayModeIndex(makeStaticData()->GetDecayIdxByKey(decay_key)); w = ptcls[0]->W(); // weight on instantiation ecm = ptcls[0]->M(); // system invariant mass on instantiation -} +} PChannel::PChannel(int idx, PParticle &parent, int, int, int) { // Channel constructor by decay-mode index and parent reference - + makeStdData()->fillDataBase();//init physics, if not yet done init_done = kFALSE; e_cm = 0; @@ -185,13 +185,13 @@ PChannel::PChannel(int idx, PParticle &parent, int, int, int) { if (key < 0) { printf("%s\n", Message[12]); // invalid decay mode return; - } else + } else makeStaticData()->GetDecayMode(idx,ia); // retrieve decay-mode info DMIndex = idx; // decay-mode index n = ia[0]; // number of products in current mode ipid.Set(n+1); // set up pid array - + ptcls = new PParticle*[n+1]; // create channel particle array ptcls[0] = &parent; ptcls_extern = 1; @@ -216,11 +216,11 @@ PChannel::PChannel(int idx, PParticle &parent, int, int, int) { w = ptcls[0]->W(); // weight on instantiation ecm = ptcls[0]->M(); // system invariant mass on instantiation -} +} void PChannel::IsReaction() { // Identify beam and target if the current channel is a beam + target reaction. - + event_impact_param = (makeStaticData()->GetBatchValue("_event_impact_param")); event_plane = (makeStaticData()->GetBatchValue("_event_plane")); weight_version = makeStaticData()->GetBatchValue("_system_weight_version"); @@ -262,18 +262,18 @@ void PChannel::IsReaction() { emin = 0.; // channel energy threshold if (k == 1) { // decay of size=1 parent - if (parent->IsFireball()) + if (parent->IsFireball()) thSrc = 1; - else if (parent->IsFileInput()) + else if (parent->IsFileInput()) tcSrc = 1; - else if (parent->IsDilepton()) + else if (parent->IsDilepton()) dlSrc = 1; else { IdChannel(); //get data base key: decay_key = makeStaticData()->GetDecayKey(ipid.GetArray(), n); CheckDecayKey(); - return; + return; } } @@ -286,7 +286,7 @@ void PChannel::IsReaction() { bid = ipid[0]%1000; // beam id IdChannel(); // identify reaction if known - + //get data base key: decay_key = makeStaticData()->GetDecayKey(ipid.GetArray(), n); if ((decay_key < 0) && (ipid[0]>999)) { @@ -295,7 +295,7 @@ void PChannel::IsReaction() { } if (!thSrc && !tcSrc) CheckDecayKey(); //check for emin in initial states - for (int i=1; i<=n; ++i) { + for (int i=1; i<=n; ++i) { emin += PData::LMass(ptcls[i]->ID()); } @@ -337,7 +337,7 @@ void PChannel::IdChannel() { if (ptcls[n]->IsSpectator() != -1) has_spec=1; } - + if (!has_spec) return; has_spec = ptcls[n]->IsSpectator(); @@ -350,19 +350,19 @@ void PChannel::IdChannel() { //in this case the, spectator must be a nucleon if (!ptcls[n]->IsNucleon()) return; } - + for (i=1; i<=n; ++i) { if (!has_spec) { - if (ptcls[i]->ID() == makeStaticData()->GetParticleID("d")) + if (ptcls[i]->ID() == makeStaticData()->GetParticleID("d")) return; // coherent scattering } if (ptcls[i]->ID()>1000) return; //dummy PChannel } //get the nucleon pid - if (bid == makeStaticData()->GetParticleID("d")) + if (bid == makeStaticData()->GetParticleID("d")) nucleon_pid = tid; - else + else nucleon_pid = bid; //identify the spectator @@ -408,7 +408,7 @@ void PChannel::IdChannel() { if (nucleon_pid == tid) { //d beam quasi_composite = new PParticle(*participant + dummy); } else { - quasi_composite = new PParticle(dummy + *participant); + quasi_composite = new PParticle(dummy + *participant); } PParticle **cc1 = new PParticle*[3]; // create channel particle array cc1[0] = parent; @@ -420,11 +420,11 @@ void PChannel::IdChannel() { //now we have to touch a little bit myself: //the spectator is removed from the list, and the parent id replaced by //the dummy composite - + Info("IdChannel", "(%s) Quasi-free production", PRINT_AUTO_ALLOC); n--; - + parent = quasi_composite; orig_parent = quasi_composite; ptcls[0] = quasi_composite; @@ -452,11 +452,11 @@ void PChannel::ThermalSampling() { if (nTherm > n) nTherm = n; } else if (pFire->IsRandomN()) { // sample multiplicity directly nTherm = pFire->sampleNProd(); - if (*event_plane == 0.) + if (*event_plane == 0.) phi = 2.*TMath::Pi()*PUtils::sampleFlat(); // ev plane - else + else phi = *event_plane; - if (nTherm > n) + if (nTherm > n) nTherm = n; } @@ -484,11 +484,11 @@ void PChannel::ThermalSampling() { ptcls[i]->SetPxPyPzE(px, py, pz, Energy); if (ptcls[i]->M() < PData::LMass(ptcls[i]->ID()) || ptcls[i]->M() > PData::UMass(ptcls[i]->ID())) goto redo_thermal; //DONEv6 ptcls[i]->SetW(w*(pFire->mtScale(ptcls[i]->M()))); // weight * mt-scaling - if (sourceid) + if (sourceid) ptcls[i]->SetSourceId(sourceid); - else + else ptcls[i]->SetSourceId(pFire->ID()); - + ptcls[i]->SetParentId(pFire->ID()); ptcls[i]->SetActive(); } @@ -534,13 +534,13 @@ Int_t PChannel:: ReadFileInput() { // parent is file input nMax = nFile = pFile->readEventHeader(b); // read event header if (nFile == -1) { printf("**** EOF reached on file input ****\n"); - for(i=1; i<=n; i++) + for(i=1; i<=n; i++) ptcls[i]->SetInActive(); // inactivate all return 8; } if (nMax > n) nMax = n; - + if (*event_impact_param == 0.) { phi = 2.*TMath::Pi()*PUtils::sampleFlat(); // ev plane } @@ -551,7 +551,7 @@ Int_t PChannel:: ReadFileInput() { // parent is file input *event_impact_param = b; *event_plane = phi; - + for(i=1; i<=nFile; i++) { ret = pFile->readParticle(px,py,pz,Energy,vx,vy,vz,vt,id,idSrc,idPar,indPar,w); if (ret == -1) break; // EOF @@ -567,12 +567,12 @@ Int_t PChannel:: ReadFileInput() { // parent is file input ptcls[i]->SetVertex(vx,vy,vz,vt); } if (ret == -1) return 8; - for(i=nMax+1; i<=n; i++) + for(i=nMax+1; i<=n; i++) ptcls[i]->SetInActive(); // inactivate rest TVector3 Beta = pFile->BoostVector(); - if (Beta.Mag() > 0.) - for(i=1; i<=nMax; ++i) + if (Beta.Mag() > 0.) + for(i=1; i<=nMax; ++i) ptcls[i]->Boost(Beta); return 0; } @@ -589,23 +589,23 @@ int PChannel::CheckSiblings(PParticle *p, PDistribution *dist, int flag) { // cout << "******************checkSiblings for " <GetName() << ", SEED: " << endl; // p->Print(); - - PParticle *currentSibling = p->GetSibling(); + + PParticle *currentSibling = p->GetSibling(); Int_t counter = 0; //break condition Int_t ret = -1; while (currentSibling != p) { if (currentSibling == NULL) return ret; - if (ret == 0) { //found one more "additional" sibling -> reset + if (ret == 0) { //found one more "additional" sibling -> reset ret = -1; } //cout << "My sibling is:" << endl; //currentSibling->Print(); - if (dist->SetParticle(currentSibling, currentSibling->ID(), flag | PARTICLE_LIST_SIBLING) == 0) { + if (dist->SetParticle(currentSibling, currentSibling->ID(), flag | PARTICLE_LIST_SIBLING) == 0) { //I found the missing sibling ret = 0; //cout << "found the missing sibling" << endl; - } + } //jump to next sibling currentSibling = currentSibling->GetSibling(); counter++; @@ -637,7 +637,7 @@ Bool_t PChannel::Reset() { Bool_t PChannel::SetDaughters() { if (thSrc || tcSrc) return kTRUE; //makes no sense and print errors parent->ResetDaughters(); - + if (parent->IsActive() == kTRUE) { for (Int_t k=1; k<=n; k++) { parent->SetDaughter(ptcls[k]); @@ -649,7 +649,7 @@ Bool_t PChannel::SetDaughters() { Bool_t PChannel::Init() { //On the 1st call, set the grandparent, etc... //look for tentative distributions - + int has_printed = 0; //set parent, grandparent if (orig_parent != ptcls[0]) { @@ -660,7 +660,7 @@ Bool_t PChannel::Init() { grandparent = parent->GetParent(); grandgrandparent = NULL; - if (grandparent) + if (grandparent) grandgrandparent = grandparent->GetParent(); Double_t set_mode_index = 0; @@ -668,14 +668,14 @@ Bool_t PChannel::Init() { for (int j=0; jGetVersionFlag() & VERSION_INVERT_WEIGHTING) { set_mode_index++; - } else if ((dist[j]->GetVersionFlag() & VERSION_WEIGHTING) - && (dist[j]->GetVersionFlag() & VERSION_GENERATOR_MC) -// && (dist[j]->GetExpectedWeightMean() < 0) + } else if ((dist[j]->GetVersionFlag() & VERSION_WEIGHTING) + && (dist[j]->GetVersionFlag() & VERSION_GENERATOR_MC) +// && (dist[j]->GetExpectedWeightMean() < 0) // This must be disabled, otherwise the Delta mass is not taken correctly -// Mass shape of the epja figure disagrees for sampling/weighting method +// Mass shape of the epja figure disagrees for sampling/weighting method ) { set_mode_index++; - } else if (dist[j]->GetVersionFlag() & VERSION_FORCE_NO_PARTIAL_WIDTH) + } else if (dist[j]->GetVersionFlag() & VERSION_FORCE_NO_PARTIAL_WIDTH) set_mode_index = set_mode_index + 2; } @@ -690,9 +690,9 @@ Bool_t PChannel::Init() { Int_t parId, parInd; for (Int_t k=1; k<=n; k++) { ptcls[k]->SetActive(); // activate children - if (sourceid) + if (sourceid) ptcls[k]->SetSourceId(sourceid); - else + else ptcls[k]->SetSourceId(parent->GetSourceId()); parId = parent->ID(); @@ -711,7 +711,7 @@ Bool_t PChannel::Init() { } else { ptcls[k]->SetSiblingIndex(ptcls[1]->GetIndex()); ptcls[k]->SetSibling(ptcls[1]); - } + } } } //end parent active @@ -730,7 +730,7 @@ Bool_t PChannel::Init() { PrintReaction(); cout << endl; } - if (print_tentative) + if (print_tentative) printf(" [checking] %s\n", dist[j]->GetDescription()); //check grand(grand)parent itself @@ -765,7 +765,7 @@ Bool_t PChannel::Init() { #endif - //check siblings for parent, grandparent, grandgrandparent + //check siblings for parent, grandparent, grandgrandparent CheckSiblings(parent, dist[j], PARTICLE_LIST_PARENT); if (grandparent) { CheckSiblings(grandparent, dist[j], PARTICLE_LIST_GRANDPARENT); @@ -777,20 +777,20 @@ Bool_t PChannel::Init() { for (Int_t k=1; k<=n; k++) { //looping over daughters int kk = 0; - - while (ptcls[k]->GetDaughter(kk) != NULL) { - - dist[j]->SetParticle(ptcls[k]->GetDaughter(kk), - ptcls[k]->GetDaughter(kk)->ID(), + + while (ptcls[k]->GetDaughter(kk) != NULL) { + + dist[j]->SetParticle(ptcls[k]->GetDaughter(kk), + ptcls[k]->GetDaughter(kk)->ID(), PARTICLE_LIST_GRANDDAUGHTER); kk++; } } - + //final check if (dist[j]->GetStatus() == -1) { //not all particles set if (print_tentative) printf(" [removed] %s\n",dist[j]->GetDescription()); - dist[j]->SetEnable(0); + dist[j]->SetEnable(0); } else { if (dist[j]->Init() == kTRUE) { @@ -798,10 +798,10 @@ Bool_t PChannel::Init() { else { printf(" [error] %s:%s\n",dist[j]->GetDescription(),dist[j]->GetIdentifier()); dist[j]->SetEnable(0); - + } } - } + } } //after all, look for artificial models (primary) @@ -832,20 +832,20 @@ Bool_t PChannel::Init() { // Bool_t PChannel::InitEnv() { // //Init "envelope" afterburner for distributions spanning over a chain -// cout << "**********init env" << endl; +// cout << "**********init env" << endl; // for (Int_t k=1;k<=n;k++) { // //looping over daughters // int kk=0; // ptcls[k]->Print(); -// while (ptcls[k]->GetDaughter(kk) != NULL) { +// while (ptcls[k]->GetDaughter(kk) != NULL) { // cout << "found:" << endl; // ptcls[k]->GetDaughter(kk)->Print(); // for (int j=0;jPrint(); // cout << dist[j]->GetStatus() << ":" << dist[j]->GetEnable() << endl; // if ((dist[j]->GetStatus() == -1) && dist[j]->GetEnable()){ //not all particles set -// dist[j]->SetParticle(ptcls[k]->GetDaughter(kk), -// ptcls[k]->GetDaughter(kk)->ID(), +// dist[j]->SetParticle(ptcls[k]->GetDaughter(kk), +// ptcls[k]->GetDaughter(kk)->ID(), // PARTICLE_LIST_GRANDDAUGHTER); // } // } @@ -857,7 +857,7 @@ Bool_t PChannel::Init() { int PChannel::Decay() { // The N-body phase-space decay function is based on the CERNLIB - // routine GENBOD. + // routine GENBOD. // // Return code: // @@ -883,7 +883,7 @@ int PChannel::Decay() { if (!init_done) Init(); if (parent->IsActive() == kFALSE) { - for (Int_t k=1; k<=n; k++) + for (Int_t k=1; k<=n; k++) ptcls[k]->SetInActive(); // inactivate children return STATUS_OK; } @@ -891,10 +891,10 @@ int PChannel::Decay() { for (Int_t k=1; k<=n; k++) { if (ptcls[k]->ID() > 0) ptcls[k]->SetM(makeStaticData()->GetParticleMass(ptcls[k]->ID())); - ptcls[k]->SetActive(); + ptcls[k]->SetActive(); } // re-activate children as they are de-activated in PReaction - + //Vertex calculations have to be done in each decay vCreation = parent->GetVertex(); // creation vertex of parent tCreation = parent->T(); // creation time of parent @@ -916,7 +916,7 @@ int PChannel::Decay() { } for (int bu=0; buModify(ptcls, decay_done, &real_size, n+1); - } + } w = parent->W(); int i, nProd = n; @@ -931,12 +931,12 @@ int PChannel::Decay() { bulk[bu]->Modify(ptcls, decay_done, &real_size, n+1); return status; - } + } if (tcSrc) { // parent is transport code (file input) status = ReadFileInput(); return status; - } + } if (dlSrc) { // parent is a Dilepton MakeDilepton(); @@ -957,8 +957,8 @@ int PChannel::Decay() { // Print(); return status = 4; // not enough energy to do the channel } - - Int_t do_flag = 1, + + Int_t do_flag = 1, distr_status = 0; while (do_flag) { // do genbod loop until all distributions are convinced status = Genbod(nProd); // induce first isotropic decay @@ -966,7 +966,7 @@ int PChannel::Decay() { for (int j=0; jGetStatus() == 0) && dist[j]->GetEnable()) { //all particles set - if (dist[j]->IsNotRejected() == kFALSE) { + if (dist[j]->IsNotRejected() == kFALSE) { distr_status++; if (dist[j]->CheckAbort()) { do_flag = 1000000;//set to big number, next step will abort @@ -983,7 +983,7 @@ int PChannel::Decay() { } } else { do_flag = 0; - } + } } //end while (do_flag) for (int j=0; jW(); Double_t hidden_generator_weight = ptcls[0]->GenW(); Double_t inv_generator_weight = ptcls[0]->InvGenW(); Double_t dynamic_range = 1.; - if (*weight_version) { + if (*weight_version) { #if 1 - Double_t generator_weight = hidden_generator_weight; + Double_t generator_weight = hidden_generator_weight; for (int j=0; jGetStatus() == 0) && dist[j]->GetEnable()){ //all particles set dist_weight[j] = dist[j]->GetWeight(); @@ -1023,16 +1023,16 @@ int PChannel::Decay() { } } } - + for (int j=0; jGetStatus() == 0) && dist[j]->GetEnable()){ //all particles set if (((dist[j]->GetVersionFlag()) & VERSION_INVERT_WEIGHTING) || ((dist[j]->GetVersionFlag()) & VERSION_WEIGHTING)) { - + Double_t local_weight = dist_weight[j]; //weighting is enabled - - if ((dist[j]->GetVersionFlag()) & VERSION_GENERATOR_MC) { + + if ((dist[j]->GetVersionFlag()) & VERSION_GENERATOR_MC) { //Pure function models //--> These are function for which we have //Int dx dsigma/dx = sigma @@ -1040,7 +1040,7 @@ int PChannel::Decay() { //This is the Delta_x in the MC integral local_weight *= dynamic_range; dynamic_range = 1.; - } + } if (dist[j]->GetExpectedWeightMean() > 0) { //re-scaling is allowed if ((dist[j]->GetVersionFlag()) & VERSION_INVERT_WEIGHTING) { @@ -1051,10 +1051,10 @@ int PChannel::Decay() { dist[j]->IncrementWeightSum(local_weight, 1./generator_weight); } local_weight *= (dist[j]->GetExpectedWeightMean()/dist[j]->CalcWeightMean()); - } + } new_weight *= local_weight; //fold with local weights - + dist_weight_sum[j] += local_weight; dist_counter[j]++; } else { //for sampling models use just the mean @@ -1062,24 +1062,24 @@ int PChannel::Decay() { new_weight *= dist[j]->GetExpectedWeightMean(); dist_weight_sum[j] += dist[j]->GetExpectedWeightMean(); dist_counter[j]++; - + //If we have broad resonances, like in the case //Delta->dilepton + gamma we have to keep the information //about the generator - + //this is only possible if we "push" the history of used generators //to the next PChannel(s) - + //check if weight is what we expect Double_t local_weight = dist_weight[j]; // hidden_generator_weight *=local_weight; - + Double_t inv_local_weight = 0.; - if (local_weight > 0.) + if (local_weight > 0.) inv_local_weight = (1./local_weight); dist[j]->IncrementWeightSum(inv_local_weight); // inv_generator_weight*=(inv_local_weight/dist[j]->CalcWeightMean()); - } + } // else { // new_weight*=dist_weight[j]; // } @@ -1087,10 +1087,10 @@ int PChannel::Decay() { } } - if (new_weight <= 0.) + if (new_weight <= 0.) return status = 2; // something wrong - weight_sum += new_weight; + weight_sum += new_weight; #endif } @@ -1099,8 +1099,8 @@ int PChannel::Decay() { // } TVector3 beta = parent->BoostVector(); // inv. mass velocity vector - if (beta.Mag() > 0.) - for (i=1; i<=nProd; ++i) + if (beta.Mag() > 0.) + for (i=1; i<=nProd; ++i) ptcls[i]->Boost(beta); for (i=1; i<=nProd; ++i) { @@ -1110,7 +1110,7 @@ int PChannel::Decay() { ptcls[i]->SetGenW(hidden_generator_weight); ptcls[i]->SetInvGenW(inv_generator_weight); } - + #if 0 for (int j=0; jGetStatus() == 0) && dist[j]->GetEnable()){ //all particles set @@ -1129,11 +1129,11 @@ int PChannel::Genbod(int nProd) { // N-body phase-space decay of a particle in its rest frame, // wrapper function to all the distribution methods - int i; - double conserve_e = 0., + int i; + double conserve_e = 0., em[nProd]; Bool_t PDistribution_sampleMass = kFALSE; - int PDistribution_sampleMomentum = 0, + int PDistribution_sampleMomentum = 0, PDistribution_sampleModels = 0; //MASS SAMPLING @@ -1151,15 +1151,15 @@ int PChannel::Genbod(int nProd) { conserve_e = ptcls[0]->M(); //take into account possible reconstruct - if (PDistribution_sampleMass == kFALSE) { //No user-defined distribution + if (PDistribution_sampleMass == kFALSE) { //No user-defined distribution Warning("Genbod","No mass sampling model(s) found in %s", makeStaticData()->GetDecayNameByKey(decay_key)); return status = 6; } else { //Recalculate total energy (for user-defined mass sampling) - for (i=0; i1) ) { // cout << "***********" << endl; // for (i=0;i<=nProd;++i) ptcls[i]->Print(); @@ -1181,14 +1181,14 @@ int PChannel::Genbod(int nProd) { if (dist[j]->SampleMomentum()) { if (!PDistribution_sampleMomentum) last_sampling_model = j; PDistribution_sampleMomentum++; - } + } } if (PDistribution_sampleMomentum > 1) { Warning("Genbod", "More than one momentum sampling model found in %s", makeStaticData()->GetDecayNameByKey(decay_key)); Warning("Genbod","Model 1: [%s]", dist[last_sampling_model]->GetIdentifier()); Warning("Genbod","Model 2: [%s]", dist[j]->GetIdentifier()); - + return status=6; } } @@ -1216,7 +1216,7 @@ int PChannel::Genbod(int nProd) { } //check conservation of energy again - for (i=0; iE(); if (fabs(conserve_e) > 1.e-8) { @@ -1243,32 +1243,32 @@ int PChannel::SetDistribution(PDistribution *distribution) { Int_t check = 0; PParticle *p0 = ptcls[0]; - - //The grand(grand)parent and sisters not known yet at this stage, + + //The grand(grand)parent and sisters not known yet at this stage, //will be done "online" //The only thing what I can do here is to have a 1st rough look distribution->Reset(); // if (p0->ID() < 1000) //skip quasi-particles -// check = distribution->SetParticle(p0, p0->ID(), PARTICLE_LIST_PARENT); +// check = distribution->SetParticle(p0, p0->ID(), PARTICLE_LIST_PARENT); // else -// check = distribution->SetParticle(p0, DISTRIBUTION_QUASI_PID, PARTICLE_LIST_PARENT); +// check = distribution->SetParticle(p0, DISTRIBUTION_QUASI_PID, PARTICLE_LIST_PARENT); //either one of these methods has to work: - check = distribution->SetParticle(p0, p0->ID(), PARTICLE_LIST_PARENT); + check = distribution->SetParticle(p0, p0->ID(), PARTICLE_LIST_PARENT); if (check<0 && (p0->ID() > 1000)) - check = distribution->SetParticle(p0, DISTRIBUTION_QUASI_PID, PARTICLE_LIST_PARENT); + check = distribution->SetParticle(p0, DISTRIBUTION_QUASI_PID, PARTICLE_LIST_PARENT); for (int i=0;iSetParticle(ptcls[i+1], ptcls[i+1]->ID(), PARTICLE_LIST_DAUGHTER); + check += distribution->SetParticle(ptcls[i+1], ptcls[i+1]->ID(), PARTICLE_LIST_DAUGHTER); } - + check += distribution->CheckDaughters(); //Are we still a daughter missing? if (!strcmp(distribution->GetName(), "_testmodel")) cout << "Check number in PChannel::SetDistribution: " << check << endl; - + //now check if this worked out.... if (check < 0) { //forget it! @@ -1282,7 +1282,7 @@ int PChannel::SetDistribution(PDistribution *distribution) { //Clone the distribution (done before in PDistributionManagerUtil) distribution = (PDistribution*) distribution->Clone(); - + if (distribution->GetStatus() == 0) { //we are complete //cout << distribution->GetName() << " attached at" << distribution_position << endl; if (distribution->Init() == kFALSE) { @@ -1305,7 +1305,7 @@ int PChannel::SetDistribution(PDistribution *distribution) { distribution->GetDepth(); //Init sub-models dist[distribution_position] = distribution; distribution_position++; - } + } //printf(" [incomplete] %s\n",distribution->GetDescription()); } } else { //END init_done @@ -1329,11 +1329,11 @@ char const *PChannel::GetName(void) const { } return makeStaticData()->GetDecayNameByKey(decay_key); } - if (thSrc) + if (thSrc) return " Fireball"; - else if (tcSrc) + else if (tcSrc) return " File Input"; - else if (dlSrc) + else if (dlSrc) return " Dilepton source"; return ""; } @@ -1348,12 +1348,12 @@ void PChannel::PrintReport() const { // ((dist[j]->GetVersionFlag()) & VERSION_WEIGHTING)) { if (dist[j]->GetExpectedWeightMean() > 0) { //re-scaling is allowed - cout << "Expected mean: " << dist[j]->GetExpectedWeightMean() << " Reached: " + cout << "Expected mean: " << dist[j]->GetExpectedWeightMean() << " Reached: " << dist_weight_sum[j]/dist_counter[j] << endl; cout << "Calc mean: " << dist[j]->CalcWeightMean() << endl; } else { cout << "Mean: " << dist_weight_sum[j]/dist_counter[j] << endl; - } + } // } } } @@ -1373,28 +1373,28 @@ void PChannel::PrintReaction(Int_t check_key) const { int j; - if (thSrc) + if (thSrc) printf("Fireball"); - else if (tcSrc) + else if (tcSrc) printf("File Input"); - else if (dlSrc) + else if (dlSrc) printf("Dilepton source"); - else + else printf("%s", makeStaticData()->GetParticleName(ipid[0])); printf(" --> %s", makeStaticData()->GetParticleName(ipid[1])); - for (j=2; j<=n; ++j) + for (j=2; j<=n; ++j) printf(" + %s",makeStaticData()->GetParticleName(ipid[j])); cout << endl; } void PChannel::PrintNew() { - + Long_t nPattern = 0; for (int j=0; jGetEnable() != 0) { nPattern += ((j<64) ? 1<<(j+1) : 0); } - if (nPattern & (~fEnablePattern)) { + if (nPattern & (~fEnablePattern)) { fEnablePattern |= nPattern; Print(); } @@ -1410,9 +1410,9 @@ void PChannel::Print(const Option_t *delme) const { printf(" Interaction model(s):\n"); //Distributions for (j=0;jGetEnable() != 0) { - if (dist[j]->GetStatus() == 0) { //all particles set + if (dist[j]->GetStatus() == 0) { //all particles set dist[j]->GetDepth(); //Init sub-models if (dist[j]->Path()) printf(" [%s] %s {/%s}",dist[j]->GetIdentifier(),dist[j]->GetDescription(),dist[j]->Path()); @@ -1424,7 +1424,7 @@ void PChannel::Print(const Option_t *delme) const { printf(" [%s,tentative] %s\n",dist[j]->GetIdentifier(),dist[j]->GetDescription()); if (delme != NULL && strcmp(delme,"debug") == 0) { dist[j]->Print(); - } + } } } @@ -1434,13 +1434,13 @@ void PChannel::Print(const Option_t *delme) const { printf(" Bulk Classes:\n"); if (pro_bulkdecay_pos) { printf(" Prologue: "); - for (j=0;jClassName() << "> "; cout << endl; } if (bulkdecay_pos) { printf(" Epilogue: "); - for (j=0;jClassName() << "> "; cout << endl; } @@ -1452,7 +1452,7 @@ Bool_t PChannel::AddBulk(PBulkInterface *mybulk) { //Add a bulk interface to the list //Each bulk object will be executed during the event loop //after the normal decay - + if (bulkdecay_pos == MAX_BULKDECAY ) { Error("AddBulk","MAX_BULKDECAY reached"); return kFALSE; @@ -1476,7 +1476,7 @@ Bool_t PChannel::AddPrologueBulk(PBulkInterface * mybulk) { Error("AddPrologueBulk","MAX_BULKDECAY reached"); return kFALSE; } - + if (pro_bulkdecay_pos && (pro_bulk[pro_bulkdecay_pos-1]->GetPriority() > mybulk->GetPriority())) { pro_bulk[pro_bulkdecay_pos] = pro_bulk[pro_bulkdecay_pos-1]; pro_bulk[pro_bulkdecay_pos-1] = mybulk; diff --git a/src/PChannelModel.cc b/src/PChannelModel.cc index 1383dca..4752d89 100644 --- a/src/PChannelModel.cc +++ b/src/PChannelModel.cc @@ -46,11 +46,11 @@ PChannelModel::PChannelModel(const Char_t *id, const Char_t *de, Int_t key) : Int_t alt_position = 0, path_position = 0; for (Int_t i=strlen(id); i>=0; i--) { - if (id[i] == '@') + if (id[i] == '@') alt_position = i; } - if (alt_position) { + if (alt_position) { alt_position++; //skip "@" } @@ -58,11 +58,11 @@ PChannelModel::PChannelModel(const Char_t *id, const Char_t *de, Int_t key) : strcpy(db_id, &(id[alt_position])); for (Int_t i=strlen(id); i>=alt_position; i--) { - if (id[i] == path_delim) + if (id[i] == path_delim) path_position = i; } - if (path_position) { + if (path_position) { path_position++; //skip "/" model_def_key = makeStaticData()-> MakeDirectoryEntry("modeldef", NMODEL_NAME, LMODEL_NAME, &(id[path_position])); @@ -74,7 +74,7 @@ PChannelModel::PChannelModel(const Char_t *id, const Char_t *de, Int_t key) : PUtils::Tokenize(&(id[alt_position]), parser_delim, arr1, &arr1_s); - if (path_position) { + if (path_position) { char *nid = new char[strlen(id)+1]; strcpy(nid,id); nid[path_position-1] = path_delim; @@ -101,8 +101,8 @@ PChannelModel::PChannelModel(const Char_t *id, const Char_t *de, Int_t key) : Int_t arr1_id[10+2]; arr1_id[0] = makeStaticData()->GetParticleID(arr1[0]); - - for (int i=1; i<=(arr1_s-2); i++) + + for (int i=1; i<=(arr1_s-2); i++) arr1_id[i] = makeStaticData()->GetParticleID(arr1[i+1]); key = makeStaticData()->GetDecayKey(arr1_id, arr1_s-2); @@ -117,7 +117,7 @@ PChannelModel::PChannelModel(const Char_t *id, const Char_t *de, Int_t key) : sec_key = makeStaticData()->GetSecondaryKey(key, model_def_key); if (sec_key > 0) { key = sec_key; - } else { + } else { key = makeStaticData()->AddAlias(makeStaticData()->GetDecayNameByKey(key), db_id); //defkey has to be stored for future use! makeDataBase()->SetParamInt (key, "defkey", &model_def_key); @@ -128,12 +128,12 @@ PChannelModel::PChannelModel(const Char_t *id, const Char_t *de, Int_t key) : //To make life more easy, add "default" track template Add(arr1[0], "parent"); - for (int i=1; i<=(arr1_s-2); i++) + for (int i=1; i<=(arr1_s-2); i++) Add(arr1[i+1], "daughter"); preliminary_particles = 1; } // end "decay" - if (alt_position) { + if (alt_position) { //reset ID: char *newid = new char[alt_position]; strncpy(newid, id, alt_position); @@ -154,7 +154,7 @@ PChannelModel::PChannelModel(const Char_t *id, const Char_t *de, Int_t key) : if (sec_key < 0) { //No sec. model is_channel = makeStaticData()->GetDecayIdxByKey(key); is_pid = makeStaticData()->GetParticleIDByKey(key); - } + } if (is_pid<0 && !is_channel) { Warning("PChannelModel", "Undetermined particle for key %i", key); @@ -170,7 +170,7 @@ PChannelModel::PChannelModel(const Char_t *id, const Char_t *de, Int_t key) : draw_option = 0; didx_option = -1; - + //some TF1 defaults... //ROOT6 @@ -232,7 +232,7 @@ PChannelModel::PChannelModel(const Char_t *id, const Char_t *de, Int_t key) : mc_max = 1000; //for the integration methods in Width-mesh calculation - if (is_pid >= 0) + if (is_pid >= 0) SetDynamicRange(PData::LMass(is_pid), PData::UMass(is_pid)); if ((is_channel>=0) && (sec_key<0)) { @@ -244,7 +244,7 @@ PChannelModel::PChannelModel(const Char_t *id, const Char_t *de, Int_t key) : didx_param = makeDataBase()->GetParamInt("didx"); scfactor_param = makeDataBase()->GetParamDouble("scfactor"); unstable_width = makeStaticData()->GetBatchValue("_system_unstable_width"); - + }; PDistribution *PChannelModel::Clone(const char *) const { @@ -274,7 +274,7 @@ PChannelModel *PChannelModel::GetSecondaryModel(const char *name) { Bool_t PChannelModel::SampleMass(Double_t*, Int_t*) { //Samples the masses of the known decay products (or single particle) //Order of particles is the same as in data base - + return kFALSE; } @@ -286,7 +286,7 @@ Double_t PChannelModel::EvalPar(const Double_t *x, const Double_t *params) { return Eval(x[0]); } - + Double_t PChannelModel::Eval(Double_t x, Double_t, Double_t, Double_t) const { Double_t res; Double_t my_x[11]; @@ -316,7 +316,7 @@ Double_t PChannelModel::Eval(Double_t x, Double_t, Double_t, Double_t) const { } Double_t PChannelModel::GetWeight(Double_t *mass, Int_t *didx) { - //Get the weight for the masses of the known decay products + //Get the weight for the masses of the known decay products //(or single particle) //Decay: Order of particles is the same as in data base, //mass[0] is the parent mass @@ -334,7 +334,7 @@ Double_t PChannelModel::GetWeight(Double_t *mass, Int_t *didx) { } TComplex PChannelModel::GetAmplitude(Double_t *mass, Int_t *didx) { - //Get the amplitude for the masses of the known decay products + //Get the amplitude for the masses of the known decay products //(or single particle) //Decay: Order of particles is the same as in data base, //mass[0] is the parent mass @@ -381,7 +381,7 @@ Bool_t PChannelModel::GetBR(Double_t mass, Double_t *br, Double_t totalwidth) { if (is_pid >= 0) return kFALSE; - + Double_t lwidth; //test if the GetWidth was overloaded @@ -390,7 +390,7 @@ Bool_t PChannelModel::GetBR(Double_t mass, Double_t *br, Double_t totalwidth) { *br = makeStaticData()->GetDecayBR(is_channel); return kTRUE; } - + //Make everything coherent to Dyn.Data Double_t sc = 1.; Double_t *scfactor = ≻ @@ -402,13 +402,13 @@ Bool_t PChannelModel::GetBR(Double_t mass, Double_t *br, Double_t totalwidth) { if (totalwidth < 0.) totalwidth = makeStaticData()->GetParticleTotalWidth(makeStaticData()->GetDecayParent(is_channel)); - if (totalwidth <= (*unstable_width)) + if (totalwidth <= (*unstable_width)) *br = makeStaticData()->GetDecayBR(is_channel); else { //if we have a local width, the BR is the partial width divided by total *br = lwidth/totalwidth; } - return kTRUE; + return kTRUE; } int PChannelModel::GetDepth(int) { diff --git a/src/PCommandList.cc b/src/PCommandList.cc index 1bcb45d..597348e 100644 --- a/src/PCommandList.cc +++ b/src/PCommandList.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////// -// +// // // Author: I. Froehlich // Written: 6.10.2007 @@ -59,13 +59,13 @@ Bool_t PCommandList::AddCommand(TObject *obj, const char *cmd, const char *basen TString tmp(basename); tmp += "_"; tmp += (level+1); - fNextP = new PCommandList(obj, tmp, cmd); + fNextP = new PCommandList(obj, tmp, cmd); fNext.SetString(PUtils::NewString(tmp)); return kTRUE; } else { TString tmp(GetName()); tmp += "_1"; - fNextP = new PCommandList(obj, tmp, cmd); + fNextP = new PCommandList(obj, tmp, cmd); fNext.SetString(PUtils::NewString(tmp)); return kTRUE; } @@ -91,7 +91,7 @@ Bool_t PCommandList::GetCommand(char **cmd, int level, TObject **obj) { } if (fNextP) return fNextP->GetCommand(cmd, level-1, obj); - + if (fNext.GetString().Data() && strlen(fNext.GetString().Data())) { fNextP = (PCommandList*)gROOT->FindObject(fNext.GetString().Data()); if (!fNextP) return kFALSE; @@ -102,7 +102,7 @@ Bool_t PCommandList::GetCommand(char **cmd, int level, TObject **obj) { } void PCommandList::Print(const Option_t *) const { - + if (fTool.GetString().Data() && strlen(fTool.GetString().Data())) { cout<< "<" << fTool.GetString().Data() << "> " << fCmd.GetString() << endl; } else { @@ -121,8 +121,8 @@ void PCommandList::Print(const Option_t *) const { Int_t PCommandList::Write(const char *name, Int_t option, Int_t bufsize) const { - - if (fNextP) + + if (fNextP) fNextP->Write(name, option, bufsize); return TObject::Write(name, option, bufsize); } diff --git a/src/PComplexBreitWigner.cc b/src/PComplexBreitWigner.cc index e3d0402..83bc93c 100644 --- a/src/PComplexBreitWigner.cc +++ b/src/PComplexBreitWigner.cc @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////// // -// Resonance mass sampling from a +// Resonance mass sampling from a // complex breit-wigner propagator // for each daughter decay channel, a list of // interference channel can be set up @@ -46,9 +46,9 @@ PDistribution* PComplexBreitWigner::Clone(const char *) const { Bool_t PComplexBreitWigner::SampleMass(Double_t *mass, Int_t *didx) { // Resonance mass sampling from a relativistic - // Breit-Wigner + // Breit-Wigner - if (didx) + if (didx) didx_option = didx[0]; else didx_option = -1; @@ -63,20 +63,20 @@ Double_t PComplexBreitWigner::GetWeight(Double_t *mass, Int_t *didx) { void PComplexBreitWigner::ReadModes(void) { if (readModesDone) return; - + //on the first call, loop over decay modes Int_t listkey = -1; num_decaychannels = 0; while (makeDataBase()->MakeListIterator(primary_key, "pnmodes", "link", &listkey)) { - + int_index[num_decaychannels] = makeStaticData()->GetDecayIdxByKey(listkey); num_terms[num_decaychannels] = 0; //By default loacl amplitude is (1,0) //Do not forget term "0" is always the local term int_phase[num_decaychannels][0] = 0; int_ampl[num_decaychannels][0] = 1; - + num_decaychannels++; if (num_decaychannels == COMPLEX_MAX_DECAYCHANNELS) { @@ -93,8 +93,8 @@ void PComplexBreitWigner::AddAmplitude(int idx, double ampl, double phase) { //loop over modes and try to find the idx int found_idx = -1; - for (int i=0; i= 0) { int_phase[found_idx][1] = params[3]; @@ -155,7 +155,7 @@ Double_t PComplexBreitWigner::EvalPar(const Double_t *x, const Double_t *params) } return Eval(x[0]); }; - + Double_t PComplexBreitWigner::Eval(Double_t x, Double_t, Double_t, Double_t) const { Double_t res; Double_t my_x[11]; @@ -195,7 +195,7 @@ void PComplexBreitWigner::ReadModels(void) { if (makeDataBase()->GetParamTObj (int_key[i][j], "model", &t_result)) p[i][j] = (PChannelModel*)t_result; else { - p[i][j] = NULL; + p[i][j] = NULL; Warning("ReadModels", "No term model found: this will not work"); } p[i][j] = (PChannelModel*)t_result; @@ -205,10 +205,10 @@ void PComplexBreitWigner::ReadModels(void) { }; TComplex PComplexBreitWigner::GetAmplitudeLocal(Double_t *mass, Int_t num) { - + int didx_local = int_index[num]; double m = mass[0], - m2 = m*m, + m2 = m*m, mm = mr*mr-m2; global_weight_scaling = makeDynamicData()->GetParticleScalingFactor(is_pid); @@ -216,25 +216,25 @@ TComplex PComplexBreitWigner::GetAmplitudeLocal(Double_t *mass, Int_t num) { double wmt = 1.; if (!GetWidth(m, &width)) return -1; - + double partial_width; if (didx_local >= 0) { if (!GetWidth(m, &partial_width, didx_local)) return -1; //if (partial_width > width*1.1) { //} - } else + } else partial_width = width; TComplex denom(mm, m*width); - + TComplex numerator(m*sqrt(partial_width*global_weight_scaling*wmt), 0); - + numerator /= denom; TComplex ampl(int_ampl[num][0], int_phase[num][0], kTRUE); //local amplitude numerator *= ampl; - - + + //Now loop over possible interference terms TComplex interference(0, 0); @@ -278,9 +278,9 @@ void PComplexBreitWigner::Print(const Option_t *) const { //loop over decay modes for (int i=0; ibmax) bup = bmax; bmin = blow; - + Double_t sigreac = 3.1416*(bup*bup - blow*blow)*10.; // in mb - Double_t frac = sigreac/sigmax*100; // in % + Double_t frac = sigreac/sigmax*100; // in % // average Apart Double_t Apart = (AP*pow(AT,0.667) + AT*pow(AP,0.667)) @@ -62,13 +62,13 @@ void PCross::print(int Part=0, Double_t blow, Double_t bup) { // ratio of pi-/pi0 in isobar model Double_t pim = (5.*N*(N-1.) + N*Z)/(Z*(Z-1.) + N*(N-1) + 4.*N*Z); // ratio of pi+/pi0 in isobar model - Double_t pip = (5.*Z*(Z-1.) + N*Z)/(Z*(Z-1.) + N*(N-1) + 4.*N*Z); + Double_t pip = (5.*Z*(Z-1.) + N*Z)/(Z*(Z-1.) + N*(N-1) + 4.*N*Z); Double_t bstep = (bup-blow)/100.; // in fm Double_t sum1 = 0.; Double_t sum2 = 0.; - for (Int_t i=1;i<101;i++){ + for (Int_t i=1;i<101;i++){ Double_t b=blow + i*bstep; sum1 = sum1+b; sum2 = sum2 + b*(Npart(AP,AT,b)+Npart(AT,AP,b)); // Gosset function @@ -80,7 +80,7 @@ void PCross::print(int Part=0, Double_t blow, Double_t bup) { cout << endl; cout <<"For reaction ("<geom = "<Gosset = "<< NGosset<< endl; cout <<" sigR = "<< sigreac<<" mb ("<0.5) { // Ap>At if (nu>0.5*(1.0+beta)) { - F= (1.0-pow((1.0-pow(mu,2)),1.5))*sqrt(1.0-pow((beta/nu),2)); + F= (1.0-pow((1.0-pow(mu,2)),1.5))*sqrt(1.0-pow((beta/nu),2)); } else { - F = 0.75*sqrt(1.0-nu)*pow(((1.0-beta)/nu),2) - - 0.125*(3.0*sqrt(1.0-nu)/mu - + F = 0.75*sqrt(1.0-nu)*pow(((1.0-beta)/nu),2) + - 0.125*(3.0*sqrt(1.0-nu)/mu - ((1.0-pow((1.0-pow(mu,2)),1.5))* sqrt(1.0-pow((1.0-mu),2)))/pow(mu,3))*pow(((1.0-beta)/nu),3); } - } else { // Ap0.5*(1.0-beta)) { F = 0.75*sqrt(1.0-nu)*pow(((1.0-beta)/nu),2) - 0.125*(3.0*sqrt(1.0-nu) - 1.0)*pow(((1.0-beta)/nu),3); @@ -142,12 +142,12 @@ Double_t PCross::Npart(int AP, int AT, Double_t b) { } -Double_t PCross::ratiosignew(Double_t T, Double_t mm) { +Double_t PCross::ratiosignew(Double_t T, Double_t mm) { // T in MeV, mm = MeV // mt scaling applied to the eta and a meson of mass m(1) - // using integral[m,infinity] of dsigma/dmt = 1/T*mt**3/2*exp(-mt/T) + // using integral[m,infinity] of dsigma/dmt = 1/T*mt**3/2*exp(-mt/T) - Double_t a=T*exp(-mm/T)*sqrt(mm)*(1.5*T+mm) + Double_t a=T*exp(-mm/T)*sqrt(mm)*(1.5*T+mm) + 0.75*1.772454*pow(T,2.5)*(1.-TMath::Erf(sqrt(mm/T))); Double_t b= T*exp(-547./T)*sqrt(547.)*(1.5*T+547.) + 0.75*1.772454*pow(T,2.5)*(1.-TMath::Erf(sqrt(547./T))); @@ -173,21 +173,21 @@ void PCross::print(char * Part, Double_t blow, Double_t bup) { } -void PCross::plot(char * Part, Double_t Rangl, Double_t Rangu, +void PCross::plot(char * Part, Double_t Rangl, Double_t Rangu, Double_t blow, Double_t bup, const char * Opt, Int_t color) { PCross::plot(makeStaticData()->GetParticleID(Part), Rangl,Rangu,blow,bup,Opt,color); } -void PCross::plot(int Part, Double_t Rangl,Double_t Rangu, +void PCross::plot(int Part, Double_t Rangl,Double_t Rangu, Double_t blow, Double_t bup, const char *Opt, Int_t color) { if (check(Part)) { TF1 *fn1 = new TF1("fn1",PCross::calc,Rangl,Rangu,7); fn1 -> SetParameters(Part,blow,bup,AT,ZT,AP,ZP); fn1 -> SetLineWidth(3); - fn1 -> SetLineColor(color); + fn1 -> SetLineColor(color); fn1 -> DrawCopy(Opt); delete fn1; } @@ -210,12 +210,12 @@ Double_t PCross::calc(Double_t *x, Double_t *par) { Double_t T = 1000.*calcT(Ene); // empirical meson temperature in MeV //Double_t bmin = 0.; Double_t bmax = 1.14*(pow(Ap,0.3333)+pow(At,0.3333)); // in fm - Double_t sigmax = 3.14159*bmax*bmax*10.; // in mb + Double_t sigmax = 3.14159*bmax*bmax*10.; // in mb if (bup>bmax) bup = bmax; //bmin = blow; - - Double_t sigreac = 3.1416*(bup*bup - blow*blow)*10.; // in mb + + Double_t sigreac = 3.1416*(bup*bup - blow*blow)*10.; // in mb if (doMult) sigreac = 1.; Double_t Apart = (Ap*pow(At,0.667) + At*pow(Ap,0.667)) @@ -228,7 +228,7 @@ Double_t PCross::calc(Double_t *x, Double_t *par) { // pion ratios in isobar model Double_t pim = (5.*N*(N-1.) + N*Z)/(Z*(Z-1.) + N*(N-1) + 4.*N*Z); - Double_t pip = (5.*Z*(Z-1.) + N*Z)/(Z*(Z-1.) + N*(N-1) + 4.*N*Z); + Double_t pip = (5.*Z*(Z-1.) + N*Z)/(Z*(Z-1.) + N*(N-1) + 4.*N*Z); Double_t bstep = (bup-blow)/100.; // in fm Double_t sum1 = 0.; @@ -242,7 +242,7 @@ Double_t PCross::calc(Double_t *x, Double_t *par) { Double_t NGosset = sum2/sum1; Double_t xa = Ene; // use TAPS data now (PRC 56 (1997) R2920) - + Double_t sigpi0; Double_t sigother; Double_t sigeta; @@ -263,40 +263,40 @@ Double_t PCross::calc(Double_t *x, Double_t *par) { Double_t kpi0 =1.05*sqrt(spi0CC*spi0CaCa)/pow(12*40,alfapi0); - Double_t spi0ApAt = kpi0*pow((Ap*At),alfapi0); + Double_t spi0ApAt = kpi0*pow((Ap*At),alfapi0); //extrapolate pi0 cross sec. (in mb) ppi0 = spi0ApAt/(sigmax*Apart); sigpi0 = ppi0*NGosset*sigreac; // in mb if (Part==7) { pom = sigpi0; } else if (Part==8) { - pom = sigpi0*pip; + pom = sigpi0*pip; } else { - pom = sigpi0*pim; + pom = sigpi0*pim; } } else { - Double_t setaCC = exp(0.470+4.860*log(xa)-1.321*pow(log(xa),2)); + Double_t setaCC = exp(0.470+4.860*log(xa)-1.321*pow(log(xa),2)); // eta C + C - Double_t setaCaCa = exp(2.6885+4.2342*log(xa)-1.774*pow(log(xa),2)); + Double_t setaCaCa = exp(2.6885+4.2342*log(xa)-1.774*pow(log(xa),2)); // eta Ca + Ca Double_t alfaeta = 1.0757 - 0.19524*xa; - Double_t keta = 1.05*sqrt(setaCC*setaCaCa)/pow(12*40,alfaeta); - Double_t setaApAt = keta*pow((Ap*At),alfaeta); + Double_t keta = 1.05*sqrt(setaCC*setaCaCa)/pow(12*40,alfaeta); + Double_t setaApAt = keta*pow((Ap*At),alfaeta); // extrapolate eta cross sec. (in mb) peta = setaApAt/(sigmax*Apart); sigeta = peta*NGosset*sigreac; // in mb - - pother = peta*ratiosignew(T,(1000*makeStaticData()->GetParticleMass(Part))); + + pother = peta*ratiosignew(T,(1000*makeStaticData()->GetParticleMass(Part))); // mt-scale eta for other particles - sigother = pother*NGosset*sigreac; + sigother = pother*NGosset*sigreac; if (Part==17) { pom = sigeta; } else { pom = sigother; - } + } } return pom; // return cross section in mb } diff --git a/src/PDalitzDecay.cc b/src/PDalitzDecay.cc index 29bcf56..2968a8c 100644 --- a/src/PDalitzDecay.cc +++ b/src/PDalitzDecay.cc @@ -1,7 +1,7 @@ ///////////////////////////////////////////////////////////////////// -// +// // Dalitz decay following Ref. 12,15 -// +// // Author: I. Froehlich ///////////////////////////////////////////////////////////////////// @@ -37,21 +37,21 @@ PDalitzDecay::PDalitzDecay(const Char_t *id, const Char_t *de, Int_t key) : //--> from PData Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(primary_key, tid); // retrieve current mode info parent_id = makeStaticData()->GetDecayParentByKey(primary_key); - if (tid[0] != 2) + if (tid[0] != 2) Warning("PDalitzDecay", "Only 2 body decay"); //ee or mumu? if (makeStaticData()->IsParticle(tid[1], "dilepton") || - makeStaticData()->IsParticle(tid[2], "dilepton")) + makeStaticData()->IsParticle(tid[2], "dilepton")) sw=0; else if (makeStaticData()->IsParticle(tid[1], "dimuon") || - makeStaticData()->IsParticle(tid[2], "dimuon")) + makeStaticData()->IsParticle(tid[2], "dimuon")) sw=1; - else + else Warning("PDalitzDecay", "%s: No dilepton/dimuon", de); if (makeStaticData()->IsParticle(tid[1], "dilepton") || @@ -68,33 +68,33 @@ PDalitzDecay::PDalitzDecay(const Char_t *id, const Char_t *de, Int_t key) : } if (sw==0) { // e+e- - mass_e = makeStaticData()->GetParticleMass("e-"); + mass_e = makeStaticData()->GetParticleMass("e-"); mass_ee = 2.*mass_e; - } + } else { // mu+mu- - mass_e = makeStaticData()->GetParticleMass("mu-"); + mass_e = makeStaticData()->GetParticleMass("mu-"); mass_ee = 2.*mass_e; } //--> from PData - + mass_x = 0.; if (makeStaticData()->IsParticle(parent_id, "pi0") || makeStaticData()->IsParticle(parent_id, "eta") || makeStaticData()->IsParticle(parent_id, "eta'") || - makeStaticData()->IsParticle(parent_id, "J/Psi")) + makeStaticData()->IsParticle(parent_id, "J/Psi")) flag = 1; else if (makeStaticData()->IsParticle(parent_id, "w")) { flag = 2; mass_x = mass_pi0; - } else if (makeStaticData()->IsParticle(parent_id, "D0") || + } else if (makeStaticData()->IsParticle(parent_id, "D0") || makeStaticData()->IsParticle(parent_id, "NS110")) { flag = 3; mass_x = mass_n; - } else if (makeStaticData()->IsParticle(parent_id, "D+") || + } else if (makeStaticData()->IsParticle(parent_id, "D+") || makeStaticData()->IsParticle(parent_id, "NS11+")) { flag = 3; mass_x = mass_p; - } else if (makeStaticData()->IsParticle(parent_id, "pn")) { + } else if (makeStaticData()->IsParticle(parent_id, "pn")) { flag = 3; mass_x = mass_p+mass_n; } else if (makeStaticData()->IsParticle(parent_id,"phi")) { @@ -106,24 +106,24 @@ PDalitzDecay::PDalitzDecay(const Char_t *id, const Char_t *de, Int_t key) : //-->used for FDalitz pi0 = makeStaticData()->GetParticleID("pi0"); - eta = makeStaticData()->GetParticleID("eta"); + eta = makeStaticData()->GetParticleID("eta"); eta_prime = makeStaticData()->GetParticleID("eta'"); - w = makeStaticData()->GetParticleID("w"); - Delta_0 = makeStaticData()->GetParticleID("D0"); - Delta_plus = makeStaticData()->GetParticleID("D+"); + w = makeStaticData()->GetParticleID("w"); + Delta_0 = makeStaticData()->GetParticleID("D0"); + Delta_plus = makeStaticData()->GetParticleID("D+"); phi = makeStaticData()->GetParticleID("phi"); - S11_0 = makeStaticData()->GetParticleID("NS110"); + S11_0 = makeStaticData()->GetParticleID("NS110"); S11_plus = makeStaticData()->GetParticleID("NS11+"); useQED = 0; flatMD = 0; - if (sw == 0) + if (sw == 0) ml = makeStaticData()->GetParticleMass("dilepton"); // dilepton mass threshold - else + else ml = makeStaticData()->GetParticleMass("dimuon"); - mass_parent = makeStaticData()->GetParticleMass(parent_id); + mass_parent = makeStaticData()->GetParticleMass(parent_id); draw_parent_mass = -1.; //only for draw option rejection_flag = (makeStaticData()->IsParticle(parent_id,"eta'")) ? 1 : // eta' @@ -141,7 +141,7 @@ PDistribution* PDalitzDecay::Clone(const char *) const { Bool_t PDalitzDecay::Init(void) { //Init function called once for each PChannel - + //looking for parent. This is mandatory parent = GetParticle("parent"); if (!parent) { @@ -160,7 +160,7 @@ Bool_t PDalitzDecay::Init(void) { other = daughter1; dilepton = daughter2; } - + return kTRUE; }; @@ -185,13 +185,13 @@ Bool_t PDalitzDecay::SampleMass(void) { SampleMass(&masses[0]); //Call Coupled-Channel wrapper other->SetM(masses[others_position]); - + dilepton->SetM(masses[dilepton_position]); return kTRUE; }; Bool_t PDalitzDecay::SampleMass(Double_t *mass, Int_t *) { - sampleMD(mass[0], parent_id, + sampleMD(mass[0], parent_id, mass[dilepton_position], mass[others_position]); return kTRUE; }; @@ -212,7 +212,7 @@ Double_t PDalitzDecay::GetWeight(void) { Int_t maxmesh=200; Double_t mmin=PData::LMass(parent->ID()); // mass threshold Double_t mmax=PData::UMass(parent->ID()); // mass ceiling - + Double_t dm=(mmax-mmin)/(maxmesh-1.); // mass increment for the mesh integral = new PMesh(maxmesh,"mesh2"); integral->SetMin(mmin); @@ -221,7 +221,7 @@ Double_t PDalitzDecay::GetWeight(void) { Double_t local_int=0; Double_t mm=mmin+j*dm; // update mass on the mesh for (int i=0;i<1000;i++) { - sampleMD(mm, parent_id, + sampleMD(mm, parent_id, masses[dilepton_position], masses[others_position]); local_int+=dGdM(parent_id,masses[dilepton_position],mm); @@ -238,9 +238,9 @@ Double_t PDalitzDecay::GetWeight(void) { // return GetWeight(&masses[0]); //Pluto weight should be in units of probability - return (GetWeight(&masses[0]) / + return (GetWeight(&masses[0]) / makeDynamicData()->GetParticleTotalWidth(parent->M(),parent_id)); - // return GetWeight(&masses[0]) / + // return GetWeight(&masses[0]) / // makeStaticData()->GetParticleTotalWidth(parent_id); }; @@ -252,7 +252,7 @@ Double_t PDalitzDecay::GetWeight(Double_t *mass, Int_t *) { }; Bool_t PDalitzDecay::GetWidth(Double_t mass, Double_t *width, Int_t) { - if (makeStaticData()->GetPWidx(is_channel) == -1) + if (makeStaticData()->GetPWidx(is_channel) == -1) return 0.; // Disabled --> BUGBUG why not static? if (!makeStaticData()->GetPWidx(is_channel) || width_init == 0) { // Enter below only on the first call @@ -262,8 +262,8 @@ Bool_t PDalitzDecay::GetWidth(Double_t mass, Double_t *width, Int_t) { mmin=makeStaticData()->GetDecayEmin(is_channel); // mass threshold for the decay Double_t w0 = 1.; // starting weight - - if (PData::IsMDalitz(is_channel)) + + if (PData::IsMDalitz(is_channel)) w0 = photon_br;// if meson Dalitz decay... // ...then scale by BR of the corresponding real-photon decay (from PBR[] table) mmax = PData::UMass(parent_id); // mass ceiling @@ -277,7 +277,7 @@ Bool_t PDalitzDecay::GetWidth(Double_t mass, Double_t *width, Int_t) { Info("GetWidth", "Creating mesh in %s (%f,%f)", makeStaticData()-> GetDecayName(is_channel), mass_threshold, mass_ceiling); #endif - + mesh = new PMesh(maxmesh-2, "mesh"); for (int i=0; iGetParticleMass(parent_id); - if (draw_parent_mass > 0) + mass[0] = makeStaticData()->GetParticleMass(parent_id); + if (draw_parent_mass > 0) mass[0] = draw_parent_mass; mass[dilepton_position] = x; mass[others_position] = mass_x; @@ -352,12 +352,12 @@ double PDalitzDecay::dGdM(const int &id, const double &m, const double &ecm) { if (mecm-mass_x) return 0.; - - double f1 = mass_e/m, - f2 = f1*f1, + + double f1 = mass_e/m, + f2 = f1*f1, a = 1.-4.*f2, - b = 1.+2.*f2, - y = sqrt(a)*b/m, c, + b = 1.+2.*f2, + y = sqrt(a)*b/m, c, z = -1; switch (flag) { @@ -365,7 +365,7 @@ double PDalitzDecay::dGdM(const int &id, const double &m, const double &ecm) { c = m/ecm; z = 1.-c*c; z *= p1*z*z; // Ref 12 Eq. 3.36 - + break; case 2: // vector meson (w) c = ecm*ecm; @@ -400,9 +400,9 @@ double PDalitzDecay:: FDalitz(const int &id, const double &m, double ecm) { if (id==Delta_0 || id==S11_0 || id==Delta_plus || id==S11_plus) { // For Delta, N* we need the matrix element in addition Double_t mn = 0.; - if (id==Delta_0 || id==S11_0) + if (id==Delta_0 || id==S11_0) mn = mass_n; - else if (id==Delta_plus || id==S11_plus) + else if (id==Delta_plus || id==S11_plus) mn = mass_p; double mm = ecm+mn; double ff = 2.7; @@ -414,12 +414,12 @@ double PDalitzDecay:: FDalitz(const int &id, const double &m, double ecm) { // sum = (mn-m-md)*(mn+m-md)* // Eq. 3.54 of Ref 4 // sum = (1./9.)*((md-mn)*(md-mn)-m2)* //from PRC 58, 447 sum = ((md-mn)*(md-mn)-m2)* - (7.*md4 + 14.*md2*m2 + 3.*m4 + 8.*md3*mn + 2.*md2*mn2 + + (7.*md4 + 14.*md2*m2 + 3.*m4 + 8.*md3*mn + 2.*md2*mn2 + 6.*m2*mn2 + 3.*mn4); return sum*f*f; } - if (useQED) return 1.; // QED form factor + if (useQED) return 1.; // QED form factor //Self-defined form factor if (formfactor_model) { double ff = formfactor_model->GetWeight((Double_t*)&m); @@ -432,29 +432,29 @@ double PDalitzDecay:: FDalitz(const int &id, const double &m, double ecm) { } else if (id == eta) { f = 1.-m2/0.5184; return 1./(f*f); - } else if (id == eta_prime) + } else if (id == eta_prime) return 0.33939776/( (0.5776-m2)*(0.5776-m2) + 0.005776); else if (id == w) return 0.17918225/( (0.4225-m2)*(0.4225-m2) + 0.000676); else if (id == phi) { f = 1.-m2/(0.77*0.77); - return 1./(f*f); - } else if (id == makeStaticData()->GetParticleID("J/Psi")) - return 1.; - + return 1./(f*f); + } else if (id == makeStaticData()->GetParticleID("J/Psi")) + return 1.; + return 0.; } -void PDalitzDecay::sampleMD(const double &ecm, const int &id, +void PDalitzDecay::sampleMD(const double &ecm, const int &id, double &m, const double &m1) { - // Mass sampling algorithm in case of Dalitz decay to a dilepton + // Mass sampling algorithm in case of Dalitz decay to a dilepton // and the a second particle whose mass is taken to be fixed. - // Arguments: parent cm energy, parent id, dilepton mass + // Arguments: parent cm energy, parent id, dilepton mass // (to be returned), other product mass (fixed) // // sampling does not work for eta->gmumu ===> adjust the bounding function - // or find better method! + // or find better method! if (flatMD) { // for test purposes sample a flat mass distribution @@ -490,7 +490,7 @@ void PDalitzDecay::sampleMD(const double &ecm, const int &id, double p2 = -1, mi, a, y, bw = -1, a1 = -1, a2, f; - if (rejection_flag == 0 && sw == 1) + if (rejection_flag == 0 && sw == 1) p1 = dGdM(id,ml+0.1,ecm); // for mumu decay add a bit to get peak if (rejection_flag == 1) b /= ecm; // adjust parameter for eta' @@ -506,13 +506,13 @@ void PDalitzDecay::sampleMD(const double &ecm, const int &id, area = log(mx/ml); if (rejection_flag == 1) area *= 2.; // adjust if eta' } - + //__________________________________________________________________ // The rejection method is used for mass sampling: // The test function must be integrable, invertible, and bounding the actual // distribution function from above over the range of the variable (mass); // see e.g. Ref 6. - + do { // enter the rejection-method loop a = area * PUtils::sampleFlat(); // sample a test area 0 < a(m) < total area @@ -532,9 +532,9 @@ void PDalitzDecay::sampleMD(const double &ecm, const int &id, } y = dGdM(id, m, ecm); // y(m) is the actual distribution function - + } while (f*PUtils::sampleFlat() > y);// compare with f(m) and accept or reject - + rejection_flag = stored_rejection_flag; if (f < y) m = ml; //method fails, return minimum mass @@ -544,26 +544,26 @@ double PDalitzDecay:: PhotonBR(const int &id) { // Looks up (from PBR[]) the static BR for a meson with a Dalitz decay // channel X + dilepton to the corresponding X + (real photon) channel. // (Look at the comments in dG/dM to see why this is needed.) - + int i, np, i1, i2; - + int x = 0; // this is the 2nd product (non dilepton) id if (makeStaticData()->IsParticle(id,"pi0")|| makeStaticData()->IsParticle(id,"eta")|| - makeStaticData()->IsParticle(id,"eta'")) + makeStaticData()->IsParticle(id,"eta'")) x = makeStaticData()->GetParticleID("g"); - else if (makeStaticData()->IsParticle(id,"D0") || - makeStaticData()->IsParticle(id,"Lambda") || - makeStaticData()->IsParticle(id,"NS110") || - makeStaticData()->IsParticle(id,"ND130")) + else if (makeStaticData()->IsParticle(id,"D0") || + makeStaticData()->IsParticle(id,"Lambda") || + makeStaticData()->IsParticle(id,"NS110") || + makeStaticData()->IsParticle(id,"ND130")) x = makeStaticData()->GetParticleID("n"); else if (makeStaticData()->IsParticle(id,"D+") || makeStaticData()->IsParticle(id,"NP11+") || makeStaticData()->IsParticle(id,"ND13+") || - makeStaticData()->IsParticle(id,"NS11+")) + makeStaticData()->IsParticle(id,"NS11+")) x = makeStaticData()->GetParticleID("p"); else if (makeStaticData()->IsParticle(id,"w")|| - makeStaticData()->IsParticle(id,"phi")) + makeStaticData()->IsParticle(id,"phi")) x = makeStaticData()->GetParticleID("pi0"); Int_t tid[11]; @@ -571,12 +571,12 @@ double PDalitzDecay:: PhotonBR(const int &id) { Int_t listkey = -1; int key = makeDataBase()->GetEntryInt("pid", id); while (makeDataBase()->MakeListIterator - (key, "pnmodes", "link", &listkey)) { + (key, "pnmodes", "link", &listkey)) { makeDataBase()->GetParamInt(listkey, "didx", &didx); //small workaround -> should work on keys tid[0] = 10; makeStaticData()->GetDecayModeByKey(listkey, tid); // retrieve current mode info int pos = makeStaticData()->GetDecayIdxByKey(listkey); - + for (i=0; iGetBatchParticle("_primary"); - vs1 = makeDynamicData()->GetBatchParticle("_s1"); - vs2 = makeDynamicData()->GetBatchParticle("_s2"); - - vf = makeStaticData()->GetBatchValue("_f"); + vprimary = makeDynamicData()->GetBatchParticle("_primary"); + vs1 = makeDynamicData()->GetBatchParticle("_s1"); + vs2 = makeDynamicData()->GetBatchParticle("_s2"); + + vf = makeStaticData()->GetBatchValue("_f"); }; Bool_t PDalitzDistribution::AddEquation(const char *command) { @@ -54,7 +54,7 @@ Bool_t PDalitzDistribution::AddHistogram(TH2 *histo, const char *command) { return projector->AddHistogram(histo, command, 0); }; -Bool_t PDalitzDistribution::Init(void) { +Bool_t PDalitzDistribution::Init(void) { //looking for primary. This is mandatory primary = GetParticle("primary"); if (!primary) { @@ -85,7 +85,7 @@ Bool_t PDalitzDistribution::Init(void) { return kFALSE; } - return kTRUE; + return kTRUE; }; Bool_t PDalitzDistribution::Prepare(void) { @@ -101,13 +101,13 @@ Bool_t PDalitzDistribution::CheckAbort(void) { }; Bool_t PDalitzDistribution::IsNotRejected(void) { - + // eta -> pi+ pi- pi0 - // see e.g. Ref. 8 + // see e.g. Ref. 8 double factor = 1.; - if (projector) { + if (projector) { *vprimary = primary; *vs1 = *side_particle[0]; *vs2 = *side_particle[1]; @@ -121,17 +121,17 @@ Bool_t PDalitzDistribution::IsNotRejected(void) { - primary->M() - side_particle[0]->M() - side_particle[1]->M(); - + double pi0_T = primary->E() - primary->M(); - + double dalitz_y = (3*pi0_T / eta_Q) -1; factor = 1 + slope1*dalitz_y + slope2*dalitz_y*dalitz_y; } - + if (factor > max) Warning("IsNotRejected", "Dalitz factor > max"); - + if ((factor/max) > PUtils::sampleFlat()) return kTRUE; // sample now angular distribution - + return kFALSE; }; diff --git a/src/PData.cc b/src/PData.cc index 04967fa..5b30f28 100644 --- a/src/PData.cc +++ b/src/PData.cc @@ -10,7 +10,7 @@ // Bug fixes: 13/10/2004 R.H. // mu+mu-: 02/02/2005 R.H. // N1535: 25/01/2007 R.H. -// Moved the physics to stand-alone classes +// Moved the physics to stand-alone classes // (IF, 23.7.2007) // // N.b. that the variables will be moved to the data base soon @@ -38,7 +38,7 @@ int PData::LPW(const int &id, const int &i1, const int &i2) { j2 = makeStaticData()->GetParticleSpin(i2), // 2nd particle 2 x spin j12max = j1+j2, // angular momentum limits j12min = abs(j1-j2), // for selection rule - l = TMath::Min(abs(jres-j12max),abs(jres-j12min))/2, + l = TMath::Min(abs(jres-j12max),abs(jres-j12min))/2, // lowest ang. mom. transfer c = (l%2 != abs(makeStaticData()->GetParticleParity(id) -makeStaticData()->GetParticleParity(i1)* @@ -56,21 +56,21 @@ int PData::IsMDalitz(const int &idx) { // if (did) return (did!=-1) ? did : 0; // -1 means "no" // DalitzID[idx]=-1; - if (!makeStaticData()->IsParticleMeson(makeStaticData()->GetDecayParent(idx))) + if (!makeStaticData()->IsParticleMeson(makeStaticData()->GetDecayParent(idx))) return 0; int i, ic[10]; - ic[0] = 10; + ic[0] = 10; makeStaticData()->GetDecayMode(idx, ic); // retrieve info for current decay mode if (!*ic || *ic>2) return 0; // 0 or >2 products; cannot be Dalitz decay - for (i=1; i<=2; ++i) - if (makeStaticData()->IsParticle(ic[i], "dilepton") || + for (i=1; i<=2; ++i) + if (makeStaticData()->IsParticle(ic[i], "dilepton") || makeStaticData()->IsParticle(ic[i], "dimuon")) { //DalitzID[idx]=1; return 1; } return 0; } - + #include "TApplication.h" #include "../Version.h" @@ -94,7 +94,7 @@ PSplash::PSplash() { cout << " * www-hades.gsi.de/computing/pluto/html/PlutoIndex.html " << endl; cout << " * Version: " << version_string << endl; cout << " * Compiled on " << date_string << endl; - cout << " *********************************************************" << endl; + cout << " *********************************************************" << endl; } } @@ -103,4 +103,4 @@ ClassImp(PData) - + diff --git a/src/PDataBase.cc b/src/PDataBase.cc index 067d0bc..061354a 100644 --- a/src/PDataBase.cc +++ b/src/PDataBase.cc @@ -1,11 +1,11 @@ //////////////////////////////////////////////////////// // Particle ID, properties and decay data base // -// +// // // Author: I. Froehlich // Written: 11.04.2007 -// Revised: +// Revised: // //////////////////////////////////////////////////////// @@ -51,7 +51,7 @@ PDataBase::PDataBase() { param_int_key_max[j] = 0; } - MakeParamString("name", "Database name"); + MakeParamString("name", "Database name"); //this is absolute minimum and required for testing for existence Info("PDataBase()", "(%s)", PRINT_CTOR); } @@ -73,7 +73,7 @@ void PDataBase::Print(const Option_t *) const { cout << param_tobj_pointer << " TOBJ's booked (out of " << PDATABASE_MAX_TOBJ_PARAM <<")" << endl; for (int i=0; i= 0) { @@ -650,15 +650,15 @@ Bool_t PDataBase::ListEntries(Int_t key, Int_t option, const char *pattern) { //key=line (or -1 for all) //option=0 : line break =1: no line break //pattern like "mass,width" - + Int_t start = 0; Int_t end = PDATABASE_MAX_LINES-1; Double_t *result; const char *result2; Int_t *result3; TObject *result4; - Int_t sz[PDATABASE_MAX_LINES][PDATABASE_MAX_DOUBLE_PARAM+PDATABASE_MAX_STRING_PARAM]; - Int_t max_sz[PDATABASE_MAX_DOUBLE_PARAM+PDATABASE_MAX_STRING_PARAM]; + Int_t sz[PDATABASE_MAX_LINES][PDATABASE_MAX_DOUBLE_PARAM+PDATABASE_MAX_STRING_PARAM]; + Int_t max_sz[PDATABASE_MAX_DOUBLE_PARAM+PDATABASE_MAX_STRING_PARAM]; Int_t valid_key[PDATABASE_MAX_LINES]; for (int i=0; i<(PDATABASE_MAX_DOUBLE_PARAM+PDATABASE_MAX_STRING_PARAM); i++) { @@ -679,7 +679,7 @@ Bool_t PDataBase::ListEntries(Int_t key, Int_t option, const char *pattern) { //run1: print info for (int i=start; i<=end; i++) { //TODO: check if at least one param is there - if (run && valid_key[i]>0) { + if (run && valid_key[i]>0) { if (option) { cout << i << ":"; if (i<10) cout << " "; @@ -707,18 +707,18 @@ Bool_t PDataBase::ListEntries(Int_t key, Int_t option, const char *pattern) { options++; checkline = kFALSE; } - if (options[0] == '!') { + if (options[0] == '!') { options++; invert = kTRUE; } if (GetParamDouble (i, options, &result)) { if (run) { - if (valid_key[i]>0) { + if (valid_key[i]>0) { if (option) cout << options << "="; else cout << GetDescription(options) << "="; printf("%f", *result); - if (option) cout << " "; + if (option) cout << " "; else cout << " \n"; } } else { @@ -726,23 +726,23 @@ Bool_t PDataBase::ListEntries(Int_t key, Int_t option, const char *pattern) { // (if somebody has an idea -> help yourself) sprintf(bla, "%f", *result); sz[i][pat] = strlen(bla); - if (sz[i][pat] > max_sz[pat]) + if (sz[i][pat] > max_sz[pat]) max_sz[pat] = sz[i][pat]; - if (checkline && !invert) + if (checkline && !invert) valid_key[i]++; - else if (invert && checkline) + else if (invert && checkline) valid_key[i] = -999; } } else if (GetParamInt (i, options, &result3)) { if (run) { if (valid_key[i]>0) { - if (option) + if (option) cout << options << "="; - else + else cout << GetDescription(options) << "="; printf("%i", *result3); - if (option) - cout << " "; + if (option) + cout << " "; else cout << " \n"; } } else { @@ -750,54 +750,54 @@ Bool_t PDataBase::ListEntries(Int_t key, Int_t option, const char *pattern) { // (if somebody has an idea -> help yourself) sprintf(bla, "%i", *result3); sz[i][pat] = strlen(bla); - if (sz[i][pat] > max_sz[pat]) + if (sz[i][pat] > max_sz[pat]) max_sz[pat] = sz[i][pat]; - if (checkline && !invert) + if (checkline && !invert) valid_key[i]++; - else if (invert && checkline) + else if (invert && checkline) valid_key[i] = -999; } } else if (GetParamString (i, options, &result2)) { if (run) { if (valid_key[i] > 0) { - if (option) + if (option) cout << options << "=" << result2; - else + else cout << GetDescription(options) << "="<< result2; - if (option) cout << " "; + if (option) cout << " "; else cout << " \n"; } } else { sz[i][pat] = strlen(result2); - if (sz[i][pat] > max_sz[pat]) + if (sz[i][pat] > max_sz[pat]) max_sz[pat] = sz[i][pat]; - if (checkline && !invert) + if (checkline && !invert) valid_key[i]++; - else if (invert && checkline) + else if (invert && checkline) valid_key[i] = -999; } } else if (GetParamTObj (i, options,&result4)) { if (run) { if (valid_key[i]>0) { - - if (option) + + if (option) cout << options << "="; - else + else cout << GetDescription(options) << "="; - if (option) cout << " "; + if (option) cout << " "; else cout << " \n"; } } else { sz[i][pat] = 4; //for the yes - if (sz[i][pat] > max_sz[pat]) + if (sz[i][pat] > max_sz[pat]) max_sz[pat] = sz[i][pat]; - if (checkline && !invert) + if (checkline && !invert) valid_key[i]++; - else if (invert && checkline) + else if (invert && checkline) valid_key[i] = -999; } - } - + } + if (option && run && valid_key[i]>0) { //fill missing gaps int ga = sz[i][pat]; @@ -808,8 +808,8 @@ Bool_t PDataBase::ListEntries(Int_t key, Int_t option, const char *pattern) { } } } - - if (run && valid_key[i]>0) cout << "\n"; + + if (run && valid_key[i]>0) cout << "\n"; } } delete array; @@ -840,8 +840,8 @@ void PDataBase::Performance(void) { GetFastParamInt("pid", &pid_param); if (!GetParamInt(GetEntry(strings[i][0]), pid_param, &i_result)) { // if (!getFastParamInt (pid_param,i, &i_result)) { - Error("Performance", "ID %i not found", i); - } + Error("Performance", "ID %i not found", i); + } mypid += *i_result; } cout << timer.RealTime() << endl; diff --git a/src/PDebugFileOutput.cc b/src/PDebugFileOutput.cc index 61e3884..29a0a47 100644 --- a/src/PDebugFileOutput.cc +++ b/src/PDebugFileOutput.cc @@ -30,16 +30,16 @@ bool PDebugFileOutput::OpenFile(char *filename) { bool PDebugFileOutput::CloseFile(void) { if (fp) fclose(fp); fp = NULL; - return kTRUE; + return kTRUE; }; bool PDebugFileOutput::WriteEvent(void) { //next event if (fp) { fprintf(fp, "next event\n"); - return kTRUE; + return kTRUE; } - return kFALSE; + return kFALSE; }; bool PDebugFileOutput::WriteParticle(PParticle *par) { @@ -47,11 +47,11 @@ bool PDebugFileOutput::WriteParticle(PParticle *par) { if (fp) { fprintf(fp, "name: %s\n", par->Name()); fprintf(fp, "debug: %s\n", par->GetDebugString()->Data()); - - return kTRUE; + + return kTRUE; } - return kFALSE; + return kFALSE; } -ClassImp(PDebugFileOutput) +ClassImp(PDebugFileOutput) diff --git a/src/PDecayChannel.cc b/src/PDecayChannel.cc index 3fdffae..acecf06 100644 --- a/src/PDecayChannel.cc +++ b/src/PDecayChannel.cc @@ -6,8 +6,8 @@ // Revised: 30.06.00 MK // Revised: 23.07.07 IF (adaption for new framework) // -// PDecayChannel implements a linked list of decay modes. -// +// PDecayChannel implements a linked list of decay modes. +// //////////////////////////////////////////////////////////////////// using namespace std; #include @@ -20,10 +20,10 @@ ClassImp(PDecayChannel) // -------------------------------------------------------------------------- PDecayChannel::PDecayChannel() { - // + // // Contructs an 'empty' channel (indicated by 'Daughters' containing // a NULL pointer). - // + // Weight = 0; NumOfDaughters = 0; Next = NULL; @@ -39,7 +39,7 @@ PDecayChannel::~PDecayChannel() { // -------------------------------------------------------------------------- PDecayChannel *PDecayChannel::Unlink() { - // + // // The 'Next' element is set to NULL. The old value (i.e. the pointer // to the next possible decay mode) is returned. // @@ -51,14 +51,14 @@ PDecayChannel *PDecayChannel::Unlink() { // -------------------------------------------------------------------------- void PDecayChannel::AddChannel(PDecayChannel *newchannel) { - // If the current channel is empty, it is filled with the contents of + // If the current channel is empty, it is filled with the contents of // 'newchannel'. The object pointed to by 'newchannel' is deleted and // the value of 'newchannel' is replaced by a pointer to the current // channel. // If the current channel is not empty, but has no successor in 'Next', // 'Next' will point to 'newchannel'. // If the current channel contains a 'Next' object, the add request - // is passed to this one. + // is passed to this one. // The other AddChannel functions work in the same way. The channel is // filled in the order current channel, 'Next' pointer and 'Next' object. if (!Daughters.GetArray()) { @@ -68,7 +68,7 @@ void PDecayChannel::AddChannel(PDecayChannel *newchannel) { w = newchannel->GetWeight(); ld = newchannel->GetDaughters(nd); AddChannel(w, nd, ld); - if (newchannel->GetNext()) + if (newchannel->GetNext()) AddChannel(newchannel->Unlink()); delete newchannel; newchannel = this; @@ -82,7 +82,7 @@ void PDecayChannel::AddChannel(PDecayChannel *newchannel) { // -------------------------------------------------------------------------- void PDecayChannel::AddChannel(Double_t w, Int_t d1) { // The channel describes a decay into 1 daughter particle with particle id - // d1 and branching ratio w. + // d1 and branching ratio w. // (This strange case is implemented only for completeness.) if (!Daughters.GetArray()) { Weight = w; @@ -98,8 +98,8 @@ void PDecayChannel::AddChannel(Double_t w, Int_t d1) { // -------------------------------------------------------------------------- void PDecayChannel::AddChannel(Double_t w, Int_t d1, Int_t d2) { - // The channel describes a decay into 2 daughter particles with particle - // ids d1, d2 and branching ratio w. + // The channel describes a decay into 2 daughter particles with particle + // ids d1, d2 and branching ratio w. if (!Daughters.GetArray()) { Weight = w; NumOfDaughters = 2; @@ -115,8 +115,8 @@ void PDecayChannel::AddChannel(Double_t w, Int_t d1, Int_t d2) { // -------------------------------------------------------------------------- void PDecayChannel:: AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3) { - // The channel describes a decay into 3 daughter particles with particle - // ids d1, d2, d3 and branching ratio w. + // The channel describes a decay into 3 daughter particles with particle + // ids d1, d2, d3 and branching ratio w. if (!Daughters.GetArray()) { Weight = w; NumOfDaughters = 3; @@ -133,8 +133,8 @@ void PDecayChannel:: AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3) { // -------------------------------------------------------------------------- void PDecayChannel:: AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3, Int_t d4) { - // The channel describes a decay into 4 daughter particles with particle - // ids d1, d2, d3, d4 and branching ratio w. + // The channel describes a decay into 4 daughter particles with particle + // ids d1, d2, d3, d4 and branching ratio w. if (!Daughters.GetArray()) { Weight = w; NumOfDaughters = 4; @@ -151,9 +151,9 @@ void PDecayChannel:: AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3, Int_t // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- -void PDecayChannel::AddChannel(Double_t w, Int_t nd, Int_t *ld) { - // The channel describes a decay into nd daughter particles with particle - // ids stored in the integer array ld and branching ratio w. +void PDecayChannel::AddChannel(Double_t w, Int_t nd, Int_t *ld) { + // The channel describes a decay into nd daughter particles with particle + // ids stored in the integer array ld and branching ratio w. if (!Daughters.GetArray()) { Weight = w; NumOfDaughters = nd; @@ -171,7 +171,7 @@ void PDecayChannel::AddChannel(Double_t w, Int_t nd, Int_t *ld) { // -------------------------------------------------------------------------- void PDecayChannel::AddChannel(Double_t w, PParticle *d1) { // The channel describes a decay into 1 daughter particle represented by - // a pointer to PParticle d1 and branching ratio w. + // a pointer to PParticle d1 and branching ratio w. // (This strange case is implemented only for completeness.) if (!Daughters.GetArray()) { Weight = w; @@ -188,7 +188,7 @@ void PDecayChannel::AddChannel(Double_t w, PParticle *d1) { // -------------------------------------------------------------------------- void PDecayChannel::AddChannel(Double_t w, PParticle *d1, PParticle *d2) { // The channel describes a decay into 2 daughter particles represented by - // pointers to PParticle d1, d2 and branching ratio w. + // pointers to PParticle d1, d2 and branching ratio w. if (!Daughters.GetArray()) { Weight = w; NumOfDaughters = 2; @@ -205,7 +205,7 @@ void PDecayChannel::AddChannel(Double_t w, PParticle *d1, PParticle *d2) { // -------------------------------------------------------------------------- void PDecayChannel::AddChannel(Double_t w, PParticle *d1, PParticle *d2, PParticle *d3) { // The channel describes a decay into 3 daughter particles represented by - // pointers to PParticle d1, d2, d3 and branching ratio w. + // pointers to PParticle d1, d2, d3 and branching ratio w. if (!Daughters.GetArray()) { Weight = w; NumOfDaughters = 3; @@ -223,7 +223,7 @@ void PDecayChannel::AddChannel(Double_t w, PParticle *d1, PParticle *d2, PPartic // -------------------------------------------------------------------------- void PDecayChannel::AddChannel(Double_t w, PParticle *d1, PParticle *d2, PParticle *d3, PParticle *d4) { // The channel describes a decay into 4 daughter particles represented by - // pointers to PParticle d1, d2, d3, d4 and branching ratio w. + // pointers to PParticle d1, d2, d3, d4 and branching ratio w. if (!Daughters.GetArray()) { Weight = w; NumOfDaughters = 4; @@ -240,9 +240,9 @@ void PDecayChannel::AddChannel(Double_t w, PParticle *d1, PParticle *d2, PPartic // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- -void PDecayChannel::AddChannel(Double_t w, Int_t nd, PParticle **ld) { +void PDecayChannel::AddChannel(Double_t w, Int_t nd, PParticle **ld) { // The channel describes a decay into nd daughter particles represented by - // pointers to PParticle stored in the array ld and branching ratio w. + // pointers to PParticle stored in the array ld and branching ratio w. if (!Daughters.GetArray()) { Weight = w; NumOfDaughters = nd; @@ -329,13 +329,13 @@ void PDecayChannel::AddChannel(Double_t w, const char *d1, const char *d2, const // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- -void PDecayChannel::AddChannel(Double_t w, Int_t nd, char **ld) { +void PDecayChannel::AddChannel(Double_t w, Int_t nd, char **ld) { // The channel describes a decay into nd daughter particles represented by // an array of their names ld and branching ratio w. if (!Daughters.GetArray()) { Weight = w; NumOfDaughters = nd; - Daughters.Set(nd);; + Daughters.Set(nd);; for (Int_t i=0; iGetParticleID(ld[i]); } @@ -383,10 +383,10 @@ PDecayChannel *PDecayChannel::GetLast() { void PDecayChannel::Print(const Option_t *) const { // // Prints the channel information. - // + // Int_t dalitz = 0; - + if (!NumOfDaughters) { cout << "Empty Channel." << endl; return; @@ -401,7 +401,7 @@ void PDecayChannel::Print(const Option_t *) const { dalitz = 2; } else { cout << makeStaticData()->GetParticleName(Daughters[i]); - if (!(--dalitz)) cout << ")"; + if (!(--dalitz)) cout << ")"; } } // cout << endl; diff --git a/src/PDecayManager.cc b/src/PDecayManager.cc index b566d73..dd02d09 100644 --- a/src/PDecayManager.cc +++ b/src/PDecayManager.cc @@ -11,14 +11,14 @@ // Revised: 26.09.00 R. Holzmann (adjusted to gcc 2.95.2 20000220) // Revised: 08.08.00 R. Holzmann (weight treatment fixed) // Revised: 21.06.00 MK (adjustments for decay modes from PData) -// Revised: 14.04.00 R. Holzmann (minor adjustments for +// Revised: 14.04.00 R. Holzmann (minor adjustments for // PFireball and HGeant operation) // Revised: 27.07.07 IF: Changes for the new framework, // Removed beam smearing as covered by the Distr.Manager -// +// // The purpose of PDecayManager is to produce a set of possible // decay branches of a initial particle using a list of particle -// decay modes. The list of decay modes is empty by default. The +// decay modes. The list of decay modes is empty by default. The // user has to take care about the filling of this list. This can // be done using the defaults supplied by this file (at end) or // by hand. @@ -28,9 +28,9 @@ // The following templates and the class PReactionList are // private members of PDecayManager, but I due to problems using // ClassImp() and ClassDef() with nested classes, they are not -// derived from TObject and not known inside ROOT. The members are +// derived from TObject and not known inside ROOT. The members are // all public for better use inside PDecayManager. -// +// // template class PNextList // It implements a linked list of pointers to object T. All elements // of this templates are public. The destructor does not imply a @@ -43,7 +43,7 @@ // PNextList(); // standard constructor // PNextList(T*); // initalized with object T // ~PNextList(); // standard destructor -// +// // void Add(T*); // add object T to list // void Delete(); // delete the objects T in the list // @@ -66,16 +66,16 @@ // // PStack *Clone(PStack *UseThis); // // returns a pointer to a clone of the stack. -// // either an existing, empty stack is used +// // either an existing, empty stack is used // // (giving UseThis as an optional argument) // // or a new stack is constructed internally. // // // class PReactionList -// It implements two connected stacks of PChannel objects to organize +// It implements two connected stacks of PChannel objects to organize // the already processed decay channels and the work to do. // 'Processed' means that all possible decay channels of the daughter -// particles have been put on the ToDo stack. +// particles have been put on the ToDo stack. // The variable ReactionWeight contains the overall weight of // this specific channel. All elements of this class are public. // @@ -84,15 +84,15 @@ // Double_t ReactionWeight; // overall branching ratio // Int_t ID; // serial number of this object // static Int_t maxID; // maximum serial number -// -// PReactionList(); +// +// PReactionList(); // ~PReactionList(); // again: deletes only the stacks, // // not the objects in it. // PReactionList *Clone(); // doubles the whole PReactionList -// // returning a pointer to the +// // returning a pointer to the // // new one. // -// +// //////////////////////////////////////////////////////////////////// using namespace std; //#include @@ -123,13 +123,13 @@ PDecayManager::PDecayManager() { makeDistributionManager()->ExecAll("init"); //init physics, if not yet done, and allow for didx-plugins Int_t key = makeDataBase()->GetEntry("std_set"); - if (key<0) + if (key<0) Warning("PDecayManager()", "std_set not found"); Int_t listkey = -1; while (makeDataBase()->MakeListIterator(key, "snpart", "slink" ,&listkey)) { PDecayChannel *ch = new PDecayChannel(); //loop over all particles - makeDataBase()->SetParamTObj(listkey, "decaychannel", ch); + makeDataBase()->SetParamTObj(listkey, "decaychannel", ch); } decaychannel_param = makeDataBase()->GetParamTObj("decaychannel"); @@ -178,8 +178,8 @@ void PDecayManager::SetVerbose(Int_t v) { // -------------------------------------------------------------------------- void PDecayManager::AddChannel(Int_t id, PDecayChannel *n) { - // Adds a specific PDecayChannel 'n' to the particle with ID 'id'. - if (!makeStaticData()->IsParticleValid(id)) { + // Adds a specific PDecayChannel 'n' to the particle with ID 'id'. + if (!makeStaticData()->IsParticleValid(id)) { Warning("AddChannel", "id %i s unvalid", id); return; } else { @@ -190,7 +190,7 @@ void PDecayManager::AddChannel(Int_t id, PDecayChannel *n) { if (!makeDataBase()->GetParamTObj(key, "decaychannel", &o)) return; ch = (PDecayChannel*)o; if (ch == NULL) { - makeDataBase()->SetParamTObj(key, "decaychannel", ch); + makeDataBase()->SetParamTObj(key, "decaychannel", ch); } else ch->AddChannel(n); } @@ -200,16 +200,16 @@ void PDecayManager::AddChannel(Int_t id, PDecayChannel *n) { // -------------------------------------------------------------------------- void PDecayManager::AddChannel(PParticle *p, PDecayChannel *n) { // Adds a specific PDecayChannel 'n' to the particle represented by a - // pointer to a PParticle object. - if (p) AddChannel(p->ID(), n); + // pointer to a PParticle object. + if (p) AddChannel(p->ID(), n); } // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- void PDecayManager::AddChannel(const char *p, PDecayChannel *n) { // Adds a specific PDecayChannel 'n' to the particle represented just - // by its name. - AddChannel(makeStaticData()->GetParticleID(p), n); + // by its name. + AddChannel(makeStaticData()->GetParticleID(p), n); } // -------------------------------------------------------------------------- @@ -217,7 +217,7 @@ void PDecayManager::AddChannel(const char *p, PDecayChannel *n) { PDecayChannel *PDecayManager::GetChannel(Int_t id) const { // Returns a pointer to PDecayChannel for the particle with the ID 'id.' - Int_t key = makeStaticData()->GetParticleKey(id); + Int_t key = makeStaticData()->GetParticleKey(id); if (key < 0) { Warning("GetChannel", "id %i not found in data base", id); return NULL; @@ -255,7 +255,7 @@ PDecayChannel *PDecayManager::GetChannel(char *p) const { void PDecayManager::SetDefault(Int_t id, Int_t recursive) { // Sets the default decay branches for the particle with ID 'id'. if (!makeStaticData()->IsParticleValid(id)) return; - + Clear(id); PDecayChannel *c = GetChannel(id); if (!c) { @@ -263,22 +263,22 @@ void PDecayManager::SetDefault(Int_t id, Int_t recursive) { } const char *name = GetName(id); - if (verbose) cout << endl << "Setting defaults for particle #" << id << ", " + if (verbose) cout << endl << "Setting defaults for particle #" << id << ", " << name << endl; - + if (verbose) { cout << "Information found:" << endl; - makeStaticData()->PrintParticle(id); + makeStaticData()->PrintParticle(id); } - + //now loop over decay modes Int_t key = makeDataBase()->GetEntryInt("pid", id); Int_t listkey = -1; Int_t tid[11]; while (makeDataBase()->MakeListIterator(key, "pnmodes", "link", &listkey)) { - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(listkey, tid); // retrieve current mode info - + int *pos; makeDataBase()->GetParamInt(listkey, "didx", &pos); //small workaround Double_t weight = makeStaticData()->GetDecayBR(*pos); // static branching ratio @@ -295,7 +295,7 @@ void PDecayManager::SetDefault(Int_t id, Int_t recursive) { void PDecayManager::SetDefault(PParticle *p,Int_t recursive) { // Sets the default decay branches for the particle represented by a // a pointer to a PParticle object. - if (p) SetDefault(p->ID(), recursive); + if (p) SetDefault(p->ID(), recursive); } // -------------------------------------------------------------------------- @@ -303,7 +303,7 @@ void PDecayManager::SetDefault(PParticle *p,Int_t recursive) { void PDecayManager::SetDefault(const char *p,Int_t recursive) { // Sets the default decay branches for the particle represented by its // name. - SetDefault(makeStaticData()->GetParticleID(p), recursive); + SetDefault(makeStaticData()->GetParticleID(p), recursive); } // -------------------------------------------------------------------------- @@ -313,7 +313,7 @@ void PDecayManager::Clear(Int_t id) { // ID 'id'. This is necessary when one wants to introduce a new set // of branches to a particle. The SetDefault() functions are calling // this function automatically. - + Int_t key = makeDataBase()->GetEntryInt("pid", id); //TODO: make this faster /* if (key < 0); */ TObject *ch; @@ -329,7 +329,7 @@ void PDecayManager::Clear(Int_t id) { void PDecayManager::Clear(PParticle *p) { // Deletes the current list of decay branches for the particle represented // by a pointer to a PParticle object. - Clear(p->ID()); + Clear(p->ID()); } // -------------------------------------------------------------------------- @@ -337,7 +337,7 @@ void PDecayManager::Clear(PParticle *p) { void PDecayManager::MyClear(char *p) { // Deletes the current list of decay branches for the particle represented // by its name. - Clear(makeStaticData()->GetParticleID(p)); + Clear(makeStaticData()->GetParticleID(p)); } // -------------------------------------------------------------------------- @@ -350,44 +350,44 @@ void PDecayManager::InitReaction(PParticle *start, PDecayChannel *CurrentChannel // Calling this function is mandatory as an initialization step // before producing any data. - if (UsedParticles) { + if (UsedParticles) { UsedParticles->Delete(); delete UsedParticles; UsedParticles = new PNextList; } - if (UsedParticleArrays) { - UsedParticleArrays->Delete(); + if (UsedParticleArrays) { + UsedParticleArrays->Delete(); delete UsedParticleArrays; UsedParticleArrays = new PNextList; } - if (UsedChannels) { + if (UsedChannels) { UsedChannels->Delete(); delete UsedChannels; UsedChannels = new PNextList; } - if (ReactionList) { + if (ReactionList) { ReactionList->Delete(); delete ReactionList; ReactionList = new PNextList; } CurrentReactionNumber = 0; CurrentReactionListPointer = NULL; - + // build the initial channels to start with - - if (verbose) cout << endl << "processing decay:" << endl; - + + if (verbose) cout << endl << "processing decay:" << endl; + // if no channel given use the standard one. if (!CurrentChannel) CurrentChannel = GetChannel(start); - + Int_t copyFlag = ( start->IsFireball() || start->IsFileInput() ) ? 0 : 1; // don't want to make clones Int_t nReac1 = 0, nReac2 = 0; while (CurrentChannel) { //CurrentChannel->Print(); //start->Print(); - PReactionList *tempRL = new PReactionList; + PReactionList *tempRL = new PReactionList; ConstructPChannel(start, CurrentChannel, tempRL, copyFlag); ReactionList->Add(tempRL); nReac1++; @@ -396,30 +396,30 @@ void PDecayManager::InitReaction(PParticle *start, PDecayChannel *CurrentChannel // ok, now we are processing ReactionList as long as there are some // channels to process - + Int_t MoreToDo = 1; while (MoreToDo) { MoreToDo = 0; PNextList *x = ReactionList; // process the whole reaction list - while (x) { + while (x) { PReactionList* tempRL = x->Curr; PChannel* tempPC = tempRL->ToDo->Pop(); // process the whole ToDo stack while (tempPC) { MoreToDo = 1; tempRL->Finished->Push(tempPC); - + Int_t i, loop; Int_t NOP = tempPC->GetNumPar(); // number of products PParticle **LOP = tempPC->GetParticles(); // list of products PDecayChannel **pdc = new PDecayChannel*[NOP]; // array of decay channels // one for each product - - for(i=0; iAdd(newRL); nReac2++; - tempRL = newRL; - } else + tempRL = newRL; + } else delete newRL; } // end of loop over all channel combinations - + // Get the next parent channel from the ToDo stack tempPC = tempRL->ToDo->Pop(); } // end of ToDo stack. - + // Get next entry in reaction list. x = x->Next; - } // end of ReactionList + } // end of ReactionList } // there is nothing left to do - NumberOfReactions = nReac1 + nReac2; // number of reactions in ReactionList + NumberOfReactions = nReac1 + nReac2; // number of reactions in ReactionList } // -------------------------------------------------------------------------- @@ -473,24 +473,24 @@ void PDecayManager::ConstructPChannel(PParticle *p, PDecayChannel *c1, PReactionList *RL, Int_t CopyFlag) { // This function is used internally inside InitReaction(). For one // given parent particle 'p' and PDecayChannel 'c1' it constructs - // a PChannel and puts it in the ToDo stack of the PReactionList *RL. + // a PChannel and puts it in the ToDo stack of the PReactionList *RL. // cout << "***enter for " << p->ID() << endl; // multiplying all the channel weights Double_t CurrentWeight = c1->GetWeight(); - if (CurrentWeight<1.0e-20) return; + if (CurrentWeight<1.0e-20) return; RL->ReactionWeight *= CurrentWeight; - + // Get daughter particles, create a new array (for PChannel) and store // the original particle in it. Int_t NumOfProducts; Int_t* ListOfProducts = c1->GetDaughters(NumOfProducts); PParticle** array = new PParticle*[NumOfProducts+1]; UsedParticleArrays->Add(array); - if (CopyFlag) + if (CopyFlag) array[0] = p->Clone(); - else + else array[0] = p; // if (verbose) { // cout << "(" << setw(2) << RL->ID << ", " << setw(8) << setprecision(2); @@ -500,7 +500,7 @@ void PDecayManager::ConstructPChannel(PParticle *p, PDecayChannel *c1, // cout.setf(ios::left, ios::scientific); // cout << GetName(array[0]->ID()) << " --> "; // } - + // Process the daughter particles. for (Int_t i=0; iName() << ", weight: " << setw(8) << setprecision(2); cout.setf(ios::scientific); cout << RL->ReactionWeight << setprecision(0) << endl; - //cout << " is: " << tempPC->GetName() + //cout << " is: " << tempPC->GetName() // << endl; tempPC->Print(); } @@ -535,20 +535,20 @@ PReaction *PDecayManager::GetNextReaction(int wf, const char *name, int f0, int f1, int f2, int f3, TTree *tt) { // GetNextReaction() looks for the next decay tree in 'ReactionList' - // and constructs a new PReaction. If the weight flag 'wf' is set, + // and constructs a new PReaction. If the weight flag 'wf' is set, // the channel weight is copied to the parent particle of the first - // PChannel. This results in equal statistics of all channels. + // PChannel. This results in equal statistics of all channels. // The options are passed to the appropriate PReaction constructor. // // Normally this routine is called internally from the loop() function. - + char *filename; - + if (verbose) cout << "Selecting next reaction:" << endl; if (ListForReaction) delete [] ListForReaction; - + if (CurrentReaction) delete CurrentReaction; - + if (!ReactionList) { if (verbose) cout << " No initialization done." << endl; return NULL; @@ -556,19 +556,19 @@ PReaction *PDecayManager::GetNextReaction(int wf, const char *name, int f0, if (!CurrentReactionListPointer) CurrentReactionListPointer = ReactionList; else CurrentReactionListPointer = CurrentReactionListPointer->Next; - + if (!CurrentReactionListPointer) { if (verbose) cout << " No reaction left." << endl; return NULL; } - + CurrentReactionNumber++; if (verbose) cout << endl << "This is reaction #" << CurrentReactionNumber << endl; filename = new char[1024]; - if (f3 == 2) sprintf(filename,"%s",name); // all in 1 file + if (f3 == 2) sprintf(filename,"%s",name); // all in 1 file else sprintf(filename, "%s_%03d", name, CurrentReactionNumber); - + PReactionList *tempRL = CurrentReactionListPointer->Curr->Clone(); Int_t NumOfChannels = tempRL->Finished->Count; ListForReaction = new PChannel*[NumOfChannels]; @@ -626,7 +626,7 @@ Int_t PDecayManager::Loop(int num, int wf, const char *name, int f0, // into this weight. This results in equal statistics for each channel. // The other parameters are the same as for the PReaction::loop() call. // The real number of events is returned. - + if (rf==1 && f3==1) f3 = 2; // for random decays, we want common ascii file Int_t rStart, rStop, rEntries; @@ -638,7 +638,7 @@ Int_t PDecayManager::Loop(int num, int wf, const char *name, int f0, char* filename = new char[1024]; sprintf(filename, "%s.root", name); TFile *f = NULL; - TTree *td = NULL, *ti = NULL; + TTree *td = NULL, *ti = NULL; CurrentReaction = NULL; ListForReaction = NULL; @@ -655,7 +655,7 @@ Int_t PDecayManager::Loop(int num, int wf, const char *name, int f0, if (rf == 1) { // random decay mix of all reactions PReaction *pReactionArray[NumberOfReactions]; - double rWeights[NumberOfReactions]; + double rWeights[NumberOfReactions]; Double_t wsave[NumberOfReactions]; for (int i=0; iGetBatchValue("_system_printout_percent")), + int percentevents = (num/100) * (*makeStaticData()->GetBatchValue("_system_printout_percent")), cpc = 1, ipc = cpc*percentevents; double t0 = timer.RealTime(); timer.Continue(); @@ -723,7 +723,7 @@ Int_t PDecayManager::Loop(int num, int wf, const char *name, int f0, // PReactionList* RL = CurrentReactionListPointer->Curr->Clone(); // PrintReactionListEntry(RL,os); // os << ends; //do not use it at the moment!!! - rStart = SumOfEvents + 1; + rStart = SumOfEvents + 1; if (verbose) r->Print(); rWeight = GetCurrentWeight(); WeightSum += rWeight; @@ -765,8 +765,8 @@ void PDecayManager::MyPrint() const { // Prints the particle decay list. cout << "Particle Decay List:" << endl; cout << "--------------------" << endl; -// for (Int_t i=0;iGetEntry("std_set"); if (key < 0) Warning("MyPrint", "std_set not found"); @@ -777,7 +777,7 @@ void PDecayManager::MyPrint() const { if (id < 1000) Print(id); //Skip Quasi-Particles } PrintReactionList(); -} +} // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- @@ -786,7 +786,7 @@ void PDecayManager::Print(Int_t id) const { if (!makeStaticData()->IsParticleValid(id)) return; PDecayChannel *DC = GetChannel(id); if (!DC) return; - + if (DC->GetWeight()) { cout.setf(ios::left); @@ -827,7 +827,7 @@ void PDecayManager::PrintReactionList() const { PReactionList *RL = x->Curr->Clone(); Entry++; cout << "-----" << endl; - cout << "Decay chain #" << Entry << ", probability " + cout << "Decay chain #" << Entry << ", probability " << RL->ReactionWeight << endl; PrintReactionListEntry(RL,cout); delete RL; @@ -838,7 +838,7 @@ void PDecayManager::PrintReactionList() const { // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- -void PDecayManager::PrintReactionListEntry(PReactionList *RL, +void PDecayManager::PrintReactionListEntry(PReactionList *RL, ostream &os) const{ // Prints one entry of the reaction list (used internally). Int_t count = RL->Finished->Count; @@ -846,13 +846,13 @@ void PDecayManager::PrintReactionListEntry(PReactionList *RL, for (Int_t i=count-1; i>=0; i--) { temp[i] = RL->Finished->Pop(); } - PrintChain((temp[0]->GetParticles())[0], temp, count, os); - delete [] temp; + PrintChain((temp[0]->GetParticles())[0], temp, count, os); + delete [] temp; } // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- -void PDecayManager::PrintChain(PParticle *p, PChannel **l, Int_t c, +void PDecayManager::PrintChain(PParticle *p, PChannel **l, Int_t c, ostream &os) const { // Prints one reaction chain (used internally). static Int_t indent = 0; @@ -862,10 +862,10 @@ void PDecayManager::PrintChain(PParticle *p, PChannel **l, Int_t c, PParticle **plist = l[i]->GetParticles(); if (p == plist[0]) { if (i == 0) indent = 2; - os.width(indent) ; + os.width(indent) ; os << " "; os.setf(ios::left); - os << setw(12) << GetName(p->ID()) + os << setw(12) << GetName(p->ID()) << setw(0) << " --> "; for (Int_t k=1; k<=pcount; k++) { os << GetName((plist[k])->ID()) << " "; @@ -883,7 +883,7 @@ void PDecayManager::PrintChain(PParticle *p, PChannel **l, Int_t c, // -------------------------------------------------------------------------- const char *PDecayManager::GetName(Int_t id) const { // Returns the name of a particle (specified by its id). - if (id <=0 ) + if (id <=0 ) return "???"; if (id < 1000) return (char*)makeStaticData()->GetParticleName(id); @@ -908,7 +908,7 @@ Bool_t PDecayManager::AddBulk(PBulkInterface *mybulk) { //Add a bulk interface to the list //Each bulk object will be executed during the event loop //after the normal decay - + if (bulkdecay_pos == MAX_BULKDECAY ) { Error("AddBulk", "MAX_BULKDECAY reached"); return kFALSE; diff --git a/src/PDeltaAngularDistribution.cc b/src/PDeltaAngularDistribution.cc index f167b36..442377e 100644 --- a/src/PDeltaAngularDistribution.cc +++ b/src/PDeltaAngularDistribution.cc @@ -2,7 +2,7 @@ // // N + N --> N + Delta, Ref 1 // -// Author: Kagarlis +// Author: Kagarlis // Reimplemented I. Froehlich ///////////////////////////////////////////////////////////////////// @@ -33,7 +33,7 @@ PDistribution *PDeltaAngularDistribution::Clone(const char *) const { }; Bool_t PDeltaAngularDistribution::IsNotRejected(void) { - + if (!direct_sampling_done) { Fatal("IsNotRejected", "Sampling not finished"); } @@ -65,11 +65,11 @@ void PDeltaAngularDistribution::getNN_DeltaN_param() { // Ref. 1 const double L1 = 0.3969, L2 = 0.36; // NN & NDelta coupling constant^2 - const double fs_pi = 2.202, - mpi = makeStaticData()->GetParticleMass("pi0"), g_pi=0.6, - fmg = g_pi*fs_pi/mpi, - mp = makeStaticData()->GetParticleMass("p"), - mp2 = mp*mp, + const double fs_pi = 2.202, + mpi = makeStaticData()->GetParticleMass("pi0"), g_pi=0.6, + fmg = g_pi*fs_pi/mpi, + mp = makeStaticData()->GetParticleMass("p"), + mp2 = mp*mp, mp4 = mp2*mp2; double I2 = (beam->Vect4())*(target->Vect4());// product of Lorentz vectors @@ -92,28 +92,28 @@ double PDeltaAngularDistribution::ds_dt(double cos_th_cm) { // sampled independently in PData, the simulated events are distributed // as ds/dOmega (normalized). (see Ref. 1) - const double mpi = makeStaticData()->GetParticleMass("pi0"), - mpi2 = mpi*mpi, + const double mpi = makeStaticData()->GetParticleMass("pi0"), + mpi2 = mpi*mpi, mp = makeStaticData()->GetParticleMass("p"), - mp2 = mp*mp, - mp4 = mp2*mp2, + mp2 = mp*mp, + mp4 = mp2*mp2, mdelta = makeStaticData()->GetParticleMass("D0"); - double m = mres, - md2 = m*m, - md4 = md2*md2, - mdmn = m-mp, + double m = mres, + md2 = m*m, + md4 = md2*md2, + mdmn = m-mp, mdn = m+mp, - mdmnm = mdmn*mdn, - mdn2 = mdn*mdn, - mdn4 = mdn2*mdn2, + mdmnm = mdmn*mdn, + mdn2 = mdn*mdn, + mdn4 = mdn2*mdn2, mdmn2 = mdmn*mdmn, pf = prefac/md2; // Mandelstam invariant t and u: double t = parent->InvariantT(mp,m,-cos_th_cm), // cos_th_cm sign inversed, Tingting Liu, 2010-04-13 u = parent->InvariantT(m,mp,cos_th_cm), // cos_th_cm sign inversed, Tingting Liu, 2010-04-13 - tu = t*u, + tu = t*u, tpu = t+u; // Form factors for t and u channels @@ -128,19 +128,19 @@ double PDeltaAngularDistribution::ds_dt(double cos_th_cm) { qu = (PKinematics::pcmt(mdelta,u)+.09)/(PKinematics::pcmt(m,u)+.09); f_t *= qt*qt; // Eqs. (17) f_u *= qu*qu; - + // the matrix elements for N+N->N+Delta, Eqs. (7-8) in Ref 1 double M_t2 = pf/3. * f_t * f_t * t * (t-mdmn2) * (t-mdn2) * (t-mdn2); // t-channel double M_u2 = pf/3. * f_u * f_u * u * (u-mdmn2) * (u-mdn2) * (u-mdn2); // u-channel double M_tu = pf/2. * f_t * f_u * ( (tu + mdmnm * tpu - md4 + mp4) * (tu + mp * mdn * mdmnm) - (tu - mdn2 * tpu + mdn4) * (tu - mp * mdmn * mdmnm)/3. ); // exchange term - // fixed according to S. Teis Ph.D. (Giessen 1996) + // fixed according to S. Teis Ph.D. (Giessen 1996) double M2 = 0; if (use_term & 0x1) {M2+=M_t2;primary->SetValue(T_MATRIX ,M_t2);} if (use_term & 0x2) {M2+=M_tu;primary->SetValue(TU_MATRIX ,M_tu);} if (use_term & 0x4) {M2+=M_u2;primary->SetValue(U_MATRIX ,M_u2);} - + return M2; }; @@ -157,9 +157,9 @@ double PDeltaAngularDistribution::SamplePolarAngle(double r) { a = 1.01*ds_dt(0.); // constant b = 1.2*(1.01*ds_dt(.995) - a); // slope (ds_dt(0) droops, use 0.995) area = b*(2. + b/a)/a; // area x b/a^2 - + again: - + //fl=1; x1 = (1-2*(r1>.5))*a/b; delta = sqrt(1+area*fabs(1-2*r1)); diff --git a/src/PDensityMatrix.cc b/src/PDensityMatrix.cc index 9447945..da82c7c 100644 --- a/src/PDensityMatrix.cc +++ b/src/PDensityMatrix.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////// -// +// // Reads an ASCII-matrix and samples observables // in 1-, 2- or 3-dimensional space. The sampled // observables can be written to PParticles via @@ -36,18 +36,18 @@ Bool_t PDensityMatrix::GetBin(Double_t *x, Int_t *bins) { bins[i] = j; if (x[i] <= (axes[i])[j]) { j = axes_size[i]; - } + } } } - + return kTRUE; } Bool_t PDensityMatrix::GetBin(Int_t bin, Int_t *bins) { bins[0] = bin % axes_size[0]; - if (dimension > 1) + if (dimension > 1) bins[1] = ((bin - bins[0]) / axes_size[0]) % axes_size[1]; - if (dimension > 2) + if (dimension > 2) bins[2] = ((bin - bins[0] - bins[1]*axes_size[1]) / (axes_size[0] * axes_size[1])) % axes_size[2]; return kTRUE; } @@ -57,13 +57,13 @@ Double_t PDensityMatrix::GetBinWidth(Int_t dim, Int_t bin) { return ((axes[dim])[1] - (axes[dim])[0]); } else if (bin >= axes_size[dim]-1) { return ((axes[dim])[axes_size[dim]-1] - (axes[dim])[axes_size[dim]-2]); - } + } return ((axes[dim])[bin+1] - (axes[dim])[bin-1]) / 2.0; } Int_t PDensityMatrix::GetRandomBin(Int_t num) { Int_t lower_bound = -1; - Int_t upper_bound = matrixsize - 1; + Int_t upper_bound = matrixsize - 1; Int_t middle_point; while ((upper_bound - lower_bound) > 1) { @@ -77,7 +77,7 @@ Int_t PDensityMatrix::GetRandomBin(Int_t num) { else frac = ((matrix_integral[num])[middle_point] - (matrix_integral[num])[lower_bound]) / ((matrix_integral[num])[upper_bound] - (matrix_integral[num])[lower_bound]); - + if (PUtils::sampleFlat() > frac) { lower_bound = middle_point; } else { @@ -117,7 +117,7 @@ Bool_t PDensityMatrix::ReadDensityMatrix(const char *filename, Int_t dim, Bool_t //x [y] [z] f0 f1 f2 .... //... // - //Here, the syntax is like in method 1, but if lines have only one number, + //Here, the syntax is like in method 1, but if lines have only one number, //they are considered to be a "selection number". Which of the sections should be read //and used to fill the internal matrix, can be selected by "min_selection" and "max_selection" //The section is used if "min_selection" <= "section value" <= "max_selection" @@ -147,18 +147,18 @@ Bool_t PDensityMatrix::ReadDensityMatrix(const char *filename, Int_t dim, Bool_t Error("ReadDensityMatrix", "File '%s' not found", filename); return kFALSE; } - + Int_t numargs = 0; char line [1024]; - + while(!found_selection && (fgets (line, sizeof line, file) != NULL)) { line_number++; numargs = sscanf(line, "%le %le %le %le %le %le %le %le %le %le %le %le %le %le %le %le\n", - &(numbers[0]), &(numbers[1]), &(numbers[2]), &(numbers[3]), &(numbers[4]), - &(numbers[5]), &(numbers[6]), &(numbers[7]), &(numbers[8]), &(numbers[9]), - &(numbers[10]), &(numbers[11]), &(numbers[12]), &(numbers[13]), &(numbers[14]), + &(numbers[0]), &(numbers[1]), &(numbers[2]), &(numbers[3]), &(numbers[4]), + &(numbers[5]), &(numbers[6]), &(numbers[7]), &(numbers[8]), &(numbers[9]), + &(numbers[10]), &(numbers[11]), &(numbers[12]), &(numbers[13]), &(numbers[14]), &(numbers[15])); - + if (numargs == 1) { found_single_numbers = kTRUE; if (numbers[0] >= min_selection && numbers[0] <= max_selection) @@ -170,7 +170,7 @@ Bool_t PDensityMatrix::ReadDensityMatrix(const char *filename, Int_t dim, Bool_t fclose(file); file = fopen(filename,"r"); line_number = 0; - } + } Int_t num_matrices = 0; @@ -178,11 +178,11 @@ Bool_t PDensityMatrix::ReadDensityMatrix(const char *filename, Int_t dim, Bool_t while(fgets (line, sizeof line, file) != NULL) { line_number++; numargs = sscanf(line, "%le %le %le %le %le %le %le %le %le %le %le %le %le %le %le %le\n", - &(numbers[0]), &(numbers[1]), &(numbers[2]), &(numbers[3]), &(numbers[4]), - &(numbers[5]), &(numbers[6]), &(numbers[7]), &(numbers[8]), &(numbers[9]), - &(numbers[10]), &(numbers[11]), &(numbers[12]), &(numbers[13]), &(numbers[14]), + &(numbers[0]), &(numbers[1]), &(numbers[2]), &(numbers[3]), &(numbers[4]), + &(numbers[5]), &(numbers[6]), &(numbers[7]), &(numbers[8]), &(numbers[9]), + &(numbers[10]), &(numbers[11]), &(numbers[12]), &(numbers[13]), &(numbers[14]), &(numbers[15])); - + if (numargs == 1) { if (numbers[0] >= min_selection && numbers[0] <= max_selection) found_selection = kTRUE; @@ -201,7 +201,7 @@ Bool_t PDensityMatrix::ReadDensityMatrix(const char *filename, Int_t dim, Bool_t return kFALSE; } (axes[i])[axes_size[i]] = numbers[i]; - axes_size[i]++; + axes_size[i]++; } } if (!num_matrices) { @@ -215,18 +215,18 @@ Bool_t PDensityMatrix::ReadDensityMatrix(const char *filename, Int_t dim, Bool_t } } - if (!found_single_numbers) + if (!found_single_numbers) Info("ReadDensityMatrix", "...done (no sections found)"); else Info("ReadDensityMatrix", "...done"); - Info("ReadDensityMatrix", "Dimension 1 (_x) has %i bins within the range [%f,%f]", + Info("ReadDensityMatrix", "Dimension 1 (_x) has %i bins within the range [%f,%f]", axes_size[0], (axes[0])[0], (axes[0])[axes_size[0]-1]); if (dimension > 1) - Info("ReadDensityMatrix", "Dimension 2 (_y) has %i bins within the range [%f,%f]", + Info("ReadDensityMatrix", "Dimension 2 (_y) has %i bins within the range [%f,%f]", axes_size[1], (axes[1])[0], (axes[1])[axes_size[1]-1]); if (dimension > 2) - Info("ReadDensityMatrix", "Dimension 3 (_z) has %i bins within the range [%f,%f]", + Info("ReadDensityMatrix", "Dimension 3 (_z) has %i bins within the range [%f,%f]", axes_size[2], (axes[2])[0], (axes[2])[axes_size[2]-1]); //TODO: check axis size against dim and DENSITYMATRIX_MAX_MATRICES @@ -243,7 +243,7 @@ Bool_t PDensityMatrix::ReadDensityMatrix(const char *filename, Int_t dim, Bool_t matrixsize = axes_size[0]; else if (dim == 2) matrixsize = axes_size[0]*axes_size[1]; - else + else matrixsize = axes_size[0]*axes_size[1]*axes_size[2]; matrix[i] = new Double_t[matrixsize]; for (int j=0; j= min_selection && numbers[0] <= max_selection) { Info("ReadDensityMatrix", "Found section [%f], reading...", numbers[0]); @@ -290,19 +290,19 @@ Bool_t PDensityMatrix::ReadDensityMatrix(const char *filename, Int_t dim, Bool_t Int_t bins[3]; GetBin(j, bins); - if (dimension == 1) + if (dimension == 1) bin_content *= GetBinWidth(0, bins[0]); - else if (dimension == 2) + else if (dimension == 2) bin_content *= GetBinWidth(0, bins[0]) * GetBinWidth(1, bins[1]); else bin_content *= GetBinWidth(0, bins[0]) * GetBinWidth(1, bins[1]) * GetBinWidth(2, bins[2]); } - + if (j) (matrix_integral[i])[j] = bin_content + (matrix_integral[i])[j-1]; - else + else (matrix_integral[i])[j] = bin_content; - } + } } return kTRUE; @@ -323,13 +323,13 @@ Bool_t PDensityMatrix::Modify(PParticle **mstack, int *decay_done, int *num, int xf[i] = (axes[i])[xb[i]]; xf[i] += GetBinWidth(i, xb[i])*(PUtils::sampleFlat() - 0.5); //avoid binning effects } - + *x = xf[0]; if (dimension>1) *y = xf[1]; if (dimension>2) *z = xf[2]; projector->Modify(mstack, decay_done, num, stacksize); - + return kTRUE; } diff --git a/src/PDiLepton.cc b/src/PDiLepton.cc index 5516991..c3e0aa2 100644 --- a/src/PDiLepton.cc +++ b/src/PDiLepton.cc @@ -4,7 +4,7 @@ // The Dilepton class sets up an e+e- quasiparticle // that subsequently decays into e+ and e-. // Mass, pt and rapidity are sampled from a box distribution. -// +// // Author: Romain Holzmann // Written: 22.08.01 // @@ -46,7 +46,7 @@ void PDiLepton::samplePartCM(double &px, double &py, double &pz, double &E) { Double_t pt; Double_t phi; - do { + do { m = m1 + (m2-m1)*PUtils::sampleFlat(); // sample m, pt, y and phi uniformly } while (m < makeStaticData()->GetParticleMass(prodId)); pt = pt1 + (pt2-pt1)*PUtils::sampleFlat(); diff --git a/src/PDistribution.cc b/src/PDistribution.cc index f7ce9b1..b9845b0 100644 --- a/src/PDistribution.cc +++ b/src/PDistribution.cc @@ -23,7 +23,7 @@ ClassImp(PDistribution) PDistribution::PDistribution() { identifier = new char[1]; description = new char[1]; - version_flag = VERSION_SAMPLING; + version_flag = VERSION_SAMPLING; no_daughters = 0; enable = 1; primary_key = -1; @@ -57,8 +57,8 @@ PDistribution::PDistribution(const Char_t *id, const Char_t *de): exp_w_mean = 1.; dynamic_range = 1.; opt_string = NULL; - - version_flag = VERSION_SAMPLING; + + version_flag = VERSION_SAMPLING; relative_warning = 1; enable = 1; @@ -79,13 +79,13 @@ PDistribution::PDistribution(const Char_t *id, const Char_t *de): private_flag_int[i] = NULL; } - // Copied from TF1 constructor... + // Copied from TF1 constructor... SetName(id); fNpar = 0; fXmin = 0.; fXmax = 0.; - + fNpx = 1; #if ROOT_VERSION_CODE < ROOT_VERSION(6,12,0) fType = 0; @@ -112,16 +112,16 @@ PDistribution *PDistribution::Clone(const char *) const { Bool_t PDistribution::FreezeOut(void) { //called once after the link to the data base has been done //LinkDB() - - return kTRUE; + + return kTRUE; }; Bool_t PDistribution::Init(void) { - //reading the private flags e.g. + //reading the private flags e.g. //called directly after attaching the distribution to the channel //particle pointers complete at this point - - return kTRUE; + + return kTRUE; }; Bool_t PDistribution::IsNotRejected(void) { @@ -129,13 +129,13 @@ Bool_t PDistribution::IsNotRejected(void) { //Each inherited class must decide on its own, what should be done here //Can be used to cut-out distributions from phase space - return kTRUE; + return kTRUE; }; Bool_t PDistribution::Prepare(void) { //make the preparation is front of genbod here //e.g. rotations - return kTRUE; + return kTRUE; }; Bool_t PDistribution::SampleMass(void) { @@ -159,12 +159,12 @@ Bool_t PDistribution::SampleAngle(void) { Bool_t PDistribution::Finalize(void) { //rotate back, if needed //return kFALSE if EndOfChain should be called - return kTRUE; + return kTRUE; }; Bool_t PDistribution::EndOfChain(void) { - return kTRUE; + return kTRUE; }; Bool_t PDistribution::CheckAbort(void) { @@ -225,7 +225,7 @@ Int_t PDistribution::Set(const Char_t *opt) { return -1; } if (parse_s == 2) return Set(parse[0], parse[1]); - + return -1; } @@ -235,11 +235,11 @@ Int_t PDistribution::Add(const Char_t *name, int flag, const Char_t *pflag) { return -1; } - if (GetVersionFlag(VERSION_IS_PRIMARY) - && !(flag==PARTICLE_LIST_DAUGHTER) - && !(flag==PARTICLE_LIST_PARENT) + if (GetVersionFlag(VERSION_IS_PRIMARY) + && !(flag==PARTICLE_LIST_DAUGHTER) + && !(flag==PARTICLE_LIST_PARENT) && relative_warning ) { - Warning("Add", + Warning("Add", "The primary model (%s) must not have other relatives then parent or daughter", identifier); } @@ -277,7 +277,7 @@ Int_t PDistribution::Set(const Char_t *name, const Char_t *pflag) { return -1; }; -Int_t PDistribution::Add(const Char_t *name, const Char_t *flag1, +Int_t PDistribution::Add(const Char_t *name, const Char_t *flag1, const Char_t *flag2, const Char_t *flag3) { Int_t tmp = GetFlag(flag1); @@ -287,11 +287,11 @@ Int_t PDistribution::Add(const Char_t *name, const Char_t *flag1, } tmp |= (GetFlag(flag2) | GetFlag(flag3)); - + const Char_t *pflag = NULL; - if ((GetFlag(flag2) == 0) && (flag2 != NULL)) + if ((GetFlag(flag2) == 0) && (flag2 != NULL)) pflag = flag2; - if ((GetFlag(flag3) == 0) && (flag3 != NULL)) + if ((GetFlag(flag3) == 0) && (flag3 != NULL)) pflag = flag3; if (!flag2 || GetFlag(flag2)) { //catch the "parent,sibling" case TString *delme = new TString(flag1); @@ -308,14 +308,14 @@ Int_t PDistribution::GetFlag(const Char_t *flag) { if (strcmp(flag, "DAUGHTER") == 0) return PARTICLE_LIST_DAUGHTER; if (strcmp(flag, "parent") == 0) return PARTICLE_LIST_PARENT; if (strcmp(flag, "GRANDDAUGHTER") == 0) return PARTICLE_LIST_GRANDDAUGHTER; - if (strcmp(flag, "granddaughter") == 0) return PARTICLE_LIST_GRANDDAUGHTER; + if (strcmp(flag, "granddaughter") == 0) return PARTICLE_LIST_GRANDDAUGHTER; if (strcmp(flag, "PARENT") == 0) return PARTICLE_LIST_PARENT; if (strcmp(flag, "grandparent") == 0) return PARTICLE_LIST_GRANDPARENT; if (strcmp(flag, "GRANDPARENT") == 0) return PARTICLE_LIST_GRANDPARENT; if (strcmp(flag, "grandgrandparent") == 0) return PARTICLE_LIST_GRANDGRANDPARENT ; if (strcmp(flag, "GRANDGRANDPARENT") == 0) return PARTICLE_LIST_GRANDGRANDPARENT ; - if (strcmp(flag, "sibling") == 0) return PARTICLE_LIST_SIBLING; - if (strcmp(flag, "SIBLING") == 0) return PARTICLE_LIST_SIBLING; + if (strcmp(flag, "sibling") == 0) return PARTICLE_LIST_SIBLING; + if (strcmp(flag, "SIBLING") == 0) return PARTICLE_LIST_SIBLING; return 0; }; @@ -342,22 +342,22 @@ Int_t PDistribution::SetParticle(PParticle *part, int mypid, int flag) { cout << "PDistribution::SetParticle: check particle, mypid: " << mypid << ", flag: " << flag << endl; part->Print(); } - + if (no_daughters && (flag == PARTICLE_LIST_DAUGHTER)) { if (!strcmp(GetName(), "_testmodel")) cout << "No daughters" << endl; return 0; //Do not check daughters if not required } for (int i=0; iGetParticleID("n") == mypid - || makeStaticData()->GetParticleID("p") == mypid ) && + (makeStaticData()->GetParticleID("n") == mypid + || makeStaticData()->GetParticleID("p") == mypid ) && (particle[i] == NULL) && (particle_flag[i] == flag)) || - ((flag == PARTICLE_LIST_DAUGHTER) && (mypid>1000) && (pid[i]==DISTRIBUTION_QUASI_PID) + ((flag == PARTICLE_LIST_DAUGHTER) && (mypid>1000) && (pid[i]==DISTRIBUTION_QUASI_PID) && (particle[i] == NULL))) { particle[i] = part; @@ -370,11 +370,11 @@ Int_t PDistribution::SetParticle(PParticle *part, int mypid, int flag) { PParticle *beam = part->GetScattering(0); PParticle *target = part->GetScattering(1); if (!beam || !target) { - if (!strcmp(GetName(), "_testmodel")) + if (!strcmp(GetName(), "_testmodel")) cout << "No beam, no target" << endl; return -1; //have not found anything } - int xpid1 = beam->ID(), + int xpid1 = beam->ID(), xpid2 = target->ID(); for (int j=0; jno_warning = kTRUE; - + //some bugfixes .... TODO: Move this to extra plugin //makeStaticData()->AddDecay("eta' Dalitz", "eta'","dilepton,g",0.0009); @@ -67,7 +67,7 @@ int PDistributionManager::Attach(PChannel *ch) { //and fills the PChannel with life //before Attaching, make the data base link - pdmutil->LinkDB(); + pdmutil->LinkDB(); ActivateStdModels(); @@ -75,7 +75,7 @@ int PDistributionManager::Attach(PChannel *ch) { } void PDistributionManager::ActivateStdModels(void) { - pdmutil->LinkDB(); + pdmutil->LinkDB(); if (!makeStaticData()->GetFreezeOut()) { pdmutil->no_warning = kTRUE; //remove warning, otherwise the Add() will cause warning @@ -84,8 +84,8 @@ void PDistributionManager::ActivateStdModels(void) { pdmutil->no_warning = kFALSE; Info("Attach", "Re-iteration of std plugin done"); - pdmutil->LinkDB(); - } + pdmutil->LinkDB(); + } } Bool_t PDistributionManager::AddPlugin(PDistributionCollection *plugin) { @@ -112,7 +112,7 @@ Bool_t PDistributionManager::Activate(const char *name) { } //first check if model is already activated if (GetDistribution(name)->GetEnable() && GetDistribution(name)->GetActivated()) return kTRUE; - + for (int i=0; iGetIdentifier()) == 0) { //first we check the dependencies @@ -156,9 +156,9 @@ Bool_t PDistributionManager::Exec(const char *command) { //split at ":" char *array2[200]; - Int_t array2_s = 200; + Int_t array2_s = 200; PUtils::Tokenize(command, ":", array2, &array2_s); - + if (array2_s > 2) { Warning("Exec", "Syntax error: Too many :'s"); return kFALSE; @@ -195,13 +195,13 @@ Bool_t PDistributionManager::Exec(const char *command) { return kFALSE; }; -void PDistributionManager::PluginInfo(const char *info) { +void PDistributionManager::PluginInfo(const char *info) { Info("PDistributionManager", info); }; Bool_t PDistributionManager::Startup(const char *command) { - if (!batch) + if (!batch) batch = new PBatch; batch->AddCommand(command); return kTRUE; @@ -253,7 +253,7 @@ Bool_t PDistributionManager::Unpack(const char *filename) { } //Unpack first projector for event loop - PCommandList *loop_start_cmd = + PCommandList *loop_start_cmd = (PCommandList*)gROOT->FindObject("_loop"); if (loop_start_cmd) { @@ -288,7 +288,7 @@ Bool_t PDistributionManager::Unpack(const char *filename) { } if (level>MAX_COMMAND_POINTER) return kFALSE; //break - } + } } } diff --git a/src/PDistributionManagerUtil.cc b/src/PDistributionManagerUtil.cc index 7c9d5db..b421784 100644 --- a/src/PDistributionManagerUtil.cc +++ b/src/PDistributionManagerUtil.cc @@ -1,9 +1,9 @@ ///////////////////////////////////////////////////////////////////// // PDistributionManagerUtil Class implementation file // -// PDistributionManagerUtil is the private implementation of +// PDistributionManagerUtil is the private implementation of // the PDistributionManager -// +// // // Author: I. Froehlich ///////////////////////////////////////////////////////////////////// @@ -75,7 +75,7 @@ void PDistributionManagerUtil::AlternativeTo(const char *a, const char *b) { alt_distribution[bpos] = apos; alt_distribution[apos] = bpos; } else { - Int_t bold=alt_distribution[bpos]; + Int_t bold=alt_distribution[bpos]; alt_distribution[bpos] = apos; alt_distribution[apos] = bold; } @@ -90,11 +90,11 @@ void PDistributionManagerUtil::AlternativeTo(const char *a, const char *b) { } int PDistributionManagerUtil::Add(PDistribution *dist) { - //Adds a distribution to the list + //Adds a distribution to the list //return value -1 on failure Int_t num_channels; - + if (makeDynamicData()->GetPChannels(&num_channels) && (no_warning==kFALSE)) { Warning("Add", "You add a distribution (%s) after PChannels have been created", dist->GetIdentifier()); Warning("Add", "Please add the PDistribution in the very beginning"); @@ -116,15 +116,15 @@ int PDistributionManagerUtil::Add(PDistribution *dist) { distribution[position] = dist; alt_distribution[position] = -1; - AddCorrelation(current_group, position); + AddCorrelation(current_group, position); position++; if (dist->GetKey() >= 0) { //is channel model? Int_t key = makeDataBase()->GetEntry(dist->GetIdentifier()); - if (key < 0) + if (key < 0) key = makeDataBase()->AddEntry(dist->GetIdentifier()); if (key >= 0) { - makeDataBase()->SetParamTObj(dist->GetIdentifier(), "batch_models", dist); + makeDataBase()->SetParamTObj(dist->GetIdentifier(), "batch_models", dist); } } @@ -138,7 +138,7 @@ int PDistributionManagerUtil::Add(PDistribution *dist) { } int PDistributionManagerUtil::Add(PDistribution *dist, const Char_t *gr) { - + Int_t save = current_group; if (GetGroup(gr) < 0) return -1; current_group = GetGroup(gr); @@ -148,7 +148,7 @@ int PDistributionManagerUtil::Add(PDistribution *dist, const Char_t *gr) { return -1; } current_group = save; - return 0; + return 0; } int PDistributionManagerUtil::Add(TObjArray *arr) { @@ -175,7 +175,7 @@ int PDistributionManagerUtil::Attach(PChannel *ch) { if (ch->GetQuasi()) { Attach(ch->GetQuasi()); //Attach also dummy quasi-free scattering } - + for (int i=0; iGetEnable()) { if (ch->SetDistribution(distribution[i]) == 0) { @@ -227,12 +227,12 @@ Int_t PDistributionManagerUtil::PrintGroup(Int_t group_id, Int_t width, Int_t in for (int gr=0; gr return_width) return_width = local_width; if (dummy_will_print) local_will_print = 1; } - } + } for (int corr=0; corrGetIdentifier())+indent; - if (local_width > return_width) + if (local_width > return_width) return_width = local_width; if (alt_distribution[corr_dis[corr]] != -1 ) { @@ -253,10 +253,10 @@ Int_t PDistributionManagerUtil::PrintGroup(Int_t group_id, Int_t width, Int_t in int mylist = alt_distribution[corr_dis[corr]]; while (mylist != corr_dis[corr]) { local_width = strlen(distribution[mylist]->GetIdentifier())+indent; - if (local_width > return_width) + if (local_width > return_width) return_width = local_width; mylist = alt_distribution[mylist]; - if (mylist == -1) + if (mylist == -1) mylist = corr_dis[corr]; } } @@ -270,11 +270,11 @@ Int_t PDistributionManagerUtil::PrintGroup(Int_t group_id, Int_t width, Int_t in *num_total_mods += local_num_total_mods; *num_subs += local_num_subs+1; Int_t local_width = strlen(group_identifier[group_id])+indent; - if (local_width > return_width) + if (local_width > return_width) return_width = local_width; if (name) - if ((strcmp(name,group_identifier[group_id]) == 0) || (group_expanded[group_id]) + if ((strcmp(name,group_identifier[group_id]) == 0) || (group_expanded[group_id]) || local_will_print) { *will_print = 1; return return_width; @@ -284,7 +284,7 @@ Int_t PDistributionManagerUtil::PrintGroup(Int_t group_id, Int_t width, Int_t in } if (!local_num_total_mods) return 0; //nothing to print - + //Print group header cout << " "; for (Int_t k=0; kGetEnable()) cout << "[X] "; @@ -349,7 +349,7 @@ Int_t PDistributionManagerUtil::PrintGroup(Int_t group_id, Int_t width, Int_t in cout << distribution[corr_dis[corr]]->GetDescription() << endl;; if (verbosity == 2) { //Print out parameters etc... for the given Model distribution[corr_dis[corr]]->Print(); - } + } if (alt_distribution[corr_dis[corr]] != -1 ) { int mylist=alt_distribution[corr_dis[corr]]; while (mylist != corr_dis[corr]) { @@ -359,7 +359,7 @@ Int_t PDistributionManagerUtil::PrintGroup(Int_t group_id, Int_t width, Int_t in cout << distribution[mylist]->GetIdentifier(); if ((width-indent-strlen(distribution[mylist]->GetIdentifier()))>0) { - for (UInt_t k=0; k<((width-indent-strlen(distribution[mylist]->GetIdentifier()))); k++) + for (UInt_t k=0; k<((width-indent-strlen(distribution[mylist]->GetIdentifier()))); k++) cout << " "; cout << distribution[mylist]->GetDescription() << endl; } @@ -369,13 +369,13 @@ Int_t PDistributionManagerUtil::PrintGroup(Int_t group_id, Int_t width, Int_t in cout << distribution[mylist]->GetIdentifier(); if ((width-indent-strlen(distribution[mylist]->GetIdentifier())) > 0) { - for (UInt_t k=0;k<((width-indent-strlen(distribution[mylist]->GetIdentifier())));k++) + for (UInt_t k=0;k<((width-indent-strlen(distribution[mylist]->GetIdentifier())));k++) cout << " "; } cout << distribution[mylist]->GetDescription() << endl; } mylist = alt_distribution[mylist]; - if (mylist == -1) + if (mylist == -1) mylist = corr_dis[corr]; } } @@ -411,7 +411,7 @@ void PDistributionManagerUtil::Print(const Option_t *delme) const { if (group_corr[gr] < 0) { Int_t local_width = PrintGroup(gr, 0, 0, (char*)delme, &a, &b, &c, &d); - if (local_width > max_width) + if (local_width > max_width) max_width = local_width; } } @@ -421,7 +421,7 @@ void PDistributionManagerUtil::Print(const Option_t *delme) const { PrintGroup(gr, max_width+2, 0, (char*) delme, &a, &b, &c, &d); } - + // if (!group_expanded[gr] && (print == 0) && (sum>0)) { //Print Summary // print=1; // cout << endl << " "; @@ -430,7 +430,7 @@ void PDistributionManagerUtil::Print(const Option_t *delme) const { // cout << " "; // cout << group_description[gr] << ": " << enable << " enabled (out of " << sum << ")" << endl; // } -// } +// } //end loop over groups cout << "--------------------" << endl; @@ -454,7 +454,7 @@ Bool_t PDistributionManagerUtil::Disable(const Char_t *id) { retval = kTRUE; if (distribution[i]->GetEnable()) distribution[i]->SetEnable(0); - + } } //look for groups @@ -470,13 +470,13 @@ Bool_t PDistributionManagerUtil::Disable(const Char_t *id) { for (int i=0; iGetKey()>=0 && distribution[i]->GetEnable()) { if (makeDynamicData()->GetDecayModelByKey(distribution[i]->GetKey()) && (linkdb_done==0)) { @@ -547,17 +547,17 @@ void PDistributionManagerUtil::LinkDB(void) { Warning("LinkDB", "'%s' would overwrite'%s' ", distribution[i]->GetDescription(), makeDynamicData()->GetDecayModelByKey(distribution[i]->GetKey())->GetDescription()); } else { - makeDynamicData()->SetDecayModelByKey(distribution[i]->GetKey(), + makeDynamicData()->SetDecayModelByKey(distribution[i]->GetKey(), (PChannelModel *)distribution[i] ); } } - - for (int i=0; iGetKey()>=0 && distribution[i]->GetEnable()) { distribution[i]->FreezeOut(); } - - linkdb_done = 1; + + linkdb_done = 1; } //BUGBUG: Check if 2 keys are used @@ -584,7 +584,7 @@ int PDistributionManagerUtil::AddSubGroup(const Char_t *id, const Char_t *de, co Int_t par = GetGroup(parent_group); if (par < 0) return -1; group_corr[mygr] = par; - + return 0; } diff --git a/src/PDynamicData.cc b/src/PDynamicData.cc index 789e693..c654d25 100644 --- a/src/PDynamicData.cc +++ b/src/PDynamicData.cc @@ -7,7 +7,7 @@ // // Author: IF // Written: 23.7.2007 -// Revised: +// Revised: // ////////////////////////////////////////////////////////////////////// @@ -30,7 +30,7 @@ PDynamicData *makeDynamicData() { } PDynamicData::PDynamicData() { - + PDataBase *base = makeDataBase(); i_result = NULL; c_result = NULL; @@ -81,10 +81,10 @@ double PDynamicData::GetParticleTotalWidthSum(Double_t mass, Int_t id, Int_t fla // Due to roundoff error in the interpolation, Width() returns a value // that differs slightly from the sum of the partial widths Width1(). // As a result, small branching ratios (e.g. electromagnetic processes) - // may never be sampled if Width() is used. For this reason, if a BR is - // requested, it is best to calculate the total width explicitly by + // may never be sampled if Width() is used. For this reason, if a BR is + // requested, it is best to calculate the total width explicitly by // summing the partial widths for any given mass. - // + // // flag=1: take into account only hadronic decays static double mo = 0.; @@ -106,7 +106,7 @@ double PDynamicData::GetParticleTotalWidthSum(Double_t mass, Int_t id, Int_t fla return wt = makeStaticData()->GetParticleTotalWidth(id); // static total width } - + if (io != id) { // parent id changed since last call io = id; mo = 0.; @@ -115,7 +115,7 @@ double PDynamicData::GetParticleTotalWidthSum(Double_t mass, Int_t id, Int_t fla if (mo!=mass || flag!=old_flag) { // mass changed since last call mo = mass; old_flag = flag; - if (massPData::UMass(id)) + if (massPData::UMass(id)) return 0.; // out of range double g_tmp = 0.; // reset sums @@ -128,19 +128,19 @@ double PDynamicData::GetParticleTotalWidthSum(Double_t mass, Int_t id, Int_t fla (key, "pnmodes", "link", &listkey)) { makeDataBase()->GetParamInt(listkey, "didx", &didx); //small workaround if (makeStaticData()->GetPWidx(*didx) == -1 - && mass >= makeStaticData()->GetDecayEmin(*didx)) + && mass >= makeStaticData()->GetDecayEmin(*didx)) // if mode is unknown but kinematically accessible... g_tmp += makeStaticData()->GetDecayBR(*didx)* makeStaticData()->GetParticleTotalWidth(id); // ...update with the current static BR - else if (flag == 0) - g_tmp += GetDecayPartialWidth(mass, *didx); + else if (flag == 0) + g_tmp += GetDecayPartialWidth(mass, *didx); else if (makeStaticData()->IsDecayHadronic(*didx)) - g_tmp += GetDecayPartialWidth(mass, *didx); + g_tmp += GetDecayPartialWidth(mass, *didx); // otherwise, decay width of known mode } - wt = g_tmp; + wt = g_tmp; } return wt; @@ -150,7 +150,7 @@ double PDynamicData::GetDecayBR(int idx, double m) { // returns branching ratio by mode index and mass (GeV/c^2) PChannelModel *model = GetDecayModel(idx); - if (!model) { + if (!model) { return makeStaticData()->GetDecayBR(idx); } Double_t br; @@ -164,7 +164,7 @@ double PDynamicData::GetDecayBR(int idx, double m) { void PDynamicData::ListDecayBR(int id, double m) { // list branching ratios of particle id for mass m - + if (!makeStaticData()->IsParticleValid(id)) { // pid out of range return; } @@ -203,16 +203,16 @@ void PDynamicData::ListDecayBR(int id, double m) { int PDynamicData::PickDecayChannel(const int &id, const double &m) { // returns the index of a decay mode for particle pid=id of mass m (GeV/c**2) // selected randomly, consistent with the branching ratios - + if (!makeStaticData()->IsParticleValid(id)) { // pid out of range Warning("PickDecayChannel","id %i out of range", id); return -1; } else if (mPData::UMass(id)) return -2; // mass out of range - + int n = makeStaticData()-> GetParticleNChannels(id); // number of channels available - + if (!n) return -3; // stable particle double r = PUtils::sampleFlat(), br = 0.; // pick a random number double sum = 0.; @@ -221,8 +221,8 @@ int PDynamicData::PickDecayChannel(const int &id, const double &m) { Int_t listkey = -1; while (makeDataBase()->MakeListIterator - (key, pnmodes_param, link_param, &listkey)) { - makeDataBase()->GetParamInt + (key, pnmodes_param, link_param, &listkey)) { + makeDataBase()->GetParamInt (listkey, didx_param , &didx); //small workaround -> should work on keys sum+=GetDecayBR(*didx,m)*makeStaticData()->GetEnhanceChannelBR(*didx); // normalize first branching ratios //cout << "BR is " << GetDecayBR(*didx,m) << " for " << didx[0] << endl; @@ -242,13 +242,13 @@ int PDynamicData::PickDecayChannel(const int &id, const double &m) { return *didx; // return selected index } } - + Warning("PickDecayChannel", "id=%d sum=%f\n", id, sum); return -5; } int PDynamicData::PickDecayChannel(const int &id, const double &m, int *array) { - // returns the number and pids of the decay products for the decay + // returns the number and pids of the decay products for the decay // of particle pid=id of mass m (GeV/c**2), via a mode selected // randomly, consistent with the branching ratios // In addition, it does not hurt to return the index (IF) @@ -256,16 +256,16 @@ int PDynamicData::PickDecayChannel(const int &id, const double &m, int *array) { if (!array) { // invalid address of array Warning("PickDecayChannel", "Invalid address of array"); return -1; - } else if (!makeStaticData()->IsParticleValid(id)) { + } else if (!makeStaticData()->IsParticleValid(id)) { // pid out of range Warning("PickDecayChannel", "id %i out of range", id); return -1; } - + array[0] = 0; // failed to select an index Int_t p = PickDecayChannel(id, m); array[0] = 10; //max 10 particles -> for the Mode() BUGBUG: Size of array not checked - if (p >= 0) makeStaticData()->GetDecayMode(p, array); + if (p >= 0) makeStaticData()->GetDecayMode(p, array); // return number of products and pids return p; } @@ -304,7 +304,7 @@ void PDynamicData::SetDecaySCFactor(Int_t didx, Double_t factor) { bool PDynamicData::CheckSCAbort(Int_t didx) { //to stop endless loops if (! makeDataBase()->GetParamInt (didx_param, didx , sccount_param, &i_result)) { - makeDataBase()->SetParamInt (makeDataBase()->GetEntryInt(didx_param, didx) , + makeDataBase()->SetParamInt (makeDataBase()->GetEntryInt(didx_param, didx) , "sccount", new Int_t(10)); //TODO:MAX_TRIES return kTRUE; } @@ -331,7 +331,7 @@ PChannelModel *PDynamicData::GetDecayModelByKey(Int_t key) { PChannelModel *PDynamicData::GetDecayModelByKey(Int_t key, Int_t defkey) { //returns the secondary decay model - + Int_t listkey = makeStaticData()->GetSecondaryKey(key, defkey); if (listkey<0) return NULL; @@ -355,15 +355,15 @@ PChannelModel *PDynamicData::GetParticleModel(Int_t pid) { return (PChannelModel *) t_result; } -PChannelModel *PDynamicData::GetParticleSecondaryModel(const char *name, +PChannelModel *PDynamicData::GetParticleSecondaryModel(const char *name, const char *modelname) { Int_t sec_key = makeStaticData()->MakeDirectoryEntry("modeldef", NMODEL_NAME, LMODEL_NAME, modelname); - if (sec_key < 0) + if (sec_key < 0) return NULL; Int_t primary_key = makeStaticData()->GetParticleKey(name); Int_t listkey = makeStaticData()->GetSecondaryKey(primary_key, sec_key); - if (listkey < 0) + if (listkey < 0) return NULL; Int_t model_param = makeDataBase()->GetParamTObj("model"); @@ -394,16 +394,16 @@ Double_t PDynamicData::GetParticleTotalWidth(Double_t mass, Int_t pid) { Double_t PDynamicData::GetParticleTotalWeight(Double_t mass, Int_t pid, Int_t didx) { //return the mass-dependent width if a model exists //no mode: use the fixed Breit-Wigner with the total width - + PChannelModel *model = GetParticleModel(pid); if (model) { - Double_t w = model->GetWeight(&mass, &didx); - if (w > 0) + Double_t w = model->GetWeight(&mass, &didx); + if (w > 0) return w; return 0; } - + return 0; //BUGBUG make fixed BW here } @@ -412,7 +412,7 @@ bool PDynamicData::SetDecayModel(Int_t didx, PChannelModel *model) { Int_t key = makeDataBase()->GetEntryInt("didx", didx); if (! makeDataBase()->SetParamTObj (key, "model", (TObject *)model)) { return kFALSE; - } + } return kTRUE; } @@ -420,44 +420,44 @@ bool PDynamicData::SetDecayModelByKey(Int_t didx, PChannelModel *model) { if (! makeDataBase()->SetParamTObj (didx, "model", (TObject *)model)) { return kFALSE; - } + } return kTRUE; } double PDynamicData:: GetParticleLife(const int &id, double m, int idx) { // mean life - // Arguments: 1. id=particle id + // Arguments: 1. id=particle id // 2. m=mass (GeV/c**2) // 3. idx=decay-mode index (PPosition) - + //CALLED FROM: PParticle, PReaction const long double hbar = 6.582122e-25;// (s GeV/c**2) - double w0 = + double w0 = makeStaticData()->GetParticleTotalWidth( makeStaticData()->IsParticleValid(id)); // static total width - if (id == 50 || - makeStaticData()->IsParticle(id,"dilepton")) { + if (id == 50 || + makeStaticData()->IsParticle(id,"dilepton")) { // dilepton = virtual particle! if (w0 > 0.0) return hbar/w0; else if (m > 0.0) return hbar/m; else return 0.0; } - double tau0 = (w0>0.) ? hbar/w0 : 1.e16; + double tau0 = (w0>0.) ? hbar/w0 : 1.e16; // static total mean life (width=0 means stable!) - + if (m>0. && w0>0.) { // unstable particle with non-zero mass if (idx == -1) { // request for total mass-dependent mean life double w = GetParticleTotalWidth(m,id); // total mass-dependent width - if (w > 0.) - return hbar/w; + if (w > 0.) + return hbar/w; // total mass-dependent mean life, if non zero width } else { // request for partial mass-dependent mean life - double w1 = GetDecayPartialWidth(m,idx); + double w1 = GetDecayPartialWidth(m,idx); // partial mass-dependent width for decay via channel idx - if (w1 > 0.) - return hbar/w1; + if (w1 > 0.) + return hbar/w1; // partial mass-dependent mean life, if non zero partial width } } @@ -465,46 +465,46 @@ double PDynamicData:: GetParticleLife(const int &id, double m, int idx) { } int PDynamicData::GetParticleDepth(const int &id, int flag) { - // Returns the total number of embedded recursive decays + // Returns the total number of embedded recursive decays // (TDepth if flag=0) or the number of embedded recursive // hadronic decays (HDepth if flag=1). // The default value 0 means the index has not been accessed yet. // Zero depth corresponds to index -1. - + if (makeStaticData()->IsParticleValid(id) == 0) { Warning("GetParticleDepth", "Particle id %i out of range", id); return 0; } else if (makeStaticData()->GetTDepth(id)) { - return (flag) ? - ((makeStaticData()->GetHDepth(id)!=-1) ? + return (flag) ? + ((makeStaticData()->GetHDepth(id)!=-1) ? makeStaticData()->GetHDepth(id) : 0) : - ((makeStaticData()->GetTDepth(id)!=-1) ? + ((makeStaticData()->GetTDepth(id)!=-1) ? makeStaticData()->GetTDepth(id) : 0); } // Enters once on the first call; // It also turns off the full-width (TWidx) and partial-width // indices (PWidx) for particles and decay modes, respectively, - // if the total and partial widths are not calculated. In the + // if the total and partial widths are not calculated. In the // latter case the static width and branching ratio are used. int n = makeStaticData()->GetParticleNChannels(id); - + if (!n) { // no decay modes makeStaticData()->SetTWidx(id, -1); // turn off total-width flag makeStaticData()->SetTDepth(id, -1); // turn off total depth index makeStaticData()->SetHDepth(id, -1); // turn off hadronic depth index - } else { - int iter = 0, + } else { + int iter = 0, iter2 = 0; - + //now loop over decay modes Int_t key = makeDataBase()->GetEntryInt("pid", id); Int_t listkey = -1; - + Int_t tid[11]; while (makeDataBase()->MakeListIterator (key, "pnmodes", "link", &listkey)) { - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(listkey, tid); // retrieve current mode info int pos = makeStaticData()->GetDecayIdxByKey(listkey); //np=tid[0]; @@ -525,10 +525,10 @@ int PDynamicData::GetParticleDepth(const int &id, int flag) { makeStaticData()->SetTDepth(id, (iter)?iter:-1); // store total depth makeStaticData()->SetHDepth(id, (iter2)?iter2:-1); // store hadronic depth } - return (flag) ? - ((makeStaticData()->GetHDepth(id)!=-1) ? + return (flag) ? + ((makeStaticData()->GetHDepth(id)!=-1) ? makeStaticData()->GetHDepth(id) : 0) : - ((makeStaticData()->GetTDepth(id)!=-1) ? + ((makeStaticData()->GetTDepth(id)!=-1) ? makeStaticData()->GetTDepth(id) : 0); } @@ -571,7 +571,7 @@ PParticle *PDynamicData::GetBatchParticle(const char *name, Int_t make_val) { TObject *ret; Int_t batch_particle_param = makeDataBase()->GetParamTObj("batch_particle"); - if (batch_particle_param < 0) + if (batch_particle_param < 0) batch_particle_param = makeDataBase()->MakeParamTObj("batch_particle", "PParticle storage for batch"); if (!makeDataBase()->GetParamTObj(key_a ,batch_particle_param,&ret)) { @@ -589,7 +589,7 @@ TH1 *PDynamicData::GetBatchHistogram(const char *name) { TObject *ret; Int_t batch_histogram_param = makeDataBase()->GetParamTObj("batch_histogram"); - if (batch_histogram_param < 0) + if (batch_histogram_param < 0) batch_histogram_param = makeDataBase()->MakeParamTObj("batch_histogram", "Histogram storage for batch"); if (!makeDataBase()->GetParamTObj(key_a, batch_histogram_param, &ret)) { @@ -600,11 +600,11 @@ TH1 *PDynamicData::GetBatchHistogram(const char *name) { Bool_t PDynamicData::SetBatchHistogram(const char *name, TH1 *histo) { Int_t key_a = makeStaticData()->MakeDirectoryEntry("batch_objects", NBATCH_NAME, LBATCH_NAME, name); - + Int_t batch_histogram_param = makeDataBase()->GetParamTObj("batch_histogram"); - if (batch_histogram_param < 0) + if (batch_histogram_param < 0) batch_histogram_param = makeDataBase()->MakeParamTObj("batch_histogram", "Histogram storage for batch"); - + return makeDataBase()->SetParamTObj(key_a, "batch_histogram", histo); }; diff --git a/src/PEEDirectDecay.cc b/src/PEEDirectDecay.cc index f01b24e..0a7b9ed 100644 --- a/src/PEEDirectDecay.cc +++ b/src/PEEDirectDecay.cc @@ -25,32 +25,32 @@ PEEDirectDecay::PEEDirectDecay(const Char_t *id, const Char_t *de, Int_t key) : //set all needed parameters in advance Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(key, tid); // retrieve current mode info parent_id = makeStaticData()->GetDecayParentByKey(key); - - if (tid[0] != 2) + + if (tid[0] != 2) Warning("PEEDirectDecay", "(%s) Only 2 body decay",de); - if (makeStaticData()->IsParticle(parent_id, "rho0")) - cv = 3.079e-6; - else if (makeStaticData()->IsParticle(parent_id, "w")) + if (makeStaticData()->IsParticle(parent_id, "rho0")) + cv = 3.079e-6; + else if (makeStaticData()->IsParticle(parent_id, "w")) cv = 0.287e-6; - else if (makeStaticData()->IsParticle(parent_id, "phi")) + else if (makeStaticData()->IsParticle(parent_id, "phi")) cv = 1.450e-6; - else if (makeStaticData()->IsParticle(parent_id, "J/Psi")) + else if (makeStaticData()->IsParticle(parent_id, "J/Psi")) cv = 1.560e-4; - // eta-> ee: no vector meson + // eta-> ee: no vector meson else { Warning("PEEDirectDecay", "(%s) Undetermined direct decay", de); } //ee or mumu? if (makeStaticData()->IsParticle(tid[1], "e+") || - makeStaticData()->IsParticle(tid[2], "e+")) + makeStaticData()->IsParticle(tid[2], "e+")) mlep = makeStaticData()->GetParticleMass("e-"); else if (makeStaticData()->IsParticle(tid[1], "mu+")|| - makeStaticData()->IsParticle(tid[2], "mu+")) + makeStaticData()->IsParticle(tid[2], "mu+")) mlep = makeStaticData()->GetParticleMass("mu-"); else Warning("PEEDirectDecay", "(%s) No dilepton/dimuon",de); @@ -115,10 +115,10 @@ Bool_t PEEDirectDecay::GetWidth(Double_t mass, Double_t *width, Int_t) { makeDynamicData()->GetParticleDepth(parent_id); // if 1st call will initialize flags mmin = makeStaticData()->GetDecayEmin(is_channel); // mass threshold for the decay - + mmax = PData::UMass(parent_id); // mass ceiling Double_t dm = (mmax-mmin)/(maxmesh-3.); // mass increment - + mesh = new PMesh(maxmesh-2, "mesh"); for (int i=0; i 0) wid = cv*sqrt(1.-2.*mem)*(1.+mem)/m3; - + //pipi cutoff - + double pi2phase = 1; - if ((use_pi_cutoff == 1)) + if ((use_pi_cutoff == 1)) pi2phase = PKinematics::pcms(mm, makeStaticData()->GetParticleMass("pi+"), - makeStaticData()->GetParticleMass("pi-")); - + makeStaticData()->GetParticleMass("pi-")); + pi2phase = mm > 2*makeStaticData()->GetParticleMass("pi+") ? pi2phase : 0; if ((wid>0) && (use_pi_cutoff)) { temp0 = wid*pow(pi2phase,3./2.) ; } else if ((wid>0) && (use_hadronic_ps)) { - Double_t pole_width = + Double_t pole_width = makeDynamicData()->GetParticleTotalWidthSum(makeStaticData()->GetParticleMass(parent_id), parent_id, 1); - Double_t mass_width = + Double_t mass_width = makeDynamicData()->GetParticleTotalWidthSum(mm, parent_id, 1); - + temp0 = wid*(mass_width/pole_width); } else if (wid>0) { temp0 = wid; - } else + } else temp0 = 0; - + //-------------------- - mesh->SetNode(i, temp0); + mesh->SetNode(i, temp0); } mesh->SetMin(mmin); // store mass threshold diff --git a/src/PF1.cc b/src/PF1.cc index 31cf53d..308b57c 100644 --- a/src/PF1.cc +++ b/src/PF1.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////// -// +// // Adapted TF1 // //////////////////////////////////////////////////////// @@ -19,7 +19,7 @@ using namespace std; PF1::PF1() : TF1() { - projector = NULL; + projector = NULL; }; PF1::PF1(const char *name, const char *formula, Double_t xmin, Double_t xmax) : @@ -34,7 +34,7 @@ PF1::PF1(const char *name, void *fcn, Double_t xmin, Double_t xmax, Int_t npar) }; #endif -PF1::PF1(const char *name, Double_t (*fcn)(Double_t *, Double_t *), +PF1::PF1(const char *name, Double_t (*fcn)(Double_t *, Double_t *), Double_t xmin, Double_t xmax, Int_t npar) : TF1(name,fcn,xmin,xmax,npar) { projector = NULL; @@ -43,7 +43,7 @@ PF1::PF1(const char *name, Double_t (*fcn)(Double_t *, Double_t *), PF1::PF1(const char *name, ROOT::Math::ParamFunctor f, Double_t xmin, Double_t xmax, Int_t npar) : TF1(name, f, xmin, xmax,npar) { projector = NULL; -}; +}; PF1::PF1(const PF1 &f1) : TF1(f1) { @@ -55,8 +55,8 @@ PF1::PF1(const char *name, Double_t xmin, Double_t xmax) : TF1(name,"x", xmin, xmax) { SetTitle(name); projector = new PProjector(); - vf = makeStaticData()->GetBatchValue("_f"); - vx = makeStaticData()->GetBatchValue("_x"); + vf = makeStaticData()->GetBatchValue("_f"); + vx = makeStaticData()->GetBatchValue("_x"); } Bool_t PF1::Add(char *command) { diff --git a/src/PF2.cc b/src/PF2.cc index 1a5091c..85e13c1 100644 --- a/src/PF2.cc +++ b/src/PF2.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////// -// +// // Adapted TF2 // //////////////////////////////////////////////////////// @@ -21,7 +21,7 @@ using namespace std; PF2::PF2() : TF2() { - projector = NULL; + projector = NULL; epsilon = 0.000001; //ROOT std. }; @@ -39,14 +39,14 @@ PF2::PF2(const char *name, void *fcn, Double_t xmin, Double_t xmax, Double_t ymi }; #endif -PF2::PF2(const char *name, Double_t (*fcn)(Double_t *, Double_t *), +PF2::PF2(const char *name, Double_t (*fcn)(Double_t *, Double_t *), Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Int_t npar) : TF2(name,fcn,xmin,xmax,ymin,ymax,npar) { projector = NULL; epsilon = 0.000001; //ROOT std. }; -PF2::PF2(const char *name, Double_t (*fcn)(const Double_t *, const Double_t *), +PF2::PF2(const char *name, Double_t (*fcn)(const Double_t *, const Double_t *), Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Int_t npar) : TF2(name,fcn,xmin,xmax,ymin,ymax,npar) { projector = NULL; @@ -57,7 +57,7 @@ PF2::PF2(const char *name, ROOT::Math::ParamFunctor f, Double_t xmin, Double_t x TF2(name, f, xmin, xmax, ymin, ymax, npar) { projector = NULL; epsilon = 0.000001; //ROOT std. -}; +}; PF2::PF2(const PF2 &f2) : TF2(f2) { @@ -72,9 +72,9 @@ PF2::PF2(const char *name, Double_t xmin, Double_t xmax, Double_t ymin, Double_t SetTitle(name); projector = new PProjector(); epsilon = 0.000001; //ROOT std. - vf = makeStaticData()->GetBatchValue("_f"); - vx = makeStaticData()->GetBatchValue("_x"); - vy = makeStaticData()->GetBatchValue("_y"); + vf = makeStaticData()->GetBatchValue("_f"); + vx = makeStaticData()->GetBatchValue("_x"); + vy = makeStaticData()->GetBatchValue("_y"); } Bool_t PF2::Add(const char *command) { @@ -145,10 +145,10 @@ void PF2::GetRandom2(Double_t &xrandom, Double_t &yrandom) { Double_t dx = (fXmax-fXmin)/fNpx; Double_t dy = (fYmax-fYmin)/fNpy; Int_t ncells = fNpx*fNpy; - if (fIntegral.empty()) { - MakeIntegral(); + if (fIntegral.empty()) { + MakeIntegral(); } - + // return random numbers Double_t r, ddx, ddy, dxint; r = PUtils::sampleFlat(); @@ -170,12 +170,12 @@ Bool_t PF2::MakeIntegral(void) { Double_t dx = (fXmax-fXmin)/fNpx; Double_t dy = (fYmax-fYmin)/fNpy; Int_t ncells = fNpx*fNpy; - + if (fIntegral.empty()) { - int print_twentypercent = ncells/5, print_cpc = 1, + int print_twentypercent = ncells/5, print_cpc = 1, print_ipc = print_cpc*print_twentypercent; if (ncells>INTEGRAL_PRINT_THRESHOLD) Info("MakeIntegral","Generating array, this can take a while...."); - + fIntegral.resize(ncells+1); fIntegral[0] = 0; Double_t integ; @@ -206,12 +206,12 @@ Bool_t PF2::MakeIntegral(void) { fIntegral[i] /= fIntegral[ncells]; } if (ncells>INTEGRAL_PRINT_THRESHOLD) Info("MakeIntegral","...done (%i bins)",ncells); - } + } return kTRUE; } -#if 0 +#if 0 //ROOT5 Bool_t PF2::MakeIntegral(void) { //Copied from ROOT @@ -220,9 +220,9 @@ Bool_t PF2::MakeIntegral(void) { Double_t dx = (fXmax-fXmin)/fNpx; Double_t dy = (fYmax-fYmin)/fNpy; Int_t ncells = fNpx*fNpy; - + if (fIntegral == 0) { - int print_twentypercent = ncells/5, print_cpc = 1, + int print_twentypercent = ncells/5, print_cpc = 1, print_ipc = print_cpc*print_twentypercent; if (ncells>INTEGRAL_PRINT_THRESHOLD) Info("MakeIntegral","Generating array, this can take a while...."); @@ -256,7 +256,7 @@ Bool_t PF2::MakeIntegral(void) { fIntegral[i] /= fIntegral[ncells]; } if (ncells>INTEGRAL_PRINT_THRESHOLD) Info("MakeIntegral","...done (%i bins)",ncells); - } + } return kTRUE; }; #endif diff --git a/src/PF3.cc b/src/PF3.cc index 106f152..b90484f 100644 --- a/src/PF3.cc +++ b/src/PF3.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////// -// +// // Adapted TF1 // //////////////////////////////////////////////////////// @@ -19,7 +19,7 @@ using namespace std; PF3::PF3() : TF3() { - projector = NULL; + projector = NULL; }; PF3::PF3(const char *name, const char *formula, Double_t xmin, Double_t xmax, Double_t, Double_t, Double_t, Double_t) : @@ -34,7 +34,7 @@ PF3::PF3(const char *name, void *fcn, Double_t xmin, Double_t xmax, Double_t, Do }; #endif -PF3::PF3(const char *name, Double_t (*fcn)(Double_t *, Double_t *), +PF3::PF3(const char *name, Double_t (*fcn)(Double_t *, Double_t *), Double_t xmin, Double_t xmax, Double_t, Double_t, Double_t, Double_t, Int_t npar) : TF3(name, fcn, xmin, xmax, npar) { projector = NULL; @@ -43,7 +43,7 @@ PF3::PF3(const char *name, Double_t (*fcn)(Double_t *, Double_t *), PF3::PF3(const char *name, ROOT::Math::ParamFunctor f, Double_t xmin, Double_t xmax, Double_t, Double_t, Double_t, Double_t, Int_t npar) : TF3(name, f, xmin, xmax, npar) { projector = NULL; -}; +}; PF3::PF3(const PF3 &f3) : TF3(f3) { @@ -55,10 +55,10 @@ PF3::PF3(const char *name, Double_t xmin, Double_t xmax, Double_t, Double_t, Dou TF3(name,"x+y+z", xmin, xmax) { SetTitle(name); projector = new PProjector(); - vf = makeStaticData()->GetBatchValue("_f"); - vx = makeStaticData()->GetBatchValue("_x"); - vy = makeStaticData()->GetBatchValue("_y"); - vz = makeStaticData()->GetBatchValue("_z"); + vf = makeStaticData()->GetBatchValue("_f"); + vx = makeStaticData()->GetBatchValue("_x"); + vy = makeStaticData()->GetBatchValue("_y"); + vz = makeStaticData()->GetBatchValue("_z"); } Bool_t PF3::Add(char *command) { diff --git a/src/PFermiMomentum.cc b/src/PFermiMomentum.cc index 9a3435d..deec1c2 100644 --- a/src/PFermiMomentum.cc +++ b/src/PFermiMomentum.cc @@ -57,7 +57,7 @@ PFermiMomentum::~PFermiMomentum() { double PFermiMomentum::SampleFermi(double &px, double &py, double &pz) { // sample Deuteron Fermi momentum in GeV/c - + double p = this->GetRandom(); while (p>0.3) p = this->GetRandom(); @@ -93,7 +93,7 @@ Double_t PFermiMomentum::GetWeight(Double_t *mass, Int_t *) { eS = sqrt(ptot*ptot + massS*massS); // spectator total energy in deuteron c.m. mdeut = makeStaticData()->GetParticleMass("d"); t = pow(mdeut-massS,2) - 2.*mdeut*(eS-massS); // off-shell mass**2 of participant - eP = sqrt(ptot*ptot + t); // participant total energy + eP = sqrt(ptot*ptot + t); // participant total energy TLorentzVector my_part(px,py,pz,eP); TLorentzVector my_q = my_part + my_beam; @@ -103,7 +103,7 @@ Double_t PFermiMomentum::GetWeight(Double_t *mass, Int_t *) { w *= composite_model->GetWeight(&my_sqrt); } - return w; + return w; }; double PFermiMomentum::EvalPar(const double *x, const double *) { @@ -130,21 +130,21 @@ Double_t PFermiMomentum::Eval(Double_t x, Double_t, Double_t, Double_t) const { m[i] = alpha + i; m2[i] = m[i]*m[i]; } - + double c[13] = {0.88688076e0, -0.34717093e0, -0.30502380e1, 0.56207766e2, -0.74957334e3, 0.53365279e4, -0.22706863e5, 0.60434469e5, -0.10292058e6, 0.11223357e6, -0.75925226e5, 0.29059715e5, 0.}; - + double d[13] = {0.23135193e-1, -0.85604572e0, 0.56068193e1, -0.69462922e2, 0.41631118e3, -0.12546621e4, 0.12387830e4, 0.33739172e4, - -0.13041151e5, 0.19512524e5, 0., 0., 0.}; - + -0.13041151e5, 0.19512524e5, 0., 0., 0.}; + c[12] = 0.; for(int i=0; i<12; i++) c[12] -= c[i]; // normalize c[] properly - + int n = 12, n1 = 11, n2 = 10; - + double sum1 = 0.; double sum2 = 0.; double sum3 = 0.; @@ -157,7 +157,7 @@ Double_t PFermiMomentum::Eval(Double_t x, Double_t, Double_t, Double_t) const { rtemp = d[i*2]*m2[i*2] + d[i*2+1]*m2[i*2+1]; sum3 = sum3 + rtemp; } - + for(int i=0; i<3; i++) { // normalize d[] properly d[n2] = -m2[n1]*m2[n]*sum1 + (m2[n1]+m2[n])*sum2 - sum3; d[n2] = d[n2] * m2[n2]/(m2[n]-m2[n2])/(m2[n1]-m2[n2]); @@ -166,7 +166,7 @@ Double_t PFermiMomentum::Eval(Double_t x, Double_t, Double_t, Double_t) const { n1 = n; n = cycle; } - + double U = 0.; double W = 0.; for(int i=0; i<13; i++) { @@ -175,7 +175,7 @@ Double_t PFermiMomentum::Eval(Double_t x, Double_t, Double_t, Double_t) const { } U = sqrtpi2 * U; // s wave W = sqrtpi2 * W; // d wave - + return draw_scaling*r*r*(U*U + W*W); // total probability to have momentum p }; @@ -214,7 +214,7 @@ int PFermiMomentum::GetDepth(int) { } void PFermiMomentum::SubPrint(Int_t) const { - //Print sub-models + //Print sub-models if (composite_model) {cout << " {";cout << composite_model->GetIdentifier()<<"}";} } @@ -228,22 +228,22 @@ Bool_t PFermiMomentum::Prepare(void) { makeDynamicData()->GetDecayModelByKey( makeStaticData()->GetDecayKey(didx_composite), tcross_key); } - } + } return kTRUE; } Bool_t PFermiMomentum::SampleMass(void) { - + Int_t beam_breakup = 0; //This is the d+N reaction: if ((beam->ID() == makeStaticData()->GetParticleID("d")) && ( target->ID() != makeStaticData()->GetParticleID("d"))) { beam_breakup = 1; - } + } else if ((beam->ID() == makeStaticData()->GetParticleID("d")) && ( - target->ID() == makeStaticData()->GetParticleID("d"))) { + target->ID() == makeStaticData()->GetParticleID("d"))) { //d+d_coherent reaction Double_t is_breakup = 0; if (beam->GetValue(IS_BREAKUP, &is_breakup)) //value used @@ -271,7 +271,7 @@ Bool_t PFermiMomentum::SampleMass(void) { exp_w_mean = (Double_t)num_of_realevents/(Double_t)num_of_sampledevents; makeloop = kFALSE; if (!composite_model || ((composite_model->GetVersionFlag()) & VERSION_WEIGHTING)) { - //no consecutive decay model or + //no consecutive decay model or //Taken into account in next step Double_t massS, eS, eP, ptot, px, py, pz, t=-1., mdeut; while (t < 0.) { @@ -281,10 +281,10 @@ Bool_t PFermiMomentum::SampleMass(void) { mdeut = makeStaticData()->GetParticleMass("d"); t = pow(mdeut-massS,2) - 2.*mdeut*(eS-massS); // off-shell mass**2 of participant } - + eP = sqrt(ptot*ptot + t); // participant total energy - - participant.SetPxPyPzE(-px, -py, -pz, eP); // initialize participant nucleon + + participant.SetPxPyPzE(-px, -py, -pz, eP); // initialize participant nucleon spectator->SetPxPyPzE(px, py, pz, eS); // initialize spectator nucleon } else { //here we have to fold in consecutive decay model @@ -304,37 +304,37 @@ Bool_t PFermiMomentum::SampleMass(void) { mesh->ReCalcYMax(); mesh->SetThreshold(1.5, 0.01); mesh->SetMCPoints(1000); - mesh->Divide(5, 2); + mesh->Divide(5, 2); } debug_print = 1; mesh->GetRandom(); - + // double p = mesh->GetArrayValue(0); // double theta = acos(mesh->GetArrayValue(1)); - + // cout << mesh->GetArrayValue(0) << ":" << mesh->GetArrayValue(1) << endl; - + // double phi = 2.*TMath::Pi()*PUtils::sampleFlat(); // double sth=sin(theta); // px = p*cos(phi)*sth; // py = p*sin(phi)*sth; // pz = p*cos(theta); // cout << px << ":" << py << ":" <M(); // mass of spectator nucleon eS = sqrt(ptot*ptot + massS*massS); // spectator total energy in deuteron c.m. mdeut = makeStaticData()->GetParticleMass("d"); t = pow(mdeut-massS,2) - 2.*mdeut*(eS-massS); // off-shell mass**2 of participant - eP = sqrt(ptot*ptot + t); // participant total energy + eP = sqrt(ptot*ptot + t); // participant total energy participant.SetPxPyPzE(px, py, pz, eP); // initialize participant nucleon spectator->SetPxPyPzE(-px, -py, -pz, eS); // initialize spectator nucleon } - + //Up to now we are in the (breakup-)deuteron frame. //Let us go into the lab frame first if (beam_breakup) { @@ -348,7 +348,7 @@ Bool_t PFermiMomentum::SampleMass(void) { *p2 = *target; *p1 = participant; } - + } else { //target is (breakup-)deuteron //for consistency (target might move) we boost also here @@ -361,7 +361,7 @@ Bool_t PFermiMomentum::SampleMass(void) { *p2 = *beam; *p1 = participant; } - } + } //go into parent frame p1->Boost(-parent->BoostVector()); p2->Boost(-parent->BoostVector()); @@ -371,7 +371,7 @@ Bool_t PFermiMomentum::SampleMass(void) { //now check if we fall into the kinematic limits if (composite_model && ((composite_model->GetVersionFlag()) & VERSION_WEIGHTING)) { - if (composite_model->GetWeight(composite->M()) <= 0.) { + if (composite_model->GetWeight(composite->M()) <= 0.) { makeloop = kTRUE; } } diff --git a/src/PFermiMomentumDD.cc b/src/PFermiMomentumDD.cc index 7d91d06..0b90374 100644 --- a/src/PFermiMomentumDD.cc +++ b/src/PFermiMomentumDD.cc @@ -8,7 +8,7 @@ #include "PFermiMomentumDD.h" -PFermiMomentumDD::PFermiMomentumDD(const Char_t *id, const Char_t *de, Int_t key) : +PFermiMomentumDD::PFermiMomentumDD(const Char_t *id, const Char_t *de, Int_t key) : PFermiMomentum(id, de, key) { }; @@ -43,7 +43,7 @@ Bool_t PFermiMomentumDD::Init(void) { Bool_t PFermiMomentumDD::SampleMass(void) { - + PParticle participant1, participant2; Int_t pair1_is_beam = 0; @@ -66,14 +66,14 @@ Bool_t PFermiMomentumDD::SampleMass(void) { else if (!target->GetValue(P_SCATTER, &dummy)) { //randomize if value not used pair1_is_beam = (PUtils::sampleFlat() < 0.5 ? 0 : 1); - } + } participant1.SetID(13); participant2.SetID(14); } else if ((spectator1->ID() == 13) && (spectator2->ID() == 14)){ //spectator2 is proton. //We have to check if "target" contains the scattered proton: Double_t dummy = 0; - pair1_is_beam = 1; + pair1_is_beam = 1; if (target->GetValue(P_SCATTER, &dummy)) //value used pair1_is_beam = 0; //p from target else if (!beam->GetValue(P_SCATTER, &dummy)) { @@ -86,7 +86,7 @@ Bool_t PFermiMomentumDD::SampleMass(void) { } else { Warning("SampleMass", "Unknown reaction"); } - + Double_t massS, eS, eP, ptot, px, py, pz, t=-1., mdeut; //sample participant1 @@ -123,7 +123,7 @@ Bool_t PFermiMomentumDD::SampleMass(void) { eP = sqrt(ptot*ptot + t); // participant total energy participant2.SetPxPyPzE(-px,-py,-pz,eP); // initialize participant nucleon - spectator2->SetPxPyPzE(px,py,pz,eS); // initialize spectator nucleon + spectator2->SetPxPyPzE(px,py,pz,eS); // initialize spectator nucleon //Up to now we are in the (breakup-)deuteron frame. //Let us go into the lab frame first diff --git a/src/PFileInput.cc b/src/PFileInput.cc index 7b95c07..30e9d65 100644 --- a/src/PFileInput.cc +++ b/src/PFileInput.cc @@ -20,21 +20,21 @@ ClassImp(PFileInput) PFileInput::PFileInput(Char_t *mode, Char_t *filename) : PParticle("File") { -// -// presently mode can be "HGeant" // - if (strcmp(mode,"HGeant")==0) - imode = 1; // HGeant event input format - else if (strcmp(mode,"UrQMD")==0) +// presently mode can be "HGeant" +// + if (strcmp(mode,"HGeant")==0) + imode = 1; // HGeant event input format + else if (strcmp(mode,"UrQMD")==0) imode = 2; // UrQMD format (not impl.) - else if (strcmp(mode,"HSM")==0) + else if (strcmp(mode,"HSM")==0) imode = 3; // HSM format (not impl.) - else + else imode = 0; name = mode; part = NULL; fp = fopen(filename,"r"); // open event file - + if (imode==0 || fp==NULL) Error("PFileInput", "Error in PFileInput constructor"); SetPxPyPzE(0., 0., 0., 1.); @@ -69,7 +69,7 @@ Int_t PFileInput::readEventHeader(Float_t &b) { // read event header return -1; } -Int_t PFileInput::readParticle(Double_t &px, Double_t &py, Double_t &pz, Double_t &E, +Int_t PFileInput::readParticle(Double_t &px, Double_t &py, Double_t &pz, Double_t &E, Double_t &vx, Double_t &vy, Double_t& vz, Double_t &vt, Int_t &Id, Int_t &srcId, Int_t &parId, Int_t &parInd, Double_t &weight) { Int_t ret = -1; @@ -77,27 +77,27 @@ Int_t PFileInput::readParticle(Double_t &px, Double_t &py, Double_t &pz, Double_ case 1: vx = vy = vz = vt = 0.; // flag decides how much info is read per particle - if (flag == 0) + if (flag == 0) ret = fscanf(fp,"%le %le %le %le %i", &E, &px, &py, &pz, &Id); - else if (flag == 1) + else if (flag == 1) ret = fscanf(fp,"%le %le %le %le %i %le", &E, &px, &py, &pz, &Id, &weight); // + weight - else if (flag == 2) + else if (flag == 2) ret = fscanf(fp,"%le %le %le %le %i %i %i %le", &E, &px, &py, &pz, &Id, &srcId, &parId, &weight); // + ids - else if (flag == -2) + else if (flag == -2) ret = fscanf(fp,"%le %le %le %le %i %i %i %i %le", &E, &px, &py, &pz, &Id, &srcId, &parId, &parInd, &weight); // + ids - else if (flag == 3) + else if (flag == 3) ret = fscanf(fp,"%le %le %le %le %le %le %le %i %i %i %le", &E, &px, &py, &pz, &vx, &vy, &vz, &Id, &srcId, &parId, &weight); // + vertex - else if (flag == -3) + else if (flag == -3) ret = fscanf(fp,"%le %le %le %le %le %le %le %i %i %i %i %le", &E, &px, &py, &pz, &vx, &vy, &vz, &Id, &srcId, &parId, &parInd, &weight); // + vertex - else if (flag == 4) + else if (flag == 4) ret = fscanf(fp,"%le %le %le %le %le %le %le %le %i %i %i %le", &E, &px, &py, &pz, &vx, &vy, &vz, &vt, &Id, &srcId, &parId, &weight); // + time - else if (flag == -4) + else if (flag == -4) ret = fscanf(fp,"%le %le %le %le %le %le %le %le %i %i %i %i %le", &E, &px, &py, &pz, &vx, &vy, &vz, &vt, &Id, &srcId, &parId, &parInd, &weight); // + time break; @@ -107,9 +107,9 @@ Int_t PFileInput::readParticle(Double_t &px, Double_t &py, Double_t &pz, Double_ break; default: ; } - if (E < 0.0) + if (E < 0.0) E = -E; - if (ret == EOF) + if (ret == EOF) ret = -1; return ret; } @@ -125,11 +125,11 @@ PChannel *PFileInput::makeChannel(Int_t nMax, Float_t Ebeam) { // set up a reaction channel for this interface // if (Ebeam > 0.) setToMidrapidity(Ebeam); - + part = new PParticle*[nMax+1]; part[0] = this; for (Int_t i=1; i<=nMax; i++) { - part[i] = new PParticle((char*)makeStaticData()->GetParticleName(7)); + part[i] = new PParticle((char*)makeStaticData()->GetParticleName(7)); } PChannel *chan = new PChannel(part, nMax, 1); return chan; diff --git a/src/PFileOutput.cc b/src/PFileOutput.cc index cf24a8e..ea112c9 100644 --- a/src/PFileOutput.cc +++ b/src/PFileOutput.cc @@ -13,7 +13,7 @@ PFileOutput::PFileOutput() { - cnt = -1; + cnt = -1; getVERTEX = 0; filename = ""; } @@ -45,4 +45,4 @@ bool PFileOutput::WriteParticle(PParticle *) { } -ClassImp(PFileOutput) +ClassImp(PFileOutput) diff --git a/src/PFilter.cc b/src/PFilter.cc index 1a177b1..335464b 100644 --- a/src/PFilter.cc +++ b/src/PFilter.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////// -// PFilter Class +// PFilter Class // // Removed -> Features are covered now by the PProjector // diff --git a/src/PFixedDecay.cc b/src/PFixedDecay.cc index d19b547..9693e7d 100644 --- a/src/PFixedDecay.cc +++ b/src/PFixedDecay.cc @@ -21,10 +21,10 @@ PFixedDecay::PFixedDecay(const Char_t *id, const Char_t *de, Int_t key) : if (is_channel<0) Warning("PFixedDecay", "The model (%s) should be bound to CHANNELS only", de); - + //Get particles Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(primary_key, tid); // retrieve current mode info //Parent ALWAYS important (also for the inherited classes) @@ -52,13 +52,13 @@ PDistribution *PFixedDecay::Clone(const char*) const { Bool_t PFixedDecay::Init(void) { //Init function called once for each PChannel - + parent = GetParticle("parent"); if (!parent) { Warning("Init", "Parent not found"); return kFALSE; } - + for (int i=0; iGetParticleName(d_id[i])); if (!daughter[i]) { @@ -66,12 +66,12 @@ Bool_t PFixedDecay::Init(void) { return kFALSE; } } - + return kTRUE; } int PFixedDecay::GetDepth(int) { - + double mymin = 0.; for (int i=1; i<=n_daughters; i++) { mymin+=dmass[i-1]; @@ -108,11 +108,11 @@ Bool_t PFixedDecay::GetWidth(Double_t mass, Double_t *width, Int_t) { //and the p.s. for the decay unstable -> stable stable //decays > 2 body are not supported yet - if ((n_daughters>2) || (makeStaticData()->GetParticleTotalWidth(parent_id) < + if ((n_daughters>2) || (makeStaticData()->GetParticleTotalWidth(parent_id) < (*unstable_width )) ) { *width = makeStaticData()->GetDecayPartialWidth(is_channel); return kTRUE; - } + } double pCms = PKinematics::pcms(mass, dmass[0], dmass[1]); double pole_pCms = PKinematics::pcms(parent_mass, dmass[0], dmass[1]); diff --git a/src/PFixedProduction.cc b/src/PFixedProduction.cc index 81a16a3..62200a6 100644 --- a/src/PFixedProduction.cc +++ b/src/PFixedProduction.cc @@ -22,10 +22,10 @@ PFixedProduction::PFixedProduction(const Char_t *id, const Char_t *de, Int_t key if (is_channel < 0) Warning("PFixedProduction", "The model (%s) should be bound to CHANNELS only",de); - + //Get particles Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(primary_key, tid); // retrieve current mode info //Parent ALWAYS important (also for the inherited classes) @@ -51,13 +51,13 @@ PDistribution *PFixedProduction::Clone(const char*) const { Bool_t PFixedProduction::Init(void) { //Init function called once for each PChannel - + parent = GetParticle("parent"); if (!parent) { Warning("Init", "Parent not found"); return kFALSE; } - + daughter=GetParticle(makeStaticData()->GetParticleName(d_id)); if (!daughter) { Warning("Init", "daughter not found"); @@ -67,13 +67,13 @@ Bool_t PFixedProduction::Init(void) { } int PFixedProduction::GetDepth(int) { - return 0; + return 0; } Bool_t PFixedProduction::SampleMass(void) { //Mass-sampling wrapper //mass=parent mass - + //check if we are in the allowed mass region if ((parent->M() < PData::LMass(d_id)) || (parent->M() > PData::UMass(d_id))) return kFALSE; @@ -86,9 +86,9 @@ Bool_t PFixedProduction::SampleMass(void) { Bool_t PFixedProduction::SampleMass(Double_t *mass, Int_t *) { //Not much to do here... //mass=parent mass - + mass[0]=parent_mass; - + return kTRUE; }; diff --git a/src/PFormula.cc b/src/PFormula.cc index 9203944..98fe6bf 100644 --- a/src/PFormula.cc +++ b/src/PFormula.cc @@ -1,8 +1,8 @@ //////////////////////////////////////////////////////// -// +// // Adapted TFormula -// -// Changes (and the reason why) are marked with +// +// Changes (and the reason why) are marked with // .... // //////////////////////////////////////////////////////// @@ -44,7 +44,7 @@ PFormula::PFormula() : ROOT::v5::TFormula() { //PFormula::PFormula(const char *name,const char *expression) : TFormula(name,expression) { PFormula::PFormula(const char *name, const char *expression) : ROOT::v5::TFormula() { - + fNdim = 0; fNpar = 0; fNoper = 0; @@ -77,7 +77,7 @@ PFormula::PFormula(const char *name, const char *expression) : ROOT::v5::TFormul nch = strlen(expression); char *expr = new char[nch+1]; j = 0; - for (i=0;i 0 && (expression[i] == '*') && (expression[i-1] == '*')) { expr[j-1] = '^'; @@ -156,7 +156,7 @@ PFormula::PFormula(const char *name, const char *expression) : ROOT::v5::TFormul } // - + if (Compile()) return; if (gausNorm) SetBit(kNormalized); diff --git a/src/PFunction.cc b/src/PFunction.cc index 8f50e57..68b27bd 100644 --- a/src/PFunction.cc +++ b/src/PFunction.cc @@ -39,22 +39,22 @@ PDistribution *PFunction::Clone(const char *) const { }; Bool_t PFunction::Init(void) { - return kTRUE; + return kTRUE; }; Bool_t PFunction::AddEquation(const char *command) { if (!batch) batch = new PBatch(); - - vx = makeStaticData()->GetBatchValue("_x"); - vf = makeStaticData()->GetBatchValue("_f"); + + vx = makeStaticData()->GetBatchValue("_x"); + vf = makeStaticData()->GetBatchValue("_f"); return batch->AddCommand(command); }; Double_t PFunction::GetWeight(Double_t *mass, Int_t *) { - if (batch) { + if (batch) { *vx = mass[0]; batch->Execute(); return *vf; @@ -64,7 +64,7 @@ Double_t PFunction::GetWeight(Double_t *mass, Int_t *) { if (tf2) return tf2->Eval(mass[0],mass[1]); if (tf2) return tf3->Eval(mass[0],mass[1],mass[2]); - return constant; + return constant; }; diff --git a/src/PGenBod.cc b/src/PGenBod.cc index 71b65f2..e23ae75 100644 --- a/src/PGenBod.cc +++ b/src/PGenBod.cc @@ -5,7 +5,7 @@ // // The particles named with "corr1" and "corr2" can be // folded with the mass distribution named "/correlation" -// +// // // Author: Kagarlis // Reimplemented: IF @@ -27,7 +27,7 @@ PGenBod::PGenBod() { Fatal("PGenBod()", "Wrong constructor"); }; -PGenBod::PGenBod(const Char_t *id, const Char_t *de, Int_t key) : +PGenBod::PGenBod(const Char_t *id, const Char_t *de, Int_t key) : PChannelModel (id, de, key) { parent = NULL; @@ -54,10 +54,10 @@ Bool_t PGenBod::Init(void) { daughter[0] = GetParticle("corr1"); daughter[1] = GetParticle("corr2"); - + bool myloop=1; for (n_daughters=0; n_daughtersM(); } @@ -101,7 +101,7 @@ Bool_t PGenBod::SampleMomentum(void) { etm = ecm-tm; emm[nm1] = ecm; emmax = etm+em[0]; - + for (i=1; iSampleMass(&corr); - rno[0] = (corr-sm[1])/etm; + rno[0] = (corr-sm[1])/etm; } repeat2: if (correlator) { - for (i=1; i 3) PUtils::dsort(rno+2, nm2-2); - for (i=1; i0 || !correlator) + + if (i>0 || !correlator) w0 *= pd[i]; - else if (pd[i] == 0) + else if (pd[i] == 0) w0 = 0; } @@ -163,17 +163,17 @@ Bool_t PGenBod::SampleMomentum(void) { } return kFALSE; } - + local_weight = 1.; if (GetVersionFlag(VERSION_SAMPLING) && !GetVersionFlag(VERSION_NO_PHASE_SPACE)) { if (w0 > weight_max) { Warning("SampleMomentum", "Weight (%lf) > max (%lf)", w0, weight_max); weight_max = w0*1.1; - goto repeat2; + goto repeat2; } if (w0/weight_max < PUtils::sampleFlat()) { - if (w_counter < 10000) { + if (w_counter < 10000) { w_counter++; goto repeat2; // take weight into account (R.H.) } else { // happens very rare (fixed bug Nr. 359) @@ -182,7 +182,7 @@ Bool_t PGenBod::SampleMomentum(void) { } } else if (GetVersionFlag(VERSION_WEIGHTING)) { local_weight = w0; - } + } pv[0] = 0.; pv[1] = pd[0]; @@ -199,7 +199,7 @@ Bool_t PGenBod::SampleMomentum(void) { sb = sin(bang); // sin(phi) ++ir; r = rno[ir]; - c = 2.*r-1.; // here comes the scattering angle sampling + c = 2.*r-1.; // here comes the scattering angle sampling s = sqrt(1.-c*c); // sin(theta) if (i != nm1) { @@ -215,15 +215,15 @@ Bool_t PGenBod::SampleMomentum(void) { pv[jj2] * pv[jj2] ); pv[jj3]=sqrt(aa + ems[j]); PKinematics::rotes(c, s, cb, sb, pv+jj); - if (i != nm1) + if (i != nm1) pv[jj1] = gamma*( pv[jj1] + beta * pv[jj3] ); } } - + for (i=0; iSetPxPyPzE(-pv[i4], pv[i4+2], pv[i4+1], pv[i4+3]); - + // ______________________________________________________________ } diff --git a/src/PHadronDecay.cc b/src/PHadronDecay.cc index c7cbc80..ae46275 100644 --- a/src/PHadronDecay.cc +++ b/src/PHadronDecay.cc @@ -25,10 +25,10 @@ PHadronDecay::PHadronDecay(const Char_t *id, const Char_t *de, Int_t key) : if (is_channel < 0) Warning("PHadronDecay", "The model (%s) should be bound to CHANNELS only", de); - + //Get particles Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(key, tid); // retrieve current mode info //Parent ALWAYS important (also for the inherited classes) @@ -36,7 +36,7 @@ PHadronDecay::PHadronDecay(const Char_t *id, const Char_t *de, Int_t key) : parent_g0 = makeStaticData()->GetParticleTotalWidth(parent_id); parent_mass = makeStaticData()->GetParticleMass(parent_id); - if (tid[0] != 2) + if (tid[0] != 2) Warning("PHadronDecay", "(%s): Only 2 body decay", de); mass1 = makeStaticData()->GetParticleMass(tid[1]); @@ -50,21 +50,21 @@ PHadronDecay::PHadronDecay(const Char_t *id, const Char_t *de, Int_t key) : PData::IsDelta(parent_id)) { use_fixed_delta = 1; fixed_delta = 0.09; - } else + } else use_fixed_delta = 0; - angular_l = (makeStaticData()->IsParticleMeson(parent_id)) ? - makeStaticData()->GetParticleSpin(parent_id)/2 : + angular_l = (makeStaticData()->IsParticleMeson(parent_id)) ? + makeStaticData()->GetParticleSpin(parent_id)/2 : PData::LPW(parent_id, id1, id2); - if (!makeStaticData()->IsParticleMeson(parent_id)) + if (!makeStaticData()->IsParticleMeson(parent_id)) cutoff_l = 1; - else + else cutoff_l = 0; //cutoff=pow(cutoff,l+1); in HadronWidth - if (makeStaticData()->IsParticleMeson(parent_id)) + if (makeStaticData()->IsParticleMeson(parent_id)) use_m0_over_m = 1; - else + else use_m0_over_m = 0; if ((makeStaticData()->GetParticleID("D++") == parent_id) || @@ -72,7 +72,7 @@ PHadronDecay::PHadronDecay(const Char_t *id, const Char_t *de, Int_t key) : (makeStaticData()->GetParticleID("D0") == parent_id) || (makeStaticData()->GetParticleID("D-") == parent_id)) use_m0_over_m = 1; - + cutoff_version = 0; version_flag |= VERSION_MASS_SAMPLING; //Only one mass sampling in the PChannel @@ -92,11 +92,11 @@ Bool_t PHadronDecay::Init(void) { Double_t PHadronDecay::EvalPar(const Double_t *x, const Double_t *) { return Eval(x[0]); }; - + Double_t PHadronDecay::Eval(Double_t x, Double_t, Double_t, Double_t) const { Double_t res; Double_t mass[3]; - mass[0] = x; + mass[0] = x; mass[1] = mass1; mass[2] = mass2; @@ -114,7 +114,7 @@ Double_t PHadronDecay::Eval(Double_t x, Double_t, Double_t, Double_t) const { }; int PHadronDecay::GetDepth(int) { - + makeStaticData()->SetDecayEmin(is_channel, mass1+mass2); return 0; //2 stable products -> depth is 0 }; @@ -139,14 +139,14 @@ Bool_t PHadronDecay::SampleMass(Double_t *mass, Int_t *) { // //the totalwidth may be set by the user, otherwise we use the static one // //We take the 2body-ps into account - + // if (!GetWidth(mass,&width)) return kFALSE; // *br = width/totalwidth; // double sc_pole= -// return kTRUE; - +// return kTRUE; + // } @@ -169,12 +169,12 @@ Bool_t PHadronDecay::GetWidth(Double_t mass, Double_t *width, Int_t) { // double PHadronDecay::HW(const double & ecm, const int & id, const int & ia=0, const int & ib=0) { // // for stable products -// const double mproton=makeStaticData()->GetParticleMass("p"), +// const double mproton=makeStaticData()->GetParticleMass("p"), // m2pi0=2.*makeStaticData()->GetParticleMass("pi0"); // double m0=makeStaticData()->GetParticleMass(id), ma, mb, ms; - + // if (!(ia+ib)) { // flag identifying N + 2-pion s-wave production -// ma=mproton; // in this case treat as two-body decay: +// ma=mproton; // in this case treat as two-body decay: // mb=m2pi0; // 1st product is N, 2nd quasi-product is di-pion // } else { // two-hadron decay // ma=makeStaticData()->GetParticleMass(ia); // 1st hadron mass @@ -194,9 +194,9 @@ double PHadronDecay::HadronWidth(const double &m, const double &ma, const double // Uses data members: // * parent_mass // * parent_g0 - - double m0 = parent_mass, - ms = ma+mb, + + double m0 = parent_mass, + ms = ma+mb, md = m0-ms; // if (m<=ms||md<=0.) return 0.; // kinematically inaccessible if (m <= ms) return 0.; @@ -204,10 +204,10 @@ double PHadronDecay::HadronWidth(const double &m, const double &ma, const double double qr2 = PKinematics::pcms2(m0, ma, mb), q2 = PKinematics::pcms2(m, ma, mb); if (qr2 == 0) //Below threshold production - qr2 = 1; + qr2 = 1; double q = sqrt(q2/qr2); - if (!id1) + if (!id1) return parent_g0*q*m0/m; // ia=ib=0 is two pions coupled to s-wave double delta2 = (use_fixed_delta) ? fixed_delta : md*md+0.25*parent_g0*parent_g0; @@ -215,7 +215,7 @@ double PHadronDecay::HadronWidth(const double &m, const double &ma, const double if (angular_l) { q = pow(q,2*angular_l+1); - if (cutoff_l) + if (cutoff_l) cutoff = pow(cutoff, angular_l+1); } diff --git a/src/PHadronDecayM1.cc b/src/PHadronDecayM1.cc index b8fc95e..131c0d4 100644 --- a/src/PHadronDecayM1.cc +++ b/src/PHadronDecayM1.cc @@ -20,14 +20,14 @@ PHadronDecayM1::PHadronDecayM1(const Char_t *id, const Char_t *de, Int_t key) : PHadronDecay(id, de, key) { if (is_channel < 0) Warning("PHadronDecayM1", "The model (%s) should be bound to CHANNELS only", de); - + //Get particles Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(key, tid); // retrieve current mode info parent_id = makeStaticData()->GetDecayParentByKey(key); - if (tid[0] != 2) + if (tid[0] != 2) Warning("PHadronDecayM1", "(%s): Only 2 body decay", de); //First determine unstable position @@ -41,13 +41,13 @@ PHadronDecayM1::PHadronDecayM1(const Char_t *id, const Char_t *de, Int_t key) : unstable_position = 1; stable_position = 2; } - - unstable_mass = makeStaticData()->GetParticleMass(tid[unstable_position]); + + unstable_mass = makeStaticData()->GetParticleMass(tid[unstable_position]); // unstable particle mass pole - unstable_ml = PData::LMass(tid[unstable_position]); + unstable_ml = PData::LMass(tid[unstable_position]); // unstable particle mass threshold - stable_mass = makeStaticData()->GetParticleMass(tid[stable_position]); + stable_mass = makeStaticData()->GetParticleMass(tid[stable_position]); unstable_id = tid[unstable_position]; stable_id = tid[stable_position]; scale = 1.1; // good starting value, by trial & error @@ -94,7 +94,7 @@ Double_t PHadronDecayM1::EvalPar(const Double_t *x, const Double_t *params) { } return Eval(x[0]); } - + Double_t PHadronDecayM1::Eval(Double_t x, Double_t, Double_t, Double_t) const { Double_t res; Double_t mass[3]; @@ -107,7 +107,7 @@ Double_t PHadronDecayM1::Eval(Double_t x, Double_t, Double_t, Double_t) const { mass[unstable_position] = x; mass[stable_position] = stable_mass; didx[unstable_position] = didx_option; - + if (draw_option == 0) { if (!pmodel) return ((PChannelModel*)this)->GetWeight(mass, didx); @@ -140,16 +140,16 @@ int PHadronDecayM1::GetDepth(int i) { if (model2) a2 = model2->GetDepth(i); //after the GetDepth, the threshs are initialized - makeStaticData()->SetDecayEmin(is_channel, + makeStaticData()->SetDecayEmin(is_channel, TMath::Min(makeStaticData()->GetParticleEmin(id1), makeStaticData()->GetParticleEmin(id2))); - - return TMath::Max(a1+1, a2+1); + + return TMath::Max(a1+1, a2+1); } Bool_t PHadronDecayM1::Prepare(void) { //Things which might change during the eventloop - + didx1 = daughter1->GetDecayModeIndex(1); didx2 = daughter2->GetDecayModeIndex(1); @@ -163,7 +163,7 @@ Bool_t PHadronDecayM1::Prepare(void) { } void PHadronDecayM1::SubPrint(Int_t) const { - //Print sub-models + //Print sub-models if (model1) {cout << " "; cout << model1->GetDescription();} if (model2) {cout << " "; cout << model2->GetDescription();} } @@ -179,7 +179,7 @@ Double_t PHadronDecayM1::GetWeight(void) { Double_t PHadronDecayM1::GetWeight(Double_t *mass, Int_t *didx) { //Get the weight of the decay mass[0]->mass[1]+mass[2] //Input: mass[0] (parent) - //mass[1] and mass[2] + //mass[1] and mass[2] //Order of particles must be the same as defined in data base //If set, use parameters @@ -191,8 +191,8 @@ Double_t PHadronDecayM1::GetWeight(Double_t *mass, Int_t *didx) { } if (unstable_position == 1) - return BWWeight(unstable_id, mass[0], mass[1], mass[2], didx_local1, 0, didx_local2); - return BWWeight(unstable_id, mass[0], mass[2], mass[1], didx_local2, 0, didx_local1); + return BWWeight(unstable_id, mass[0], mass[1], mass[2], didx_local1, 0, didx_local2); + return BWWeight(unstable_id, mass[0], mass[2], mass[1], didx_local2, 0, didx_local1); } Bool_t PHadronDecayM1::SampleMass(void) { @@ -211,16 +211,16 @@ Bool_t PHadronDecayM1::SampleMass(void) { Bool_t PHadronDecayM1::SampleMass(Double_t *mass, Int_t *didx) { //samples the mass of the unstable decay product //Input: mass[0] (parent) - //Output: mass[1] and mass[2] + //Output: mass[1] and mass[2] //Order of particles in the array must be the same as defined in data base - - if (didx) + + if (didx) didx_unstable = didx[unstable_position]; //overwrite what has been set in Prepare() - Double_t ecm = mass[0]; + Double_t ecm = mass[0]; if (sampleM1(ecm)) { mass[unstable_position] = unstable_dynamic_mass; - mass[stable_position] = stable_mass; + mass[stable_position] = stable_mass; } else { Warning("SampleMass", "failed in [%s], ecm=%f", GetIdentifier(), ecm); return kFALSE; @@ -235,7 +235,7 @@ Bool_t PHadronDecayM1::SampleMass(Double_t *mass, Int_t *didx) { Bool_t PHadronDecayM1::GetWidth(Double_t mass, Double_t *width, Int_t) { - if (makeStaticData()->GetPWidx(is_channel) == -1) + if (makeStaticData()->GetPWidx(is_channel) == -1) return 0.; // Disabled --> BUGBUG why not static? if (!makeStaticData()->GetPWidx(is_channel)) { // Enter below only on the first call @@ -246,13 +246,13 @@ Bool_t PHadronDecayM1::GetWidth(Double_t mass, Double_t *width, Int_t) { mmin = makeStaticData()->GetDecayEmin(is_channel); // mass threshold for the decay Double_t w0 = makeStaticData()->GetDecayBR(is_channel); // starting weight - + mmax = PData::UMass(parent_id); // mass ceiling Double_t dm = (mmax-mmin)/(maxmesh-3.); // mass increment double mass_threshold, mass_ceiling; mass_threshold = PData::LMass(unstable_id); mass_ceiling = mmax-PData::LMass(stable_id); - + mesh = new PMesh(maxmesh-2, "mesh"); for (int i=0; iGetParticleTotalWeight(running_unstable_mass ,unstable_id); - if (w > bw_max) + if (w > bw_max) bw_max = w; } //Continue with the integration, when a pole mass has been found - if (bw_max > 0) + if (bw_max > 0) for (int mc=0; mc (running_unstable_mass+stable_mass)) { - //Fold with pcms (phase space factor for BW) + //Fold with pcms (phase space factor for BW) temp1 = PKinematics::pcms(mm, running_unstable_mass, stable_mass); //Fold with mass shape of unstable particle Double_t w = makeDynamicData()->GetParticleTotalWeight(running_unstable_mass, unstable_id); temp1 *= w; - if (w > (0.01*bw_max)) { + if (w > (0.01*bw_max)) { //Cut-off condition with avoids arteficialy destructed behaviour temp0_norm += temp1; - //Get the Gamma_m_m1_m2 + //Get the Gamma_m_m1_m2 temp1 *= HadronWidth(mm,running_unstable_mass, stable_mass); temp0 += temp1; } @@ -300,7 +300,7 @@ Bool_t PHadronDecayM1::GetWidth(Double_t mass, Double_t *width, Int_t) { if (temp0_norm > 0) //Normalization temp0 /= temp0_norm; temp0 *= w0; - mesh->SetNode(i, temp0); + mesh->SetNode(i, temp0); } mesh->SetMin(mmin); // store mass threshold @@ -319,8 +319,8 @@ bool PHadronDecayM1:: sampleM1(const double &ecm) { // Mass sampling algorithm in case of hadronic decay to two products // one of which is unstable and the other stable - // Arguments: parent cm energy, - // + // Arguments: parent cm energy, + // // Data members usage: // unstable-product id, unstable-product // mass "unstable_mass" (to be returned), stable-product mass @@ -343,7 +343,7 @@ bool PHadronDecayM1:: sampleM1(const double &ecm) { peak = BWWeight(unstable_id, scale*ecm, unstable_mass, stable_mass, didx_unstable); // probability distribution maximum - + ma = 0.5*(unstable_mass+unstable_mh); // test mass to the right of the pole a2 = 0.5*peak*(unstable_mh-ma); // area in Region II, ma < mass <= mh b = peak/(unstable_mh - ma); // parameters for Region II @@ -351,9 +351,9 @@ bool PHadronDecayM1:: sampleM1(const double &ecm) { peak = scale*maxBWWeight(unstable_id,ecm,unstable_ml,unstable_mh,max1,stable_mass, didx_unstable); // Get max value of mass curve ma = unstable_mh; // left tail of the distribution function - a2 = 0.; // only Region I, no Region II + a2 = 0.; // only Region I, no Region II } - if (peak == 0.) { + if (peak == 0.) { //if peak not found -> do not sample mass and abort unstable_dynamic_mass = 0.; //Warning("sampleM1","peak not found"); @@ -362,7 +362,7 @@ bool PHadronDecayM1:: sampleM1(const double &ecm) { } a1 = peak*(ma-unstable_ml); // area in Region I: unstable_ml < mass <= ma area = a1 + a2; // test-function total integral - + //__________________________________________________________________ // The rejection method is used for mass sampling: double a, f, y, da; // f(m) is the test function @@ -370,26 +370,26 @@ bool PHadronDecayM1:: sampleM1(const double &ecm) { // distribution function from above over the range of the variable (mass); // see e.g. Ref 6. This is by far the most efficient method in this case. // Using TF2 and GetRandom of ROOT is several orders of magnitude slower! - + do { // enter the rejection-method loop a = area * PUtils::sampleFlat(); // sample a test area 0 < a(m) < total area - - if (a <= a1) { // Region I: + + if (a <= a1) { // Region I: f = peak; // test function f(m) is constant over unstable_ml < m <= ma - unstable_dynamic_mass = a/f + unstable_ml; + unstable_dynamic_mass = a/f + unstable_ml; // invert Integral{ f(m) }_unstable_ml^m = a to solve for m } else { // Region II: da = 2.*(area-a); - f = sqrt(da*b); + f = sqrt(da*b); // f(m) is the line from f(ma)=peak to f(unstable_mh)=0 over - unstable_dynamic_mass = unstable_mh - da/f; + unstable_dynamic_mass = unstable_mh - da/f; // ma < m <= unstable_mh; solve Integral{ f(m) }_ma^m = a-a1 for m } - - y = BWWeight(unstable_id, ecm, unstable_dynamic_mass, stable_mass, didx_unstable); + + y = BWWeight(unstable_id, ecm, unstable_dynamic_mass, stable_mass, didx_unstable); } while (f*PUtils::sampleFlat() > y);// compare with f(m) and accept or reject - + if (f < y) { // Error: the test function fails to bound the distribution fn; scale = scale*y/f + 0.1; // "scale" is too low; adapt (a few events // can be done wrong until scale is ok) @@ -400,8 +400,8 @@ bool PHadronDecayM1:: sampleM1(const double &ecm) { } -double PHadronDecayM1::BWWeight(const int &i1, const double &m, - const double &m1, const double &m2, int didx_local1, +double PHadronDecayM1::BWWeight(const int &i1, const double &m, + const double &m1, const double &m2, int didx_local1, int i2, int didx_local2) { // If i2=0 (default): // Breit-Wigner distribution convoluted with a phase-space @@ -413,9 +413,9 @@ double PHadronDecayM1::BWWeight(const int &i1, const double &m, // phase-space factor for the simultaneous sampling of // masses of two unstable hadrons p1, p2 in a decay of type // "hadron -> p1 + p2" - // If the correponding didx flags are set (>=0), the BW is taken with + // If the correponding didx flags are set (>=0), the BW is taken with // the target decay index - + double pCms = PKinematics::pcms(m, m1, m2); PChannelModel *i1_model = makeDynamicData()->GetParticleModel(i1); @@ -423,10 +423,10 @@ double PHadronDecayM1::BWWeight(const int &i1, const double &m, Warning("BWWeight", "No target model i1"); return 0; } - + double bw = pCms*i1_model->GetWeight((Double_t*)&m1,&didx_local1); - - if (i2) { + + if (i2) { PChannelModel *i2_model = makeDynamicData()->GetParticleModel(i2); @@ -441,7 +441,7 @@ double PHadronDecayM1::BWWeight(const int &i1, const double &m, double PHadronDecayM1::maxBWWeight(const int &i1, const double &m, const double &lower, - const double &upper, double &max1, const double &m2, int didx_local1, + const double &upper, double &max1, const double &m2, int didx_local1, int i2, int didx_local2) { // // Find maximum of Weight() using golden rule from Ref.[6] (2nd ed., p. 401) @@ -449,7 +449,7 @@ double PHadronDecayM1::maxBWWeight(const int &i1, const double &m, const double #define SHFT2(a,b,c) (a)=(b);(b)=(c); #define SHFT3(a,b,c,d) (a)=(b);(b)=(c);(c)=(d); - + const double R = 0.61803399; const double C = 1.-R; const double tol = 1.e-3; @@ -476,10 +476,10 @@ double PHadronDecayM1::maxBWWeight(const int &i1, const double &m, const double f1 = BWWeight(i1, m, x1, m2, didx_local1, i2); f2 = BWWeight(i1, m, x2, m2, didx_local1, i2); - if ((f1 == 0) && (f2 == 0)) + if ((f1 == 0) && (f2 == 0)) x2 += (x3-x2)*0.1; counter++; - } + } if (counter == 10) { //kinematically forbidden region? abort = kTRUE; diff --git a/src/PHadronDecayM1N.cc b/src/PHadronDecayM1N.cc index 6a565a2..50aa800 100644 --- a/src/PHadronDecayM1N.cc +++ b/src/PHadronDecayM1N.cc @@ -26,10 +26,10 @@ PHadronDecayM1N::PHadronDecayM1N(const Char_t *id, const Char_t *de, Int_t key) PChannelModel(id, de, key) { if (is_channel < 0) Warning("PHadronDecayM1N", "The model (%s) should be bound to CHANNELS only",de); - + //Get particles Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(primary_key, tid); // retrieve current mode info //Parent ALWAYS important (also for the inherited classes) @@ -56,9 +56,9 @@ PHadronDecayM1N::PHadronDecayM1N(const Char_t *id, const Char_t *de, Int_t key) } mesh = NULL; event = new TGenPhaseSpace(); - + maxmesh = 300; - //We scan the complete phase space + //We scan the complete phase space old_parent_mass = 0; mesh = new PMesh(maxmesh-2,"mesh"); @@ -69,19 +69,19 @@ PDistribution *PHadronDecayM1N::Clone(const char *) const { }; void PHadronDecayM1N::UpdateMesh(void) { - + Double_t mmin = PData::LMass(unstable_id); Double_t mmax = PData::UMass(unstable_id); Double_t dm = (mmax-mmin)/(maxmesh-3.); // mass increment for (int i=0; iSetDecay(*(TLorentzVector*)parent,daughter_pos, daughter_masses); Double_t phase_space = 1./event->GetWtMax(); Double_t model_weight = unstable_model->GetWeight(mm,&unstable_didx); - - mesh->SetNode(i, phase_space*model_weight); + + mesh->SetNode(i, phase_space*model_weight); } mesh->SetMin(mmin); // store mass threshold mesh->SetMax(mmax); // store mass ceiling @@ -108,7 +108,7 @@ Bool_t PHadronDecayM1N::Init(void) { } daughter_pos = 0; //clear stuff because the Attach function makes a clone - + //Now get all daughters for (int i=0; iGetDecayModeIndex(1); return kTRUE; } - + int PHadronDecayM1N::GetDepth(int i) { //check if we have models //This also initializes the sub-models @@ -144,12 +144,12 @@ int PHadronDecayM1N::GetDepth(int i) { if (unstable_model) a1 = unstable_model->GetDepth(i); //makeStaticData()->SetDecayEmin(is_channel, all_masses); - return a1; + return a1; } void PHadronDecayM1N::SubPrint(Int_t) const { //Print sub-models - + if (unstable_model) { cout << " "; cout << unstable_model->GetDescription(); diff --git a/src/PHadronDecayM2.cc b/src/PHadronDecayM2.cc index c988410..26dbb9e 100644 --- a/src/PHadronDecayM2.cc +++ b/src/PHadronDecayM2.cc @@ -19,7 +19,7 @@ PHadronDecayM2::PHadronDecayM2() { PHadronDecayM2::PHadronDecayM2(const Char_t *id, const Char_t *de, Int_t key) : PHadronDecayM1(id, de, key) { if (is_channel < 0) - Warning("PHadronDecayM2", "The model (%s) should be bound to CHANNELS only", de); + Warning("PHadronDecayM2", "The model (%s) should be bound to CHANNELS only", de); }; PDistribution *PHadronDecayM2::Clone(const char *) const { @@ -30,7 +30,7 @@ Bool_t PHadronDecayM2::Init(void) { return PHadronDecayM1::Init(); }; -int PHadronDecayM2::GetDepth(int i) { +int PHadronDecayM2::GetDepth(int i) { //Initialize daughter decay modes return PHadronDecayM1::GetDepth(i); }; @@ -41,7 +41,7 @@ Bool_t PHadronDecayM2::Prepare(void) { }; void PHadronDecayM2::SubPrint(Int_t) const { - //Print sub-models + //Print sub-models if (model1) { cout << " "; cout << model1->GetDescription(); @@ -56,7 +56,7 @@ Bool_t PHadronDecayM2::SampleMass(void) { //Mass-sampling wrapper Double_t mass[3]; mass[0] = parent->M(); - + if (!SampleMass(mass)) return kFALSE; daughter1->SetM(mass[1]); @@ -68,15 +68,15 @@ Bool_t PHadronDecayM2::SampleMass(void) { Bool_t PHadronDecayM2::SampleMass(Double_t *mass, Int_t *) { //samples the mass of the unstable decay products //Input: mass[0] (parent) - //Output: mass[1] and mass[2] + //Output: mass[1] and mass[2] //Order of particles in the array must be the same as defined in data base //BUGBUG: Why is didx not used here? - - Double_t ecm = mass[0]; + + Double_t ecm = mass[0]; if (sampleM2(ecm)) { mass[1] = dynamic_mass1; - mass[2] = dynamic_mass2; + mass[2] = dynamic_mass2; //Warning("SampleMass","done in [%s], ecm=%f",GetIdentifier(),ecm); } else { Warning("SampleMass", "failed in [%s], ecm=%f", GetIdentifier(), ecm); @@ -92,7 +92,7 @@ Bool_t PHadronDecayM2::SampleMass(Double_t *mass, Int_t *) { Bool_t PHadronDecayM2::GetWidth(Double_t mass, Double_t *width, Int_t) { - if (makeStaticData()->GetPWidx(is_channel) == -1) + if (makeStaticData()->GetPWidx(is_channel) == -1) return 0.; // Disabled --> BUGBUG why not static? if (!makeStaticData()->GetPWidx(is_channel)) { // Enter below only on the first call @@ -103,17 +103,17 @@ Bool_t PHadronDecayM2::GetWidth(Double_t mass, Double_t *width, Int_t) { mmin = makeStaticData()->GetDecayEmin(is_channel); // mass threshold for the decay Double_t w0 = makeStaticData()->GetDecayBR(is_channel); // starting weight - + mmax = PData::UMass(parent_id); // mass ceiling Double_t dm = (mmax-mmin)/(maxmesh-3.); // mass increment double mass_threshold1, mass_ceiling1; double mass_threshold2, mass_ceiling2; - + mass_threshold1 = PData::LMass(id1); mass_ceiling1 = mmax-PData::LMass(id2); mass_threshold2 = PData::LMass(id2); mass_ceiling2 = mmax-PData::LMass(id1); - + mesh = new PMesh(maxmesh-2, "mesh"); for (int i=0; iGetParticleTotalWeight(running_unstable_mass1 ,id1); w *= makeDynamicData()->GetParticleTotalWeight(running_unstable_mass2 ,id2); - if (w > bw_max) + if (w > bw_max) bw_max = w; } } //Continue with the integration, when a pole mass has been found - if (bw_max > 0) + if (bw_max > 0) for (int mc1=0; mc1 (running_unstable_mass1+running_unstable_mass2)) { - //Fold with pcms (phase space factor for BW) + //Fold with pcms (phase space factor for BW) temp1 = PKinematics::pcms(mm, running_unstable_mass1, running_unstable_mass2); //Fold with mass shape all unstable particles Double_t w = makeDynamicData()->GetParticleTotalWeight(running_unstable_mass1, id1); - w *= makeDynamicData()->GetParticleTotalWeight(running_unstable_mass2, id2); + w *= makeDynamicData()->GetParticleTotalWeight(running_unstable_mass2, id2); temp1 *= w; - if (w > (0.01*bw_max)) { + if (w > (0.01*bw_max)) { //Cut-off condition with avoids arteficialy destructed behaviour temp0_norm += temp1; - //Get the Gamma_m_m1_m2 + //Get the Gamma_m_m1_m2 temp1 *= HadronWidth(mm, running_unstable_mass1, running_unstable_mass2); temp0 += temp1; } @@ -172,7 +172,7 @@ Bool_t PHadronDecayM2::GetWidth(Double_t mass, Double_t *width, Int_t) { if (temp0_norm > 0) //Normalization temp0 /= temp0_norm; temp0 *= w0; - mesh->SetNode(i, temp0); + mesh->SetNode(i, temp0); } mesh->SetMin(mmin); // store mass threshold @@ -190,7 +190,7 @@ Bool_t PHadronDecayM2::GetWidth(Double_t mass, Double_t *width, Int_t) { Double_t PHadronDecayM2::GetWeight(Double_t *mass, Int_t *didx) { //Get the weight of the decay mass[0]->mass[1]+mass[2] //Input: mass[0] (parent) - //mass[1] and mass[2] + //mass[1] and mass[2] //Order of particles must be the same as defined in data base //If set, use parameters @@ -201,15 +201,15 @@ Double_t PHadronDecayM2::GetWeight(Double_t *mass, Int_t *didx) { didx_local2 = didx[2]; } - return BWWeight(id1, mass[0], mass[1], mass[2], didx_local1, id2, didx_local2); + return BWWeight(id1, mass[0], mass[1], mass[2], didx_local1, id2, didx_local2); } bool PHadronDecayM2::sampleM2(const double &ecm) { - + // Mass sampling algorithm in case of hadronic decay to two unstable hadrons - dynamic_mass1=0.; + dynamic_mass1=0.; dynamic_mass2=0.; // reset masses double m0[2] = {makeStaticData()->GetParticleMass(id1), makeStaticData()->GetParticleMass(id2)}; // mass poles @@ -217,18 +217,18 @@ bool PHadronDecayM2::sampleM2(const double &ecm) { double mh[2] = {ecm-ml[1], ecm-ml[0]}; // maximum available masses double f, y, m1, m2, mx[2] = {TMath::Min(m0[0],mh[0]),TMath::Min(m0[1],mh[1])}; double maxW1, maxW2; - - //for(int iter=0;iter<5;iter++) { // find 2-dim maximum of Weight() function + + //for(int iter=0;iter<5;iter++) { // find 2-dim maximum of Weight() function maxW1 = maxBWWeight(id1, ecm, ml[0], mh[0], mx[0], mx[1], didx1, id2, didx2); maxW2 = maxBWWeight(id2, ecm, ml[1], mh[1], mx[1], mx[0], didx2, id1, didx1); //} - + int counter = 0; abort = kFALSE; - + repeat: // re-enter if parameter change is forced - + f = scale*TMath::Max(maxW1,maxW2); if (f == 0.) { return kFALSE; @@ -237,14 +237,14 @@ bool PHadronDecayM2::sampleM2(const double &ecm) { // The rejection method is used to sample the masses m1 and m2. // (see e.g. Ref 6). This is by far the most efficient method in this case. // Using TF2 and GetRandom of ROOT is several orders of magnitude slower! - + do { // enter the rejection-method loop m1 = ml[0] + PUtils::sampleFlat()*(mh[0]-ml[0]); m2 = ml[1] + PUtils::sampleFlat()*(mh[1]-ml[1]); y = BWWeight(id1, ecm, m1, m2, didx1, id2, didx2); // y(m1,m2) is the distribution function counter++; } while ((PUtils::sampleFlat()>y/f) && counter<10000); - + if (f < y) { // Error: the test function fails to bound the distribution fn; scale = scale*y/f + 0.1; // printf("%s %f %i\n",Message[14],scale,counter); @@ -252,7 +252,7 @@ bool PHadronDecayM2::sampleM2(const double &ecm) { } dynamic_mass1 = m1; dynamic_mass2 = m2; - + return kTRUE; } diff --git a/src/PHadronDecayM3.cc b/src/PHadronDecayM3.cc index 50a89c8..9564ec4 100644 --- a/src/PHadronDecayM3.cc +++ b/src/PHadronDecayM3.cc @@ -1,7 +1,7 @@ ///////////////////////////////////////////////////////////////////// // // Decay Model of Hadron -> 3 unstable hadrons -// +// // // Author: I. Froehlich ///////////////////////////////////////////////////////////////////// @@ -24,17 +24,17 @@ PHadronDecayM3::PHadronDecayM3(const Char_t *id, const Char_t *de, Int_t key) : PChannelModel(id, de, key) { if (is_channel < 0) Warning("PHadronDecayM3", "The model (%s) should be bound to CHANNELS only", de); - + //Get particles Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(primary_key, tid); // retrieve current mode info //Parent ALWAYS important (also for the inherited classes) parent_id = makeStaticData()->GetDecayParentByKey(primary_key); parent_mass = makeStaticData()->GetParticleMass(parent_id); - if (tid[0] != 3) + if (tid[0] != 3) Warning("PHadronDecayM3", "(%s): Only 3 body decay", de); mass1 = makeStaticData()->GetParticleMass(tid[1]); @@ -72,18 +72,18 @@ Bool_t PHadronDecayM3::Init(void) { Bool_t PHadronDecayM3::Prepare(void) { //Things which might change during the eventloop - + didx1 = daughter1->GetDecayModeIndex(1); didx2 = daughter2->GetDecayModeIndex(1); didx3 = daughter3->GetDecayModeIndex(1); return kTRUE; } - + Double_t PHadronDecayM3::Eval(Double_t x, Double_t, Double_t, Double_t) const { Double_t res; Double_t mass[4]; - mass[0] = x; + mass[0] = x; mass[1] = mass1; mass[2] = mass2; mass[3] = mass3; @@ -115,12 +115,12 @@ int PHadronDecayM3::GetDepth(int i) { makeStaticData()->SetDecayEmin(is_channel, mass1+mass2+mass3); - return TMath::Max(a1+1, TMath::Max(a2+1,a3+1)); + return TMath::Max(a1+1, TMath::Max(a2+1,a3+1)); } void PHadronDecayM3::SubPrint(Int_t) const { //Print sub-models - + if (model1) { cout << " "; cout << model1->GetDescription(); @@ -189,7 +189,7 @@ Bool_t PHadronDecayM3::SampleMass(Double_t *mass, Int_t *didx) { old_max=model3->GetMax(); model3->SetMax(mass[0] - mass[1] - mass[2] ); model3->ClearIntegral(); - } + } #endif repeat1: @@ -227,16 +227,16 @@ Bool_t PHadronDecayM3::SampleMass(Double_t *mass, Int_t *didx) { if (unstable) unstable->SetMax(old_max); return kFALSE; } - + if (unstable) unstable->SetMax(old_max); return kTRUE; }; Bool_t PHadronDecayM3::GetWidth(Double_t mass, Double_t *width, Int_t) { - + double q_value = mass-(mass1+mass2+mass3); double q_value_pole = parent_mass-(mass1+mass2+mass3); - + *width = (q_value/q_value_pole)*(q_value/q_value_pole); //*width=makeStaticData()->GetDecayPartialWidth(is_channel); @@ -266,7 +266,7 @@ Double_t PHadronDecayM3::GetWeight(void) { m23max2 = pow(mass[0]-PData::LMass(id1), 2); double phaseSpaceMax = (m12max2-m12min2)*(m23max2-m23min2); - return GetWeight(mass,didx)*(phaseSpace/phaseSpaceMax); + return GetWeight(mass,didx)*(phaseSpace/phaseSpaceMax); } Double_t PHadronDecayM3::GetWeight(Double_t *mass, Int_t *didx) { diff --git a/src/PHadronModel.cc b/src/PHadronModel.cc index b6ee9da..dd1ad6a 100644 --- a/src/PHadronModel.cc +++ b/src/PHadronModel.cc @@ -45,7 +45,7 @@ Bool_t PHadronModel::GetWidth(Double_t mass, Double_t *width, Int_t didx) { //It is based on first principles and is valid for arbitrary resonances //given the pole mass, vacuum width, and decay modes (units GeV/c**2). // - + if (didx >= 0) { //Do not calculate the width from first principles //but use the partial width only @@ -57,10 +57,10 @@ Bool_t PHadronModel::GetWidth(Double_t mass, Double_t *width, Int_t didx) { double g0 = makeStaticData()->GetParticleTotalWidth(is_pid); // vacuum width if (!width_init) // if 1st call, initialize flags - makeDynamicData()->GetParticleDepth(is_pid); + makeDynamicData()->GetParticleDepth(is_pid); - if (twidx==-1 || g0 < (*unstable_width) || mass==0. || - makeStaticData()->GetParticleNChannels(is_pid)==0) { + if (twidx==-1 || g0 < (*unstable_width) || mass==0. || + makeStaticData()->GetParticleNChannels(is_pid)==0) { *width = g0; // no mass-dependent width return kTRUE; } @@ -72,37 +72,37 @@ Bool_t PHadronModel::GetWidth(Double_t mass, Double_t *width, Int_t didx) { Bool_t self_consistency_loop = kTRUE; Bool_t next_self_consistency_loop = kFALSE; - if (!width_init) { + if (!width_init) { // Below: enter once on the first call width_init++; - + global_weight_scaling = makeDynamicData()->GetParticleScalingFactor(is_pid); mmin = PData::LMass(is_pid); // mass threshold mmax = PData::UMass(is_pid); // mass ceiling dm = (mmax-mmin)/(maxmesh-3.); // mass increment for the mesh - + Info("GetWidth", "Width 1st call for %s, mass range %f GeV to %f GeV", description, mmin, mmax); while (self_consistency_loop) { // The mass-dependent width is evaluated on a mesh as a function of mass. - + // now loop over decay modes Int_t listkey = -1; Int_t tid[11]; while (makeDataBase()->MakeListIterator(primary_key, "pnmodes", "link", &listkey)) { - tid[0] = 10; - makeStaticData()->GetDecayModeByKey(listkey, tid); + tid[0] = 10; + makeStaticData()->GetDecayModeByKey(listkey, tid); // retrieve current mode info didx2 = makeStaticData()->GetDecayIdxByKey(listkey); //np=tid[0]; - if (makeStaticData()->GetPWidx(didx2) != -1 ) { - // Note: The next call is required - // if the current particle has nested decays via + if (makeStaticData()->GetPWidx(didx2) != -1 ) { + // Note: The next call is required + // if the current particle has nested decays via // any recognized modes. - // The innermost widths must be available by the time - // the local Width sampling + // The innermost widths must be available by the time + // the local Width sampling // is called and their calculation is forced here. makeDynamicData()->GetDecayPartialWidth(mass, didx2); } @@ -135,9 +135,9 @@ Bool_t PHadronModel::GetWidth(Double_t mass, Double_t *width, Int_t didx) { Double_t global_weight = 0; for (j=0; jGetParticleTotalWeight(mm, is_pid); + global_weight += dm*makeDynamicData()->GetParticleTotalWeight(mm, is_pid); } - + if (global_weight) makeDynamicData()->SetParticleScalingFactor(is_pid, 1/(global_weight)); global_weight_scaling = makeDynamicData()->GetParticleScalingFactor(is_pid); @@ -150,13 +150,13 @@ Bool_t PHadronModel::GetWidth(Double_t mass, Double_t *width, Int_t didx) { //Loop again over decay modes didx2 = makeStaticData()->GetDecayIdxByKey(listkey); Double_t partial_weight = 0.; // reset the sum of mass-dependent branching ratio - global_weight = 0.; + global_weight = 0.; int brflag = makeStaticData()->GetDecayBRFlag(didx2); - if (brflag) { //Do integration + if (brflag) { //Do integration for (j=0; jGetParticleTotalWidth(mm,is_pid) > 0) partial_weight += dm*(makeDynamicData()->GetDecayPartialWidth(mm,didx2)* @@ -167,10 +167,10 @@ Bool_t PHadronModel::GetWidth(Double_t mass, Double_t *width, Int_t didx) { //PWidth/TWidth is the mass-dependent BR //*TWeight will be the Partial mass shape //Int(Partial mass shape)/Int(Total mass shape) must be the static BR - + global_weight += dm*makeDynamicData()->GetParticleTotalWeight(mm,is_pid); - - + + } } else { //pole width mm = makeStaticData()->GetParticleMass(is_pid); @@ -180,7 +180,7 @@ Bool_t PHadronModel::GetWidth(Double_t mass, Double_t *width, Int_t didx) { makeDynamicData()->GetParticleTotalWidth(mm,is_pid)); global_weight = makeDynamicData()->GetParticleTotalWeight(mm,is_pid); } - + //Global weight should be 1 after Scaling Double_t calculated_br = 0; @@ -191,29 +191,29 @@ Bool_t PHadronModel::GetWidth(Double_t mass, Double_t *width, Int_t didx) { if (global_weight) //Compare the calculated partial width to the static one calculated_br = tot_sc*partial_weight/global_weight; - + if ((calculated_br/makeStaticData()->GetDecayPartialWidth(didx2) > 1.001) - || (calculated_br/makeStaticData()->GetDecayPartialWidth(didx2) < 0.999)) { + || (calculated_br/makeStaticData()->GetDecayPartialWidth(didx2) < 0.999)) { //set SC factor and go on... if (!makeDynamicData()->CheckSCAbort(didx2)) { //check for endless loop Warning("GetWidth", "Self consistency calculation failed for decay: %s (%i)", makeStaticData()->GetDecayName(didx2), didx2); - Warning("GetWidth", "Calculated Width: %f, Static Width: %f", - calculated_br, + Warning("GetWidth", "Calculated Width: %f, Static Width: %f", + calculated_br, makeStaticData()->GetDecayPartialWidth(didx2)); - next_self_consistency_loop = kTRUE; //break the complete loop + next_self_consistency_loop = kTRUE; //break the complete loop } else { if (calculated_br > 0) { self_consistency_loop = kTRUE; - makeDynamicData()->SetDecaySCFactor(didx2, + makeDynamicData()->SetDecaySCFactor(didx2, makeStaticData()->GetDecayPartialWidth(didx2)/ calculated_br); } } } } //END modes iterator - if (next_self_consistency_loop) - self_consistency_loop = kFALSE; + if (next_self_consistency_loop) + self_consistency_loop = kFALSE; } //END while (self_consistency_loop) { } //width init diff --git a/src/PInclusiveModel.cc b/src/PInclusiveModel.cc index 75ac280..558374e 100644 --- a/src/PInclusiveModel.cc +++ b/src/PInclusiveModel.cc @@ -74,13 +74,13 @@ Bool_t PInclusiveModel::Init(void) { //Now get all daughters for (int i=0; icheck all others Int_t a1 = -1; //Default is stable decay products - + for (int i=0; iGetParticleModel(daughters[i]->ID()); if (daughter_models[i]) { @@ -98,12 +98,12 @@ int PInclusiveModel::GetDepth(int) { } } - return a1; + return a1; } Bool_t PInclusiveModel::SampleMass(void) { //In the sampling function, we first call the sub-models to - + Double_t mass, total_mass = 0; for (int i=0; iGetRandom(); weight = sample->Eval(frac); - } + } primary->SetM(frac*(q-total_mass)); //cout << total_mass << ":" << q-total_mass << ":" << frac*(q-total_mass) << endl; dynamic_range = q-total_mass; - + return kTRUE; } diff --git a/src/PMassSampling.cc b/src/PMassSampling.cc index e5aeded..0ceb59b 100644 --- a/src/PMassSampling.cc +++ b/src/PMassSampling.cc @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////// // -// General purpose resonance mass sampling +// General purpose resonance mass sampling // Resonance shapes can be defined by a TF1-object // This class allows to "play" around with different resonance shapes // in coupled-channel calculations @@ -24,7 +24,7 @@ PMassSampling::PMassSampling() { PMassSampling::PMassSampling(const Char_t *id, const Char_t *de, Int_t key) : PHadronModel(id, de, key) { - + shape1 = NULL; } diff --git a/src/PMesh.cc b/src/PMesh.cc index 86a0d3d..b06dd32 100644 --- a/src/PMesh.cc +++ b/src/PMesh.cc @@ -2,11 +2,11 @@ // Small linear mesh to substitute the array from PData // The mesh is inherited from TF1, and allow to use // mesh->Draw() -// +// // // Author: I. Froehlich // Written: 7.05.2007 -// Revised: +// Revised: // //////////////////////////////////////////////////////// @@ -20,7 +20,7 @@ using namespace std; PMesh::PMesh(Int_t psize, const Char_t *name) : TF1(name, "0", 0, 1) { - // Copied from TF1 constructor... + // Copied from TF1 constructor... SetName(name); fNpar = 0; @@ -35,7 +35,7 @@ PMesh::PMesh(Int_t psize, const Char_t *name) : TF1(name, "0", 0, 1) { #endif // fFunction = 0; fNdim = 1; - + if (psize <= 0) { Warning("PMesh", "Size %i not allowed", psize); td = NULL; @@ -53,7 +53,7 @@ PMesh::~PMesh() { Double_t PMesh::EvalPar(const Double_t *x, const Double_t *) { return Eval(x[0]); } - + Double_t PMesh::Eval(Double_t x, Double_t, Double_t, Double_t) const { return GetLinearIP(x); } @@ -80,9 +80,9 @@ void PMesh::Print(const Option_t*) const { Double_t PMesh::GetLinearIP(Double_t m) const { if ((m > min) && (m < max)) { - Double_t dm = (max-min)/(size-1.); + Double_t dm = (max-min)/(size-1.); int bin = int((m-min)/dm); - + double mlow = min + bin*dm, mup = mlow + dm, wlow = td[bin], diff --git a/src/PParticle.cc b/src/PParticle.cc index 3635284..2ab91bf 100644 --- a/src/PParticle.cc +++ b/src/PParticle.cc @@ -23,12 +23,12 @@ void PParticle::defaults(void) { - + SetVertex(*makeStaticData()->GetBatchValue("_event_vertex_x"), *makeStaticData()->GetBatchValue("_event_vertex_y"), *makeStaticData()->GetBatchValue("_event_vertex_z"), 0.); pParticle = NULL; - qParticle1 = NULL; + qParticle1 = NULL; qParticle2 = NULL; index = -1; decayModeIndex = -1; @@ -101,7 +101,7 @@ PParticle::PParticle(int id, Double_t * pt, Double_t w): defaults(); } - + PParticle::PParticle(int id, float * pt, Double_t w): TLorentzVector( pt ), pid( id ), wt( w ), active(kTRUE) { // id, pointer to 4-dim array (Px, Py, Pz, E) (GeV/c, GeV), weight @@ -116,7 +116,7 @@ PParticle::PParticle(const PParticle & p): parentIndex( p.GetParentIndex() ), daughterIndex( p.GetDaughterIndex() ), siblingIndex( p.GetSiblingIndex() ), - decayTime( p.GetProperTime() ), + decayTime( p.GetProperTime() ), wt( p.W() ), active( p.IsActive() ) { // copy constructor SetVertex(p.X(),p.Y(),p.Z(),p.T()); @@ -126,9 +126,9 @@ PParticle::PParticle(const PParticle & p): make_new_qParticle = p.make_new_qParticle; if (p.make_new_qParticle) { - qParticle1 = (p.qParticle1 ? + qParticle1 = (p.qParticle1 ? new PParticle(p.qParticle1) : NULL); //Copy, because it will destroy in dtor - } + } if (p.make_new_qParticle) { qParticle2 = (p.qParticle2 ? @@ -136,7 +136,7 @@ PParticle::PParticle(const PParticle & p): } sParticle = p.sParticle; - // if (p.debug) + // if (p.debug) // debug=p.debug; // else debug = ""; @@ -144,7 +144,7 @@ PParticle::PParticle(const PParticle & p): destroyDecayModeIndex = p.destroyDecayModeIndex; decayModeIndex = p.decayModeIndex; - if (p.values) + if (p.values) values = new PValues(*(p.values)); mult = p.mult; spectator = p.spectator; @@ -154,13 +154,13 @@ PParticle::PParticle(const PParticle & p): PParticle::PParticle(const PParticle *p): - TLorentzVector( p->Vect4() ), pid( p->ID() ), + TLorentzVector( p->Vect4() ), pid( p->ID() ), sourceId( p->GetSourceId() ), parentId( p->GetParentId() ), parentIndex( p->GetParentIndex() ), daughterIndex( p->GetDaughterIndex() ), siblingIndex( p->GetSiblingIndex() ), - decayTime( p->GetProperTime() ), + decayTime( p->GetProperTime() ), wt( p->W() ), active( p->IsActive() ) { // copy constructor SetVertex(p->X(),p->Y(),p->Z(),p->T()); @@ -172,7 +172,7 @@ PParticle::PParticle(const PParticle *p): if (p->make_new_qParticle) { qParticle1 = (p->qParticle1 ? new PParticle(p->qParticle1): NULL); //Copy, because it will destroy in dtor - } + } if (p->make_new_qParticle) { qParticle2 = (p->qParticle2 ? @@ -180,15 +180,15 @@ PParticle::PParticle(const PParticle *p): } sParticle = p->sParticle; - + // if (p->debug) debug=p->debug; - // else + // else debug = ""; values = NULL; destroyDecayModeIndex = p->destroyDecayModeIndex; decayModeIndex = p->decayModeIndex; - if (p->values) + if (p->values) values = new PValues(*(p->values)); mult = p->mult; @@ -200,7 +200,7 @@ PParticle::PParticle(const PParticle *p): void PParticle::SetKE(Double_t T) { // reset by kinetic energy - Double_t m=M(), th=Theta(), ph=Phi(), + Double_t m=M(), th=Theta(), ph=Phi(), ptot=sqrt(T*T+2*T*m), e=T+m, pxy=ptot*sin(th), px=pxy*cos(ph), py=pxy*sin(ph), pz=ptot*cos(th); SetPxPyPzE(px,py,pz,e); @@ -211,7 +211,7 @@ void PParticle::SetM(Double_t m) { Double_t m1, px=Px(), py=Py(), pz=Pz(); if (m > 0.) m1 = m; // if non-zero reset mass to argument value else { // else sample from Breit-Wigner if width > 1 MeV - Double_t g0 = makeStaticData()->GetParticleTotalWidth(pid), + Double_t g0 = makeStaticData()->GetParticleTotalWidth(pid), m0 = makeStaticData()->GetParticleMass(pid); if (g0 < 1.e-3) m1 = m0; // else fix to centroid value else do { m1 = PUtils::sampleBW(m0,g0); } while (m1<0.); @@ -236,11 +236,11 @@ Double_t PParticle::Life(Double_t m, int idx) { Double_t r, tau=Gamma()*makeDynamicData()->GetParticleLife(pid, m, idx); do { r = PUtils::sampleFlat(); } while (r==0.); return -tau*log(r); -} +} void PParticle::SetProperTime() { // lifetime in particle's frame (in mm/c) - + Double_t r, tau; if (makeStaticData()->GetParticleTotalWidth(pid) > 0) { @@ -268,7 +268,7 @@ Double_t PParticle::InvariantT(Double_t m3, Double_t m4, Double_t cos_th_cm) { if (!qParticle1 || !qParticle2) { Warning("InvariantT", "No beam & target found"); - return 0; + return 0; } //Boost into target c.m. frame @@ -352,7 +352,7 @@ PParticle & PParticle::operator += ( const PParticle & p) { } make_new_qParticle=kTRUE; - qParticle1 = new PParticle(this); + qParticle1 = new PParticle(this); qParticle2 = new PParticle(p); Info("operator+","(%s) Keeping beam and target particle for further reference", PRINT_AUTO_ALLOC); make_new_qParticle=kTRUE; @@ -360,7 +360,7 @@ PParticle & PParticle::operator += ( const PParticle & p) { Int_t len=strlen(makeStaticData()->GetParticleName(ID()))+ strlen(makeStaticData()->GetParticleName(p.ID()))+6; char * delme=new char[len]; - + sprintf(delme,"%s + %s",makeStaticData()->GetParticleName(ID()), makeStaticData()->GetParticleName(p.ID())); if (!makeStaticData()->AddParticle(id2+ID(), delme,M()+p.M())) { @@ -371,7 +371,7 @@ PParticle & PParticle::operator += ( const PParticle & p) { sprintf(delme2,"%s+%s",makeStaticData()->GetParticleName(ID()), makeStaticData()->GetParticleName(p.ID())); makeStaticData()->AddAlias(delme,delme2); - Info("operator+","(%s) The composite %s has been added", + Info("operator+","(%s) The composite %s has been added", PRINT_AUTO_ALLOC,makeStaticData()->GetParticleName(id2+ID())); } } @@ -406,7 +406,7 @@ void PParticle::Scatter(PParticle *p1, PParticle *p2) { } make_new_qParticle=kFALSE; - qParticle1 = p1; + qParticle1 = p1; qParticle2 = p2; pid =id1 + id2*1000; @@ -414,7 +414,7 @@ void PParticle::Scatter(PParticle *p1, PParticle *p2) { Int_t len=strlen(makeStaticData()->GetParticleName(id1))+ strlen(makeStaticData()->GetParticleName(id2))+6; char * delme=new char[len]; - + sprintf(delme,"%s + %s",makeStaticData()->GetParticleName(id1), makeStaticData()->GetParticleName(id2)); if (!makeStaticData()->AddParticle(pid, delme,p1->M()+p2->M())) { @@ -425,7 +425,7 @@ void PParticle::Scatter(PParticle *p1, PParticle *p2) { sprintf(delme2,"%s+%s",makeStaticData()->GetParticleName(id1), makeStaticData()->GetParticleName(id2)); makeStaticData()->AddAlias(delme,delme2); - Info("Scatter","(%s) The composite %s has been added", + Info("Scatter","(%s) The composite %s has been added", PRINT_AUTO_ALLOC,makeStaticData()->GetParticleName(pid)); } } @@ -442,7 +442,7 @@ void PParticle::Scatter(PParticle *p1, PParticle *p2) { PParticle & PParticle::operator = ( const PParticle & p ) { // assignment - + SetVect4(p.Vect4()); wt = p.W(); pid = p.ID(); diff --git a/src/PPiOmegaAngularDistribution.cc b/src/PPiOmegaAngularDistribution.cc index 57cc385..5c6a89f 100644 --- a/src/PPiOmegaAngularDistribution.cc +++ b/src/PPiOmegaAngularDistribution.cc @@ -34,11 +34,11 @@ PDistribution *PPiOmegaAngularDistribution::Clone(const char *) const { }; Bool_t PPiOmegaAngularDistribution::IsNotRejected(void) { - + if (!direct_sampling_done) { Fatal("IsNotRejected", "Sampling not finished"); } - + return kTRUE; }; @@ -63,17 +63,17 @@ Bool_t PPiOmegaAngularDistribution::Prepare(void) { void PPiOmegaAngularDistribution::getPiN_wN_param() { - // energy-dependent parameters of the cm angular distribution + // energy-dependent parameters of the cm angular distribution // for w production in pi+N --> N+w - if (parent->M() != e_cm) + if (parent->M() != e_cm) e_cm = parent->M(); else return; // no change in values - + const double y[] = {exp(-8.),exp(-4.),exp(-3.2),exp(-2.4),1.}, dx[] = {1.,.2,.2,.6}, dy[]={y[1]-y[0],y[2]-y[1],y[3]-y[2],y[4]-y[3]}; int i; double h = .0069*exp(2.873*e_cm), // h parametrized by J.Messchendorp - a = 0.; + a = 0.; PiN_w_y[0] = 1.+h*y[0]; PiN_w_h = h; for (i=0; i<4; ++i) { @@ -94,8 +94,8 @@ double PPiOmegaAngularDistribution::SamplePolarAngle(double r) { if (version == PI_OMEGA_piNNw) { // pi + N --> N + w, PRD2 (1970) 2564 fl = 2; rr = r1*PiN_w_area[3]; - for (i=0; i<4; ++i) - if (rr < PiN_w_area[i]) + for (i=0; i<4; ++i) + if (rr < PiN_w_area[i]) break; area = (i)?PiN_w_area[i-1]:0.; x1 = PiN_w_y[i]; @@ -112,13 +112,13 @@ double PPiOmegaAngularDistribution::SamplePolarAngle(double r) { tf = 9. * exp(c0); c0 = -c0; } else if (version==PI_OMEGA_piPDw) { // pi+ + P --> pi+ P + w, // Alff PR 145 (1966) 361 - fl = 4; + fl = 4; c0 = log((r1*23.504+3.679)/10.); f = 2. + exp(2.3*c0); tf = 10. * exp(c0); c0 = -c0; - } else + } else return c0 = PUtils::sampleFlat()*2.-1.; // leave it isotropic for the moment - + r2 = PUtils::sampleFlat(); if (r2 > f/tf) { // reject r1 = PUtils::sampleFlat(); diff --git a/src/PPlutoBulkDecay.cc b/src/PPlutoBulkDecay.cc index eb9f913..0971092 100644 --- a/src/PPlutoBulkDecay.cc +++ b/src/PPlutoBulkDecay.cc @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////// -// Pluto bulk decay base +// Pluto bulk decay base // -// This class let all particles with tauDelta+gamma st_i1 = size_ini-1; - + //st_i2 = st_i3 = size_ini; st_i3 = size_ini; while (st_i1 > -1) { cur_p = stack[st_i1]; //set current pointer //if (cur_p->ID() == 17) - // cout << cur_p->IsActive() << ":"<< makeDynamicData()->GetParticleLife(cur_p->ID() )<< ":"<< + // cout << cur_p->IsActive() << ":"<< makeDynamicData()->GetParticleLife(cur_p->ID() )<< ":"<< // decay_done[st_i1] << endl; - if (cur_p->IsActive() && - makeDynamicData()->GetParticleLife(cur_p->ID()) + if (cur_p->IsActive() && + makeDynamicData()->GetParticleLife(cur_p->ID()) < tauMax && !decay_done[st_i1]) { //cout << "Current stack particle: " << st_i1 << endl; @@ -61,19 +61,19 @@ bool PPlutoBulkDecay::Modify(PParticle ** stack, int *decay_done, int * num, int // cout << "cur_p" << cur_p->ID()<< ":"<< cur_p->M()<< endl; - Int_t channel_idx = - makeDynamicData()->PickDecayChannel(cur_p->ID(), cur_p->M(), child_ids); + Int_t channel_idx = + makeDynamicData()->PickDecayChannel(cur_p->ID(), cur_p->M(), child_ids); //cout << channel_idx << endl; - if (channel_idx>-1) { + if (channel_idx>-1) { Int_t np = child_ids[0]; // number of decay products if (np > 0) { // np==0 can happen if M()GetParamTObj (didx, channel_idx , stackchannel, &ch)) { Info("Modify", "(%s) Making new channel for didx %i", PRINT_AUTO_ALLOC, channel_idx); @@ -101,9 +101,9 @@ bool PPlutoBulkDecay::Modify(PParticle ** stack, int *decay_done, int * num, int work[0]->SetSourceId(sourceIdSave); // Reset them here. work[0]->SetParentId(parentIdSave); - makeDataBase()->SetParamTObj(makeDataBase()->GetEntryInt("didx", channel_idx) , - "stackchannel", d_ch); - + makeDataBase()->SetParamTObj(makeDataBase()->GetEntryInt("didx", channel_idx) , + "stackchannel", d_ch); + } if (makeDataBase()->GetParamTObj(didx, channel_idx, stackchannel, &ch)) { @@ -130,7 +130,7 @@ bool PPlutoBulkDecay::Modify(PParticle ** stack, int *decay_done, int * num, int work[k]->SetSibling(work[1]); } } - + //--> otherwise we are not doing sampling with the total width } else { Fatal("Modify", "Unable to get PChannel"); @@ -146,7 +146,7 @@ bool PPlutoBulkDecay::Modify(PParticle ** stack, int *decay_done, int * num, int } #endif //end debug - + (d_ch->GetParticles()[0])->SetParent(work[0]->GetParent()); //now Init in background @@ -168,7 +168,7 @@ bool PPlutoBulkDecay::Modify(PParticle ** stack, int *decay_done, int * num, int work[0]->SetDecayModeIndex(channel_idx, 1); //set the index, but destroy it later //-->has to happen after decay() - decay_done[st_i1] = 1; + decay_done[st_i1] = 1; //never let this particle decay again in this event //after the decay we put all local particles to stack @@ -200,7 +200,7 @@ bool PPlutoBulkDecay::Modify(PParticle ** stack, int *decay_done, int * num, int if(st_i3>(stacksize-maxnp)) { // check for stack overflow, taking into account next particles printf("PPlutoBulkDecay::decayAll: st_i3=%d > stacksize%i\n", st_i3, stacksize); } - + } // if (cur_p->isActive()... //set the focus to the last particle, and let us drop to the first one @@ -208,8 +208,8 @@ bool PPlutoBulkDecay::Modify(PParticle ** stack, int *decay_done, int * num, int } *num = st_i3; //Output size - + return kTRUE; } -ClassImp(PPlutoBulkDecay) +ClassImp(PPlutoBulkDecay) diff --git a/src/PProjector.cc b/src/PProjector.cc index 209dba2..e15c606 100644 --- a/src/PProjector.cc +++ b/src/PProjector.cc @@ -12,7 +12,7 @@ // // Commands for the batch can be added in 2 ways: Either // with AddCommand(char * command) or -// in one step together with a histogram which will +// in one step together with a histogram which will // be filled after the command has been executed. // // Input: The input for the commands must be particles @@ -25,7 +25,7 @@ // // Author: Ingo Froehlich // Written: 14/02/2008 -// Revised: +// Revised: // //////////////////////////////////////////////////////// @@ -38,30 +38,30 @@ PProjector::PProjector() { batch_pos = 0; pid_param = makeDataBase()->GetParamInt("batch_pid"); - if (pid_param < 0) + if (pid_param < 0) pid_param = makeDataBase()->MakeParamInt("batch_pid", "PID for batch"); - + link_param = makeDataBase()->GetParamInt("batch_position"); - if (link_param < 0) + if (link_param < 0) link_param = makeDataBase()->MakeParamInt("batch_position", "PID position for batch"); - + batch_particle_param = makeDataBase()->GetParamTObj("batch_particle"); w = makeStaticData()->GetBatchValue("_w"); - - if (batch_particle_param < 0) + + if (batch_particle_param < 0) batch_particle_param = makeDataBase()->MakeParamTObj("batch_particle", "PParticle storage for batch"); batch_value_param = makeDataBase()->GetParamDouble("batch_value"); stream_default_pos_param = makeDataBase()->GetParamInt(STREAM_DEFAULT_POS); - if (stream_default_pos_param < 0) + if (stream_default_pos_param < 0) stream_default_pos_param = makeDataBase()->MakeParamInt(STREAM_DEFAULT_POS, "Default position"); stream_max_pos_param = makeDataBase()->GetParamInt(STREAM_MAX_POS); - if (stream_max_pos_param < 0) + if (stream_max_pos_param < 0) stream_max_pos_param = makeDataBase()->MakeParamInt(STREAM_MAX_POS, "Max position in stream"); - for (int i=0; iSetSizeBranches(size_branches); batch[batch_pos]->SetKeysBranches(key_branches); @@ -125,7 +125,7 @@ Bool_t PProjector::AddCommand(const char *command) { } Bool_t PProjector::AddHistogram(TH3 *histo, const char *command, Int_t fillflag) { - + if (!AddCommand(command)) return kFALSE; hist3[batch_pos-1] = histo; @@ -160,7 +160,7 @@ Bool_t PProjector::AddHistogram(TH3 *histo, const char *command, Int_t fillflag) return kFALSE; } - if (batch[batch_pos-1]->IsReadonly()) + if (batch[batch_pos-1]->IsReadonly()) fillflag = 0; batch[batch_pos-1]->SetToolObject(histo); fFillFlag[batch_pos-1] = fillflag; @@ -169,7 +169,7 @@ Bool_t PProjector::AddHistogram(TH3 *histo, const char *command, Int_t fillflag) } Bool_t PProjector::AddHistogram(TH2 *histo, const char *command, Int_t fillflag) { - + if (!AddCommand(command)) return kFALSE; hist2[batch_pos-1] = histo; @@ -195,7 +195,7 @@ Bool_t PProjector::AddHistogram(TH2 *histo, const char *command, Int_t fillflag) return kFALSE; } - if (batch[batch_pos-1]->IsReadonly()) + if (batch[batch_pos-1]->IsReadonly()) fillflag = 0; batch[batch_pos-1]->SetToolObject(histo); fFillFlag[batch_pos-1] = fillflag; @@ -204,7 +204,7 @@ Bool_t PProjector::AddHistogram(TH2 *histo, const char *command, Int_t fillflag) } Bool_t PProjector::AddHistogram(TH1 *histo, const char *command, Int_t fillflag) { - + if (!AddCommand(command)) return kFALSE; hist1[batch_pos-1] = histo; @@ -221,8 +221,8 @@ Bool_t PProjector::AddHistogram(TH1 *histo, const char *command, Int_t fillflag) Error ("AddHistogram", "Double _x not found"); return kFALSE; } - - if (batch[batch_pos-1]->IsReadonly()) + + if (batch[batch_pos-1]->IsReadonly()) fillflag = 0; batch[batch_pos-1]->SetToolObject(histo); fFillFlag[batch_pos-1] = fillflag; @@ -231,7 +231,7 @@ Bool_t PProjector::AddHistogram(TH1 *histo, const char *command, Int_t fillflag) } Bool_t PProjector::AddTGraph(TGraph *graph, const char *command) { - + if (!AddCommand(command)) return kFALSE; //get the result @@ -253,7 +253,7 @@ Bool_t PProjector::AddTGraph(TGraph *graph, const char *command) { } Bool_t PProjector::AddTGraph2D(TGraph2D *graph, const char *command) { - + if (!AddCommand(command)) return kFALSE; //get the result @@ -299,7 +299,7 @@ Bool_t PProjector::AddOutputTNtuple(TNtuple *n, const char *command) { const char *name = br->GetName(); //Each branch should be correlated to the batch key - + if (key_pos_out[batch_pos-1] == PROJECTOR_MAX_BRANCHES) { Error("AddNTuple", "Too many branches in NTuple"); return kFALSE; @@ -313,7 +313,7 @@ Bool_t PProjector::AddOutputTNtuple(TNtuple *n, const char *command) { key_pos_out[batch_pos-1]++; } - return kTRUE; + return kTRUE; } Bool_t PProjector::AddInputASCII(const char *filename, const char *command) { @@ -328,7 +328,7 @@ Bool_t PProjector::AddInputASCII(const char *filename, const char *command) { } batch[batch_pos-1]->SetToolObject(file); fPriority = FILEINPUT_PRIORITY; - return kTRUE; + return kTRUE; } Bool_t PProjector::AddOutputASCII(const char *filename, const char *command) { @@ -342,7 +342,7 @@ Bool_t PProjector::AddOutputASCII(const char *filename, const char *command) { return kFALSE; } batch[batch_pos-1]->SetToolObject(file); - return kTRUE; + return kTRUE; } Bool_t PProjector::AddInputTNtuple(TNtuple *n,const char *command) { @@ -364,7 +364,7 @@ Bool_t PProjector::AddInputTNtuple(TNtuple *n,const char *command) { const char *name = br->GetName(); //Each branch should be correlated to the batch key - + if (key_pos_in[batch_pos-1] == PROJECTOR_MAX_BRANCHES) { Error("AddNTuple", "Too many branches in NTuple"); return kFALSE; @@ -393,7 +393,7 @@ Bool_t PProjector::AddInputTNtuple(TNtuple *n,const char *command) { fPriority = FILEINPUT_PRIORITY; - return kTRUE; + return kTRUE; } Int_t PProjector::SetParticles(PParticle **mstack, int *, int *num, int, Int_t first_time) { @@ -409,23 +409,23 @@ Int_t PProjector::SetParticles(PParticle **mstack, int *, int *num, int, Int_t particle_key = makeStaticData()->GetParticleKey(mstack[i]->ID()); if (makeDataBase()->GetParamInt(particle_key, stream_default_pos_param, &i_result)) { (*i_result) = 0; - } + } } particle_key = makeStaticData()->GetParticleKey(0); //DUMMY=all particles if (makeDataBase()->GetParamInt(particle_key, stream_default_pos_param, &i_result)) { (*i_result) = 0; - } + } for (int i=0; i<*num; i++) { //Delete old max pos list particle_key = makeStaticData()->GetParticleKey(mstack[i]->ID()); if (makeDataBase()->GetParamInt(particle_key, stream_max_pos_param, &i_result)) { (*i_result) = 0; - } + } } particle_key = makeStaticData()->GetParticleKey(0); //DUMMY=all particles if (makeDataBase()->GetParamInt(particle_key, stream_max_pos_param, &i_result)) { (*i_result) = 0; - } + } for (int i=0; i<*num; i++) { //Create max list if (mstack[i]->IsActive()) { //count only active particles @@ -446,7 +446,7 @@ Int_t PProjector::SetParticles(PParticle **mstack, int *, int *num, int, Int_t counter_all++; } mstack[i]->SetScatterClone(kFALSE); //disable making clones when copy constructor is called -> memory leak - } + } //cout << "counted max " << counter_all << endl; }//END first_time @@ -465,7 +465,7 @@ Int_t PProjector::SetParticles(PParticle **mstack, int *, int *num, int, Int_t //First clear the entry to avoid the use of old objects if (pos >= 0) { makeDataBase()->SetParamTObj(listkey, batch_particle_param, NULL); - } else if ((pos == -112) && first_time && (*(proj_nr) == bulk_id)) { + } else if ((pos == -112) && first_time && (*(proj_nr) == bulk_id)) { //stumbled over "+" //cout << "CALLED + in "<< bulk_id << endl; new_particles++; @@ -485,7 +485,7 @@ Int_t PProjector::SetParticles(PParticle **mstack, int *, int *num, int, Int_t makeDataBase()->SetParamTObj(listkey, batch_particle_param, &(stack[new_particles-1])); (*num)++; } else if (pos == -1) { - //No pos, default + //No pos, default makeDataBase()->SetParamTObj(listkey, batch_particle_param, NULL); Int_t particle_key = makeStaticData()->GetParticleKey(pid); if (makeDataBase()->GetParamInt(particle_key, stream_default_pos_param, &i_result)) { @@ -513,7 +513,7 @@ Int_t PProjector::SetParticles(PParticle **mstack, int *, int *num, int, Int_t for (int i=0; i<*num; i++) { //cout << mstack[i]->IsActive() << endl; if (mstack[i]->IsActive()) { - + //cout << "stack_pid:"<< mstack[i]->ID() << endl; //mstack[i]->Print(); if ((mstack[i]->ID() == pid) || (pid==0)) { //0=DUMMY @@ -522,12 +522,12 @@ Int_t PProjector::SetParticles(PParticle **mstack, int *, int *num, int, Int_t TObject *delme = (TObject *) mstack[i]; makeDataBase()->SetParamTObj(listkey, batch_particle_param, delme); //makeDataBase()->ListEntries(listkey,1,"name,*pid,*batch_particle"); - } + } pos--; } } } - } + } } return 0; } @@ -536,7 +536,7 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st //cout << "Modify " << endl; *w = current_weight; - + SetParticles(mstack, decay_done, num, stacksize, 1); //cout << "num: " << *num << endl; //excuting batch @@ -551,7 +551,7 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st startcommand = 0; if (retval & kTRUE) { - + current_weight = *w; if (hist3[i] && fFillFlag[i]) { @@ -573,7 +573,7 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st hist1[i]->Fill((*x)); } } - + if (fp_out[i]) { //fill the ntuple Double_t *val; @@ -586,7 +586,7 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st } else values[j] = 0; } - + fp_out[i]->Fill(values); } @@ -608,8 +608,8 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st } num_events_in_c[i]++; } - } - + } + int redo = 0; int setparticle = 0; if (retval & kGOTO) { @@ -624,7 +624,7 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st Error("Modify", "Jumping with a GOTO over different Projector not yet implemented"); } retval &= ~kGOTO; - } + } if (retval & kPUSH) { startcommand = batch[i]->GetOldCommand(); //cout << startcommand << endl; @@ -644,7 +644,7 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st //i -= 1; //stay in same batch redo = 1; retval &= ~kPUSH; - } + } if (retval & kPUSHBRANCH) { startcommand = batch[i]->GetOldCommand(); if (batch[i]->GetBranch() > (*size_branches)) { @@ -655,7 +655,7 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st Warning("Modify (kPUSHBRANCH)", "Stack size too small, increase '_system_particle_stacksize'"); return kTRUE; } - + if (batch[i]->GetCurrentParticle()) { *((particle_array_branches[batch[i]->GetBranch()-1]) [*(current_size_branches[batch[i]->GetBranch()-1])] ) @@ -666,25 +666,25 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st } redo = 1; retval &= ~kPUSHBRANCH; - } + } if (retval & kFOREACHEND) { setparticle = 1; //SetParticles(mstack, decay_done, num, stacksize, 0); //reset particles like for "formore" startcommand = 0; retval &= ~kFOREACHEND; retval &= ~kFOREACH; - } + } if (retval & kUPDATE) { setparticle = 1; //SetParticles(mstack, decay_done, num, stacksize, 0); //reset particles like for "formore" startcommand = batch[i]->GetOldCommand(); redo = 1; retval &= ~kUPDATE; - } + } if (retval & kEOF) { Info("Modify", "EOF reached"); return kFALSE; - } + } if (retval & kFOREACH) { startcommand = batch[i]->GetOldCommand(); //cout << "sc foreach " << startcommand << endl; @@ -692,18 +692,18 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st setparticle = 1; //SetParticles(mstack, decay_done, num, stacksize, 0); //reset particles like for "formore" retval &= ~kFOREACHEND; - } + } if (retval & kELSE) { if (batch[i]->GetElsePosition()>-1 && //only if else is provided batch[i]->GetCurrentPosition() < batch[i]->GetElsePosition() ) { //avoid deadlocks startcommand = batch[i]->GetElsePosition(); redo = 1; - //i -= 1; //stay in same batch + //i -= 1; //stay in same batch } } if (setparticle == 1) SetParticles(mstack, decay_done, num, stacksize, 0); if (setparticle == 2) SetParticles(mstack, decay_done, num, stacksize, 1); - if (redo) i -= 1; //stay in same batch + if (redo) i -= 1; //stay in same batch retval &= ~kTRUE; //clean true flag for next loop } @@ -715,7 +715,7 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st Int_t particle_key = makeStaticData()->GetParticleKey(mstack[i]->ID()); if (makeDataBase()->GetParamInt (particle_key, stream_max_pos_param, &i_result)) { (*i_result) = 0; - } + } } return kTRUE; @@ -723,7 +723,7 @@ Bool_t PProjector::Modify(PParticle **mstack, int *decay_done, int * num, int st void PProjector::Print(const Option_t*) const { - for (int i=0; iPrint(); } diff --git a/src/PPropagator.cc b/src/PPropagator.cc index 1b8dd0f..94e713d 100644 --- a/src/PPropagator.cc +++ b/src/PPropagator.cc @@ -11,7 +11,7 @@ #include "PPropagator.h" -PPropagator::PPropagator(const Char_t *id, const Char_t *de, Int_t key) : +PPropagator::PPropagator(const Char_t *id, const Char_t *de, Int_t key) : PChannelModel(id, de, key) { //Constructor pid = is_pid; @@ -24,28 +24,28 @@ PDistribution* PPropagator::Clone(const char*) const { }; TComplex PPropagator::GetAmplitude(Double_t *mass, Int_t *) { - + Double_t x = mass[0]; - - Double_t M = makeStaticData()->GetParticleMass(pid); - Double_t Gamma = makeDynamicData()->GetParticleTotalWidth(mass[0], pid); + + Double_t M = makeStaticData()->GetParticleMass(pid); + Double_t Gamma = makeDynamicData()->GetParticleTotalWidth(mass[0], pid); // if (pid == 52) -// Gamma = makeStaticData()->GetParticleTotalWidth(pid); +// Gamma = makeStaticData()->GetParticleTotalWidth(pid); // else { // Gamma = makeStaticData()->GetParticleTotalWidth(pid) // * (M/x) * sqrt(pow((x*x - 4*0.134*0.134) / (M*M-4*0.134*0.134) ,3)); // } - + Double_t Re = x*x - M*M; Double_t Im = Gamma * M; - TComplex Denom(Re, Im); + TComplex Denom(Re, Im); TComplex Nom(1.,0); - TComplex S = Nom/Denom; - - return S; + TComplex S = Nom/Denom; + + return S; }; ClassImp(PPropagator) diff --git a/src/PReaction.cc b/src/PReaction.cc index fc199bf..42430a8 100644 --- a/src/PReaction.cc +++ b/src/PReaction.cc @@ -3,7 +3,7 @@ // // A PReaction object represents a complete reaction process, // made up of a sequence of PChannels, namely a succession of -// particle decays. All the participating PParticles and PChannels +// particle decays. All the participating PParticles and PChannels // must be instantiated before the PReaction is set up. // // Author: M.A. Kagarlis @@ -61,7 +61,7 @@ const char *percent="\%"; Int_t passEvent(float eb, float bp, float ph, int n, // passes event to HGEANT - int *id, int *src, int *par, int *parindex, float *px, float *py, float *pz, + int *id, int *src, int *par, int *parindex, float *px, float *py, float *pz, float *vx, float *vy, float *vz, float *vt, float *w); Int_t CalledSelection(PParticle *p); @@ -90,7 +90,7 @@ PReaction::PReaction(PChannel **pchannel, const char *file_name, int n, // Reaction constructor by pointer to array of pointers to Channels, // output file name (see below), options (see below), pointer to external event tree // (if called from the decay manager). - // Options: + // Options: // f0: 0=Tracked, 1=All particles in ROOT output file_name.root // f1: unused // f2: 0=Do not calculate, 1=Calculate production vertices for product particles @@ -101,7 +101,7 @@ PReaction::PReaction(PChannel **pchannel, const char *file_name, int n, // E1 px1 py1 pz1 ID1 weight1 <-- 3-momentum components in GeV/c, // E2 px2 py2 pz2 ID2 weight2 <-- GEANT particle ID, // E3 px3 py3 pz3 ID3 weight3 <-- weight - // . . . . . . . . . . . . + // . . . . . . . . . . . . // _________________________________________________________________ // See also PProjector/PBatch for additional conventions if filters are used. // _________________________________________________________________ @@ -110,11 +110,11 @@ PReaction::PReaction(PChannel **pchannel, const char *file_name, int n, makeDistributionManager()->DisableAddWarning(); makeDistributionManager()->ExecAll("init"); //init physics, if not yet done, and allow for didx-plugins - if (!pchannel) + if (!pchannel) n = 0; sub_reaction = NULL; - status = 0; + status = 0; tree = ttree; int check_options = (f0!=0&&f0!=1) + (f1!=0&&f1!=1) + (f2!=0&&f2!=1) + (f3!=0&&f3!=1&&f3!=2); @@ -128,7 +128,7 @@ PReaction::PReaction(PChannel **pchannel, const char *file_name, int n, getVERTEX = f2; asciiOUTPUT = f3; extTREE = tree!=NULL; - ropt = 0 | ff0*allPARTICLES | ff1*resetCHANNELS | ff2*getVERTEX + ropt = 0 | ff0*allPARTICLES | ff1*resetCHANNELS | ff2*getVERTEX | ff3*(asciiOUTPUT>0) | ff4*extTREE; } nchan = n; @@ -176,7 +176,7 @@ PReaction:: PReaction(const char *filename) { SetName(filename); } -PReaction::PReaction(PChannel **pchannel, int n, unsigned int ff, +PReaction::PReaction(PChannel **pchannel, int n, unsigned int ff, TTree *ttree, const char *file_name) { // same as above, but passing one unsigned int as flag // position of arguments shuffled to break ambiguity with previous constructor @@ -203,14 +203,14 @@ PReaction::PReaction(Double_t momentum, const char *reaction, const char *file_name, Int_t f0, Int_t f1, Int_t f2, Int_t f3, TTree *ttree) { // build reaction completely from descriptor string - + char dummy[100]; sprintf(dummy, "_P1=%lf", momentum); parse_script(dummy, beam, target, reaction, file_name, f0, f1,f2, f3, ttree); -} +} PReaction::PReaction(const char *e, const char *beam, const char *target, @@ -222,7 +222,7 @@ PReaction::PReaction(const char *e, beam, target, reaction, file_name, f0, f1,f2, f3, ttree); -} +} Bool_t PReaction::parse_script(const char *command, const char *beam, const char *target, @@ -232,12 +232,12 @@ Bool_t PReaction::parse_script(const char *command, // For "command, the batch script syntax is supported // to set the beam parameters. The following variables // can be used: - // _T1, _T2, _P1, _P2 as kinetic beam energy/momentum + // _T1, _T2, _P1, _P2 as kinetic beam energy/momentum // for the beam/target (in GeV), and - // _theta1, _theta2, _phi as beam inclination (in rad). + // _theta1, _theta2, _phi as beam inclination (in rad). // It should be mentioned, that for the target, the // notation is opposite, i.e. theta2 has the opposite - // rotation as theta1, and T2 goes into the opposite + // rotation as theta1, and T2 goes into the opposite // direction as T1 // // If no variable is used, only T1 as the beam energy is @@ -249,7 +249,7 @@ Bool_t PReaction::parse_script(const char *command, // "_T1=1.5; _theta=2*TMath::DegToRad();" // -> Beam inclination of 2 deg - + r_beam = beam, r_target = target; reaction_string = reaction; makeDistributionManager()->DisableAddWarning(); @@ -268,7 +268,7 @@ Bool_t PReaction::parse_script(const char *command, "_T1;_T2;_P1;_P2;_theta1;_theta2;_phi;"); makeGlobalBatch()->Execute(newcommand); makeGlobalBatch()->SetVarList(NULL); - + Double_t beam_energy1 = 0.; if (makeStaticData()->GetBatchValue("_T1",0)) { beam_energy1 = *(makeStaticData()->GetBatchValue("_T1",0)); @@ -303,27 +303,27 @@ Bool_t PReaction::parse_script(const char *command, // } char *array[200]; - Int_t array_s = 200; + Int_t array_s = 200; PUtils::Tokenize(reaction, ";", array, &array_s); Int_t total_channels = 0; TList plutoList; - + for (int i=0; i 0) { - pb = PParticle(beam, 0, 0, beam_momentum1); + pb = PParticle(beam, 0, 0, beam_momentum1); } else { - pb = PParticle(beam, beam_energy1); + pb = PParticle(beam, beam_energy1); } if (beam_momentum2 > 0) { - pt = PParticle(target, 0, 0, -beam_momentum2); + pt = PParticle(target, 0, 0, -beam_momentum2); } else { pt = PParticle(target, 0, 0, -sqrt(beam_energy2*beam_energy2+2*beam_energy2* - makeStaticData()->GetParticleMass(target))); + makeStaticData()->GetParticleMass(target))); } pb.RotateY(beam_theta1); pb.RotateZ(beam_phi1); @@ -331,7 +331,7 @@ Bool_t PReaction::parse_script(const char *command, pt.RotateZ(beam_phi1); cout << "" << endl; - pb.Print(); + pb.Print(); cout << "" << endl; pt.Print(); @@ -345,10 +345,10 @@ Bool_t PReaction::parse_script(const char *command, PChannel **pchannel = new PChannel*[total_channels]; TIter next(&plutoList); - + Int_t pos = 0; while (TObject *t = next()) { - if (t->IsA() == PChannel::Class()) { + if (t->IsA() == PChannel::Class()) { pchannel[pos++] = (PChannel*) t; } } @@ -372,9 +372,9 @@ Bool_t PReaction::parse_script(const char *command, } nchan = total_channels; SetUp(pchannel); - SetName(file_name); + SetName(file_name); return kTRUE; -} +} PReaction::PReaction(PParticle *q, const char *reaction, const char *file_name, @@ -387,27 +387,27 @@ PReaction::PReaction(PParticle *q, sub_reaction = NULL; char *array[200]; - Int_t array_s = 200; + Int_t array_s = 200; PUtils::Tokenize(reaction, ";", array, &array_s); Int_t total_channels = 0; TList plutoList; - + for (int i=0; iIsA() == PChannel::Class()) { + if (t->IsA() == PChannel::Class()) { pchannel[pos++] = (PChannel*) t; } } @@ -432,8 +432,8 @@ PReaction::PReaction(PParticle *q, } nchan = total_channels; SetUp(pchannel); - SetName(file_name); -} + SetName(file_name); +} void PReaction::AddReaction(const char *reaction) { if (sub_reaction) { @@ -447,7 +447,7 @@ void PReaction::AddReaction(const char *reaction) { sub_reaction = new PReaction((char*)"", r_beam, r_target, reaction,(char*)original_filename.Data(), allPARTICLES, 1-resetCHANNELS, - getVERTEX, asciiOUTPUT); + getVERTEX, asciiOUTPUT); else sub_reaction = new PReaction((char*)"", r_beam, r_target, reaction, NULL, @@ -480,17 +480,17 @@ void PReaction::ConvertFilename(void) { SetName((char*)filename.Data()); original_filename=original_filename2; - + cout << "New name: " << filename << endl; } PReaction::~PReaction() { // Reaction destructor - cindex.~TArrayI(); + cindex.~TArrayI(); if (particle_stack) delete [] particle_stack; - + if (evt[0]) { delete evt[0]; evt[0] = NULL; @@ -501,7 +501,7 @@ PReaction::~PReaction() { evt[i+1] = NULL; } } - + if (dindex.GetArray()) dindex.~TArrayI(); if (ftrack.GetArray()) ftrack.~TArrayI(); if (!extTREE&&tree) delete tree; @@ -522,15 +522,15 @@ PParticle *PReaction::MakeParticle(char *name) { // cout << name << endl; int is_spec = -1; int len = strlen(name)-1; - if ((name[0]=='(') && (name[len]==')')) { + if ((name[0]=='(') && (name[len]==')')) { is_spec = 1; PUtils::remove_brackets(&name, '(', ')'); } - if (name[0]=='(') { + if (name[0]=='(') { is_spec = 2; name++; } - if (name[len]==')') { + if (name[len]==')') { is_spec = 3; name[len]='\0'; } @@ -563,7 +563,7 @@ Int_t PReaction::ParseChannel(PParticle *parent, const char *channel, i += ParseChannel(current, &channel[i], plutoList, numChannels); if (channel[i]) i++; start = i; - break; + break; case 0: case ']': { if (start!=i) { @@ -587,7 +587,7 @@ Int_t PReaction::ParseChannel(PParticle *parent, const char *channel, numChannels++; return i; break; - } + } case ' ': { if (start==i) { start = ++i; break; } TString name(&channel[start], i-start); @@ -613,7 +613,7 @@ Bool_t PReaction::AddBulk(PBulkInterface *mybulk) { //Add a bulk interface to the list //Each bulk object will be executed during the event loop //after the normal decay - + if (bulkdecay_pos == MAX_BULKDECAY ) { Error("AddBulk", "MAX_BULKDECAY reached"); return kFALSE; @@ -639,7 +639,7 @@ Bool_t PReaction::AddPrologueBulk(PBulkInterface *mybulk) { Error("AddPrologueBulk", "MAX_BULKDECAY reached"); return kFALSE; } - + if (pro_bulkdecay_pos && (pro_bulk[pro_bulkdecay_pos-1]->GetPriority() > mybulk->GetPriority())) { pro_bulk[pro_bulkdecay_pos] = pro_bulk[pro_bulkdecay_pos-1]; pro_bulk[pro_bulkdecay_pos-1] = mybulk; @@ -668,14 +668,14 @@ void PReaction::SetReactionId() { fac *= 100; } (pch0->GetParticles())[0]->SetSourceId(reactionId); // source id of 1st part. in 1st ch. - } else reactionId = ids[0]; // this is a thermal source, dilepton generator, etc. + } else reactionId = ids[0]; // this is a thermal source, dilepton generator, etc. } void PReaction::SetUp(PChannel **pchannel) { // get the channels and particles, identify the physics, set up the defaults. // cout << "PReaction:: setUp called" << endl; - + int j, i, cnew, l=-1, m=-1, k, pcount; num_filters = 0; @@ -725,7 +725,7 @@ void PReaction::SetUp(PChannel **pchannel) { //TODO: add dummy bulk for separation, otherwise //GetCurrentPorjector gets the global one } - + event_impact_param = (makeStaticData()->GetBatchValue("_event_impact_param")); event_plane = (makeStaticData()->GetBatchValue("_event_plane")); vertex_x = makeStaticData()->GetBatchValue("_event_vertex_x"); @@ -748,7 +748,7 @@ void PReaction::SetUp(PChannel **pchannel) { channel = NULL; if (pchannel) { if (pchannel[0]->GetQuasi()) { - //Workaround for d+p quasi-construction + //Workaround for d+p quasi-construction //Simply move everything by one and fill in the scattering channel = new PChannel*[nchan+1]; for (int j=0; jfrom_pdecaymanager == 0) { // channel[j]->Print(); - makeDistributionManager()->Attach(channel[j]); + makeDistributionManager()->Attach(channel[j]); } //if no DecayManager, do this by hand } @@ -823,7 +823,7 @@ void PReaction::SetUp(PChannel **pchannel) { poth=channel[k]->GetParticles();// address of that channels particle array if (pnew[i] == poth[0]) { // current particle decays at a later channel if (pnew[i]->Is("dilepton")) ++pcount; - ++dcount; + ++dcount; dindex[k-1] = m; // keep track which particle decays at which channel } } @@ -855,7 +855,7 @@ void PReaction::SetUp(PChannel **pchannel) { particle[j]->SetSiblingIndex(-1); // sibling(s) not known yet particle[j]->SetSibling(NULL); } - + //initialize PChannels for (j=0; jGetCurrentFile()->GetName(); else file2 += ".root"; // root file name } else { @@ -903,7 +903,7 @@ void PReaction::SetName(const char *name) { rootfile->Close(); delete rootfile; } - if (asciiOUTPUT && (strlen(filename) > 0) ) { + if (asciiOUTPUT && (strlen(filename) > 0) ) { // ascii output required file1 = filename+".evt"; } @@ -918,7 +918,7 @@ void PReaction::InitLoop() { int size = ntpar; static int count = 0; - if (!evt[0]) + if (!evt[0]) evt[0] = new TClonesArray("PParticle", size); // create on 1st time else return; @@ -942,7 +942,7 @@ void PReaction::InitLoop() { if (size_branches) { Error("InitLoop", "Multiple branches not supported when using an external tree"); } - } else { // create branches + } else { // create branches tree->Branch("Npart", &activeCnt, "Npart/I"); tree->Branch("Impact", event_impact_param, "Impact/D"); tree->Branch("Phi", event_plane, "Phi/D"); @@ -957,7 +957,7 @@ void PReaction::InitLoop() { } } - if (asciiOUTPUT == 1) + if (asciiOUTPUT == 1) asciif = fopen(file1, "w"); if (nMaxBytes>0 && tree) tree->SetMaxTreeSize(nMaxBytes); @@ -965,12 +965,12 @@ void PReaction::InitLoop() { Int_t listkey = -1; num_filters = 0; Int_t primary_key = makeDataBase()->GetEntry("batch_objects"); - + if (primary_key >- 1) while (makeDataBase()->MakeListIterator(primary_key, NBATCH_NAME, LBATCH_NAME, &listkey)) { //cout << makeDataBase()->GetName(listkey); - if ((*makeDataBase()->GetName(listkey) == '#') && + if ((*makeDataBase()->GetName(listkey) == '#') && PUtils::ValidVariableName(makeDataBase()->GetName(listkey))) { //Filter found cout << "Found filter variable " << makeDataBase()->GetName(listkey) << endl; @@ -1004,10 +1004,10 @@ int PReaction::Loop(int nevents, int wf, int verbose) { } // from one and the same PReaction object - int i, j, k, error_count=0, error_count_failed=0, empty_count=0, good_event=0, + int i, j, k, error_count=0, error_count_failed=0, empty_count=0, good_event=0, size, current_size_branches[MAX_NUM_BRANCHES], size_tracked; - int percentevents = (nevents/100) * (*makeStaticData()->GetBatchValue("_system_printout_percent")), + int percentevents = (nevents/100) * (*makeStaticData()->GetBatchValue("_system_printout_percent")), cpc=1, ipc=cpc*percentevents; if (verbose) (*makeStaticData()->GetBatchValue("_system_total_events_to_sample")) = nevents; int system_printout_percent = int(*makeStaticData()->GetBatchValue("_system_printout_percent")); @@ -1017,7 +1017,7 @@ int PReaction::Loop(int nevents, int wf, int verbose) { double *events = makeStaticData()->GetBatchValue("_system_total_event_number"); - // PParticle **file_particle, **ascii_particle, **tree_particle; + // PParticle **file_particle, **ascii_particle, **tree_particle; // particles to be kept on file //Create additional particles for the bulk decay @@ -1035,14 +1035,14 @@ int PReaction::Loop(int nevents, int wf, int verbose) { // if ((bulkdecay_pos || pro_bulkdecay_pos) && !doonce) { if (!doonce) { doonce = 1; - for (k=0;kSetBranchNum(i, &(current_size_branches[i])); } } - + for (int i=0; iSetBranchArray(i, &(p_array_branches[i*stacksize])); makeGlobalBulk()->SetBranchNum(i, &(current_size_branches[i])); } - + ///////////////////////////// Event loop //////////////////////////////// if (verbose) printf("%s\n", RMessage[1]); //calculating widths in PData... @@ -1095,7 +1095,7 @@ int PReaction::Loop(int nevents, int wf, int verbose) { //the PChannel list for (k=0; kGetParticles())[0]->clearDebugString(); - } + } } *event_impact_param = 0.0; // reset reaction impact parameter @@ -1156,22 +1156,22 @@ int PReaction::Loop(int nevents, int wf, int verbose) { for (int bu=0; buSetTree(tree); - if(!(statusOfModify = pro_bulk[bu]->Modify(particle_stack, - decay_done, &size, stacksize))) { - break; + if(!(statusOfModify = pro_bulk[bu]->Modify(particle_stack, + decay_done, &size, stacksize))) { + break; } for (int ii=old_size; iiSetIndex(ii); - } + //set index for "new" particles. + particle_stack[ii]->SetIndex(ii); + } for (int ii=0; iiSetInActive(); // decayed particle } } - + // if Modify failed we will stop the eventloop if(statusOfModify == kFALSE) { if (nevents > 0) @@ -1192,18 +1192,18 @@ int PReaction::Loop(int nevents, int wf, int verbose) { } particle_stack[ii]->SetStatus(STATUS_NOT_DECAYED); //cout << "set particle " << ii << " active" << endl; - particle_stack[ii]->SetActive(); //active by default, otherwise it is + particle_stack[ii]->SetActive(); //active by default, otherwise it is //un-initialized in PChannel::decay() } for (j=0; jGetParticles())[0]; - if (*weight_version) + if (*weight_version) parent->SetW(PChannel::GetGlobalWeight() * parent->GetMultiplicity()); parent->SetGenW(1.); parent->SetInvGenW(1.); //parent->Print(); } - + Int_t ret = 0; Int_t start = 0; @@ -1212,7 +1212,7 @@ int PReaction::Loop(int nevents, int wf, int verbose) { if (error_count_failed > max_failed_events-0.5) { status = 3; Error("Loop", "Stalled in one single event (_system_max_failed_events reached). Giving up...."); - Info("Loop", "Last error code was: %i", ret); + Info("Loop", "Last error code was: %i", ret); break; } @@ -1229,7 +1229,7 @@ int PReaction::Loop(int nevents, int wf, int verbose) { //cout << "goto repeat, code=" << ret << ", event nr=" << *events << endl; goto repeat; // FAILED, repeat event } - } + } //Clear status flag for the parent particle (channel[j]->GetParticles())[0]->SetStatus(ret); @@ -1252,29 +1252,29 @@ int PReaction::Loop(int nevents, int wf, int verbose) { } } } - + if (pre_heating) { pre_heating--; if (pre_heating == 1) Info("Loop()","Preheating done"); goto repeat2; // dummy, repeat event } - + if (ret == 8) break; // EOF in PChannel::readFileInput() - Double_t my_global_weight = 1.; + Double_t my_global_weight = 1.; if (*weight_version) { - + //BUGBUG: The following lines should go into a separate class: #if 1 //Now starting to combine the individual weights //to (at least) a chain weight - for (k=0; kweight_divisor = 1.; //cout << particle_stack[k]->W() << endl; } - - //Step1: Collect the divisors + + //Step1: Collect the divisors for (k=size-1; k>=0; k--) { if (particle_stack[k]->GetParent() && (particle_stack[k]->W()>0.)) { particle_stack[k]->GetParent()->weight_divisor = @@ -1282,41 +1282,41 @@ int PReaction::Loop(int nevents, int wf, int verbose) { particle_stack[k]->W(); } } - - //Step2: Combine the divisors + + //Step2: Combine the divisors for (k=size-1; k>=0; k--) { if (particle_stack[k]->GetParent()) particle_stack[k]->GetParent()->weight_divisor *= particle_stack[k]->weight_divisor; } - + //Step3: InitWeight for (k=size-1; k>=0; k--) { particle_stack[k]->SetW( particle_stack[k]->W() / (particle_stack[k]->weight_divisor)); } - + //Step4: Now we assume that the "Adam" has the correct weight // for all daughters. This will be copied, thus a // chain has the same weight // // At the same time we collect already the "global" weight - - + + for (k=size-1; k>=0; k--) { if (particle_stack[k]->GetParent()) { particle_stack[k]->SetW(particle_stack[k]->GetParent()->W()); } else //adam my_global_weight *= particle_stack[k]->W(); } - + //cout << "W: "<< my_global_weight << endl; - + //Step5: (optional) //Here, we give all particles the same weight (=event weight) //BUGBUG: Problem when we have different chains and the default weight //is the number of events??? - for (k=size-1; k>=0; k--) + for (k=size-1; k>=0; k--) particle_stack[k]->SetW(my_global_weight); #endif } @@ -1333,14 +1333,14 @@ int PReaction::Loop(int nevents, int wf, int verbose) { //////////////////////// Decay all particles (Epilogue) //////////////////////////// - //Set the decay flag of the original particles + //Set the decay flag of the original particles for (k=0; kGetStatus()) == STATUS_OK) decay_done[k] = 1; else decay_done[k] = 0; } - + //set the remaining particles to 0 for (k=size; kSetInActive(); // decayed particle } } @@ -1368,21 +1368,21 @@ int PReaction::Loop(int nevents, int wf, int verbose) { // } // bulk[bu]->Print(); - if(!(statusOfModify = bulk[bu]->Modify(particle_stack, + if(!(statusOfModify = bulk[bu]->Modify(particle_stack, decay_done, &size, stacksize))) { break; } my_global_weight = bulk[bu]->GetWeight(); if (*weight_version) { - for (k=size-1; k>=0; k--) + for (k=size-1; k>=0; k--) particle_stack[k]->SetW(my_global_weight); } for (int ii=old_size; iiSetIndex(ii); } for (int ii=0; iiSetInActive(); // decayed particle } @@ -1391,9 +1391,9 @@ int PReaction::Loop(int nevents, int wf, int verbose) { #if 0 cout << "after EPI " << size << endl; for (k=0;kIsActive()) + if (particle_stack[k]->IsActive()) particle_stack[k]->Print(); - else + else cout << "particle " << k << " inactive" << endl; } #endif @@ -1405,10 +1405,10 @@ int PReaction::Loop(int nevents, int wf, int verbose) { "Bulk return kFALSE. Not full number of events calculated! nEvents = %i !",i); break; } - + Int_t cnt0 = 0; // check for empty event for (k=0; kIsActive() << "done: " <IsActive() << "done: " <ID() << endl; if (particle_stack[k]->IsActive()==kTRUE) cnt0++; } @@ -1417,12 +1417,12 @@ int PReaction::Loop(int nevents, int wf, int verbose) { error_count++; if (last_nonempty < i) { //firts time here.... - error_count_array[STATUS_EMPTY_EVENT]++; + error_count_array[STATUS_EMPTY_EVENT]++; } else { //passed already error_count_array[STATUS_PSEUDO_EMPTY_EVENT]++; } - goto repeat_empty; + goto repeat_empty; } else { last_nonempty = i; } @@ -1431,7 +1431,7 @@ int PReaction::Loop(int nevents, int wf, int verbose) { //------------------------------------------------------------------------------------- -// Double_t xSave = tree_particle[0]->Px(); // save momenta of 1st particle +// Double_t xSave = tree_particle[0]->Px(); // save momenta of 1st particle // Double_t ySave = tree_particle[0]->Py(); // Double_t zSave = tree_particle[0]->Pz(); @@ -1487,7 +1487,7 @@ int PReaction::Loop(int nevents, int wf, int verbose) { // . // gROOT->ProcessLine(".L userSelect.C+"); // or .L userSelect.C++ // r->SetUserSelection(userSelect); -// r->loop(1000); +// r->loop(1000); // // // 3) true compiled function (i.e. embedded into Pluto code) @@ -1496,14 +1496,14 @@ int PReaction::Loop(int nevents, int wf, int verbose) { // . // . // r->SetUserSelection(userSelect); -// r->loop(1000); -// +// r->loop(1000); +// // Remark: // A select function explicitely compiled into the code (e.g. in PReaction.cc) // has to be Set directly with userSelection = select in SetUserSelection(f), // and not with via TMethodCall. In addition, to be set from the interpreter, select // has to made known to Cint via an entry in the LinkDef.h file. -// +// /////////////////////////////////////////////////////////////////////////////// if (userSelection) { // test user selection function @@ -1527,9 +1527,9 @@ int PReaction::Loop(int nevents, int wf, int verbose) { Int_t filters_sum = 0; for (k=0; kGetName(filter_keys[k]) << ":" << + // cout << makeDataBase()->GetName(filter_keys[k]) << ":" << // *(filter_values[k]) << endl; - + if (*(filter_values[k]) < PUtils::sampleFlat()) { //Random variable failed filter_counter[k]++; @@ -1592,20 +1592,20 @@ int PReaction::Loop(int nevents, int wf, int verbose) { float phiEv = 57.29578 * (*event_plane); // go to degrees passEvent(Ebeam, bpar, phiEv, cnt, id_tmp, src_tmp, par_tmp, ind_tmp, px_tmp, py_tmp, pz_tmp, vx_tmp, vy_tmp, vz_tmp, vt_tmp, w_tmp); - gROOT->ProcessLine("doGeant(\"trigger 1\");"); - } + gROOT->ProcessLine("doGeant(\"trigger 1\");"); + } if (asciiOUTPUT) { // write event to ASCII file - + if (!getVERTEX) { cnt = 0; - for(k=0; kIsActive()==kTRUE) cnt++; if (writeINDEX == 0) { fprintf(asciif," %i %i %f %f 2\n", PReaction::globalEventCounter,cnt, channel[0]->GetBT(),*event_impact_param); - } else { + } else { if (channel) fprintf(asciif," %i %i %f %f -2\n", PReaction::globalEventCounter, cnt, channel[0]->GetBT(), *event_impact_param); @@ -1628,7 +1628,7 @@ int PReaction::Loop(int nevents, int wf, int verbose) { } } else { cnt = 0; - for(k=0; kIsActive()==kTRUE) cnt++; if (writeINDEX==0) { fprintf(asciif, " %i %i %f %f 4\n", @@ -1672,9 +1672,9 @@ int PReaction::Loop(int nevents, int wf, int verbose) { //Write standard particles into tree for (k=0; kIsActive() == kFALSE) + if (particle_stack[k]->IsActive() == kFALSE) continue; //skip inactive prtcls. - if (!allPARTICLES && decay_done[k]) + if (!allPARTICLES && decay_done[k]) continue; //skip decayed prtcls. particle_stack[k]->SetT(particle_stack[k]->T()/300.);// go from mm/c to ns @@ -1691,7 +1691,7 @@ int PReaction::Loop(int nevents, int wf, int verbose) { for (int i=0; iDelete(); - for (k=0; k<(current_size_branches[i]); k++) { + for (k=0; k<(current_size_branches[i]); k++) { (*pclone)[k] = new((*pclone)[k]) PParticle(*(p_array_branches[i*stacksize + k])); cnt++; } @@ -1702,15 +1702,15 @@ int PReaction::Loop(int nevents, int wf, int verbose) { files[z]->WriteEventHeader(); files[z]->SetBranchHeader(activeCnt, 0, "Particles"); files[z]->WriteBranchHeader(); - files[z]->Modify(particle_stack, - decay_done, &size, + files[z]->Modify(particle_stack, + decay_done, &size, stacksize); //First write the standard particles for (k=0; kIsActive() == kFALSE) + if (particle_stack[k]->IsActive() == kFALSE) continue; //skip inactive prtcls. - if (!allPARTICLES && decay_done[k]) + if (!allPARTICLES && decay_done[k]) continue; //skip decayed prtcls. files[z]->WriteParticle(particle_stack[k]); } @@ -1719,7 +1719,7 @@ int PReaction::Loop(int nevents, int wf, int verbose) { for (int i=0; iSetBranchHeader(current_size_branches[i], i+1, makeDataBase()->GetName(key_branches[i])); files[z]->WriteBranchHeader(); - for (k=0; k<(current_size_branches[i]); k++) { + for (k=0; k<(current_size_branches[i]); k++) { files[z]->WriteParticle(p_array_branches[i*stacksize + k]); } } @@ -1729,7 +1729,7 @@ int PReaction::Loop(int nevents, int wf, int verbose) { if ((tree) && ((strlen(filename)>0) || extTREE)) //otherwise memory leak tree->Fill(); } - + // if (thetaBeam>0. || sigmaBeam>0.) { // Set 1st particle back to be ready for next event. // // This is needed because it is not resampled by // // PChannel::decay() and would cumulate successive rotations. @@ -1761,10 +1761,10 @@ int PReaction::Loop(int nevents, int wf, int verbose) { printf("\n"); } - for (i=0; iGetName(filter_keys[i])); - + if (asciiOUTPUT==1) fclose(asciif); if (tree) { if (!extTREE && (strlen(filename) > 0)) { @@ -1794,7 +1794,7 @@ void PReaction::SetFilter(int, PFilter *) { void PReaction::Close() { // close root output file - if (!extTREE && (strlen(filename) > 0)) + if (!extTREE && (strlen(filename) > 0)) rootfile->Close(); else printf("%s\n", RMessage[0]); } @@ -1831,7 +1831,7 @@ void PReaction::Print(const Option_t *delme) const { printf(" quasi-particle (%s beam and %s target)\n", makeStaticData()->GetParticleName(iid%1000),makeStaticData()->GetParticleName(iid/1000)); } - } + } for (;jGetParticleName(particle[j]->ID())); if ((!allPARTICLES||asciiOUTPUT)*ftrack[j]) { @@ -1848,31 +1848,31 @@ void PReaction::Print(const Option_t *delme) const { printf(" Bulk Classes:\n"); if (pro_bulkdecay_pos) { printf(" Prologue: "); - for (j=0; jClassName() << "> "; cout << endl; } if (bulkdecay_pos) { printf(" Epilogue: "); - for (j=0; jClassName() << "> "; cout << endl; } } - + if (fileoutput_pos || strlen(filename)>0) { printf(" Output File(s):\n"); if (strlen(filename) > 0) { printf(" Root : '%s', %s", (const char*)file2, OType[allPARTICLES]); - if (getVERTEX) + if (getVERTEX) printf(" including vertices.\n"); - else + else printf(".\n"); - if (asciiOUTPUT) + if (asciiOUTPUT) printf(" ASCII: '%s', %s\n", (const char*)file1, OType[0]); - + } - for (int i=0; iGetFilename(), OType[allPARTICLES]); } if (size_branches) { @@ -1904,7 +1904,7 @@ void PReaction::SetUserSelection(void *) { // set user selection function userSelection = (int (*)(PParticle*))f; printf("\n>>> User selection "); } else { // this is an interpreted function or a method call - char *funcname = G__p2f2funcname(f); // modeled on TMinuit constructor + char *funcname = G__p2f2funcname(f); // modeled on TMinuit constructor TMethodCall *fMethodCall = NULL; if (funcname) { fMethodCall = new TMethodCall(); @@ -1934,7 +1934,7 @@ Int_t CalledSelection(PParticle*) { // interface for interactive user return (Int_t)result; #endif return -1; -} +} void PReaction::SetUserAnalysis(void *) { // set user analysis function @@ -1947,7 +1947,7 @@ void PReaction::SetUserAnalysis(void *) { // set user analysis function userAnalysis = (int (*)(PParticle**,int))f; printf("\n>>> User analysis "); } else { // this is an interpreted function or a method call - char *funcname = G__p2f2funcname(f); // modeled on TMinuit constructor + char *funcname = G__p2f2funcname(f); // modeled on TMinuit constructor TMethodCall *fMethodCall=NULL; if (funcname) { fMethodCall = new TMethodCall(); @@ -1978,7 +1978,7 @@ Int_t CalledAnalysis(PParticle **, Int_t) { // interface for user return (Int_t)result; #endif return -1; -} +} //Int_t select(PParticle* p) { // example of a user selection function diff --git a/src/PSaid.cc b/src/PSaid.cc index aac3c18..4bdef75 100644 --- a/src/PSaid.cc +++ b/src/PSaid.cc @@ -30,1505 +30,1505 @@ const double pei = 0.5; const double pai = 1.; const double PP[naz*nez]={ // matrix for the interpolation - 2.766e-01, 2.765e-01, 2.764e-01, 2.761e-01, 2.757e-01, 2.751e-01, - 2.743e-01, 2.734e-01, 2.724e-01, 2.711e-01, 2.697e-01, 2.680e-01, - 2.662e-01, 2.643e-01, 2.621e-01, 2.598e-01, 2.573e-01, 2.547e-01, - 2.519e-01, 2.489e-01, 2.458e-01, 2.426e-01, 2.392e-01, 2.356e-01, - 2.320e-01, 2.282e-01, 2.243e-01, 2.202e-01, 2.161e-01, 2.119e-01, - 2.076e-01, 2.032e-01, 1.987e-01, 1.941e-01, 1.895e-01, 1.848e-01, - 1.801e-01, 1.753e-01, 1.705e-01, 1.657e-01, 1.608e-01, 1.560e-01, - 1.511e-01, 1.462e-01, 1.413e-01, 1.365e-01, 1.316e-01, 1.268e-01, - 1.220e-01, 1.172e-01, 1.125e-01, 1.078e-01, 1.032e-01, 9.864e-02, - 9.415e-02, 8.972e-02, 8.537e-02, 8.111e-02, 7.692e-02, 7.283e-02, - 6.882e-02, 6.492e-02, 6.112e-02, 5.742e-02, 5.384e-02, 5.037e-02, - 4.701e-02, 4.377e-02, 4.066e-02, 3.767e-02, 3.482e-02, 3.209e-02, - 2.950e-02, 2.704e-02, 2.472e-02, 2.255e-02, 2.051e-02, 1.862e-02, - 1.687e-02, 1.527e-02, 1.382e-02, 1.252e-02, 1.137e-02, 1.037e-02, - 9.528e-03, 8.834e-03, 8.294e-03, 7.908e-03, 7.676e-03, 7.599e-03, - 6.921e-02, 6.905e-02, 6.877e-02, 6.838e-02, 6.788e-02, 6.726e-02, - 6.654e-02, 6.572e-02, 6.480e-02, 6.380e-02, 6.272e-02, 6.157e-02, - 6.036e-02, 5.909e-02, 5.779e-02, 5.646e-02, 5.510e-02, 5.373e-02, - 5.237e-02, 5.102e-02, 4.969e-02, 4.840e-02, 4.715e-02, 4.597e-02, - 4.485e-02, 4.382e-02, 4.287e-02, 4.203e-02, 4.130e-02, 4.070e-02, - 4.022e-02, 3.988e-02, 3.970e-02, 3.967e-02, 3.980e-02, 4.010e-02, - 4.057e-02, 4.123e-02, 4.206e-02, 4.309e-02, 4.430e-02, 4.570e-02, - 4.729e-02, 4.908e-02, 5.105e-02, 5.320e-02, 5.554e-02, 5.806e-02, - 6.075e-02, 6.361e-02, 6.664e-02, 6.982e-02, 7.314e-02, 7.660e-02, - 8.019e-02, 8.389e-02, 8.771e-02, 9.161e-02, 9.560e-02, 9.966e-02, - 1.038e-01, 1.079e-01, 1.121e-01, 1.163e-01, 1.205e-01, 1.247e-01, - 1.288e-01, 1.330e-01, 1.370e-01, 1.410e-01, 1.449e-01, 1.487e-01, - 1.523e-01, 1.559e-01, 1.593e-01, 1.625e-01, 1.656e-01, 1.685e-01, - 1.712e-01, 1.737e-01, 1.760e-01, 1.781e-01, 1.800e-01, 1.816e-01, - 1.830e-01, 1.841e-01, 1.850e-01, 1.856e-01, 1.860e-01, 1.862e-01, - 3.081e-02, 3.068e-02, 3.046e-02, 3.017e-02, 2.981e-02, 2.939e-02, - 2.891e-02, 2.838e-02, 2.782e-02, 2.722e-02, 2.661e-02, 2.600e-02, - 2.539e-02, 2.481e-02, 2.426e-02, 2.376e-02, 2.332e-02, 2.296e-02, - 2.270e-02, 2.255e-02, 2.253e-02, 2.265e-02, 2.292e-02, 2.337e-02, - 2.401e-02, 2.485e-02, 2.591e-02, 2.720e-02, 2.874e-02, 3.053e-02, - 3.259e-02, 3.492e-02, 3.755e-02, 4.047e-02, 4.370e-02, 4.724e-02, - 5.110e-02, 5.527e-02, 5.977e-02, 6.459e-02, 6.973e-02, 7.520e-02, - 8.098e-02, 8.708e-02, 9.349e-02, 1.002e-01, 1.072e-01, 1.145e-01, - 1.220e-01, 1.298e-01, 1.379e-01, 1.461e-01, 1.546e-01, 1.633e-01, - 1.721e-01, 1.811e-01, 1.902e-01, 1.995e-01, 2.088e-01, 2.182e-01, - 2.276e-01, 2.370e-01, 2.464e-01, 2.557e-01, 2.650e-01, 2.742e-01, - 2.832e-01, 2.922e-01, 3.009e-01, 3.094e-01, 3.178e-01, 3.258e-01, - 3.336e-01, 3.411e-01, 3.482e-01, 3.550e-01, 3.615e-01, 3.675e-01, - 3.731e-01, 3.783e-01, 3.831e-01, 3.874e-01, 3.912e-01, 3.946e-01, - 3.974e-01, 3.998e-01, 4.016e-01, 4.029e-01, 4.037e-01, 4.040e-01, - 1.738e-02, 1.728e-02, 1.713e-02, 1.693e-02, 1.669e-02, 1.640e-02, - 1.609e-02, 1.576e-02, 1.541e-02, 1.507e-02, 1.474e-02, 1.443e-02, - 1.416e-02, 1.395e-02, 1.380e-02, 1.374e-02, 1.377e-02, 1.392e-02, - 1.421e-02, 1.464e-02, 1.524e-02, 1.602e-02, 1.701e-02, 1.821e-02, - 1.964e-02, 2.132e-02, 2.326e-02, 2.548e-02, 2.800e-02, 3.082e-02, - 3.395e-02, 3.741e-02, 4.121e-02, 4.536e-02, 4.986e-02, 5.472e-02, - 5.995e-02, 6.554e-02, 7.150e-02, 7.784e-02, 8.454e-02, 9.160e-02, - 9.903e-02, 1.068e-01, 1.149e-01, 1.234e-01, 1.322e-01, 1.413e-01, - 1.507e-01, 1.604e-01, 1.703e-01, 1.805e-01, 1.909e-01, 2.016e-01, - 2.124e-01, 2.233e-01, 2.344e-01, 2.456e-01, 2.569e-01, 2.682e-01, - 2.796e-01, 2.909e-01, 3.022e-01, 3.135e-01, 3.246e-01, 3.356e-01, - 3.464e-01, 3.571e-01, 3.675e-01, 3.777e-01, 3.876e-01, 3.972e-01, - 4.065e-01, 4.154e-01, 4.239e-01, 4.319e-01, 4.396e-01, 4.468e-01, - 4.534e-01, 4.596e-01, 4.653e-01, 4.704e-01, 4.749e-01, 4.789e-01, - 4.822e-01, 4.850e-01, 4.872e-01, 4.887e-01, 4.897e-01, 4.900e-01, - 1.117e-02, 1.109e-02, 1.098e-02, 1.083e-02, 1.065e-02, 1.045e-02, - 1.022e-02, 9.994e-03, 9.767e-03, 9.552e-03, 9.363e-03, 9.212e-03, - 9.112e-03, 9.078e-03, 9.126e-03, 9.269e-03, 9.526e-03, 9.911e-03, - 1.044e-02, 1.114e-02, 1.201e-02, 1.308e-02, 1.436e-02, 1.588e-02, - 1.764e-02, 1.966e-02, 2.195e-02, 2.454e-02, 2.744e-02, 3.065e-02, - 3.419e-02, 3.807e-02, 4.230e-02, 4.689e-02, 5.184e-02, 5.717e-02, - 6.286e-02, 6.894e-02, 7.539e-02, 8.223e-02, 8.944e-02, 9.702e-02, - 1.050e-01, 1.133e-01, 1.219e-01, 1.309e-01, 1.403e-01, 1.499e-01, - 1.599e-01, 1.701e-01, 1.806e-01, 1.913e-01, 2.023e-01, 2.135e-01, - 2.248e-01, 2.363e-01, 2.480e-01, 2.597e-01, 2.715e-01, 2.833e-01, - 2.952e-01, 3.070e-01, 3.188e-01, 3.305e-01, 3.421e-01, 3.536e-01, - 3.649e-01, 3.759e-01, 3.868e-01, 3.974e-01, 4.077e-01, 4.176e-01, - 4.272e-01, 4.365e-01, 4.453e-01, 4.536e-01, 4.616e-01, 4.690e-01, - 4.759e-01, 4.823e-01, 4.881e-01, 4.934e-01, 4.981e-01, 5.022e-01, - 5.057e-01, 5.086e-01, 5.108e-01, 5.124e-01, 5.134e-01, 5.137e-01, - 7.793e-03, 7.734e-03, 7.643e-03, 7.523e-03, 7.379e-03, 7.217e-03, - 7.046e-03, 6.874e-03, 6.710e-03, 6.566e-03, 6.452e-03, 6.382e-03, - 6.369e-03, 6.427e-03, 6.571e-03, 6.816e-03, 7.178e-03, 7.673e-03, - 8.317e-03, 9.127e-03, 1.012e-02, 1.131e-02, 1.272e-02, 1.436e-02, - 1.624e-02, 1.839e-02, 2.082e-02, 2.353e-02, 2.655e-02, 2.989e-02, - 3.355e-02, 3.756e-02, 4.190e-02, 4.661e-02, 5.167e-02, 5.710e-02, - 6.290e-02, 6.908e-02, 7.562e-02, 8.254e-02, 8.983e-02, 9.748e-02, - 1.055e-01, 1.139e-01, 1.226e-01, 1.316e-01, 1.410e-01, 1.506e-01, - 1.606e-01, 1.708e-01, 1.813e-01, 1.921e-01, 2.030e-01, 2.141e-01, - 2.254e-01, 2.369e-01, 2.485e-01, 2.601e-01, 2.719e-01, 2.836e-01, - 2.954e-01, 3.071e-01, 3.188e-01, 3.305e-01, 3.420e-01, 3.533e-01, - 3.645e-01, 3.755e-01, 3.862e-01, 3.967e-01, 4.068e-01, 4.167e-01, - 4.262e-01, 4.353e-01, 4.440e-01, 4.523e-01, 4.601e-01, 4.674e-01, - 4.743e-01, 4.806e-01, 4.863e-01, 4.916e-01, 4.962e-01, 5.002e-01, - 5.037e-01, 5.065e-01, 5.087e-01, 5.103e-01, 5.113e-01, 5.116e-01, - 5.758e-03, 5.708e-03, 5.630e-03, 5.528e-03, 5.406e-03, 5.270e-03, - 5.129e-03, 4.990e-03, 4.863e-03, 4.758e-03, 4.686e-03, 4.661e-03, - 4.695e-03, 4.801e-03, 4.995e-03, 5.291e-03, 5.704e-03, 6.250e-03, - 6.945e-03, 7.806e-03, 8.847e-03, 1.009e-02, 1.154e-02, 1.322e-02, - 1.514e-02, 1.732e-02, 1.978e-02, 2.252e-02, 2.555e-02, 2.890e-02, - 3.257e-02, 3.656e-02, 4.089e-02, 4.557e-02, 5.060e-02, 5.599e-02, - 6.173e-02, 6.784e-02, 7.430e-02, 8.113e-02, 8.831e-02, 9.584e-02, - 1.037e-01, 1.119e-01, 1.205e-01, 1.294e-01, 1.385e-01, 1.480e-01, - 1.578e-01, 1.678e-01, 1.780e-01, 1.885e-01, 1.992e-01, 2.101e-01, - 2.211e-01, 2.323e-01, 2.435e-01, 2.549e-01, 2.663e-01, 2.778e-01, - 2.892e-01, 3.006e-01, 3.120e-01, 3.233e-01, 3.345e-01, 3.455e-01, - 3.564e-01, 3.670e-01, 3.774e-01, 3.876e-01, 3.974e-01, 4.070e-01, - 4.162e-01, 4.250e-01, 4.335e-01, 4.415e-01, 4.490e-01, 4.562e-01, - 4.628e-01, 4.689e-01, 4.745e-01, 4.795e-01, 4.840e-01, 4.879e-01, - 4.912e-01, 4.940e-01, 4.961e-01, 4.977e-01, 4.986e-01, 4.989e-01, - 4.438e-03, 4.393e-03, 4.324e-03, 4.232e-03, 4.124e-03, 4.004e-03, - 3.881e-03, 3.762e-03, 3.657e-03, 3.576e-03, 3.529e-03, 3.530e-03, - 3.590e-03, 3.724e-03, 3.944e-03, 4.267e-03, 4.705e-03, 5.276e-03, - 5.994e-03, 6.875e-03, 7.934e-03, 9.186e-03, 1.065e-02, 1.233e-02, - 1.426e-02, 1.643e-02, 1.887e-02, 2.159e-02, 2.460e-02, 2.790e-02, - 3.152e-02, 3.546e-02, 3.973e-02, 4.432e-02, 4.926e-02, 5.454e-02, - 6.017e-02, 6.614e-02, 7.246e-02, 7.913e-02, 8.614e-02, 9.349e-02, - 1.012e-01, 1.092e-01, 1.175e-01, 1.261e-01, 1.350e-01, 1.442e-01, - 1.537e-01, 1.634e-01, 1.733e-01, 1.835e-01, 1.939e-01, 2.044e-01, - 2.151e-01, 2.259e-01, 2.368e-01, 2.477e-01, 2.588e-01, 2.698e-01, - 2.809e-01, 2.919e-01, 3.029e-01, 3.138e-01, 3.245e-01, 3.352e-01, - 3.456e-01, 3.559e-01, 3.659e-01, 3.757e-01, 3.852e-01, 3.944e-01, - 4.033e-01, 4.118e-01, 4.199e-01, 4.276e-01, 4.349e-01, 4.417e-01, - 4.481e-01, 4.540e-01, 4.593e-01, 4.642e-01, 4.685e-01, 4.723e-01, - 4.755e-01, 4.781e-01, 4.802e-01, 4.816e-01, 4.825e-01, 4.828e-01, - 3.533e-03, 3.491e-03, 3.427e-03, 3.343e-03, 3.243e-03, 3.135e-03, - 3.023e-03, 2.918e-03, 2.827e-03, 2.761e-03, 2.730e-03, 2.747e-03, - 2.824e-03, 2.975e-03, 3.212e-03, 3.550e-03, 4.004e-03, 4.588e-03, - 5.318e-03, 6.207e-03, 7.273e-03, 8.528e-03, 9.988e-03, 1.167e-02, - 1.358e-02, 1.574e-02, 1.815e-02, 2.084e-02, 2.381e-02, 2.707e-02, - 3.063e-02, 3.450e-02, 3.869e-02, 4.320e-02, 4.803e-02, 5.320e-02, - 5.870e-02, 6.454e-02, 7.071e-02, 7.722e-02, 8.405e-02, 9.121e-02, - 9.868e-02, 1.065e-01, 1.146e-01, 1.229e-01, 1.316e-01, 1.405e-01, - 1.497e-01, 1.591e-01, 1.688e-01, 1.786e-01, 1.886e-01, 1.988e-01, - 2.092e-01, 2.196e-01, 2.302e-01, 2.408e-01, 2.514e-01, 2.621e-01, - 2.728e-01, 2.835e-01, 2.940e-01, 3.046e-01, 3.149e-01, 3.252e-01, - 3.353e-01, 3.452e-01, 3.549e-01, 3.643e-01, 3.735e-01, 3.823e-01, - 3.909e-01, 3.991e-01, 4.069e-01, 4.143e-01, 4.213e-01, 4.279e-01, - 4.341e-01, 4.397e-01, 4.449e-01, 4.496e-01, 4.537e-01, 4.573e-01, - 4.604e-01, 4.630e-01, 4.650e-01, 4.664e-01, 4.672e-01, 4.675e-01, - 2.885e-03, 2.846e-03, 2.786e-03, 2.706e-03, 2.613e-03, 2.511e-03, - 2.408e-03, 2.311e-03, 2.230e-03, 2.175e-03, 2.155e-03, 2.184e-03, - 2.273e-03, 2.435e-03, 2.684e-03, 3.033e-03, 3.496e-03, 4.089e-03, - 4.825e-03, 5.719e-03, 6.786e-03, 8.039e-03, 9.493e-03, 1.116e-02, - 1.306e-02, 1.520e-02, 1.758e-02, 2.024e-02, 2.316e-02, 2.638e-02, - 2.988e-02, 3.368e-02, 3.779e-02, 4.222e-02, 4.696e-02, 5.202e-02, - 5.740e-02, 6.311e-02, 6.913e-02, 7.548e-02, 8.215e-02, 8.913e-02, - 9.641e-02, 1.040e-01, 1.119e-01, 1.200e-01, 1.284e-01, 1.371e-01, - 1.460e-01, 1.552e-01, 1.646e-01, 1.741e-01, 1.838e-01, 1.937e-01, - 2.037e-01, 2.139e-01, 2.241e-01, 2.344e-01, 2.447e-01, 2.550e-01, - 2.654e-01, 2.757e-01, 2.859e-01, 2.961e-01, 3.061e-01, 3.161e-01, - 3.258e-01, 3.354e-01, 3.447e-01, 3.538e-01, 3.627e-01, 3.712e-01, - 3.795e-01, 3.874e-01, 3.950e-01, 4.021e-01, 4.089e-01, 4.153e-01, - 4.212e-01, 4.266e-01, 4.316e-01, 4.361e-01, 4.401e-01, 4.436e-01, - 4.466e-01, 4.490e-01, 4.510e-01, 4.523e-01, 4.532e-01, 4.534e-01, - 2.406e-03, 2.369e-03, 2.311e-03, 2.235e-03, 2.146e-03, 2.049e-03, - 1.952e-03, 1.863e-03, 1.789e-03, 1.742e-03, 1.732e-03, 1.770e-03, - 1.869e-03, 2.041e-03, 2.300e-03, 2.659e-03, 3.132e-03, 3.734e-03, - 4.477e-03, 5.378e-03, 6.448e-03, 7.703e-03, 9.156e-03, 1.082e-02, - 1.271e-02, 1.483e-02, 1.720e-02, 1.983e-02, 2.273e-02, 2.590e-02, - 2.936e-02, 3.311e-02, 3.716e-02, 4.152e-02, 4.618e-02, 5.116e-02, - 5.645e-02, 6.205e-02, 6.796e-02, 7.419e-02, 8.072e-02, 8.756e-02, - 9.469e-02, 1.021e-01, 1.098e-01, 1.178e-01, 1.260e-01, 1.345e-01, - 1.432e-01, 1.521e-01, 1.613e-01, 1.706e-01, 1.801e-01, 1.897e-01, - 1.994e-01, 2.093e-01, 2.193e-01, 2.293e-01, 2.393e-01, 2.494e-01, - 2.594e-01, 2.695e-01, 2.794e-01, 2.893e-01, 2.991e-01, 3.087e-01, - 3.182e-01, 3.275e-01, 3.365e-01, 3.454e-01, 3.540e-01, 3.623e-01, - 3.703e-01, 3.779e-01, 3.853e-01, 3.922e-01, 3.988e-01, 4.049e-01, - 4.107e-01, 4.159e-01, 4.208e-01, 4.251e-01, 4.290e-01, 4.324e-01, - 4.353e-01, 4.377e-01, 4.395e-01, 4.408e-01, 4.416e-01, 4.419e-01, - 2.041e-03, 2.006e-03, 1.950e-03, 1.877e-03, 1.791e-03, 1.699e-03, - 1.606e-03, 1.522e-03, 1.456e-03, 1.416e-03, 1.414e-03, 1.462e-03, - 1.571e-03, 1.754e-03, 2.024e-03, 2.395e-03, 2.880e-03, 3.492e-03, - 4.247e-03, 5.158e-03, 6.238e-03, 7.500e-03, 8.959e-03, 1.063e-02, - 1.251e-02, 1.463e-02, 1.700e-02, 1.962e-02, 2.250e-02, 2.565e-02, - 2.909e-02, 3.281e-02, 3.683e-02, 4.114e-02, 4.575e-02, 5.067e-02, - 5.590e-02, 6.143e-02, 6.727e-02, 7.341e-02, 7.985e-02, 8.659e-02, - 9.361e-02, 1.009e-01, 1.085e-01, 1.163e-01, 1.244e-01, 1.328e-01, - 1.413e-01, 1.501e-01, 1.590e-01, 1.682e-01, 1.775e-01, 1.869e-01, - 1.965e-01, 2.062e-01, 2.159e-01, 2.257e-01, 2.355e-01, 2.454e-01, - 2.552e-01, 2.650e-01, 2.748e-01, 2.844e-01, 2.940e-01, 3.034e-01, - 3.126e-01, 3.217e-01, 3.305e-01, 3.392e-01, 3.475e-01, 3.556e-01, - 3.634e-01, 3.709e-01, 3.780e-01, 3.848e-01, 3.912e-01, 3.972e-01, - 4.028e-01, 4.079e-01, 4.126e-01, 4.169e-01, 4.206e-01, 4.239e-01, - 4.267e-01, 4.290e-01, 4.308e-01, 4.321e-01, 4.329e-01, 4.332e-01, - 1.758e-03, 1.723e-03, 1.669e-03, 1.598e-03, 1.515e-03, 1.426e-03, - 1.339e-03, 1.260e-03, 1.200e-03, 1.168e-03, 1.175e-03, 1.232e-03, - 1.353e-03, 1.548e-03, 1.831e-03, 2.217e-03, 2.717e-03, 3.345e-03, - 4.116e-03, 5.043e-03, 6.139e-03, 7.417e-03, 8.890e-03, 1.057e-02, - 1.247e-02, 1.460e-02, 1.697e-02, 1.960e-02, 2.248e-02, 2.564e-02, - 2.907e-02, 3.279e-02, 3.679e-02, 4.109e-02, 4.569e-02, 5.058e-02, - 5.578e-02, 6.128e-02, 6.708e-02, 7.318e-02, 7.958e-02, 8.626e-02, - 9.322e-02, 1.005e-01, 1.080e-01, 1.157e-01, 1.238e-01, 1.320e-01, - 1.405e-01, 1.491e-01, 1.580e-01, 1.670e-01, 1.762e-01, 1.855e-01, - 1.950e-01, 2.045e-01, 2.141e-01, 2.238e-01, 2.334e-01, 2.431e-01, - 2.528e-01, 2.624e-01, 2.720e-01, 2.815e-01, 2.909e-01, 3.001e-01, - 3.092e-01, 3.181e-01, 3.268e-01, 3.353e-01, 3.435e-01, 3.514e-01, - 3.590e-01, 3.664e-01, 3.733e-01, 3.800e-01, 3.862e-01, 3.921e-01, - 3.976e-01, 4.026e-01, 4.072e-01, 4.113e-01, 4.150e-01, 4.182e-01, - 4.210e-01, 4.232e-01, 4.250e-01, 4.263e-01, 4.270e-01, 4.273e-01, - 1.533e-03, 1.499e-03, 1.446e-03, 1.377e-03, 1.297e-03, 1.212e-03, - 1.128e-03, 1.055e-03, 1.002e-03, 9.782e-04, 9.950e-04, 1.064e-03, - 1.197e-03, 1.407e-03, 1.707e-03, 2.110e-03, 2.629e-03, 3.278e-03, - 4.071e-03, 5.021e-03, 6.140e-03, 7.442e-03, 8.940e-03, 1.065e-02, - 1.257e-02, 1.473e-02, 1.712e-02, 1.977e-02, 2.268e-02, 2.586e-02, - 2.931e-02, 3.304e-02, 3.707e-02, 4.138e-02, 4.599e-02, 5.090e-02, - 5.611e-02, 6.162e-02, 6.743e-02, 7.353e-02, 7.992e-02, 8.660e-02, - 9.356e-02, 1.008e-01, 1.083e-01, 1.160e-01, 1.240e-01, 1.322e-01, - 1.407e-01, 1.493e-01, 1.581e-01, 1.671e-01, 1.762e-01, 1.855e-01, - 1.949e-01, 2.043e-01, 2.139e-01, 2.234e-01, 2.330e-01, 2.427e-01, - 2.522e-01, 2.618e-01, 2.713e-01, 2.806e-01, 2.899e-01, 2.990e-01, - 3.080e-01, 3.168e-01, 3.254e-01, 3.337e-01, 3.418e-01, 3.497e-01, - 3.572e-01, 3.644e-01, 3.713e-01, 3.778e-01, 3.840e-01, 3.898e-01, - 3.951e-01, 4.001e-01, 4.046e-01, 4.087e-01, 4.123e-01, 4.155e-01, - 4.182e-01, 4.204e-01, 4.221e-01, 4.234e-01, 4.241e-01, 4.243e-01, - 1.352e-03, 1.319e-03, 1.267e-03, 1.200e-03, 1.122e-03, 1.040e-03, - 9.616e-04, 8.947e-04, 8.487e-04, 8.342e-04, 8.620e-04, 9.439e-04, - 1.092e-03, 1.319e-03, 1.639e-03, 2.063e-03, 2.607e-03, 3.282e-03, - 4.103e-03, 5.082e-03, 6.234e-03, 7.570e-03, 9.103e-03, 1.085e-02, - 1.281e-02, 1.501e-02, 1.744e-02, 2.013e-02, 2.309e-02, 2.631e-02, - 2.981e-02, 3.359e-02, 3.766e-02, 4.202e-02, 4.668e-02, 5.164e-02, - 5.690e-02, 6.245e-02, 6.831e-02, 7.446e-02, 8.090e-02, 8.762e-02, - 9.463e-02, 1.019e-01, 1.094e-01, 1.172e-01, 1.252e-01, 1.335e-01, - 1.420e-01, 1.506e-01, 1.595e-01, 1.685e-01, 1.776e-01, 1.869e-01, - 1.963e-01, 2.057e-01, 2.153e-01, 2.248e-01, 2.344e-01, 2.440e-01, - 2.536e-01, 2.631e-01, 2.725e-01, 2.819e-01, 2.911e-01, 3.002e-01, - 3.092e-01, 3.179e-01, 3.264e-01, 3.347e-01, 3.428e-01, 3.505e-01, - 3.580e-01, 3.652e-01, 3.720e-01, 3.785e-01, 3.846e-01, 3.903e-01, - 3.957e-01, 4.006e-01, 4.051e-01, 4.091e-01, 4.127e-01, 4.158e-01, - 4.185e-01, 4.207e-01, 4.224e-01, 4.236e-01, 4.244e-01, 4.246e-01, - 1.203e-03, 1.171e-03, 1.120e-03, 1.055e-03, 9.802e-04, 9.022e-04, - 8.287e-04, 7.683e-04, 7.307e-04, 7.265e-04, 7.669e-04, 8.638e-04, - 1.030e-03, 1.277e-03, 1.620e-03, 2.070e-03, 2.642e-03, 3.349e-03, - 4.205e-03, 5.222e-03, 6.414e-03, 7.794e-03, 9.373e-03, 1.117e-02, - 1.318e-02, 1.543e-02, 1.793e-02, 2.068e-02, 2.370e-02, 2.699e-02, - 3.056e-02, 3.442e-02, 3.856e-02, 4.301e-02, 4.775e-02, 5.280e-02, - 5.815e-02, 6.380e-02, 6.975e-02, 7.599e-02, 8.253e-02, 8.935e-02, - 9.646e-02, 1.038e-01, 1.115e-01, 1.194e-01, 1.275e-01, 1.358e-01, - 1.444e-01, 1.531e-01, 1.621e-01, 1.712e-01, 1.804e-01, 1.898e-01, - 1.992e-01, 2.088e-01, 2.184e-01, 2.280e-01, 2.377e-01, 2.473e-01, - 2.570e-01, 2.665e-01, 2.760e-01, 2.854e-01, 2.947e-01, 3.038e-01, - 3.128e-01, 3.216e-01, 3.301e-01, 3.385e-01, 3.465e-01, 3.543e-01, - 3.618e-01, 3.690e-01, 3.758e-01, 3.823e-01, 3.884e-01, 3.941e-01, - 3.995e-01, 4.044e-01, 4.089e-01, 4.129e-01, 4.165e-01, 4.196e-01, - 4.223e-01, 4.245e-01, 4.262e-01, 4.274e-01, 4.281e-01, 4.284e-01, - 1.080e-03, 1.049e-03, 9.996e-04, 9.362e-04, 8.642e-04, 7.903e-04, - 7.223e-04, 6.692e-04, 6.409e-04, 6.484e-04, 7.030e-04, 8.170e-04, - 1.003e-03, 1.274e-03, 1.643e-03, 2.123e-03, 2.729e-03, 3.474e-03, - 4.371e-03, 5.433e-03, 6.675e-03, 8.108e-03, 9.746e-03, 1.160e-02, - 1.368e-02, 1.601e-02, 1.858e-02, 2.142e-02, 2.452e-02, 2.791e-02, - 3.157e-02, 3.554e-02, 3.980e-02, 4.436e-02, 4.922e-02, 5.439e-02, - 5.988e-02, 6.566e-02, 7.175e-02, 7.815e-02, 8.484e-02, 9.182e-02, - 9.908e-02, 1.066e-01, 1.144e-01, 1.225e-01, 1.308e-01, 1.393e-01, - 1.480e-01, 1.569e-01, 1.661e-01, 1.753e-01, 1.847e-01, 1.943e-01, - 2.039e-01, 2.136e-01, 2.234e-01, 2.332e-01, 2.430e-01, 2.528e-01, - 2.626e-01, 2.723e-01, 2.819e-01, 2.915e-01, 3.009e-01, 3.102e-01, - 3.192e-01, 3.281e-01, 3.368e-01, 3.452e-01, 3.534e-01, 3.613e-01, - 3.689e-01, 3.761e-01, 3.830e-01, 3.896e-01, 3.958e-01, 4.016e-01, - 4.070e-01, 4.119e-01, 4.165e-01, 4.205e-01, 4.242e-01, 4.273e-01, - 4.300e-01, 4.323e-01, 4.340e-01, 4.352e-01, 4.360e-01, 4.362e-01, - 9.775e-04, 9.467e-04, 8.988e-04, 8.375e-04, 7.687e-04, 6.992e-04, - 6.373e-04, 5.923e-04, 5.744e-04, 5.948e-04, 6.654e-04, 7.985e-04, - 1.007e-03, 1.304e-03, 1.703e-03, 2.219e-03, 2.863e-03, 3.651e-03, - 4.596e-03, 5.711e-03, 7.011e-03, 8.509e-03, 1.022e-02, 1.215e-02, - 1.431e-02, 1.673e-02, 1.940e-02, 2.234e-02, 2.555e-02, 2.906e-02, - 3.285e-02, 3.695e-02, 4.135e-02, 4.607e-02, 5.109e-02, 5.644e-02, - 6.210e-02, 6.807e-02, 7.435e-02, 8.095e-02, 8.785e-02, 9.505e-02, - 1.025e-01, 1.103e-01, 1.183e-01, 1.266e-01, 1.352e-01, 1.439e-01, - 1.529e-01, 1.621e-01, 1.715e-01, 1.810e-01, 1.907e-01, 2.005e-01, - 2.104e-01, 2.204e-01, 2.304e-01, 2.405e-01, 2.506e-01, 2.606e-01, - 2.707e-01, 2.807e-01, 2.905e-01, 3.003e-01, 3.100e-01, 3.195e-01, - 3.288e-01, 3.379e-01, 3.468e-01, 3.555e-01, 3.638e-01, 3.719e-01, - 3.797e-01, 3.871e-01, 3.942e-01, 4.009e-01, 4.073e-01, 4.132e-01, - 4.187e-01, 4.238e-01, 4.284e-01, 4.326e-01, 4.363e-01, 4.396e-01, - 4.423e-01, 4.446e-01, 4.464e-01, 4.476e-01, 4.484e-01, 4.486e-01, - 8.906e-04, 8.605e-04, 8.140e-04, 7.550e-04, 6.896e-04, 6.249e-04, - 5.697e-04, 5.335e-04, 5.270e-04, 5.617e-04, 6.499e-04, 8.042e-04, - 1.038e-03, 1.364e-03, 1.797e-03, 2.351e-03, 3.039e-03, 3.876e-03, - 4.876e-03, 6.053e-03, 7.420e-03, 8.992e-03, 1.078e-02, 1.280e-02, - 1.507e-02, 1.759e-02, 2.038e-02, 2.344e-02, 2.679e-02, 3.044e-02, - 3.440e-02, 3.866e-02, 4.325e-02, 4.815e-02, 5.338e-02, 5.894e-02, - 6.483e-02, 7.104e-02, 7.757e-02, 8.443e-02, 9.160e-02, 9.908e-02, - 1.069e-01, 1.149e-01, 1.233e-01, 1.319e-01, 1.408e-01, 1.499e-01, - 1.592e-01, 1.688e-01, 1.785e-01, 1.884e-01, 1.984e-01, 2.086e-01, - 2.189e-01, 2.293e-01, 2.397e-01, 2.501e-01, 2.606e-01, 2.711e-01, - 2.815e-01, 2.919e-01, 3.021e-01, 3.123e-01, 3.223e-01, 3.322e-01, - 3.419e-01, 3.513e-01, 3.606e-01, 3.696e-01, 3.782e-01, 3.866e-01, - 3.947e-01, 4.024e-01, 4.098e-01, 4.168e-01, 4.233e-01, 4.295e-01, - 4.352e-01, 4.405e-01, 4.453e-01, 4.497e-01, 4.535e-01, 4.569e-01, - 4.598e-01, 4.621e-01, 4.640e-01, 4.653e-01, 4.661e-01, 4.663e-01, - 8.164e-04, 7.872e-04, 7.421e-04, 6.855e-04, 6.237e-04, 5.643e-04, - 5.163e-04, 4.896e-04, 4.955e-04, 5.459e-04, 6.532e-04, 8.307e-04, - 1.092e-03, 1.450e-03, 1.921e-03, 2.517e-03, 3.254e-03, 4.146e-03, - 5.207e-03, 6.453e-03, 7.897e-03, 9.555e-03, 1.144e-02, 1.356e-02, - 1.594e-02, 1.859e-02, 2.151e-02, 2.473e-02, 2.825e-02, 3.207e-02, - 3.622e-02, 4.068e-02, 4.549e-02, 5.062e-02, 5.610e-02, 6.192e-02, - 6.809e-02, 7.459e-02, 8.144e-02, 8.862e-02, 9.613e-02, 1.040e-01, - 1.121e-01, 1.206e-01, 1.293e-01, 1.384e-01, 1.476e-01, 1.572e-01, - 1.670e-01, 1.770e-01, 1.872e-01, 1.976e-01, 2.081e-01, 2.188e-01, - 2.296e-01, 2.405e-01, 2.514e-01, 2.624e-01, 2.734e-01, 2.844e-01, - 2.953e-01, 3.062e-01, 3.170e-01, 3.277e-01, 3.383e-01, 3.486e-01, - 3.588e-01, 3.688e-01, 3.785e-01, 3.879e-01, 3.971e-01, 4.059e-01, - 4.144e-01, 4.225e-01, 4.303e-01, 4.376e-01, 4.446e-01, 4.510e-01, - 4.571e-01, 4.626e-01, 4.677e-01, 4.723e-01, 4.763e-01, 4.799e-01, - 4.829e-01, 4.854e-01, 4.873e-01, 4.887e-01, 4.895e-01, 4.898e-01, - 7.526e-04, 7.243e-04, 6.807e-04, 6.267e-04, 5.688e-04, 5.150e-04, - 4.746e-04, 4.583e-04, 4.775e-04, 5.446e-04, 6.726e-04, 8.751e-04, - 1.166e-03, 1.559e-03, 2.070e-03, 2.713e-03, 3.504e-03, 4.456e-03, - 5.586e-03, 6.909e-03, 8.440e-03, 1.019e-02, 1.219e-02, 1.443e-02, - 1.694e-02, 1.973e-02, 2.282e-02, 2.621e-02, 2.991e-02, 3.394e-02, - 3.831e-02, 4.302e-02, 4.808e-02, 5.349e-02, 5.927e-02, 6.540e-02, - 7.190e-02, 7.876e-02, 8.597e-02, 9.355e-02, 1.015e-01, 1.097e-01, - 1.183e-01, 1.273e-01, 1.365e-01, 1.460e-01, 1.559e-01, 1.660e-01, - 1.763e-01, 1.869e-01, 1.977e-01, 2.087e-01, 2.199e-01, 2.312e-01, - 2.426e-01, 2.541e-01, 2.658e-01, 2.774e-01, 2.891e-01, 3.008e-01, - 3.124e-01, 3.240e-01, 3.354e-01, 3.468e-01, 3.580e-01, 3.691e-01, - 3.799e-01, 3.905e-01, 4.008e-01, 4.109e-01, 4.206e-01, 4.300e-01, - 4.391e-01, 4.478e-01, 4.560e-01, 4.638e-01, 4.712e-01, 4.781e-01, - 4.846e-01, 4.905e-01, 4.959e-01, 5.008e-01, 5.051e-01, 5.089e-01, - 5.121e-01, 5.147e-01, 5.168e-01, 5.183e-01, 5.192e-01, 5.195e-01, - 6.975e-04, 6.699e-04, 6.280e-04, 5.767e-04, 5.228e-04, 4.749e-04, - 4.427e-04, 4.373e-04, 4.707e-04, 5.557e-04, 7.058e-04, 9.351e-04, - 1.258e-03, 1.689e-03, 2.244e-03, 2.938e-03, 3.787e-03, 4.806e-03, - 6.012e-03, 7.420e-03, 9.048e-03, 1.091e-02, 1.302e-02, 1.540e-02, - 1.806e-02, 2.102e-02, 2.429e-02, 2.787e-02, 3.180e-02, 3.606e-02, - 4.069e-02, 4.568e-02, 5.103e-02, 5.677e-02, 6.289e-02, 6.939e-02, - 7.627e-02, 8.355e-02, 9.120e-02, 9.924e-02, 1.076e-01, 1.164e-01, - 1.256e-01, 1.351e-01, 1.449e-01, 1.550e-01, 1.655e-01, 1.762e-01, - 1.873e-01, 1.986e-01, 2.101e-01, 2.218e-01, 2.337e-01, 2.458e-01, - 2.581e-01, 2.704e-01, 2.828e-01, 2.953e-01, 3.078e-01, 3.203e-01, - 3.328e-01, 3.452e-01, 3.575e-01, 3.697e-01, 3.818e-01, 3.936e-01, - 4.053e-01, 4.167e-01, 4.278e-01, 4.386e-01, 4.491e-01, 4.592e-01, - 4.689e-01, 4.783e-01, 4.872e-01, 4.956e-01, 5.035e-01, 5.110e-01, - 5.179e-01, 5.243e-01, 5.301e-01, 5.354e-01, 5.400e-01, 5.441e-01, - 5.476e-01, 5.504e-01, 5.526e-01, 5.542e-01, 5.552e-01, 5.555e-01, - 6.494e-04, 6.228e-04, 5.825e-04, 5.339e-04, 4.843e-04, 4.425e-04, - 4.189e-04, 4.251e-04, 4.735e-04, 5.775e-04, 7.511e-04, 1.009e-03, - 1.366e-03, 1.838e-03, 2.440e-03, 3.189e-03, 4.101e-03, 5.193e-03, - 6.483e-03, 7.986e-03, 9.720e-03, 1.170e-02, 1.395e-02, 1.648e-02, - 1.931e-02, 2.245e-02, 2.592e-02, 2.974e-02, 3.391e-02, 3.844e-02, - 4.336e-02, 4.866e-02, 5.436e-02, 6.047e-02, 6.698e-02, 7.390e-02, - 8.123e-02, 8.898e-02, 9.715e-02, 1.057e-01, 1.147e-01, 1.241e-01, - 1.338e-01, 1.440e-01, 1.545e-01, 1.653e-01, 1.765e-01, 1.881e-01, - 1.999e-01, 2.120e-01, 2.244e-01, 2.370e-01, 2.498e-01, 2.628e-01, - 2.760e-01, 2.892e-01, 3.026e-01, 3.161e-01, 3.296e-01, 3.431e-01, - 3.566e-01, 3.700e-01, 3.833e-01, 3.965e-01, 4.095e-01, 4.223e-01, - 4.349e-01, 4.473e-01, 4.593e-01, 4.710e-01, 4.824e-01, 4.933e-01, - 5.039e-01, 5.140e-01, 5.236e-01, 5.328e-01, 5.414e-01, 5.495e-01, - 5.570e-01, 5.639e-01, 5.702e-01, 5.759e-01, 5.810e-01, 5.854e-01, - 5.892e-01, 5.922e-01, 5.947e-01, 5.964e-01, 5.974e-01, 5.978e-01, - 6.073e-04, 5.815e-04, 5.430e-04, 4.972e-04, 4.520e-04, 4.166e-04, - 4.020e-04, 4.203e-04, 4.845e-04, 6.086e-04, 8.072e-04, 1.095e-03, - 1.489e-03, 2.004e-03, 2.657e-03, 3.466e-03, 4.447e-03, 5.619e-03, - 6.999e-03, 8.606e-03, 1.046e-02, 1.258e-02, 1.497e-02, 1.767e-02, - 2.069e-02, 2.404e-02, 2.774e-02, 3.180e-02, 3.625e-02, 4.109e-02, - 4.633e-02, 5.199e-02, 5.808e-02, 6.460e-02, 7.155e-02, 7.895e-02, - 8.679e-02, 9.508e-02, 1.038e-01, 1.130e-01, 1.226e-01, 1.327e-01, - 1.431e-01, 1.540e-01, 1.653e-01, 1.770e-01, 1.890e-01, 2.014e-01, - 2.142e-01, 2.272e-01, 2.406e-01, 2.542e-01, 2.680e-01, 2.821e-01, - 2.963e-01, 3.107e-01, 3.252e-01, 3.397e-01, 3.544e-01, 3.690e-01, - 3.836e-01, 3.982e-01, 4.126e-01, 4.269e-01, 4.411e-01, 4.550e-01, - 4.687e-01, 4.821e-01, 4.952e-01, 5.079e-01, 5.203e-01, 5.322e-01, - 5.437e-01, 5.547e-01, 5.652e-01, 5.751e-01, 5.845e-01, 5.933e-01, - 6.014e-01, 6.090e-01, 6.158e-01, 6.220e-01, 6.276e-01, 6.324e-01, - 6.365e-01, 6.398e-01, 6.424e-01, 6.443e-01, 6.454e-01, 6.458e-01, - 5.702e-04, 5.453e-04, 5.085e-04, 4.656e-04, 4.249e-04, 3.963e-04, - 3.911e-04, 4.220e-04, 5.029e-04, 6.481e-04, 8.730e-04, 1.193e-03, - 1.626e-03, 2.187e-03, 2.895e-03, 3.768e-03, 4.824e-03, 6.082e-03, - 7.562e-03, 9.283e-03, 1.127e-02, 1.353e-02, 1.609e-02, 1.898e-02, - 2.220e-02, 2.578e-02, 2.974e-02, 3.408e-02, 3.884e-02, 4.401e-02, - 4.962e-02, 5.568e-02, 6.219e-02, 6.917e-02, 7.662e-02, 8.455e-02, - 9.296e-02, 1.019e-01, 1.112e-01, 1.211e-01, 1.314e-01, 1.422e-01, - 1.535e-01, 1.652e-01, 1.774e-01, 1.900e-01, 2.029e-01, 2.163e-01, - 2.301e-01, 2.442e-01, 2.586e-01, 2.733e-01, 2.883e-01, 3.035e-01, - 3.190e-01, 3.345e-01, 3.503e-01, 3.661e-01, 3.820e-01, 3.978e-01, - 4.137e-01, 4.295e-01, 4.452e-01, 4.608e-01, 4.762e-01, 4.914e-01, - 5.062e-01, 5.208e-01, 5.351e-01, 5.489e-01, 5.624e-01, 5.754e-01, - 5.878e-01, 5.998e-01, 6.112e-01, 6.220e-01, 6.322e-01, 6.418e-01, - 6.507e-01, 6.589e-01, 6.664e-01, 6.731e-01, 6.791e-01, 6.843e-01, - 6.888e-01, 6.924e-01, 6.953e-01, 6.973e-01, 6.986e-01, 6.990e-01, - 5.374e-04, 5.134e-04, 4.783e-04, 4.384e-04, 4.023e-04, 3.806e-04, - 3.852e-04, 4.295e-04, 5.277e-04, 6.953e-04, 9.480e-04, 1.303e-03, - 1.777e-03, 2.388e-03, 3.154e-03, 4.096e-03, 5.233e-03, 6.585e-03, - 8.174e-03, 1.002e-02, 1.214e-02, 1.457e-02, 1.731e-02, 2.040e-02, - 2.385e-02, 2.769e-02, 3.193e-02, 3.658e-02, 4.168e-02, 4.722e-02, - 5.323e-02, 5.973e-02, 6.671e-02, 7.420e-02, 8.220e-02, 9.071e-02, - 9.975e-02, 1.093e-01, 1.194e-01, 1.300e-01, 1.411e-01, 1.528e-01, - 1.649e-01, 1.775e-01, 1.906e-01, 2.042e-01, 2.183e-01, 2.327e-01, - 2.476e-01, 2.628e-01, 2.784e-01, 2.944e-01, 3.106e-01, 3.271e-01, - 3.438e-01, 3.607e-01, 3.778e-01, 3.949e-01, 4.122e-01, 4.294e-01, - 4.466e-01, 4.638e-01, 4.809e-01, 4.978e-01, 5.145e-01, 5.309e-01, - 5.471e-01, 5.630e-01, 5.784e-01, 5.935e-01, 6.081e-01, 6.222e-01, - 6.357e-01, 6.487e-01, 6.611e-01, 6.729e-01, 6.839e-01, 6.943e-01, - 7.040e-01, 7.128e-01, 7.210e-01, 7.283e-01, 7.348e-01, 7.404e-01, - 7.453e-01, 7.492e-01, 7.523e-01, 7.545e-01, 7.559e-01, 7.563e-01, - 5.082e-04, 4.851e-04, 4.517e-04, 4.149e-04, 3.836e-04, 3.691e-04, - 3.838e-04, 4.420e-04, 5.585e-04, 7.495e-04, 1.032e-03, 1.423e-03, - 1.941e-03, 2.605e-03, 3.435e-03, 4.451e-03, 5.675e-03, 7.130e-03, - 8.836e-03, 1.082e-02, 1.310e-02, 1.570e-02, 1.864e-02, 2.196e-02, - 2.566e-02, 2.977e-02, 3.432e-02, 3.931e-02, 4.478e-02, 5.073e-02, - 5.718e-02, 6.416e-02, 7.166e-02, 7.970e-02, 8.830e-02, 9.745e-02, - 1.072e-01, 1.175e-01, 1.283e-01, 1.397e-01, 1.517e-01, 1.642e-01, - 1.773e-01, 1.910e-01, 2.051e-01, 2.198e-01, 2.349e-01, 2.506e-01, - 2.666e-01, 2.831e-01, 3.000e-01, 3.172e-01, 3.348e-01, 3.526e-01, - 3.707e-01, 3.890e-01, 4.075e-01, 4.260e-01, 4.447e-01, 4.634e-01, - 4.820e-01, 5.006e-01, 5.191e-01, 5.374e-01, 5.555e-01, 5.733e-01, - 5.908e-01, 6.080e-01, 6.247e-01, 6.410e-01, 6.568e-01, 6.720e-01, - 6.867e-01, 7.007e-01, 7.141e-01, 7.268e-01, 7.388e-01, 7.500e-01, - 7.604e-01, 7.700e-01, 7.787e-01, 7.866e-01, 7.937e-01, 7.998e-01, - 8.050e-01, 8.092e-01, 8.126e-01, 8.150e-01, 8.164e-01, 8.169e-01, - 4.822e-04, 4.600e-04, 4.284e-04, 3.946e-04, 3.683e-04, 3.611e-04, - 3.865e-04, 4.592e-04, 5.949e-04, 8.105e-04, 1.124e-03, 1.553e-03, - 2.118e-03, 2.839e-03, 3.736e-03, 4.833e-03, 6.152e-03, 7.716e-03, - 9.551e-03, 1.168e-02, 1.413e-02, 1.692e-02, 2.008e-02, 2.364e-02, - 2.762e-02, 3.203e-02, 3.691e-02, 4.228e-02, 4.815e-02, 5.455e-02, - 6.148e-02, 6.898e-02, 7.704e-02, 8.569e-02, 9.494e-02, 1.048e-01, - 1.152e-01, 1.263e-01, 1.380e-01, 1.503e-01, 1.632e-01, 1.767e-01, - 1.908e-01, 2.055e-01, 2.208e-01, 2.366e-01, 2.529e-01, 2.698e-01, - 2.871e-01, 3.049e-01, 3.231e-01, 3.418e-01, 3.607e-01, 3.800e-01, - 3.995e-01, 4.192e-01, 4.392e-01, 4.592e-01, 4.794e-01, 4.995e-01, - 5.196e-01, 5.397e-01, 5.596e-01, 5.794e-01, 5.989e-01, 6.181e-01, - 6.369e-01, 6.554e-01, 6.734e-01, 6.909e-01, 7.079e-01, 7.243e-01, - 7.401e-01, 7.551e-01, 7.695e-01, 7.831e-01, 7.960e-01, 8.080e-01, - 8.192e-01, 8.295e-01, 8.389e-01, 8.473e-01, 8.548e-01, 8.614e-01, - 8.670e-01, 8.715e-01, 8.751e-01, 8.777e-01, 8.792e-01, 8.797e-01, - 4.588e-04, 4.375e-04, 4.077e-04, 3.771e-04, 3.559e-04, 3.565e-04, - 3.929e-04, 4.807e-04, 6.365e-04, 8.780e-04, 1.224e-03, 1.694e-03, - 2.309e-03, 3.090e-03, 4.060e-03, 5.243e-03, 6.663e-03, 8.347e-03, - 1.032e-02, 1.261e-02, 1.524e-02, 1.824e-02, 2.164e-02, 2.547e-02, - 2.974e-02, 3.449e-02, 3.973e-02, 4.550e-02, 5.181e-02, 5.869e-02, - 6.615e-02, 7.421e-02, 8.289e-02, 9.219e-02, 1.021e-01, 1.127e-01, - 1.240e-01, 1.359e-01, 1.485e-01, 1.617e-01, 1.756e-01, 1.902e-01, - 2.054e-01, 2.212e-01, 2.376e-01, 2.547e-01, 2.723e-01, 2.904e-01, - 3.091e-01, 3.283e-01, 3.479e-01, 3.679e-01, 3.883e-01, 4.090e-01, - 4.301e-01, 4.513e-01, 4.727e-01, 4.943e-01, 5.159e-01, 5.376e-01, - 5.592e-01, 5.807e-01, 6.021e-01, 6.232e-01, 6.441e-01, 6.647e-01, - 6.849e-01, 7.047e-01, 7.239e-01, 7.427e-01, 7.608e-01, 7.783e-01, - 7.952e-01, 8.113e-01, 8.266e-01, 8.411e-01, 8.548e-01, 8.676e-01, - 8.795e-01, 8.905e-01, 9.005e-01, 9.095e-01, 9.175e-01, 9.244e-01, - 9.304e-01, 9.352e-01, 9.390e-01, 9.417e-01, 9.434e-01, 9.439e-01, - 4.379e-04, 4.174e-04, 3.895e-04, 3.621e-04, 3.462e-04, 3.548e-04, - 4.027e-04, 5.062e-04, 6.830e-04, 9.517e-04, 1.332e-03, 1.845e-03, - 2.512e-03, 3.358e-03, 4.406e-03, 5.681e-03, 7.211e-03, 9.024e-03, - 1.115e-02, 1.361e-02, 1.644e-02, 1.967e-02, 2.333e-02, 2.744e-02, - 3.203e-02, 3.714e-02, 4.278e-02, 4.899e-02, 5.578e-02, 6.318e-02, - 7.120e-02, 7.988e-02, 8.921e-02, 9.923e-02, 1.099e-01, 1.213e-01, - 1.334e-01, 1.463e-01, 1.598e-01, 1.741e-01, 1.890e-01, 2.047e-01, - 2.210e-01, 2.380e-01, 2.557e-01, 2.740e-01, 2.930e-01, 3.125e-01, - 3.326e-01, 3.531e-01, 3.742e-01, 3.957e-01, 4.176e-01, 4.398e-01, - 4.623e-01, 4.851e-01, 5.080e-01, 5.311e-01, 5.542e-01, 5.773e-01, - 6.004e-01, 6.234e-01, 6.462e-01, 6.688e-01, 6.910e-01, 7.129e-01, - 7.344e-01, 7.554e-01, 7.759e-01, 7.958e-01, 8.151e-01, 8.337e-01, - 8.515e-01, 8.686e-01, 8.848e-01, 9.002e-01, 9.147e-01, 9.282e-01, - 9.408e-01, 9.524e-01, 9.629e-01, 9.724e-01, 9.809e-01, 9.882e-01, - 9.945e-01, 9.996e-01, 1.004e+00, 1.006e+00, 1.008e+00, 1.009e+00, - 4.190e-04, 3.994e-04, 3.733e-04, 3.492e-04, 3.388e-04, 3.557e-04, - 4.157e-04, 5.360e-04, 7.351e-04, 1.033e-03, 1.450e-03, 2.010e-03, - 2.735e-03, 3.650e-03, 4.783e-03, 6.160e-03, 7.810e-03, 9.764e-03, - 1.205e-02, 1.470e-02, 1.775e-02, 2.123e-02, 2.517e-02, 2.960e-02, - 3.454e-02, 4.004e-02, 4.612e-02, 5.280e-02, 6.011e-02, 6.807e-02, - 7.671e-02, 8.604e-02, 9.609e-02, 1.069e-01, 1.184e-01, 1.307e-01, - 1.437e-01, 1.575e-01, 1.720e-01, 1.873e-01, 2.034e-01, 2.202e-01, - 2.378e-01, 2.561e-01, 2.751e-01, 2.947e-01, 3.150e-01, 3.359e-01, - 3.574e-01, 3.795e-01, 4.020e-01, 4.250e-01, 4.484e-01, 4.721e-01, - 4.962e-01, 5.205e-01, 5.449e-01, 5.695e-01, 5.941e-01, 6.187e-01, - 6.433e-01, 6.677e-01, 6.919e-01, 7.158e-01, 7.394e-01, 7.626e-01, - 7.854e-01, 8.076e-01, 8.292e-01, 8.502e-01, 8.706e-01, 8.902e-01, - 9.090e-01, 9.270e-01, 9.441e-01, 9.602e-01, 9.755e-01, 9.897e-01, - 1.003e+00, 1.015e+00, 1.026e+00, 1.036e+00, 1.045e+00, 1.053e+00, - 1.059e+00, 1.065e+00, 1.069e+00, 1.072e+00, 1.074e+00, 1.074e+00, - 4.018e-04, 3.829e-04, 3.584e-04, 3.375e-04, 3.327e-04, 3.587e-04, - 4.322e-04, 5.718e-04, 7.971e-04, 1.129e-03, 1.591e-03, 2.206e-03, - 3.001e-03, 4.000e-03, 5.234e-03, 6.732e-03, 8.525e-03, 1.064e-02, - 1.312e-02, 1.600e-02, 1.930e-02, 2.306e-02, 2.731e-02, 3.209e-02, - 3.743e-02, 4.336e-02, 4.991e-02, 5.711e-02, 6.498e-02, 7.355e-02, - 8.285e-02, 9.289e-02, 1.037e-01, 1.153e-01, 1.276e-01, 1.408e-01, - 1.548e-01, 1.696e-01, 1.852e-01, 2.016e-01, 2.189e-01, 2.369e-01, - 2.557e-01, 2.753e-01, 2.956e-01, 3.166e-01, 3.383e-01, 3.606e-01, - 3.836e-01, 4.071e-01, 4.312e-01, 4.557e-01, 4.806e-01, 5.059e-01, - 5.315e-01, 5.573e-01, 5.833e-01, 6.094e-01, 6.356e-01, 6.617e-01, - 6.878e-01, 7.136e-01, 7.393e-01, 7.646e-01, 7.896e-01, 8.141e-01, - 8.382e-01, 8.617e-01, 8.845e-01, 9.067e-01, 9.282e-01, 9.488e-01, - 9.686e-01, 9.876e-01, 1.006e+00, 1.023e+00, 1.039e+00, 1.054e+00, - 1.067e+00, 1.080e+00, 1.092e+00, 1.102e+00, 1.112e+00, 1.120e+00, - 1.127e+00, 1.132e+00, 1.137e+00, 1.140e+00, 1.142e+00, 1.142e+00, - 3.861e-04, 3.679e-04, 3.450e-04, 3.275e-04, 3.285e-04, 3.641e-04, - 4.521e-04, 6.123e-04, 8.659e-04, 1.236e-03, 1.746e-03, 2.422e-03, - 3.291e-03, 4.383e-03, 5.728e-03, 7.358e-03, 9.307e-03, 1.161e-02, - 1.430e-02, 1.741e-02, 2.098e-02, 2.505e-02, 2.965e-02, 3.482e-02, - 4.058e-02, 4.698e-02, 5.404e-02, 6.179e-02, 7.026e-02, 7.949e-02, - 8.948e-02, 1.003e-01, 1.119e-01, 1.243e-01, 1.376e-01, 1.517e-01, - 1.667e-01, 1.826e-01, 1.993e-01, 2.169e-01, 2.353e-01, 2.546e-01, - 2.747e-01, 2.956e-01, 3.173e-01, 3.397e-01, 3.629e-01, 3.867e-01, - 4.112e-01, 4.362e-01, 4.618e-01, 4.879e-01, 5.144e-01, 5.412e-01, - 5.684e-01, 5.958e-01, 6.233e-01, 6.510e-01, 6.786e-01, 7.063e-01, - 7.338e-01, 7.611e-01, 7.882e-01, 8.149e-01, 8.412e-01, 8.671e-01, - 8.924e-01, 9.171e-01, 9.411e-01, 9.644e-01, 9.870e-01, 1.009e+00, - 1.029e+00, 1.049e+00, 1.068e+00, 1.086e+00, 1.103e+00, 1.119e+00, - 1.133e+00, 1.146e+00, 1.159e+00, 1.170e+00, 1.179e+00, 1.188e+00, - 1.195e+00, 1.201e+00, 1.205e+00, 1.209e+00, 1.211e+00, 1.211e+00, - 3.719e-04, 3.543e-04, 3.330e-04, 3.188e-04, 3.260e-04, 3.718e-04, - 4.754e-04, 6.579e-04, 9.422e-04, 1.353e-03, 1.915e-03, 2.658e-03, - 3.610e-03, 4.803e-03, 6.270e-03, 8.045e-03, 1.016e-02, 1.267e-02, - 1.558e-02, 1.896e-02, 2.283e-02, 2.724e-02, 3.221e-02, 3.779e-02, - 4.401e-02, 5.091e-02, 5.852e-02, 6.687e-02, 7.600e-02, 8.592e-02, - 9.666e-02, 1.083e-01, 1.207e-01, 1.340e-01, 1.483e-01, 1.634e-01, - 1.795e-01, 1.965e-01, 2.144e-01, 2.332e-01, 2.529e-01, 2.735e-01, - 2.949e-01, 3.172e-01, 3.403e-01, 3.642e-01, 3.889e-01, 4.142e-01, - 4.402e-01, 4.668e-01, 4.940e-01, 5.216e-01, 5.497e-01, 5.781e-01, - 6.068e-01, 6.358e-01, 6.649e-01, 6.940e-01, 7.232e-01, 7.523e-01, - 7.813e-01, 8.100e-01, 8.385e-01, 8.666e-01, 8.942e-01, 9.214e-01, - 9.479e-01, 9.738e-01, 9.990e-01, 1.023e+00, 1.047e+00, 1.070e+00, - 1.091e+00, 1.112e+00, 1.132e+00, 1.151e+00, 1.168e+00, 1.184e+00, - 1.200e+00, 1.214e+00, 1.226e+00, 1.238e+00, 1.248e+00, 1.257e+00, - 1.264e+00, 1.270e+00, 1.275e+00, 1.278e+00, 1.281e+00, 1.281e+00, - 3.589e-04, 3.418e-04, 3.220e-04, 3.113e-04, 3.251e-04, 3.818e-04, - 5.021e-04, 7.089e-04, 1.027e-03, 1.482e-03, 2.103e-03, 2.919e-03, - 3.962e-03, 5.267e-03, 6.869e-03, 8.804e-03, 1.111e-02, 1.383e-02, - 1.700e-02, 2.067e-02, 2.486e-02, 2.963e-02, 3.501e-02, 4.105e-02, - 4.777e-02, 5.521e-02, 6.341e-02, 7.241e-02, 8.223e-02, 9.290e-02, - 1.044e-01, 1.169e-01, 1.303e-01, 1.446e-01, 1.598e-01, 1.760e-01, - 1.932e-01, 2.114e-01, 2.305e-01, 2.506e-01, 2.716e-01, 2.936e-01, - 3.164e-01, 3.402e-01, 3.648e-01, 3.902e-01, 4.163e-01, 4.432e-01, - 4.708e-01, 4.989e-01, 5.277e-01, 5.569e-01, 5.865e-01, 6.166e-01, - 6.468e-01, 6.773e-01, 7.080e-01, 7.387e-01, 7.694e-01, 7.999e-01, - 8.303e-01, 8.605e-01, 8.903e-01, 9.197e-01, 9.486e-01, 9.770e-01, - 1.005e+00, 1.032e+00, 1.058e+00, 1.084e+00, 1.108e+00, 1.132e+00, - 1.155e+00, 1.176e+00, 1.197e+00, 1.216e+00, 1.234e+00, 1.251e+00, - 1.267e+00, 1.282e+00, 1.295e+00, 1.307e+00, 1.317e+00, 1.326e+00, - 1.334e+00, 1.341e+00, 1.346e+00, 1.349e+00, 1.351e+00, 1.352e+00, - 3.469e-04, 3.303e-04, 3.121e-04, 3.050e-04, 3.256e-04, 3.940e-04, - 5.326e-04, 7.659e-04, 1.121e-03, 1.625e-03, 2.310e-03, 3.208e-03, - 4.353e-03, 5.782e-03, 7.533e-03, 9.647e-03, 1.216e-02, 1.513e-02, - 1.858e-02, 2.256e-02, 2.711e-02, 3.228e-02, 3.811e-02, 4.463e-02, - 5.189e-02, 5.993e-02, 6.877e-02, 7.846e-02, 8.903e-02, 1.005e-01, - 1.129e-01, 1.263e-01, 1.406e-01, 1.559e-01, 1.723e-01, 1.896e-01, - 2.080e-01, 2.274e-01, 2.478e-01, 2.692e-01, 2.916e-01, 3.150e-01, - 3.393e-01, 3.645e-01, 3.906e-01, 4.176e-01, 4.453e-01, 4.738e-01, - 5.029e-01, 5.327e-01, 5.630e-01, 5.938e-01, 6.250e-01, 6.566e-01, - 6.885e-01, 7.205e-01, 7.527e-01, 7.848e-01, 8.170e-01, 8.490e-01, - 8.808e-01, 9.123e-01, 9.435e-01, 9.742e-01, 1.004e+00, 1.034e+00, - 1.063e+00, 1.091e+00, 1.118e+00, 1.145e+00, 1.170e+00, 1.195e+00, - 1.219e+00, 1.241e+00, 1.262e+00, 1.283e+00, 1.301e+00, 1.319e+00, - 1.336e+00, 1.351e+00, 1.364e+00, 1.377e+00, 1.387e+00, 1.397e+00, - 1.405e+00, 1.412e+00, 1.417e+00, 1.420e+00, 1.423e+00, 1.423e+00, - 3.360e-04, 3.198e-04, 3.030e-04, 2.996e-04, 3.276e-04, 4.087e-04, - 5.673e-04, 8.300e-04, 1.226e-03, 1.786e-03, 2.542e-03, 3.532e-03, - 4.791e-03, 6.359e-03, 8.278e-03, 1.059e-02, 1.334e-02, 1.657e-02, - 2.033e-02, 2.467e-02, 2.962e-02, 3.523e-02, 4.154e-02, 4.861e-02, - 5.646e-02, 6.514e-02, 7.468e-02, 8.512e-02, 9.650e-02, 1.088e-01, - 1.222e-01, 1.365e-01, 1.519e-01, 1.683e-01, 1.858e-01, 2.043e-01, - 2.240e-01, 2.446e-01, 2.664e-01, 2.892e-01, 3.130e-01, 3.379e-01, - 3.637e-01, 3.904e-01, 4.181e-01, 4.466e-01, 4.759e-01, 5.059e-01, - 5.367e-01, 5.680e-01, 5.999e-01, 6.323e-01, 6.651e-01, 6.982e-01, - 7.316e-01, 7.652e-01, 7.988e-01, 8.324e-01, 8.660e-01, 8.994e-01, - 9.325e-01, 9.653e-01, 9.977e-01, 1.030e+00, 1.061e+00, 1.092e+00, - 1.122e+00, 1.151e+00, 1.179e+00, 1.207e+00, 1.233e+00, 1.259e+00, - 1.283e+00, 1.306e+00, 1.329e+00, 1.349e+00, 1.369e+00, 1.387e+00, - 1.404e+00, 1.420e+00, 1.434e+00, 1.447e+00, 1.458e+00, 1.468e+00, - 1.476e+00, 1.483e+00, 1.488e+00, 1.492e+00, 1.494e+00, 1.495e+00, - 3.258e-04, 3.099e-04, 2.947e-04, 2.951e-04, 3.311e-04, 4.262e-04, - 6.070e-04, 9.026e-04, 1.344e-03, 1.966e-03, 2.805e-03, 3.898e-03, - 5.286e-03, 7.012e-03, 9.121e-03, 1.166e-02, 1.467e-02, 1.821e-02, - 2.232e-02, 2.704e-02, 3.243e-02, 3.854e-02, 4.540e-02, 5.305e-02, - 6.156e-02, 7.094e-02, 8.125e-02, 9.251e-02, 1.048e-01, 1.180e-01, - 1.323e-01, 1.477e-01, 1.642e-01, 1.818e-01, 2.005e-01, 2.203e-01, - 2.412e-01, 2.633e-01, 2.865e-01, 3.107e-01, 3.360e-01, 3.623e-01, - 3.897e-01, 4.180e-01, 4.472e-01, 4.773e-01, 5.082e-01, 5.398e-01, - 5.721e-01, 6.050e-01, 6.385e-01, 6.724e-01, 7.067e-01, 7.413e-01, - 7.761e-01, 8.111e-01, 8.461e-01, 8.811e-01, 9.160e-01, 9.506e-01, - 9.850e-01, 1.019e+00, 1.053e+00, 1.086e+00, 1.118e+00, 1.150e+00, - 1.181e+00, 1.211e+00, 1.240e+00, 1.269e+00, 1.296e+00, 1.322e+00, - 1.347e+00, 1.371e+00, 1.394e+00, 1.416e+00, 1.436e+00, 1.454e+00, - 1.472e+00, 1.488e+00, 1.502e+00, 1.516e+00, 1.527e+00, 1.537e+00, - 1.546e+00, 1.553e+00, 1.558e+00, 1.562e+00, 1.565e+00, 1.565e+00, - 3.164e-04, 3.008e-04, 2.870e-04, 2.917e-04, 3.364e-04, 4.471e-04, - 6.528e-04, 9.855e-04, 1.480e-03, 2.173e-03, 3.104e-03, 4.315e-03, - 5.851e-03, 7.758e-03, 1.008e-02, 1.288e-02, 1.619e-02, 2.007e-02, - 2.458e-02, 2.975e-02, 3.564e-02, 4.229e-02, 4.976e-02, 5.808e-02, - 6.731e-02, 7.748e-02, 8.862e-02, 1.008e-01, 1.140e-01, 1.283e-01, - 1.437e-01, 1.602e-01, 1.779e-01, 1.967e-01, 2.167e-01, 2.378e-01, - 2.602e-01, 2.836e-01, 3.083e-01, 3.340e-01, 3.608e-01, 3.887e-01, - 4.176e-01, 4.475e-01, 4.782e-01, 5.099e-01, 5.423e-01, 5.755e-01, - 6.093e-01, 6.437e-01, 6.786e-01, 7.140e-01, 7.497e-01, 7.856e-01, - 8.218e-01, 8.580e-01, 8.942e-01, 9.304e-01, 9.664e-01, 1.002e+00, - 1.038e+00, 1.073e+00, 1.107e+00, 1.141e+00, 1.174e+00, 1.207e+00, - 1.239e+00, 1.270e+00, 1.300e+00, 1.329e+00, 1.357e+00, 1.383e+00, - 1.409e+00, 1.434e+00, 1.457e+00, 1.479e+00, 1.499e+00, 1.519e+00, - 1.536e+00, 1.553e+00, 1.567e+00, 1.581e+00, 1.593e+00, 1.603e+00, - 1.612e+00, 1.619e+00, 1.624e+00, 1.628e+00, 1.631e+00, 1.632e+00, - 3.078e-04, 2.924e-04, 2.802e-04, 2.894e-04, 3.440e-04, 4.722e-04, - 7.063e-04, 1.081e-03, 1.636e-03, 2.410e-03, 3.448e-03, 4.797e-03, - 6.503e-03, 8.619e-03, 1.120e-02, 1.429e-02, 1.795e-02, 2.223e-02, - 2.718e-02, 3.286e-02, 3.932e-02, 4.660e-02, 5.476e-02, 6.384e-02, - 7.388e-02, 8.492e-02, 9.701e-02, 1.102e-01, 1.245e-01, 1.399e-01, - 1.565e-01, 1.742e-01, 1.932e-01, 2.133e-01, 2.347e-01, 2.573e-01, - 2.811e-01, 3.061e-01, 3.322e-01, 3.595e-01, 3.879e-01, 4.173e-01, - 4.478e-01, 4.792e-01, 5.115e-01, 5.446e-01, 5.785e-01, 6.131e-01, - 6.483e-01, 6.841e-01, 7.203e-01, 7.569e-01, 7.938e-01, 8.309e-01, - 8.681e-01, 9.053e-01, 9.425e-01, 9.795e-01, 1.016e+00, 1.053e+00, - 1.089e+00, 1.125e+00, 1.160e+00, 1.194e+00, 1.228e+00, 1.261e+00, - 1.293e+00, 1.324e+00, 1.355e+00, 1.384e+00, 1.412e+00, 1.439e+00, - 1.465e+00, 1.490e+00, 1.513e+00, 1.535e+00, 1.556e+00, 1.575e+00, - 1.593e+00, 1.610e+00, 1.625e+00, 1.638e+00, 1.650e+00, 1.660e+00, - 1.669e+00, 1.676e+00, 1.682e+00, 1.686e+00, 1.688e+00, 1.689e+00, - 2.998e-04, 2.847e-04, 2.743e-04, 2.889e-04, 3.546e-04, 5.030e-04, - 7.695e-04, 1.193e-03, 1.817e-03, 2.685e-03, 3.848e-03, 5.355e-03, - 7.260e-03, 9.618e-03, 1.249e-02, 1.592e-02, 1.998e-02, 2.472e-02, - 3.020e-02, 3.647e-02, 4.359e-02, 5.159e-02, 6.055e-02, 7.049e-02, - 8.146e-02, 9.351e-02, 1.067e-01, 1.210e-01, 1.365e-01, 1.531e-01, - 1.710e-01, 1.902e-01, 2.106e-01, 2.322e-01, 2.551e-01, 2.792e-01, - 3.046e-01, 3.311e-01, 3.589e-01, 3.877e-01, 4.177e-01, 4.487e-01, - 4.807e-01, 5.136e-01, 5.473e-01, 5.819e-01, 6.171e-01, 6.530e-01, - 6.894e-01, 7.262e-01, 7.634e-01, 8.010e-01, 8.387e-01, 8.765e-01, - 9.143e-01, 9.521e-01, 9.897e-01, 1.027e+00, 1.064e+00, 1.101e+00, - 1.137e+00, 1.173e+00, 1.208e+00, 1.242e+00, 1.276e+00, 1.309e+00, - 1.341e+00, 1.372e+00, 1.402e+00, 1.431e+00, 1.459e+00, 1.485e+00, - 1.511e+00, 1.535e+00, 1.558e+00, 1.580e+00, 1.600e+00, 1.619e+00, - 1.637e+00, 1.653e+00, 1.668e+00, 1.681e+00, 1.692e+00, 1.702e+00, - 1.711e+00, 1.718e+00, 1.723e+00, 1.727e+00, 1.730e+00, 1.731e+00, - 2.924e-04, 2.778e-04, 2.698e-04, 2.906e-04, 3.693e-04, 5.409e-04, - 8.448e-04, 1.325e-03, 2.028e-03, 3.006e-03, 4.312e-03, 6.003e-03, - 8.139e-03, 1.078e-02, 1.399e-02, 1.783e-02, 2.235e-02, 2.763e-02, - 3.372e-02, 4.068e-02, 4.856e-02, 5.741e-02, 6.728e-02, 7.822e-02, - 9.027e-02, 1.035e-01, 1.179e-01, 1.335e-01, 1.503e-01, 1.684e-01, - 1.878e-01, 2.085e-01, 2.305e-01, 2.537e-01, 2.783e-01, 3.041e-01, - 3.311e-01, 3.594e-01, 3.887e-01, 4.192e-01, 4.508e-01, 4.833e-01, - 5.168e-01, 5.511e-01, 5.862e-01, 6.219e-01, 6.582e-01, 6.951e-01, - 7.323e-01, 7.699e-01, 8.077e-01, 8.457e-01, 8.837e-01, 9.217e-01, - 9.595e-01, 9.971e-01, 1.035e+00, 1.072e+00, 1.108e+00, 1.144e+00, - 1.180e+00, 1.214e+00, 1.249e+00, 1.282e+00, 1.315e+00, 1.346e+00, - 1.377e+00, 1.407e+00, 1.436e+00, 1.463e+00, 1.490e+00, 1.515e+00, - 1.540e+00, 1.563e+00, 1.585e+00, 1.605e+00, 1.624e+00, 1.642e+00, - 1.659e+00, 1.674e+00, 1.687e+00, 1.700e+00, 1.711e+00, 1.720e+00, - 1.728e+00, 1.735e+00, 1.740e+00, 1.743e+00, 1.746e+00, 1.746e+00, - 2.856e-04, 2.719e-04, 2.669e-04, 2.953e-04, 3.895e-04, 5.881e-04, - 9.355e-04, 1.481e-03, 2.277e-03, 3.381e-03, 4.854e-03, 6.760e-03, - 9.164e-03, 1.213e-02, 1.574e-02, 2.004e-02, 2.512e-02, 3.102e-02, - 3.782e-02, 4.558e-02, 5.434e-02, 6.416e-02, 7.510e-02, 8.720e-02, - 1.005e-01, 1.150e-01, 1.308e-01, 1.479e-01, 1.663e-01, 1.860e-01, - 2.071e-01, 2.295e-01, 2.532e-01, 2.783e-01, 3.046e-01, 3.323e-01, - 3.611e-01, 3.911e-01, 4.222e-01, 4.543e-01, 4.875e-01, 5.215e-01, - 5.563e-01, 5.918e-01, 6.280e-01, 6.646e-01, 7.017e-01, 7.392e-01, - 7.768e-01, 8.146e-01, 8.524e-01, 8.901e-01, 9.277e-01, 9.651e-01, - 1.002e+00, 1.039e+00, 1.075e+00, 1.110e+00, 1.145e+00, 1.180e+00, - 1.213e+00, 1.246e+00, 1.278e+00, 1.310e+00, 1.340e+00, 1.369e+00, - 1.398e+00, 1.425e+00, 1.451e+00, 1.476e+00, 1.500e+00, 1.523e+00, - 1.545e+00, 1.566e+00, 1.585e+00, 1.604e+00, 1.621e+00, 1.636e+00, - 1.651e+00, 1.664e+00, 1.676e+00, 1.687e+00, 1.697e+00, 1.705e+00, - 1.712e+00, 1.718e+00, 1.722e+00, 1.725e+00, 1.727e+00, 1.728e+00, - 2.795e-04, 2.670e-04, 2.660e-04, 3.040e-04, 4.168e-04, 6.480e-04, - 1.047e-03, 1.669e-03, 2.575e-03, 3.828e-03, 5.498e-03, 7.655e-03, - 1.037e-02, 1.373e-02, 1.780e-02, 2.265e-02, 2.835e-02, 3.498e-02, - 4.261e-02, 5.128e-02, 6.106e-02, 7.201e-02, 8.416e-02, 9.757e-02, - 1.123e-01, 1.283e-01, 1.457e-01, 1.644e-01, 1.846e-01, 2.061e-01, - 2.290e-01, 2.533e-01, 2.789e-01, 3.059e-01, 3.342e-01, 3.637e-01, - 3.943e-01, 4.261e-01, 4.589e-01, 4.926e-01, 5.272e-01, 5.626e-01, - 5.985e-01, 6.350e-01, 6.719e-01, 7.092e-01, 7.466e-01, 7.841e-01, - 8.215e-01, 8.588e-01, 8.959e-01, 9.327e-01, 9.690e-01, 1.005e+00, - 1.040e+00, 1.075e+00, 1.109e+00, 1.142e+00, 1.174e+00, 1.205e+00, - 1.236e+00, 1.266e+00, 1.294e+00, 1.322e+00, 1.349e+00, 1.374e+00, - 1.399e+00, 1.422e+00, 1.445e+00, 1.466e+00, 1.487e+00, 1.506e+00, - 1.524e+00, 1.541e+00, 1.557e+00, 1.572e+00, 1.586e+00, 1.598e+00, - 1.610e+00, 1.620e+00, 1.630e+00, 1.638e+00, 1.646e+00, 1.652e+00, - 1.658e+00, 1.662e+00, 1.665e+00, 1.668e+00, 1.669e+00, 1.670e+00, - 2.739e-04, 2.633e-04, 2.677e-04, 3.178e-04, 4.540e-04, 7.253e-04, - 1.188e-03, 1.904e-03, 2.942e-03, 4.375e-03, 6.280e-03, 8.738e-03, - 1.183e-02, 1.564e-02, 2.025e-02, 2.574e-02, 3.219e-02, 3.966e-02, - 4.823e-02, 5.796e-02, 6.890e-02, 8.112e-02, 9.465e-02, 1.095e-01, - 1.258e-01, 1.435e-01, 1.626e-01, 1.832e-01, 2.052e-01, 2.286e-01, - 2.535e-01, 2.798e-01, 3.074e-01, 3.363e-01, 3.665e-01, 3.979e-01, - 4.303e-01, 4.638e-01, 4.982e-01, 5.333e-01, 5.691e-01, 6.055e-01, - 6.423e-01, 6.793e-01, 7.166e-01, 7.538e-01, 7.910e-01, 8.279e-01, - 8.645e-01, 9.007e-01, 9.362e-01, 9.712e-01, 1.005e+00, 1.039e+00, - 1.071e+00, 1.103e+00, 1.133e+00, 1.163e+00, 1.192e+00, 1.219e+00, - 1.245e+00, 1.271e+00, 1.295e+00, 1.318e+00, 1.340e+00, 1.361e+00, - 1.380e+00, 1.399e+00, 1.416e+00, 1.433e+00, 1.448e+00, 1.463e+00, - 1.476e+00, 1.489e+00, 1.500e+00, 1.511e+00, 1.521e+00, 1.529e+00, - 1.537e+00, 1.544e+00, 1.551e+00, 1.556e+00, 1.561e+00, 1.565e+00, - 1.569e+00, 1.571e+00, 1.574e+00, 1.575e+00, 1.576e+00, 1.576e+00, - 2.689e-04, 2.608e-04, 2.722e-04, 3.379e-04, 5.036e-04, 8.248e-04, - 1.365e-03, 2.197e-03, 3.396e-03, 5.047e-03, 7.236e-03, 1.005e-02, - 1.359e-02, 1.794e-02, 2.319e-02, 2.942e-02, 3.672e-02, 4.516e-02, - 5.481e-02, 6.574e-02, 7.800e-02, 9.164e-02, 1.067e-01, 1.232e-01, - 1.412e-01, 1.607e-01, 1.817e-01, 2.042e-01, 2.282e-01, 2.536e-01, - 2.805e-01, 3.088e-01, 3.384e-01, 3.693e-01, 4.013e-01, 4.344e-01, - 4.685e-01, 5.035e-01, 5.391e-01, 5.754e-01, 6.121e-01, 6.491e-01, - 6.863e-01, 7.234e-01, 7.605e-01, 7.972e-01, 8.335e-01, 8.692e-01, - 9.043e-01, 9.385e-01, 9.719e-01, 1.004e+00, 1.036e+00, 1.066e+00, - 1.095e+00, 1.122e+00, 1.149e+00, 1.174e+00, 1.198e+00, 1.221e+00, - 1.242e+00, 1.262e+00, 1.281e+00, 1.299e+00, 1.315e+00, 1.330e+00, - 1.344e+00, 1.357e+00, 1.370e+00, 1.381e+00, 1.391e+00, 1.400e+00, - 1.408e+00, 1.415e+00, 1.422e+00, 1.427e+00, 1.433e+00, 1.437e+00, - 1.441e+00, 1.444e+00, 1.447e+00, 1.449e+00, 1.451e+00, 1.453e+00, - 1.454e+00, 1.455e+00, 1.456e+00, 1.456e+00, 1.457e+00, 1.457e+00, - 2.645e-04, 2.597e-04, 2.799e-04, 3.645e-04, 5.659e-04, 9.470e-04, - 1.581e-03, 2.548e-03, 3.938e-03, 5.842e-03, 8.361e-03, 1.159e-02, - 1.564e-02, 2.060e-02, 2.658e-02, 3.365e-02, 4.192e-02, 5.145e-02, - 6.231e-02, 7.457e-02, 8.828e-02, 1.035e-01, 1.202e-01, 1.385e-01, - 1.583e-01, 1.797e-01, 2.027e-01, 2.272e-01, 2.533e-01, 2.808e-01, - 3.097e-01, 3.400e-01, 3.715e-01, 4.042e-01, 4.380e-01, 4.727e-01, - 5.083e-01, 5.445e-01, 5.812e-01, 6.182e-01, 6.554e-01, 6.927e-01, - 7.298e-01, 7.666e-01, 8.029e-01, 8.386e-01, 8.734e-01, 9.074e-01, - 9.403e-01, 9.721e-01, 1.003e+00, 1.032e+00, 1.059e+00, 1.086e+00, - 1.111e+00, 1.134e+00, 1.156e+00, 1.176e+00, 1.195e+00, 1.212e+00, - 1.228e+00, 1.243e+00, 1.256e+00, 1.268e+00, 1.279e+00, 1.288e+00, - 1.297e+00, 1.304e+00, 1.310e+00, 1.315e+00, 1.320e+00, 1.324e+00, - 1.326e+00, 1.329e+00, 1.330e+00, 1.331e+00, 1.332e+00, 1.332e+00, - 1.331e+00, 1.331e+00, 1.330e+00, 1.329e+00, 1.328e+00, 1.328e+00, - 1.327e+00, 1.326e+00, 1.325e+00, 1.325e+00, 1.324e+00, 1.324e+00, - 2.606e-04, 2.597e-04, 2.901e-04, 3.965e-04, 6.381e-04, 1.087e-03, - 1.824e-03, 2.943e-03, 4.543e-03, 6.728e-03, 9.609e-03, 1.330e-02, - 1.790e-02, 2.353e-02, 3.029e-02, 3.828e-02, 4.758e-02, 5.828e-02, - 7.043e-02, 8.411e-02, 9.936e-02, 1.162e-01, 1.347e-01, 1.548e-01, - 1.766e-01, 2.000e-01, 2.250e-01, 2.516e-01, 2.797e-01, 3.093e-01, - 3.402e-01, 3.724e-01, 4.059e-01, 4.403e-01, 4.757e-01, 5.119e-01, - 5.487e-01, 5.859e-01, 6.234e-01, 6.609e-01, 6.984e-01, 7.355e-01, - 7.722e-01, 8.082e-01, 8.434e-01, 8.776e-01, 9.107e-01, 9.425e-01, - 9.729e-01, 1.002e+00, 1.029e+00, 1.055e+00, 1.079e+00, 1.101e+00, - 1.121e+00, 1.140e+00, 1.157e+00, 1.172e+00, 1.186e+00, 1.198e+00, - 1.209e+00, 1.218e+00, 1.225e+00, 1.232e+00, 1.237e+00, 1.240e+00, - 1.243e+00, 1.245e+00, 1.246e+00, 1.246e+00, 1.245e+00, 1.244e+00, - 1.241e+00, 1.239e+00, 1.236e+00, 1.232e+00, 1.229e+00, 1.225e+00, - 1.221e+00, 1.217e+00, 1.213e+00, 1.209e+00, 1.206e+00, 1.202e+00, - 1.199e+00, 1.197e+00, 1.195e+00, 1.194e+00, 1.193e+00, 1.193e+00, - 2.572e-04, 2.605e-04, 3.019e-04, 4.315e-04, 7.159e-04, 1.235e-03, - 2.083e-03, 3.360e-03, 5.180e-03, 7.658e-03, 1.092e-02, 1.508e-02, - 2.026e-02, 2.658e-02, 3.415e-02, 4.308e-02, 5.344e-02, 6.533e-02, - 7.881e-02, 9.394e-02, 1.108e-01, 1.293e-01, 1.495e-01, 1.715e-01, - 1.952e-01, 2.206e-01, 2.477e-01, 2.763e-01, 3.064e-01, 3.380e-01, - 3.709e-01, 4.050e-01, 4.402e-01, 4.763e-01, 5.132e-01, 5.506e-01, - 5.884e-01, 6.265e-01, 6.645e-01, 7.024e-01, 7.398e-01, 7.766e-01, - 8.126e-01, 8.476e-01, 8.814e-01, 9.139e-01, 9.449e-01, 9.743e-01, - 1.002e+00, 1.028e+00, 1.052e+00, 1.074e+00, 1.094e+00, 1.112e+00, - 1.128e+00, 1.142e+00, 1.155e+00, 1.165e+00, 1.174e+00, 1.181e+00, - 1.186e+00, 1.190e+00, 1.193e+00, 1.194e+00, 1.194e+00, 1.193e+00, - 1.190e+00, 1.187e+00, 1.183e+00, 1.178e+00, 1.173e+00, 1.167e+00, - 1.161e+00, 1.154e+00, 1.147e+00, 1.139e+00, 1.132e+00, 1.125e+00, - 1.118e+00, 1.111e+00, 1.104e+00, 1.098e+00, 1.092e+00, 1.087e+00, - 1.083e+00, 1.079e+00, 1.076e+00, 1.074e+00, 1.072e+00, 1.072e+00, - 2.540e-04, 2.617e-04, 3.144e-04, 4.676e-04, 7.952e-04, 1.387e-03, - 2.345e-03, 3.783e-03, 5.823e-03, 8.595e-03, 1.223e-02, 1.686e-02, - 2.262e-02, 2.964e-02, 3.802e-02, 4.787e-02, 5.930e-02, 7.237e-02, - 8.716e-02, 1.037e-01, 1.221e-01, 1.422e-01, 1.642e-01, 1.880e-01, - 2.136e-01, 2.409e-01, 2.699e-01, 3.005e-01, 3.326e-01, 3.661e-01, - 4.008e-01, 4.366e-01, 4.734e-01, 5.110e-01, 5.491e-01, 5.877e-01, - 6.264e-01, 6.650e-01, 7.034e-01, 7.413e-01, 7.785e-01, 8.148e-01, - 8.499e-01, 8.837e-01, 9.160e-01, 9.466e-01, 9.754e-01, 1.002e+00, - 1.027e+00, 1.050e+00, 1.071e+00, 1.089e+00, 1.105e+00, 1.120e+00, - 1.132e+00, 1.142e+00, 1.150e+00, 1.156e+00, 1.160e+00, 1.162e+00, - 1.163e+00, 1.163e+00, 1.161e+00, 1.157e+00, 1.153e+00, 1.147e+00, - 1.141e+00, 1.134e+00, 1.126e+00, 1.117e+00, 1.108e+00, 1.098e+00, - 1.088e+00, 1.078e+00, 1.068e+00, 1.057e+00, 1.047e+00, 1.037e+00, - 1.027e+00, 1.018e+00, 1.009e+00, 1.001e+00, 9.940e-01, 9.873e-01, - 9.816e-01, 9.768e-01, 9.730e-01, 9.703e-01, 9.686e-01, 9.681e-01, - 2.511e-04, 2.631e-04, 3.268e-04, 5.034e-04, 8.741e-04, 1.537e-03, - 2.605e-03, 4.202e-03, 6.462e-03, 9.526e-03, 1.354e-02, 1.864e-02, - 2.497e-02, 3.266e-02, 4.183e-02, 5.260e-02, 6.506e-02, 7.928e-02, - 9.534e-02, 1.133e-01, 1.331e-01, 1.549e-01, 1.785e-01, 2.040e-01, - 2.314e-01, 2.605e-01, 2.913e-01, 3.237e-01, 3.576e-01, 3.928e-01, - 4.292e-01, 4.666e-01, 5.048e-01, 5.437e-01, 5.829e-01, 6.223e-01, - 6.616e-01, 7.007e-01, 7.392e-01, 7.769e-01, 8.136e-01, 8.491e-01, - 8.832e-01, 9.156e-01, 9.462e-01, 9.749e-01, 1.001e+00, 1.026e+00, - 1.048e+00, 1.068e+00, 1.085e+00, 1.100e+00, 1.113e+00, 1.124e+00, - 1.132e+00, 1.138e+00, 1.142e+00, 1.144e+00, 1.145e+00, 1.143e+00, - 1.140e+00, 1.136e+00, 1.130e+00, 1.123e+00, 1.115e+00, 1.106e+00, - 1.096e+00, 1.085e+00, 1.074e+00, 1.062e+00, 1.050e+00, 1.038e+00, - 1.025e+00, 1.012e+00, 9.994e-01, 9.869e-01, 9.745e-01, 9.626e-01, - 9.511e-01, 9.402e-01, 9.299e-01, 9.204e-01, 9.118e-01, 9.041e-01, - 8.975e-01, 8.919e-01, 8.875e-01, 8.844e-01, 8.825e-01, 8.818e-01, - 2.484e-04, 2.645e-04, 3.390e-04, 5.387e-04, 9.521e-04, 1.686e-03, - 2.863e-03, 4.619e-03, 7.097e-03, 1.045e-02, 1.483e-02, 2.039e-02, - 2.728e-02, 3.564e-02, 4.559e-02, 5.725e-02, 7.071e-02, 8.605e-02, - 1.033e-01, 1.226e-01, 1.438e-01, 1.671e-01, 1.923e-01, 2.195e-01, - 2.485e-01, 2.793e-01, 3.118e-01, 3.458e-01, 3.813e-01, 4.181e-01, - 4.559e-01, 4.947e-01, 5.341e-01, 5.739e-01, 6.140e-01, 6.540e-01, - 6.938e-01, 7.330e-01, 7.713e-01, 8.087e-01, 8.447e-01, 8.792e-01, - 9.120e-01, 9.429e-01, 9.717e-01, 9.983e-01, 1.023e+00, 1.044e+00, - 1.064e+00, 1.081e+00, 1.095e+00, 1.107e+00, 1.116e+00, 1.123e+00, - 1.128e+00, 1.131e+00, 1.132e+00, 1.130e+00, 1.127e+00, 1.123e+00, - 1.116e+00, 1.109e+00, 1.100e+00, 1.090e+00, 1.079e+00, 1.067e+00, - 1.055e+00, 1.042e+00, 1.028e+00, 1.014e+00, 9.995e-01, 9.849e-01, - 9.704e-01, 9.558e-01, 9.414e-01, 9.273e-01, 9.135e-01, 9.002e-01, - 8.875e-01, 8.755e-01, 8.642e-01, 8.538e-01, 8.444e-01, 8.360e-01, - 8.288e-01, 8.228e-01, 8.180e-01, 8.146e-01, 8.126e-01, 8.119e-01, - 2.458e-04, 2.659e-04, 3.510e-04, 5.735e-04, 1.029e-03, 1.834e-03, - 3.121e-03, 5.035e-03, 7.731e-03, 1.137e-02, 1.612e-02, 2.214e-02, - 2.959e-02, 3.861e-02, 4.932e-02, 6.185e-02, 7.629e-02, 9.271e-02, - 1.112e-01, 1.317e-01, 1.543e-01, 1.790e-01, 2.057e-01, 2.343e-01, - 2.649e-01, 2.972e-01, 3.313e-01, 3.668e-01, 4.037e-01, 4.418e-01, - 4.809e-01, 5.207e-01, 5.611e-01, 6.017e-01, 6.424e-01, 6.828e-01, - 7.227e-01, 7.617e-01, 7.997e-01, 8.364e-01, 8.715e-01, 9.049e-01, - 9.362e-01, 9.654e-01, 9.922e-01, 1.017e+00, 1.038e+00, 1.058e+00, - 1.074e+00, 1.088e+00, 1.100e+00, 1.109e+00, 1.115e+00, 1.119e+00, - 1.121e+00, 1.120e+00, 1.118e+00, 1.114e+00, 1.108e+00, 1.101e+00, - 1.092e+00, 1.081e+00, 1.070e+00, 1.058e+00, 1.045e+00, 1.031e+00, - 1.016e+00, 1.001e+00, 9.861e-01, 9.705e-01, 9.547e-01, 9.389e-01, - 9.230e-01, 9.073e-01, 8.919e-01, 8.768e-01, 8.622e-01, 8.481e-01, - 8.346e-01, 8.220e-01, 8.101e-01, 7.992e-01, 7.894e-01, 7.807e-01, - 7.732e-01, 7.669e-01, 7.620e-01, 7.584e-01, 7.563e-01, 7.556e-01, - 2.434e-04, 2.673e-04, 3.628e-04, 6.082e-04, 1.107e-03, 1.984e-03, - 3.381e-03, 5.455e-03, 8.372e-03, 1.230e-02, 1.743e-02, 2.391e-02, - 3.191e-02, 4.158e-02, 5.305e-02, 6.644e-02, 8.184e-02, 9.931e-02, - 1.189e-01, 1.407e-01, 1.645e-01, 1.906e-01, 2.186e-01, 2.487e-01, - 2.807e-01, 3.144e-01, 3.498e-01, 3.867e-01, 4.248e-01, 4.641e-01, - 5.042e-01, 5.449e-01, 5.860e-01, 6.271e-01, 6.681e-01, 7.086e-01, - 7.483e-01, 7.870e-01, 8.244e-01, 8.602e-01, 8.942e-01, 9.261e-01, - 9.558e-01, 9.831e-01, 1.008e+00, 1.030e+00, 1.049e+00, 1.066e+00, - 1.080e+00, 1.091e+00, 1.100e+00, 1.106e+00, 1.109e+00, 1.110e+00, - 1.109e+00, 1.106e+00, 1.101e+00, 1.095e+00, 1.086e+00, 1.076e+00, - 1.065e+00, 1.053e+00, 1.040e+00, 1.026e+00, 1.011e+00, 9.961e-01, - 9.803e-01, 9.641e-01, 9.477e-01, 9.311e-01, 9.144e-01, 8.978e-01, - 8.813e-01, 8.650e-01, 8.490e-01, 8.335e-01, 8.184e-01, 8.040e-01, - 7.903e-01, 7.774e-01, 7.654e-01, 7.543e-01, 7.443e-01, 7.355e-01, - 7.279e-01, 7.216e-01, 7.167e-01, 7.131e-01, 7.109e-01, 7.102e-01, - 2.411e-04, 2.687e-04, 3.746e-04, 6.431e-04, 1.185e-03, 2.135e-03, - 3.645e-03, 5.882e-03, 9.024e-03, 1.325e-02, 1.875e-02, 2.569e-02, - 3.425e-02, 4.458e-02, 5.681e-02, 7.104e-02, 8.738e-02, 1.059e-01, - 1.266e-01, 1.495e-01, 1.746e-01, 2.019e-01, 2.313e-01, 2.627e-01, - 2.959e-01, 3.309e-01, 3.675e-01, 4.055e-01, 4.447e-01, 4.849e-01, - 5.258e-01, 5.672e-01, 6.087e-01, 6.501e-01, 6.912e-01, 7.315e-01, - 7.709e-01, 8.089e-01, 8.454e-01, 8.801e-01, 9.127e-01, 9.430e-01, - 9.708e-01, 9.961e-01, 1.019e+00, 1.038e+00, 1.055e+00, 1.069e+00, - 1.081e+00, 1.089e+00, 1.095e+00, 1.098e+00, 1.099e+00, 1.097e+00, - 1.094e+00, 1.088e+00, 1.081e+00, 1.072e+00, 1.062e+00, 1.050e+00, - 1.038e+00, 1.024e+00, 1.009e+00, 9.942e-01, 9.784e-01, 9.621e-01, - 9.455e-01, 9.287e-01, 9.116e-01, 8.945e-01, 8.775e-01, 8.605e-01, - 8.438e-01, 8.273e-01, 8.113e-01, 7.957e-01, 7.806e-01, 7.662e-01, - 7.526e-01, 7.397e-01, 7.278e-01, 7.169e-01, 7.070e-01, 6.983e-01, - 6.908e-01, 6.846e-01, 6.797e-01, 6.762e-01, 6.740e-01, 6.733e-01, - 2.390e-04, 2.702e-04, 3.866e-04, 6.785e-04, 1.265e-03, 2.290e-03, - 3.915e-03, 6.320e-03, 9.691e-03, 1.422e-02, 2.010e-02, 2.752e-02, - 3.664e-02, 4.762e-02, 6.060e-02, 7.569e-02, 9.296e-02, 1.125e-01, - 1.343e-01, 1.583e-01, 1.846e-01, 2.131e-01, 2.437e-01, 2.762e-01, - 3.107e-01, 3.468e-01, 3.844e-01, 4.234e-01, 4.635e-01, 5.044e-01, - 5.458e-01, 5.876e-01, 6.294e-01, 6.708e-01, 7.117e-01, 7.516e-01, - 7.903e-01, 8.275e-01, 8.628e-01, 8.962e-01, 9.272e-01, 9.557e-01, - 9.816e-01, 1.005e+00, 1.025e+00, 1.042e+00, 1.056e+00, 1.068e+00, - 1.076e+00, 1.082e+00, 1.085e+00, 1.086e+00, 1.084e+00, 1.081e+00, - 1.075e+00, 1.067e+00, 1.058e+00, 1.047e+00, 1.035e+00, 1.022e+00, - 1.008e+00, 9.933e-01, 9.779e-01, 9.618e-01, 9.454e-01, 9.286e-01, - 9.116e-01, 8.944e-01, 8.772e-01, 8.600e-01, 8.430e-01, 8.261e-01, - 8.095e-01, 7.932e-01, 7.774e-01, 7.620e-01, 7.473e-01, 7.332e-01, - 7.198e-01, 7.073e-01, 6.957e-01, 6.851e-01, 6.755e-01, 6.671e-01, - 6.599e-01, 6.538e-01, 6.491e-01, 6.457e-01, 6.437e-01, 6.430e-01, - 2.370e-04, 2.718e-04, 3.988e-04, 7.147e-04, 1.347e-03, 2.449e-03, - 4.193e-03, 6.770e-03, 1.038e-02, 1.522e-02, 2.149e-02, 2.938e-02, - 3.907e-02, 5.072e-02, 6.446e-02, 8.038e-02, 9.857e-02, 1.191e-01, - 1.419e-01, 1.670e-01, 1.945e-01, 2.241e-01, 2.558e-01, 2.894e-01, - 3.249e-01, 3.620e-01, 4.005e-01, 4.403e-01, 4.810e-01, 5.224e-01, - 5.643e-01, 6.062e-01, 6.480e-01, 6.892e-01, 7.296e-01, 7.689e-01, - 8.067e-01, 8.428e-01, 8.768e-01, 9.086e-01, 9.378e-01, 9.644e-01, - 9.881e-01, 1.009e+00, 1.027e+00, 1.041e+00, 1.053e+00, 1.062e+00, - 1.068e+00, 1.071e+00, 1.072e+00, 1.070e+00, 1.066e+00, 1.060e+00, - 1.052e+00, 1.043e+00, 1.032e+00, 1.020e+00, 1.006e+00, 9.920e-01, - 9.771e-01, 9.615e-01, 9.454e-01, 9.289e-01, 9.122e-01, 8.952e-01, - 8.781e-01, 8.610e-01, 8.440e-01, 8.270e-01, 8.103e-01, 7.938e-01, - 7.776e-01, 7.618e-01, 7.464e-01, 7.316e-01, 7.173e-01, 7.038e-01, - 6.910e-01, 6.790e-01, 6.679e-01, 6.577e-01, 6.486e-01, 6.406e-01, - 6.337e-01, 6.279e-01, 6.234e-01, 6.202e-01, 6.183e-01, 6.176e-01, - 2.351e-04, 2.736e-04, 4.113e-04, 7.518e-04, 1.431e-03, 2.612e-03, - 4.480e-03, 7.233e-03, 1.108e-02, 1.624e-02, 2.291e-02, 3.129e-02, - 4.156e-02, 5.388e-02, 6.837e-02, 8.513e-02, 1.042e-01, 1.257e-01, - 1.496e-01, 1.757e-01, 2.042e-01, 2.349e-01, 2.676e-01, 3.022e-01, - 3.386e-01, 3.766e-01, 4.159e-01, 4.562e-01, 4.974e-01, 5.391e-01, - 5.811e-01, 6.230e-01, 6.645e-01, 7.053e-01, 7.451e-01, 7.835e-01, - 8.202e-01, 8.549e-01, 8.874e-01, 9.174e-01, 9.447e-01, 9.692e-01, - 9.906e-01, 1.009e+00, 1.024e+00, 1.037e+00, 1.046e+00, 1.052e+00, - 1.055e+00, 1.056e+00, 1.054e+00, 1.050e+00, 1.044e+00, 1.036e+00, - 1.026e+00, 1.015e+00, 1.003e+00, 9.895e-01, 9.751e-01, 9.601e-01, - 9.445e-01, 9.285e-01, 9.121e-01, 8.955e-01, 8.787e-01, 8.619e-01, - 8.450e-01, 8.283e-01, 8.116e-01, 7.952e-01, 7.790e-01, 7.631e-01, - 7.475e-01, 7.324e-01, 7.177e-01, 7.036e-01, 6.901e-01, 6.772e-01, - 6.651e-01, 6.538e-01, 6.433e-01, 6.337e-01, 6.252e-01, 6.176e-01, - 6.111e-01, 6.058e-01, 6.016e-01, 5.986e-01, 5.967e-01, 5.961e-01, - 2.334e-04, 2.755e-04, 4.243e-04, 7.900e-04, 1.518e-03, 2.781e-03, - 4.775e-03, 7.711e-03, 1.181e-02, 1.729e-02, 2.437e-02, 3.325e-02, - 4.410e-02, 5.710e-02, 7.235e-02, 8.994e-02, 1.099e-01, 1.324e-01, - 1.572e-01, 1.844e-01, 2.139e-01, 2.455e-01, 2.792e-01, 3.147e-01, - 3.519e-01, 3.905e-01, 4.304e-01, 4.712e-01, 5.127e-01, 5.545e-01, - 5.964e-01, 6.381e-01, 6.791e-01, 7.193e-01, 7.581e-01, 7.954e-01, - 8.308e-01, 8.640e-01, 8.947e-01, 9.228e-01, 9.481e-01, 9.703e-01, - 9.894e-01, 1.005e+00, 1.018e+00, 1.028e+00, 1.034e+00, 1.038e+00, - 1.039e+00, 1.037e+00, 1.033e+00, 1.027e+00, 1.019e+00, 1.009e+00, - 9.978e-01, 9.853e-01, 9.717e-01, 9.573e-01, 9.423e-01, 9.267e-01, - 9.107e-01, 8.945e-01, 8.781e-01, 8.616e-01, 8.451e-01, 8.286e-01, - 8.123e-01, 7.961e-01, 7.801e-01, 7.643e-01, 7.489e-01, 7.337e-01, - 7.190e-01, 7.047e-01, 6.909e-01, 6.777e-01, 6.650e-01, 6.530e-01, - 6.417e-01, 6.311e-01, 6.214e-01, 6.125e-01, 6.046e-01, 5.976e-01, - 5.916e-01, 5.867e-01, 5.828e-01, 5.800e-01, 5.783e-01, 5.777e-01, - 2.318e-04, 2.776e-04, 4.376e-04, 8.294e-04, 1.607e-03, 2.955e-03, - 5.079e-03, 8.203e-03, 1.256e-02, 1.837e-02, 2.587e-02, 3.525e-02, - 4.670e-02, 6.038e-02, 7.639e-02, 9.482e-02, 1.157e-01, 1.391e-01, - 1.649e-01, 1.930e-01, 2.234e-01, 2.560e-01, 2.905e-01, 3.268e-01, - 3.647e-01, 4.039e-01, 4.442e-01, 4.852e-01, 5.268e-01, 5.686e-01, - 6.102e-01, 6.514e-01, 6.918e-01, 7.310e-01, 7.688e-01, 8.048e-01, - 8.386e-01, 8.701e-01, 8.990e-01, 9.250e-01, 9.480e-01, 9.679e-01, - 9.846e-01, 9.980e-01, 1.008e+00, 1.015e+00, 1.019e+00, 1.021e+00, - 1.019e+00, 1.015e+00, 1.009e+00, 1.001e+00, 9.909e-01, 9.795e-01, - 9.668e-01, 9.532e-01, 9.387e-01, 9.236e-01, 9.080e-01, 8.921e-01, - 8.760e-01, 8.598e-01, 8.436e-01, 8.274e-01, 8.114e-01, 7.955e-01, - 7.798e-01, 7.644e-01, 7.492e-01, 7.344e-01, 7.198e-01, 7.057e-01, - 6.919e-01, 6.786e-01, 6.658e-01, 6.535e-01, 6.418e-01, 6.307e-01, - 6.203e-01, 6.106e-01, 6.017e-01, 5.936e-01, 5.863e-01, 5.800e-01, - 5.745e-01, 5.701e-01, 5.665e-01, 5.640e-01, 5.625e-01, 5.620e-01, - 2.303e-04, 2.798e-04, 4.513e-04, 8.699e-04, 1.699e-03, 3.134e-03, - 5.393e-03, 8.709e-03, 1.333e-02, 1.948e-02, 2.740e-02, 3.730e-02, - 4.936e-02, 6.372e-02, 8.049e-02, 9.975e-02, 1.215e-01, 1.458e-01, - 1.725e-01, 2.016e-01, 2.329e-01, 2.663e-01, 3.016e-01, 3.386e-01, - 3.770e-01, 4.166e-01, 4.572e-01, 4.984e-01, 5.399e-01, 5.814e-01, - 6.226e-01, 6.631e-01, 7.026e-01, 7.408e-01, 7.772e-01, 8.117e-01, - 8.439e-01, 8.735e-01, 9.004e-01, 9.242e-01, 9.449e-01, 9.624e-01, - 9.766e-01, 9.875e-01, 9.952e-01, 9.997e-01, 1.001e+00, 1.000e+00, - 9.963e-01, 9.902e-01, 9.820e-01, 9.721e-01, 9.606e-01, 9.478e-01, - 9.340e-01, 9.193e-01, 9.041e-01, 8.885e-01, 8.726e-01, 8.567e-01, - 8.406e-01, 8.247e-01, 8.089e-01, 7.933e-01, 7.779e-01, 7.628e-01, - 7.480e-01, 7.335e-01, 7.193e-01, 7.054e-01, 6.919e-01, 6.788e-01, - 6.661e-01, 6.539e-01, 6.422e-01, 6.309e-01, 6.203e-01, 6.102e-01, - 6.008e-01, 5.921e-01, 5.840e-01, 5.768e-01, 5.703e-01, 5.646e-01, - 5.597e-01, 5.557e-01, 5.526e-01, 5.503e-01, 5.489e-01, 5.485e-01, - 2.290e-04, 2.822e-04, 4.655e-04, 9.116e-04, 1.794e-03, 3.318e-03, - 5.715e-03, 9.231e-03, 1.412e-02, 2.062e-02, 2.898e-02, 3.940e-02, - 5.207e-02, 6.712e-02, 8.466e-02, 1.047e-01, 1.274e-01, 1.526e-01, - 1.802e-01, 2.101e-01, 2.423e-01, 2.765e-01, 3.124e-01, 3.500e-01, - 3.889e-01, 4.288e-01, 4.695e-01, 5.106e-01, 5.519e-01, 5.930e-01, - 6.335e-01, 6.732e-01, 7.117e-01, 7.486e-01, 7.836e-01, 8.164e-01, - 8.468e-01, 8.744e-01, 8.991e-01, 9.207e-01, 9.390e-01, 9.541e-01, - 9.657e-01, 9.741e-01, 9.793e-01, 9.814e-01, 9.805e-01, 9.770e-01, - 9.711e-01, 9.630e-01, 9.530e-01, 9.414e-01, 9.285e-01, 9.145e-01, - 8.997e-01, 8.844e-01, 8.687e-01, 8.528e-01, 8.368e-01, 8.209e-01, - 8.052e-01, 7.897e-01, 7.745e-01, 7.596e-01, 7.450e-01, 7.308e-01, - 7.170e-01, 7.035e-01, 6.904e-01, 6.776e-01, 6.653e-01, 6.533e-01, - 6.418e-01, 6.308e-01, 6.202e-01, 6.101e-01, 6.005e-01, 5.916e-01, - 5.832e-01, 5.754e-01, 5.683e-01, 5.619e-01, 5.561e-01, 5.511e-01, - 5.469e-01, 5.434e-01, 5.406e-01, 5.387e-01, 5.375e-01, 5.371e-01, - 2.277e-04, 2.848e-04, 4.802e-04, 9.545e-04, 1.891e-03, 3.508e-03, - 6.047e-03, 9.766e-03, 1.493e-02, 2.179e-02, 3.059e-02, 4.155e-02, - 5.483e-02, 7.059e-02, 8.890e-02, 1.098e-01, 1.333e-01, 1.594e-01, - 1.879e-01, 2.187e-01, 2.516e-01, 2.865e-01, 3.231e-01, 3.611e-01, - 4.003e-01, 4.404e-01, 4.811e-01, 5.221e-01, 5.630e-01, 6.035e-01, - 6.432e-01, 6.819e-01, 7.192e-01, 7.547e-01, 7.881e-01, 8.192e-01, - 8.476e-01, 8.731e-01, 8.956e-01, 9.148e-01, 9.307e-01, 9.433e-01, - 9.525e-01, 9.584e-01, 9.611e-01, 9.608e-01, 9.576e-01, 9.520e-01, - 9.440e-01, 9.341e-01, 9.224e-01, 9.094e-01, 8.953e-01, 8.803e-01, - 8.648e-01, 8.489e-01, 8.329e-01, 8.169e-01, 8.010e-01, 7.854e-01, - 7.701e-01, 7.552e-01, 7.408e-01, 7.267e-01, 7.131e-01, 6.999e-01, - 6.871e-01, 6.748e-01, 6.628e-01, 6.513e-01, 6.401e-01, 6.294e-01, - 6.191e-01, 6.092e-01, 5.998e-01, 5.909e-01, 5.825e-01, 5.746e-01, - 5.673e-01, 5.605e-01, 5.544e-01, 5.488e-01, 5.439e-01, 5.396e-01, - 5.359e-01, 5.329e-01, 5.306e-01, 5.289e-01, 5.279e-01, 5.276e-01, - 2.266e-04, 2.875e-04, 4.953e-04, 9.986e-04, 1.991e-03, 3.703e-03, - 6.388e-03, 1.032e-02, 1.576e-02, 2.299e-02, 3.225e-02, 4.374e-02, - 5.766e-02, 7.412e-02, 9.320e-02, 1.149e-01, 1.393e-01, 1.662e-01, - 1.956e-01, 2.272e-01, 2.609e-01, 2.964e-01, 3.335e-01, 3.720e-01, - 4.114e-01, 4.516e-01, 4.922e-01, 5.328e-01, 5.732e-01, 6.130e-01, - 6.518e-01, 6.893e-01, 7.253e-01, 7.592e-01, 7.909e-01, 8.201e-01, - 8.465e-01, 8.699e-01, 8.901e-01, 9.069e-01, 9.204e-01, 9.305e-01, - 9.372e-01, 9.407e-01, 9.410e-01, 9.384e-01, 9.332e-01, 9.255e-01, - 9.157e-01, 9.040e-01, 8.909e-01, 8.767e-01, 8.615e-01, 8.458e-01, - 8.297e-01, 8.135e-01, 7.973e-01, 7.814e-01, 7.658e-01, 7.507e-01, - 7.360e-01, 7.218e-01, 7.082e-01, 6.951e-01, 6.825e-01, 6.704e-01, - 6.588e-01, 6.477e-01, 6.369e-01, 6.266e-01, 6.167e-01, 6.072e-01, - 5.981e-01, 5.895e-01, 5.813e-01, 5.735e-01, 5.663e-01, 5.595e-01, - 5.532e-01, 5.474e-01, 5.422e-01, 5.375e-01, 5.333e-01, 5.297e-01, - 5.267e-01, 5.242e-01, 5.222e-01, 5.208e-01, 5.200e-01, 5.197e-01, - 2.255e-04, 2.904e-04, 5.109e-04, 1.044e-03, 2.094e-03, 3.903e-03, - 6.739e-03, 1.088e-02, 1.662e-02, 2.422e-02, 3.394e-02, 4.599e-02, - 6.054e-02, 7.772e-02, 9.758e-02, 1.201e-01, 1.454e-01, 1.731e-01, - 2.033e-01, 2.357e-01, 2.701e-01, 3.062e-01, 3.438e-01, 3.826e-01, - 4.222e-01, 4.624e-01, 5.027e-01, 5.430e-01, 5.827e-01, 6.216e-01, - 6.594e-01, 6.957e-01, 7.301e-01, 7.625e-01, 7.924e-01, 8.196e-01, - 8.438e-01, 8.650e-01, 8.829e-01, 8.974e-01, 9.085e-01, 9.162e-01, - 9.205e-01, 9.216e-01, 9.197e-01, 9.150e-01, 9.077e-01, 8.981e-01, - 8.866e-01, 8.735e-01, 8.591e-01, 8.438e-01, 8.279e-01, 8.115e-01, - 7.951e-01, 7.787e-01, 7.626e-01, 7.470e-01, 7.318e-01, 7.173e-01, - 7.033e-01, 6.900e-01, 6.774e-01, 6.653e-01, 6.538e-01, 6.429e-01, - 6.324e-01, 6.225e-01, 6.130e-01, 6.039e-01, 5.952e-01, 5.869e-01, - 5.791e-01, 5.716e-01, 5.646e-01, 5.579e-01, 5.518e-01, 5.460e-01, - 5.408e-01, 5.359e-01, 5.316e-01, 5.277e-01, 5.243e-01, 5.214e-01, - 5.189e-01, 5.169e-01, 5.153e-01, 5.142e-01, 5.136e-01, 5.133e-01, - 2.246e-04, 2.935e-04, 5.270e-04, 1.091e-03, 2.200e-03, 4.109e-03, - 7.099e-03, 1.146e-02, 1.750e-02, 2.548e-02, 3.568e-02, 4.829e-02, - 6.349e-02, 8.139e-02, 1.020e-01, 1.254e-01, 1.515e-01, 1.801e-01, - 2.111e-01, 2.443e-01, 2.793e-01, 3.160e-01, 3.540e-01, 3.931e-01, - 4.328e-01, 4.728e-01, 5.129e-01, 5.526e-01, 5.916e-01, 6.295e-01, - 6.661e-01, 7.011e-01, 7.340e-01, 7.646e-01, 7.926e-01, 8.178e-01, - 8.399e-01, 8.588e-01, 8.744e-01, 8.866e-01, 8.953e-01, 9.007e-01, - 9.027e-01, 9.016e-01, 8.975e-01, 8.908e-01, 8.816e-01, 8.704e-01, - 8.574e-01, 8.431e-01, 8.276e-01, 8.115e-01, 7.949e-01, 7.782e-01, - 7.615e-01, 7.452e-01, 7.294e-01, 7.141e-01, 6.996e-01, 6.857e-01, - 6.726e-01, 6.602e-01, 6.486e-01, 6.376e-01, 6.273e-01, 6.175e-01, - 6.082e-01, 5.995e-01, 5.912e-01, 5.833e-01, 5.758e-01, 5.687e-01, - 5.620e-01, 5.556e-01, 5.497e-01, 5.441e-01, 5.390e-01, 5.342e-01, - 5.299e-01, 5.259e-01, 5.224e-01, 5.193e-01, 5.166e-01, 5.143e-01, - 5.123e-01, 5.108e-01, 5.096e-01, 5.087e-01, 5.082e-01, 5.080e-01, - 2.237e-04, 2.968e-04, 5.436e-04, 1.139e-03, 2.309e-03, 4.321e-03, - 7.469e-03, 1.206e-02, 1.840e-02, 2.678e-02, 3.746e-02, 5.065e-02, - 6.651e-02, 8.515e-02, 1.066e-01, 1.308e-01, 1.577e-01, 1.872e-01, - 2.190e-01, 2.529e-01, 2.886e-01, 3.258e-01, 3.642e-01, 4.034e-01, - 4.432e-01, 4.830e-01, 5.227e-01, 5.617e-01, 5.999e-01, 6.368e-01, - 6.722e-01, 7.056e-01, 7.369e-01, 7.657e-01, 7.918e-01, 8.149e-01, - 8.349e-01, 8.516e-01, 8.649e-01, 8.748e-01, 8.812e-01, 8.843e-01, - 8.842e-01, 8.810e-01, 8.749e-01, 8.664e-01, 8.555e-01, 8.428e-01, - 8.286e-01, 8.131e-01, 7.968e-01, 7.800e-01, 7.630e-01, 7.461e-01, - 7.295e-01, 7.134e-01, 6.980e-01, 6.833e-01, 6.694e-01, 6.564e-01, - 6.442e-01, 6.328e-01, 6.223e-01, 6.124e-01, 6.032e-01, 5.946e-01, - 5.865e-01, 5.789e-01, 5.717e-01, 5.649e-01, 5.585e-01, 5.525e-01, - 5.468e-01, 5.415e-01, 5.366e-01, 5.320e-01, 5.277e-01, 5.238e-01, - 5.203e-01, 5.172e-01, 5.144e-01, 5.120e-01, 5.099e-01, 5.081e-01, - 5.066e-01, 5.054e-01, 5.045e-01, 5.039e-01, 5.035e-01, 5.034e-01, - 2.229e-04, 3.003e-04, 5.608e-04, 1.188e-03, 2.421e-03, 4.539e-03, - 7.851e-03, 1.268e-02, 1.933e-02, 2.811e-02, 3.929e-02, 5.306e-02, - 6.960e-02, 8.899e-02, 1.112e-01, 1.363e-01, 1.641e-01, 1.944e-01, - 2.270e-01, 2.616e-01, 2.979e-01, 3.356e-01, 3.743e-01, 4.137e-01, - 4.534e-01, 4.930e-01, 5.322e-01, 5.706e-01, 6.078e-01, 6.436e-01, - 6.776e-01, 7.096e-01, 7.392e-01, 7.661e-01, 7.902e-01, 8.113e-01, - 8.291e-01, 8.436e-01, 8.547e-01, 8.623e-01, 8.665e-01, 8.675e-01, - 8.653e-01, 8.601e-01, 8.523e-01, 8.420e-01, 8.297e-01, 8.157e-01, - 8.004e-01, 7.841e-01, 7.672e-01, 7.499e-01, 7.327e-01, 7.158e-01, - 6.994e-01, 6.837e-01, 6.688e-01, 6.548e-01, 6.417e-01, 6.296e-01, - 6.184e-01, 6.081e-01, 5.986e-01, 5.898e-01, 5.817e-01, 5.742e-01, - 5.673e-01, 5.607e-01, 5.546e-01, 5.489e-01, 5.435e-01, 5.384e-01, - 5.336e-01, 5.292e-01, 5.251e-01, 5.213e-01, 5.178e-01, 5.147e-01, - 5.119e-01, 5.094e-01, 5.072e-01, 5.054e-01, 5.038e-01, 5.025e-01, - 5.014e-01, 5.005e-01, 4.999e-01, 4.995e-01, 4.992e-01, 4.991e-01, - 2.222e-04, 3.039e-04, 5.785e-04, 1.239e-03, 2.537e-03, 4.764e-03, - 8.244e-03, 1.331e-02, 2.029e-02, 2.948e-02, 4.117e-02, 5.555e-02, - 7.278e-02, 9.293e-02, 1.160e-01, 1.419e-01, 1.706e-01, 2.017e-01, - 2.351e-01, 2.704e-01, 3.074e-01, 3.455e-01, 3.845e-01, 4.240e-01, - 4.636e-01, 5.029e-01, 5.415e-01, 5.791e-01, 6.154e-01, 6.500e-01, - 6.826e-01, 7.130e-01, 7.408e-01, 7.659e-01, 7.880e-01, 8.070e-01, - 8.227e-01, 8.350e-01, 8.439e-01, 8.493e-01, 8.515e-01, 8.504e-01, - 8.462e-01, 8.393e-01, 8.298e-01, 8.181e-01, 8.045e-01, 7.894e-01, - 7.732e-01, 7.562e-01, 7.388e-01, 7.214e-01, 7.042e-01, 6.875e-01, - 6.714e-01, 6.562e-01, 6.420e-01, 6.288e-01, 6.166e-01, 6.055e-01, - 5.953e-01, 5.861e-01, 5.777e-01, 5.700e-01, 5.630e-01, 5.565e-01, - 5.506e-01, 5.450e-01, 5.399e-01, 5.350e-01, 5.305e-01, 5.262e-01, - 5.222e-01, 5.185e-01, 5.151e-01, 5.119e-01, 5.091e-01, 5.065e-01, - 5.043e-01, 5.023e-01, 5.006e-01, 4.992e-01, 4.980e-01, 4.970e-01, - 4.963e-01, 4.957e-01, 4.952e-01, 4.950e-01, 4.948e-01, 4.947e-01, - 2.217e-04, 3.078e-04, 5.969e-04, 1.292e-03, 2.656e-03, 4.996e-03, - 8.649e-03, 1.396e-02, 2.127e-02, 3.090e-02, 4.310e-02, 5.810e-02, - 7.604e-02, 9.697e-02, 1.209e-01, 1.477e-01, 1.772e-01, 2.092e-01, - 2.434e-01, 2.794e-01, 3.169e-01, 3.555e-01, 3.948e-01, 4.343e-01, - 4.738e-01, 5.127e-01, 5.507e-01, 5.875e-01, 6.227e-01, 6.561e-01, - 6.872e-01, 7.160e-01, 7.420e-01, 7.652e-01, 7.853e-01, 8.022e-01, - 8.157e-01, 8.259e-01, 8.326e-01, 8.360e-01, 8.361e-01, 8.331e-01, - 8.272e-01, 8.186e-01, 8.076e-01, 7.946e-01, 7.799e-01, 7.640e-01, - 7.471e-01, 7.296e-01, 7.120e-01, 6.945e-01, 6.775e-01, 6.611e-01, - 6.456e-01, 6.311e-01, 6.176e-01, 6.053e-01, 5.941e-01, 5.840e-01, - 5.749e-01, 5.667e-01, 5.594e-01, 5.528e-01, 5.468e-01, 5.413e-01, - 5.363e-01, 5.316e-01, 5.273e-01, 5.232e-01, 5.194e-01, 5.157e-01, - 5.124e-01, 5.092e-01, 5.063e-01, 5.036e-01, 5.012e-01, 4.991e-01, - 4.973e-01, 4.957e-01, 4.943e-01, 4.932e-01, 4.923e-01, 4.916e-01, - 4.910e-01, 4.906e-01, 4.903e-01, 4.901e-01, 4.900e-01, 4.900e-01, - 2.212e-04, 3.119e-04, 6.161e-04, 1.347e-03, 2.780e-03, 5.236e-03, - 9.068e-03, 1.464e-02, 2.229e-02, 3.236e-02, 4.510e-02, 6.074e-02, - 7.940e-02, 1.011e-01, 1.259e-01, 1.536e-01, 1.840e-01, 2.169e-01, - 2.519e-01, 2.886e-01, 3.267e-01, 3.657e-01, 4.052e-01, 4.448e-01, - 4.840e-01, 5.225e-01, 5.599e-01, 5.958e-01, 6.299e-01, 6.619e-01, - 6.916e-01, 7.186e-01, 7.429e-01, 7.641e-01, 7.822e-01, 7.970e-01, - 8.084e-01, 8.164e-01, 8.211e-01, 8.225e-01, 8.207e-01, 8.159e-01, - 8.083e-01, 7.982e-01, 7.859e-01, 7.717e-01, 7.561e-01, 7.394e-01, - 7.221e-01, 7.044e-01, 6.867e-01, 6.693e-01, 6.526e-01, 6.367e-01, - 6.218e-01, 6.081e-01, 5.955e-01, 5.842e-01, 5.740e-01, 5.650e-01, - 5.570e-01, 5.499e-01, 5.436e-01, 5.380e-01, 5.330e-01, 5.284e-01, - 5.242e-01, 5.203e-01, 5.166e-01, 5.132e-01, 5.099e-01, 5.068e-01, - 5.038e-01, 5.011e-01, 4.985e-01, 4.962e-01, 4.940e-01, 4.922e-01, - 4.905e-01, 4.892e-01, 4.880e-01, 4.871e-01, 4.863e-01, 4.857e-01, - 4.853e-01, 4.850e-01, 4.848e-01, 4.847e-01, 4.846e-01, 4.846e-01, - 2.208e-04, 3.163e-04, 6.360e-04, 1.403e-03, 2.907e-03, 5.485e-03, - 9.502e-03, 1.533e-02, 2.335e-02, 3.387e-02, 4.717e-02, 6.347e-02, - 8.288e-02, 1.054e-01, 1.311e-01, 1.597e-01, 1.910e-01, 2.248e-01, - 2.605e-01, 2.980e-01, 3.366e-01, 3.761e-01, 4.158e-01, 4.553e-01, - 4.943e-01, 5.324e-01, 5.690e-01, 6.040e-01, 6.370e-01, 6.676e-01, - 6.957e-01, 7.210e-01, 7.434e-01, 7.627e-01, 7.787e-01, 7.914e-01, - 8.007e-01, 8.067e-01, 8.094e-01, 8.088e-01, 8.052e-01, 7.986e-01, - 7.895e-01, 7.780e-01, 7.645e-01, 7.494e-01, 7.331e-01, 7.158e-01, - 6.981e-01, 6.803e-01, 6.627e-01, 6.456e-01, 6.293e-01, 6.140e-01, - 5.999e-01, 5.871e-01, 5.755e-01, 5.652e-01, 5.561e-01, 5.481e-01, - 5.412e-01, 5.352e-01, 5.299e-01, 5.253e-01, 5.212e-01, 5.174e-01, - 5.140e-01, 5.107e-01, 5.076e-01, 5.046e-01, 5.017e-01, 4.990e-01, - 4.963e-01, 4.938e-01, 4.914e-01, 4.892e-01, 4.872e-01, 4.855e-01, - 4.839e-01, 4.826e-01, 4.816e-01, 4.807e-01, 4.800e-01, 4.795e-01, - 4.791e-01, 4.788e-01, 4.787e-01, 4.785e-01, 4.785e-01, 4.785e-01, - 2.204e-04, 3.210e-04, 6.567e-04, 1.462e-03, 3.040e-03, 5.742e-03, - 9.951e-03, 1.606e-02, 2.444e-02, 3.543e-02, 4.931e-02, 6.629e-02, - 8.647e-02, 1.099e-01, 1.364e-01, 1.660e-01, 1.982e-01, 2.329e-01, - 2.695e-01, 3.076e-01, 3.469e-01, 3.867e-01, 4.266e-01, 4.661e-01, - 5.049e-01, 5.424e-01, 5.783e-01, 6.122e-01, 6.440e-01, 6.732e-01, - 6.997e-01, 7.232e-01, 7.437e-01, 7.610e-01, 7.749e-01, 7.855e-01, - 7.928e-01, 7.967e-01, 7.974e-01, 7.949e-01, 7.895e-01, 7.814e-01, - 7.708e-01, 7.581e-01, 7.435e-01, 7.276e-01, 7.106e-01, 6.929e-01, - 6.750e-01, 6.572e-01, 6.398e-01, 6.231e-01, 6.074e-01, 5.928e-01, - 5.796e-01, 5.676e-01, 5.571e-01, 5.478e-01, 5.399e-01, 5.330e-01, - 5.272e-01, 5.222e-01, 5.179e-01, 5.142e-01, 5.109e-01, 5.079e-01, - 5.051e-01, 5.024e-01, 4.997e-01, 4.971e-01, 4.945e-01, 4.920e-01, - 4.895e-01, 4.870e-01, 4.847e-01, 4.826e-01, 4.806e-01, 4.788e-01, - 4.773e-01, 4.759e-01, 4.748e-01, 4.739e-01, 4.732e-01, 4.727e-01, - 4.723e-01, 4.720e-01, 4.718e-01, 4.717e-01, 4.716e-01, 4.716e-01, - 2.202e-04, 3.259e-04, 6.784e-04, 1.523e-03, 3.178e-03, 6.009e-03, - 1.042e-02, 1.681e-02, 2.557e-02, 3.705e-02, 5.153e-02, 6.921e-02, - 9.019e-02, 1.145e-01, 1.420e-01, 1.725e-01, 2.057e-01, 2.412e-01, - 2.787e-01, 3.176e-01, 3.574e-01, 3.975e-01, 4.376e-01, 4.771e-01, - 5.156e-01, 5.525e-01, 5.876e-01, 6.206e-01, 6.510e-01, 6.787e-01, - 7.036e-01, 7.253e-01, 7.438e-01, 7.590e-01, 7.709e-01, 7.794e-01, - 7.846e-01, 7.865e-01, 7.852e-01, 7.809e-01, 7.738e-01, 7.641e-01, - 7.521e-01, 7.382e-01, 7.227e-01, 7.060e-01, 6.885e-01, 6.705e-01, - 6.525e-01, 6.348e-01, 6.177e-01, 6.015e-01, 5.865e-01, 5.727e-01, - 5.603e-01, 5.494e-01, 5.399e-01, 5.318e-01, 5.249e-01, 5.192e-01, - 5.144e-01, 5.104e-01, 5.071e-01, 5.043e-01, 5.017e-01, 4.994e-01, - 4.971e-01, 4.949e-01, 4.926e-01, 4.902e-01, 4.878e-01, 4.854e-01, - 4.829e-01, 4.805e-01, 4.782e-01, 4.760e-01, 4.739e-01, 4.720e-01, - 4.703e-01, 4.689e-01, 4.677e-01, 4.667e-01, 4.659e-01, 4.653e-01, - 4.648e-01, 4.645e-01, 4.643e-01, 4.641e-01, 4.641e-01, 4.640e-01, - 2.201e-04, 3.312e-04, 7.011e-04, 1.587e-03, 3.321e-03, 6.287e-03, - 1.090e-02, 1.759e-02, 2.674e-02, 3.873e-02, 5.383e-02, 7.223e-02, - 9.405e-02, 1.192e-01, 1.477e-01, 1.792e-01, 2.134e-01, 2.499e-01, - 2.882e-01, 3.278e-01, 3.682e-01, 4.087e-01, 4.490e-01, 4.884e-01, - 5.265e-01, 5.629e-01, 5.971e-01, 6.289e-01, 6.581e-01, 6.843e-01, - 7.073e-01, 7.272e-01, 7.437e-01, 7.569e-01, 7.666e-01, 7.730e-01, - 7.761e-01, 7.759e-01, 7.727e-01, 7.666e-01, 7.578e-01, 7.467e-01, - 7.334e-01, 7.184e-01, 7.020e-01, 6.846e-01, 6.666e-01, 6.484e-01, - 6.304e-01, 6.128e-01, 5.961e-01, 5.805e-01, 5.661e-01, 5.532e-01, - 5.418e-01, 5.318e-01, 5.234e-01, 5.164e-01, 5.106e-01, 5.060e-01, - 5.023e-01, 4.993e-01, 4.969e-01, 4.948e-01, 4.930e-01, 4.913e-01, - 4.895e-01, 4.877e-01, 4.857e-01, 4.836e-01, 4.813e-01, 4.789e-01, - 4.764e-01, 4.740e-01, 4.715e-01, 4.692e-01, 4.669e-01, 4.649e-01, - 4.631e-01, 4.615e-01, 4.601e-01, 4.590e-01, 4.581e-01, 4.573e-01, - 4.568e-01, 4.564e-01, 4.561e-01, 4.559e-01, 4.558e-01, 4.558e-01, - 2.201e-04, 3.368e-04, 7.248e-04, 1.653e-03, 3.469e-03, 6.575e-03, - 1.140e-02, 1.840e-02, 2.796e-02, 4.047e-02, 5.621e-02, 7.538e-02, - 9.805e-02, 1.242e-01, 1.536e-01, 1.862e-01, 2.214e-01, 2.588e-01, - 2.980e-01, 3.384e-01, 3.793e-01, 4.202e-01, 4.606e-01, 4.999e-01, - 5.377e-01, 5.734e-01, 6.068e-01, 6.374e-01, 6.652e-01, 6.898e-01, - 7.111e-01, 7.290e-01, 7.435e-01, 7.545e-01, 7.621e-01, 7.663e-01, - 7.673e-01, 7.651e-01, 7.599e-01, 7.520e-01, 7.416e-01, 7.290e-01, - 7.144e-01, 6.984e-01, 6.811e-01, 6.631e-01, 6.447e-01, 6.264e-01, - 6.083e-01, 5.910e-01, 5.747e-01, 5.597e-01, 5.460e-01, 5.339e-01, - 5.235e-01, 5.146e-01, 5.072e-01, 5.013e-01, 4.966e-01, 4.930e-01, - 4.903e-01, 4.883e-01, 4.867e-01, 4.855e-01, 4.843e-01, 4.832e-01, - 4.819e-01, 4.804e-01, 4.787e-01, 4.767e-01, 4.745e-01, 4.721e-01, - 4.696e-01, 4.670e-01, 4.645e-01, 4.619e-01, 4.595e-01, 4.573e-01, - 4.553e-01, 4.535e-01, 4.520e-01, 4.507e-01, 4.497e-01, 4.489e-01, - 4.482e-01, 4.478e-01, 4.474e-01, 4.472e-01, 4.471e-01, 4.471e-01, - 2.201e-04, 3.427e-04, 7.495e-04, 1.722e-03, 3.624e-03, 6.875e-03, - 1.193e-02, 1.924e-02, 2.923e-02, 4.229e-02, 5.869e-02, 7.864e-02, - 1.022e-01, 1.293e-01, 1.598e-01, 1.934e-01, 2.296e-01, 2.681e-01, - 3.081e-01, 3.492e-01, 3.908e-01, 4.321e-01, 4.726e-01, 5.118e-01, - 5.491e-01, 5.842e-01, 6.166e-01, 6.461e-01, 6.723e-01, 6.952e-01, - 7.147e-01, 7.306e-01, 7.430e-01, 7.518e-01, 7.572e-01, 7.593e-01, - 7.581e-01, 7.539e-01, 7.468e-01, 7.371e-01, 7.250e-01, 7.109e-01, - 6.952e-01, 6.781e-01, 6.600e-01, 6.414e-01, 6.227e-01, 6.041e-01, - 5.862e-01, 5.691e-01, 5.532e-01, 5.387e-01, 5.258e-01, 5.146e-01, - 5.050e-01, 4.971e-01, 4.908e-01, 4.859e-01, 4.823e-01, 4.798e-01, - 4.780e-01, 4.769e-01, 4.762e-01, 4.757e-01, 4.752e-01, 4.746e-01, - 4.737e-01, 4.726e-01, 4.711e-01, 4.693e-01, 4.672e-01, 4.648e-01, - 4.622e-01, 4.595e-01, 4.568e-01, 4.541e-01, 4.516e-01, 4.492e-01, - 4.470e-01, 4.450e-01, 4.434e-01, 4.420e-01, 4.408e-01, 4.399e-01, - 4.392e-01, 4.386e-01, 4.383e-01, 4.380e-01, 4.379e-01, 4.378e-01, - 2.203e-04, 3.490e-04, 7.754e-04, 1.794e-03, 3.785e-03, 7.186e-03, - 1.247e-02, 2.011e-02, 3.055e-02, 4.417e-02, 6.126e-02, 8.202e-02, - 1.065e-01, 1.346e-01, 1.662e-01, 2.008e-01, 2.382e-01, 2.776e-01, - 3.186e-01, 3.605e-01, 4.026e-01, 4.443e-01, 4.849e-01, 5.240e-01, - 5.609e-01, 5.952e-01, 6.266e-01, 6.548e-01, 6.796e-01, 7.007e-01, - 7.183e-01, 7.321e-01, 7.423e-01, 7.490e-01, 7.521e-01, 7.519e-01, - 7.486e-01, 7.422e-01, 7.332e-01, 7.217e-01, 7.080e-01, 6.925e-01, - 6.755e-01, 6.574e-01, 6.386e-01, 6.194e-01, 6.003e-01, 5.816e-01, - 5.637e-01, 5.469e-01, 5.314e-01, 5.175e-01, 5.052e-01, 4.948e-01, - 4.861e-01, 4.792e-01, 4.739e-01, 4.700e-01, 4.674e-01, 4.658e-01, - 4.651e-01, 4.648e-01, 4.649e-01, 4.651e-01, 4.652e-01, 4.651e-01, - 4.647e-01, 4.639e-01, 4.626e-01, 4.610e-01, 4.589e-01, 4.566e-01, - 4.540e-01, 4.512e-01, 4.484e-01, 4.456e-01, 4.429e-01, 4.403e-01, - 4.380e-01, 4.359e-01, 4.342e-01, 4.326e-01, 4.314e-01, 4.304e-01, - 4.296e-01, 4.291e-01, 4.287e-01, 4.284e-01, 4.282e-01, 4.282e-01, - 2.206e-04, 3.557e-04, 8.023e-04, 1.869e-03, 3.952e-03, 7.510e-03, - 1.303e-02, 2.102e-02, 3.191e-02, 4.612e-02, 6.393e-02, 8.553e-02, - 1.110e-01, 1.401e-01, 1.728e-01, 2.086e-01, 2.470e-01, 2.875e-01, - 3.294e-01, 3.721e-01, 4.148e-01, 4.569e-01, 4.976e-01, 5.365e-01, - 5.729e-01, 6.065e-01, 6.368e-01, 6.637e-01, 6.868e-01, 7.062e-01, - 7.218e-01, 7.335e-01, 7.415e-01, 7.458e-01, 7.467e-01, 7.442e-01, - 7.386e-01, 7.302e-01, 7.192e-01, 7.059e-01, 6.906e-01, 6.737e-01, - 6.555e-01, 6.363e-01, 6.167e-01, 5.970e-01, 5.775e-01, 5.586e-01, - 5.408e-01, 5.242e-01, 5.091e-01, 4.957e-01, 4.841e-01, 4.744e-01, - 4.666e-01, 4.606e-01, 4.562e-01, 4.533e-01, 4.516e-01, 4.510e-01, - 4.511e-01, 4.517e-01, 4.526e-01, 4.534e-01, 4.541e-01, 4.546e-01, - 4.546e-01, 4.541e-01, 4.531e-01, 4.516e-01, 4.496e-01, 4.473e-01, - 4.447e-01, 4.419e-01, 4.390e-01, 4.361e-01, 4.333e-01, 4.307e-01, - 4.283e-01, 4.262e-01, 4.243e-01, 4.227e-01, 4.215e-01, 4.204e-01, - 4.196e-01, 4.190e-01, 4.186e-01, 4.184e-01, 4.182e-01, 4.181e-01, - 2.209e-04, 3.627e-04, 8.305e-04, 1.947e-03, 4.126e-03, 7.846e-03, - 1.362e-02, 2.196e-02, 3.333e-02, 4.815e-02, 6.671e-02, 8.917e-02, - 1.156e-01, 1.458e-01, 1.796e-01, 2.166e-01, 2.561e-01, 2.977e-01, - 3.406e-01, 3.841e-01, 4.274e-01, 4.698e-01, 5.106e-01, 5.493e-01, - 5.852e-01, 6.179e-01, 6.472e-01, 6.726e-01, 6.942e-01, 7.117e-01, - 7.252e-01, 7.347e-01, 7.404e-01, 7.424e-01, 7.409e-01, 7.361e-01, - 7.284e-01, 7.178e-01, 7.048e-01, 6.897e-01, 6.728e-01, 6.544e-01, - 6.350e-01, 6.149e-01, 5.945e-01, 5.741e-01, 5.543e-01, 5.353e-01, - 5.174e-01, 5.010e-01, 4.862e-01, 4.733e-01, 4.623e-01, 4.534e-01, - 4.463e-01, 4.411e-01, 4.376e-01, 4.356e-01, 4.348e-01, 4.351e-01, - 4.360e-01, 4.374e-01, 4.390e-01, 4.405e-01, 4.418e-01, 4.427e-01, - 4.431e-01, 4.430e-01, 4.423e-01, 4.410e-01, 4.392e-01, 4.369e-01, - 4.344e-01, 4.316e-01, 4.287e-01, 4.258e-01, 4.229e-01, 4.203e-01, - 4.178e-01, 4.157e-01, 4.138e-01, 4.122e-01, 4.109e-01, 4.099e-01, - 4.091e-01, 4.085e-01, 4.081e-01, 4.079e-01, 4.077e-01, 4.077e-01, - 2.213e-04, 3.700e-04, 8.598e-04, 2.027e-03, 4.306e-03, 8.195e-03, - 1.423e-02, 2.294e-02, 3.481e-02, 5.026e-02, 6.958e-02, 9.296e-02, - 1.204e-01, 1.517e-01, 1.867e-01, 2.249e-01, 2.656e-01, 3.083e-01, - 3.522e-01, 3.965e-01, 4.404e-01, 4.831e-01, 5.240e-01, 5.624e-01, - 5.978e-01, 6.297e-01, 6.578e-01, 6.818e-01, 7.016e-01, 7.172e-01, - 7.285e-01, 7.358e-01, 7.391e-01, 7.388e-01, 7.349e-01, 7.278e-01, - 7.177e-01, 7.051e-01, 6.901e-01, 6.732e-01, 6.546e-01, 6.348e-01, - 6.142e-01, 5.931e-01, 5.719e-01, 5.510e-01, 5.308e-01, 5.115e-01, - 4.937e-01, 4.774e-01, 4.629e-01, 4.504e-01, 4.400e-01, 4.316e-01, - 4.253e-01, 4.208e-01, 4.181e-01, 4.169e-01, 4.170e-01, 4.180e-01, - 4.197e-01, 4.218e-01, 4.241e-01, 4.263e-01, 4.281e-01, 4.295e-01, - 4.304e-01, 4.306e-01, 4.302e-01, 4.291e-01, 4.275e-01, 4.254e-01, - 4.229e-01, 4.202e-01, 4.173e-01, 4.144e-01, 4.116e-01, 4.090e-01, - 4.066e-01, 4.044e-01, 4.026e-01, 4.010e-01, 3.997e-01, 3.988e-01, - 3.980e-01, 3.975e-01, 3.971e-01, 3.968e-01, 3.967e-01, 3.967e-01, - 2.219e-04, 3.777e-04, 8.902e-04, 2.111e-03, 4.493e-03, 8.557e-03, - 1.486e-02, 2.395e-02, 3.634e-02, 5.244e-02, 7.257e-02, 9.688e-02, - 1.254e-01, 1.579e-01, 1.941e-01, 2.335e-01, 2.754e-01, 3.192e-01, - 3.641e-01, 4.092e-01, 4.537e-01, 4.968e-01, 5.378e-01, 5.760e-01, - 6.107e-01, 6.417e-01, 6.686e-01, 6.911e-01, 7.091e-01, 7.227e-01, - 7.319e-01, 7.368e-01, 7.378e-01, 7.349e-01, 7.286e-01, 7.192e-01, - 7.069e-01, 6.921e-01, 6.751e-01, 6.564e-01, 6.362e-01, 6.150e-01, - 5.932e-01, 5.711e-01, 5.491e-01, 5.277e-01, 5.070e-01, 4.876e-01, - 4.697e-01, 4.535e-01, 4.393e-01, 4.272e-01, 4.172e-01, 4.094e-01, - 4.036e-01, 3.999e-01, 3.979e-01, 3.974e-01, 3.982e-01, 3.999e-01, - 4.024e-01, 4.052e-01, 4.081e-01, 4.108e-01, 4.132e-01, 4.151e-01, - 4.164e-01, 4.169e-01, 4.168e-01, 4.160e-01, 4.146e-01, 4.127e-01, - 4.104e-01, 4.078e-01, 4.050e-01, 4.022e-01, 3.994e-01, 3.968e-01, - 3.945e-01, 3.924e-01, 3.906e-01, 3.891e-01, 3.879e-01, 3.870e-01, - 3.863e-01, 3.858e-01, 3.854e-01, 3.852e-01, 3.851e-01, 3.851e-01, - 2.225e-04, 3.858e-04, 9.219e-04, 2.198e-03, 4.688e-03, 8.934e-03, - 1.552e-02, 2.501e-02, 3.793e-02, 5.471e-02, 7.567e-02, 1.010e-01, - 1.305e-01, 1.643e-01, 2.017e-01, 2.424e-01, 2.856e-01, 3.306e-01, - 3.765e-01, 4.224e-01, 4.676e-01, 5.110e-01, 5.520e-01, 5.899e-01, - 6.240e-01, 6.540e-01, 6.796e-01, 7.005e-01, 7.167e-01, 7.282e-01, - 7.352e-01, 7.378e-01, 7.363e-01, 7.310e-01, 7.222e-01, 7.104e-01, - 6.958e-01, 6.789e-01, 6.600e-01, 6.395e-01, 6.177e-01, 5.952e-01, - 5.722e-01, 5.491e-01, 5.264e-01, 5.044e-01, 4.834e-01, 4.638e-01, - 4.458e-01, 4.297e-01, 4.157e-01, 4.038e-01, 3.942e-01, 3.869e-01, - 3.817e-01, 3.785e-01, 3.771e-01, 3.772e-01, 3.787e-01, 3.811e-01, - 3.841e-01, 3.875e-01, 3.910e-01, 3.943e-01, 3.972e-01, 3.996e-01, - 4.013e-01, 4.022e-01, 4.024e-01, 4.019e-01, 4.007e-01, 3.990e-01, - 3.969e-01, 3.944e-01, 3.918e-01, 3.890e-01, 3.864e-01, 3.839e-01, - 3.816e-01, 3.796e-01, 3.779e-01, 3.764e-01, 3.753e-01, 3.744e-01, - 3.738e-01, 3.734e-01, 3.731e-01, 3.729e-01, 3.728e-01, 3.728e-01, - 2.231e-04, 3.942e-04, 9.548e-04, 2.289e-03, 4.890e-03, 9.325e-03, - 1.620e-02, 2.610e-02, 3.958e-02, 5.708e-02, 7.890e-02, 1.052e-01, - 1.359e-01, 1.709e-01, 2.096e-01, 2.516e-01, 2.961e-01, 3.423e-01, - 3.893e-01, 4.361e-01, 4.818e-01, 5.256e-01, 5.666e-01, 6.042e-01, - 6.377e-01, 6.667e-01, 6.909e-01, 7.102e-01, 7.245e-01, 7.339e-01, - 7.386e-01, 7.388e-01, 7.348e-01, 7.270e-01, 7.158e-01, 7.016e-01, - 6.848e-01, 6.657e-01, 6.449e-01, 6.226e-01, 5.994e-01, 5.755e-01, - 5.514e-01, 5.275e-01, 5.040e-01, 4.815e-01, 4.601e-01, 4.403e-01, - 4.222e-01, 4.062e-01, 3.923e-01, 3.807e-01, 3.714e-01, 3.645e-01, - 3.597e-01, 3.570e-01, 3.561e-01, 3.568e-01, 3.588e-01, 3.617e-01, - 3.653e-01, 3.693e-01, 3.733e-01, 3.771e-01, 3.805e-01, 3.832e-01, - 3.853e-01, 3.866e-01, 3.872e-01, 3.869e-01, 3.860e-01, 3.845e-01, - 3.826e-01, 3.803e-01, 3.778e-01, 3.752e-01, 3.726e-01, 3.702e-01, - 3.680e-01, 3.661e-01, 3.644e-01, 3.631e-01, 3.620e-01, 3.612e-01, - 3.606e-01, 3.602e-01, 3.599e-01, 3.598e-01, 3.597e-01, 3.597e-01, - 2.239e-04, 4.029e-04, 9.889e-04, 2.383e-03, 5.100e-03, 9.732e-03, - 1.691e-02, 2.724e-02, 4.130e-02, 5.953e-02, 8.225e-02, 1.096e-01, - 1.415e-01, 1.777e-01, 2.178e-01, 2.612e-01, 3.070e-01, 3.545e-01, - 4.025e-01, 4.502e-01, 4.966e-01, 5.407e-01, 5.817e-01, 6.190e-01, - 6.518e-01, 6.797e-01, 7.026e-01, 7.202e-01, 7.325e-01, 7.398e-01, - 7.421e-01, 7.398e-01, 7.334e-01, 7.231e-01, 7.094e-01, 6.929e-01, - 6.738e-01, 6.527e-01, 6.300e-01, 6.061e-01, 5.814e-01, 5.563e-01, - 5.311e-01, 5.064e-01, 4.823e-01, 4.592e-01, 4.376e-01, 4.175e-01, - 3.994e-01, 3.834e-01, 3.696e-01, 3.582e-01, 3.492e-01, 3.426e-01, - 3.381e-01, 3.358e-01, 3.353e-01, 3.365e-01, 3.389e-01, 3.423e-01, - 3.464e-01, 3.508e-01, 3.552e-01, 3.595e-01, 3.633e-01, 3.664e-01, - 3.689e-01, 3.706e-01, 3.714e-01, 3.715e-01, 3.708e-01, 3.695e-01, - 3.677e-01, 3.656e-01, 3.632e-01, 3.608e-01, 3.583e-01, 3.560e-01, - 3.539e-01, 3.520e-01, 3.504e-01, 3.490e-01, 3.480e-01, 3.472e-01, - 3.466e-01, 3.463e-01, 3.460e-01, 3.459e-01, 3.458e-01, 3.458e-01, - 2.247e-04, 4.120e-04, 1.024e-03, 2.480e-03, 5.317e-03, 1.015e-02, - 1.764e-02, 2.843e-02, 4.309e-02, 6.208e-02, 8.573e-02, 1.142e-01, - 1.473e-01, 1.849e-01, 2.264e-01, 2.711e-01, 3.183e-01, 3.671e-01, - 4.162e-01, 4.649e-01, 5.119e-01, 5.563e-01, 5.974e-01, 6.342e-01, - 6.663e-01, 6.932e-01, 7.146e-01, 7.305e-01, 7.408e-01, 7.459e-01, - 7.458e-01, 7.411e-01, 7.321e-01, 7.193e-01, 7.033e-01, 6.844e-01, - 6.631e-01, 6.401e-01, 6.156e-01, 5.901e-01, 5.640e-01, 5.378e-01, - 5.117e-01, 4.862e-01, 4.616e-01, 4.381e-01, 4.162e-01, 3.960e-01, - 3.778e-01, 3.618e-01, 3.482e-01, 3.369e-01, 3.281e-01, 3.217e-01, - 3.175e-01, 3.155e-01, 3.153e-01, 3.168e-01, 3.195e-01, 3.233e-01, - 3.277e-01, 3.325e-01, 3.373e-01, 3.419e-01, 3.461e-01, 3.496e-01, - 3.524e-01, 3.544e-01, 3.555e-01, 3.558e-01, 3.554e-01, 3.543e-01, - 3.527e-01, 3.507e-01, 3.485e-01, 3.461e-01, 3.437e-01, 3.414e-01, - 3.393e-01, 3.374e-01, 3.358e-01, 3.345e-01, 3.334e-01, 3.326e-01, - 3.320e-01, 3.316e-01, 3.313e-01, 3.312e-01, 3.311e-01, 3.311e-01, - 2.256e-04, 4.213e-04, 1.061e-03, 2.581e-03, 5.543e-03, 1.059e-02, - 1.841e-02, 2.966e-02, 4.494e-02, 6.474e-02, 8.935e-02, 1.189e-01, - 1.533e-01, 1.923e-01, 2.352e-01, 2.815e-01, 3.301e-01, 3.801e-01, - 4.305e-01, 4.800e-01, 5.277e-01, 5.725e-01, 6.135e-01, 6.500e-01, - 6.813e-01, 7.071e-01, 7.271e-01, 7.412e-01, 7.495e-01, 7.523e-01, - 7.499e-01, 7.427e-01, 7.312e-01, 7.159e-01, 6.975e-01, 6.763e-01, - 6.530e-01, 6.280e-01, 6.018e-01, 5.749e-01, 5.476e-01, 5.204e-01, - 4.935e-01, 4.674e-01, 4.423e-01, 4.185e-01, 3.964e-01, 3.761e-01, - 3.579e-01, 3.420e-01, 3.284e-01, 3.173e-01, 3.086e-01, 3.024e-01, - 2.984e-01, 2.965e-01, 2.966e-01, 2.982e-01, 3.013e-01, 3.053e-01, - 3.100e-01, 3.150e-01, 3.201e-01, 3.250e-01, 3.294e-01, 3.333e-01, - 3.363e-01, 3.386e-01, 3.399e-01, 3.405e-01, 3.402e-01, 3.393e-01, - 3.379e-01, 3.360e-01, 3.338e-01, 3.315e-01, 3.291e-01, 3.268e-01, - 3.246e-01, 3.227e-01, 3.210e-01, 3.196e-01, 3.184e-01, 3.175e-01, - 3.169e-01, 3.164e-01, 3.161e-01, 3.159e-01, 3.157e-01, 3.157e-01, - 2.265e-04, 4.311e-04, 1.099e-03, 2.686e-03, 5.778e-03, 1.105e-02, - 1.921e-02, 3.094e-02, 4.688e-02, 6.750e-02, 9.312e-02, 1.239e-01, - 1.596e-01, 2.000e-01, 2.444e-01, 2.922e-01, 3.423e-01, 3.937e-01, - 4.453e-01, 4.958e-01, 5.441e-01, 5.893e-01, 6.303e-01, 6.664e-01, - 6.969e-01, 7.216e-01, 7.400e-01, 7.523e-01, 7.586e-01, 7.591e-01, - 7.543e-01, 7.446e-01, 7.307e-01, 7.130e-01, 6.922e-01, 6.689e-01, - 6.436e-01, 6.168e-01, 5.891e-01, 5.608e-01, 5.325e-01, 5.044e-01, - 4.769e-01, 4.502e-01, 4.248e-01, 4.009e-01, 3.787e-01, 3.584e-01, - 3.403e-01, 3.244e-01, 3.109e-01, 2.999e-01, 2.914e-01, 2.852e-01, - 2.813e-01, 2.796e-01, 2.797e-01, 2.815e-01, 2.846e-01, 2.888e-01, - 2.936e-01, 2.988e-01, 3.041e-01, 3.092e-01, 3.138e-01, 3.179e-01, - 3.212e-01, 3.236e-01, 3.252e-01, 3.259e-01, 3.258e-01, 3.250e-01, - 3.236e-01, 3.218e-01, 3.196e-01, 3.172e-01, 3.148e-01, 3.124e-01, - 3.101e-01, 3.080e-01, 3.062e-01, 3.046e-01, 3.033e-01, 3.023e-01, - 3.014e-01, 3.008e-01, 3.004e-01, 3.001e-01, 2.999e-01, 2.999e-01, - 2.275e-04, 4.411e-04, 1.138e-03, 2.794e-03, 6.022e-03, 1.152e-02, - 2.003e-02, 3.227e-02, 4.889e-02, 7.037e-02, 9.704e-02, 1.290e-01, - 1.661e-01, 2.080e-01, 2.540e-01, 3.033e-01, 3.550e-01, 4.078e-01, - 4.606e-01, 5.121e-01, 5.612e-01, 6.067e-01, 6.477e-01, 6.833e-01, - 7.131e-01, 7.366e-01, 7.535e-01, 7.640e-01, 7.682e-01, 7.665e-01, - 7.593e-01, 7.471e-01, 7.307e-01, 7.107e-01, 6.876e-01, 6.622e-01, - 6.350e-01, 6.067e-01, 5.776e-01, 5.482e-01, 5.189e-01, 4.901e-01, - 4.622e-01, 4.353e-01, 4.097e-01, 3.857e-01, 3.636e-01, 3.434e-01, - 3.254e-01, 3.096e-01, 2.963e-01, 2.854e-01, 2.769e-01, 2.708e-01, - 2.669e-01, 2.652e-01, 2.653e-01, 2.671e-01, 2.703e-01, 2.744e-01, - 2.793e-01, 2.845e-01, 2.899e-01, 2.951e-01, 2.999e-01, 3.040e-01, - 3.074e-01, 3.100e-01, 3.117e-01, 3.125e-01, 3.125e-01, 3.118e-01, - 3.105e-01, 3.086e-01, 3.064e-01, 3.039e-01, 3.013e-01, 2.987e-01, - 2.962e-01, 2.939e-01, 2.918e-01, 2.900e-01, 2.884e-01, 2.871e-01, - 2.861e-01, 2.853e-01, 2.847e-01, 2.843e-01, 2.840e-01, 2.839e-01, - 2.286e-04, 4.514e-04, 1.178e-03, 2.907e-03, 6.274e-03, 1.201e-02, - 2.089e-02, 3.366e-02, 5.097e-02, 7.335e-02, 1.011e-01, 1.343e-01, - 1.729e-01, 2.163e-01, 2.639e-01, 3.149e-01, 3.681e-01, 4.224e-01, - 4.765e-01, 5.290e-01, 5.788e-01, 6.247e-01, 6.657e-01, 7.009e-01, - 7.299e-01, 7.522e-01, 7.676e-01, 7.763e-01, 7.784e-01, 7.744e-01, - 7.648e-01, 7.502e-01, 7.314e-01, 7.091e-01, 6.839e-01, 6.565e-01, - 6.276e-01, 5.978e-01, 5.675e-01, 5.372e-01, 5.072e-01, 4.780e-01, - 4.498e-01, 4.228e-01, 3.973e-01, 3.735e-01, 3.515e-01, 3.315e-01, - 3.137e-01, 2.982e-01, 2.850e-01, 2.742e-01, 2.658e-01, 2.597e-01, - 2.558e-01, 2.540e-01, 2.541e-01, 2.557e-01, 2.587e-01, 2.628e-01, - 2.675e-01, 2.727e-01, 2.781e-01, 2.832e-01, 2.880e-01, 2.922e-01, - 2.957e-01, 2.983e-01, 3.001e-01, 3.009e-01, 3.010e-01, 3.002e-01, - 2.988e-01, 2.969e-01, 2.945e-01, 2.918e-01, 2.890e-01, 2.862e-01, - 2.834e-01, 2.807e-01, 2.783e-01, 2.761e-01, 2.742e-01, 2.725e-01, - 2.712e-01, 2.701e-01, 2.693e-01, 2.687e-01, 2.684e-01, 2.683e-01, - 2.297e-04, 4.620e-04, 1.220e-03, 3.023e-03, 6.535e-03, 1.252e-02, - 2.178e-02, 3.509e-02, 5.314e-02, 7.644e-02, 1.053e-01, 1.399e-01, - 1.799e-01, 2.249e-01, 2.742e-01, 3.269e-01, 3.818e-01, 4.376e-01, - 4.929e-01, 5.465e-01, 5.971e-01, 6.433e-01, 6.843e-01, 7.191e-01, - 7.473e-01, 7.684e-01, 7.822e-01, 7.890e-01, 7.891e-01, 7.828e-01, - 7.708e-01, 7.539e-01, 7.328e-01, 7.083e-01, 6.810e-01, 6.519e-01, - 6.215e-01, 5.904e-01, 5.591e-01, 5.281e-01, 4.977e-01, 4.683e-01, - 4.401e-01, 4.133e-01, 3.880e-01, 3.645e-01, 3.429e-01, 3.234e-01, - 3.059e-01, 2.907e-01, 2.777e-01, 2.671e-01, 2.587e-01, 2.526e-01, - 2.486e-01, 2.466e-01, 2.465e-01, 2.479e-01, 2.507e-01, 2.545e-01, - 2.590e-01, 2.640e-01, 2.692e-01, 2.742e-01, 2.789e-01, 2.830e-01, - 2.864e-01, 2.890e-01, 2.907e-01, 2.916e-01, 2.915e-01, 2.907e-01, - 2.892e-01, 2.870e-01, 2.844e-01, 2.815e-01, 2.784e-01, 2.752e-01, - 2.720e-01, 2.689e-01, 2.660e-01, 2.634e-01, 2.610e-01, 2.590e-01, - 2.572e-01, 2.558e-01, 2.548e-01, 2.540e-01, 2.535e-01, 2.534e-01, - 2.308e-04, 4.729e-04, 1.263e-03, 3.142e-03, 6.805e-03, 1.305e-02, - 2.270e-02, 3.658e-02, 5.538e-02, 7.964e-02, 1.097e-01, 1.456e-01, - 1.871e-01, 2.338e-01, 2.849e-01, 3.393e-01, 3.958e-01, 4.532e-01, - 5.099e-01, 5.646e-01, 6.158e-01, 6.625e-01, 7.035e-01, 7.379e-01, - 7.652e-01, 7.850e-01, 7.973e-01, 8.023e-01, 8.002e-01, 7.917e-01, - 7.775e-01, 7.582e-01, 7.349e-01, 7.083e-01, 6.792e-01, 6.484e-01, - 6.167e-01, 5.846e-01, 5.526e-01, 5.212e-01, 4.907e-01, 4.613e-01, - 4.334e-01, 4.070e-01, 3.823e-01, 3.595e-01, 3.385e-01, 3.195e-01, - 3.026e-01, 2.877e-01, 2.751e-01, 2.646e-01, 2.563e-01, 2.501e-01, - 2.460e-01, 2.438e-01, 2.433e-01, 2.444e-01, 2.468e-01, 2.502e-01, - 2.544e-01, 2.590e-01, 2.639e-01, 2.686e-01, 2.730e-01, 2.770e-01, - 2.802e-01, 2.827e-01, 2.843e-01, 2.849e-01, 2.848e-01, 2.838e-01, - 2.820e-01, 2.796e-01, 2.767e-01, 2.735e-01, 2.699e-01, 2.663e-01, - 2.626e-01, 2.590e-01, 2.556e-01, 2.524e-01, 2.495e-01, 2.470e-01, - 2.448e-01, 2.430e-01, 2.416e-01, 2.406e-01, 2.400e-01, 2.398e-01, - 2.319e-04, 4.840e-04, 1.307e-03, 3.265e-03, 7.082e-03, 1.359e-02, - 2.365e-02, 3.810e-02, 5.768e-02, 8.293e-02, 1.142e-01, 1.515e-01, - 1.946e-01, 2.430e-01, 2.958e-01, 3.520e-01, 4.102e-01, 4.692e-01, - 5.273e-01, 5.830e-01, 6.351e-01, 6.821e-01, 7.230e-01, 7.570e-01, - 7.835e-01, 8.021e-01, 8.128e-01, 8.158e-01, 8.117e-01, 8.010e-01, - 7.845e-01, 7.630e-01, 7.376e-01, 7.090e-01, 6.783e-01, 6.461e-01, - 6.133e-01, 5.805e-01, 5.481e-01, 5.166e-01, 4.863e-01, 4.574e-01, - 4.301e-01, 4.045e-01, 3.807e-01, 3.587e-01, 3.386e-01, 3.205e-01, - 3.042e-01, 2.900e-01, 2.778e-01, 2.676e-01, 2.594e-01, 2.532e-01, - 2.488e-01, 2.463e-01, 2.455e-01, 2.461e-01, 2.479e-01, 2.508e-01, - 2.544e-01, 2.586e-01, 2.629e-01, 2.672e-01, 2.713e-01, 2.749e-01, - 2.778e-01, 2.800e-01, 2.813e-01, 2.817e-01, 2.813e-01, 2.800e-01, - 2.780e-01, 2.753e-01, 2.720e-01, 2.682e-01, 2.642e-01, 2.600e-01, - 2.558e-01, 2.516e-01, 2.476e-01, 2.438e-01, 2.403e-01, 2.372e-01, - 2.345e-01, 2.323e-01, 2.306e-01, 2.293e-01, 2.285e-01, 2.283e-01, - 2.331e-04, 4.951e-04, 1.351e-03, 3.390e-03, 7.365e-03, 1.414e-02, - 2.462e-02, 3.967e-02, 6.004e-02, 8.630e-02, 1.188e-01, 1.575e-01, - 2.022e-01, 2.523e-01, 3.070e-01, 3.649e-01, 4.249e-01, 4.855e-01, - 5.449e-01, 6.018e-01, 6.546e-01, 7.020e-01, 7.428e-01, 7.763e-01, - 8.019e-01, 8.192e-01, 8.283e-01, 8.295e-01, 8.233e-01, 8.104e-01, - 7.917e-01, 7.681e-01, 7.407e-01, 7.104e-01, 6.782e-01, 6.449e-01, - 6.114e-01, 5.781e-01, 5.457e-01, 5.145e-01, 4.848e-01, 4.568e-01, - 4.306e-01, 4.062e-01, 3.836e-01, 3.629e-01, 3.441e-01, 3.270e-01, - 3.118e-01, 2.983e-01, 2.867e-01, 2.769e-01, 2.689e-01, 2.626e-01, - 2.581e-01, 2.553e-01, 2.539e-01, 2.539e-01, 2.551e-01, 2.573e-01, - 2.602e-01, 2.637e-01, 2.673e-01, 2.710e-01, 2.745e-01, 2.776e-01, - 2.800e-01, 2.818e-01, 2.827e-01, 2.827e-01, 2.819e-01, 2.802e-01, - 2.778e-01, 2.746e-01, 2.708e-01, 2.666e-01, 2.620e-01, 2.572e-01, - 2.523e-01, 2.475e-01, 2.428e-01, 2.383e-01, 2.342e-01, 2.305e-01, - 2.273e-01, 2.246e-01, 2.225e-01, 2.209e-01, 2.200e-01, 2.197e-01, - 2.342e-04, 5.062e-04, 1.396e-03, 3.517e-03, 7.653e-03, 1.470e-02, - 2.561e-02, 4.126e-02, 6.245e-02, 8.974e-02, 1.235e-01, 1.636e-01, - 2.100e-01, 2.618e-01, 3.183e-01, 3.781e-01, 4.398e-01, 5.019e-01, - 5.627e-01, 6.207e-01, 6.741e-01, 7.218e-01, 7.626e-01, 7.955e-01, - 8.201e-01, 8.361e-01, 8.436e-01, 8.429e-01, 8.347e-01, 8.196e-01, - 7.988e-01, 7.733e-01, 7.440e-01, 7.122e-01, 6.788e-01, 6.447e-01, - 6.107e-01, 5.775e-01, 5.455e-01, 5.150e-01, 4.864e-01, 4.598e-01, - 4.351e-01, 4.124e-01, 3.916e-01, 3.726e-01, 3.554e-01, 3.399e-01, - 3.259e-01, 3.136e-01, 3.028e-01, 2.936e-01, 2.859e-01, 2.797e-01, - 2.750e-01, 2.717e-01, 2.698e-01, 2.691e-01, 2.696e-01, 2.709e-01, - 2.729e-01, 2.755e-01, 2.783e-01, 2.812e-01, 2.839e-01, 2.862e-01, - 2.880e-01, 2.891e-01, 2.894e-01, 2.889e-01, 2.876e-01, 2.854e-01, - 2.824e-01, 2.787e-01, 2.743e-01, 2.695e-01, 2.643e-01, 2.588e-01, - 2.532e-01, 2.477e-01, 2.423e-01, 2.371e-01, 2.324e-01, 2.280e-01, - 2.243e-01, 2.211e-01, 2.186e-01, 2.167e-01, 2.156e-01, 2.153e-01, - 2.353e-04, 5.172e-04, 1.441e-03, 3.644e-03, 7.943e-03, 1.527e-02, - 2.661e-02, 4.288e-02, 6.488e-02, 9.321e-02, 1.282e-01, 1.698e-01, - 2.178e-01, 2.714e-01, 3.297e-01, 3.913e-01, 4.547e-01, 5.184e-01, - 5.805e-01, 6.395e-01, 6.936e-01, 7.415e-01, 7.821e-01, 8.144e-01, - 8.380e-01, 8.526e-01, 8.584e-01, 8.558e-01, 8.455e-01, 8.284e-01, - 8.055e-01, 7.781e-01, 7.473e-01, 7.142e-01, 6.799e-01, 6.453e-01, - 6.113e-01, 5.785e-01, 5.474e-01, 5.183e-01, 4.913e-01, 4.666e-01, - 4.440e-01, 4.236e-01, 4.051e-01, 3.884e-01, 3.733e-01, 3.597e-01, - 3.475e-01, 3.366e-01, 3.270e-01, 3.186e-01, 3.114e-01, 3.054e-01, - 3.006e-01, 2.970e-01, 2.945e-01, 2.931e-01, 2.926e-01, 2.929e-01, - 2.939e-01, 2.954e-01, 2.971e-01, 2.990e-01, 3.007e-01, 3.020e-01, - 3.030e-01, 3.033e-01, 3.029e-01, 3.017e-01, 2.997e-01, 2.968e-01, - 2.932e-01, 2.889e-01, 2.839e-01, 2.784e-01, 2.725e-01, 2.663e-01, - 2.600e-01, 2.538e-01, 2.477e-01, 2.419e-01, 2.364e-01, 2.315e-01, - 2.272e-01, 2.236e-01, 2.207e-01, 2.186e-01, 2.173e-01, 2.168e-01, - 2.363e-04, 5.279e-04, 1.486e-03, 3.771e-03, 8.234e-03, 1.584e-02, - 2.761e-02, 4.450e-02, 6.733e-02, 9.671e-02, 1.330e-01, 1.761e-01, - 2.257e-01, 2.810e-01, 3.411e-01, 4.044e-01, 4.696e-01, 5.348e-01, - 5.981e-01, 6.580e-01, 7.127e-01, 7.608e-01, 8.010e-01, 8.326e-01, - 8.551e-01, 8.683e-01, 8.723e-01, 8.678e-01, 8.554e-01, 8.363e-01, - 8.115e-01, 7.824e-01, 7.501e-01, 7.160e-01, 6.811e-01, 6.465e-01, - 6.129e-01, 5.811e-01, 5.514e-01, 5.241e-01, 4.994e-01, 4.773e-01, - 4.575e-01, 4.400e-01, 4.244e-01, 4.106e-01, 3.982e-01, 3.872e-01, - 3.772e-01, 3.682e-01, 3.601e-01, 3.528e-01, 3.463e-01, 3.407e-01, - 3.360e-01, 3.321e-01, 3.290e-01, 3.268e-01, 3.254e-01, 3.246e-01, - 3.244e-01, 3.247e-01, 3.252e-01, 3.258e-01, 3.264e-01, 3.267e-01, - 3.266e-01, 3.260e-01, 3.247e-01, 3.227e-01, 3.199e-01, 3.163e-01, - 3.121e-01, 3.071e-01, 3.014e-01, 2.953e-01, 2.888e-01, 2.820e-01, - 2.751e-01, 2.682e-01, 2.615e-01, 2.551e-01, 2.491e-01, 2.437e-01, - 2.389e-01, 2.348e-01, 2.316e-01, 2.293e-01, 2.278e-01, 2.274e-01, - 2.372e-04, 5.381e-04, 1.529e-03, 3.897e-03, 8.524e-03, 1.642e-02, - 2.862e-02, 4.613e-02, 6.979e-02, 1.002e-01, 1.377e-01, 1.823e-01, - 2.335e-01, 2.906e-01, 3.524e-01, 4.175e-01, 4.843e-01, 5.509e-01, - 6.155e-01, 6.762e-01, 7.313e-01, 7.794e-01, 8.193e-01, 8.501e-01, - 8.713e-01, 8.829e-01, 8.851e-01, 8.786e-01, 8.642e-01, 8.431e-01, - 8.165e-01, 7.858e-01, 7.523e-01, 7.175e-01, 6.823e-01, 6.480e-01, - 6.154e-01, 5.850e-01, 5.573e-01, 5.325e-01, 5.107e-01, 4.918e-01, - 4.755e-01, 4.615e-01, 4.496e-01, 4.393e-01, 4.303e-01, 4.223e-01, - 4.151e-01, 4.085e-01, 4.023e-01, 3.966e-01, 3.912e-01, 3.862e-01, - 3.817e-01, 3.777e-01, 3.742e-01, 3.713e-01, 3.689e-01, 3.671e-01, - 3.657e-01, 3.647e-01, 3.639e-01, 3.633e-01, 3.626e-01, 3.617e-01, - 3.606e-01, 3.589e-01, 3.568e-01, 3.540e-01, 3.505e-01, 3.463e-01, - 3.415e-01, 3.359e-01, 3.298e-01, 3.233e-01, 3.163e-01, 3.091e-01, - 3.018e-01, 2.945e-01, 2.874e-01, 2.807e-01, 2.743e-01, 2.686e-01, - 2.635e-01, 2.592e-01, 2.558e-01, 2.533e-01, 2.518e-01, 2.513e-01, - 2.380e-04, 5.478e-04, 1.572e-03, 4.022e-03, 8.814e-03, 1.699e-02, - 2.963e-02, 4.776e-02, 7.225e-02, 1.037e-01, 1.425e-01, 1.885e-01, - 2.413e-01, 3.001e-01, 3.637e-01, 4.305e-01, 4.989e-01, 5.668e-01, - 6.325e-01, 6.939e-01, 7.494e-01, 7.974e-01, 8.368e-01, 8.666e-01, - 8.866e-01, 8.965e-01, 8.968e-01, 8.883e-01, 8.718e-01, 8.487e-01, - 8.203e-01, 7.882e-01, 7.537e-01, 7.183e-01, 6.833e-01, 6.497e-01, - 6.183e-01, 5.898e-01, 5.647e-01, 5.430e-01, 5.247e-01, 5.096e-01, - 4.974e-01, 4.877e-01, 4.800e-01, 4.739e-01, 4.689e-01, 4.646e-01, - 4.607e-01, 4.570e-01, 4.533e-01, 4.495e-01, 4.456e-01, 4.417e-01, - 4.377e-01, 4.338e-01, 4.301e-01, 4.267e-01, 4.235e-01, 4.207e-01, - 4.182e-01, 4.161e-01, 4.141e-01, 4.123e-01, 4.106e-01, 4.087e-01, - 4.067e-01, 4.043e-01, 4.015e-01, 3.982e-01, 3.943e-01, 3.898e-01, - 3.848e-01, 3.791e-01, 3.730e-01, 3.664e-01, 3.595e-01, 3.524e-01, - 3.452e-01, 3.380e-01, 3.310e-01, 3.243e-01, 3.180e-01, 3.123e-01, - 3.073e-01, 3.031e-01, 2.997e-01, 2.972e-01, 2.957e-01, 2.952e-01, - 2.386e-04, 5.569e-04, 1.613e-03, 4.146e-03, 9.103e-03, 1.756e-02, - 3.064e-02, 4.940e-02, 7.472e-02, 1.073e-01, 1.473e-01, 1.948e-01, - 2.492e-01, 3.097e-01, 3.750e-01, 4.435e-01, 5.134e-01, 5.827e-01, - 6.494e-01, 7.115e-01, 7.672e-01, 8.151e-01, 8.538e-01, 8.826e-01, - 9.011e-01, 9.093e-01, 9.076e-01, 8.969e-01, 8.784e-01, 8.533e-01, - 8.232e-01, 7.897e-01, 7.543e-01, 7.186e-01, 6.838e-01, 6.511e-01, - 6.214e-01, 5.953e-01, 5.731e-01, 5.549e-01, 5.406e-01, 5.299e-01, - 5.223e-01, 5.174e-01, 5.145e-01, 5.131e-01, 5.126e-01, 5.125e-01, - 5.125e-01, 5.122e-01, 5.114e-01, 5.100e-01, 5.080e-01, 5.055e-01, - 5.025e-01, 4.991e-01, 4.955e-01, 4.919e-01, 4.883e-01, 4.849e-01, - 4.817e-01, 4.788e-01, 4.761e-01, 4.736e-01, 4.713e-01, 4.689e-01, - 4.666e-01, 4.640e-01, 4.612e-01, 4.581e-01, 4.545e-01, 4.505e-01, - 4.461e-01, 4.412e-01, 4.359e-01, 4.302e-01, 4.242e-01, 4.180e-01, - 4.117e-01, 4.055e-01, 3.994e-01, 3.935e-01, 3.881e-01, 3.831e-01, + 2.766e-01, 2.765e-01, 2.764e-01, 2.761e-01, 2.757e-01, 2.751e-01, + 2.743e-01, 2.734e-01, 2.724e-01, 2.711e-01, 2.697e-01, 2.680e-01, + 2.662e-01, 2.643e-01, 2.621e-01, 2.598e-01, 2.573e-01, 2.547e-01, + 2.519e-01, 2.489e-01, 2.458e-01, 2.426e-01, 2.392e-01, 2.356e-01, + 2.320e-01, 2.282e-01, 2.243e-01, 2.202e-01, 2.161e-01, 2.119e-01, + 2.076e-01, 2.032e-01, 1.987e-01, 1.941e-01, 1.895e-01, 1.848e-01, + 1.801e-01, 1.753e-01, 1.705e-01, 1.657e-01, 1.608e-01, 1.560e-01, + 1.511e-01, 1.462e-01, 1.413e-01, 1.365e-01, 1.316e-01, 1.268e-01, + 1.220e-01, 1.172e-01, 1.125e-01, 1.078e-01, 1.032e-01, 9.864e-02, + 9.415e-02, 8.972e-02, 8.537e-02, 8.111e-02, 7.692e-02, 7.283e-02, + 6.882e-02, 6.492e-02, 6.112e-02, 5.742e-02, 5.384e-02, 5.037e-02, + 4.701e-02, 4.377e-02, 4.066e-02, 3.767e-02, 3.482e-02, 3.209e-02, + 2.950e-02, 2.704e-02, 2.472e-02, 2.255e-02, 2.051e-02, 1.862e-02, + 1.687e-02, 1.527e-02, 1.382e-02, 1.252e-02, 1.137e-02, 1.037e-02, + 9.528e-03, 8.834e-03, 8.294e-03, 7.908e-03, 7.676e-03, 7.599e-03, + 6.921e-02, 6.905e-02, 6.877e-02, 6.838e-02, 6.788e-02, 6.726e-02, + 6.654e-02, 6.572e-02, 6.480e-02, 6.380e-02, 6.272e-02, 6.157e-02, + 6.036e-02, 5.909e-02, 5.779e-02, 5.646e-02, 5.510e-02, 5.373e-02, + 5.237e-02, 5.102e-02, 4.969e-02, 4.840e-02, 4.715e-02, 4.597e-02, + 4.485e-02, 4.382e-02, 4.287e-02, 4.203e-02, 4.130e-02, 4.070e-02, + 4.022e-02, 3.988e-02, 3.970e-02, 3.967e-02, 3.980e-02, 4.010e-02, + 4.057e-02, 4.123e-02, 4.206e-02, 4.309e-02, 4.430e-02, 4.570e-02, + 4.729e-02, 4.908e-02, 5.105e-02, 5.320e-02, 5.554e-02, 5.806e-02, + 6.075e-02, 6.361e-02, 6.664e-02, 6.982e-02, 7.314e-02, 7.660e-02, + 8.019e-02, 8.389e-02, 8.771e-02, 9.161e-02, 9.560e-02, 9.966e-02, + 1.038e-01, 1.079e-01, 1.121e-01, 1.163e-01, 1.205e-01, 1.247e-01, + 1.288e-01, 1.330e-01, 1.370e-01, 1.410e-01, 1.449e-01, 1.487e-01, + 1.523e-01, 1.559e-01, 1.593e-01, 1.625e-01, 1.656e-01, 1.685e-01, + 1.712e-01, 1.737e-01, 1.760e-01, 1.781e-01, 1.800e-01, 1.816e-01, + 1.830e-01, 1.841e-01, 1.850e-01, 1.856e-01, 1.860e-01, 1.862e-01, + 3.081e-02, 3.068e-02, 3.046e-02, 3.017e-02, 2.981e-02, 2.939e-02, + 2.891e-02, 2.838e-02, 2.782e-02, 2.722e-02, 2.661e-02, 2.600e-02, + 2.539e-02, 2.481e-02, 2.426e-02, 2.376e-02, 2.332e-02, 2.296e-02, + 2.270e-02, 2.255e-02, 2.253e-02, 2.265e-02, 2.292e-02, 2.337e-02, + 2.401e-02, 2.485e-02, 2.591e-02, 2.720e-02, 2.874e-02, 3.053e-02, + 3.259e-02, 3.492e-02, 3.755e-02, 4.047e-02, 4.370e-02, 4.724e-02, + 5.110e-02, 5.527e-02, 5.977e-02, 6.459e-02, 6.973e-02, 7.520e-02, + 8.098e-02, 8.708e-02, 9.349e-02, 1.002e-01, 1.072e-01, 1.145e-01, + 1.220e-01, 1.298e-01, 1.379e-01, 1.461e-01, 1.546e-01, 1.633e-01, + 1.721e-01, 1.811e-01, 1.902e-01, 1.995e-01, 2.088e-01, 2.182e-01, + 2.276e-01, 2.370e-01, 2.464e-01, 2.557e-01, 2.650e-01, 2.742e-01, + 2.832e-01, 2.922e-01, 3.009e-01, 3.094e-01, 3.178e-01, 3.258e-01, + 3.336e-01, 3.411e-01, 3.482e-01, 3.550e-01, 3.615e-01, 3.675e-01, + 3.731e-01, 3.783e-01, 3.831e-01, 3.874e-01, 3.912e-01, 3.946e-01, + 3.974e-01, 3.998e-01, 4.016e-01, 4.029e-01, 4.037e-01, 4.040e-01, + 1.738e-02, 1.728e-02, 1.713e-02, 1.693e-02, 1.669e-02, 1.640e-02, + 1.609e-02, 1.576e-02, 1.541e-02, 1.507e-02, 1.474e-02, 1.443e-02, + 1.416e-02, 1.395e-02, 1.380e-02, 1.374e-02, 1.377e-02, 1.392e-02, + 1.421e-02, 1.464e-02, 1.524e-02, 1.602e-02, 1.701e-02, 1.821e-02, + 1.964e-02, 2.132e-02, 2.326e-02, 2.548e-02, 2.800e-02, 3.082e-02, + 3.395e-02, 3.741e-02, 4.121e-02, 4.536e-02, 4.986e-02, 5.472e-02, + 5.995e-02, 6.554e-02, 7.150e-02, 7.784e-02, 8.454e-02, 9.160e-02, + 9.903e-02, 1.068e-01, 1.149e-01, 1.234e-01, 1.322e-01, 1.413e-01, + 1.507e-01, 1.604e-01, 1.703e-01, 1.805e-01, 1.909e-01, 2.016e-01, + 2.124e-01, 2.233e-01, 2.344e-01, 2.456e-01, 2.569e-01, 2.682e-01, + 2.796e-01, 2.909e-01, 3.022e-01, 3.135e-01, 3.246e-01, 3.356e-01, + 3.464e-01, 3.571e-01, 3.675e-01, 3.777e-01, 3.876e-01, 3.972e-01, + 4.065e-01, 4.154e-01, 4.239e-01, 4.319e-01, 4.396e-01, 4.468e-01, + 4.534e-01, 4.596e-01, 4.653e-01, 4.704e-01, 4.749e-01, 4.789e-01, + 4.822e-01, 4.850e-01, 4.872e-01, 4.887e-01, 4.897e-01, 4.900e-01, + 1.117e-02, 1.109e-02, 1.098e-02, 1.083e-02, 1.065e-02, 1.045e-02, + 1.022e-02, 9.994e-03, 9.767e-03, 9.552e-03, 9.363e-03, 9.212e-03, + 9.112e-03, 9.078e-03, 9.126e-03, 9.269e-03, 9.526e-03, 9.911e-03, + 1.044e-02, 1.114e-02, 1.201e-02, 1.308e-02, 1.436e-02, 1.588e-02, + 1.764e-02, 1.966e-02, 2.195e-02, 2.454e-02, 2.744e-02, 3.065e-02, + 3.419e-02, 3.807e-02, 4.230e-02, 4.689e-02, 5.184e-02, 5.717e-02, + 6.286e-02, 6.894e-02, 7.539e-02, 8.223e-02, 8.944e-02, 9.702e-02, + 1.050e-01, 1.133e-01, 1.219e-01, 1.309e-01, 1.403e-01, 1.499e-01, + 1.599e-01, 1.701e-01, 1.806e-01, 1.913e-01, 2.023e-01, 2.135e-01, + 2.248e-01, 2.363e-01, 2.480e-01, 2.597e-01, 2.715e-01, 2.833e-01, + 2.952e-01, 3.070e-01, 3.188e-01, 3.305e-01, 3.421e-01, 3.536e-01, + 3.649e-01, 3.759e-01, 3.868e-01, 3.974e-01, 4.077e-01, 4.176e-01, + 4.272e-01, 4.365e-01, 4.453e-01, 4.536e-01, 4.616e-01, 4.690e-01, + 4.759e-01, 4.823e-01, 4.881e-01, 4.934e-01, 4.981e-01, 5.022e-01, + 5.057e-01, 5.086e-01, 5.108e-01, 5.124e-01, 5.134e-01, 5.137e-01, + 7.793e-03, 7.734e-03, 7.643e-03, 7.523e-03, 7.379e-03, 7.217e-03, + 7.046e-03, 6.874e-03, 6.710e-03, 6.566e-03, 6.452e-03, 6.382e-03, + 6.369e-03, 6.427e-03, 6.571e-03, 6.816e-03, 7.178e-03, 7.673e-03, + 8.317e-03, 9.127e-03, 1.012e-02, 1.131e-02, 1.272e-02, 1.436e-02, + 1.624e-02, 1.839e-02, 2.082e-02, 2.353e-02, 2.655e-02, 2.989e-02, + 3.355e-02, 3.756e-02, 4.190e-02, 4.661e-02, 5.167e-02, 5.710e-02, + 6.290e-02, 6.908e-02, 7.562e-02, 8.254e-02, 8.983e-02, 9.748e-02, + 1.055e-01, 1.139e-01, 1.226e-01, 1.316e-01, 1.410e-01, 1.506e-01, + 1.606e-01, 1.708e-01, 1.813e-01, 1.921e-01, 2.030e-01, 2.141e-01, + 2.254e-01, 2.369e-01, 2.485e-01, 2.601e-01, 2.719e-01, 2.836e-01, + 2.954e-01, 3.071e-01, 3.188e-01, 3.305e-01, 3.420e-01, 3.533e-01, + 3.645e-01, 3.755e-01, 3.862e-01, 3.967e-01, 4.068e-01, 4.167e-01, + 4.262e-01, 4.353e-01, 4.440e-01, 4.523e-01, 4.601e-01, 4.674e-01, + 4.743e-01, 4.806e-01, 4.863e-01, 4.916e-01, 4.962e-01, 5.002e-01, + 5.037e-01, 5.065e-01, 5.087e-01, 5.103e-01, 5.113e-01, 5.116e-01, + 5.758e-03, 5.708e-03, 5.630e-03, 5.528e-03, 5.406e-03, 5.270e-03, + 5.129e-03, 4.990e-03, 4.863e-03, 4.758e-03, 4.686e-03, 4.661e-03, + 4.695e-03, 4.801e-03, 4.995e-03, 5.291e-03, 5.704e-03, 6.250e-03, + 6.945e-03, 7.806e-03, 8.847e-03, 1.009e-02, 1.154e-02, 1.322e-02, + 1.514e-02, 1.732e-02, 1.978e-02, 2.252e-02, 2.555e-02, 2.890e-02, + 3.257e-02, 3.656e-02, 4.089e-02, 4.557e-02, 5.060e-02, 5.599e-02, + 6.173e-02, 6.784e-02, 7.430e-02, 8.113e-02, 8.831e-02, 9.584e-02, + 1.037e-01, 1.119e-01, 1.205e-01, 1.294e-01, 1.385e-01, 1.480e-01, + 1.578e-01, 1.678e-01, 1.780e-01, 1.885e-01, 1.992e-01, 2.101e-01, + 2.211e-01, 2.323e-01, 2.435e-01, 2.549e-01, 2.663e-01, 2.778e-01, + 2.892e-01, 3.006e-01, 3.120e-01, 3.233e-01, 3.345e-01, 3.455e-01, + 3.564e-01, 3.670e-01, 3.774e-01, 3.876e-01, 3.974e-01, 4.070e-01, + 4.162e-01, 4.250e-01, 4.335e-01, 4.415e-01, 4.490e-01, 4.562e-01, + 4.628e-01, 4.689e-01, 4.745e-01, 4.795e-01, 4.840e-01, 4.879e-01, + 4.912e-01, 4.940e-01, 4.961e-01, 4.977e-01, 4.986e-01, 4.989e-01, + 4.438e-03, 4.393e-03, 4.324e-03, 4.232e-03, 4.124e-03, 4.004e-03, + 3.881e-03, 3.762e-03, 3.657e-03, 3.576e-03, 3.529e-03, 3.530e-03, + 3.590e-03, 3.724e-03, 3.944e-03, 4.267e-03, 4.705e-03, 5.276e-03, + 5.994e-03, 6.875e-03, 7.934e-03, 9.186e-03, 1.065e-02, 1.233e-02, + 1.426e-02, 1.643e-02, 1.887e-02, 2.159e-02, 2.460e-02, 2.790e-02, + 3.152e-02, 3.546e-02, 3.973e-02, 4.432e-02, 4.926e-02, 5.454e-02, + 6.017e-02, 6.614e-02, 7.246e-02, 7.913e-02, 8.614e-02, 9.349e-02, + 1.012e-01, 1.092e-01, 1.175e-01, 1.261e-01, 1.350e-01, 1.442e-01, + 1.537e-01, 1.634e-01, 1.733e-01, 1.835e-01, 1.939e-01, 2.044e-01, + 2.151e-01, 2.259e-01, 2.368e-01, 2.477e-01, 2.588e-01, 2.698e-01, + 2.809e-01, 2.919e-01, 3.029e-01, 3.138e-01, 3.245e-01, 3.352e-01, + 3.456e-01, 3.559e-01, 3.659e-01, 3.757e-01, 3.852e-01, 3.944e-01, + 4.033e-01, 4.118e-01, 4.199e-01, 4.276e-01, 4.349e-01, 4.417e-01, + 4.481e-01, 4.540e-01, 4.593e-01, 4.642e-01, 4.685e-01, 4.723e-01, + 4.755e-01, 4.781e-01, 4.802e-01, 4.816e-01, 4.825e-01, 4.828e-01, + 3.533e-03, 3.491e-03, 3.427e-03, 3.343e-03, 3.243e-03, 3.135e-03, + 3.023e-03, 2.918e-03, 2.827e-03, 2.761e-03, 2.730e-03, 2.747e-03, + 2.824e-03, 2.975e-03, 3.212e-03, 3.550e-03, 4.004e-03, 4.588e-03, + 5.318e-03, 6.207e-03, 7.273e-03, 8.528e-03, 9.988e-03, 1.167e-02, + 1.358e-02, 1.574e-02, 1.815e-02, 2.084e-02, 2.381e-02, 2.707e-02, + 3.063e-02, 3.450e-02, 3.869e-02, 4.320e-02, 4.803e-02, 5.320e-02, + 5.870e-02, 6.454e-02, 7.071e-02, 7.722e-02, 8.405e-02, 9.121e-02, + 9.868e-02, 1.065e-01, 1.146e-01, 1.229e-01, 1.316e-01, 1.405e-01, + 1.497e-01, 1.591e-01, 1.688e-01, 1.786e-01, 1.886e-01, 1.988e-01, + 2.092e-01, 2.196e-01, 2.302e-01, 2.408e-01, 2.514e-01, 2.621e-01, + 2.728e-01, 2.835e-01, 2.940e-01, 3.046e-01, 3.149e-01, 3.252e-01, + 3.353e-01, 3.452e-01, 3.549e-01, 3.643e-01, 3.735e-01, 3.823e-01, + 3.909e-01, 3.991e-01, 4.069e-01, 4.143e-01, 4.213e-01, 4.279e-01, + 4.341e-01, 4.397e-01, 4.449e-01, 4.496e-01, 4.537e-01, 4.573e-01, + 4.604e-01, 4.630e-01, 4.650e-01, 4.664e-01, 4.672e-01, 4.675e-01, + 2.885e-03, 2.846e-03, 2.786e-03, 2.706e-03, 2.613e-03, 2.511e-03, + 2.408e-03, 2.311e-03, 2.230e-03, 2.175e-03, 2.155e-03, 2.184e-03, + 2.273e-03, 2.435e-03, 2.684e-03, 3.033e-03, 3.496e-03, 4.089e-03, + 4.825e-03, 5.719e-03, 6.786e-03, 8.039e-03, 9.493e-03, 1.116e-02, + 1.306e-02, 1.520e-02, 1.758e-02, 2.024e-02, 2.316e-02, 2.638e-02, + 2.988e-02, 3.368e-02, 3.779e-02, 4.222e-02, 4.696e-02, 5.202e-02, + 5.740e-02, 6.311e-02, 6.913e-02, 7.548e-02, 8.215e-02, 8.913e-02, + 9.641e-02, 1.040e-01, 1.119e-01, 1.200e-01, 1.284e-01, 1.371e-01, + 1.460e-01, 1.552e-01, 1.646e-01, 1.741e-01, 1.838e-01, 1.937e-01, + 2.037e-01, 2.139e-01, 2.241e-01, 2.344e-01, 2.447e-01, 2.550e-01, + 2.654e-01, 2.757e-01, 2.859e-01, 2.961e-01, 3.061e-01, 3.161e-01, + 3.258e-01, 3.354e-01, 3.447e-01, 3.538e-01, 3.627e-01, 3.712e-01, + 3.795e-01, 3.874e-01, 3.950e-01, 4.021e-01, 4.089e-01, 4.153e-01, + 4.212e-01, 4.266e-01, 4.316e-01, 4.361e-01, 4.401e-01, 4.436e-01, + 4.466e-01, 4.490e-01, 4.510e-01, 4.523e-01, 4.532e-01, 4.534e-01, + 2.406e-03, 2.369e-03, 2.311e-03, 2.235e-03, 2.146e-03, 2.049e-03, + 1.952e-03, 1.863e-03, 1.789e-03, 1.742e-03, 1.732e-03, 1.770e-03, + 1.869e-03, 2.041e-03, 2.300e-03, 2.659e-03, 3.132e-03, 3.734e-03, + 4.477e-03, 5.378e-03, 6.448e-03, 7.703e-03, 9.156e-03, 1.082e-02, + 1.271e-02, 1.483e-02, 1.720e-02, 1.983e-02, 2.273e-02, 2.590e-02, + 2.936e-02, 3.311e-02, 3.716e-02, 4.152e-02, 4.618e-02, 5.116e-02, + 5.645e-02, 6.205e-02, 6.796e-02, 7.419e-02, 8.072e-02, 8.756e-02, + 9.469e-02, 1.021e-01, 1.098e-01, 1.178e-01, 1.260e-01, 1.345e-01, + 1.432e-01, 1.521e-01, 1.613e-01, 1.706e-01, 1.801e-01, 1.897e-01, + 1.994e-01, 2.093e-01, 2.193e-01, 2.293e-01, 2.393e-01, 2.494e-01, + 2.594e-01, 2.695e-01, 2.794e-01, 2.893e-01, 2.991e-01, 3.087e-01, + 3.182e-01, 3.275e-01, 3.365e-01, 3.454e-01, 3.540e-01, 3.623e-01, + 3.703e-01, 3.779e-01, 3.853e-01, 3.922e-01, 3.988e-01, 4.049e-01, + 4.107e-01, 4.159e-01, 4.208e-01, 4.251e-01, 4.290e-01, 4.324e-01, + 4.353e-01, 4.377e-01, 4.395e-01, 4.408e-01, 4.416e-01, 4.419e-01, + 2.041e-03, 2.006e-03, 1.950e-03, 1.877e-03, 1.791e-03, 1.699e-03, + 1.606e-03, 1.522e-03, 1.456e-03, 1.416e-03, 1.414e-03, 1.462e-03, + 1.571e-03, 1.754e-03, 2.024e-03, 2.395e-03, 2.880e-03, 3.492e-03, + 4.247e-03, 5.158e-03, 6.238e-03, 7.500e-03, 8.959e-03, 1.063e-02, + 1.251e-02, 1.463e-02, 1.700e-02, 1.962e-02, 2.250e-02, 2.565e-02, + 2.909e-02, 3.281e-02, 3.683e-02, 4.114e-02, 4.575e-02, 5.067e-02, + 5.590e-02, 6.143e-02, 6.727e-02, 7.341e-02, 7.985e-02, 8.659e-02, + 9.361e-02, 1.009e-01, 1.085e-01, 1.163e-01, 1.244e-01, 1.328e-01, + 1.413e-01, 1.501e-01, 1.590e-01, 1.682e-01, 1.775e-01, 1.869e-01, + 1.965e-01, 2.062e-01, 2.159e-01, 2.257e-01, 2.355e-01, 2.454e-01, + 2.552e-01, 2.650e-01, 2.748e-01, 2.844e-01, 2.940e-01, 3.034e-01, + 3.126e-01, 3.217e-01, 3.305e-01, 3.392e-01, 3.475e-01, 3.556e-01, + 3.634e-01, 3.709e-01, 3.780e-01, 3.848e-01, 3.912e-01, 3.972e-01, + 4.028e-01, 4.079e-01, 4.126e-01, 4.169e-01, 4.206e-01, 4.239e-01, + 4.267e-01, 4.290e-01, 4.308e-01, 4.321e-01, 4.329e-01, 4.332e-01, + 1.758e-03, 1.723e-03, 1.669e-03, 1.598e-03, 1.515e-03, 1.426e-03, + 1.339e-03, 1.260e-03, 1.200e-03, 1.168e-03, 1.175e-03, 1.232e-03, + 1.353e-03, 1.548e-03, 1.831e-03, 2.217e-03, 2.717e-03, 3.345e-03, + 4.116e-03, 5.043e-03, 6.139e-03, 7.417e-03, 8.890e-03, 1.057e-02, + 1.247e-02, 1.460e-02, 1.697e-02, 1.960e-02, 2.248e-02, 2.564e-02, + 2.907e-02, 3.279e-02, 3.679e-02, 4.109e-02, 4.569e-02, 5.058e-02, + 5.578e-02, 6.128e-02, 6.708e-02, 7.318e-02, 7.958e-02, 8.626e-02, + 9.322e-02, 1.005e-01, 1.080e-01, 1.157e-01, 1.238e-01, 1.320e-01, + 1.405e-01, 1.491e-01, 1.580e-01, 1.670e-01, 1.762e-01, 1.855e-01, + 1.950e-01, 2.045e-01, 2.141e-01, 2.238e-01, 2.334e-01, 2.431e-01, + 2.528e-01, 2.624e-01, 2.720e-01, 2.815e-01, 2.909e-01, 3.001e-01, + 3.092e-01, 3.181e-01, 3.268e-01, 3.353e-01, 3.435e-01, 3.514e-01, + 3.590e-01, 3.664e-01, 3.733e-01, 3.800e-01, 3.862e-01, 3.921e-01, + 3.976e-01, 4.026e-01, 4.072e-01, 4.113e-01, 4.150e-01, 4.182e-01, + 4.210e-01, 4.232e-01, 4.250e-01, 4.263e-01, 4.270e-01, 4.273e-01, + 1.533e-03, 1.499e-03, 1.446e-03, 1.377e-03, 1.297e-03, 1.212e-03, + 1.128e-03, 1.055e-03, 1.002e-03, 9.782e-04, 9.950e-04, 1.064e-03, + 1.197e-03, 1.407e-03, 1.707e-03, 2.110e-03, 2.629e-03, 3.278e-03, + 4.071e-03, 5.021e-03, 6.140e-03, 7.442e-03, 8.940e-03, 1.065e-02, + 1.257e-02, 1.473e-02, 1.712e-02, 1.977e-02, 2.268e-02, 2.586e-02, + 2.931e-02, 3.304e-02, 3.707e-02, 4.138e-02, 4.599e-02, 5.090e-02, + 5.611e-02, 6.162e-02, 6.743e-02, 7.353e-02, 7.992e-02, 8.660e-02, + 9.356e-02, 1.008e-01, 1.083e-01, 1.160e-01, 1.240e-01, 1.322e-01, + 1.407e-01, 1.493e-01, 1.581e-01, 1.671e-01, 1.762e-01, 1.855e-01, + 1.949e-01, 2.043e-01, 2.139e-01, 2.234e-01, 2.330e-01, 2.427e-01, + 2.522e-01, 2.618e-01, 2.713e-01, 2.806e-01, 2.899e-01, 2.990e-01, + 3.080e-01, 3.168e-01, 3.254e-01, 3.337e-01, 3.418e-01, 3.497e-01, + 3.572e-01, 3.644e-01, 3.713e-01, 3.778e-01, 3.840e-01, 3.898e-01, + 3.951e-01, 4.001e-01, 4.046e-01, 4.087e-01, 4.123e-01, 4.155e-01, + 4.182e-01, 4.204e-01, 4.221e-01, 4.234e-01, 4.241e-01, 4.243e-01, + 1.352e-03, 1.319e-03, 1.267e-03, 1.200e-03, 1.122e-03, 1.040e-03, + 9.616e-04, 8.947e-04, 8.487e-04, 8.342e-04, 8.620e-04, 9.439e-04, + 1.092e-03, 1.319e-03, 1.639e-03, 2.063e-03, 2.607e-03, 3.282e-03, + 4.103e-03, 5.082e-03, 6.234e-03, 7.570e-03, 9.103e-03, 1.085e-02, + 1.281e-02, 1.501e-02, 1.744e-02, 2.013e-02, 2.309e-02, 2.631e-02, + 2.981e-02, 3.359e-02, 3.766e-02, 4.202e-02, 4.668e-02, 5.164e-02, + 5.690e-02, 6.245e-02, 6.831e-02, 7.446e-02, 8.090e-02, 8.762e-02, + 9.463e-02, 1.019e-01, 1.094e-01, 1.172e-01, 1.252e-01, 1.335e-01, + 1.420e-01, 1.506e-01, 1.595e-01, 1.685e-01, 1.776e-01, 1.869e-01, + 1.963e-01, 2.057e-01, 2.153e-01, 2.248e-01, 2.344e-01, 2.440e-01, + 2.536e-01, 2.631e-01, 2.725e-01, 2.819e-01, 2.911e-01, 3.002e-01, + 3.092e-01, 3.179e-01, 3.264e-01, 3.347e-01, 3.428e-01, 3.505e-01, + 3.580e-01, 3.652e-01, 3.720e-01, 3.785e-01, 3.846e-01, 3.903e-01, + 3.957e-01, 4.006e-01, 4.051e-01, 4.091e-01, 4.127e-01, 4.158e-01, + 4.185e-01, 4.207e-01, 4.224e-01, 4.236e-01, 4.244e-01, 4.246e-01, + 1.203e-03, 1.171e-03, 1.120e-03, 1.055e-03, 9.802e-04, 9.022e-04, + 8.287e-04, 7.683e-04, 7.307e-04, 7.265e-04, 7.669e-04, 8.638e-04, + 1.030e-03, 1.277e-03, 1.620e-03, 2.070e-03, 2.642e-03, 3.349e-03, + 4.205e-03, 5.222e-03, 6.414e-03, 7.794e-03, 9.373e-03, 1.117e-02, + 1.318e-02, 1.543e-02, 1.793e-02, 2.068e-02, 2.370e-02, 2.699e-02, + 3.056e-02, 3.442e-02, 3.856e-02, 4.301e-02, 4.775e-02, 5.280e-02, + 5.815e-02, 6.380e-02, 6.975e-02, 7.599e-02, 8.253e-02, 8.935e-02, + 9.646e-02, 1.038e-01, 1.115e-01, 1.194e-01, 1.275e-01, 1.358e-01, + 1.444e-01, 1.531e-01, 1.621e-01, 1.712e-01, 1.804e-01, 1.898e-01, + 1.992e-01, 2.088e-01, 2.184e-01, 2.280e-01, 2.377e-01, 2.473e-01, + 2.570e-01, 2.665e-01, 2.760e-01, 2.854e-01, 2.947e-01, 3.038e-01, + 3.128e-01, 3.216e-01, 3.301e-01, 3.385e-01, 3.465e-01, 3.543e-01, + 3.618e-01, 3.690e-01, 3.758e-01, 3.823e-01, 3.884e-01, 3.941e-01, + 3.995e-01, 4.044e-01, 4.089e-01, 4.129e-01, 4.165e-01, 4.196e-01, + 4.223e-01, 4.245e-01, 4.262e-01, 4.274e-01, 4.281e-01, 4.284e-01, + 1.080e-03, 1.049e-03, 9.996e-04, 9.362e-04, 8.642e-04, 7.903e-04, + 7.223e-04, 6.692e-04, 6.409e-04, 6.484e-04, 7.030e-04, 8.170e-04, + 1.003e-03, 1.274e-03, 1.643e-03, 2.123e-03, 2.729e-03, 3.474e-03, + 4.371e-03, 5.433e-03, 6.675e-03, 8.108e-03, 9.746e-03, 1.160e-02, + 1.368e-02, 1.601e-02, 1.858e-02, 2.142e-02, 2.452e-02, 2.791e-02, + 3.157e-02, 3.554e-02, 3.980e-02, 4.436e-02, 4.922e-02, 5.439e-02, + 5.988e-02, 6.566e-02, 7.175e-02, 7.815e-02, 8.484e-02, 9.182e-02, + 9.908e-02, 1.066e-01, 1.144e-01, 1.225e-01, 1.308e-01, 1.393e-01, + 1.480e-01, 1.569e-01, 1.661e-01, 1.753e-01, 1.847e-01, 1.943e-01, + 2.039e-01, 2.136e-01, 2.234e-01, 2.332e-01, 2.430e-01, 2.528e-01, + 2.626e-01, 2.723e-01, 2.819e-01, 2.915e-01, 3.009e-01, 3.102e-01, + 3.192e-01, 3.281e-01, 3.368e-01, 3.452e-01, 3.534e-01, 3.613e-01, + 3.689e-01, 3.761e-01, 3.830e-01, 3.896e-01, 3.958e-01, 4.016e-01, + 4.070e-01, 4.119e-01, 4.165e-01, 4.205e-01, 4.242e-01, 4.273e-01, + 4.300e-01, 4.323e-01, 4.340e-01, 4.352e-01, 4.360e-01, 4.362e-01, + 9.775e-04, 9.467e-04, 8.988e-04, 8.375e-04, 7.687e-04, 6.992e-04, + 6.373e-04, 5.923e-04, 5.744e-04, 5.948e-04, 6.654e-04, 7.985e-04, + 1.007e-03, 1.304e-03, 1.703e-03, 2.219e-03, 2.863e-03, 3.651e-03, + 4.596e-03, 5.711e-03, 7.011e-03, 8.509e-03, 1.022e-02, 1.215e-02, + 1.431e-02, 1.673e-02, 1.940e-02, 2.234e-02, 2.555e-02, 2.906e-02, + 3.285e-02, 3.695e-02, 4.135e-02, 4.607e-02, 5.109e-02, 5.644e-02, + 6.210e-02, 6.807e-02, 7.435e-02, 8.095e-02, 8.785e-02, 9.505e-02, + 1.025e-01, 1.103e-01, 1.183e-01, 1.266e-01, 1.352e-01, 1.439e-01, + 1.529e-01, 1.621e-01, 1.715e-01, 1.810e-01, 1.907e-01, 2.005e-01, + 2.104e-01, 2.204e-01, 2.304e-01, 2.405e-01, 2.506e-01, 2.606e-01, + 2.707e-01, 2.807e-01, 2.905e-01, 3.003e-01, 3.100e-01, 3.195e-01, + 3.288e-01, 3.379e-01, 3.468e-01, 3.555e-01, 3.638e-01, 3.719e-01, + 3.797e-01, 3.871e-01, 3.942e-01, 4.009e-01, 4.073e-01, 4.132e-01, + 4.187e-01, 4.238e-01, 4.284e-01, 4.326e-01, 4.363e-01, 4.396e-01, + 4.423e-01, 4.446e-01, 4.464e-01, 4.476e-01, 4.484e-01, 4.486e-01, + 8.906e-04, 8.605e-04, 8.140e-04, 7.550e-04, 6.896e-04, 6.249e-04, + 5.697e-04, 5.335e-04, 5.270e-04, 5.617e-04, 6.499e-04, 8.042e-04, + 1.038e-03, 1.364e-03, 1.797e-03, 2.351e-03, 3.039e-03, 3.876e-03, + 4.876e-03, 6.053e-03, 7.420e-03, 8.992e-03, 1.078e-02, 1.280e-02, + 1.507e-02, 1.759e-02, 2.038e-02, 2.344e-02, 2.679e-02, 3.044e-02, + 3.440e-02, 3.866e-02, 4.325e-02, 4.815e-02, 5.338e-02, 5.894e-02, + 6.483e-02, 7.104e-02, 7.757e-02, 8.443e-02, 9.160e-02, 9.908e-02, + 1.069e-01, 1.149e-01, 1.233e-01, 1.319e-01, 1.408e-01, 1.499e-01, + 1.592e-01, 1.688e-01, 1.785e-01, 1.884e-01, 1.984e-01, 2.086e-01, + 2.189e-01, 2.293e-01, 2.397e-01, 2.501e-01, 2.606e-01, 2.711e-01, + 2.815e-01, 2.919e-01, 3.021e-01, 3.123e-01, 3.223e-01, 3.322e-01, + 3.419e-01, 3.513e-01, 3.606e-01, 3.696e-01, 3.782e-01, 3.866e-01, + 3.947e-01, 4.024e-01, 4.098e-01, 4.168e-01, 4.233e-01, 4.295e-01, + 4.352e-01, 4.405e-01, 4.453e-01, 4.497e-01, 4.535e-01, 4.569e-01, + 4.598e-01, 4.621e-01, 4.640e-01, 4.653e-01, 4.661e-01, 4.663e-01, + 8.164e-04, 7.872e-04, 7.421e-04, 6.855e-04, 6.237e-04, 5.643e-04, + 5.163e-04, 4.896e-04, 4.955e-04, 5.459e-04, 6.532e-04, 8.307e-04, + 1.092e-03, 1.450e-03, 1.921e-03, 2.517e-03, 3.254e-03, 4.146e-03, + 5.207e-03, 6.453e-03, 7.897e-03, 9.555e-03, 1.144e-02, 1.356e-02, + 1.594e-02, 1.859e-02, 2.151e-02, 2.473e-02, 2.825e-02, 3.207e-02, + 3.622e-02, 4.068e-02, 4.549e-02, 5.062e-02, 5.610e-02, 6.192e-02, + 6.809e-02, 7.459e-02, 8.144e-02, 8.862e-02, 9.613e-02, 1.040e-01, + 1.121e-01, 1.206e-01, 1.293e-01, 1.384e-01, 1.476e-01, 1.572e-01, + 1.670e-01, 1.770e-01, 1.872e-01, 1.976e-01, 2.081e-01, 2.188e-01, + 2.296e-01, 2.405e-01, 2.514e-01, 2.624e-01, 2.734e-01, 2.844e-01, + 2.953e-01, 3.062e-01, 3.170e-01, 3.277e-01, 3.383e-01, 3.486e-01, + 3.588e-01, 3.688e-01, 3.785e-01, 3.879e-01, 3.971e-01, 4.059e-01, + 4.144e-01, 4.225e-01, 4.303e-01, 4.376e-01, 4.446e-01, 4.510e-01, + 4.571e-01, 4.626e-01, 4.677e-01, 4.723e-01, 4.763e-01, 4.799e-01, + 4.829e-01, 4.854e-01, 4.873e-01, 4.887e-01, 4.895e-01, 4.898e-01, + 7.526e-04, 7.243e-04, 6.807e-04, 6.267e-04, 5.688e-04, 5.150e-04, + 4.746e-04, 4.583e-04, 4.775e-04, 5.446e-04, 6.726e-04, 8.751e-04, + 1.166e-03, 1.559e-03, 2.070e-03, 2.713e-03, 3.504e-03, 4.456e-03, + 5.586e-03, 6.909e-03, 8.440e-03, 1.019e-02, 1.219e-02, 1.443e-02, + 1.694e-02, 1.973e-02, 2.282e-02, 2.621e-02, 2.991e-02, 3.394e-02, + 3.831e-02, 4.302e-02, 4.808e-02, 5.349e-02, 5.927e-02, 6.540e-02, + 7.190e-02, 7.876e-02, 8.597e-02, 9.355e-02, 1.015e-01, 1.097e-01, + 1.183e-01, 1.273e-01, 1.365e-01, 1.460e-01, 1.559e-01, 1.660e-01, + 1.763e-01, 1.869e-01, 1.977e-01, 2.087e-01, 2.199e-01, 2.312e-01, + 2.426e-01, 2.541e-01, 2.658e-01, 2.774e-01, 2.891e-01, 3.008e-01, + 3.124e-01, 3.240e-01, 3.354e-01, 3.468e-01, 3.580e-01, 3.691e-01, + 3.799e-01, 3.905e-01, 4.008e-01, 4.109e-01, 4.206e-01, 4.300e-01, + 4.391e-01, 4.478e-01, 4.560e-01, 4.638e-01, 4.712e-01, 4.781e-01, + 4.846e-01, 4.905e-01, 4.959e-01, 5.008e-01, 5.051e-01, 5.089e-01, + 5.121e-01, 5.147e-01, 5.168e-01, 5.183e-01, 5.192e-01, 5.195e-01, + 6.975e-04, 6.699e-04, 6.280e-04, 5.767e-04, 5.228e-04, 4.749e-04, + 4.427e-04, 4.373e-04, 4.707e-04, 5.557e-04, 7.058e-04, 9.351e-04, + 1.258e-03, 1.689e-03, 2.244e-03, 2.938e-03, 3.787e-03, 4.806e-03, + 6.012e-03, 7.420e-03, 9.048e-03, 1.091e-02, 1.302e-02, 1.540e-02, + 1.806e-02, 2.102e-02, 2.429e-02, 2.787e-02, 3.180e-02, 3.606e-02, + 4.069e-02, 4.568e-02, 5.103e-02, 5.677e-02, 6.289e-02, 6.939e-02, + 7.627e-02, 8.355e-02, 9.120e-02, 9.924e-02, 1.076e-01, 1.164e-01, + 1.256e-01, 1.351e-01, 1.449e-01, 1.550e-01, 1.655e-01, 1.762e-01, + 1.873e-01, 1.986e-01, 2.101e-01, 2.218e-01, 2.337e-01, 2.458e-01, + 2.581e-01, 2.704e-01, 2.828e-01, 2.953e-01, 3.078e-01, 3.203e-01, + 3.328e-01, 3.452e-01, 3.575e-01, 3.697e-01, 3.818e-01, 3.936e-01, + 4.053e-01, 4.167e-01, 4.278e-01, 4.386e-01, 4.491e-01, 4.592e-01, + 4.689e-01, 4.783e-01, 4.872e-01, 4.956e-01, 5.035e-01, 5.110e-01, + 5.179e-01, 5.243e-01, 5.301e-01, 5.354e-01, 5.400e-01, 5.441e-01, + 5.476e-01, 5.504e-01, 5.526e-01, 5.542e-01, 5.552e-01, 5.555e-01, + 6.494e-04, 6.228e-04, 5.825e-04, 5.339e-04, 4.843e-04, 4.425e-04, + 4.189e-04, 4.251e-04, 4.735e-04, 5.775e-04, 7.511e-04, 1.009e-03, + 1.366e-03, 1.838e-03, 2.440e-03, 3.189e-03, 4.101e-03, 5.193e-03, + 6.483e-03, 7.986e-03, 9.720e-03, 1.170e-02, 1.395e-02, 1.648e-02, + 1.931e-02, 2.245e-02, 2.592e-02, 2.974e-02, 3.391e-02, 3.844e-02, + 4.336e-02, 4.866e-02, 5.436e-02, 6.047e-02, 6.698e-02, 7.390e-02, + 8.123e-02, 8.898e-02, 9.715e-02, 1.057e-01, 1.147e-01, 1.241e-01, + 1.338e-01, 1.440e-01, 1.545e-01, 1.653e-01, 1.765e-01, 1.881e-01, + 1.999e-01, 2.120e-01, 2.244e-01, 2.370e-01, 2.498e-01, 2.628e-01, + 2.760e-01, 2.892e-01, 3.026e-01, 3.161e-01, 3.296e-01, 3.431e-01, + 3.566e-01, 3.700e-01, 3.833e-01, 3.965e-01, 4.095e-01, 4.223e-01, + 4.349e-01, 4.473e-01, 4.593e-01, 4.710e-01, 4.824e-01, 4.933e-01, + 5.039e-01, 5.140e-01, 5.236e-01, 5.328e-01, 5.414e-01, 5.495e-01, + 5.570e-01, 5.639e-01, 5.702e-01, 5.759e-01, 5.810e-01, 5.854e-01, + 5.892e-01, 5.922e-01, 5.947e-01, 5.964e-01, 5.974e-01, 5.978e-01, + 6.073e-04, 5.815e-04, 5.430e-04, 4.972e-04, 4.520e-04, 4.166e-04, + 4.020e-04, 4.203e-04, 4.845e-04, 6.086e-04, 8.072e-04, 1.095e-03, + 1.489e-03, 2.004e-03, 2.657e-03, 3.466e-03, 4.447e-03, 5.619e-03, + 6.999e-03, 8.606e-03, 1.046e-02, 1.258e-02, 1.497e-02, 1.767e-02, + 2.069e-02, 2.404e-02, 2.774e-02, 3.180e-02, 3.625e-02, 4.109e-02, + 4.633e-02, 5.199e-02, 5.808e-02, 6.460e-02, 7.155e-02, 7.895e-02, + 8.679e-02, 9.508e-02, 1.038e-01, 1.130e-01, 1.226e-01, 1.327e-01, + 1.431e-01, 1.540e-01, 1.653e-01, 1.770e-01, 1.890e-01, 2.014e-01, + 2.142e-01, 2.272e-01, 2.406e-01, 2.542e-01, 2.680e-01, 2.821e-01, + 2.963e-01, 3.107e-01, 3.252e-01, 3.397e-01, 3.544e-01, 3.690e-01, + 3.836e-01, 3.982e-01, 4.126e-01, 4.269e-01, 4.411e-01, 4.550e-01, + 4.687e-01, 4.821e-01, 4.952e-01, 5.079e-01, 5.203e-01, 5.322e-01, + 5.437e-01, 5.547e-01, 5.652e-01, 5.751e-01, 5.845e-01, 5.933e-01, + 6.014e-01, 6.090e-01, 6.158e-01, 6.220e-01, 6.276e-01, 6.324e-01, + 6.365e-01, 6.398e-01, 6.424e-01, 6.443e-01, 6.454e-01, 6.458e-01, + 5.702e-04, 5.453e-04, 5.085e-04, 4.656e-04, 4.249e-04, 3.963e-04, + 3.911e-04, 4.220e-04, 5.029e-04, 6.481e-04, 8.730e-04, 1.193e-03, + 1.626e-03, 2.187e-03, 2.895e-03, 3.768e-03, 4.824e-03, 6.082e-03, + 7.562e-03, 9.283e-03, 1.127e-02, 1.353e-02, 1.609e-02, 1.898e-02, + 2.220e-02, 2.578e-02, 2.974e-02, 3.408e-02, 3.884e-02, 4.401e-02, + 4.962e-02, 5.568e-02, 6.219e-02, 6.917e-02, 7.662e-02, 8.455e-02, + 9.296e-02, 1.019e-01, 1.112e-01, 1.211e-01, 1.314e-01, 1.422e-01, + 1.535e-01, 1.652e-01, 1.774e-01, 1.900e-01, 2.029e-01, 2.163e-01, + 2.301e-01, 2.442e-01, 2.586e-01, 2.733e-01, 2.883e-01, 3.035e-01, + 3.190e-01, 3.345e-01, 3.503e-01, 3.661e-01, 3.820e-01, 3.978e-01, + 4.137e-01, 4.295e-01, 4.452e-01, 4.608e-01, 4.762e-01, 4.914e-01, + 5.062e-01, 5.208e-01, 5.351e-01, 5.489e-01, 5.624e-01, 5.754e-01, + 5.878e-01, 5.998e-01, 6.112e-01, 6.220e-01, 6.322e-01, 6.418e-01, + 6.507e-01, 6.589e-01, 6.664e-01, 6.731e-01, 6.791e-01, 6.843e-01, + 6.888e-01, 6.924e-01, 6.953e-01, 6.973e-01, 6.986e-01, 6.990e-01, + 5.374e-04, 5.134e-04, 4.783e-04, 4.384e-04, 4.023e-04, 3.806e-04, + 3.852e-04, 4.295e-04, 5.277e-04, 6.953e-04, 9.480e-04, 1.303e-03, + 1.777e-03, 2.388e-03, 3.154e-03, 4.096e-03, 5.233e-03, 6.585e-03, + 8.174e-03, 1.002e-02, 1.214e-02, 1.457e-02, 1.731e-02, 2.040e-02, + 2.385e-02, 2.769e-02, 3.193e-02, 3.658e-02, 4.168e-02, 4.722e-02, + 5.323e-02, 5.973e-02, 6.671e-02, 7.420e-02, 8.220e-02, 9.071e-02, + 9.975e-02, 1.093e-01, 1.194e-01, 1.300e-01, 1.411e-01, 1.528e-01, + 1.649e-01, 1.775e-01, 1.906e-01, 2.042e-01, 2.183e-01, 2.327e-01, + 2.476e-01, 2.628e-01, 2.784e-01, 2.944e-01, 3.106e-01, 3.271e-01, + 3.438e-01, 3.607e-01, 3.778e-01, 3.949e-01, 4.122e-01, 4.294e-01, + 4.466e-01, 4.638e-01, 4.809e-01, 4.978e-01, 5.145e-01, 5.309e-01, + 5.471e-01, 5.630e-01, 5.784e-01, 5.935e-01, 6.081e-01, 6.222e-01, + 6.357e-01, 6.487e-01, 6.611e-01, 6.729e-01, 6.839e-01, 6.943e-01, + 7.040e-01, 7.128e-01, 7.210e-01, 7.283e-01, 7.348e-01, 7.404e-01, + 7.453e-01, 7.492e-01, 7.523e-01, 7.545e-01, 7.559e-01, 7.563e-01, + 5.082e-04, 4.851e-04, 4.517e-04, 4.149e-04, 3.836e-04, 3.691e-04, + 3.838e-04, 4.420e-04, 5.585e-04, 7.495e-04, 1.032e-03, 1.423e-03, + 1.941e-03, 2.605e-03, 3.435e-03, 4.451e-03, 5.675e-03, 7.130e-03, + 8.836e-03, 1.082e-02, 1.310e-02, 1.570e-02, 1.864e-02, 2.196e-02, + 2.566e-02, 2.977e-02, 3.432e-02, 3.931e-02, 4.478e-02, 5.073e-02, + 5.718e-02, 6.416e-02, 7.166e-02, 7.970e-02, 8.830e-02, 9.745e-02, + 1.072e-01, 1.175e-01, 1.283e-01, 1.397e-01, 1.517e-01, 1.642e-01, + 1.773e-01, 1.910e-01, 2.051e-01, 2.198e-01, 2.349e-01, 2.506e-01, + 2.666e-01, 2.831e-01, 3.000e-01, 3.172e-01, 3.348e-01, 3.526e-01, + 3.707e-01, 3.890e-01, 4.075e-01, 4.260e-01, 4.447e-01, 4.634e-01, + 4.820e-01, 5.006e-01, 5.191e-01, 5.374e-01, 5.555e-01, 5.733e-01, + 5.908e-01, 6.080e-01, 6.247e-01, 6.410e-01, 6.568e-01, 6.720e-01, + 6.867e-01, 7.007e-01, 7.141e-01, 7.268e-01, 7.388e-01, 7.500e-01, + 7.604e-01, 7.700e-01, 7.787e-01, 7.866e-01, 7.937e-01, 7.998e-01, + 8.050e-01, 8.092e-01, 8.126e-01, 8.150e-01, 8.164e-01, 8.169e-01, + 4.822e-04, 4.600e-04, 4.284e-04, 3.946e-04, 3.683e-04, 3.611e-04, + 3.865e-04, 4.592e-04, 5.949e-04, 8.105e-04, 1.124e-03, 1.553e-03, + 2.118e-03, 2.839e-03, 3.736e-03, 4.833e-03, 6.152e-03, 7.716e-03, + 9.551e-03, 1.168e-02, 1.413e-02, 1.692e-02, 2.008e-02, 2.364e-02, + 2.762e-02, 3.203e-02, 3.691e-02, 4.228e-02, 4.815e-02, 5.455e-02, + 6.148e-02, 6.898e-02, 7.704e-02, 8.569e-02, 9.494e-02, 1.048e-01, + 1.152e-01, 1.263e-01, 1.380e-01, 1.503e-01, 1.632e-01, 1.767e-01, + 1.908e-01, 2.055e-01, 2.208e-01, 2.366e-01, 2.529e-01, 2.698e-01, + 2.871e-01, 3.049e-01, 3.231e-01, 3.418e-01, 3.607e-01, 3.800e-01, + 3.995e-01, 4.192e-01, 4.392e-01, 4.592e-01, 4.794e-01, 4.995e-01, + 5.196e-01, 5.397e-01, 5.596e-01, 5.794e-01, 5.989e-01, 6.181e-01, + 6.369e-01, 6.554e-01, 6.734e-01, 6.909e-01, 7.079e-01, 7.243e-01, + 7.401e-01, 7.551e-01, 7.695e-01, 7.831e-01, 7.960e-01, 8.080e-01, + 8.192e-01, 8.295e-01, 8.389e-01, 8.473e-01, 8.548e-01, 8.614e-01, + 8.670e-01, 8.715e-01, 8.751e-01, 8.777e-01, 8.792e-01, 8.797e-01, + 4.588e-04, 4.375e-04, 4.077e-04, 3.771e-04, 3.559e-04, 3.565e-04, + 3.929e-04, 4.807e-04, 6.365e-04, 8.780e-04, 1.224e-03, 1.694e-03, + 2.309e-03, 3.090e-03, 4.060e-03, 5.243e-03, 6.663e-03, 8.347e-03, + 1.032e-02, 1.261e-02, 1.524e-02, 1.824e-02, 2.164e-02, 2.547e-02, + 2.974e-02, 3.449e-02, 3.973e-02, 4.550e-02, 5.181e-02, 5.869e-02, + 6.615e-02, 7.421e-02, 8.289e-02, 9.219e-02, 1.021e-01, 1.127e-01, + 1.240e-01, 1.359e-01, 1.485e-01, 1.617e-01, 1.756e-01, 1.902e-01, + 2.054e-01, 2.212e-01, 2.376e-01, 2.547e-01, 2.723e-01, 2.904e-01, + 3.091e-01, 3.283e-01, 3.479e-01, 3.679e-01, 3.883e-01, 4.090e-01, + 4.301e-01, 4.513e-01, 4.727e-01, 4.943e-01, 5.159e-01, 5.376e-01, + 5.592e-01, 5.807e-01, 6.021e-01, 6.232e-01, 6.441e-01, 6.647e-01, + 6.849e-01, 7.047e-01, 7.239e-01, 7.427e-01, 7.608e-01, 7.783e-01, + 7.952e-01, 8.113e-01, 8.266e-01, 8.411e-01, 8.548e-01, 8.676e-01, + 8.795e-01, 8.905e-01, 9.005e-01, 9.095e-01, 9.175e-01, 9.244e-01, + 9.304e-01, 9.352e-01, 9.390e-01, 9.417e-01, 9.434e-01, 9.439e-01, + 4.379e-04, 4.174e-04, 3.895e-04, 3.621e-04, 3.462e-04, 3.548e-04, + 4.027e-04, 5.062e-04, 6.830e-04, 9.517e-04, 1.332e-03, 1.845e-03, + 2.512e-03, 3.358e-03, 4.406e-03, 5.681e-03, 7.211e-03, 9.024e-03, + 1.115e-02, 1.361e-02, 1.644e-02, 1.967e-02, 2.333e-02, 2.744e-02, + 3.203e-02, 3.714e-02, 4.278e-02, 4.899e-02, 5.578e-02, 6.318e-02, + 7.120e-02, 7.988e-02, 8.921e-02, 9.923e-02, 1.099e-01, 1.213e-01, + 1.334e-01, 1.463e-01, 1.598e-01, 1.741e-01, 1.890e-01, 2.047e-01, + 2.210e-01, 2.380e-01, 2.557e-01, 2.740e-01, 2.930e-01, 3.125e-01, + 3.326e-01, 3.531e-01, 3.742e-01, 3.957e-01, 4.176e-01, 4.398e-01, + 4.623e-01, 4.851e-01, 5.080e-01, 5.311e-01, 5.542e-01, 5.773e-01, + 6.004e-01, 6.234e-01, 6.462e-01, 6.688e-01, 6.910e-01, 7.129e-01, + 7.344e-01, 7.554e-01, 7.759e-01, 7.958e-01, 8.151e-01, 8.337e-01, + 8.515e-01, 8.686e-01, 8.848e-01, 9.002e-01, 9.147e-01, 9.282e-01, + 9.408e-01, 9.524e-01, 9.629e-01, 9.724e-01, 9.809e-01, 9.882e-01, + 9.945e-01, 9.996e-01, 1.004e+00, 1.006e+00, 1.008e+00, 1.009e+00, + 4.190e-04, 3.994e-04, 3.733e-04, 3.492e-04, 3.388e-04, 3.557e-04, + 4.157e-04, 5.360e-04, 7.351e-04, 1.033e-03, 1.450e-03, 2.010e-03, + 2.735e-03, 3.650e-03, 4.783e-03, 6.160e-03, 7.810e-03, 9.764e-03, + 1.205e-02, 1.470e-02, 1.775e-02, 2.123e-02, 2.517e-02, 2.960e-02, + 3.454e-02, 4.004e-02, 4.612e-02, 5.280e-02, 6.011e-02, 6.807e-02, + 7.671e-02, 8.604e-02, 9.609e-02, 1.069e-01, 1.184e-01, 1.307e-01, + 1.437e-01, 1.575e-01, 1.720e-01, 1.873e-01, 2.034e-01, 2.202e-01, + 2.378e-01, 2.561e-01, 2.751e-01, 2.947e-01, 3.150e-01, 3.359e-01, + 3.574e-01, 3.795e-01, 4.020e-01, 4.250e-01, 4.484e-01, 4.721e-01, + 4.962e-01, 5.205e-01, 5.449e-01, 5.695e-01, 5.941e-01, 6.187e-01, + 6.433e-01, 6.677e-01, 6.919e-01, 7.158e-01, 7.394e-01, 7.626e-01, + 7.854e-01, 8.076e-01, 8.292e-01, 8.502e-01, 8.706e-01, 8.902e-01, + 9.090e-01, 9.270e-01, 9.441e-01, 9.602e-01, 9.755e-01, 9.897e-01, + 1.003e+00, 1.015e+00, 1.026e+00, 1.036e+00, 1.045e+00, 1.053e+00, + 1.059e+00, 1.065e+00, 1.069e+00, 1.072e+00, 1.074e+00, 1.074e+00, + 4.018e-04, 3.829e-04, 3.584e-04, 3.375e-04, 3.327e-04, 3.587e-04, + 4.322e-04, 5.718e-04, 7.971e-04, 1.129e-03, 1.591e-03, 2.206e-03, + 3.001e-03, 4.000e-03, 5.234e-03, 6.732e-03, 8.525e-03, 1.064e-02, + 1.312e-02, 1.600e-02, 1.930e-02, 2.306e-02, 2.731e-02, 3.209e-02, + 3.743e-02, 4.336e-02, 4.991e-02, 5.711e-02, 6.498e-02, 7.355e-02, + 8.285e-02, 9.289e-02, 1.037e-01, 1.153e-01, 1.276e-01, 1.408e-01, + 1.548e-01, 1.696e-01, 1.852e-01, 2.016e-01, 2.189e-01, 2.369e-01, + 2.557e-01, 2.753e-01, 2.956e-01, 3.166e-01, 3.383e-01, 3.606e-01, + 3.836e-01, 4.071e-01, 4.312e-01, 4.557e-01, 4.806e-01, 5.059e-01, + 5.315e-01, 5.573e-01, 5.833e-01, 6.094e-01, 6.356e-01, 6.617e-01, + 6.878e-01, 7.136e-01, 7.393e-01, 7.646e-01, 7.896e-01, 8.141e-01, + 8.382e-01, 8.617e-01, 8.845e-01, 9.067e-01, 9.282e-01, 9.488e-01, + 9.686e-01, 9.876e-01, 1.006e+00, 1.023e+00, 1.039e+00, 1.054e+00, + 1.067e+00, 1.080e+00, 1.092e+00, 1.102e+00, 1.112e+00, 1.120e+00, + 1.127e+00, 1.132e+00, 1.137e+00, 1.140e+00, 1.142e+00, 1.142e+00, + 3.861e-04, 3.679e-04, 3.450e-04, 3.275e-04, 3.285e-04, 3.641e-04, + 4.521e-04, 6.123e-04, 8.659e-04, 1.236e-03, 1.746e-03, 2.422e-03, + 3.291e-03, 4.383e-03, 5.728e-03, 7.358e-03, 9.307e-03, 1.161e-02, + 1.430e-02, 1.741e-02, 2.098e-02, 2.505e-02, 2.965e-02, 3.482e-02, + 4.058e-02, 4.698e-02, 5.404e-02, 6.179e-02, 7.026e-02, 7.949e-02, + 8.948e-02, 1.003e-01, 1.119e-01, 1.243e-01, 1.376e-01, 1.517e-01, + 1.667e-01, 1.826e-01, 1.993e-01, 2.169e-01, 2.353e-01, 2.546e-01, + 2.747e-01, 2.956e-01, 3.173e-01, 3.397e-01, 3.629e-01, 3.867e-01, + 4.112e-01, 4.362e-01, 4.618e-01, 4.879e-01, 5.144e-01, 5.412e-01, + 5.684e-01, 5.958e-01, 6.233e-01, 6.510e-01, 6.786e-01, 7.063e-01, + 7.338e-01, 7.611e-01, 7.882e-01, 8.149e-01, 8.412e-01, 8.671e-01, + 8.924e-01, 9.171e-01, 9.411e-01, 9.644e-01, 9.870e-01, 1.009e+00, + 1.029e+00, 1.049e+00, 1.068e+00, 1.086e+00, 1.103e+00, 1.119e+00, + 1.133e+00, 1.146e+00, 1.159e+00, 1.170e+00, 1.179e+00, 1.188e+00, + 1.195e+00, 1.201e+00, 1.205e+00, 1.209e+00, 1.211e+00, 1.211e+00, + 3.719e-04, 3.543e-04, 3.330e-04, 3.188e-04, 3.260e-04, 3.718e-04, + 4.754e-04, 6.579e-04, 9.422e-04, 1.353e-03, 1.915e-03, 2.658e-03, + 3.610e-03, 4.803e-03, 6.270e-03, 8.045e-03, 1.016e-02, 1.267e-02, + 1.558e-02, 1.896e-02, 2.283e-02, 2.724e-02, 3.221e-02, 3.779e-02, + 4.401e-02, 5.091e-02, 5.852e-02, 6.687e-02, 7.600e-02, 8.592e-02, + 9.666e-02, 1.083e-01, 1.207e-01, 1.340e-01, 1.483e-01, 1.634e-01, + 1.795e-01, 1.965e-01, 2.144e-01, 2.332e-01, 2.529e-01, 2.735e-01, + 2.949e-01, 3.172e-01, 3.403e-01, 3.642e-01, 3.889e-01, 4.142e-01, + 4.402e-01, 4.668e-01, 4.940e-01, 5.216e-01, 5.497e-01, 5.781e-01, + 6.068e-01, 6.358e-01, 6.649e-01, 6.940e-01, 7.232e-01, 7.523e-01, + 7.813e-01, 8.100e-01, 8.385e-01, 8.666e-01, 8.942e-01, 9.214e-01, + 9.479e-01, 9.738e-01, 9.990e-01, 1.023e+00, 1.047e+00, 1.070e+00, + 1.091e+00, 1.112e+00, 1.132e+00, 1.151e+00, 1.168e+00, 1.184e+00, + 1.200e+00, 1.214e+00, 1.226e+00, 1.238e+00, 1.248e+00, 1.257e+00, + 1.264e+00, 1.270e+00, 1.275e+00, 1.278e+00, 1.281e+00, 1.281e+00, + 3.589e-04, 3.418e-04, 3.220e-04, 3.113e-04, 3.251e-04, 3.818e-04, + 5.021e-04, 7.089e-04, 1.027e-03, 1.482e-03, 2.103e-03, 2.919e-03, + 3.962e-03, 5.267e-03, 6.869e-03, 8.804e-03, 1.111e-02, 1.383e-02, + 1.700e-02, 2.067e-02, 2.486e-02, 2.963e-02, 3.501e-02, 4.105e-02, + 4.777e-02, 5.521e-02, 6.341e-02, 7.241e-02, 8.223e-02, 9.290e-02, + 1.044e-01, 1.169e-01, 1.303e-01, 1.446e-01, 1.598e-01, 1.760e-01, + 1.932e-01, 2.114e-01, 2.305e-01, 2.506e-01, 2.716e-01, 2.936e-01, + 3.164e-01, 3.402e-01, 3.648e-01, 3.902e-01, 4.163e-01, 4.432e-01, + 4.708e-01, 4.989e-01, 5.277e-01, 5.569e-01, 5.865e-01, 6.166e-01, + 6.468e-01, 6.773e-01, 7.080e-01, 7.387e-01, 7.694e-01, 7.999e-01, + 8.303e-01, 8.605e-01, 8.903e-01, 9.197e-01, 9.486e-01, 9.770e-01, + 1.005e+00, 1.032e+00, 1.058e+00, 1.084e+00, 1.108e+00, 1.132e+00, + 1.155e+00, 1.176e+00, 1.197e+00, 1.216e+00, 1.234e+00, 1.251e+00, + 1.267e+00, 1.282e+00, 1.295e+00, 1.307e+00, 1.317e+00, 1.326e+00, + 1.334e+00, 1.341e+00, 1.346e+00, 1.349e+00, 1.351e+00, 1.352e+00, + 3.469e-04, 3.303e-04, 3.121e-04, 3.050e-04, 3.256e-04, 3.940e-04, + 5.326e-04, 7.659e-04, 1.121e-03, 1.625e-03, 2.310e-03, 3.208e-03, + 4.353e-03, 5.782e-03, 7.533e-03, 9.647e-03, 1.216e-02, 1.513e-02, + 1.858e-02, 2.256e-02, 2.711e-02, 3.228e-02, 3.811e-02, 4.463e-02, + 5.189e-02, 5.993e-02, 6.877e-02, 7.846e-02, 8.903e-02, 1.005e-01, + 1.129e-01, 1.263e-01, 1.406e-01, 1.559e-01, 1.723e-01, 1.896e-01, + 2.080e-01, 2.274e-01, 2.478e-01, 2.692e-01, 2.916e-01, 3.150e-01, + 3.393e-01, 3.645e-01, 3.906e-01, 4.176e-01, 4.453e-01, 4.738e-01, + 5.029e-01, 5.327e-01, 5.630e-01, 5.938e-01, 6.250e-01, 6.566e-01, + 6.885e-01, 7.205e-01, 7.527e-01, 7.848e-01, 8.170e-01, 8.490e-01, + 8.808e-01, 9.123e-01, 9.435e-01, 9.742e-01, 1.004e+00, 1.034e+00, + 1.063e+00, 1.091e+00, 1.118e+00, 1.145e+00, 1.170e+00, 1.195e+00, + 1.219e+00, 1.241e+00, 1.262e+00, 1.283e+00, 1.301e+00, 1.319e+00, + 1.336e+00, 1.351e+00, 1.364e+00, 1.377e+00, 1.387e+00, 1.397e+00, + 1.405e+00, 1.412e+00, 1.417e+00, 1.420e+00, 1.423e+00, 1.423e+00, + 3.360e-04, 3.198e-04, 3.030e-04, 2.996e-04, 3.276e-04, 4.087e-04, + 5.673e-04, 8.300e-04, 1.226e-03, 1.786e-03, 2.542e-03, 3.532e-03, + 4.791e-03, 6.359e-03, 8.278e-03, 1.059e-02, 1.334e-02, 1.657e-02, + 2.033e-02, 2.467e-02, 2.962e-02, 3.523e-02, 4.154e-02, 4.861e-02, + 5.646e-02, 6.514e-02, 7.468e-02, 8.512e-02, 9.650e-02, 1.088e-01, + 1.222e-01, 1.365e-01, 1.519e-01, 1.683e-01, 1.858e-01, 2.043e-01, + 2.240e-01, 2.446e-01, 2.664e-01, 2.892e-01, 3.130e-01, 3.379e-01, + 3.637e-01, 3.904e-01, 4.181e-01, 4.466e-01, 4.759e-01, 5.059e-01, + 5.367e-01, 5.680e-01, 5.999e-01, 6.323e-01, 6.651e-01, 6.982e-01, + 7.316e-01, 7.652e-01, 7.988e-01, 8.324e-01, 8.660e-01, 8.994e-01, + 9.325e-01, 9.653e-01, 9.977e-01, 1.030e+00, 1.061e+00, 1.092e+00, + 1.122e+00, 1.151e+00, 1.179e+00, 1.207e+00, 1.233e+00, 1.259e+00, + 1.283e+00, 1.306e+00, 1.329e+00, 1.349e+00, 1.369e+00, 1.387e+00, + 1.404e+00, 1.420e+00, 1.434e+00, 1.447e+00, 1.458e+00, 1.468e+00, + 1.476e+00, 1.483e+00, 1.488e+00, 1.492e+00, 1.494e+00, 1.495e+00, + 3.258e-04, 3.099e-04, 2.947e-04, 2.951e-04, 3.311e-04, 4.262e-04, + 6.070e-04, 9.026e-04, 1.344e-03, 1.966e-03, 2.805e-03, 3.898e-03, + 5.286e-03, 7.012e-03, 9.121e-03, 1.166e-02, 1.467e-02, 1.821e-02, + 2.232e-02, 2.704e-02, 3.243e-02, 3.854e-02, 4.540e-02, 5.305e-02, + 6.156e-02, 7.094e-02, 8.125e-02, 9.251e-02, 1.048e-01, 1.180e-01, + 1.323e-01, 1.477e-01, 1.642e-01, 1.818e-01, 2.005e-01, 2.203e-01, + 2.412e-01, 2.633e-01, 2.865e-01, 3.107e-01, 3.360e-01, 3.623e-01, + 3.897e-01, 4.180e-01, 4.472e-01, 4.773e-01, 5.082e-01, 5.398e-01, + 5.721e-01, 6.050e-01, 6.385e-01, 6.724e-01, 7.067e-01, 7.413e-01, + 7.761e-01, 8.111e-01, 8.461e-01, 8.811e-01, 9.160e-01, 9.506e-01, + 9.850e-01, 1.019e+00, 1.053e+00, 1.086e+00, 1.118e+00, 1.150e+00, + 1.181e+00, 1.211e+00, 1.240e+00, 1.269e+00, 1.296e+00, 1.322e+00, + 1.347e+00, 1.371e+00, 1.394e+00, 1.416e+00, 1.436e+00, 1.454e+00, + 1.472e+00, 1.488e+00, 1.502e+00, 1.516e+00, 1.527e+00, 1.537e+00, + 1.546e+00, 1.553e+00, 1.558e+00, 1.562e+00, 1.565e+00, 1.565e+00, + 3.164e-04, 3.008e-04, 2.870e-04, 2.917e-04, 3.364e-04, 4.471e-04, + 6.528e-04, 9.855e-04, 1.480e-03, 2.173e-03, 3.104e-03, 4.315e-03, + 5.851e-03, 7.758e-03, 1.008e-02, 1.288e-02, 1.619e-02, 2.007e-02, + 2.458e-02, 2.975e-02, 3.564e-02, 4.229e-02, 4.976e-02, 5.808e-02, + 6.731e-02, 7.748e-02, 8.862e-02, 1.008e-01, 1.140e-01, 1.283e-01, + 1.437e-01, 1.602e-01, 1.779e-01, 1.967e-01, 2.167e-01, 2.378e-01, + 2.602e-01, 2.836e-01, 3.083e-01, 3.340e-01, 3.608e-01, 3.887e-01, + 4.176e-01, 4.475e-01, 4.782e-01, 5.099e-01, 5.423e-01, 5.755e-01, + 6.093e-01, 6.437e-01, 6.786e-01, 7.140e-01, 7.497e-01, 7.856e-01, + 8.218e-01, 8.580e-01, 8.942e-01, 9.304e-01, 9.664e-01, 1.002e+00, + 1.038e+00, 1.073e+00, 1.107e+00, 1.141e+00, 1.174e+00, 1.207e+00, + 1.239e+00, 1.270e+00, 1.300e+00, 1.329e+00, 1.357e+00, 1.383e+00, + 1.409e+00, 1.434e+00, 1.457e+00, 1.479e+00, 1.499e+00, 1.519e+00, + 1.536e+00, 1.553e+00, 1.567e+00, 1.581e+00, 1.593e+00, 1.603e+00, + 1.612e+00, 1.619e+00, 1.624e+00, 1.628e+00, 1.631e+00, 1.632e+00, + 3.078e-04, 2.924e-04, 2.802e-04, 2.894e-04, 3.440e-04, 4.722e-04, + 7.063e-04, 1.081e-03, 1.636e-03, 2.410e-03, 3.448e-03, 4.797e-03, + 6.503e-03, 8.619e-03, 1.120e-02, 1.429e-02, 1.795e-02, 2.223e-02, + 2.718e-02, 3.286e-02, 3.932e-02, 4.660e-02, 5.476e-02, 6.384e-02, + 7.388e-02, 8.492e-02, 9.701e-02, 1.102e-01, 1.245e-01, 1.399e-01, + 1.565e-01, 1.742e-01, 1.932e-01, 2.133e-01, 2.347e-01, 2.573e-01, + 2.811e-01, 3.061e-01, 3.322e-01, 3.595e-01, 3.879e-01, 4.173e-01, + 4.478e-01, 4.792e-01, 5.115e-01, 5.446e-01, 5.785e-01, 6.131e-01, + 6.483e-01, 6.841e-01, 7.203e-01, 7.569e-01, 7.938e-01, 8.309e-01, + 8.681e-01, 9.053e-01, 9.425e-01, 9.795e-01, 1.016e+00, 1.053e+00, + 1.089e+00, 1.125e+00, 1.160e+00, 1.194e+00, 1.228e+00, 1.261e+00, + 1.293e+00, 1.324e+00, 1.355e+00, 1.384e+00, 1.412e+00, 1.439e+00, + 1.465e+00, 1.490e+00, 1.513e+00, 1.535e+00, 1.556e+00, 1.575e+00, + 1.593e+00, 1.610e+00, 1.625e+00, 1.638e+00, 1.650e+00, 1.660e+00, + 1.669e+00, 1.676e+00, 1.682e+00, 1.686e+00, 1.688e+00, 1.689e+00, + 2.998e-04, 2.847e-04, 2.743e-04, 2.889e-04, 3.546e-04, 5.030e-04, + 7.695e-04, 1.193e-03, 1.817e-03, 2.685e-03, 3.848e-03, 5.355e-03, + 7.260e-03, 9.618e-03, 1.249e-02, 1.592e-02, 1.998e-02, 2.472e-02, + 3.020e-02, 3.647e-02, 4.359e-02, 5.159e-02, 6.055e-02, 7.049e-02, + 8.146e-02, 9.351e-02, 1.067e-01, 1.210e-01, 1.365e-01, 1.531e-01, + 1.710e-01, 1.902e-01, 2.106e-01, 2.322e-01, 2.551e-01, 2.792e-01, + 3.046e-01, 3.311e-01, 3.589e-01, 3.877e-01, 4.177e-01, 4.487e-01, + 4.807e-01, 5.136e-01, 5.473e-01, 5.819e-01, 6.171e-01, 6.530e-01, + 6.894e-01, 7.262e-01, 7.634e-01, 8.010e-01, 8.387e-01, 8.765e-01, + 9.143e-01, 9.521e-01, 9.897e-01, 1.027e+00, 1.064e+00, 1.101e+00, + 1.137e+00, 1.173e+00, 1.208e+00, 1.242e+00, 1.276e+00, 1.309e+00, + 1.341e+00, 1.372e+00, 1.402e+00, 1.431e+00, 1.459e+00, 1.485e+00, + 1.511e+00, 1.535e+00, 1.558e+00, 1.580e+00, 1.600e+00, 1.619e+00, + 1.637e+00, 1.653e+00, 1.668e+00, 1.681e+00, 1.692e+00, 1.702e+00, + 1.711e+00, 1.718e+00, 1.723e+00, 1.727e+00, 1.730e+00, 1.731e+00, + 2.924e-04, 2.778e-04, 2.698e-04, 2.906e-04, 3.693e-04, 5.409e-04, + 8.448e-04, 1.325e-03, 2.028e-03, 3.006e-03, 4.312e-03, 6.003e-03, + 8.139e-03, 1.078e-02, 1.399e-02, 1.783e-02, 2.235e-02, 2.763e-02, + 3.372e-02, 4.068e-02, 4.856e-02, 5.741e-02, 6.728e-02, 7.822e-02, + 9.027e-02, 1.035e-01, 1.179e-01, 1.335e-01, 1.503e-01, 1.684e-01, + 1.878e-01, 2.085e-01, 2.305e-01, 2.537e-01, 2.783e-01, 3.041e-01, + 3.311e-01, 3.594e-01, 3.887e-01, 4.192e-01, 4.508e-01, 4.833e-01, + 5.168e-01, 5.511e-01, 5.862e-01, 6.219e-01, 6.582e-01, 6.951e-01, + 7.323e-01, 7.699e-01, 8.077e-01, 8.457e-01, 8.837e-01, 9.217e-01, + 9.595e-01, 9.971e-01, 1.035e+00, 1.072e+00, 1.108e+00, 1.144e+00, + 1.180e+00, 1.214e+00, 1.249e+00, 1.282e+00, 1.315e+00, 1.346e+00, + 1.377e+00, 1.407e+00, 1.436e+00, 1.463e+00, 1.490e+00, 1.515e+00, + 1.540e+00, 1.563e+00, 1.585e+00, 1.605e+00, 1.624e+00, 1.642e+00, + 1.659e+00, 1.674e+00, 1.687e+00, 1.700e+00, 1.711e+00, 1.720e+00, + 1.728e+00, 1.735e+00, 1.740e+00, 1.743e+00, 1.746e+00, 1.746e+00, + 2.856e-04, 2.719e-04, 2.669e-04, 2.953e-04, 3.895e-04, 5.881e-04, + 9.355e-04, 1.481e-03, 2.277e-03, 3.381e-03, 4.854e-03, 6.760e-03, + 9.164e-03, 1.213e-02, 1.574e-02, 2.004e-02, 2.512e-02, 3.102e-02, + 3.782e-02, 4.558e-02, 5.434e-02, 6.416e-02, 7.510e-02, 8.720e-02, + 1.005e-01, 1.150e-01, 1.308e-01, 1.479e-01, 1.663e-01, 1.860e-01, + 2.071e-01, 2.295e-01, 2.532e-01, 2.783e-01, 3.046e-01, 3.323e-01, + 3.611e-01, 3.911e-01, 4.222e-01, 4.543e-01, 4.875e-01, 5.215e-01, + 5.563e-01, 5.918e-01, 6.280e-01, 6.646e-01, 7.017e-01, 7.392e-01, + 7.768e-01, 8.146e-01, 8.524e-01, 8.901e-01, 9.277e-01, 9.651e-01, + 1.002e+00, 1.039e+00, 1.075e+00, 1.110e+00, 1.145e+00, 1.180e+00, + 1.213e+00, 1.246e+00, 1.278e+00, 1.310e+00, 1.340e+00, 1.369e+00, + 1.398e+00, 1.425e+00, 1.451e+00, 1.476e+00, 1.500e+00, 1.523e+00, + 1.545e+00, 1.566e+00, 1.585e+00, 1.604e+00, 1.621e+00, 1.636e+00, + 1.651e+00, 1.664e+00, 1.676e+00, 1.687e+00, 1.697e+00, 1.705e+00, + 1.712e+00, 1.718e+00, 1.722e+00, 1.725e+00, 1.727e+00, 1.728e+00, + 2.795e-04, 2.670e-04, 2.660e-04, 3.040e-04, 4.168e-04, 6.480e-04, + 1.047e-03, 1.669e-03, 2.575e-03, 3.828e-03, 5.498e-03, 7.655e-03, + 1.037e-02, 1.373e-02, 1.780e-02, 2.265e-02, 2.835e-02, 3.498e-02, + 4.261e-02, 5.128e-02, 6.106e-02, 7.201e-02, 8.416e-02, 9.757e-02, + 1.123e-01, 1.283e-01, 1.457e-01, 1.644e-01, 1.846e-01, 2.061e-01, + 2.290e-01, 2.533e-01, 2.789e-01, 3.059e-01, 3.342e-01, 3.637e-01, + 3.943e-01, 4.261e-01, 4.589e-01, 4.926e-01, 5.272e-01, 5.626e-01, + 5.985e-01, 6.350e-01, 6.719e-01, 7.092e-01, 7.466e-01, 7.841e-01, + 8.215e-01, 8.588e-01, 8.959e-01, 9.327e-01, 9.690e-01, 1.005e+00, + 1.040e+00, 1.075e+00, 1.109e+00, 1.142e+00, 1.174e+00, 1.205e+00, + 1.236e+00, 1.266e+00, 1.294e+00, 1.322e+00, 1.349e+00, 1.374e+00, + 1.399e+00, 1.422e+00, 1.445e+00, 1.466e+00, 1.487e+00, 1.506e+00, + 1.524e+00, 1.541e+00, 1.557e+00, 1.572e+00, 1.586e+00, 1.598e+00, + 1.610e+00, 1.620e+00, 1.630e+00, 1.638e+00, 1.646e+00, 1.652e+00, + 1.658e+00, 1.662e+00, 1.665e+00, 1.668e+00, 1.669e+00, 1.670e+00, + 2.739e-04, 2.633e-04, 2.677e-04, 3.178e-04, 4.540e-04, 7.253e-04, + 1.188e-03, 1.904e-03, 2.942e-03, 4.375e-03, 6.280e-03, 8.738e-03, + 1.183e-02, 1.564e-02, 2.025e-02, 2.574e-02, 3.219e-02, 3.966e-02, + 4.823e-02, 5.796e-02, 6.890e-02, 8.112e-02, 9.465e-02, 1.095e-01, + 1.258e-01, 1.435e-01, 1.626e-01, 1.832e-01, 2.052e-01, 2.286e-01, + 2.535e-01, 2.798e-01, 3.074e-01, 3.363e-01, 3.665e-01, 3.979e-01, + 4.303e-01, 4.638e-01, 4.982e-01, 5.333e-01, 5.691e-01, 6.055e-01, + 6.423e-01, 6.793e-01, 7.166e-01, 7.538e-01, 7.910e-01, 8.279e-01, + 8.645e-01, 9.007e-01, 9.362e-01, 9.712e-01, 1.005e+00, 1.039e+00, + 1.071e+00, 1.103e+00, 1.133e+00, 1.163e+00, 1.192e+00, 1.219e+00, + 1.245e+00, 1.271e+00, 1.295e+00, 1.318e+00, 1.340e+00, 1.361e+00, + 1.380e+00, 1.399e+00, 1.416e+00, 1.433e+00, 1.448e+00, 1.463e+00, + 1.476e+00, 1.489e+00, 1.500e+00, 1.511e+00, 1.521e+00, 1.529e+00, + 1.537e+00, 1.544e+00, 1.551e+00, 1.556e+00, 1.561e+00, 1.565e+00, + 1.569e+00, 1.571e+00, 1.574e+00, 1.575e+00, 1.576e+00, 1.576e+00, + 2.689e-04, 2.608e-04, 2.722e-04, 3.379e-04, 5.036e-04, 8.248e-04, + 1.365e-03, 2.197e-03, 3.396e-03, 5.047e-03, 7.236e-03, 1.005e-02, + 1.359e-02, 1.794e-02, 2.319e-02, 2.942e-02, 3.672e-02, 4.516e-02, + 5.481e-02, 6.574e-02, 7.800e-02, 9.164e-02, 1.067e-01, 1.232e-01, + 1.412e-01, 1.607e-01, 1.817e-01, 2.042e-01, 2.282e-01, 2.536e-01, + 2.805e-01, 3.088e-01, 3.384e-01, 3.693e-01, 4.013e-01, 4.344e-01, + 4.685e-01, 5.035e-01, 5.391e-01, 5.754e-01, 6.121e-01, 6.491e-01, + 6.863e-01, 7.234e-01, 7.605e-01, 7.972e-01, 8.335e-01, 8.692e-01, + 9.043e-01, 9.385e-01, 9.719e-01, 1.004e+00, 1.036e+00, 1.066e+00, + 1.095e+00, 1.122e+00, 1.149e+00, 1.174e+00, 1.198e+00, 1.221e+00, + 1.242e+00, 1.262e+00, 1.281e+00, 1.299e+00, 1.315e+00, 1.330e+00, + 1.344e+00, 1.357e+00, 1.370e+00, 1.381e+00, 1.391e+00, 1.400e+00, + 1.408e+00, 1.415e+00, 1.422e+00, 1.427e+00, 1.433e+00, 1.437e+00, + 1.441e+00, 1.444e+00, 1.447e+00, 1.449e+00, 1.451e+00, 1.453e+00, + 1.454e+00, 1.455e+00, 1.456e+00, 1.456e+00, 1.457e+00, 1.457e+00, + 2.645e-04, 2.597e-04, 2.799e-04, 3.645e-04, 5.659e-04, 9.470e-04, + 1.581e-03, 2.548e-03, 3.938e-03, 5.842e-03, 8.361e-03, 1.159e-02, + 1.564e-02, 2.060e-02, 2.658e-02, 3.365e-02, 4.192e-02, 5.145e-02, + 6.231e-02, 7.457e-02, 8.828e-02, 1.035e-01, 1.202e-01, 1.385e-01, + 1.583e-01, 1.797e-01, 2.027e-01, 2.272e-01, 2.533e-01, 2.808e-01, + 3.097e-01, 3.400e-01, 3.715e-01, 4.042e-01, 4.380e-01, 4.727e-01, + 5.083e-01, 5.445e-01, 5.812e-01, 6.182e-01, 6.554e-01, 6.927e-01, + 7.298e-01, 7.666e-01, 8.029e-01, 8.386e-01, 8.734e-01, 9.074e-01, + 9.403e-01, 9.721e-01, 1.003e+00, 1.032e+00, 1.059e+00, 1.086e+00, + 1.111e+00, 1.134e+00, 1.156e+00, 1.176e+00, 1.195e+00, 1.212e+00, + 1.228e+00, 1.243e+00, 1.256e+00, 1.268e+00, 1.279e+00, 1.288e+00, + 1.297e+00, 1.304e+00, 1.310e+00, 1.315e+00, 1.320e+00, 1.324e+00, + 1.326e+00, 1.329e+00, 1.330e+00, 1.331e+00, 1.332e+00, 1.332e+00, + 1.331e+00, 1.331e+00, 1.330e+00, 1.329e+00, 1.328e+00, 1.328e+00, + 1.327e+00, 1.326e+00, 1.325e+00, 1.325e+00, 1.324e+00, 1.324e+00, + 2.606e-04, 2.597e-04, 2.901e-04, 3.965e-04, 6.381e-04, 1.087e-03, + 1.824e-03, 2.943e-03, 4.543e-03, 6.728e-03, 9.609e-03, 1.330e-02, + 1.790e-02, 2.353e-02, 3.029e-02, 3.828e-02, 4.758e-02, 5.828e-02, + 7.043e-02, 8.411e-02, 9.936e-02, 1.162e-01, 1.347e-01, 1.548e-01, + 1.766e-01, 2.000e-01, 2.250e-01, 2.516e-01, 2.797e-01, 3.093e-01, + 3.402e-01, 3.724e-01, 4.059e-01, 4.403e-01, 4.757e-01, 5.119e-01, + 5.487e-01, 5.859e-01, 6.234e-01, 6.609e-01, 6.984e-01, 7.355e-01, + 7.722e-01, 8.082e-01, 8.434e-01, 8.776e-01, 9.107e-01, 9.425e-01, + 9.729e-01, 1.002e+00, 1.029e+00, 1.055e+00, 1.079e+00, 1.101e+00, + 1.121e+00, 1.140e+00, 1.157e+00, 1.172e+00, 1.186e+00, 1.198e+00, + 1.209e+00, 1.218e+00, 1.225e+00, 1.232e+00, 1.237e+00, 1.240e+00, + 1.243e+00, 1.245e+00, 1.246e+00, 1.246e+00, 1.245e+00, 1.244e+00, + 1.241e+00, 1.239e+00, 1.236e+00, 1.232e+00, 1.229e+00, 1.225e+00, + 1.221e+00, 1.217e+00, 1.213e+00, 1.209e+00, 1.206e+00, 1.202e+00, + 1.199e+00, 1.197e+00, 1.195e+00, 1.194e+00, 1.193e+00, 1.193e+00, + 2.572e-04, 2.605e-04, 3.019e-04, 4.315e-04, 7.159e-04, 1.235e-03, + 2.083e-03, 3.360e-03, 5.180e-03, 7.658e-03, 1.092e-02, 1.508e-02, + 2.026e-02, 2.658e-02, 3.415e-02, 4.308e-02, 5.344e-02, 6.533e-02, + 7.881e-02, 9.394e-02, 1.108e-01, 1.293e-01, 1.495e-01, 1.715e-01, + 1.952e-01, 2.206e-01, 2.477e-01, 2.763e-01, 3.064e-01, 3.380e-01, + 3.709e-01, 4.050e-01, 4.402e-01, 4.763e-01, 5.132e-01, 5.506e-01, + 5.884e-01, 6.265e-01, 6.645e-01, 7.024e-01, 7.398e-01, 7.766e-01, + 8.126e-01, 8.476e-01, 8.814e-01, 9.139e-01, 9.449e-01, 9.743e-01, + 1.002e+00, 1.028e+00, 1.052e+00, 1.074e+00, 1.094e+00, 1.112e+00, + 1.128e+00, 1.142e+00, 1.155e+00, 1.165e+00, 1.174e+00, 1.181e+00, + 1.186e+00, 1.190e+00, 1.193e+00, 1.194e+00, 1.194e+00, 1.193e+00, + 1.190e+00, 1.187e+00, 1.183e+00, 1.178e+00, 1.173e+00, 1.167e+00, + 1.161e+00, 1.154e+00, 1.147e+00, 1.139e+00, 1.132e+00, 1.125e+00, + 1.118e+00, 1.111e+00, 1.104e+00, 1.098e+00, 1.092e+00, 1.087e+00, + 1.083e+00, 1.079e+00, 1.076e+00, 1.074e+00, 1.072e+00, 1.072e+00, + 2.540e-04, 2.617e-04, 3.144e-04, 4.676e-04, 7.952e-04, 1.387e-03, + 2.345e-03, 3.783e-03, 5.823e-03, 8.595e-03, 1.223e-02, 1.686e-02, + 2.262e-02, 2.964e-02, 3.802e-02, 4.787e-02, 5.930e-02, 7.237e-02, + 8.716e-02, 1.037e-01, 1.221e-01, 1.422e-01, 1.642e-01, 1.880e-01, + 2.136e-01, 2.409e-01, 2.699e-01, 3.005e-01, 3.326e-01, 3.661e-01, + 4.008e-01, 4.366e-01, 4.734e-01, 5.110e-01, 5.491e-01, 5.877e-01, + 6.264e-01, 6.650e-01, 7.034e-01, 7.413e-01, 7.785e-01, 8.148e-01, + 8.499e-01, 8.837e-01, 9.160e-01, 9.466e-01, 9.754e-01, 1.002e+00, + 1.027e+00, 1.050e+00, 1.071e+00, 1.089e+00, 1.105e+00, 1.120e+00, + 1.132e+00, 1.142e+00, 1.150e+00, 1.156e+00, 1.160e+00, 1.162e+00, + 1.163e+00, 1.163e+00, 1.161e+00, 1.157e+00, 1.153e+00, 1.147e+00, + 1.141e+00, 1.134e+00, 1.126e+00, 1.117e+00, 1.108e+00, 1.098e+00, + 1.088e+00, 1.078e+00, 1.068e+00, 1.057e+00, 1.047e+00, 1.037e+00, + 1.027e+00, 1.018e+00, 1.009e+00, 1.001e+00, 9.940e-01, 9.873e-01, + 9.816e-01, 9.768e-01, 9.730e-01, 9.703e-01, 9.686e-01, 9.681e-01, + 2.511e-04, 2.631e-04, 3.268e-04, 5.034e-04, 8.741e-04, 1.537e-03, + 2.605e-03, 4.202e-03, 6.462e-03, 9.526e-03, 1.354e-02, 1.864e-02, + 2.497e-02, 3.266e-02, 4.183e-02, 5.260e-02, 6.506e-02, 7.928e-02, + 9.534e-02, 1.133e-01, 1.331e-01, 1.549e-01, 1.785e-01, 2.040e-01, + 2.314e-01, 2.605e-01, 2.913e-01, 3.237e-01, 3.576e-01, 3.928e-01, + 4.292e-01, 4.666e-01, 5.048e-01, 5.437e-01, 5.829e-01, 6.223e-01, + 6.616e-01, 7.007e-01, 7.392e-01, 7.769e-01, 8.136e-01, 8.491e-01, + 8.832e-01, 9.156e-01, 9.462e-01, 9.749e-01, 1.001e+00, 1.026e+00, + 1.048e+00, 1.068e+00, 1.085e+00, 1.100e+00, 1.113e+00, 1.124e+00, + 1.132e+00, 1.138e+00, 1.142e+00, 1.144e+00, 1.145e+00, 1.143e+00, + 1.140e+00, 1.136e+00, 1.130e+00, 1.123e+00, 1.115e+00, 1.106e+00, + 1.096e+00, 1.085e+00, 1.074e+00, 1.062e+00, 1.050e+00, 1.038e+00, + 1.025e+00, 1.012e+00, 9.994e-01, 9.869e-01, 9.745e-01, 9.626e-01, + 9.511e-01, 9.402e-01, 9.299e-01, 9.204e-01, 9.118e-01, 9.041e-01, + 8.975e-01, 8.919e-01, 8.875e-01, 8.844e-01, 8.825e-01, 8.818e-01, + 2.484e-04, 2.645e-04, 3.390e-04, 5.387e-04, 9.521e-04, 1.686e-03, + 2.863e-03, 4.619e-03, 7.097e-03, 1.045e-02, 1.483e-02, 2.039e-02, + 2.728e-02, 3.564e-02, 4.559e-02, 5.725e-02, 7.071e-02, 8.605e-02, + 1.033e-01, 1.226e-01, 1.438e-01, 1.671e-01, 1.923e-01, 2.195e-01, + 2.485e-01, 2.793e-01, 3.118e-01, 3.458e-01, 3.813e-01, 4.181e-01, + 4.559e-01, 4.947e-01, 5.341e-01, 5.739e-01, 6.140e-01, 6.540e-01, + 6.938e-01, 7.330e-01, 7.713e-01, 8.087e-01, 8.447e-01, 8.792e-01, + 9.120e-01, 9.429e-01, 9.717e-01, 9.983e-01, 1.023e+00, 1.044e+00, + 1.064e+00, 1.081e+00, 1.095e+00, 1.107e+00, 1.116e+00, 1.123e+00, + 1.128e+00, 1.131e+00, 1.132e+00, 1.130e+00, 1.127e+00, 1.123e+00, + 1.116e+00, 1.109e+00, 1.100e+00, 1.090e+00, 1.079e+00, 1.067e+00, + 1.055e+00, 1.042e+00, 1.028e+00, 1.014e+00, 9.995e-01, 9.849e-01, + 9.704e-01, 9.558e-01, 9.414e-01, 9.273e-01, 9.135e-01, 9.002e-01, + 8.875e-01, 8.755e-01, 8.642e-01, 8.538e-01, 8.444e-01, 8.360e-01, + 8.288e-01, 8.228e-01, 8.180e-01, 8.146e-01, 8.126e-01, 8.119e-01, + 2.458e-04, 2.659e-04, 3.510e-04, 5.735e-04, 1.029e-03, 1.834e-03, + 3.121e-03, 5.035e-03, 7.731e-03, 1.137e-02, 1.612e-02, 2.214e-02, + 2.959e-02, 3.861e-02, 4.932e-02, 6.185e-02, 7.629e-02, 9.271e-02, + 1.112e-01, 1.317e-01, 1.543e-01, 1.790e-01, 2.057e-01, 2.343e-01, + 2.649e-01, 2.972e-01, 3.313e-01, 3.668e-01, 4.037e-01, 4.418e-01, + 4.809e-01, 5.207e-01, 5.611e-01, 6.017e-01, 6.424e-01, 6.828e-01, + 7.227e-01, 7.617e-01, 7.997e-01, 8.364e-01, 8.715e-01, 9.049e-01, + 9.362e-01, 9.654e-01, 9.922e-01, 1.017e+00, 1.038e+00, 1.058e+00, + 1.074e+00, 1.088e+00, 1.100e+00, 1.109e+00, 1.115e+00, 1.119e+00, + 1.121e+00, 1.120e+00, 1.118e+00, 1.114e+00, 1.108e+00, 1.101e+00, + 1.092e+00, 1.081e+00, 1.070e+00, 1.058e+00, 1.045e+00, 1.031e+00, + 1.016e+00, 1.001e+00, 9.861e-01, 9.705e-01, 9.547e-01, 9.389e-01, + 9.230e-01, 9.073e-01, 8.919e-01, 8.768e-01, 8.622e-01, 8.481e-01, + 8.346e-01, 8.220e-01, 8.101e-01, 7.992e-01, 7.894e-01, 7.807e-01, + 7.732e-01, 7.669e-01, 7.620e-01, 7.584e-01, 7.563e-01, 7.556e-01, + 2.434e-04, 2.673e-04, 3.628e-04, 6.082e-04, 1.107e-03, 1.984e-03, + 3.381e-03, 5.455e-03, 8.372e-03, 1.230e-02, 1.743e-02, 2.391e-02, + 3.191e-02, 4.158e-02, 5.305e-02, 6.644e-02, 8.184e-02, 9.931e-02, + 1.189e-01, 1.407e-01, 1.645e-01, 1.906e-01, 2.186e-01, 2.487e-01, + 2.807e-01, 3.144e-01, 3.498e-01, 3.867e-01, 4.248e-01, 4.641e-01, + 5.042e-01, 5.449e-01, 5.860e-01, 6.271e-01, 6.681e-01, 7.086e-01, + 7.483e-01, 7.870e-01, 8.244e-01, 8.602e-01, 8.942e-01, 9.261e-01, + 9.558e-01, 9.831e-01, 1.008e+00, 1.030e+00, 1.049e+00, 1.066e+00, + 1.080e+00, 1.091e+00, 1.100e+00, 1.106e+00, 1.109e+00, 1.110e+00, + 1.109e+00, 1.106e+00, 1.101e+00, 1.095e+00, 1.086e+00, 1.076e+00, + 1.065e+00, 1.053e+00, 1.040e+00, 1.026e+00, 1.011e+00, 9.961e-01, + 9.803e-01, 9.641e-01, 9.477e-01, 9.311e-01, 9.144e-01, 8.978e-01, + 8.813e-01, 8.650e-01, 8.490e-01, 8.335e-01, 8.184e-01, 8.040e-01, + 7.903e-01, 7.774e-01, 7.654e-01, 7.543e-01, 7.443e-01, 7.355e-01, + 7.279e-01, 7.216e-01, 7.167e-01, 7.131e-01, 7.109e-01, 7.102e-01, + 2.411e-04, 2.687e-04, 3.746e-04, 6.431e-04, 1.185e-03, 2.135e-03, + 3.645e-03, 5.882e-03, 9.024e-03, 1.325e-02, 1.875e-02, 2.569e-02, + 3.425e-02, 4.458e-02, 5.681e-02, 7.104e-02, 8.738e-02, 1.059e-01, + 1.266e-01, 1.495e-01, 1.746e-01, 2.019e-01, 2.313e-01, 2.627e-01, + 2.959e-01, 3.309e-01, 3.675e-01, 4.055e-01, 4.447e-01, 4.849e-01, + 5.258e-01, 5.672e-01, 6.087e-01, 6.501e-01, 6.912e-01, 7.315e-01, + 7.709e-01, 8.089e-01, 8.454e-01, 8.801e-01, 9.127e-01, 9.430e-01, + 9.708e-01, 9.961e-01, 1.019e+00, 1.038e+00, 1.055e+00, 1.069e+00, + 1.081e+00, 1.089e+00, 1.095e+00, 1.098e+00, 1.099e+00, 1.097e+00, + 1.094e+00, 1.088e+00, 1.081e+00, 1.072e+00, 1.062e+00, 1.050e+00, + 1.038e+00, 1.024e+00, 1.009e+00, 9.942e-01, 9.784e-01, 9.621e-01, + 9.455e-01, 9.287e-01, 9.116e-01, 8.945e-01, 8.775e-01, 8.605e-01, + 8.438e-01, 8.273e-01, 8.113e-01, 7.957e-01, 7.806e-01, 7.662e-01, + 7.526e-01, 7.397e-01, 7.278e-01, 7.169e-01, 7.070e-01, 6.983e-01, + 6.908e-01, 6.846e-01, 6.797e-01, 6.762e-01, 6.740e-01, 6.733e-01, + 2.390e-04, 2.702e-04, 3.866e-04, 6.785e-04, 1.265e-03, 2.290e-03, + 3.915e-03, 6.320e-03, 9.691e-03, 1.422e-02, 2.010e-02, 2.752e-02, + 3.664e-02, 4.762e-02, 6.060e-02, 7.569e-02, 9.296e-02, 1.125e-01, + 1.343e-01, 1.583e-01, 1.846e-01, 2.131e-01, 2.437e-01, 2.762e-01, + 3.107e-01, 3.468e-01, 3.844e-01, 4.234e-01, 4.635e-01, 5.044e-01, + 5.458e-01, 5.876e-01, 6.294e-01, 6.708e-01, 7.117e-01, 7.516e-01, + 7.903e-01, 8.275e-01, 8.628e-01, 8.962e-01, 9.272e-01, 9.557e-01, + 9.816e-01, 1.005e+00, 1.025e+00, 1.042e+00, 1.056e+00, 1.068e+00, + 1.076e+00, 1.082e+00, 1.085e+00, 1.086e+00, 1.084e+00, 1.081e+00, + 1.075e+00, 1.067e+00, 1.058e+00, 1.047e+00, 1.035e+00, 1.022e+00, + 1.008e+00, 9.933e-01, 9.779e-01, 9.618e-01, 9.454e-01, 9.286e-01, + 9.116e-01, 8.944e-01, 8.772e-01, 8.600e-01, 8.430e-01, 8.261e-01, + 8.095e-01, 7.932e-01, 7.774e-01, 7.620e-01, 7.473e-01, 7.332e-01, + 7.198e-01, 7.073e-01, 6.957e-01, 6.851e-01, 6.755e-01, 6.671e-01, + 6.599e-01, 6.538e-01, 6.491e-01, 6.457e-01, 6.437e-01, 6.430e-01, + 2.370e-04, 2.718e-04, 3.988e-04, 7.147e-04, 1.347e-03, 2.449e-03, + 4.193e-03, 6.770e-03, 1.038e-02, 1.522e-02, 2.149e-02, 2.938e-02, + 3.907e-02, 5.072e-02, 6.446e-02, 8.038e-02, 9.857e-02, 1.191e-01, + 1.419e-01, 1.670e-01, 1.945e-01, 2.241e-01, 2.558e-01, 2.894e-01, + 3.249e-01, 3.620e-01, 4.005e-01, 4.403e-01, 4.810e-01, 5.224e-01, + 5.643e-01, 6.062e-01, 6.480e-01, 6.892e-01, 7.296e-01, 7.689e-01, + 8.067e-01, 8.428e-01, 8.768e-01, 9.086e-01, 9.378e-01, 9.644e-01, + 9.881e-01, 1.009e+00, 1.027e+00, 1.041e+00, 1.053e+00, 1.062e+00, + 1.068e+00, 1.071e+00, 1.072e+00, 1.070e+00, 1.066e+00, 1.060e+00, + 1.052e+00, 1.043e+00, 1.032e+00, 1.020e+00, 1.006e+00, 9.920e-01, + 9.771e-01, 9.615e-01, 9.454e-01, 9.289e-01, 9.122e-01, 8.952e-01, + 8.781e-01, 8.610e-01, 8.440e-01, 8.270e-01, 8.103e-01, 7.938e-01, + 7.776e-01, 7.618e-01, 7.464e-01, 7.316e-01, 7.173e-01, 7.038e-01, + 6.910e-01, 6.790e-01, 6.679e-01, 6.577e-01, 6.486e-01, 6.406e-01, + 6.337e-01, 6.279e-01, 6.234e-01, 6.202e-01, 6.183e-01, 6.176e-01, + 2.351e-04, 2.736e-04, 4.113e-04, 7.518e-04, 1.431e-03, 2.612e-03, + 4.480e-03, 7.233e-03, 1.108e-02, 1.624e-02, 2.291e-02, 3.129e-02, + 4.156e-02, 5.388e-02, 6.837e-02, 8.513e-02, 1.042e-01, 1.257e-01, + 1.496e-01, 1.757e-01, 2.042e-01, 2.349e-01, 2.676e-01, 3.022e-01, + 3.386e-01, 3.766e-01, 4.159e-01, 4.562e-01, 4.974e-01, 5.391e-01, + 5.811e-01, 6.230e-01, 6.645e-01, 7.053e-01, 7.451e-01, 7.835e-01, + 8.202e-01, 8.549e-01, 8.874e-01, 9.174e-01, 9.447e-01, 9.692e-01, + 9.906e-01, 1.009e+00, 1.024e+00, 1.037e+00, 1.046e+00, 1.052e+00, + 1.055e+00, 1.056e+00, 1.054e+00, 1.050e+00, 1.044e+00, 1.036e+00, + 1.026e+00, 1.015e+00, 1.003e+00, 9.895e-01, 9.751e-01, 9.601e-01, + 9.445e-01, 9.285e-01, 9.121e-01, 8.955e-01, 8.787e-01, 8.619e-01, + 8.450e-01, 8.283e-01, 8.116e-01, 7.952e-01, 7.790e-01, 7.631e-01, + 7.475e-01, 7.324e-01, 7.177e-01, 7.036e-01, 6.901e-01, 6.772e-01, + 6.651e-01, 6.538e-01, 6.433e-01, 6.337e-01, 6.252e-01, 6.176e-01, + 6.111e-01, 6.058e-01, 6.016e-01, 5.986e-01, 5.967e-01, 5.961e-01, + 2.334e-04, 2.755e-04, 4.243e-04, 7.900e-04, 1.518e-03, 2.781e-03, + 4.775e-03, 7.711e-03, 1.181e-02, 1.729e-02, 2.437e-02, 3.325e-02, + 4.410e-02, 5.710e-02, 7.235e-02, 8.994e-02, 1.099e-01, 1.324e-01, + 1.572e-01, 1.844e-01, 2.139e-01, 2.455e-01, 2.792e-01, 3.147e-01, + 3.519e-01, 3.905e-01, 4.304e-01, 4.712e-01, 5.127e-01, 5.545e-01, + 5.964e-01, 6.381e-01, 6.791e-01, 7.193e-01, 7.581e-01, 7.954e-01, + 8.308e-01, 8.640e-01, 8.947e-01, 9.228e-01, 9.481e-01, 9.703e-01, + 9.894e-01, 1.005e+00, 1.018e+00, 1.028e+00, 1.034e+00, 1.038e+00, + 1.039e+00, 1.037e+00, 1.033e+00, 1.027e+00, 1.019e+00, 1.009e+00, + 9.978e-01, 9.853e-01, 9.717e-01, 9.573e-01, 9.423e-01, 9.267e-01, + 9.107e-01, 8.945e-01, 8.781e-01, 8.616e-01, 8.451e-01, 8.286e-01, + 8.123e-01, 7.961e-01, 7.801e-01, 7.643e-01, 7.489e-01, 7.337e-01, + 7.190e-01, 7.047e-01, 6.909e-01, 6.777e-01, 6.650e-01, 6.530e-01, + 6.417e-01, 6.311e-01, 6.214e-01, 6.125e-01, 6.046e-01, 5.976e-01, + 5.916e-01, 5.867e-01, 5.828e-01, 5.800e-01, 5.783e-01, 5.777e-01, + 2.318e-04, 2.776e-04, 4.376e-04, 8.294e-04, 1.607e-03, 2.955e-03, + 5.079e-03, 8.203e-03, 1.256e-02, 1.837e-02, 2.587e-02, 3.525e-02, + 4.670e-02, 6.038e-02, 7.639e-02, 9.482e-02, 1.157e-01, 1.391e-01, + 1.649e-01, 1.930e-01, 2.234e-01, 2.560e-01, 2.905e-01, 3.268e-01, + 3.647e-01, 4.039e-01, 4.442e-01, 4.852e-01, 5.268e-01, 5.686e-01, + 6.102e-01, 6.514e-01, 6.918e-01, 7.310e-01, 7.688e-01, 8.048e-01, + 8.386e-01, 8.701e-01, 8.990e-01, 9.250e-01, 9.480e-01, 9.679e-01, + 9.846e-01, 9.980e-01, 1.008e+00, 1.015e+00, 1.019e+00, 1.021e+00, + 1.019e+00, 1.015e+00, 1.009e+00, 1.001e+00, 9.909e-01, 9.795e-01, + 9.668e-01, 9.532e-01, 9.387e-01, 9.236e-01, 9.080e-01, 8.921e-01, + 8.760e-01, 8.598e-01, 8.436e-01, 8.274e-01, 8.114e-01, 7.955e-01, + 7.798e-01, 7.644e-01, 7.492e-01, 7.344e-01, 7.198e-01, 7.057e-01, + 6.919e-01, 6.786e-01, 6.658e-01, 6.535e-01, 6.418e-01, 6.307e-01, + 6.203e-01, 6.106e-01, 6.017e-01, 5.936e-01, 5.863e-01, 5.800e-01, + 5.745e-01, 5.701e-01, 5.665e-01, 5.640e-01, 5.625e-01, 5.620e-01, + 2.303e-04, 2.798e-04, 4.513e-04, 8.699e-04, 1.699e-03, 3.134e-03, + 5.393e-03, 8.709e-03, 1.333e-02, 1.948e-02, 2.740e-02, 3.730e-02, + 4.936e-02, 6.372e-02, 8.049e-02, 9.975e-02, 1.215e-01, 1.458e-01, + 1.725e-01, 2.016e-01, 2.329e-01, 2.663e-01, 3.016e-01, 3.386e-01, + 3.770e-01, 4.166e-01, 4.572e-01, 4.984e-01, 5.399e-01, 5.814e-01, + 6.226e-01, 6.631e-01, 7.026e-01, 7.408e-01, 7.772e-01, 8.117e-01, + 8.439e-01, 8.735e-01, 9.004e-01, 9.242e-01, 9.449e-01, 9.624e-01, + 9.766e-01, 9.875e-01, 9.952e-01, 9.997e-01, 1.001e+00, 1.000e+00, + 9.963e-01, 9.902e-01, 9.820e-01, 9.721e-01, 9.606e-01, 9.478e-01, + 9.340e-01, 9.193e-01, 9.041e-01, 8.885e-01, 8.726e-01, 8.567e-01, + 8.406e-01, 8.247e-01, 8.089e-01, 7.933e-01, 7.779e-01, 7.628e-01, + 7.480e-01, 7.335e-01, 7.193e-01, 7.054e-01, 6.919e-01, 6.788e-01, + 6.661e-01, 6.539e-01, 6.422e-01, 6.309e-01, 6.203e-01, 6.102e-01, + 6.008e-01, 5.921e-01, 5.840e-01, 5.768e-01, 5.703e-01, 5.646e-01, + 5.597e-01, 5.557e-01, 5.526e-01, 5.503e-01, 5.489e-01, 5.485e-01, + 2.290e-04, 2.822e-04, 4.655e-04, 9.116e-04, 1.794e-03, 3.318e-03, + 5.715e-03, 9.231e-03, 1.412e-02, 2.062e-02, 2.898e-02, 3.940e-02, + 5.207e-02, 6.712e-02, 8.466e-02, 1.047e-01, 1.274e-01, 1.526e-01, + 1.802e-01, 2.101e-01, 2.423e-01, 2.765e-01, 3.124e-01, 3.500e-01, + 3.889e-01, 4.288e-01, 4.695e-01, 5.106e-01, 5.519e-01, 5.930e-01, + 6.335e-01, 6.732e-01, 7.117e-01, 7.486e-01, 7.836e-01, 8.164e-01, + 8.468e-01, 8.744e-01, 8.991e-01, 9.207e-01, 9.390e-01, 9.541e-01, + 9.657e-01, 9.741e-01, 9.793e-01, 9.814e-01, 9.805e-01, 9.770e-01, + 9.711e-01, 9.630e-01, 9.530e-01, 9.414e-01, 9.285e-01, 9.145e-01, + 8.997e-01, 8.844e-01, 8.687e-01, 8.528e-01, 8.368e-01, 8.209e-01, + 8.052e-01, 7.897e-01, 7.745e-01, 7.596e-01, 7.450e-01, 7.308e-01, + 7.170e-01, 7.035e-01, 6.904e-01, 6.776e-01, 6.653e-01, 6.533e-01, + 6.418e-01, 6.308e-01, 6.202e-01, 6.101e-01, 6.005e-01, 5.916e-01, + 5.832e-01, 5.754e-01, 5.683e-01, 5.619e-01, 5.561e-01, 5.511e-01, + 5.469e-01, 5.434e-01, 5.406e-01, 5.387e-01, 5.375e-01, 5.371e-01, + 2.277e-04, 2.848e-04, 4.802e-04, 9.545e-04, 1.891e-03, 3.508e-03, + 6.047e-03, 9.766e-03, 1.493e-02, 2.179e-02, 3.059e-02, 4.155e-02, + 5.483e-02, 7.059e-02, 8.890e-02, 1.098e-01, 1.333e-01, 1.594e-01, + 1.879e-01, 2.187e-01, 2.516e-01, 2.865e-01, 3.231e-01, 3.611e-01, + 4.003e-01, 4.404e-01, 4.811e-01, 5.221e-01, 5.630e-01, 6.035e-01, + 6.432e-01, 6.819e-01, 7.192e-01, 7.547e-01, 7.881e-01, 8.192e-01, + 8.476e-01, 8.731e-01, 8.956e-01, 9.148e-01, 9.307e-01, 9.433e-01, + 9.525e-01, 9.584e-01, 9.611e-01, 9.608e-01, 9.576e-01, 9.520e-01, + 9.440e-01, 9.341e-01, 9.224e-01, 9.094e-01, 8.953e-01, 8.803e-01, + 8.648e-01, 8.489e-01, 8.329e-01, 8.169e-01, 8.010e-01, 7.854e-01, + 7.701e-01, 7.552e-01, 7.408e-01, 7.267e-01, 7.131e-01, 6.999e-01, + 6.871e-01, 6.748e-01, 6.628e-01, 6.513e-01, 6.401e-01, 6.294e-01, + 6.191e-01, 6.092e-01, 5.998e-01, 5.909e-01, 5.825e-01, 5.746e-01, + 5.673e-01, 5.605e-01, 5.544e-01, 5.488e-01, 5.439e-01, 5.396e-01, + 5.359e-01, 5.329e-01, 5.306e-01, 5.289e-01, 5.279e-01, 5.276e-01, + 2.266e-04, 2.875e-04, 4.953e-04, 9.986e-04, 1.991e-03, 3.703e-03, + 6.388e-03, 1.032e-02, 1.576e-02, 2.299e-02, 3.225e-02, 4.374e-02, + 5.766e-02, 7.412e-02, 9.320e-02, 1.149e-01, 1.393e-01, 1.662e-01, + 1.956e-01, 2.272e-01, 2.609e-01, 2.964e-01, 3.335e-01, 3.720e-01, + 4.114e-01, 4.516e-01, 4.922e-01, 5.328e-01, 5.732e-01, 6.130e-01, + 6.518e-01, 6.893e-01, 7.253e-01, 7.592e-01, 7.909e-01, 8.201e-01, + 8.465e-01, 8.699e-01, 8.901e-01, 9.069e-01, 9.204e-01, 9.305e-01, + 9.372e-01, 9.407e-01, 9.410e-01, 9.384e-01, 9.332e-01, 9.255e-01, + 9.157e-01, 9.040e-01, 8.909e-01, 8.767e-01, 8.615e-01, 8.458e-01, + 8.297e-01, 8.135e-01, 7.973e-01, 7.814e-01, 7.658e-01, 7.507e-01, + 7.360e-01, 7.218e-01, 7.082e-01, 6.951e-01, 6.825e-01, 6.704e-01, + 6.588e-01, 6.477e-01, 6.369e-01, 6.266e-01, 6.167e-01, 6.072e-01, + 5.981e-01, 5.895e-01, 5.813e-01, 5.735e-01, 5.663e-01, 5.595e-01, + 5.532e-01, 5.474e-01, 5.422e-01, 5.375e-01, 5.333e-01, 5.297e-01, + 5.267e-01, 5.242e-01, 5.222e-01, 5.208e-01, 5.200e-01, 5.197e-01, + 2.255e-04, 2.904e-04, 5.109e-04, 1.044e-03, 2.094e-03, 3.903e-03, + 6.739e-03, 1.088e-02, 1.662e-02, 2.422e-02, 3.394e-02, 4.599e-02, + 6.054e-02, 7.772e-02, 9.758e-02, 1.201e-01, 1.454e-01, 1.731e-01, + 2.033e-01, 2.357e-01, 2.701e-01, 3.062e-01, 3.438e-01, 3.826e-01, + 4.222e-01, 4.624e-01, 5.027e-01, 5.430e-01, 5.827e-01, 6.216e-01, + 6.594e-01, 6.957e-01, 7.301e-01, 7.625e-01, 7.924e-01, 8.196e-01, + 8.438e-01, 8.650e-01, 8.829e-01, 8.974e-01, 9.085e-01, 9.162e-01, + 9.205e-01, 9.216e-01, 9.197e-01, 9.150e-01, 9.077e-01, 8.981e-01, + 8.866e-01, 8.735e-01, 8.591e-01, 8.438e-01, 8.279e-01, 8.115e-01, + 7.951e-01, 7.787e-01, 7.626e-01, 7.470e-01, 7.318e-01, 7.173e-01, + 7.033e-01, 6.900e-01, 6.774e-01, 6.653e-01, 6.538e-01, 6.429e-01, + 6.324e-01, 6.225e-01, 6.130e-01, 6.039e-01, 5.952e-01, 5.869e-01, + 5.791e-01, 5.716e-01, 5.646e-01, 5.579e-01, 5.518e-01, 5.460e-01, + 5.408e-01, 5.359e-01, 5.316e-01, 5.277e-01, 5.243e-01, 5.214e-01, + 5.189e-01, 5.169e-01, 5.153e-01, 5.142e-01, 5.136e-01, 5.133e-01, + 2.246e-04, 2.935e-04, 5.270e-04, 1.091e-03, 2.200e-03, 4.109e-03, + 7.099e-03, 1.146e-02, 1.750e-02, 2.548e-02, 3.568e-02, 4.829e-02, + 6.349e-02, 8.139e-02, 1.020e-01, 1.254e-01, 1.515e-01, 1.801e-01, + 2.111e-01, 2.443e-01, 2.793e-01, 3.160e-01, 3.540e-01, 3.931e-01, + 4.328e-01, 4.728e-01, 5.129e-01, 5.526e-01, 5.916e-01, 6.295e-01, + 6.661e-01, 7.011e-01, 7.340e-01, 7.646e-01, 7.926e-01, 8.178e-01, + 8.399e-01, 8.588e-01, 8.744e-01, 8.866e-01, 8.953e-01, 9.007e-01, + 9.027e-01, 9.016e-01, 8.975e-01, 8.908e-01, 8.816e-01, 8.704e-01, + 8.574e-01, 8.431e-01, 8.276e-01, 8.115e-01, 7.949e-01, 7.782e-01, + 7.615e-01, 7.452e-01, 7.294e-01, 7.141e-01, 6.996e-01, 6.857e-01, + 6.726e-01, 6.602e-01, 6.486e-01, 6.376e-01, 6.273e-01, 6.175e-01, + 6.082e-01, 5.995e-01, 5.912e-01, 5.833e-01, 5.758e-01, 5.687e-01, + 5.620e-01, 5.556e-01, 5.497e-01, 5.441e-01, 5.390e-01, 5.342e-01, + 5.299e-01, 5.259e-01, 5.224e-01, 5.193e-01, 5.166e-01, 5.143e-01, + 5.123e-01, 5.108e-01, 5.096e-01, 5.087e-01, 5.082e-01, 5.080e-01, + 2.237e-04, 2.968e-04, 5.436e-04, 1.139e-03, 2.309e-03, 4.321e-03, + 7.469e-03, 1.206e-02, 1.840e-02, 2.678e-02, 3.746e-02, 5.065e-02, + 6.651e-02, 8.515e-02, 1.066e-01, 1.308e-01, 1.577e-01, 1.872e-01, + 2.190e-01, 2.529e-01, 2.886e-01, 3.258e-01, 3.642e-01, 4.034e-01, + 4.432e-01, 4.830e-01, 5.227e-01, 5.617e-01, 5.999e-01, 6.368e-01, + 6.722e-01, 7.056e-01, 7.369e-01, 7.657e-01, 7.918e-01, 8.149e-01, + 8.349e-01, 8.516e-01, 8.649e-01, 8.748e-01, 8.812e-01, 8.843e-01, + 8.842e-01, 8.810e-01, 8.749e-01, 8.664e-01, 8.555e-01, 8.428e-01, + 8.286e-01, 8.131e-01, 7.968e-01, 7.800e-01, 7.630e-01, 7.461e-01, + 7.295e-01, 7.134e-01, 6.980e-01, 6.833e-01, 6.694e-01, 6.564e-01, + 6.442e-01, 6.328e-01, 6.223e-01, 6.124e-01, 6.032e-01, 5.946e-01, + 5.865e-01, 5.789e-01, 5.717e-01, 5.649e-01, 5.585e-01, 5.525e-01, + 5.468e-01, 5.415e-01, 5.366e-01, 5.320e-01, 5.277e-01, 5.238e-01, + 5.203e-01, 5.172e-01, 5.144e-01, 5.120e-01, 5.099e-01, 5.081e-01, + 5.066e-01, 5.054e-01, 5.045e-01, 5.039e-01, 5.035e-01, 5.034e-01, + 2.229e-04, 3.003e-04, 5.608e-04, 1.188e-03, 2.421e-03, 4.539e-03, + 7.851e-03, 1.268e-02, 1.933e-02, 2.811e-02, 3.929e-02, 5.306e-02, + 6.960e-02, 8.899e-02, 1.112e-01, 1.363e-01, 1.641e-01, 1.944e-01, + 2.270e-01, 2.616e-01, 2.979e-01, 3.356e-01, 3.743e-01, 4.137e-01, + 4.534e-01, 4.930e-01, 5.322e-01, 5.706e-01, 6.078e-01, 6.436e-01, + 6.776e-01, 7.096e-01, 7.392e-01, 7.661e-01, 7.902e-01, 8.113e-01, + 8.291e-01, 8.436e-01, 8.547e-01, 8.623e-01, 8.665e-01, 8.675e-01, + 8.653e-01, 8.601e-01, 8.523e-01, 8.420e-01, 8.297e-01, 8.157e-01, + 8.004e-01, 7.841e-01, 7.672e-01, 7.499e-01, 7.327e-01, 7.158e-01, + 6.994e-01, 6.837e-01, 6.688e-01, 6.548e-01, 6.417e-01, 6.296e-01, + 6.184e-01, 6.081e-01, 5.986e-01, 5.898e-01, 5.817e-01, 5.742e-01, + 5.673e-01, 5.607e-01, 5.546e-01, 5.489e-01, 5.435e-01, 5.384e-01, + 5.336e-01, 5.292e-01, 5.251e-01, 5.213e-01, 5.178e-01, 5.147e-01, + 5.119e-01, 5.094e-01, 5.072e-01, 5.054e-01, 5.038e-01, 5.025e-01, + 5.014e-01, 5.005e-01, 4.999e-01, 4.995e-01, 4.992e-01, 4.991e-01, + 2.222e-04, 3.039e-04, 5.785e-04, 1.239e-03, 2.537e-03, 4.764e-03, + 8.244e-03, 1.331e-02, 2.029e-02, 2.948e-02, 4.117e-02, 5.555e-02, + 7.278e-02, 9.293e-02, 1.160e-01, 1.419e-01, 1.706e-01, 2.017e-01, + 2.351e-01, 2.704e-01, 3.074e-01, 3.455e-01, 3.845e-01, 4.240e-01, + 4.636e-01, 5.029e-01, 5.415e-01, 5.791e-01, 6.154e-01, 6.500e-01, + 6.826e-01, 7.130e-01, 7.408e-01, 7.659e-01, 7.880e-01, 8.070e-01, + 8.227e-01, 8.350e-01, 8.439e-01, 8.493e-01, 8.515e-01, 8.504e-01, + 8.462e-01, 8.393e-01, 8.298e-01, 8.181e-01, 8.045e-01, 7.894e-01, + 7.732e-01, 7.562e-01, 7.388e-01, 7.214e-01, 7.042e-01, 6.875e-01, + 6.714e-01, 6.562e-01, 6.420e-01, 6.288e-01, 6.166e-01, 6.055e-01, + 5.953e-01, 5.861e-01, 5.777e-01, 5.700e-01, 5.630e-01, 5.565e-01, + 5.506e-01, 5.450e-01, 5.399e-01, 5.350e-01, 5.305e-01, 5.262e-01, + 5.222e-01, 5.185e-01, 5.151e-01, 5.119e-01, 5.091e-01, 5.065e-01, + 5.043e-01, 5.023e-01, 5.006e-01, 4.992e-01, 4.980e-01, 4.970e-01, + 4.963e-01, 4.957e-01, 4.952e-01, 4.950e-01, 4.948e-01, 4.947e-01, + 2.217e-04, 3.078e-04, 5.969e-04, 1.292e-03, 2.656e-03, 4.996e-03, + 8.649e-03, 1.396e-02, 2.127e-02, 3.090e-02, 4.310e-02, 5.810e-02, + 7.604e-02, 9.697e-02, 1.209e-01, 1.477e-01, 1.772e-01, 2.092e-01, + 2.434e-01, 2.794e-01, 3.169e-01, 3.555e-01, 3.948e-01, 4.343e-01, + 4.738e-01, 5.127e-01, 5.507e-01, 5.875e-01, 6.227e-01, 6.561e-01, + 6.872e-01, 7.160e-01, 7.420e-01, 7.652e-01, 7.853e-01, 8.022e-01, + 8.157e-01, 8.259e-01, 8.326e-01, 8.360e-01, 8.361e-01, 8.331e-01, + 8.272e-01, 8.186e-01, 8.076e-01, 7.946e-01, 7.799e-01, 7.640e-01, + 7.471e-01, 7.296e-01, 7.120e-01, 6.945e-01, 6.775e-01, 6.611e-01, + 6.456e-01, 6.311e-01, 6.176e-01, 6.053e-01, 5.941e-01, 5.840e-01, + 5.749e-01, 5.667e-01, 5.594e-01, 5.528e-01, 5.468e-01, 5.413e-01, + 5.363e-01, 5.316e-01, 5.273e-01, 5.232e-01, 5.194e-01, 5.157e-01, + 5.124e-01, 5.092e-01, 5.063e-01, 5.036e-01, 5.012e-01, 4.991e-01, + 4.973e-01, 4.957e-01, 4.943e-01, 4.932e-01, 4.923e-01, 4.916e-01, + 4.910e-01, 4.906e-01, 4.903e-01, 4.901e-01, 4.900e-01, 4.900e-01, + 2.212e-04, 3.119e-04, 6.161e-04, 1.347e-03, 2.780e-03, 5.236e-03, + 9.068e-03, 1.464e-02, 2.229e-02, 3.236e-02, 4.510e-02, 6.074e-02, + 7.940e-02, 1.011e-01, 1.259e-01, 1.536e-01, 1.840e-01, 2.169e-01, + 2.519e-01, 2.886e-01, 3.267e-01, 3.657e-01, 4.052e-01, 4.448e-01, + 4.840e-01, 5.225e-01, 5.599e-01, 5.958e-01, 6.299e-01, 6.619e-01, + 6.916e-01, 7.186e-01, 7.429e-01, 7.641e-01, 7.822e-01, 7.970e-01, + 8.084e-01, 8.164e-01, 8.211e-01, 8.225e-01, 8.207e-01, 8.159e-01, + 8.083e-01, 7.982e-01, 7.859e-01, 7.717e-01, 7.561e-01, 7.394e-01, + 7.221e-01, 7.044e-01, 6.867e-01, 6.693e-01, 6.526e-01, 6.367e-01, + 6.218e-01, 6.081e-01, 5.955e-01, 5.842e-01, 5.740e-01, 5.650e-01, + 5.570e-01, 5.499e-01, 5.436e-01, 5.380e-01, 5.330e-01, 5.284e-01, + 5.242e-01, 5.203e-01, 5.166e-01, 5.132e-01, 5.099e-01, 5.068e-01, + 5.038e-01, 5.011e-01, 4.985e-01, 4.962e-01, 4.940e-01, 4.922e-01, + 4.905e-01, 4.892e-01, 4.880e-01, 4.871e-01, 4.863e-01, 4.857e-01, + 4.853e-01, 4.850e-01, 4.848e-01, 4.847e-01, 4.846e-01, 4.846e-01, + 2.208e-04, 3.163e-04, 6.360e-04, 1.403e-03, 2.907e-03, 5.485e-03, + 9.502e-03, 1.533e-02, 2.335e-02, 3.387e-02, 4.717e-02, 6.347e-02, + 8.288e-02, 1.054e-01, 1.311e-01, 1.597e-01, 1.910e-01, 2.248e-01, + 2.605e-01, 2.980e-01, 3.366e-01, 3.761e-01, 4.158e-01, 4.553e-01, + 4.943e-01, 5.324e-01, 5.690e-01, 6.040e-01, 6.370e-01, 6.676e-01, + 6.957e-01, 7.210e-01, 7.434e-01, 7.627e-01, 7.787e-01, 7.914e-01, + 8.007e-01, 8.067e-01, 8.094e-01, 8.088e-01, 8.052e-01, 7.986e-01, + 7.895e-01, 7.780e-01, 7.645e-01, 7.494e-01, 7.331e-01, 7.158e-01, + 6.981e-01, 6.803e-01, 6.627e-01, 6.456e-01, 6.293e-01, 6.140e-01, + 5.999e-01, 5.871e-01, 5.755e-01, 5.652e-01, 5.561e-01, 5.481e-01, + 5.412e-01, 5.352e-01, 5.299e-01, 5.253e-01, 5.212e-01, 5.174e-01, + 5.140e-01, 5.107e-01, 5.076e-01, 5.046e-01, 5.017e-01, 4.990e-01, + 4.963e-01, 4.938e-01, 4.914e-01, 4.892e-01, 4.872e-01, 4.855e-01, + 4.839e-01, 4.826e-01, 4.816e-01, 4.807e-01, 4.800e-01, 4.795e-01, + 4.791e-01, 4.788e-01, 4.787e-01, 4.785e-01, 4.785e-01, 4.785e-01, + 2.204e-04, 3.210e-04, 6.567e-04, 1.462e-03, 3.040e-03, 5.742e-03, + 9.951e-03, 1.606e-02, 2.444e-02, 3.543e-02, 4.931e-02, 6.629e-02, + 8.647e-02, 1.099e-01, 1.364e-01, 1.660e-01, 1.982e-01, 2.329e-01, + 2.695e-01, 3.076e-01, 3.469e-01, 3.867e-01, 4.266e-01, 4.661e-01, + 5.049e-01, 5.424e-01, 5.783e-01, 6.122e-01, 6.440e-01, 6.732e-01, + 6.997e-01, 7.232e-01, 7.437e-01, 7.610e-01, 7.749e-01, 7.855e-01, + 7.928e-01, 7.967e-01, 7.974e-01, 7.949e-01, 7.895e-01, 7.814e-01, + 7.708e-01, 7.581e-01, 7.435e-01, 7.276e-01, 7.106e-01, 6.929e-01, + 6.750e-01, 6.572e-01, 6.398e-01, 6.231e-01, 6.074e-01, 5.928e-01, + 5.796e-01, 5.676e-01, 5.571e-01, 5.478e-01, 5.399e-01, 5.330e-01, + 5.272e-01, 5.222e-01, 5.179e-01, 5.142e-01, 5.109e-01, 5.079e-01, + 5.051e-01, 5.024e-01, 4.997e-01, 4.971e-01, 4.945e-01, 4.920e-01, + 4.895e-01, 4.870e-01, 4.847e-01, 4.826e-01, 4.806e-01, 4.788e-01, + 4.773e-01, 4.759e-01, 4.748e-01, 4.739e-01, 4.732e-01, 4.727e-01, + 4.723e-01, 4.720e-01, 4.718e-01, 4.717e-01, 4.716e-01, 4.716e-01, + 2.202e-04, 3.259e-04, 6.784e-04, 1.523e-03, 3.178e-03, 6.009e-03, + 1.042e-02, 1.681e-02, 2.557e-02, 3.705e-02, 5.153e-02, 6.921e-02, + 9.019e-02, 1.145e-01, 1.420e-01, 1.725e-01, 2.057e-01, 2.412e-01, + 2.787e-01, 3.176e-01, 3.574e-01, 3.975e-01, 4.376e-01, 4.771e-01, + 5.156e-01, 5.525e-01, 5.876e-01, 6.206e-01, 6.510e-01, 6.787e-01, + 7.036e-01, 7.253e-01, 7.438e-01, 7.590e-01, 7.709e-01, 7.794e-01, + 7.846e-01, 7.865e-01, 7.852e-01, 7.809e-01, 7.738e-01, 7.641e-01, + 7.521e-01, 7.382e-01, 7.227e-01, 7.060e-01, 6.885e-01, 6.705e-01, + 6.525e-01, 6.348e-01, 6.177e-01, 6.015e-01, 5.865e-01, 5.727e-01, + 5.603e-01, 5.494e-01, 5.399e-01, 5.318e-01, 5.249e-01, 5.192e-01, + 5.144e-01, 5.104e-01, 5.071e-01, 5.043e-01, 5.017e-01, 4.994e-01, + 4.971e-01, 4.949e-01, 4.926e-01, 4.902e-01, 4.878e-01, 4.854e-01, + 4.829e-01, 4.805e-01, 4.782e-01, 4.760e-01, 4.739e-01, 4.720e-01, + 4.703e-01, 4.689e-01, 4.677e-01, 4.667e-01, 4.659e-01, 4.653e-01, + 4.648e-01, 4.645e-01, 4.643e-01, 4.641e-01, 4.641e-01, 4.640e-01, + 2.201e-04, 3.312e-04, 7.011e-04, 1.587e-03, 3.321e-03, 6.287e-03, + 1.090e-02, 1.759e-02, 2.674e-02, 3.873e-02, 5.383e-02, 7.223e-02, + 9.405e-02, 1.192e-01, 1.477e-01, 1.792e-01, 2.134e-01, 2.499e-01, + 2.882e-01, 3.278e-01, 3.682e-01, 4.087e-01, 4.490e-01, 4.884e-01, + 5.265e-01, 5.629e-01, 5.971e-01, 6.289e-01, 6.581e-01, 6.843e-01, + 7.073e-01, 7.272e-01, 7.437e-01, 7.569e-01, 7.666e-01, 7.730e-01, + 7.761e-01, 7.759e-01, 7.727e-01, 7.666e-01, 7.578e-01, 7.467e-01, + 7.334e-01, 7.184e-01, 7.020e-01, 6.846e-01, 6.666e-01, 6.484e-01, + 6.304e-01, 6.128e-01, 5.961e-01, 5.805e-01, 5.661e-01, 5.532e-01, + 5.418e-01, 5.318e-01, 5.234e-01, 5.164e-01, 5.106e-01, 5.060e-01, + 5.023e-01, 4.993e-01, 4.969e-01, 4.948e-01, 4.930e-01, 4.913e-01, + 4.895e-01, 4.877e-01, 4.857e-01, 4.836e-01, 4.813e-01, 4.789e-01, + 4.764e-01, 4.740e-01, 4.715e-01, 4.692e-01, 4.669e-01, 4.649e-01, + 4.631e-01, 4.615e-01, 4.601e-01, 4.590e-01, 4.581e-01, 4.573e-01, + 4.568e-01, 4.564e-01, 4.561e-01, 4.559e-01, 4.558e-01, 4.558e-01, + 2.201e-04, 3.368e-04, 7.248e-04, 1.653e-03, 3.469e-03, 6.575e-03, + 1.140e-02, 1.840e-02, 2.796e-02, 4.047e-02, 5.621e-02, 7.538e-02, + 9.805e-02, 1.242e-01, 1.536e-01, 1.862e-01, 2.214e-01, 2.588e-01, + 2.980e-01, 3.384e-01, 3.793e-01, 4.202e-01, 4.606e-01, 4.999e-01, + 5.377e-01, 5.734e-01, 6.068e-01, 6.374e-01, 6.652e-01, 6.898e-01, + 7.111e-01, 7.290e-01, 7.435e-01, 7.545e-01, 7.621e-01, 7.663e-01, + 7.673e-01, 7.651e-01, 7.599e-01, 7.520e-01, 7.416e-01, 7.290e-01, + 7.144e-01, 6.984e-01, 6.811e-01, 6.631e-01, 6.447e-01, 6.264e-01, + 6.083e-01, 5.910e-01, 5.747e-01, 5.597e-01, 5.460e-01, 5.339e-01, + 5.235e-01, 5.146e-01, 5.072e-01, 5.013e-01, 4.966e-01, 4.930e-01, + 4.903e-01, 4.883e-01, 4.867e-01, 4.855e-01, 4.843e-01, 4.832e-01, + 4.819e-01, 4.804e-01, 4.787e-01, 4.767e-01, 4.745e-01, 4.721e-01, + 4.696e-01, 4.670e-01, 4.645e-01, 4.619e-01, 4.595e-01, 4.573e-01, + 4.553e-01, 4.535e-01, 4.520e-01, 4.507e-01, 4.497e-01, 4.489e-01, + 4.482e-01, 4.478e-01, 4.474e-01, 4.472e-01, 4.471e-01, 4.471e-01, + 2.201e-04, 3.427e-04, 7.495e-04, 1.722e-03, 3.624e-03, 6.875e-03, + 1.193e-02, 1.924e-02, 2.923e-02, 4.229e-02, 5.869e-02, 7.864e-02, + 1.022e-01, 1.293e-01, 1.598e-01, 1.934e-01, 2.296e-01, 2.681e-01, + 3.081e-01, 3.492e-01, 3.908e-01, 4.321e-01, 4.726e-01, 5.118e-01, + 5.491e-01, 5.842e-01, 6.166e-01, 6.461e-01, 6.723e-01, 6.952e-01, + 7.147e-01, 7.306e-01, 7.430e-01, 7.518e-01, 7.572e-01, 7.593e-01, + 7.581e-01, 7.539e-01, 7.468e-01, 7.371e-01, 7.250e-01, 7.109e-01, + 6.952e-01, 6.781e-01, 6.600e-01, 6.414e-01, 6.227e-01, 6.041e-01, + 5.862e-01, 5.691e-01, 5.532e-01, 5.387e-01, 5.258e-01, 5.146e-01, + 5.050e-01, 4.971e-01, 4.908e-01, 4.859e-01, 4.823e-01, 4.798e-01, + 4.780e-01, 4.769e-01, 4.762e-01, 4.757e-01, 4.752e-01, 4.746e-01, + 4.737e-01, 4.726e-01, 4.711e-01, 4.693e-01, 4.672e-01, 4.648e-01, + 4.622e-01, 4.595e-01, 4.568e-01, 4.541e-01, 4.516e-01, 4.492e-01, + 4.470e-01, 4.450e-01, 4.434e-01, 4.420e-01, 4.408e-01, 4.399e-01, + 4.392e-01, 4.386e-01, 4.383e-01, 4.380e-01, 4.379e-01, 4.378e-01, + 2.203e-04, 3.490e-04, 7.754e-04, 1.794e-03, 3.785e-03, 7.186e-03, + 1.247e-02, 2.011e-02, 3.055e-02, 4.417e-02, 6.126e-02, 8.202e-02, + 1.065e-01, 1.346e-01, 1.662e-01, 2.008e-01, 2.382e-01, 2.776e-01, + 3.186e-01, 3.605e-01, 4.026e-01, 4.443e-01, 4.849e-01, 5.240e-01, + 5.609e-01, 5.952e-01, 6.266e-01, 6.548e-01, 6.796e-01, 7.007e-01, + 7.183e-01, 7.321e-01, 7.423e-01, 7.490e-01, 7.521e-01, 7.519e-01, + 7.486e-01, 7.422e-01, 7.332e-01, 7.217e-01, 7.080e-01, 6.925e-01, + 6.755e-01, 6.574e-01, 6.386e-01, 6.194e-01, 6.003e-01, 5.816e-01, + 5.637e-01, 5.469e-01, 5.314e-01, 5.175e-01, 5.052e-01, 4.948e-01, + 4.861e-01, 4.792e-01, 4.739e-01, 4.700e-01, 4.674e-01, 4.658e-01, + 4.651e-01, 4.648e-01, 4.649e-01, 4.651e-01, 4.652e-01, 4.651e-01, + 4.647e-01, 4.639e-01, 4.626e-01, 4.610e-01, 4.589e-01, 4.566e-01, + 4.540e-01, 4.512e-01, 4.484e-01, 4.456e-01, 4.429e-01, 4.403e-01, + 4.380e-01, 4.359e-01, 4.342e-01, 4.326e-01, 4.314e-01, 4.304e-01, + 4.296e-01, 4.291e-01, 4.287e-01, 4.284e-01, 4.282e-01, 4.282e-01, + 2.206e-04, 3.557e-04, 8.023e-04, 1.869e-03, 3.952e-03, 7.510e-03, + 1.303e-02, 2.102e-02, 3.191e-02, 4.612e-02, 6.393e-02, 8.553e-02, + 1.110e-01, 1.401e-01, 1.728e-01, 2.086e-01, 2.470e-01, 2.875e-01, + 3.294e-01, 3.721e-01, 4.148e-01, 4.569e-01, 4.976e-01, 5.365e-01, + 5.729e-01, 6.065e-01, 6.368e-01, 6.637e-01, 6.868e-01, 7.062e-01, + 7.218e-01, 7.335e-01, 7.415e-01, 7.458e-01, 7.467e-01, 7.442e-01, + 7.386e-01, 7.302e-01, 7.192e-01, 7.059e-01, 6.906e-01, 6.737e-01, + 6.555e-01, 6.363e-01, 6.167e-01, 5.970e-01, 5.775e-01, 5.586e-01, + 5.408e-01, 5.242e-01, 5.091e-01, 4.957e-01, 4.841e-01, 4.744e-01, + 4.666e-01, 4.606e-01, 4.562e-01, 4.533e-01, 4.516e-01, 4.510e-01, + 4.511e-01, 4.517e-01, 4.526e-01, 4.534e-01, 4.541e-01, 4.546e-01, + 4.546e-01, 4.541e-01, 4.531e-01, 4.516e-01, 4.496e-01, 4.473e-01, + 4.447e-01, 4.419e-01, 4.390e-01, 4.361e-01, 4.333e-01, 4.307e-01, + 4.283e-01, 4.262e-01, 4.243e-01, 4.227e-01, 4.215e-01, 4.204e-01, + 4.196e-01, 4.190e-01, 4.186e-01, 4.184e-01, 4.182e-01, 4.181e-01, + 2.209e-04, 3.627e-04, 8.305e-04, 1.947e-03, 4.126e-03, 7.846e-03, + 1.362e-02, 2.196e-02, 3.333e-02, 4.815e-02, 6.671e-02, 8.917e-02, + 1.156e-01, 1.458e-01, 1.796e-01, 2.166e-01, 2.561e-01, 2.977e-01, + 3.406e-01, 3.841e-01, 4.274e-01, 4.698e-01, 5.106e-01, 5.493e-01, + 5.852e-01, 6.179e-01, 6.472e-01, 6.726e-01, 6.942e-01, 7.117e-01, + 7.252e-01, 7.347e-01, 7.404e-01, 7.424e-01, 7.409e-01, 7.361e-01, + 7.284e-01, 7.178e-01, 7.048e-01, 6.897e-01, 6.728e-01, 6.544e-01, + 6.350e-01, 6.149e-01, 5.945e-01, 5.741e-01, 5.543e-01, 5.353e-01, + 5.174e-01, 5.010e-01, 4.862e-01, 4.733e-01, 4.623e-01, 4.534e-01, + 4.463e-01, 4.411e-01, 4.376e-01, 4.356e-01, 4.348e-01, 4.351e-01, + 4.360e-01, 4.374e-01, 4.390e-01, 4.405e-01, 4.418e-01, 4.427e-01, + 4.431e-01, 4.430e-01, 4.423e-01, 4.410e-01, 4.392e-01, 4.369e-01, + 4.344e-01, 4.316e-01, 4.287e-01, 4.258e-01, 4.229e-01, 4.203e-01, + 4.178e-01, 4.157e-01, 4.138e-01, 4.122e-01, 4.109e-01, 4.099e-01, + 4.091e-01, 4.085e-01, 4.081e-01, 4.079e-01, 4.077e-01, 4.077e-01, + 2.213e-04, 3.700e-04, 8.598e-04, 2.027e-03, 4.306e-03, 8.195e-03, + 1.423e-02, 2.294e-02, 3.481e-02, 5.026e-02, 6.958e-02, 9.296e-02, + 1.204e-01, 1.517e-01, 1.867e-01, 2.249e-01, 2.656e-01, 3.083e-01, + 3.522e-01, 3.965e-01, 4.404e-01, 4.831e-01, 5.240e-01, 5.624e-01, + 5.978e-01, 6.297e-01, 6.578e-01, 6.818e-01, 7.016e-01, 7.172e-01, + 7.285e-01, 7.358e-01, 7.391e-01, 7.388e-01, 7.349e-01, 7.278e-01, + 7.177e-01, 7.051e-01, 6.901e-01, 6.732e-01, 6.546e-01, 6.348e-01, + 6.142e-01, 5.931e-01, 5.719e-01, 5.510e-01, 5.308e-01, 5.115e-01, + 4.937e-01, 4.774e-01, 4.629e-01, 4.504e-01, 4.400e-01, 4.316e-01, + 4.253e-01, 4.208e-01, 4.181e-01, 4.169e-01, 4.170e-01, 4.180e-01, + 4.197e-01, 4.218e-01, 4.241e-01, 4.263e-01, 4.281e-01, 4.295e-01, + 4.304e-01, 4.306e-01, 4.302e-01, 4.291e-01, 4.275e-01, 4.254e-01, + 4.229e-01, 4.202e-01, 4.173e-01, 4.144e-01, 4.116e-01, 4.090e-01, + 4.066e-01, 4.044e-01, 4.026e-01, 4.010e-01, 3.997e-01, 3.988e-01, + 3.980e-01, 3.975e-01, 3.971e-01, 3.968e-01, 3.967e-01, 3.967e-01, + 2.219e-04, 3.777e-04, 8.902e-04, 2.111e-03, 4.493e-03, 8.557e-03, + 1.486e-02, 2.395e-02, 3.634e-02, 5.244e-02, 7.257e-02, 9.688e-02, + 1.254e-01, 1.579e-01, 1.941e-01, 2.335e-01, 2.754e-01, 3.192e-01, + 3.641e-01, 4.092e-01, 4.537e-01, 4.968e-01, 5.378e-01, 5.760e-01, + 6.107e-01, 6.417e-01, 6.686e-01, 6.911e-01, 7.091e-01, 7.227e-01, + 7.319e-01, 7.368e-01, 7.378e-01, 7.349e-01, 7.286e-01, 7.192e-01, + 7.069e-01, 6.921e-01, 6.751e-01, 6.564e-01, 6.362e-01, 6.150e-01, + 5.932e-01, 5.711e-01, 5.491e-01, 5.277e-01, 5.070e-01, 4.876e-01, + 4.697e-01, 4.535e-01, 4.393e-01, 4.272e-01, 4.172e-01, 4.094e-01, + 4.036e-01, 3.999e-01, 3.979e-01, 3.974e-01, 3.982e-01, 3.999e-01, + 4.024e-01, 4.052e-01, 4.081e-01, 4.108e-01, 4.132e-01, 4.151e-01, + 4.164e-01, 4.169e-01, 4.168e-01, 4.160e-01, 4.146e-01, 4.127e-01, + 4.104e-01, 4.078e-01, 4.050e-01, 4.022e-01, 3.994e-01, 3.968e-01, + 3.945e-01, 3.924e-01, 3.906e-01, 3.891e-01, 3.879e-01, 3.870e-01, + 3.863e-01, 3.858e-01, 3.854e-01, 3.852e-01, 3.851e-01, 3.851e-01, + 2.225e-04, 3.858e-04, 9.219e-04, 2.198e-03, 4.688e-03, 8.934e-03, + 1.552e-02, 2.501e-02, 3.793e-02, 5.471e-02, 7.567e-02, 1.010e-01, + 1.305e-01, 1.643e-01, 2.017e-01, 2.424e-01, 2.856e-01, 3.306e-01, + 3.765e-01, 4.224e-01, 4.676e-01, 5.110e-01, 5.520e-01, 5.899e-01, + 6.240e-01, 6.540e-01, 6.796e-01, 7.005e-01, 7.167e-01, 7.282e-01, + 7.352e-01, 7.378e-01, 7.363e-01, 7.310e-01, 7.222e-01, 7.104e-01, + 6.958e-01, 6.789e-01, 6.600e-01, 6.395e-01, 6.177e-01, 5.952e-01, + 5.722e-01, 5.491e-01, 5.264e-01, 5.044e-01, 4.834e-01, 4.638e-01, + 4.458e-01, 4.297e-01, 4.157e-01, 4.038e-01, 3.942e-01, 3.869e-01, + 3.817e-01, 3.785e-01, 3.771e-01, 3.772e-01, 3.787e-01, 3.811e-01, + 3.841e-01, 3.875e-01, 3.910e-01, 3.943e-01, 3.972e-01, 3.996e-01, + 4.013e-01, 4.022e-01, 4.024e-01, 4.019e-01, 4.007e-01, 3.990e-01, + 3.969e-01, 3.944e-01, 3.918e-01, 3.890e-01, 3.864e-01, 3.839e-01, + 3.816e-01, 3.796e-01, 3.779e-01, 3.764e-01, 3.753e-01, 3.744e-01, + 3.738e-01, 3.734e-01, 3.731e-01, 3.729e-01, 3.728e-01, 3.728e-01, + 2.231e-04, 3.942e-04, 9.548e-04, 2.289e-03, 4.890e-03, 9.325e-03, + 1.620e-02, 2.610e-02, 3.958e-02, 5.708e-02, 7.890e-02, 1.052e-01, + 1.359e-01, 1.709e-01, 2.096e-01, 2.516e-01, 2.961e-01, 3.423e-01, + 3.893e-01, 4.361e-01, 4.818e-01, 5.256e-01, 5.666e-01, 6.042e-01, + 6.377e-01, 6.667e-01, 6.909e-01, 7.102e-01, 7.245e-01, 7.339e-01, + 7.386e-01, 7.388e-01, 7.348e-01, 7.270e-01, 7.158e-01, 7.016e-01, + 6.848e-01, 6.657e-01, 6.449e-01, 6.226e-01, 5.994e-01, 5.755e-01, + 5.514e-01, 5.275e-01, 5.040e-01, 4.815e-01, 4.601e-01, 4.403e-01, + 4.222e-01, 4.062e-01, 3.923e-01, 3.807e-01, 3.714e-01, 3.645e-01, + 3.597e-01, 3.570e-01, 3.561e-01, 3.568e-01, 3.588e-01, 3.617e-01, + 3.653e-01, 3.693e-01, 3.733e-01, 3.771e-01, 3.805e-01, 3.832e-01, + 3.853e-01, 3.866e-01, 3.872e-01, 3.869e-01, 3.860e-01, 3.845e-01, + 3.826e-01, 3.803e-01, 3.778e-01, 3.752e-01, 3.726e-01, 3.702e-01, + 3.680e-01, 3.661e-01, 3.644e-01, 3.631e-01, 3.620e-01, 3.612e-01, + 3.606e-01, 3.602e-01, 3.599e-01, 3.598e-01, 3.597e-01, 3.597e-01, + 2.239e-04, 4.029e-04, 9.889e-04, 2.383e-03, 5.100e-03, 9.732e-03, + 1.691e-02, 2.724e-02, 4.130e-02, 5.953e-02, 8.225e-02, 1.096e-01, + 1.415e-01, 1.777e-01, 2.178e-01, 2.612e-01, 3.070e-01, 3.545e-01, + 4.025e-01, 4.502e-01, 4.966e-01, 5.407e-01, 5.817e-01, 6.190e-01, + 6.518e-01, 6.797e-01, 7.026e-01, 7.202e-01, 7.325e-01, 7.398e-01, + 7.421e-01, 7.398e-01, 7.334e-01, 7.231e-01, 7.094e-01, 6.929e-01, + 6.738e-01, 6.527e-01, 6.300e-01, 6.061e-01, 5.814e-01, 5.563e-01, + 5.311e-01, 5.064e-01, 4.823e-01, 4.592e-01, 4.376e-01, 4.175e-01, + 3.994e-01, 3.834e-01, 3.696e-01, 3.582e-01, 3.492e-01, 3.426e-01, + 3.381e-01, 3.358e-01, 3.353e-01, 3.365e-01, 3.389e-01, 3.423e-01, + 3.464e-01, 3.508e-01, 3.552e-01, 3.595e-01, 3.633e-01, 3.664e-01, + 3.689e-01, 3.706e-01, 3.714e-01, 3.715e-01, 3.708e-01, 3.695e-01, + 3.677e-01, 3.656e-01, 3.632e-01, 3.608e-01, 3.583e-01, 3.560e-01, + 3.539e-01, 3.520e-01, 3.504e-01, 3.490e-01, 3.480e-01, 3.472e-01, + 3.466e-01, 3.463e-01, 3.460e-01, 3.459e-01, 3.458e-01, 3.458e-01, + 2.247e-04, 4.120e-04, 1.024e-03, 2.480e-03, 5.317e-03, 1.015e-02, + 1.764e-02, 2.843e-02, 4.309e-02, 6.208e-02, 8.573e-02, 1.142e-01, + 1.473e-01, 1.849e-01, 2.264e-01, 2.711e-01, 3.183e-01, 3.671e-01, + 4.162e-01, 4.649e-01, 5.119e-01, 5.563e-01, 5.974e-01, 6.342e-01, + 6.663e-01, 6.932e-01, 7.146e-01, 7.305e-01, 7.408e-01, 7.459e-01, + 7.458e-01, 7.411e-01, 7.321e-01, 7.193e-01, 7.033e-01, 6.844e-01, + 6.631e-01, 6.401e-01, 6.156e-01, 5.901e-01, 5.640e-01, 5.378e-01, + 5.117e-01, 4.862e-01, 4.616e-01, 4.381e-01, 4.162e-01, 3.960e-01, + 3.778e-01, 3.618e-01, 3.482e-01, 3.369e-01, 3.281e-01, 3.217e-01, + 3.175e-01, 3.155e-01, 3.153e-01, 3.168e-01, 3.195e-01, 3.233e-01, + 3.277e-01, 3.325e-01, 3.373e-01, 3.419e-01, 3.461e-01, 3.496e-01, + 3.524e-01, 3.544e-01, 3.555e-01, 3.558e-01, 3.554e-01, 3.543e-01, + 3.527e-01, 3.507e-01, 3.485e-01, 3.461e-01, 3.437e-01, 3.414e-01, + 3.393e-01, 3.374e-01, 3.358e-01, 3.345e-01, 3.334e-01, 3.326e-01, + 3.320e-01, 3.316e-01, 3.313e-01, 3.312e-01, 3.311e-01, 3.311e-01, + 2.256e-04, 4.213e-04, 1.061e-03, 2.581e-03, 5.543e-03, 1.059e-02, + 1.841e-02, 2.966e-02, 4.494e-02, 6.474e-02, 8.935e-02, 1.189e-01, + 1.533e-01, 1.923e-01, 2.352e-01, 2.815e-01, 3.301e-01, 3.801e-01, + 4.305e-01, 4.800e-01, 5.277e-01, 5.725e-01, 6.135e-01, 6.500e-01, + 6.813e-01, 7.071e-01, 7.271e-01, 7.412e-01, 7.495e-01, 7.523e-01, + 7.499e-01, 7.427e-01, 7.312e-01, 7.159e-01, 6.975e-01, 6.763e-01, + 6.530e-01, 6.280e-01, 6.018e-01, 5.749e-01, 5.476e-01, 5.204e-01, + 4.935e-01, 4.674e-01, 4.423e-01, 4.185e-01, 3.964e-01, 3.761e-01, + 3.579e-01, 3.420e-01, 3.284e-01, 3.173e-01, 3.086e-01, 3.024e-01, + 2.984e-01, 2.965e-01, 2.966e-01, 2.982e-01, 3.013e-01, 3.053e-01, + 3.100e-01, 3.150e-01, 3.201e-01, 3.250e-01, 3.294e-01, 3.333e-01, + 3.363e-01, 3.386e-01, 3.399e-01, 3.405e-01, 3.402e-01, 3.393e-01, + 3.379e-01, 3.360e-01, 3.338e-01, 3.315e-01, 3.291e-01, 3.268e-01, + 3.246e-01, 3.227e-01, 3.210e-01, 3.196e-01, 3.184e-01, 3.175e-01, + 3.169e-01, 3.164e-01, 3.161e-01, 3.159e-01, 3.157e-01, 3.157e-01, + 2.265e-04, 4.311e-04, 1.099e-03, 2.686e-03, 5.778e-03, 1.105e-02, + 1.921e-02, 3.094e-02, 4.688e-02, 6.750e-02, 9.312e-02, 1.239e-01, + 1.596e-01, 2.000e-01, 2.444e-01, 2.922e-01, 3.423e-01, 3.937e-01, + 4.453e-01, 4.958e-01, 5.441e-01, 5.893e-01, 6.303e-01, 6.664e-01, + 6.969e-01, 7.216e-01, 7.400e-01, 7.523e-01, 7.586e-01, 7.591e-01, + 7.543e-01, 7.446e-01, 7.307e-01, 7.130e-01, 6.922e-01, 6.689e-01, + 6.436e-01, 6.168e-01, 5.891e-01, 5.608e-01, 5.325e-01, 5.044e-01, + 4.769e-01, 4.502e-01, 4.248e-01, 4.009e-01, 3.787e-01, 3.584e-01, + 3.403e-01, 3.244e-01, 3.109e-01, 2.999e-01, 2.914e-01, 2.852e-01, + 2.813e-01, 2.796e-01, 2.797e-01, 2.815e-01, 2.846e-01, 2.888e-01, + 2.936e-01, 2.988e-01, 3.041e-01, 3.092e-01, 3.138e-01, 3.179e-01, + 3.212e-01, 3.236e-01, 3.252e-01, 3.259e-01, 3.258e-01, 3.250e-01, + 3.236e-01, 3.218e-01, 3.196e-01, 3.172e-01, 3.148e-01, 3.124e-01, + 3.101e-01, 3.080e-01, 3.062e-01, 3.046e-01, 3.033e-01, 3.023e-01, + 3.014e-01, 3.008e-01, 3.004e-01, 3.001e-01, 2.999e-01, 2.999e-01, + 2.275e-04, 4.411e-04, 1.138e-03, 2.794e-03, 6.022e-03, 1.152e-02, + 2.003e-02, 3.227e-02, 4.889e-02, 7.037e-02, 9.704e-02, 1.290e-01, + 1.661e-01, 2.080e-01, 2.540e-01, 3.033e-01, 3.550e-01, 4.078e-01, + 4.606e-01, 5.121e-01, 5.612e-01, 6.067e-01, 6.477e-01, 6.833e-01, + 7.131e-01, 7.366e-01, 7.535e-01, 7.640e-01, 7.682e-01, 7.665e-01, + 7.593e-01, 7.471e-01, 7.307e-01, 7.107e-01, 6.876e-01, 6.622e-01, + 6.350e-01, 6.067e-01, 5.776e-01, 5.482e-01, 5.189e-01, 4.901e-01, + 4.622e-01, 4.353e-01, 4.097e-01, 3.857e-01, 3.636e-01, 3.434e-01, + 3.254e-01, 3.096e-01, 2.963e-01, 2.854e-01, 2.769e-01, 2.708e-01, + 2.669e-01, 2.652e-01, 2.653e-01, 2.671e-01, 2.703e-01, 2.744e-01, + 2.793e-01, 2.845e-01, 2.899e-01, 2.951e-01, 2.999e-01, 3.040e-01, + 3.074e-01, 3.100e-01, 3.117e-01, 3.125e-01, 3.125e-01, 3.118e-01, + 3.105e-01, 3.086e-01, 3.064e-01, 3.039e-01, 3.013e-01, 2.987e-01, + 2.962e-01, 2.939e-01, 2.918e-01, 2.900e-01, 2.884e-01, 2.871e-01, + 2.861e-01, 2.853e-01, 2.847e-01, 2.843e-01, 2.840e-01, 2.839e-01, + 2.286e-04, 4.514e-04, 1.178e-03, 2.907e-03, 6.274e-03, 1.201e-02, + 2.089e-02, 3.366e-02, 5.097e-02, 7.335e-02, 1.011e-01, 1.343e-01, + 1.729e-01, 2.163e-01, 2.639e-01, 3.149e-01, 3.681e-01, 4.224e-01, + 4.765e-01, 5.290e-01, 5.788e-01, 6.247e-01, 6.657e-01, 7.009e-01, + 7.299e-01, 7.522e-01, 7.676e-01, 7.763e-01, 7.784e-01, 7.744e-01, + 7.648e-01, 7.502e-01, 7.314e-01, 7.091e-01, 6.839e-01, 6.565e-01, + 6.276e-01, 5.978e-01, 5.675e-01, 5.372e-01, 5.072e-01, 4.780e-01, + 4.498e-01, 4.228e-01, 3.973e-01, 3.735e-01, 3.515e-01, 3.315e-01, + 3.137e-01, 2.982e-01, 2.850e-01, 2.742e-01, 2.658e-01, 2.597e-01, + 2.558e-01, 2.540e-01, 2.541e-01, 2.557e-01, 2.587e-01, 2.628e-01, + 2.675e-01, 2.727e-01, 2.781e-01, 2.832e-01, 2.880e-01, 2.922e-01, + 2.957e-01, 2.983e-01, 3.001e-01, 3.009e-01, 3.010e-01, 3.002e-01, + 2.988e-01, 2.969e-01, 2.945e-01, 2.918e-01, 2.890e-01, 2.862e-01, + 2.834e-01, 2.807e-01, 2.783e-01, 2.761e-01, 2.742e-01, 2.725e-01, + 2.712e-01, 2.701e-01, 2.693e-01, 2.687e-01, 2.684e-01, 2.683e-01, + 2.297e-04, 4.620e-04, 1.220e-03, 3.023e-03, 6.535e-03, 1.252e-02, + 2.178e-02, 3.509e-02, 5.314e-02, 7.644e-02, 1.053e-01, 1.399e-01, + 1.799e-01, 2.249e-01, 2.742e-01, 3.269e-01, 3.818e-01, 4.376e-01, + 4.929e-01, 5.465e-01, 5.971e-01, 6.433e-01, 6.843e-01, 7.191e-01, + 7.473e-01, 7.684e-01, 7.822e-01, 7.890e-01, 7.891e-01, 7.828e-01, + 7.708e-01, 7.539e-01, 7.328e-01, 7.083e-01, 6.810e-01, 6.519e-01, + 6.215e-01, 5.904e-01, 5.591e-01, 5.281e-01, 4.977e-01, 4.683e-01, + 4.401e-01, 4.133e-01, 3.880e-01, 3.645e-01, 3.429e-01, 3.234e-01, + 3.059e-01, 2.907e-01, 2.777e-01, 2.671e-01, 2.587e-01, 2.526e-01, + 2.486e-01, 2.466e-01, 2.465e-01, 2.479e-01, 2.507e-01, 2.545e-01, + 2.590e-01, 2.640e-01, 2.692e-01, 2.742e-01, 2.789e-01, 2.830e-01, + 2.864e-01, 2.890e-01, 2.907e-01, 2.916e-01, 2.915e-01, 2.907e-01, + 2.892e-01, 2.870e-01, 2.844e-01, 2.815e-01, 2.784e-01, 2.752e-01, + 2.720e-01, 2.689e-01, 2.660e-01, 2.634e-01, 2.610e-01, 2.590e-01, + 2.572e-01, 2.558e-01, 2.548e-01, 2.540e-01, 2.535e-01, 2.534e-01, + 2.308e-04, 4.729e-04, 1.263e-03, 3.142e-03, 6.805e-03, 1.305e-02, + 2.270e-02, 3.658e-02, 5.538e-02, 7.964e-02, 1.097e-01, 1.456e-01, + 1.871e-01, 2.338e-01, 2.849e-01, 3.393e-01, 3.958e-01, 4.532e-01, + 5.099e-01, 5.646e-01, 6.158e-01, 6.625e-01, 7.035e-01, 7.379e-01, + 7.652e-01, 7.850e-01, 7.973e-01, 8.023e-01, 8.002e-01, 7.917e-01, + 7.775e-01, 7.582e-01, 7.349e-01, 7.083e-01, 6.792e-01, 6.484e-01, + 6.167e-01, 5.846e-01, 5.526e-01, 5.212e-01, 4.907e-01, 4.613e-01, + 4.334e-01, 4.070e-01, 3.823e-01, 3.595e-01, 3.385e-01, 3.195e-01, + 3.026e-01, 2.877e-01, 2.751e-01, 2.646e-01, 2.563e-01, 2.501e-01, + 2.460e-01, 2.438e-01, 2.433e-01, 2.444e-01, 2.468e-01, 2.502e-01, + 2.544e-01, 2.590e-01, 2.639e-01, 2.686e-01, 2.730e-01, 2.770e-01, + 2.802e-01, 2.827e-01, 2.843e-01, 2.849e-01, 2.848e-01, 2.838e-01, + 2.820e-01, 2.796e-01, 2.767e-01, 2.735e-01, 2.699e-01, 2.663e-01, + 2.626e-01, 2.590e-01, 2.556e-01, 2.524e-01, 2.495e-01, 2.470e-01, + 2.448e-01, 2.430e-01, 2.416e-01, 2.406e-01, 2.400e-01, 2.398e-01, + 2.319e-04, 4.840e-04, 1.307e-03, 3.265e-03, 7.082e-03, 1.359e-02, + 2.365e-02, 3.810e-02, 5.768e-02, 8.293e-02, 1.142e-01, 1.515e-01, + 1.946e-01, 2.430e-01, 2.958e-01, 3.520e-01, 4.102e-01, 4.692e-01, + 5.273e-01, 5.830e-01, 6.351e-01, 6.821e-01, 7.230e-01, 7.570e-01, + 7.835e-01, 8.021e-01, 8.128e-01, 8.158e-01, 8.117e-01, 8.010e-01, + 7.845e-01, 7.630e-01, 7.376e-01, 7.090e-01, 6.783e-01, 6.461e-01, + 6.133e-01, 5.805e-01, 5.481e-01, 5.166e-01, 4.863e-01, 4.574e-01, + 4.301e-01, 4.045e-01, 3.807e-01, 3.587e-01, 3.386e-01, 3.205e-01, + 3.042e-01, 2.900e-01, 2.778e-01, 2.676e-01, 2.594e-01, 2.532e-01, + 2.488e-01, 2.463e-01, 2.455e-01, 2.461e-01, 2.479e-01, 2.508e-01, + 2.544e-01, 2.586e-01, 2.629e-01, 2.672e-01, 2.713e-01, 2.749e-01, + 2.778e-01, 2.800e-01, 2.813e-01, 2.817e-01, 2.813e-01, 2.800e-01, + 2.780e-01, 2.753e-01, 2.720e-01, 2.682e-01, 2.642e-01, 2.600e-01, + 2.558e-01, 2.516e-01, 2.476e-01, 2.438e-01, 2.403e-01, 2.372e-01, + 2.345e-01, 2.323e-01, 2.306e-01, 2.293e-01, 2.285e-01, 2.283e-01, + 2.331e-04, 4.951e-04, 1.351e-03, 3.390e-03, 7.365e-03, 1.414e-02, + 2.462e-02, 3.967e-02, 6.004e-02, 8.630e-02, 1.188e-01, 1.575e-01, + 2.022e-01, 2.523e-01, 3.070e-01, 3.649e-01, 4.249e-01, 4.855e-01, + 5.449e-01, 6.018e-01, 6.546e-01, 7.020e-01, 7.428e-01, 7.763e-01, + 8.019e-01, 8.192e-01, 8.283e-01, 8.295e-01, 8.233e-01, 8.104e-01, + 7.917e-01, 7.681e-01, 7.407e-01, 7.104e-01, 6.782e-01, 6.449e-01, + 6.114e-01, 5.781e-01, 5.457e-01, 5.145e-01, 4.848e-01, 4.568e-01, + 4.306e-01, 4.062e-01, 3.836e-01, 3.629e-01, 3.441e-01, 3.270e-01, + 3.118e-01, 2.983e-01, 2.867e-01, 2.769e-01, 2.689e-01, 2.626e-01, + 2.581e-01, 2.553e-01, 2.539e-01, 2.539e-01, 2.551e-01, 2.573e-01, + 2.602e-01, 2.637e-01, 2.673e-01, 2.710e-01, 2.745e-01, 2.776e-01, + 2.800e-01, 2.818e-01, 2.827e-01, 2.827e-01, 2.819e-01, 2.802e-01, + 2.778e-01, 2.746e-01, 2.708e-01, 2.666e-01, 2.620e-01, 2.572e-01, + 2.523e-01, 2.475e-01, 2.428e-01, 2.383e-01, 2.342e-01, 2.305e-01, + 2.273e-01, 2.246e-01, 2.225e-01, 2.209e-01, 2.200e-01, 2.197e-01, + 2.342e-04, 5.062e-04, 1.396e-03, 3.517e-03, 7.653e-03, 1.470e-02, + 2.561e-02, 4.126e-02, 6.245e-02, 8.974e-02, 1.235e-01, 1.636e-01, + 2.100e-01, 2.618e-01, 3.183e-01, 3.781e-01, 4.398e-01, 5.019e-01, + 5.627e-01, 6.207e-01, 6.741e-01, 7.218e-01, 7.626e-01, 7.955e-01, + 8.201e-01, 8.361e-01, 8.436e-01, 8.429e-01, 8.347e-01, 8.196e-01, + 7.988e-01, 7.733e-01, 7.440e-01, 7.122e-01, 6.788e-01, 6.447e-01, + 6.107e-01, 5.775e-01, 5.455e-01, 5.150e-01, 4.864e-01, 4.598e-01, + 4.351e-01, 4.124e-01, 3.916e-01, 3.726e-01, 3.554e-01, 3.399e-01, + 3.259e-01, 3.136e-01, 3.028e-01, 2.936e-01, 2.859e-01, 2.797e-01, + 2.750e-01, 2.717e-01, 2.698e-01, 2.691e-01, 2.696e-01, 2.709e-01, + 2.729e-01, 2.755e-01, 2.783e-01, 2.812e-01, 2.839e-01, 2.862e-01, + 2.880e-01, 2.891e-01, 2.894e-01, 2.889e-01, 2.876e-01, 2.854e-01, + 2.824e-01, 2.787e-01, 2.743e-01, 2.695e-01, 2.643e-01, 2.588e-01, + 2.532e-01, 2.477e-01, 2.423e-01, 2.371e-01, 2.324e-01, 2.280e-01, + 2.243e-01, 2.211e-01, 2.186e-01, 2.167e-01, 2.156e-01, 2.153e-01, + 2.353e-04, 5.172e-04, 1.441e-03, 3.644e-03, 7.943e-03, 1.527e-02, + 2.661e-02, 4.288e-02, 6.488e-02, 9.321e-02, 1.282e-01, 1.698e-01, + 2.178e-01, 2.714e-01, 3.297e-01, 3.913e-01, 4.547e-01, 5.184e-01, + 5.805e-01, 6.395e-01, 6.936e-01, 7.415e-01, 7.821e-01, 8.144e-01, + 8.380e-01, 8.526e-01, 8.584e-01, 8.558e-01, 8.455e-01, 8.284e-01, + 8.055e-01, 7.781e-01, 7.473e-01, 7.142e-01, 6.799e-01, 6.453e-01, + 6.113e-01, 5.785e-01, 5.474e-01, 5.183e-01, 4.913e-01, 4.666e-01, + 4.440e-01, 4.236e-01, 4.051e-01, 3.884e-01, 3.733e-01, 3.597e-01, + 3.475e-01, 3.366e-01, 3.270e-01, 3.186e-01, 3.114e-01, 3.054e-01, + 3.006e-01, 2.970e-01, 2.945e-01, 2.931e-01, 2.926e-01, 2.929e-01, + 2.939e-01, 2.954e-01, 2.971e-01, 2.990e-01, 3.007e-01, 3.020e-01, + 3.030e-01, 3.033e-01, 3.029e-01, 3.017e-01, 2.997e-01, 2.968e-01, + 2.932e-01, 2.889e-01, 2.839e-01, 2.784e-01, 2.725e-01, 2.663e-01, + 2.600e-01, 2.538e-01, 2.477e-01, 2.419e-01, 2.364e-01, 2.315e-01, + 2.272e-01, 2.236e-01, 2.207e-01, 2.186e-01, 2.173e-01, 2.168e-01, + 2.363e-04, 5.279e-04, 1.486e-03, 3.771e-03, 8.234e-03, 1.584e-02, + 2.761e-02, 4.450e-02, 6.733e-02, 9.671e-02, 1.330e-01, 1.761e-01, + 2.257e-01, 2.810e-01, 3.411e-01, 4.044e-01, 4.696e-01, 5.348e-01, + 5.981e-01, 6.580e-01, 7.127e-01, 7.608e-01, 8.010e-01, 8.326e-01, + 8.551e-01, 8.683e-01, 8.723e-01, 8.678e-01, 8.554e-01, 8.363e-01, + 8.115e-01, 7.824e-01, 7.501e-01, 7.160e-01, 6.811e-01, 6.465e-01, + 6.129e-01, 5.811e-01, 5.514e-01, 5.241e-01, 4.994e-01, 4.773e-01, + 4.575e-01, 4.400e-01, 4.244e-01, 4.106e-01, 3.982e-01, 3.872e-01, + 3.772e-01, 3.682e-01, 3.601e-01, 3.528e-01, 3.463e-01, 3.407e-01, + 3.360e-01, 3.321e-01, 3.290e-01, 3.268e-01, 3.254e-01, 3.246e-01, + 3.244e-01, 3.247e-01, 3.252e-01, 3.258e-01, 3.264e-01, 3.267e-01, + 3.266e-01, 3.260e-01, 3.247e-01, 3.227e-01, 3.199e-01, 3.163e-01, + 3.121e-01, 3.071e-01, 3.014e-01, 2.953e-01, 2.888e-01, 2.820e-01, + 2.751e-01, 2.682e-01, 2.615e-01, 2.551e-01, 2.491e-01, 2.437e-01, + 2.389e-01, 2.348e-01, 2.316e-01, 2.293e-01, 2.278e-01, 2.274e-01, + 2.372e-04, 5.381e-04, 1.529e-03, 3.897e-03, 8.524e-03, 1.642e-02, + 2.862e-02, 4.613e-02, 6.979e-02, 1.002e-01, 1.377e-01, 1.823e-01, + 2.335e-01, 2.906e-01, 3.524e-01, 4.175e-01, 4.843e-01, 5.509e-01, + 6.155e-01, 6.762e-01, 7.313e-01, 7.794e-01, 8.193e-01, 8.501e-01, + 8.713e-01, 8.829e-01, 8.851e-01, 8.786e-01, 8.642e-01, 8.431e-01, + 8.165e-01, 7.858e-01, 7.523e-01, 7.175e-01, 6.823e-01, 6.480e-01, + 6.154e-01, 5.850e-01, 5.573e-01, 5.325e-01, 5.107e-01, 4.918e-01, + 4.755e-01, 4.615e-01, 4.496e-01, 4.393e-01, 4.303e-01, 4.223e-01, + 4.151e-01, 4.085e-01, 4.023e-01, 3.966e-01, 3.912e-01, 3.862e-01, + 3.817e-01, 3.777e-01, 3.742e-01, 3.713e-01, 3.689e-01, 3.671e-01, + 3.657e-01, 3.647e-01, 3.639e-01, 3.633e-01, 3.626e-01, 3.617e-01, + 3.606e-01, 3.589e-01, 3.568e-01, 3.540e-01, 3.505e-01, 3.463e-01, + 3.415e-01, 3.359e-01, 3.298e-01, 3.233e-01, 3.163e-01, 3.091e-01, + 3.018e-01, 2.945e-01, 2.874e-01, 2.807e-01, 2.743e-01, 2.686e-01, + 2.635e-01, 2.592e-01, 2.558e-01, 2.533e-01, 2.518e-01, 2.513e-01, + 2.380e-04, 5.478e-04, 1.572e-03, 4.022e-03, 8.814e-03, 1.699e-02, + 2.963e-02, 4.776e-02, 7.225e-02, 1.037e-01, 1.425e-01, 1.885e-01, + 2.413e-01, 3.001e-01, 3.637e-01, 4.305e-01, 4.989e-01, 5.668e-01, + 6.325e-01, 6.939e-01, 7.494e-01, 7.974e-01, 8.368e-01, 8.666e-01, + 8.866e-01, 8.965e-01, 8.968e-01, 8.883e-01, 8.718e-01, 8.487e-01, + 8.203e-01, 7.882e-01, 7.537e-01, 7.183e-01, 6.833e-01, 6.497e-01, + 6.183e-01, 5.898e-01, 5.647e-01, 5.430e-01, 5.247e-01, 5.096e-01, + 4.974e-01, 4.877e-01, 4.800e-01, 4.739e-01, 4.689e-01, 4.646e-01, + 4.607e-01, 4.570e-01, 4.533e-01, 4.495e-01, 4.456e-01, 4.417e-01, + 4.377e-01, 4.338e-01, 4.301e-01, 4.267e-01, 4.235e-01, 4.207e-01, + 4.182e-01, 4.161e-01, 4.141e-01, 4.123e-01, 4.106e-01, 4.087e-01, + 4.067e-01, 4.043e-01, 4.015e-01, 3.982e-01, 3.943e-01, 3.898e-01, + 3.848e-01, 3.791e-01, 3.730e-01, 3.664e-01, 3.595e-01, 3.524e-01, + 3.452e-01, 3.380e-01, 3.310e-01, 3.243e-01, 3.180e-01, 3.123e-01, + 3.073e-01, 3.031e-01, 2.997e-01, 2.972e-01, 2.957e-01, 2.952e-01, + 2.386e-04, 5.569e-04, 1.613e-03, 4.146e-03, 9.103e-03, 1.756e-02, + 3.064e-02, 4.940e-02, 7.472e-02, 1.073e-01, 1.473e-01, 1.948e-01, + 2.492e-01, 3.097e-01, 3.750e-01, 4.435e-01, 5.134e-01, 5.827e-01, + 6.494e-01, 7.115e-01, 7.672e-01, 8.151e-01, 8.538e-01, 8.826e-01, + 9.011e-01, 9.093e-01, 9.076e-01, 8.969e-01, 8.784e-01, 8.533e-01, + 8.232e-01, 7.897e-01, 7.543e-01, 7.186e-01, 6.838e-01, 6.511e-01, + 6.214e-01, 5.953e-01, 5.731e-01, 5.549e-01, 5.406e-01, 5.299e-01, + 5.223e-01, 5.174e-01, 5.145e-01, 5.131e-01, 5.126e-01, 5.125e-01, + 5.125e-01, 5.122e-01, 5.114e-01, 5.100e-01, 5.080e-01, 5.055e-01, + 5.025e-01, 4.991e-01, 4.955e-01, 4.919e-01, 4.883e-01, 4.849e-01, + 4.817e-01, 4.788e-01, 4.761e-01, 4.736e-01, 4.713e-01, 4.689e-01, + 4.666e-01, 4.640e-01, 4.612e-01, 4.581e-01, 4.545e-01, 4.505e-01, + 4.461e-01, 4.412e-01, 4.359e-01, 4.302e-01, 4.242e-01, 4.180e-01, + 4.117e-01, 4.055e-01, 3.994e-01, 3.935e-01, 3.881e-01, 3.831e-01, 3.787e-01, 3.749e-01, 3.719e-01, 3.698e-01, 3.684e-01, 3.680e-01 }; @@ -1561,7 +1561,7 @@ void PSaid::defaults(void) { PSaid::~PSaid() { //y.~TArrayD(); //aa.~TArrayD(); - + told = -1.; // to make sure that tables are recalculated for new object } @@ -1602,7 +1602,7 @@ double PSaid::dsdw(double th, double tlab) { // arguments: scattering angle (deg), lab beam kinetic energy (GeV) double a = th/90.; - double costh = cos(th*d2r); + double costh = cos(th*d2r); double s2 = 1.-costh*costh; double sinth = sqrt(s2); double *d = (double*)PP; @@ -1611,13 +1611,13 @@ double PSaid::dsdw(double th, double tlab) { double za = pow(a,pai); int ie = int(ze/dez); int ia = int(za/daz); - if (ie < 1) + if (ie < 1) ie = 1; - else if (ie > nez-1) + else if (ie > nez-1) ie = nez-1; - if (ia < 1) + if (ia < 1) ia = 1; - else if (ia > naz-1) + else if (ia > naz-1) ia = naz-1; int iam = ia-1; int iem = ie-1; @@ -1638,14 +1638,14 @@ double PSaid::sample(double r, double tlab) { if (told != tlab) { told = tlab; double sum = 0.; - for (i=0; i<=dim; ++i) + for (i=0; i<=dim; ++i) y[i] = fac*dsdw((double)(i+1),tlab); for (i=0; iy[i]) ? y[i+1] : y[i] ; aa[i] = sum; } } - + // _____________________________________________________________________ // sample cm scattering angle with the rejection method double rr, f, tf, r2, c0, r1=r; @@ -1655,7 +1655,7 @@ double PSaid::sample(double r, double tlab) { for (j=0; jy[j]) ? y[j+1]: y[j]; c0 = rr/tf+1.+j; diff --git a/src/PScatterDistribution.cc b/src/PScatterDistribution.cc index 0a59be3..dc59706 100644 --- a/src/PScatterDistribution.cc +++ b/src/PScatterDistribution.cc @@ -69,12 +69,12 @@ Bool_t PScatterDistribution::Init(void) { Warning("Init", "Parent not found"); return kFALSE; } - return kTRUE; + return kTRUE; }; Bool_t PScatterDistribution::IsNotRejected(void) { - + PParticle tmp_primary(primary); //particle under investigation. Make better a copy PParticle tmp_parent(parent); //particle under investigation. Make better a copy @@ -90,18 +90,18 @@ Bool_t PScatterDistribution::IsNotRejected(void) { tu = 0; - if (parent->GetValue(T_MATRIX, &t) && + if (parent->GetValue(T_MATRIX, &t) && parent->GetValue(U_MATRIX, &u) && parent->GetValue(TU_MATRIX, &tu)&& parent->GetValue(CHANNEL_POS, &i) ) { - + //Calculate which process is more likely sum = t+u+tu; - } - + } + sam = PUtils::sampleFlat()*sum; - - if (sam > (t+0.5*tu)) { //u-channel + + if (sam > (t+0.5*tu)) { //u-channel tmp_beam = *target; tmp_target = *beam; } @@ -132,16 +132,16 @@ Bool_t PScatterDistribution::IsNotRejected(void) { Double_t tmp_c0 = cos(tmp_primary.Theta()); Double_t f; - + if (angles1) f = angles1->Eval(tmp_c0); - else + else f = angles2->Eval(tmp_c0,tmp_parent.M()); - - if (f > PUtils::sampleFlat()) + + if (f > PUtils::sampleFlat()) return kTRUE; // sample now angular distribution - + return kFALSE; diff --git a/src/PSimpleVMDFF.cc b/src/PSimpleVMDFF.cc index dd5d993..eedfa39 100644 --- a/src/PSimpleVMDFF.cc +++ b/src/PSimpleVMDFF.cc @@ -9,7 +9,7 @@ // the the following equation is used: // FF = m_V^2 / (m_V^2 - q^2) // -// ii) or one can use a self-defined equation using the +// ii) or one can use a self-defined equation using the // PBatch syntax // in this case the batch variables "_q" and "_q2" // are the dilepton mass (resp. squared) @@ -54,9 +54,9 @@ PDistribution* PSimpleVMDFF::Clone(const char *) const { Bool_t PSimpleVMDFF::AddEquation(const char *command) { if (!batch) batch = new PBatch(); - vq = makeStaticData()->GetBatchValue("_q"); - vq2 = makeStaticData()->GetBatchValue("_q2"); - vff2 = makeStaticData()->GetBatchValue("_ff2"); + vq = makeStaticData()->GetBatchValue("_q"); + vq2 = makeStaticData()->GetBatchValue("_q2"); + vff2 = makeStaticData()->GetBatchValue("_ff2"); return batch->AddCommand(command); } @@ -91,9 +91,9 @@ Bool_t PSimpleVMDFF::Init(void) { if (vector_meson_mass2<0 && !batch) { Error("Init", "Vector meson mass OR eqn. must be initialized"); return kFALSE; - } + } - return kTRUE; + return kTRUE; }; @@ -106,7 +106,7 @@ Double_t PSimpleVMDFF::GetWeight(void) { TLorentzVector dil = (*(TLorentzVector*)ep)+(*(TLorentzVector*)em); q = dil.M(); } - + Double_t pmass = parent->M(); Double_t ff = GetWeight(q, pmass); @@ -121,7 +121,7 @@ Double_t PSimpleVMDFF::GetWeight(void) { Double_t PSimpleVMDFF::GetWeight(Double_t *mass, Int_t *) { Double_t q2 = mass[0]*mass[0]; - if (batch) { + if (batch) { *vq = mass[0]; *vq2 = q2; batch->Execute(); diff --git a/src/PStaticData.cc b/src/PStaticData.cc index 964928a..d91979d 100644 --- a/src/PStaticData.cc +++ b/src/PStaticData.cc @@ -1,7 +1,7 @@ ///////////////////////////////////////////////////////////////////// // Pluto Data Wrapper // Provides a lot of helpfull wrapper function to deal with the data -// base. +// base. // // // Author: M.A. Kagarlis @@ -40,7 +40,7 @@ PStaticData::PStaticData() { c_result = NULL; d_result = NULL; t_result = NULL; - + freeze = kFALSE; pid_param = base->GetParamInt("pid"); @@ -80,7 +80,7 @@ PStaticData::PStaticData() { nalias_param = base->GetParamInt("nalias"); lalias_param = base->GetParamInt("lalias"); - + enhance_br_param = base->MakeParamDouble ("enhance_br", "Enhancement for the free decay BR"); //now loop over particles and normalize BRs @@ -132,13 +132,13 @@ PStaticData::PStaticData() { AddAlias("NS110", "N*(1535)0"); //Increase mesh array for resonances - makeDataBase()->SetParamInt("NS110", "maxmesh", 2000); - makeDataBase()->SetParamInt("NS11+", "maxmesh", 2000); - makeDataBase()->SetParamInt("NS11-", "maxmesh", 2000); + makeDataBase()->SetParamInt("NS110", "maxmesh", 2000); + makeDataBase()->SetParamInt("NS11+", "maxmesh", 2000); + makeDataBase()->SetParamInt("NS11-", "maxmesh", 2000); //Ingo's additions: - makeDataBase()->SetParamDouble ("D+", "lmass", 1.); + makeDataBase()->SetParamDouble ("D+", "lmass", 1.); //--> lmass=0 leads to endless loop in PHadronDecayM1:: maxBWWeight makeDataBase()->SetParamDouble ("D+", "umass", 3.); @@ -178,9 +178,9 @@ int PStaticData::MakeDirectoryEntry(const char *name, const char *n, const char Int_t skey = -1; - if (makeDataBase()->GetParamInt(n) < 0) + if (makeDataBase()->GetParamInt(n) < 0) makeDataBase()->MakeParamInt(n, "number of links"); - if (makeDataBase()->GetParamInt(l) < 0) + if (makeDataBase()->GetParamInt(l) < 0) makeDataBase()->MakeParamInt(l, "links"); skey = makeDataBase()->GetEntry(name); @@ -190,12 +190,12 @@ int PStaticData::MakeDirectoryEntry(const char *name, const char *n, const char skey = makeDataBase()->GetEntry(ename); if (skey < 0) skey = makeDataBase()->AddEntry(ename); if (skey < 0) return -1; //failed - + Int_t *dummy; if (!makeDataBase()->GetParamInt(skey,l,&dummy)) { //fresh entry skey = makeDataBase()->AddListEntry(name, n, l, ename); - } + } return skey; } @@ -205,7 +205,7 @@ Double_t *PStaticData::GetBatchValue(const char *name, Int_t make_val) { //Check if double is existing Double_t *val; Int_t batch_value_param = makeDataBase()->GetParamDouble("batch_value"); - if (batch_value_param < 0) + if (batch_value_param < 0) batch_value_param = makeDataBase()->MakeParamDouble("batch_value", "Double storage for batch"); if (!makeDataBase()->GetParamDouble(key_a, batch_value_param, &val)) { if (make_val) { @@ -247,7 +247,7 @@ const char *PStaticData::GetParticleName(const int &id) { int PStaticData::GetParticleIDByKey(int key) { // pid by key // -1 if unvalid - if (!makeDataBase()->GetParamInt (key, pid_param, &i_result)) + if (!makeDataBase()->GetParamInt (key, pid_param, &i_result)) return -1; return *i_result; } @@ -276,7 +276,7 @@ int PStaticData::IsParticle(const int &id, const char *name) { return 0; } -int PStaticData::IsParticleValid(const int &id) { +int PStaticData::IsParticleValid(const int &id) { // check id range by id // Returns a "1" in any case if data base is filled with id // PFireball particles return 0; @@ -285,12 +285,12 @@ int PStaticData::IsParticleValid(const int &id) { if ((key = makeDataBase()->GetEntryInt(pid_param, id)) >= 0) { return id; //if in data base in any case say yes } - + if ((id>500) && (id<1000)) return id; return 0; } - + int PStaticData::IsParticleValid(const char *n) { // check id range by name @@ -301,16 +301,16 @@ int PStaticData::IsParticleValid(const char *n) { return IsParticleValid(pid); } -int PStaticData::AddAlias(const char *old_name, const char *new_name) { +int PStaticData::AddAlias(const char *old_name, const char *new_name) { //adds an alias to primary_key, ret value is alias key PDataBase *base = makeDataBase(); Int_t pkey = -1; - + if ((pkey = base->AddListEntry(old_name, "nalias", "lalias", new_name)) < 0) { Warning("AddAlias", "Name %s not found", old_name); return -1; } - + return pkey; } @@ -339,7 +339,7 @@ int PStaticData::GetAliasParent(int key) { } return -1; } - + int PStaticData::GetSecondaryKey(int key, int defkey) { Int_t listkey = -1; @@ -349,7 +349,7 @@ int PStaticData::GetSecondaryKey(int key, int defkey) { //try to find parent key = GetAliasParent(key); if (key<0) - return -1; //avoid messages + return -1; //avoid messages } while (makeDataBase()->MakeListIterator(key, nalias_param, lalias_param, &listkey)) { @@ -367,7 +367,7 @@ int PStaticData::AddParticle(int pid, const char *name, double mass) { clearFreezeOut(); PDataBase *base = makeDataBase(); Int_t pkey = -1; - + //check if pid already exists if (pid >= 0) if (base->GetEntryInt("pid", pid) >=0 ) { @@ -406,12 +406,12 @@ int PStaticData::AddParticle(int pid, const char *name, double mass) { return -1; } dd = new Double_t(mass); - if (!base->SetParamDouble (pkey, "mass", dd)) { + if (!base->SetParamDouble (pkey, "mass", dd)) { delete dd; return -1; } dd = new Double_t(mass); - if (!base->SetParamDouble (pkey, "ethreshold", dd)) { + if (!base->SetParamDouble (pkey, "ethreshold", dd)) { delete dd; return -1; } @@ -439,7 +439,7 @@ int PStaticData::AddParticle(int pid, const char *name, double mass) { ii = new int(0); if (!base->SetParamInt (pkey, "pythiakf", ii)) return -1; - ii = new int(0); + ii = new int(0); if (!base->SetParamInt (pkey, "widx", ii)) return -1; ii = new int(0); @@ -482,7 +482,7 @@ void PStaticData::PrintParticleByKey(int key) { while (makeDataBase()->MakeListIterator(key, "pnmodes", "link", &listkey)) { PrintDecayByKey(listkey); } - + }; int PStaticData::GetParticleKF(const int id) { @@ -499,7 +499,7 @@ int PStaticData::GetParticleIDbyKF(const int kf) { // return Id corresponding to Pythia6 kf code if (!kf) return 0; int *id, key; - + if ((key = makeDataBase()->GetEntryInt(pkf_param, kf)) < 0) { Warning("GetParticleIDbyKF", "invalid kf code %i", *id); return 0; @@ -667,7 +667,7 @@ int PStaticData::GetParticleParity(const int &id) { return 0; } return *i_result; - + } int PStaticData::GetParticleParity(const char *id) { @@ -773,7 +773,7 @@ int PStaticData::GetTWidx(const int &id) { Warning("GetTWidx", "Particle %i not found", id); return 0; } - + return *i_result; } @@ -793,7 +793,7 @@ void PStaticData::SetTWidx(const int & id, const int & v) { // width flag from index // 0: static width only // 1: use dynamic width - + if (! makeDataBase()->GetParamInt (pid_param, id , widx_param, &i_result)) { Error("SetTWidx", "Particle %i not found", id); } @@ -804,7 +804,7 @@ void PStaticData::SetPWidx(const int &id, const int &v) { // width flag from index // 0: static width only // 1: use dynamic width - + if (!makeDataBase()->GetParamInt (didx_param, id , widx_param, &i_result)) { Warning("SetPWidx", "Decay %i not found", id); } @@ -896,7 +896,7 @@ void PStaticData::SetTotalNormalization(char *p, int flag) { Warning("SetTotalNormalization", "Invalid particle %s", p); return; } - + while(makeDataBase()->MakeListIterator(key, "pnmodes", "link", &listkey)) { if (!makeDataBase()->GetParamInt(listkey, brflag_param, &i_result)) { Int_t *ii = new Int_t(flag); @@ -914,7 +914,7 @@ void PStaticData::SetDecayEmin(const int &id, const double v) { if (!makeDataBase()->GetParamDouble(didx_param, id , ethreshold_param, &d_result)) { Warning("SetDecayEmin", "Decay %i not found", id); } - *d_result = v; + *d_result = v; } Double_t PStaticData::GetParticleEmin(const int &id) { @@ -922,14 +922,14 @@ Double_t PStaticData::GetParticleEmin(const int &id) { Error("GetParticleEmin", "Particle %i not found", id); return 0; } - return *d_result; + return *d_result; } void PStaticData::SetParticleEmin(const int &id, const double v) { if (! makeDataBase()->GetParamDouble (pid_param, id, ethreshold_param, &d_result)) { Warning("SetParticleEmin", "Particle %i not found", id); } - *d_result = v; + *d_result = v; } Double_t PStaticData::GetParticleLMass(const int &id) { @@ -937,7 +937,7 @@ Double_t PStaticData::GetParticleLMass(const int &id) { Warning("GetParticleLMass", "Particle %i not found", id); return 0; } - return *d_result; + return *d_result; } void PStaticData::SetParticleLMass(const char *id, const double v) { @@ -954,7 +954,7 @@ Double_t PStaticData::GetParticleUMass(const int & id) { Warning("GetParticleUMass", "Particle %i not found", id); return 0; } - return *d_result; + return *d_result; } void PStaticData::SetParticleUMass(const char *id, const double v) { @@ -971,14 +971,14 @@ int PStaticData::GetTDepth(const int &id) { Warning("GetTDepth", "Particle %i not found", id); return 0; } - return *i_result; + return *i_result; } void PStaticData::SetTDepth(const int &id, const int & depth) { if (!makeDataBase()->GetParamInt (pid_param, id, tdepth_param, &i_result)) { Warning("SetTDepth", "Particle %i not found", id); } - *i_result = depth; + *i_result = depth; } int PStaticData::GetHDepth(const int & id) { @@ -986,14 +986,14 @@ int PStaticData::GetHDepth(const int & id) { Warning("GetHDepth", "Particle %i not found", id); return 0; } - return *i_result; + return *i_result; } void PStaticData::SetHDepth(const int & id, const int & depth) { if (!makeDataBase()->GetParamInt(pid_param, id, hdepth_param, &i_result)) { Warning("SetHDepth", "Particle %i not found", id); } - *i_result=depth; + *i_result=depth; } Double_t PStaticData::GetDecayBR(Int_t id) { @@ -1029,7 +1029,7 @@ bool PStaticData::SetDecayBR(int didx, double br, int mode) { } *brorig = br; - + return NormParticleBRbyKey(GetParticleKey(GetDecayParentByKey(key))); } @@ -1048,14 +1048,14 @@ bool PStaticData::SetDecayBRByKey(int key, double br, int mode) { return NormParticleBRbyKey(GetParticleKey(GetDecayParentByKey(key))); } -bool PStaticData::SetDecayBR(const char *parent, const char *daughters, +bool PStaticData::SetDecayBR(const char *parent, const char *daughters, double br, int mode) { // Resets the decay branching ratio of an existing decay // Handle this functon with care! // Do not use this function to change the weighting etc. // because the change of the decay b.r. will affect the // shape of the parent resonance - // + // // If you have really physics arguments to change the b.r. // (e.g. update of PDG values) // you *must* use this function at the very beginning of your macro, @@ -1078,11 +1078,11 @@ bool PStaticData::SetDecayBR(const char *parent, const char *daughters, return kFALSE; } - //now check the daughters + //now check the daughters //TODO: All this should go into a help function char *arr1[7]; Int_t arr1_s = 7; //max 7 decay products - + PUtils::Tokenize(daughters, ",", arr1, &arr1_s); Int_t pids[8]; @@ -1097,7 +1097,7 @@ bool PStaticData::SetDecayBR(const char *parent, const char *daughters, Warning("SetDecayBR", "Decay %s -> %s not defined", parent,daughters); return kFALSE; } - + return SetDecayBRByKey(decay_key, br, mode); } @@ -1115,30 +1115,30 @@ bool PStaticData::SetDecayBR(const char *parent, const char *daughters, // } //} -bool PStaticData::NormParticleBR(Int_t id) { +bool PStaticData::NormParticleBR(Int_t id) { // normalize branching ratios for particle id //TODO: check if this works Int_t key = makeDataBase()->GetEntryInt(pid_param, id); return NormParticleBRbyKey(key); } -bool PStaticData::NormParticleBRbyKey(Int_t key) { +bool PStaticData::NormParticleBRbyKey(Int_t key) { // normalize branching ratios for particle id Int_t listkey = -1; double sum = 0.; Double_t *br, *brorig, *width; Double_t twidth = GetParticleTotalWidthByKey(key); - + if (GetParticleNChannelsByKey(key) == 0) return kFALSE; while (makeDataBase()->MakeListIterator(key, "pnmodes", "link", &listkey)) { if (!makeDataBase()->GetParamDouble(listkey, "brorig", &brorig)) return kFALSE; sum += *brorig; } - + listkey = -1; - if (sum > 0.) + if (sum > 0.) while(makeDataBase()->MakeListIterator(key, "pnmodes", "link", &listkey)) { if (!makeDataBase()->GetParamDouble (listkey, "brorig", &brorig)) return kFALSE; if (!makeDataBase()->GetParamDouble (listkey, "br", &br)) return kFALSE; @@ -1190,9 +1190,9 @@ int PStaticData::GetParticleNChannelsByKey(int key) { int PStaticData::IsDecayHadronic(Int_t didx) { Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; - GetDecayMode(didx, tid); + GetDecayMode(didx, tid); for (int i=1; iGetParticleName(ipid[0])); - decay_string2->Append(" --> "); + decay_string2->Append(" --> "); //first I have to check that my decay_string is big enough for (int i=1; i<=n; i++) { - if (ipid[i] > 1000) + if (ipid[i] > 1000) decay_string2->Append("("); decay_string->Append(makeStaticData()->GetParticleName(ipid[i])); decay_string2->Append(makeStaticData()->GetParticleName(ipid[i])); - if (ipid[i] > 1000) + if (ipid[i] > 1000) decay_string2->Append(")"); - if (i != n) decay_string->Append(" , "); + if (i != n) decay_string->Append(" , "); if (i != n) decay_string2->Append(" + "); - + } - if (makeStaticData()->AddDecay(-1, (const char*) decay_string2->Data(), - makeStaticData()->GetParticleName(ipid[0]), + if (makeStaticData()->AddDecay(-1, (const char*) decay_string2->Data(), + makeStaticData()->GetParticleName(ipid[0]), (const char*) decay_string->Data() , 1.0 )) { - + //Info("AddDecay","(%s) Decay of added: %s", PRINT_AUTO_ALLOC,decay_string->Data()); } else { Warning("AddDecay", "Add Decay failed"); } - + return makeStaticData()->GetDecayKey(ipid, n); } -int PStaticData::AddDecay(int didx, const char *name, const char *parent, +int PStaticData::AddDecay(int didx, const char *name, const char *parent, const char *daughters , double br) { //make new decay with decay index "didx" //the didx should be a free number (or set to -1 for auto-alloc) @@ -1240,7 +1240,7 @@ int PStaticData::AddDecay(int didx, const char *name, const char *parent, //all branching ratios are re-normalized clearFreezeOut(); PDataBase *base = makeDataBase(); - + //get parent key Int_t parent_key = GetParticleKey(parent); if (parent_key < 0) { @@ -1254,9 +1254,9 @@ int PStaticData::AddDecay(int didx, const char *name, const char *parent, return -1; } if (didx < 0) { - if (pid < 1000) + if (pid < 1000) didx = pid*32; - else + else didx = pid; while (makeDataBase()->GetEntryInt("didx",didx) >=0 ) { didx++; @@ -1279,7 +1279,7 @@ int PStaticData::AddDecay(int didx, const char *name, const char *parent, //now add the daughters char *arr1[7]; Int_t arr1_s = 7; //max 7 decay products - + PUtils::Tokenize(daughters, ",", arr1, &arr1_s); //does decay already exist? @@ -1301,7 +1301,7 @@ int PStaticData::AddDecay(int didx, const char *name, const char *parent, Int_t *pkey = new int(makeStaticData()->GetParticleKey(partc)); if (*pkey < 0) { Error("AddDecay", "processing decay: do not find pid %s", partc); - } + } const char *ds; if (pat == 0) ds = "d1"; if (pat == 1) ds = "d2"; @@ -1314,21 +1314,21 @@ int PStaticData::AddDecay(int didx, const char *name, const char *parent, Warning("AddDecay", "Too many particles"); return -1; } - + base->SetParamInt(dkey, ds, pkey); } //set default values Int_t *ii; makeDataBase()->GetParamInt(parent_key, "pid", &ii); base->SetParamInt(dkey, "ppid", ii); //set parent id - + ii = new int(didx); base->SetParamInt(dkey, "didx", ii); //decay mode index - + ii = new int(0); //never destructed, but called only once! if (!base->SetParamInt(dkey, "widx", ii)) return -1; - + Double_t *dd = new double(br); if (!base->SetParamDouble(dkey, "br", dd)) return -1; @@ -1386,7 +1386,7 @@ int PStaticData::GetDecayNProductsByKey(const int &key) { } int PStaticData::GetDecayNProducts(const int &id) { -// retrieve number of products by mode index +// retrieve number of products by mode index if (makeDataBase()->GetParamInt(didx_param, id, d7_param, &i_result)) return 7; if (makeDataBase()->GetParamInt(didx_param, id, d6_param, &i_result)) @@ -1405,7 +1405,7 @@ int PStaticData::GetDecayNProducts(const int &id) { } int PStaticData::GetDecayNProducts(const char *id){ -// number of products by name +// number of products by name if (makeDataBase()->GetParamInt((char*)id, "d7", &i_result)) return 7; if (makeDataBase()->GetParamInt((char*)id, "d6", &i_result)) @@ -1467,7 +1467,7 @@ int PStaticData::GetDecayIdx(int *pid, int n) { int id = pid[0], *nm; // parent id, number of decay modes //Get count info - + if (!makeDataBase()->GetParamInt(pid_param, id, count_param, &nm)) { return -3; } @@ -1478,18 +1478,18 @@ int PStaticData::GetDecayIdx(int *pid, int n) { Int_t listkey = -1; Int_t tid[11]; while (makeDataBase()->MakeListIterator(key, "pnmodes", "link", &listkey)) { - tid[0] = 10; + tid[0] = 10; GetDecayModeByKey(listkey, tid); // retrieve current mode info if (tid[0] == n) { // number of products matches input PUtils::isort(tid+1, n); // sort the current mode product pid array count = 0; // reset the match counter for (i=0; i= 0) { + if (key >= 0) { return GetDecayIdxByKey(key); } - return -1; + return -1; } int PStaticData::GetDecayKey(int *pid, int n) { @@ -1540,7 +1540,7 @@ int PStaticData::GetDecayKey(int *pid, int n) { if (!PStaticData::IsParticleValid(pid[i])) { Warning("GetDecayKey", "id %i not found", pid[i]); return -2; - } else if (i) { + } else if (i) { nid[i-1] = pid[i]; // make own copy of product array } } @@ -1559,18 +1559,18 @@ int PStaticData::GetDecayKey(int *pid, int n) { Int_t listkey = -1; Int_t tid[11]; while (makeDataBase()->MakeListIterator(key, "pnmodes", "link", &listkey)) { - tid[0] = 10; + tid[0] = 10; GetDecayModeByKey(listkey, tid); // retrieve current mode info if (tid[0] == n) { // number of products matches input PUtils::isort(tid+1, n); // sort the current mode product pid array count = 0; // reset the match counter for (i=0; iGetParamInt(didx_param, idx, d1_param, &d1_key)) + if (makeDataBase()->GetParamInt(didx_param, idx, d1_param, &d1_key)) found = 1; - if (makeDataBase()->GetParamInt(didx_param, idx, d2_param, &d2_key)) + if (makeDataBase()->GetParamInt(didx_param, idx, d2_param, &d2_key)) found = 2; - if (makeDataBase()->GetParamInt(didx_param, idx, d3_param, &d3_key)) + if (makeDataBase()->GetParamInt(didx_param, idx, d3_param, &d3_key)) found = 3; - if (makeDataBase()->GetParamInt(didx_param, idx, d4_param, &d4_key)) + if (makeDataBase()->GetParamInt(didx_param, idx, d4_param, &d4_key)) found = 4; - if (makeDataBase()->GetParamInt(didx_param, idx, d5_param, &d5_key)) + if (makeDataBase()->GetParamInt(didx_param, idx, d5_param, &d5_key)) found = 5; - if (makeDataBase()->GetParamInt(didx_param, idx, d6_param, &d6_key)) + if (makeDataBase()->GetParamInt(didx_param, idx, d6_param, &d6_key)) found = 6; - if (makeDataBase()->GetParamInt(didx_param, idx, d7_param, &d7_key)) + if (makeDataBase()->GetParamInt(didx_param, idx, d7_param, &d7_key)) found = 7; - + if (found > *id) { Warning("GetDecayMode", "size too low"); *id = 0; return; - } else + } else *id = found; Int_t *d1_p=NULL, *d2_p=NULL, *d3_p=NULL, *d4_p=NULL, @@ -1617,32 +1617,32 @@ void PStaticData::GetDecayMode(int idx, int *id) { if ((found>0)&& !makeDataBase()->GetParamInt(*d1_key,pid_param,&d1_p)) { Warning("GetDecayMode", "unable to unpack key1 %i", *d1_key); - *id = 0; + *id = 0; } else if ((found>1)&& !makeDataBase()->GetParamInt(*d2_key,pid_param,&d2_p)) { Warning("GetDecayMode", "unable to unpack key2 %i", *d2_key); *id = 0; - } + } else if ((found>2)&& !makeDataBase()->GetParamInt(*d3_key,pid_param,&d3_p)) { Warning("GetDecayMode", "unable to unpack key3 %i", *d3_key); *id = 0; - } + } else if ((found>3)&& !makeDataBase()->GetParamInt(*d4_key,pid_param,&d4_p)) { Warning("GetDecayMode", "unable to unpack key4 %i", *d4_key); *id = 0; - } + } else if ((found>4)&& !makeDataBase()->GetParamInt(*d5_key,pid_param,&d5_p)) { Warning("GetDecayMode", "unable to unpack key5 %i", *d5_key); *id = 0; - } + } else if ((found>5)&& !makeDataBase()->GetParamInt(*d6_key,pid_param,&d6_p)) { Warning("GetDecayMode", "unable to unpack key6 %i", *d6_key); *id = 0; - } + } else if ((found>6)&& !makeDataBase()->GetParamInt(*d7_key,pid_param,&d7_p)) { Warning("GetDecayMode", "unable to unpack key7 %i", *d7_key); *id = 0; - } + } if (d1_p) id[1] = *d1_p; if (d2_p) id[2] = *d2_p; if (d3_p) id[3] = *d3_p; @@ -1654,29 +1654,29 @@ void PStaticData::GetDecayMode(int idx, int *id) { void PStaticData::GetDecayModeByKey(int idx, int *id) { - //same as above, but by data base key + //same as above, but by data base key Int_t *d1_key, *d2_key, *d3_key, *d4_key, *d5_key, *d6_key, *d7_key, found=0; - if (makeDataBase()->GetParamInt(idx, d1_param, &d1_key)) + if (makeDataBase()->GetParamInt(idx, d1_param, &d1_key)) found = 1; - if (makeDataBase()->GetParamInt(idx, d2_param, &d2_key)) + if (makeDataBase()->GetParamInt(idx, d2_param, &d2_key)) found = 2; - if (makeDataBase()->GetParamInt(idx, d3_param, &d3_key)) + if (makeDataBase()->GetParamInt(idx, d3_param, &d3_key)) found = 3; - if (makeDataBase()->GetParamInt(idx, d4_param, &d4_key)) + if (makeDataBase()->GetParamInt(idx, d4_param, &d4_key)) found = 4; - if (makeDataBase()->GetParamInt(idx, d5_param, &d5_key)) + if (makeDataBase()->GetParamInt(idx, d5_param, &d5_key)) found = 5; - if (makeDataBase()->GetParamInt(idx, d6_param, &d6_key)) + if (makeDataBase()->GetParamInt(idx, d6_param, &d6_key)) found = 6; - if (makeDataBase()->GetParamInt(idx, d7_param, &d7_key)) + if (makeDataBase()->GetParamInt(idx, d7_param, &d7_key)) found = 7; if (found > *id) { Warning("GetDecayModeByKey", "size too low"); *id = 0; return; - } else + } else *id = found; Int_t *d1_p=NULL, *d2_p=NULL, *d3_p=NULL, *d4_p=NULL, @@ -1686,10 +1686,10 @@ void PStaticData::GetDecayModeByKey(int idx, int *id) { Warning("GetDecayMode", "unable to unpack key1 %i", *d1_key); *id = 0; } - else if (*id>1 && !makeDataBase()->GetParamInt(*d2_key,pid_param,&d2_p)) { + else if (*id>1 && !makeDataBase()->GetParamInt(*d2_key,pid_param,&d2_p)) { Warning("GetDecayMode", "unable to unpack key2 %i", *d2_key); *id = 0; - } + } else if (*id>2 && !makeDataBase()->GetParamInt(*d3_key,pid_param,&d3_p)) { Warning("GetDecayMode", "unable to unpack key3 %i", *d3_key); *id = 0; @@ -1697,7 +1697,7 @@ void PStaticData::GetDecayModeByKey(int idx, int *id) { else if (*id>3 && !makeDataBase()->GetParamInt(*d4_key,pid_param,&d4_p)) { Warning("GetDecayMode", "unable to unpack key4 %i", *d4_key); *id = 0; - } + } else if (*id>4 && !makeDataBase()->GetParamInt(*d5_key,pid_param,&d5_p)) { Warning("GetDecayMode", "unable to unpack key5 %i", *d5_key); *id = 0; @@ -1705,7 +1705,7 @@ void PStaticData::GetDecayModeByKey(int idx, int *id) { else if (*id>5 && !makeDataBase()->GetParamInt(*d6_key,pid_param,&d6_p)) { Warning("GetDecayMode", "unable to unpack key6 %i", *d6_key); *id = 0; - } + } else if (*id>6 && !makeDataBase()->GetParamInt(*d7_key,pid_param,&d7_p)) { Warning("GetDecayMode", "unable to unpack key7 %i", *d7_key); *id = 0; @@ -1739,7 +1739,7 @@ double PStaticData::GetParticleTotalWidthByKey(const int &key) { void PStaticData::SetEnhanceChannelBR(const int id, const double factor) { if (!makeDataBase()->GetParamDouble(didx_param, id, enhance_br_param, &d_result)) { - makeDataBase()->SetParamDouble(makeDataBase()->GetEntryInt(didx_param, id), + makeDataBase()->SetParamDouble(makeDataBase()->GetEntryInt(didx_param, id), "enhance_br", new Double_t(factor)); return; } @@ -1765,8 +1765,8 @@ void PStaticData::DisableAllChannelBR(const char *parent) { Int_t listkey = -1; Int_t link_param = makeDataBase()->GetParamInt("link"); while (makeDataBase()->MakeListIterator - (key, pnmodes_param, link_param, &listkey)) { - makeDataBase()->GetParamInt + (key, pnmodes_param, link_param, &listkey)) { + makeDataBase()->GetParamInt (listkey, didx_param , &didx); //small workaround -> should work on keys SetEnhanceChannelBR(*didx, 0.); } @@ -1780,7 +1780,7 @@ Double_t PStaticData::GetEnhanceChannelBR(const int id) { } void listParticle(int id) { - + if (id<0) { makeStaticData(); //this fill data base makeDataBase()->ListEntries(-1, 1, "pid,*name"); @@ -1792,7 +1792,7 @@ void listParticle(int id) { void listModes(int id) { makeStaticData()->PrintParticle(id); } - + ClassImp(PStaticData) diff --git a/src/PStdData.cc b/src/PStdData.cc index f7467cf..88d6796 100644 --- a/src/PStdData.cc +++ b/src/PStdData.cc @@ -64,7 +64,7 @@ Bool_t PStdData::fillDataBase(void) { base->MakeParamInt("slink", "Particle link"); Int_t pidkey=base->MakeParamInt("pid", "Pluto particle ID"); - + base->SetFastKey(pidkey, 100000); base->MakeParamDouble("width", "Particle static width [GeV]"); base->MakeParamDouble("mass", "Particle pole mass [GeV]"); @@ -98,7 +98,7 @@ Bool_t PStdData::fillDataBase(void) { base->MakeParamDouble("ethreshold", "Energy threshold"); base->MakeParamDouble("scfactor", "Self consistency factor"); base->MakeParamInt("sccount", "Self consistency count (max tries)"); - + base->MakeParamTObj("mesh", "Mesh object"); base->MakeParamTObj("tf1", "TF1 object"); @@ -181,14 +181,14 @@ Bool_t PStdData::fillDataBase(void) { if (!base->SetParamDouble (pkey, "width", &(PStdData::PWidth[i]))) return kFALSE; } - + for (int i=0; igetEntry(PStdData::PName[i]); //now the decays int jmin = 0, jmax = PStdData::maxnummodes; jmin = PPosition[i]; jmax = jmin+PStdData::PNModes[i]; - + for (int j=jmin; jSetParamInt (dkey, "widx", ii)) return kFALSE; - + if (!base->SetParamDouble (dkey, "br", &(PStdData::PBR[j]))) return kFALSE; @@ -218,11 +218,11 @@ Bool_t PStdData::fillDataBase(void) { dd = new Double_t(0.); if (!base->SetParamDouble (dkey, "ethreshold", dd)) return kFALSE; - + dd = new Double_t(0.); //partial width resetted later if (!base->SetParamDouble (dkey, "width", dd)) return kFALSE; - + dd = new Double_t(1.); //sc factor=1. if (!base->SetParamDouble (dkey, "scfactor", dd)) return kFALSE; @@ -234,10 +234,10 @@ Bool_t PStdData::fillDataBase(void) { for (int ii=0; iiGetEntryInt("pid", pid)); if (*pkey<0) { Error("fillDataBase" , "Processing decay: do not find pid %i", pid); @@ -255,7 +255,7 @@ Bool_t PStdData::fillDataBase(void) { } //end decay products } //end decay mode loop } - + disable = 1; return kTRUE; } @@ -277,7 +277,7 @@ const char *PStdData::NAME[mnpar] = { "Sigma-", "Xi0", "Xi-", "Omega", "anti_n", "anti_Lambda", "anti_Sigma-", "anti_Sigma0", "anti_Sigma+","anti_Xi0", "anti_Xi+", - "anti_Omega+","File", "D0", "D++", "D+", "D-", "NP11+", + "anti_Omega+","File", "D0", "D++", "D+", "D-", "NP11+", "ND13+", "NS11+", "rho0", "rho+", "rho-", "BOZO", "d", "t", "alpha", "BOZO2", "He3", //BOZO->BOZO2 "dimuon", "dilepton", "w", "eta'", "sigma", @@ -721,7 +721,7 @@ const int PStdData::NMODES[mnpar]={ // different charge states are included explicitly // with the appropriate isospin factors. // Note: The static branching ratios for decay modes of -// the type 1) hadron -> hadron + hadron and +// the type 1) hadron -> hadron + hadron and // 2) hadron -> N + pi + pi are averages of PDG data, and // are only included for completeness. They are actually // calculated as functions of mass explicitly (see Width() @@ -838,9 +838,9 @@ double PStdData::BRR[mnmodes]={ 4.67e-5, // id=41 rho0 --> e+ + e- 4.55e-5, // id=41 rho0 --> mu+ + mu- // rho+, 1 channel - 1., // id=42 rho+ --> pi+ + pi0 + 1., // id=42 rho+ --> pi+ + pi0 // rho-, 1 channel - 1., // id=43 rho- --> pi- + pi0 + 1., // id=43 rho- --> pi- + pi0 // dimuon, 1 channel 1., // id=50 dimuon --> mu+ + mu- // dilepton, 1 channel @@ -1106,9 +1106,9 @@ const char *PStdData::MODE[mnmodes]={ "3002", // id=41 rho0 --> e+ + e- "5006", // id=41 rho0 --> mu+ + mu- // rho+, 1 channel - "7008", // id=42 rho+ --> pi+ + pi0 + "7008", // id=42 rho+ --> pi+ + pi0 // rho-, 1 channel - "7009", // id=43 rho- --> pi- + pi0 + "7009", // id=43 rho- --> pi- + pi0 // dimuon, 1 channel "6005", // id=50 dimuon --> mu+ + mu- // dilepton, 1 channel @@ -1122,7 +1122,7 @@ const char *PStdData::MODE[mnmodes]={ "3002", // id=52 omega --> e+ + e- "5006", // id=52 omega --> mu+ + mu- // eta', 7 channels - "9008017", // id=53 eta' --> eta + pi- + pi+ + "9008017", // id=53 eta' --> eta + pi- + pi+ "1041", // id=53 eta' --> rho0 + photon "7007017", // id=53 eta' --> eta + pi0 + pi0 "1052", // id=53 eta' --> omega + photon @@ -1132,7 +1132,7 @@ const char *PStdData::MODE[mnmodes]={ // sigma, 3 channels "9008", // id=54 sigma --> pi+ + pi- "3002", // id=54 sigma --> e+ + e- - "5006", // id=54 sigma --> mu+ + mu- + "5006", // id=54 sigma --> mu+ + mu- // phi, 8 channels "12011", // id=55 phi --> K+ + K- "16010", // id=55 phi --> K0L + K0S diff --git a/src/PStdModels.cc b/src/PStdModels.cc index 80c2501..aed33ea 100644 --- a/src/PStdModels.cc +++ b/src/PStdModels.cc @@ -4,7 +4,7 @@ // // Author: I. Froehlich // Written: 27.6.2007 -// Revised: +// Revised: ////////////////////////////////////////////////////////////////////// #include "PDataBase.h" @@ -33,7 +33,7 @@ PStdModels::~PStdModels() { } void PStdModels::Add(PDistributionManagerUtil *pdmutil) { - + if (!generic_physics_done) { generic_physics_done = kTRUE; //Include the standard Pluto distributions @@ -49,9 +49,9 @@ double f_eta_decay(double *x, double *) { } Double_t f_delta_decay(Double_t *x, Double_t *) { - // return (1+3*x[0]*x[0])/4; - // return (1+1.35*x[0]*x[0])/4.; - return (1+1.35*x[0]*x[0])/2.35; //faster + // return (1+3*x[0]*x[0])/4; + // return (1+1.35*x[0]*x[0])/4.; + return (1+1.35*x[0]*x[0])/2.35; //faster } Double_t f_delta_decay2(Double_t *x, Double_t *) { @@ -59,7 +59,7 @@ Double_t f_delta_decay2(Double_t *x, Double_t *) { } void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { - //First, add a set of groups, which helps to switch + //First, add a set of groups, which helps to switch //off certain aspects of physics pdmutil->AddGroup("root", "Root group"); @@ -80,18 +80,18 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pdmutil->SetGroup("particle_models"); //**** rho/omega propagator used e.g. for pion beam plugin - PPropagator *Rho0Propagator = new + PPropagator *Rho0Propagator = new PPropagator("Rho0Propagator@rho0_prop/propagator", "Complex rho0 propagator",-1); - - PPropagator *OmegaPropagator = new + + PPropagator *OmegaPropagator = new PPropagator("OmegaPropagator@w_prop/propagator", "Complex omega propagator",-1); pdmutil->Add(Rho0Propagator); pdmutil->Add(OmegaPropagator); - //**** Complex BW for rho/omega interference + //**** Complex BW for rho/omega interference int ipid[11], decaykey; ipid[0] = makeStaticData()->GetParticleID("rho0"); ipid[1] = makeStaticData()->GetParticleID("e+"); @@ -121,7 +121,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pdmutil->Add(GetModels()); pdmutil->SetGroup("decay_models"); - //Alternative models for the rho: + //Alternative models for the rho: ipid[0]=makeStaticData()->GetParticleID("rho0"); ipid[1]=makeStaticData()->GetParticleID("e+"); ipid[2]=makeStaticData()->GetParticleID("e-"); @@ -146,7 +146,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { ipid[2]=makeStaticData()->GetParticleID("mu-"); decaykey = makeStaticData()->GetDecayKey(ipid, 2); - + PEEDirectDecay *pmodel_mumu = new PEEDirectDecay("rho_picutoff_mu-_mu+", "Dimuon direct decay with pion cutoff", decaykey); pmodel_mumu->SetPiCutoff(1); @@ -156,7 +156,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pdmutil->Add(pmodel_mumu); // linkDB(); - + // // Eta Physics // @@ -168,7 +168,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { TF2 *eta_angles = new TF2("eta_angles", "(1+(3.74041e+01-2.76688e+01*y+5.07488e+00*y*y)*0.5*(3*x*x-1))/2 ", -1, 1, 0, 10); gROOT->GetListOfFunctions()->Remove(eta_angles); - PAngularDistribution *pp_eta_prod_angle = + PAngularDistribution *pp_eta_prod_angle = new PAngularDistribution("pp_eta_prod_angle", "Eta polar angles in pp reactions for direct production"); pp_eta_prod_angle->Add("eta, daughter, primary"); @@ -178,10 +178,10 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pp_eta_prod_angle->SetRotate(kFALSE); pp_eta_prod_angle->SetAngleFunction(eta_angles); pdmutil->Add(pp_eta_prod_angle); - - PAngularDistribution *pp_ns_eta_prod_angle = - new PAngularDistribution("pp_ns_eta_prod_angle", + + PAngularDistribution *pp_ns_eta_prod_angle = + new PAngularDistribution("pp_ns_eta_prod_angle", "Eta polar angles in pp reactions via N*"); pp_ns_eta_prod_angle->Add("eta, daughter, primary"); pp_ns_eta_prod_angle->Add("p, daughter"); @@ -192,10 +192,10 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pdmutil->Add(pp_ns_eta_prod_angle); //pp alignment for eta production - TF2 *pp_angles2=new TF2("pp_angles2", + TF2 *pp_angles2=new TF2("pp_angles2", "(1+(5.037074-4.537543*y+1.010214*y*y)*0.5*(3*x*x-1))/2 ", -1, 1, 0, 10); gROOT->GetListOfFunctions()->Remove(pp_angles2); - PAngularDistribution *pp_eta_pp_align = + PAngularDistribution *pp_eta_pp_align = new PAngularDistribution("pp_eta_pp_align", "pp alignment in pp reactions for direct eta production"); pp_eta_pp_align->Add("eta, daughter"); @@ -205,8 +205,8 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pp_eta_pp_align->SetRotate(kFALSE);//DISTO measured just with boost, no rotation pp_eta_pp_align->SetAngleFunction(pp_angles2); pdmutil->Add(pp_eta_pp_align); - - PAngularDistribution *pp_ns_eta_pp_align = + + PAngularDistribution *pp_ns_eta_pp_align = new PAngularDistribution("pp_ns_eta_pp_align", "pp alignment in pp reactions for eta production via N*"); pp_ns_eta_pp_align->Add("eta, daughter"); @@ -217,7 +217,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pp_ns_eta_pp_align->SetRotate(kFALSE);//DISTO measured just with boost, no rotation pp_ns_eta_pp_align->SetAngleFunction(pp_angles2); pdmutil->Add(pp_ns_eta_pp_align); - + //matrix element for eta -> pi+pi-pi0 PDalitzDistribution *eta_hadronic_decay = new PDalitzDistribution("eta_hadronic_decay", @@ -238,7 +238,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { //Ref.7 TF1 *pseudoscalar_decay = new TF1("helicity", f_eta_decay, -1, 1, 1); gROOT->GetListOfFunctions()->Remove(pseudoscalar_decay); - PAngularDistribution *eta_dilepton_helicity = + PAngularDistribution *eta_dilepton_helicity = new PAngularDistribution("eta_dilepton_helicity", "Helicity angle of the dilepton decay of eta"); eta_dilepton_helicity->Add("dilepton","PARENT"); @@ -249,8 +249,8 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { eta_dilepton_helicity->SetAngleFunction(pseudoscalar_decay); eta_dilepton_helicity->NeverAbort(kTRUE); pdmutil->Add(eta_dilepton_helicity); - - PAngularDistribution *etaprime_dilepton_helicity = + + PAngularDistribution *etaprime_dilepton_helicity = new PAngularDistribution("etaprime_dilepton_helicity", "Helicity angle of the dilepton decay of etaprime"); etaprime_dilepton_helicity->Add("dilepton","PARENT"); @@ -260,7 +260,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { etaprime_dilepton_helicity->SetAngleFunction(pseudoscalar_decay); etaprime_dilepton_helicity->NeverAbort(kTRUE); pdmutil->Add(etaprime_dilepton_helicity); - + PAngularDistribution *pi0_dilepton_helicity = new PAngularDistribution("pi0_dilepton_helicity", "Helicity angle of the dilepton decay of pi0"); @@ -278,7 +278,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { TF1 * pw_decay = new TF1("pw", f_delta_decay, -1, 1, 1); gROOT->GetListOfFunctions()->Remove(pw_decay); - PScatterDistribution *delta_waves1 = + PScatterDistribution *delta_waves1 = new PScatterDistribution("pp_delta_waves1", "Delta+ PW pi0 scattering"); delta_waves1->Add("D+", "PARENT"); delta_waves1->Add("pi0", "DAUGHTER", "primary"); @@ -289,7 +289,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { delta_waves1->SetAngleFunction(pw_decay); pdmutil->Add(delta_waves1); - PScatterDistribution *delta_waves2 = + PScatterDistribution *delta_waves2 = new PScatterDistribution("pp_delta_waves2", "Delta+ PW pi+ scattering"); delta_waves2->Add("D+", "PARENT"); delta_waves2->Add("pi+", "DAUGHTER", "primary"); @@ -300,7 +300,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { delta_waves2->SetAngleFunction(pw_decay); pdmutil->Add(delta_waves2); - PScatterDistribution *delta_waves3 = + PScatterDistribution *delta_waves3 = new PScatterDistribution("pp_delta_waves3", "Delta++ PW pi+ scattering"); delta_waves3->Add("D++", "PARENT"); delta_waves3->Add("pi+", "DAUGHTER", "primary"); @@ -313,7 +313,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { TF1 *pw_decay2 = new TF1("pw", f_delta_decay2, -1, 1, 1); gROOT->GetListOfFunctions()->Remove(pw_decay2); - PScatterDistribution *delta_waves1dil = + PScatterDistribution *delta_waves1dil = new PScatterDistribution("pp_delta_waves1dil", "Delta+ PW DiLepton scattering"); delta_waves1dil->Add("D+", "PARENT"); delta_waves1dil->Add("dilepton", "DAUGHTER", "primary"); @@ -325,7 +325,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pdmutil->Add(delta_waves1dil); - PScatterDistribution *delta_waves1a = + PScatterDistribution *delta_waves1a = new PScatterDistribution("pp_delta_waves1a", "Delta0 PW pi0 scattering"); delta_waves1a->Add("D0", "PARENT"); delta_waves1a->Add("pi0", "DAUGHTER", "primary"); @@ -336,7 +336,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { delta_waves1a->SetAngleFunction(pw_decay); pdmutil->Add(delta_waves1a); - PScatterDistribution *delta_waves2a = + PScatterDistribution *delta_waves2a = new PScatterDistribution("pp_delta_waves2a", "Delta0 PW pi- scattering"); delta_waves2a->Add("D0", "PARENT"); delta_waves2a->Add("pi-", "DAUGHTER", "primary"); @@ -358,7 +358,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pdmutil->Add(delta_waves3a); - PScatterDistribution *delta_waves2dil = + PScatterDistribution *delta_waves2dil = new PScatterDistribution("pp_delta_waves2dil", "Delta0 PW DiLepton scattering"); delta_waves2dil->Add("D0", "PARENT"); delta_waves2dil->Add("dilepton", "DAUGHTER", "primary"); @@ -372,7 +372,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pdmutil->SetGroup("polar_angles"); TF1 *dummy = new TF1("dummy", "1", -1, 1); gROOT->GetListOfFunctions()->Remove(dummy); - PDeltaAngularDistribution *delta_production = + PDeltaAngularDistribution *delta_production = new PDeltaAngularDistribution("NN_delta+_angle", "N+N->N+Delta angular distribution"); delta_production->Add("N,grandparent,beam"); delta_production->Add("N,grandparent,target"); @@ -382,7 +382,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { delta_production->SetAngleFunction(dummy); pdmutil->Add(delta_production); - PDeltaAngularDistribution *delta_production2 = + PDeltaAngularDistribution *delta_production2 = new PDeltaAngularDistribution("NN_delta++_angle", "N+N->N+Delta angular distribution"); delta_production2->Add("N", "GRANDPARENT", "beam"); delta_production2->Add("N", "GRANDPARENT", "target"); @@ -392,7 +392,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { delta_production2->SetAngleFunction(dummy); pdmutil->Add(delta_production2); - PDeltaAngularDistribution *delta_production3 = + PDeltaAngularDistribution *delta_production3 = new PDeltaAngularDistribution("NN_delta0_angle","N+N->N+Delta angular distribution"); delta_production3->Add("N", "GRANDPARENT", "beam"); delta_production3->Add("N", "GRANDPARENT", "target"); @@ -411,7 +411,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { said->SetAngleFunction(dummy); pdmutil->Add(said); - PPiOmegaAngularDistribution *omega_production = + PPiOmegaAngularDistribution *omega_production = new PPiOmegaAngularDistribution("pi+n_wp_angle", "pi+ + n --> w + p angular distribution"); omega_production->Add("pi+", "GRANDPARENT", "beam"); omega_production->Add("n", "GRANDPARENT", "target"); @@ -422,7 +422,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { omega_production->SetVersion(PI_OMEGA_piNNw); pdmutil->Add(omega_production); - PPiOmegaAngularDistribution *omega_production2 = + PPiOmegaAngularDistribution *omega_production2 = new PPiOmegaAngularDistribution("pi-p_wn_angle", "pi- + p --> w + n angular distribution"); omega_production2->Add("pi-", "GRANDPARENT", "beam"); omega_production2->Add("p", "GRANDPARENT", "target"); @@ -433,7 +433,7 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { omega_production2->SetVersion(PI_OMEGA_piNNw); pdmutil->Add(omega_production2); - PPiOmegaAngularDistribution *omega_production3 = + PPiOmegaAngularDistribution *omega_production3 = new PPiOmegaAngularDistribution("pi+p_pi+wp_angle", "pi+ + p -> pi+ + p + w angular distribution"); omega_production3->Add("pi+", "GRANDPARENT", "beam"); omega_production3->Add("p", "GRANDPARENT", "target"); @@ -445,8 +445,8 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { omega_production3->SetVersion(PI_OMEGA_piPPpiw); pdmutil->Add(omega_production3); - - PPiOmegaAngularDistribution *omega_production4 = + + PPiOmegaAngularDistribution *omega_production4 = new PPiOmegaAngularDistribution("pi+p_D++w_angle", "pi+ + p -> D++ + w angular distribution"); omega_production4->Add("pi+", "GRANDPARENT", "beam"); omega_production4->Add("p", "GRANDPARENT", "target"); @@ -462,16 +462,16 @@ void PStdModels::GenericPhysics(PDistributionManagerUtil *pdmutil) { pdmutil->Add(new PHadronDecayM3("w_phasespace_pi+_pi-_pi0", "Width including 3-body p.s.", -1)); pdmutil->Add(new PHadronDecayM3("phi_phasespace_pi+_pi-_pi0", "Width including 3-body p.s.", -1)); - PEEDirectDecay *ee = (PEEDirectDecay *) + PEEDirectDecay *ee = (PEEDirectDecay *) pdmutil->GetDistribution("w_ee_e-_e+"); - if (ee) + if (ee) ee->SetHadronicPS(1); - else + else Warning("GenericPhysics", "[w_ee_e-_e+] not found"); ee = (PEEDirectDecay *) pdmutil->GetDistribution("phi_ee_e-_e+"); - if (ee) + if (ee) ee->SetHadronicPS(1); - else + else Warning("GenericPhysics","[phi_ee_e-_e+] not found"); pdmutil->ExpandGroup("user"); @@ -502,7 +502,7 @@ TObjArray *PStdModels::GetModels(void) { //cout << "pid:" << pid << endl; Int_t decaykey=-1; - while ((makeStaticData()->GetParticleNChannelsByKey(particlekey)>0) && + while ((makeStaticData()->GetParticleNChannelsByKey(particlekey)>0) && (makeDataBase()->MakeListIterator(particlekey, "pnmodes", "link", &decaykey))) { @@ -514,22 +514,22 @@ TObjArray *PStdModels::GetModels(void) { int decay_has_composite = 0; Int_t tid[11]; - tid[0] = 10; + tid[0] = 10; makeStaticData()->GetDecayModeByKey(decaykey, tid); // retrieve current mode info - + for (int p=1; p<=tid[0]; p++) { if (tid[p] > 1000) decay_has_composite = 1; } - if (!makeDynamicData()->GetDecayModelByKey(decaykey)) { + if (!makeDynamicData()->GetDecayModelByKey(decaykey)) { //Check first if we are alraedy done model = NULL; if ((tid[0] == 2) && (!decay_has_composite)) { /* 2 decay products */ - + /* Dalitz Decays */ if (PData::IsDalitz(pid, tid[1], tid[2])) { id = new TString(makeStaticData()->GetParticleName(pid)); @@ -544,31 +544,31 @@ TObjArray *PStdModels::GetModels(void) { ((PData::IsDirectEE(pid,tid[1],tid[2]) || PData::IsDirectMuMu(pid,tid[1],tid[2])) && (!makeStaticData()->IsParticle(pid, "eta") - && !makeStaticData()->IsParticle(pid, "J/Psi") - && !makeStaticData()->IsParticle(pid, "Psi'") - && !makeStaticData()->IsParticle(pid, "sigma") //Not included + && !makeStaticData()->IsParticle(pid, "J/Psi") + && !makeStaticData()->IsParticle(pid, "Psi'") + && !makeStaticData()->IsParticle(pid, "sigma") //Not included )) { id = new TString(makeStaticData()->GetParticleName(pid)); id->Append("_ee_"); id->Append(makeStaticData()->GetParticleName(tid[1])); id->Append("_"); id->Append(makeStaticData()->GetParticleName(tid[2])); - PEEDirectDecay *pmodel = + PEEDirectDecay *pmodel = new PEEDirectDecay((char*)id->Data(), "Dilepton direct decay",decaykey); model = (PChannelModel*) pmodel; makeDataBase()->SetParamInt (particlekey, "maxmesh", new Int_t(2000)); //-> take into accoutn strong variations - makeDataBase()->SetParamInt (decaykey, "maxmesh", new Int_t(2000)); + makeDataBase()->SetParamInt (decaykey, "maxmesh", new Int_t(2000)); } else { int n1=1, n2=1; if (makeStaticData()-> - GetParticleTotalWidth(tid[1]) < unstable_width) - n1 = 0; // too narrow - + GetParticleTotalWidth(tid[1]) < unstable_width) + n1 = 0; // too narrow + if (makeStaticData()-> - GetParticleTotalWidth(tid[2]) < unstable_width ) + GetParticleTotalWidth(tid[2]) < unstable_width ) n2 = 0; // too narrow - + int h = makeStaticData()->IsParticleHadron(tid[1])+ makeStaticData()->IsParticleHadron(tid[2]); @@ -605,7 +605,7 @@ TObjArray *PStdModels::GetModels(void) { "2-body fixed mass, partial width", decaykey); model = (PChannelModel*) pmodel; } - + } } /* END 2 products */ @@ -617,11 +617,11 @@ TObjArray *PStdModels::GetModels(void) { Int_t ust = 0; if (makeStaticData()-> - GetParticleTotalWidth(tid[1]) > unstable_width) ust++; + GetParticleTotalWidth(tid[1]) > unstable_width) ust++; if (makeStaticData()-> - GetParticleTotalWidth(tid[2]) > unstable_width ) ust++; + GetParticleTotalWidth(tid[2]) > unstable_width ) ust++; if (makeStaticData()-> - GetParticleTotalWidth(tid[3]) > unstable_width ) ust++; + GetParticleTotalWidth(tid[3]) > unstable_width ) ust++; if (h && (ust) && (*(makeStaticData()->GetBatchValue("_system_force_m1n")))) { @@ -632,13 +632,13 @@ TObjArray *PStdModels::GetModels(void) { id->Append(makeStaticData()->GetParticleName(tid[2])); id->Append("_"); id->Append(makeStaticData()->GetParticleName(tid[3])); - PHadronDecayM3 *pmodel = + PHadronDecayM3 *pmodel = new PHadronDecayM3((char*)id->Data(), "3-body phase space", decaykey); model = (PChannelModel*) pmodel; if (ust == 1) { AddModel(arr, model, pid, tid); - + id = new TString(makeStaticData()->GetParticleName(pid)); id->Append("_m1n_"); id->Append(makeStaticData()->GetParticleName(tid[1])); @@ -646,13 +646,13 @@ TObjArray *PStdModels::GetModels(void) { id->Append(makeStaticData()->GetParticleName(tid[2])); id->Append("_"); id->Append(makeStaticData()->GetParticleName(tid[3])); - PHadronDecayM1N *pmodel = - new PHadronDecayM1N((char*)id->Data(), + PHadronDecayM1N *pmodel = + new PHadronDecayM1N((char*)id->Data(), "N-body phase space with unstable hadron ", decaykey); model = (PChannelModel*) pmodel; } } else if (h && (ust)) { - + id = new TString(makeStaticData()->GetParticleName(pid)); id->Append("_m1n_"); id->Append(makeStaticData()->GetParticleName(tid[1])); @@ -660,15 +660,15 @@ TObjArray *PStdModels::GetModels(void) { id->Append(makeStaticData()->GetParticleName(tid[2])); id->Append("_"); id->Append(makeStaticData()->GetParticleName(tid[3])); - PHadronDecayM1N *pmodel = + PHadronDecayM1N *pmodel = new PHadronDecayM1N((char*)id->Data(), "N-body phase space with unstable hadron ", decaykey); - + model = (PChannelModel*) pmodel; - + if (ust == 1) { AddModel(arr, model, pid, tid); - + id = new TString(makeStaticData()->GetParticleName(pid)); id->Append("_m3_"); id->Append(makeStaticData()->GetParticleName(tid[1])); @@ -676,12 +676,12 @@ TObjArray *PStdModels::GetModels(void) { id->Append(makeStaticData()->GetParticleName(tid[2])); id->Append("_"); id->Append(makeStaticData()->GetParticleName(tid[3])); - PHadronDecayM3 *pmodel = + PHadronDecayM3 *pmodel = new PHadronDecayM3((char*)id->Data(), "3-body phase space", decaykey); - + model = (PChannelModel*) pmodel; } - } + } } // N>3 models @@ -699,15 +699,15 @@ TObjArray *PStdModels::GetModels(void) { id->Append(makeStaticData()->GetParticleName(tid[p])); if (p != tid[0]) id->Append("_"); } - PHadronDecayM1N *pmodel = + PHadronDecayM1N *pmodel = new PHadronDecayM1N((char*)id->Data(), "N-body phase space with unstable hadron ", decaykey); model = (PChannelModel*) pmodel; } } - + if (!model && !decay_has_composite && tid[0]>1) { - //Add dummy model + //Add dummy model id = new TString(makeStaticData()->GetParticleName(pid)); id->Append("_fixed_"); for (int p=1; p<=tid[0]; p++) { @@ -715,7 +715,7 @@ TObjArray *PStdModels::GetModels(void) { if (p != tid[0]) id->Append("_"); } - PFixedDecay *pmodel = + PFixedDecay *pmodel = new PFixedDecay((char*)id->Data(), "Fixed product masses", decaykey); model = (PChannelModel*) pmodel; model->SetGroupID("decay_models"); @@ -724,15 +724,15 @@ TObjArray *PStdModels::GetModels(void) { if (!model && !decay_has_composite && tid[0] == 1) { //beam fusion id = new TString(makeStaticData()->GetParticleName(pid)); - id->Append("_prod_"); - id->Append(makeStaticData()->GetParticleName(tid[1])); + id->Append("_prod_"); + id->Append(makeStaticData()->GetParticleName(tid[1])); id->Append("@"); id->Append(makeStaticData()->GetParticleName(pid)); id->Append("#prod#"); - + id->Append(makeStaticData()->GetParticleName(tid[1])); - - PFixedProduction *pmodel = + + PFixedProduction *pmodel = new PFixedProduction((char*)id->Data(), "Particle Production (fusion)", -2); //pmodel->Add(makeStaticData()->GetParticleName(pid),"parent"); @@ -743,7 +743,7 @@ TObjArray *PStdModels::GetModels(void) { if (model) { AddModel(arr, model, pid, tid); - } + } if ((tid[0] == 2) && (decay_has_composite) && ( PData::IsN(tid[1]) || PData::IsN(tid[2]) )) { @@ -756,7 +756,7 @@ TObjArray *PStdModels::GetModels(void) { } PFermiMomentum *pmodel = new PFermiMomentum( (char*)id->Data(), "Quasi-free particle production", -1); - if (pid < 1000) + if (pid < 1000) pmodel->Add(makeStaticData()->GetParticleName(pid), "parent"); else { pmodel->Add("q", "parent"); //"White" decay of composite @@ -764,22 +764,22 @@ TObjArray *PStdModels::GetModels(void) { pmodel->Add(makeStaticData()->GetParticleName(pid/1000), "grandparent", "target"); } for (int num=0; numAdd(makeStaticData()->GetParticleName(tid[1+num]), "daughter", "spectator"); else { //This is the quasi-reaction - pmodel->Add("q", "daughter", "composite"); + pmodel->Add("q", "daughter", "composite"); pmodel->Add(makeStaticData()->GetParticleName(tid[1+num]/1000), "granddaughter", "p1"); pmodel->Add(makeStaticData()->GetParticleName(tid[1+num]%1000), "granddaughter", "p2"); } } pmodel->SetGroupID("genbod_models"); - arr->Add((TObject *)pmodel); + arr->Add((TObject *)pmodel); } } //END check for existing primary model - if (!makeDynamicData()->GetDecayModelByKey(decaykey, genbod_key)) { + if (!makeDynamicData()->GetDecayModelByKey(decaykey, genbod_key)) { if (!decay_has_composite && tid[0]>1) { @@ -801,7 +801,7 @@ TObjArray *PStdModels::GetModels(void) { } id->Append("&genbod"); PGenBod *pmodel = new PGenBod((char*)id->Data(), "Pluto build-in genbod", -2); - //if (pid<1000) + //if (pid<1000) pmodel->Add(makeStaticData()->GetParticleName(pid), "parent"); //else pmodel->Add("q","parent"); //"White" decay of composite for (int num=0; numAdd(makeStaticData()->GetParticleName(pid), "daughter"); model->SetGroupID("particle_models"); arr->Add((TObject *)model); - } + } } } //END particle iterator makeStaticData()->SetFreezeOut(); @@ -895,9 +895,9 @@ TObjArray *PStdModels::GetModels(void) { void PStdModels::AddModel(TObjArray *arr, PChannelModel *model, int pid, int *tid) { //If a model has been identified we make it known to the PChannel world - if (pid < 1000) + if (pid < 1000) model->Add(makeStaticData()->GetParticleName(pid), "parent"); - else + else model->Add("q", "parent"); //"White" decay of composite for (int num=0; numAdd(makeStaticData()->GetParticleName(tid[1+num]), "daughter"); diff --git a/src/PTCrossWeight.cc b/src/PTCrossWeight.cc index c730611..71125f6 100644 --- a/src/PTCrossWeight.cc +++ b/src/PTCrossWeight.cc @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////// // -// Calculates the total cross section weights for +// Calculates the total cross section weights for // a decay (a+b) -> something // // Author: I. Froehlich @@ -57,14 +57,14 @@ Bool_t PTCrossWeight::Init(void) { //Now get all daugthers for (int i=0; iM(); } - - if (isMevEnergy) + + if (isMevEnergy) q *= 1000.; Double_t ret = GetWeight(&q); @@ -100,7 +100,7 @@ Double_t PTCrossWeight::GetWeight(Double_t *mass, Int_t *) { } } else if (tcross) ret = tcross->Eval(mass[0]); - else + else ret = tcrossc; // cout << "ret:" << ret << endl; if (ret>0) return ret*scaling; diff --git a/src/PTGenPhaseSpace.cc b/src/PTGenPhaseSpace.cc index 769dca0..59ea45d 100644 --- a/src/PTGenPhaseSpace.cc +++ b/src/PTGenPhaseSpace.cc @@ -1,7 +1,7 @@ ///////////////////////////////////////////////////////////////////// // // Pluto wrapper to TGenPhaseSpace -// +// ///////////////////////////////////////////////////////////////////// @@ -19,7 +19,7 @@ PTGenPhaseSpace::PTGenPhaseSpace() { Fatal("PTGenPhaseSpace()", "Wrong constructor"); }; -PTGenPhaseSpace::PTGenPhaseSpace(const Char_t *id, const Char_t *de, Int_t key) : +PTGenPhaseSpace::PTGenPhaseSpace(const Char_t *id, const Char_t *de, Int_t key) : PChannelModel (id, de, key) { parent = NULL; @@ -41,10 +41,10 @@ Bool_t PTGenPhaseSpace::Init(void) { Warning("Init", "Parent not found"); return kFALSE; } - + bool myloop=1; for (n_daughters=0; n_daughtersM(); } @@ -74,9 +74,9 @@ Bool_t PTGenPhaseSpace::SampleMomentum(void) { Int_t w_counter = 0; repeat2: - + Double_t w0 = event->Generate(); - + if (w0/weight_max < PUtils::sampleFlat()) { if (w_counter < 10000) { w_counter++; diff --git a/src/PThermal.cc b/src/PThermal.cc index c5aaacf..2af9883 100644 --- a/src/PThermal.cc +++ b/src/PThermal.cc @@ -34,10 +34,10 @@ double PThermal::dNdE(double *x, double *par) { double p2 = E*E - M*M; if (p2 <= 0.) return 0.; double p = sqrt(p2); - + if (beta < 0.01 || beta > 0.99) { // simple thermal source val = f*exp(-E/T1); - if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); + if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); } else { // thermal + blast double gamma = 1./sqrt(1.-beta*beta); double alpha = beta*gamma*p/T1; @@ -51,7 +51,7 @@ double PThermal::dNdE(double *x, double *par) { } // Another definition of f is given if dNdE is normalized to 1: - // val -> val/[M*M*T*K2(M/T)] (See e.g. NP A612 (1997) 512) + // val -> val/[M*M*T*K2(M/T)] (See e.g. NP A612 (1997) 512) return 100000.*p*E*val; } @@ -69,11 +69,11 @@ double PThermal::dNdE1(double *x, double *par) { double p2 = E*E - M*M; if (p2 <= 0.) return 0.; double p = sqrt(p2); - + if (beta < 0.01 || beta > 0.99) { // simple thermal source val = f*exp(-E/T1); - if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); - } else { // thermal + blast + if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); + } else { // thermal + blast double gamma = 1./sqrt(1.-beta*beta); double alpha = beta*gamma*p/T1; val = f*exp(-gamma*E/T1) @@ -84,7 +84,7 @@ double PThermal::dNdE1(double *x, double *par) { * ((gamma+T2/E)*sinh(alpha)/alpha -T2/E*cosh(alpha)); } } - + return 100000.*sqrt(p)*E*val; } @@ -101,11 +101,11 @@ double PThermal::dNdE2(double *x, double *par) { double p2 = E*E - M*M; if (p2 <= 0.) return 0.; double p = sqrt(p2); - + if (beta < 0.01 || beta > 0.99) { // simple thermal source val = f*exp(-E/T1); - if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); - } else { // thermal + blast + if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); + } else { // thermal + blast double gamma = 1./sqrt(1.-beta*beta); double alpha = beta*gamma*p/T1; val = f*exp(-gamma*E/T1) @@ -116,7 +116,7 @@ double PThermal::dNdE2(double *x, double *par) { * ((gamma+T2/E)*sinh(alpha)/alpha -T2/E*cosh(alpha)); } } - + return 100000.*p*p*p*E*val; } @@ -133,10 +133,10 @@ double PThermal::dNdE3(double *x, double *par) { double p2 = E*E - M*M; if (p2 <= 0.) return 0.; double p = sqrt(p2); - + val = f*exp(-E/T1); if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); - + return 1000000.*pow(p,n)*val; } @@ -148,7 +148,7 @@ double PThermal::d2NdEdM(double *x, double *par) { double f = par[2]; double beta = par[3]; int id = int(par[4]+0.001); - int idx = int(par[5]+0.001); + int idx = int(par[5]+0.001); double val; double E = x[0]; @@ -163,30 +163,30 @@ double PThermal::d2NdEdM(double *x, double *par) { double p2 = E*E - M*M; if (p2 <= 0.) return 0.; - + double p = sqrt(p2); - + if (beta < 0.01 || beta > 0.99) { // simple thermal source val = f*exp(-E/T1); - if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); - } else { // thermal + blast + if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); + } else { // thermal + blast double gamma = 1./sqrt(1.-beta*beta); double alpha = beta*gamma*p/T1; val = f*exp(-gamma*E/T1) * ((gamma+T1/E)*sinh(alpha)/alpha -T1/E*cosh(alpha)); - + if (f < 1. && T2 > 0.) { alpha = beta*gamma*p/T2; val += (1.-f)*exp(-gamma*E/T2) * ((gamma+T2/E)*sinh(alpha)/alpha -T2/E*cosh(alpha)); } } - - //if (makeStaticData()->GetParticleTotalWidth(id) > *thermal_unstable_width) + + //if (makeStaticData()->GetParticleTotalWidth(id) > *thermal_unstable_width) val *= makeDynamicData()->GetParticleTotalWeight(M,id,idx); - + // Another definition of f is given if d2NdEdM is normalized to 1 - + return 100000.*p*E*val; } @@ -205,11 +205,11 @@ double PThermal::d2NdEdM1(double *x, double *par) { double p2 = E*E - M*M; if (p2 <= 0.) return 0.; double p = sqrt(p2); - + if (beta < 0.01 || beta > 0.99) { // simple thermal source val = f*exp(-E/T1); - if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); - } else { // thermal + blast + if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); + } else { // thermal + blast double gamma = 1./sqrt(1.-beta*beta); double alpha = beta*gamma*p/T1; val = f*exp(-gamma*E/T1) @@ -220,8 +220,8 @@ double PThermal::d2NdEdM1(double *x, double *par) { * ((gamma+T2/E)*sinh(alpha)/alpha -T2/E*cosh(alpha)); } } - - //if (makeStaticData()->GetParticleTotalWidth(id) > *thermal_unstable_width) + + //if (makeStaticData()->GetParticleTotalWidth(id) > *thermal_unstable_width) val *= makeDynamicData()->GetParticleTotalWeight(M,id,idx); // else // val *= makeDynamicData()->GetParticleTotalWeight(M,id); @@ -243,11 +243,11 @@ double PThermal::d2NdEdM2(double *x, double *par) { double p2 = E*E - M*M; if (p2 <= 0.) return 0.; double p = sqrt(p2); - + if (beta < 0.01 || beta > 0.99) { // simple thermal source val = f*exp(-E/T1); - if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); - } else { // thermal + blast + if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); + } else { // thermal + blast double gamma = 1./sqrt(1.-beta*beta); double alpha = beta*gamma*p/T1; val = f*exp(-gamma*E/T1) @@ -258,8 +258,8 @@ double PThermal::d2NdEdM2(double *x, double *par) { * ((gamma+T2/E)*sinh(alpha)/alpha -T2/E*cosh(alpha)); } } - - //if (makeStaticData()->GetParticleTotalWidth(id) > *thermal_unstable_width) + + //if (makeStaticData()->GetParticleTotalWidth(id) > *thermal_unstable_width) val *= makeDynamicData()->GetParticleTotalWeight(M,id,idx); // else // val *= makeDynamicData()->GetParticleTotalWeight(M,id); @@ -281,11 +281,11 @@ double PThermal::d2NdEdM3(double *x, double *par) { double p2 = E*E - M*M; if (p2 <= 0.) return 0.; double p = sqrt(p2); - + val = f*exp(-E/T1); if (f < 1. && T2 > 0.) val += (1.-f)*exp(-E/T2); - - if (makeStaticData()->GetParticleTotalWidth(id) > *thermal_unstable_width) + + if (makeStaticData()->GetParticleTotalWidth(id) > *thermal_unstable_width) val *= makeDynamicData()->GetParticleTotalWeight(M,id,idx); // else // val *= makeDynamicData()->GetParticleTotalWeight(M,id); @@ -329,7 +329,7 @@ double PThermal::d2NdEdTheta(double *x, double *par) { } -double PThermal::dNdTheta(double *x, double *par) { +double PThermal::dNdTheta(double *x, double *par) { // polar angular distribution double theta = x[0]; @@ -340,7 +340,7 @@ double PThermal::dNdTheta(double *x, double *par) { return sin(theta)*(1. + A2*cost2 + A4*cost2*cost2); } -double PThermal::dNdy(double *x, double *par) { +double PThermal::dNdy(double *x, double *par) { // rapidity distribution double y = x[0]; @@ -351,7 +351,7 @@ double PThermal::dNdy(double *x, double *par) { return m*m*T*(1.+2.*chi*(1.+chi))*exp(-1./chi); } -double PThermal::dNdMt(double *x, double *par) { +double PThermal::dNdMt(double *x, double *par) { // transverse-mass distribution double mt = x[0]; @@ -365,7 +365,7 @@ double PThermal::dNdMt(double *x, double *par) { return mt*mt*val; } -double PThermal::dNdPt(double *x, double *par) { +double PThermal::dNdPt(double *x, double *par) { // transverse-momentum distribution double pt = x[0]; @@ -377,7 +377,7 @@ double PThermal::dNdPt(double *x, double *par) { double PThermal::IntThermal(double m, double T, int n) { // - // return Integral|m,inf| E*p**n exp(-E/T) n=0,1,2,3,4,5,6,7 + // return Integral|m,inf| E*p**n exp(-E/T) n=0,1,2,3,4,5,6,7 // double sum = 1; @@ -418,13 +418,13 @@ Double_t PThermal::mtScaleFactor(Int_t id, const Float_t T) { // // Compute the yield enhancement factor due to thermal weighting of a // resonance with id at temperature T. - // - // Factor = 1/B(M0) x Integral[M=0,Inf](B(M)*BW(M))/Integral[M=0,Inf](BW(M)) + // + // Factor = 1/B(M0) x Integral[M=0,Inf](B(M)*BW(M))/Integral[M=0,Inf](BW(M)) // // where BW(M) is the bare resonance shape and B(M) is the integral of the // Boltzmann distribution: B(M) = Integral[E=M,Inf](exp(-E/T)*E*sqrt(E^2-M^2)) // = M^2*T*BesselK(2,M/T) - // + // // Tool function copied from PData (IF) Double_t val = 0.; diff --git a/src/PUtils.cc b/src/PUtils.cc index 2237737..a8b85fc 100644 --- a/src/PUtils.cc +++ b/src/PUtils.cc @@ -49,7 +49,7 @@ void PUtils::dsort(Double_t *a, int n) { Double_t x, w; lt[0] = 1; rt[0] = n; - a: + a: l = lt[level-1]; r = rt[level-1]; --level; @@ -146,9 +146,9 @@ Double_t PUtils::cgc(const int &jx1, const int &jx2, const int &jx3, fact[(j3-m1-m2)/2]*fact[jz1]*fact[jz3]*fact[jt4]*fact[jt5]*(j3+1)/ (fact[j4]*fact[j4]*fact[(j1+j2+j3)/2+1]*fact[j5]*fact[j5]); vcc *= sqrt(fctor); - if (icntr < 0) + if (icntr < 0) vcc *= phasef(jz1); - else if (icntr > 0) + else if (icntr > 0) vcc *= sqrt(Double_t(j2+1)/Double_t(j3+1))*phasef(jt3); return vcc; } @@ -157,10 +157,10 @@ Double_t PUtils::s3j(const Double_t &jx1, const Double_t &jx2, const Double_t &j const Double_t &jm1, const Double_t &jm2, Double_t jm3) { // 3j-symbol, related to Clebsch-Gordan coefficient if (jm3!=0 && jm1+jm2+jm3!=0.) return 0.; - int j1 = 2*int(jx1), - j2 = 2*int(jx2), + int j1 = 2*int(jx1), + j2 = 2*int(jx2), j3 = 2*int(jx3), - m1 = 2*int(jm1), + m1 = 2*int(jm1), m2 = 2*int(jm2); return cgc(j1,j2,j3,m1,m2)*phasef((j1-j2+m1+m2)/2)/sqrt(1.+j3); } @@ -168,7 +168,7 @@ Double_t PUtils::s3j(const Double_t &jx1, const Double_t &jx2, const Double_t &j Double_t PUtils::racah(const int &j1, const int &j2, const int &j3, const int &j4, const int &j5, const int &j6) { // Racah coefficients (arguments are 2 x j or m) - Double_t z1 = j123(j1, j2, j5), + Double_t z1 = j123(j1, j2, j5), z2 = j123(j1, j3, j6); if (z1==0. || z2==0.) return 0.; z1 *= j123(j3, j4, j5); @@ -176,28 +176,28 @@ Double_t PUtils::racah(const int &j1, const int &j2, const int &j3, z2 *= j123(j2, j4, j6); if (z2 == 0.) return 0.; z1 = z2*sqrt(z1/z2); - int jt1 = (j1+j2+j5)/2, - jt2 = (j3+j4+j5)/2, + int jt1 = (j1+j2+j5)/2, + jt2 = (j3+j4+j5)/2, jt3 = (j1+j3+j6)/2, - jt4 = (j2+j4+j6)/2, - jz1 = (j1+j2+j3+j4)/2, + jt4 = (j2+j4+j6)/2, + jz1 = (j1+j2+j3+j4)/2, jz2 = (j1+j4+j5+j6)/2, - jz3 = (j2+j3+j5+j6)/2, + jz3 = (j2+j3+j5+j6)/2, numin = TMath::Max(TMath::Max(jt1,jt2), TMath::Max(jt3,jt4)), numax = TMath::Min(TMath::Min(jz1,jz2), jz3); if (numax < numin) return 0.; - Double_t phase = phasef(numin+jz1)*z1, + Double_t phase = phasef(numin+jz1)*z1, r = 0.; for (int nu=numin; nu<=numax; ++nu) { - int jy1 = nu-jt1, - jy2 = nu-jt2, + int jy1 = nu-jt1, + jy2 = nu-jt2, jy3 = nu-jt3, - jy4 = jz1-nu, - jy5 = jz2-nu, + jy4 = jz1-nu, + jy5 = jz2-nu, jy6 = jz3-nu; Double_t fctor = fact[jy1]*fact[jy2]*fact[jy3]*fact[nu-jt4]* fact[jy4]*fact[jy5]*fact[jy6]/fact[nu+1]; - if (fctor > 0.) + if (fctor > 0.) r += phase/fctor; } return r; @@ -206,24 +206,24 @@ Double_t PUtils::racah(const int &j1, const int &j2, const int &j3, Double_t PUtils::s6j(const Double_t &x1, const Double_t &x2, const Double_t &x3, const Double_t &x4, const Double_t &x5, const Double_t &x6) { // 6j-symbol, related to Racah coefficient - int j1 = 2*int(x1), - j2 = 2*int(x2), + int j1 = 2*int(x1), + j2 = 2*int(x2), j3 = 2*int(x3), - j4 = 2*int(x4), - j5 = 2*int(x5), + j4 = 2*int(x4), + j5 = 2*int(x5), j6 = 2*int(x6); return racah(j1,j2,j5,j4,j3,j6)*phasef((j1+j2+j4+j5)/2); } Double_t PUtils::j123(const int &j1, const int &j2, const int &j3) { // used by Racah - int jz1 = (j1+j2-j3)/2, - jz2 = (j1-j2+j3)/2, - jz3 = (j2+j3-j1)/2, + int jz1 = (j1+j2-j3)/2, + jz2 = (j1-j2+j3)/2, + jz3 = (j2+j3-j1)/2, jz4 = (j1+j2+j3)/2+1; return (jz1<0||jz2<0||jz3<0) ? 0. : fact[jz1]*fact[jz2]*fact[jz3]/fact[jz4]; } - + Int_t PUtils::FindIndex(Int_t n, Double_t *a, Double_t r) { // return index i of first element a[i] which is larger than r. // a[] is assumed to be sorted in ascending order @@ -232,9 +232,9 @@ Int_t PUtils::FindIndex(Int_t n, Double_t *a, Double_t r) { Int_t ihalf = (imin+imax)/2; if (a[0] > r) return 0; while (ihalf > imin) { // algorithm is by binary search - if (a[ihalf] < r) + if (a[ihalf] < r) imin = ihalf; - else + else imax = ihalf; ihalf = (imin+imax)/2; } @@ -245,7 +245,7 @@ Int_t PUtils::FindIndex(Int_t n, Double_t *a, Double_t r) { Bool_t PUtils::Tokenize(const char *options, const char *delimiter, char **array, int *size) { //Tokenize the string "options" using - //the "delimiter" + //the "delimiter" //(like "+" or ",") //The char array is constructed but never deleted //in addition, any spaces before and after the delimiter are cleaned @@ -256,15 +256,15 @@ Bool_t PUtils::Tokenize(const char *options, const char *delimiter, char **array // //The ROOT version is buggy: //TString spattern("a - b -> c"); - //TObjArray *carray = spattern.Tokenize(TString("->")); + //TObjArray *carray = spattern.Tokenize(TString("->")); //carray->GetEntriesFast() //(const Int_t)3 - + //cout << options << " -> " << delimiter << endl; - for (int i=0; i<*size; i++) + for (int i=0; i<*size; i++) array[i] = NULL; - + char *mystack = new char[strlen(options)+1]; strcpy(mystack, options); @@ -273,7 +273,7 @@ Bool_t PUtils::Tokenize(const char *options, const char *delimiter, char **array while (strstr(mystack, delimiter)) { if (pat == *size) { - cout << "Warning (PUtils::Tokenize): Size " << *size<< " is too small for " << + cout << "Warning (PUtils::Tokenize): Size " << *size<< " is too small for " << options << ", delim:" << delimiter << endl; } char *pos = strstr(mystack, delimiter); @@ -294,10 +294,10 @@ Bool_t PUtils::Tokenize(const char *options, const char *delimiter, char **array } void PUtils::remove_spaces(char **partc) { - - while (**partc == ' ') + + while (**partc == ' ') (*partc)++; - + if (strlen(*partc)) { int partend = strlen(*partc)-1; // cout << partc << ":" << partc[partend] << endl; @@ -311,7 +311,7 @@ void PUtils::remove_spaces(char **partc) { Int_t PUtils::remove_brackets(char **partc, char a, char b) { //remove matching brackets like a=(, b=) //cout << "in: " << *partc << endl; - + remove_spaces(partc); if ((*partc)[0] != a) return 0; @@ -331,7 +331,7 @@ Int_t PUtils::remove_brackets(char **partc, char a, char b) { Int_t brackets = 0; for (UInt_t i=0; iSetSeed(s); +void PUtilsREngine::SetSeed(UInt_t s) { + rnd->SetSeed(s); UInt_t seed = (UInt_t)rnd->Rndm()*kMaxUInt; // get a different seed for gRandom - gRandom->SetSeed(seed);//TODOv6 + gRandom->SetSeed(seed);//TODOv6 if (s) Warning("PUtilsREngine", "Seed set FIXED to %i", s); diff --git a/src/PValues.cc b/src/PValues.cc index 78715fd..42c5c8c 100644 --- a/src/PValues.cc +++ b/src/PValues.cc @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////// // Value container implementation file // -// Just a small container class for user-defined values +// Just a small container class for user-defined values // //////////////////////////////////////////////////////// @@ -68,5 +68,5 @@ void PValues::Print(const Option_t *) const { } } - + ClassImp(PValues) diff --git a/src/PVertexFile.cc b/src/PVertexFile.cc index 9f2bd92..a8f1b8b 100644 --- a/src/PVertexFile.cc +++ b/src/PVertexFile.cc @@ -3,7 +3,7 @@ // Written: 11/28/2007 // Revised: // -// vertex information in a file. +// vertex information in a file. // format : ntuple name "vertex" leafs "vX:vY:vZ". // or : ntuple name "vertex" leafs "vX:vY:vZ:seqNr". // Can be used e.g. for embedded particles. The @@ -18,7 +18,7 @@ PVertexFile::PVertexFile() { nEvent = 0; input = NULL; - vertex_tuple = NULL; + vertex_tuple = NULL; vertex_x = makeStaticData()->GetBatchValue("_event_vertex_x"); vertex_y = makeStaticData()->GetBatchValue("_event_vertex_y"); @@ -99,4 +99,4 @@ Bool_t PVertexFile::Modify(PParticle **, int *, int *, int) { return kTRUE; }; -ClassImp(PVertexFile) +ClassImp(PVertexFile)