source: trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QChipolino.cc @ 1071

Last change on this file since 1071 was 1055, checked in by garnier, 15 years ago

maj sur la beta de geant 4.9.3

File size: 22.1 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26//
27// $Id: G4QChipolino.cc,v 1.35 2009/02/23 09:49:24 mkossov Exp $
28// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
29//
30//      ---------------- G4QChipolino ----------------
31//             by Mikhail Kossov, Sept 1999.
32//      class for Quasmon initiated Chipolinos generated by CHIPS Model
33// --------------------------------------------------------------------
34// Short description: In the CHIPS model not only hadrons are considered,
35// but the di-hadrons, which can not be convereged to the quark content
36// of only one hadron (e.g. pi+pi+, K+p, Delta++p etc). This kind of
37// hadronic states, which can be easily decayed in two hadrons, is called
38// Chipolino-particle in the model.
39// ----------------------------------------------------------------------
40
41//#define debug
42//#define pdebug
43
44#include "G4QChipolino.hh"
45#include <cstdlib>
46using namespace std;
47
48G4QChipolino::G4QChipolino(G4QContent& QCont)
49{
50  // @@ Does not work as static const ??
51  G4QPDGCode Pi0(111);
52  G4double   mPi0  = Pi0.GetMass();
53  G4QContent Pi0QC = Pi0.GetQuarkContent();
54  G4int ban =QCont.GetBaryonNumber();
55  G4int tban=abs(3*ban);
56  G4int tot=QCont.GetTot();   // Initial total number of quarks in QC
57  G4int tod=tot%2;            // tot is even - meson or dibaryon-nucleus
58  if ( (!tod && (tot < 4 || (ban && tot < tban) ) ) || (tod && tot < tban+2) ) 
59    QCont.IncQAQ(1,0.); // Add quark-pair
60
61  G4QContent rQC=QCont;       // Copy for possible reduction ("annihilation" of q-aq pairs)
62  tot=rQC.GetTot();           // New total number of quarks in QC  (temporary)
63  if   (tot%2)rQC.DecQAQ(-tban-2); // Reduce pairs, keep only 5 quarks  (baryon case)
64  else if(ban)rQC.DecQAQ(-tban); // Reduce pairs, keep only 6 quarks  (dibaryon case)
65  else        rQC.DecQAQ(-4); // Reduce pairs, keep only 4 quarks  (meson case)
66  tot=rQC.GetTot();           // Final total number of quarks      (updated)
67#ifdef debug
68  cout<<"G4QChipolino is called with QC="<<QCont<<",rQC="<<rQC<<",tot="<<tot<<G4endl;
69#endif
70  minM=1000000.;              // Prototype of minimal mass         (@@ just a big number)
71  theQPDG1   = Pi0;
72  theQPDG2   = Pi0;
73  theQCont1  = Pi0QC;
74  if      (!tot)              // Should not be here, just in case     (strange input)
75  {
76    G4cerr<<"***G4QChipolino: shouldn't be here 1 QC="<<rQC<<G4endl;
77  }
78  else if (tot==2 || tot==3)  // Should not be here (basic octet/singlet states)
79  {
80    G4cerr<<"***G4QChipolino: shouldn't be here 2 QC="<<rQC<<G4endl;
81    theQCont1= rQC;
82    theQPDG1.InitByQCont(rQC);
83    theQCont = rQC+Pi0QC;
84  }
85  else if (tot==4)                 // Two possible combinations for the meson
86  {
87    G4QContent bQC=rQC.IndQ();
88#ifdef debug
89    G4cout<<"G4QChipolino: tot=4,rQC="<<rQC<<",bQC="<<bQC<<G4endl;
90#endif
91    for(int j=0; j<2; j++)
92    {
93      G4QContent aQC=rQC.IndAQ(j);
94      G4QContent cQC=bQC+aQC;
95      G4QPDGCode cQPDG(cQC);
96      G4double                    M1=cQPDG.GetMass(); 
97      if(cQPDG.GetPDGCode()==221) M1=mPi0;
98      G4QContent oQC=rQC-cQC;
99#ifdef debug
100   cout<<"G4QChipolino: aQC="<<aQC<<", cQC="<<cQC<<", oQC="<<oQC<<G4endl;
101#endif
102      G4QPDGCode oQPDG(oQC);
103      G4double                    M2=oQPDG.GetMass();
104      if(oQPDG.GetPDGCode()==221) M2=mPi0;
105      G4double m=M1+M2;
106#ifdef debug
107   cout<<"G4QChipolino: c="<<cQPDG<<",cM="<<M1<<",o="<<oQPDG<<",oM="<<M2
108          <<",cM+0M="<<m<<", curMinM="<<minM<<G4endl;
109#endif
110      if(m<minM)
111      {
112        minM=m;
113        theQPDG1  = cQPDG;
114        theQCont1 = cQC;
115        theQPDG2  = oQPDG;
116      }
117    }
118  }
119  else if (tot==5)                 // Four possible combinations for the baryon
120  {
121    G4int nQ=rQC.GetQ();
122    G4int nA=rQC.GetAQ();
123    G4bool fl=nA>nQ;               // Flag of antibaryon case
124#ifdef pdebug
125 cout<<"G4QChipolino: Baryon case nQ="<<nQ<<",nA="<<nA<<",QC="<<rQC
126        <<",fl="<<fl<<G4endl;
127#endif
128    G4QContent bQC;
129    if (fl) bQC=rQC.IndQ();       // Antibaryon case
130    else    bQC=rQC.IndAQ();      // Baryon case - QC of antiquark
131    for (int i=0; i<4; i++)
132    {
133      G4QContent cQC;
134      if (fl) cQC=bQC+rQC.IndAQ(i);
135      else    cQC=bQC+rQC.IndQ(i);// Make mesonout of anti-quark
136      G4QPDGCode cQPDG(cQC);      // Make QPDG particle
137      G4double                    M1=cQPDG.GetMass(); // Get meson mass
138      if(cQPDG.GetPDGCode()==221) M1=mPi0; // Make pi0 out of eta
139      G4QContent oQC=rQC-cQC;     // Make residual baryon
140      G4QPDGCode oQPDG(oQC);      // Make QPDG of residual baryon
141      G4double                    M2=oQPDG.GetMass(); // Get baryon mass
142      if(oQPDG.GetPDGCode()==221) M2=mPi0; // @@ Never !!
143      G4double m=M1+M2;
144      if(m<minM)
145      {
146        minM=m;
147        theQPDG1  = cQPDG;
148        theQCont1 = cQC;
149        theQPDG2  = oQPDG;
150      }
151    }
152#ifdef pdebug
153 cout<<"G4QChipolino: Baryon case minM="<<minM<<", M="<<theQCont1<<theQPDG1
154        <<", B="<<theQPDG2<<G4endl;
155#endif
156  }
157  else if (tot==6)                 // Four possible combinations for the di-baryon
158  {
159    if(ban)
160    {
161      G4int nQ=rQC.GetQ();
162      G4int nA=rQC.GetAQ();
163      G4bool fl=nA>nQ;             // Flag of anti-dibaryon case
164#ifdef debug
165   cout<<"G4QChipolino: Di-Bar. case nQ="<<nQ<<",nA="<<nA<<",QC="<<rQC<<",fl="<<fl<<G4endl;
166#endif
167      for (int i=0; i<4; i++)
168      {
169        G4QContent aQC;
170        if (fl) aQC=rQC.IndAQ(i);
171        else    aQC=rQC.IndQ(i);
172        for (int j=i+1; j<5; j++)
173        {
174          G4QContent bQC;
175          if (fl) bQC=aQC+rQC.IndAQ(j);
176          else    bQC=aQC+rQC.IndQ(j);
177          for (int k=j+1; k<6; k++)
178          {
179            G4QContent cQC;
180            if (fl) cQC=bQC+rQC.IndAQ(k);
181            else    cQC=bQC+rQC.IndQ(k);
182            G4QPDGCode cQPDG(cQC);
183            G4double                    M1=cQPDG.GetMass();
184            if(cQPDG.GetPDGCode()==221) M1=mPi0;
185            G4QContent oQC=rQC-cQC;
186            G4QPDGCode oQPDG=(oQC);
187            G4double                    M2=oQPDG.GetMass();
188            if(oQPDG.GetPDGCode()==221) M2=mPi0;
189            G4double m=M1+M2;
190            if(m<minM)
191            {
192              minM=m;
193              theQPDG1  = cQPDG;
194              theQCont1 = cQC;
195              theQPDG2  = oQPDG;
196            }
197          }
198        }
199      }
200    }
201    else                       // Baryon-AntiBaryon
202    {
203      theQCont1 = rQC.IndQ(0)+rQC.IndQ(1)+rQC.IndQ(2);
204      theQPDG1.InitByQCont(theQCont1);
205      theQPDG2.InitByQCont(rQC.IndAQ(0)+rQC.IndAQ(1)+rQC.IndAQ(2));
206    }
207  }
208  else if(((rQC.GetU() )>(rQC.GetS() -4) && (rQC.GetD() )>(rQC.GetS() -4)) ||
209          ((rQC.GetAU())>(rQC.GetAS()-4) && (rQC.GetAD())>(rQC.GetAS()-4)) )
210  {
211    G4int kD=rQC.GetD();
212    G4int kU=rQC.GetU();
213    G4int kS=rQC.GetS();
214    G4int mD=rQC.GetAD();
215    G4int mU=rQC.GetAU();
216    G4int mS=rQC.GetAS();
217    G4int nQ=rQC.GetQ();
218    G4int nA=rQC.GetAQ();
219    G4bool fl=nA>nQ;           // Flag of anti-fragment case
220#ifdef debug
221    G4cout<<"G4QChipolino: NucFragment case nQ="<<nQ<<",nAQ="<<nA<<", QC="<<rQC<<",fl="<<fl
222          <<G4endl;
223#endif
224 if((fl&&kS>1)||(!fl&&mS>1))
225    {
226      G4cerr<<"***G4QChipolino: ***Overfowed by strange quarks*** rQC="<<rQC<<G4endl;
227      //throw G4QException("G4QChipolino: NuclearFragment is overflowed by strangeQuarks");
228    }
229    else if(fl)                // ===> Anti-fragment
230    {
231      //G4cerr<<"***G4QChipolino: ***Anti-nuclear fragments*** rQC="<<rQC<<G4endl;
232      //throw G4QException("G4QChipolino: Antinuclear fragments are not yet supported");
233      if(!mS)                                                      // No strange quarks
234      {
235        G4int nI=mU-mD;                                            // Isotopic shift
236        G4int nN=(mU+mD-nI*3)/6;
237        if(!kS)                                                    // No kaons
238        {
239          if((nI>=0&&nN>=0)||(nI<0&&nN>=-nI))                      // Delta isn't necessary
240          {
241            if(nI>0)                                               // Excess of antiprotons
242            {
243              theQPDG1 = G4QPDGCode(-(90000000+1000*(nN+nI-1)+nN));// A Fragment-AProton
244              theQPDG2 = G4QPDGCode(-2212);                        // An Anti-Proton
245            }
246            else                                                   // Excess of a-neutrons
247            {
248              theQPDG1 = G4QPDGCode(-(90000000+1000*(nN+nI)+nN-1));// A Fragment-ANeutron
249              theQPDG2 = G4QPDGCode(-2112);                        // An Anti-Neutron
250            }
251          }
252          else if((nI>=0&&nN>-2)||(nI<0&&nN>-nI-2))                // Delta can be a part
253          {
254            if(nI>0)                                               // Excess of au-quarks
255            {
256              theQPDG1=G4QPDGCode(-(90000000+1000*(nN+nI-2)+nN+1));// A Fragment-AProton
257              theQPDG2=G4QPDGCode(-2224);                          // An Anti-Delta++
258            }
259            else                                                   // Excess of ad-quarks
260            {
261              theQPDG1=G4QPDGCode(-(90000000+1000*(nN+nI+1)+nN-2));// A Fragment-ANeutron
262              theQPDG2=G4QPDGCode(-1114);                          // An Anti-Delta-
263            }
264          }
265          else
266          {
267            G4cerr<<"***G4QChipolino:**A**IsotopicAsymmetry (without S),rQC="<<rQC<<G4endl;
268            //throw G4QException("G4QChipolino: IsotopicAsymmety of AntiMultyBar Quasmon");
269          }
270        }
271        else if(kS<2)                                              // NucFrag+K is possible
272        {
273          G4int    nN =(mU+mD-4-nI*3)/6;
274          if(nI>0)                                                 // Excess of au-quarks
275          {
276            nN+=1;
277            theQPDG1 = G4QPDGCode(-(90000000+1000*(nN+nI-1)+nN));  // An Anti-Fragment
278            theQPDG2 = G4QPDGCode(-321);                           // A K- meson
279          }
280          else
281          {
282            theQPDG1 = G4QPDGCode(-(90000000+1000*(nN+nI+1)+nN));  // An AntiFragment
283            theQPDG2 = G4QPDGCode(-311);                           // An Anti-K0 meson
284          }
285        }
286        else
287        {
288          G4cerr<<"***G4QChipolino: ***Too many kaons are needed*** rQC="<<rQC<<G4endl;
289          //throw G4QException("G4QChipolino: Too Many Kaons are needed for AntiNucFragm");
290        }
291      }
292      else                     // Fragment with strangeness
293      {
294        if(mS<=mU&&mS<=mD)     // Fragment consisting of Neutrons, Protons & Lambrdas only
295      {
296          G4int nI=mU-mD;                                          // Isotopic shift
297          G4int nN=(mU+mD-mS-mS-nI*3)/6;
298          if((nI>=0&&nN>=0)||(nI<0&&nN>=-nI))                      // Delta isn't necessary
299          {
300            if(nI>0)                                               // Excess of protons
301            {
302              theQPDG1 = G4QPDGCode(-(90000000+1000*(kS*1000+nN+nI-1)+nN));// Fragm-AProton
303              theQPDG2 = G4QPDGCode(-2212);                        // An Anti-Proton
304            }
305            else                                                   // Excess of neutrons
306            {
307              theQPDG1 = G4QPDGCode(-(90000000+1000*(kS*1000+nN+nI)+nN-1));//Fragm-ANeutron
308              theQPDG2 = G4QPDGCode(-2112);                        // An Anti-Neutron
309            }
310          }
311          else if((nI>=0&&nN>-2)||(nI<0&&nN>-nI-2))                // Delta can be a part
312          {
313            if(nI>0)                                               // Excess of au-quarks
314            {
315              theQPDG1=G4QPDGCode(-(90000000+1000*(kS*1000+nN+nI-2)+nN+1));//Fragm-AProton
316              theQPDG2=G4QPDGCode(-2224);                          // An Anti-Delta++
317            }
318            else                                                   // Excess of ad-quarks
319            {
320              theQPDG1=G4QPDGCode(-(90000000+1000*(kS*1000+nN+nI+1)+nN-2));//Fragm-ANeutron
321              theQPDG2=G4QPDGCode(-1114);                          // An Anti-Delta-
322            }
323          }
324          else
325          {
326            G4cerr<<"***G4QChipolino:**A**IsotopicAssimetry (with S)*** rQC="<<rQC<<G4endl;
327            //throw G4QException("G4QChipolino: Isotopics of Strange AntiMultyBarQuasmon");
328          }
329        }
330        else                                                       // Excess of s-quarks
331        {
332          G4int       lam=mU;                                      // A#of Anti-Lambdas
333          if (lam>mD) lam=mD;
334          G4int lD=mD-lam;                                         // Residual ad-quarks
335          G4int lU=mU-lam;                                         // Residual au-quarks
336          G4int lS=mS-lam;                                         // Residual as-quarks
337          if(lD+lU+lS!=3||lD<0||lU<0||lS<0)
338          {
339            G4cerr<<"***G4QChipolino:*AntiFragment* rQC="<<rQC<<",s="<<lS<<",u="<<lU<<",d"
340                  <<lD<<G4endl;
341            //throw G4QException("G4QChipolino: Exotic superstrange AntiMultyBaryon");
342          }
343          if     ( !lD && lU==2) theQPDG2=G4QPDGCode(-3222);       // Anti-Sigma+
344          else if( !lU && lD==2) theQPDG2=G4QPDGCode(-3112);       // Anti-Sigma-
345          else if( !lD && lU==1) theQPDG2=G4QPDGCode(-3322);       // Anti-Ksi0
346          else if( !lU && lD==1) theQPDG2=G4QPDGCode(-3312);       // Anti-Ksi-
347          else                   theQPDG2=G4QPDGCode(-3334);       // Anti-Omega-
348          theQPDG1=G4QPDGCode(-(90+lam)*1000000);                  // Anti Strange Matter
349        }
350        theQCont1  = rQC-theQPDG2.GetQuarkContent();               // QCont of Fragment-H
351        theQCont   = rQC;                                          // QCont of Chipolino
352      }
353    }
354    else                       // ===> Nuclear Fragment
355    {
356      if(!kS)                                                      // No strange quarks
357      {
358        G4int nI=kU-kD;                                            // Isotopic shift
359        G4int nN=(kU+kD-nI*3)/6;
360        if(!mS)                                                    // No kaons
361        {
362          if((nI>=0&&nN>=0)||(nI<0&&nN>=-nI))                      // Delta isn't necessary
363          {
364            if(nI>0)                                               // Excess of protons
365            {
366              theQPDG1 = G4QPDGCode(90000000+1000*(nN+nI-1)+nN);   // A Fragment-Proton
367              theQPDG2 = G4QPDGCode(2212);                         // A Proton
368            }
369            else                                                   // Excess of neutrons
370            {
371              theQPDG1 = G4QPDGCode(90000000+1000*(nN+nI)+nN-1);   // A Fragment-Neutron
372              theQPDG2 = G4QPDGCode(2112);                         // A Neutron
373            }
374          }
375          else if((nI>=0&&nN>-2)||(nI<0&&nN>-nI-2))                // Delta can be a part
376          {
377            if(nI>0)                                               // Excess of u-quarks
378            {
379              theQPDG1=G4QPDGCode(90000000+1000*(nN+nI-2)+nN+1);   // A Fragment-Proton
380              theQPDG2=G4QPDGCode(2224);                           // A Delta++
381            }
382            else                                                   // Excess of d-quarks
383            {
384              theQPDG1=G4QPDGCode(90000000+1000*(nN+nI+1)+nN-2);   // A Fragment-Neutron
385              theQPDG2=G4QPDGCode(1114);                           // A Delta-
386            }
387          }
388          else
389          {
390            G4cerr<<"***G4QChipolino:***Isotopic assimetry (without S), rQC="<<rQC<<G4endl;
391            //throw G4QException("G4QChipolino:ExoticIsotopicAssimety of MultyBarQuasmon");
392          }
393        }
394        else if(mS<2)                                              // NucFrag+K is possible
395        {
396          G4int    nN =(kU+kD-4-nI*3)/6;
397          if(nI>0)                                                 // Excess of u-quarks
398          {
399            nN+=1;
400            theQPDG1 = G4QPDGCode(90000000+1000*(nN+nI-1)+nN);     // A Fragment
401            theQPDG2 = G4QPDGCode(321);                            // A K+ meson
402          }
403          else
404          {
405            theQPDG1 = G4QPDGCode(90000000+1000*(nN+nI+1)+nN);     // A Fragment
406            theQPDG2 = G4QPDGCode(311);                            // A K0 meson
407          }
408        }
409        else
410        {
411          G4cerr<<"***G4QChipolino: ***Too many kaons are needed*** rQC="<<rQC<<G4endl;
412          //throw G4QException("G4QChipolino: More than one Kaon is needed for NuclFragm");
413        }
414      }
415      else                     // Fragment with strangeness
416      {
417        if(kS<=kU&&kS<=kD)     // Fragment consisting of Neutrons, Protons & Lambrdas only
418        {
419          G4int nI=kU-kD;                                          // Isotopic shift
420          G4int nN=(kU+kD-kS-kS-nI*3)/6;
421          if((nI>=0&&nN>=0)||(nI<0&&nN>=-nI))                      // Delta isn't necessary
422          {
423            if(nI>0)                                               // Excess of protons
424            {
425              theQPDG1 = G4QPDGCode(90000000+1000*(kS*1000+nN+nI-1)+nN);// Fragment-Proton
426              theQPDG2 = G4QPDGCode(2212);                         // A Proton
427            }
428            else                                                   // Excess of neutrons
429            {
430              theQPDG1 = G4QPDGCode(90000000+1000*(kS*1000+nN+nI)+nN-1);// Fragment-Neutron
431              theQPDG2 = G4QPDGCode(2112);                         // A Neutron
432            }
433          }
434          else if((nI>=0&&nN>-2)||(nI<0&&nN>-nI-2))                // Delta can be a part
435          {
436            if(nI>0)                                               // Excess of u-quarks
437            {
438              theQPDG1=G4QPDGCode(90000000+1000*(kS*1000+nN+nI-2)+nN+1);// Fragment-Proton
439              theQPDG2=G4QPDGCode(2224);                           // A Delta++
440            }
441            else                                                   // Excess of d-quarks
442            {
443              theQPDG1=G4QPDGCode(90000000+1000*(kS*1000+nN+nI+1)+nN-2);// Fragment-Neutron
444              theQPDG2=G4QPDGCode(1114);                           // A Delta-
445            }
446          }
447          else
448          {
449            G4cerr<<"***G4QChipolino: ***Isotopic assimetry (with S)*** rQC="<<rQC<<G4endl;
450            //throw G4QException("G4QChipolino:IsotopicAssimety of StrangeMultyBar Quasm");
451          }
452        }
453        else                                                       // Excess of s-quarks
454        {
455          G4int       lam=kU;                                      // A#of Lambda
456          if (lam>kD) lam=kD;
457          G4int lD=kD-lam;                                         // Residual d-quarks
458          G4int lU=kU-lam;                                         // Residual u-quarks
459          G4int lS=kS-lam;                                         // Residual s-quarks
460          if(lD+lU+lS!=3||lD<0||lU<0||lS<0)
461          {
462            G4cerr<<"***G4QChipolino:*Fragment*rQC="<<rQC<<",s="<<lS<<",u="<<lU<<",d"
463                  <<lD<<G4endl;
464            //throw G4QException("G4QChipolino: Exotic superstrange Multy Baryon");
465          }
466          if     ( !lD && lU==2) theQPDG2=G4QPDGCode(3222);        // Sigma+
467          else if( !lU && lD==2) theQPDG2=G4QPDGCode(3112);        // Sigma-
468          else if( !lD && lU==1) theQPDG2=G4QPDGCode(3322);        // Ksi0
469          else if( !lU && lD==1) theQPDG2=G4QPDGCode(3312);        // Ksi-
470          else                   theQPDG2=G4QPDGCode(3334);        // Omega-
471          theQPDG1=G4QPDGCode((90+lam)*1000000);                   // Strange Matter
472        }
473        theQCont1  = rQC-theQPDG2.GetQuarkContent();               // QCont of Fragment-H
474        theQCont   = rQC;                                          // QCont of Chipolino
475      }
476    }
477  }
478  else
479  {
480    G4cerr<<"***G4QChipolino: ***Exotics*** rQC="<<rQC<<G4endl;
481    //throw G4QException("G4QChipolino: can't be constructed for exotic baryon or meson");
482  }
483}
484
485G4QChipolino::G4QChipolino(const G4QChipolino& right)
486{
487  theQPDG1  = right.theQPDG1;
488  theQPDG2  = right.theQPDG2;
489  theQCont  = right.theQCont;
490  theQCont1 = right.theQCont1;
491  minM      = right.minM;
492}
493
494G4QChipolino::G4QChipolino(G4QChipolino* right)
495{
496  theQPDG1  = right->theQPDG1;
497  theQPDG2  = right->theQPDG2;
498  theQCont  = right->theQCont;
499  theQCont1 = right->theQCont1;
500  minM      = right->minM;
501}
502
503const G4QChipolino& G4QChipolino::operator=(const G4QChipolino &right)
504{
505  if(this != &right)                          // Beware of self assignment
506  {
507    theQPDG1  = right.theQPDG1;
508    theQPDG2  = right.theQPDG2;
509    theQCont  = right.theQCont;
510    theQCont1 = right.theQCont1;
511    minM      = right.minM;
512  }
513  return *this;
514}
515
516G4QChipolino::~G4QChipolino() {}
517
518// Standard output for G4QChipolino
519ostream& operator<<(ostream& lhs, G4QChipolino& rhs)
520{//      ===========================================
521  lhs<<"{1="<<rhs.GetQPDG1()<<",2="<<rhs.GetQPDG2()<< "}";
522  return lhs;
523}
524
525
526
527
528
529
Note: See TracBrowser for help on using the repository browser.