]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSvImpacts.cxx
In AliMUONTriggerTrack: fixing memory leak
[u/mrichter/AliRoot.git] / PHOS / AliPHOSvImpacts.cxx
index 55326627561f16f53b8c2f56a04dc43cc08b9921..56ffb673c4e0c3749b6fcfc2e61ae74ccd5c0b99 100644 (file)
 /* History of cvs commits:
  *
  * $Log$
+ * Revision 1.24  2006/11/14 17:11:15  hristov
+ * Removing inheritances from TAttLine, TAttMarker and AliRndm in AliModule. The copy constructor and assignment operators are moved to the private part of the class and not implemented. The corresponding changes are propagated to the detectors
+ *
+ * Revision 1.23  2006/09/13 07:31:01  kharlov
+ * Effective C++ corrections (T.Pocheptsov)
+ *
  * Revision 1.22  2005/06/17 07:39:07  hristov
  * Removing GetDebug and SetDebug from AliRun and AliModule. Using AliLog for the messages
  *
@@ -41,7 +47,9 @@
 // --- ROOT system ---
 
 //#include <TTree.h>
+#include <TClonesArray.h>
 #include <TVirtualMC.h>
+#include <TTree.h>
 
 // --- Standard library ---
 
@@ -51,6 +59,7 @@
 #include "AliPHOSImpact.h"
 #include "AliPHOSvImpacts.h"
 #include "AliRun.h"
+#include "AliLoader.h"
 #include "AliMC.h"
 #include "AliLog.h"
 
@@ -58,9 +67,12 @@ ClassImp(AliPHOSvImpacts)
 
 //____________________________________________________________________________
 AliPHOSvImpacts::AliPHOSvImpacts():
-  fEMCImpacts(0),
-  fCPVImpacts(0),
-  fPPSDImpacts(0)
+  fEMCImpacts(new TList),
+  fCPVImpacts(new TList),
+  fPPSDImpacts(new TList),
+  fNEMCImpacts(),
+  fNCPVImpacts(),
+  fNPPSDImpacts()
 {
   // ctor
 }
@@ -70,7 +82,10 @@ AliPHOSvImpacts::AliPHOSvImpacts(const char *name, const char *title):
   AliPHOSv1(name,title),
   fEMCImpacts(new TList),
   fCPVImpacts(new TList),
-  fPPSDImpacts(0)
+  fPPSDImpacts(0),
+  fNEMCImpacts(),
+  fNCPVImpacts(),
+  fNPPSDImpacts()
 {
   // ctor : title is used to identify the layout
   //
@@ -103,16 +118,6 @@ AliPHOSvImpacts::AliPHOSvImpacts(const char *name, const char *title):
 
 }
 
-//____________________________________________________________________________
-AliPHOSvImpacts::AliPHOSvImpacts(AliPHOSvImpacts & phos):
-  AliPHOSv1(phos),
-  fEMCImpacts(0),
-  fCPVImpacts(0),
-  fPPSDImpacts(0)
-{
-  phos.Copy(*this);
-}
-
 //____________________________________________________________________________
 AliPHOSvImpacts::~AliPHOSvImpacts()
 {
@@ -138,14 +143,6 @@ AliPHOSvImpacts::~AliPHOSvImpacts()
   }
 }
 
-//____________________________________________________________________________
-void AliPHOSvImpacts::Copy(TObject & phos) const
-{
-  TObject::Copy(phos) ; 
-  AliPHOS::Copy(phos) ; 
-}
-
-
 //____________________________________________________________________________
 void AliPHOSvImpacts::AddImpact(const char* det, Int_t shunt, Int_t primary, Int_t track, Int_t module,
                           Int_t pid, TLorentzVector p, Float_t *xyz)
@@ -165,12 +162,14 @@ void AliPHOSvImpacts::AddImpact(const char* det, Int_t shunt, Int_t primary, Int
     nImpacts= fNCPVImpacts[module];
     fNCPVImpacts[module]++ ;
   }
+  else
+    AliFatal(Form("Wrong PHOS configuration: det=%s",det));
 
   new((*impacts)[nImpacts]) AliPHOSImpact(shunt,primary,track,pid,p,xyz) ;
 
   AliDebugClass(1,Form("Module %d %s: ",module,det));
   if (AliLog::GetGlobalDebugLevel()>0)
-    (dynamic_cast<AliPHOSImpact*>((impacts->At(nImpacts))))->Print();
+    (static_cast<AliPHOSImpact*>((impacts->At(nImpacts))))->Print();
 }
 
 //____________________________________________________________________________
@@ -183,8 +182,8 @@ void AliPHOSvImpacts::MakeBranch(Option_t *opt)
   
   Int_t bufferSize = 32000 ;
   Int_t splitlevel = 0 ;
-  TreeH()->Branch("PHOSEmcImpacts" , "TList", &fEMCImpacts , bufferSize, splitlevel);
-  TreeH()->Branch("PHOSCpvImpacts" , "TList", &fCPVImpacts , bufferSize, splitlevel);
+  fLoader->TreeH()->Branch("PHOSEmcImpacts" , "TList", &fEMCImpacts , bufferSize, splitlevel);
+  fLoader->TreeH()->Branch("PHOSCpvImpacts" , "TList", &fCPVImpacts , bufferSize, splitlevel);
   
 }
 
@@ -197,12 +196,12 @@ void AliPHOSvImpacts::ResetHits()
 
   Int_t i;
   for (i=0; i<GetGeometry()->GetNModules(); i++) {
-    (dynamic_cast<TClonesArray*>(fEMCImpacts->At(i))) -> Clear();
+    (static_cast<TClonesArray*>(fEMCImpacts->At(i))) -> Clear();
     fNEMCImpacts[i] = 0 ;
   }
 
   for (i=0; i<GetGeometry()->GetNModules(); i++) {
-    (dynamic_cast<TClonesArray*>(fCPVImpacts->At(i))) -> Clear();
+    (static_cast<TClonesArray*>(fCPVImpacts->At(i))) -> Clear();
     fNCPVImpacts[i] = 0 ;
   }
   
@@ -244,8 +243,8 @@ void AliPHOSvImpacts::StepManager(void)
     gMC -> Gmtod (pm,   pd,   2);    // transform 3-momentum from master to daughter system
 
     // Select tracks coming to the crystal from up or down sides
-    if (pd[1]<0 && xyzd[1] >  GetGeometry()->GetCrystalSize(1)/2-0.1 ||
-       pd[1]>0 && xyzd[1] < -GetGeometry()->GetCrystalSize(1)/2+0.1) {
+    if ((pd[1]<0 && xyzd[1] >  GetGeometry()->GetCrystalSize(1)/2-0.1) ||
+       (pd[1]>0 && xyzd[1] < -GetGeometry()->GetCrystalSize(1)/2+0.1)) {
     // Select tracks coming to the crystal from up or down sides
       Int_t pid = gMC->TrackPid();
       Int_t module;