]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TTherminator/TTherminator.cxx
Fix Coverity
[u/mrichter/AliRoot.git] / TTherminator / TTherminator.cxx
index f41e37c319fd6116525604b1310c82575acd009b..d034ddfa4fe1326f4c8bef82987f3b4368d78985 100644 (file)
@@ -35,6 +35,7 @@
 #include <TDatabasePDG.h>
 #include <TParticle.h>
 #include <TClonesArray.h>
+#include <TClass.h>
 
 ReadPar *sRPInstance;
 STR      sRPFileName;
@@ -55,14 +56,32 @@ TTherminator::TTherminator():
   fPartDB = new ParticleDB();
 }
 TTherminator::TTherminator(const TTherminator & therm) :
-  TGenerator(therm),
+  TGenerator(therm), 
   fCalka(0),
   fEvent(0),
   fPartDB(0)
 {
   // Copy constructor
+  //  fPartDB = new ParticleDB();
+  if (fCalka) delete fCalka;
+  fCalka = new Integrator(*therm.fCalka);
+  if (fEvent) delete fEvent;
+  fEvent = new Event(*therm.fEvent);
+  if (fPartDB) delete fPartDB;
   fPartDB = new ParticleDB();
 }
+TTherminator& TTherminator::operator=(const TTherminator & therm)
+{
+  if (this != &therm) {
+    fCalka = therm.fCalka;
+    fEvent = therm.fEvent;
+    delete fPartDB;
+    fPartDB = new ParticleDB();
+  }
+
+  return *this;
+}
+
 TTherminator::~TTherminator()
 {
   // Destructor
@@ -203,6 +222,8 @@ void        TTherminator::Initialize(){
        }
       in.close();
     }
+
+  delete tParser;
 }
 
 void        TTherminator::GenerateEvent()
@@ -233,7 +254,7 @@ Int_t       TTherminator::ImportParticles(TClonesArray *particles, Option_t */*o
   Int_t nump = 0;
   if (!fEvent) return 0;
   Int_t numpart = fEvent->GetParticleCount();
-  printf("\n TTherminator: Therminator stack contains %d particles.", numpart);
+  printf("\n TTherminator: Therminator stack contains %d particles.\n", numpart);
   for (Int_t iPart=0; iPart<numpart; iPart++) {
     Particle *tPart = fEvent->GetParticleOfCount(iPart);
     Int_t tFather;
@@ -248,9 +269,9 @@ Int_t       TTherminator::ImportParticles(TClonesArray *particles, Option_t */*o
     nump++;
     //    printf("Putting %d %d %lf %d\n", tPart->GetParticleType()->GetPDGCode(), iPart, tPart->px, tPart);
     new (particlesR[iPart]) TParticle(tPart->GetParticleType()->GetPDGCode(), tPart->HadDecayed(),
-                                     tFather, -1, -1, -1,
-                                     tPart->px, tPart->py, tPart->pz, tPart->GetEnergy() ,
-                                     tPart->rx*1.e-13*kFmToGev, tPart->ry*1.e-13*kFmToGev, tPart->rz*1.e-13*kFmToGev, tPart->rt*1.e-13*kFmToGev/3e10);
+                                     tFather, -1, -1, -1,
+                                     tPart->px, tPart->py, tPart->pz, tPart->GetEnergy() ,
+                                     tPart->rx*1.e-13*kFmToGev, tPart->ry*1.e-13*kFmToGev, tPart->rz*1.e-13*kFmToGev, tPart->rt*1.e-13*kFmToGev/3e10);
     particlesR[iPart]->SetUniqueID(iPart);
   }