]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PMD/AliPMD.cxx
updating to the latest version of ROOT
[u/mrichter/AliRoot.git] / PMD / AliPMD.cxx
index dff2dd76906c5b0f85b542d41e316be75be3c974..bbced5f45e9eaf068e355412eb0ed5e4f10049d3 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-Revision 1.11  2000/11/17 10:15:24  morsch
-Call to AliDetector::ResetHits() added to method  AliPMD::ResetHits()
-
-Revision 1.10  2000/11/06 09:07:13  morsch
-Set  fRecPoints to zero in default constructor.
-
-Revision 1.9  2000/10/30 09:03:59  morsch
-Prototype for PMD reconstructed hits (AliPMDRecPoint) added.
-
-Revision 1.8  2000/10/20 06:24:40  fca
-Put the PMD at the right position in the event display
-
-Revision 1.7  2000/10/02 21:28:12  fca
-Removal of useless dependecies via forward declarations
-
-Revision 1.6  2000/01/19 17:17:06  fca
-Introducing a list of lists of hits -- more hits allowed for detector now
-
-Revision 1.5  1999/09/29 09:24:27  fca
-Introduction of the Copyright and cvs Log
-
-*/
+/* $Id$ */
 
 ///////////////////////////////////////////////////////////////////////////////
 //
@@ -62,16 +39,18 @@ Introduction of the Copyright and cvs Log
 ///////////////////////////////////////////////////////////////////////////////
 
 #include <TBRIK.h>
+#include <TClonesArray.h>
+#include <TFile.h>
+#include <TGeometry.h>
 #include <TNode.h>
 #include <TTree.h>
-#include <TGeometry.h>
-#include <TClonesArray.h>
+#include <TVirtualMC.h>
 
-#include "AliPMD.h"
-#include "AliRun.h"
-#include "AliMC.h" 
 #include "AliConst.h" 
+#include "AliLoader.h" 
+#include "AliPMD.h"
 #include "AliPMDRecPoint.h"
+#include "AliRun.h"
   
 ClassImp(AliPMD)
  
@@ -83,8 +62,8 @@ AliPMD::AliPMD()
   //
   fIshunt = 0;
 
-  // Always make the TClonesArray, otherwise the automatic streamer gets angry
-  fRecPoints  = new TClonesArray("AliPMDRecPoint",10000); 
+  fRecPoints  = 0;
+
 }
  
 //_____________________________________________________________________________
@@ -104,7 +83,7 @@ AliPMD::AliPMD(const char *name, const char *title)
   fNRecPoints = 0;
   
 
-  fIshunt =  1;
+  fIshunt =  0;
   
   fPar[0] = 1;
   fPar[1] = 1;
@@ -260,18 +239,26 @@ void AliPMD::AddRecPoint(const AliPMDRecPoint &p)
 void AliPMD::MakeBranch(Option_t* option)
 {
     // Create Tree branches for the PMD
-    printf("Make Branch - TreeR address %p\n",gAlice->TreeR());
     
-    const Int_t kBufferSize = 4000;
-    char branchname[30];
-
+    const char *cR = strstr(option,"R");
+    const char *cH = strstr(option,"H");
+    if (cH && fLoader->TreeH() && (fHits == 0x0))
+      fHits   = new TClonesArray("AliPMDhit",  405);
+    
     AliDetector::MakeBranch(option);
 
-    sprintf(branchname,"%sRecPoints",GetName());
-    if (fRecPoints   && gAlice->TreeR()) {
-       gAlice->TreeR()->Branch(branchname, &fRecPoints, kBufferSize);
-       printf("Making Branch %s for reconstructed hits\n",branchname);
-    }  
+    if (cR  && fLoader->TreeR()) {
+      printf("Make Branch - TreeR address %p\n",fLoader->TreeR());
+    
+      const Int_t kBufferSize = 4000;
+      char branchname[30];
+      
+      sprintf(branchname,"%sRecPoints",GetName());
+      if (fRecPoints == 0x0) {
+        fRecPoints  = new TClonesArray("AliPMDRecPoint",10000); 
+      }
+      MakeBranchInTree(fLoader->TreeR(), branchname, &fRecPoints, kBufferSize,0);
+   }   
 }
 
 
@@ -279,15 +266,25 @@ void AliPMD::SetTreeAddress()
 {
   // Set branch address for the TreeR
     char branchname[30];
+    
+    if (fLoader->TreeH())
+      fHits   = new TClonesArray("AliPMDhit",  405);
+      
     AliDetector::SetTreeAddress();
 
     TBranch *branch;
-    TTree *treeR = gAlice->TreeR();
+    TTree *treeR = fLoader->TreeR();
 
     sprintf(branchname,"%s",GetName());
-    if (treeR && fRecPoints) {
-       branch = treeR->GetBranch(branchname);
-       if (branch) branch->SetAddress(&fRecPoints);
+    if (treeR) {
+       branch = treeR->GetBranch(branchname);
+       if (branch) 
+       {
+         if (fRecPoints == 0x0) {
+           fRecPoints  = new TClonesArray("AliPMDRecPoint",10000); 
+         }
+         branch->SetAddress(&fRecPoints);
+       }
     }
 }