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

Last change on this file since 836 was 819, checked in by garnier, 16 years ago

import all except CVS

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