+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * *
+ * Author: The ALICE Off-line Project. *
+ * Contributors are mentioned in the code where appropriate. *
+ * *
+ * Permission to use, copy, modify and distribute this software and its *
+ * documentation strictly for non-commercial purposes is hereby granted *
+ * without fee, provided that the above copyright notice appears in all *
+ * copies and that both the copyright notice and this permission notice *
+ * appear in the supporting documentation. The authors make no claims *
+ * about the suitability of this software for any purpose. It is *
+ * provided "as is" without express or implied warranty. *
+ **************************************************************************/
+
+/* $Id$ */
+
///////////////////////////////////////////////////////////////////////////////
//
// //
///////////////////////////////////////////////////////////////////////////////
#include <TBRIK.h>
+#include <TClonesArray.h>
+#include <TFile.h>
+#include <TGeometry.h>
#include <TNode.h>
+#include <TTree.h>
+#include <TVirtualMC.h>
+
+#include "AliConst.h"
+#include "AliLoader.h"
#include "AliPMD.h"
+#include "AliPMDRecPoint.h"
#include "AliRun.h"
-#include "AliMC.h"
-#include "AliConst.h"
-
+
ClassImp(AliPMD)
//_____________________________________________________________________________
// Default constructor
//
fIshunt = 0;
+
+ fRecPoints = 0;
+
}
//_____________________________________________________________________________
//
// Allocate the array of hits
fHits = new TClonesArray("AliPMDhit", 405);
+ gAlice->AddHitList(fHits);
+
+ fRecPoints = new TClonesArray("AliPMDRecPoint",10000);
+ fNRecPoints = 0;
- fIshunt = 1;
+
+ fIshunt = 0;
fPar[0] = 1;
fPar[1] = 1;
fPadSize[3] = 1.5;
}
+AliPMD::~AliPMD()
+{
+ //
+ // Default constructor
+ //
+ delete fRecPoints;
+ fNRecPoints=0;
+}
+
//_____________________________________________________________________________
void AliPMD::AddHit(Int_t track, Int_t *vol, Float_t *hits)
{
// PMD
new TBRIK("S_PMD","PMD box","void",300,300,5);
Top->cd();
- Node = new TNode("PMD","PMD","S_PMD",0,0,600,"");
+ Node = new TNode("PMD","PMD","S_PMD",0,0,-600,"");
Node->SetLineColor(kColorPMD);
fNodes->Add(Node);
}
//
}
+void AliPMD::AddRecPoint(const AliPMDRecPoint &p)
+{
+ //
+ // Add a PMD reconstructed hit to the list
+ //
+ TClonesArray &lrecpoints = *fRecPoints;
+ new(lrecpoints[fNRecPoints++]) AliPMDRecPoint(p);
+}
+
+void AliPMD::MakeBranch(Option_t* option)
+{
+ // Create Tree branches for the PMD
+
+ 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);
+
+ 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);
+ }
+}
+
+
+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 = fLoader->TreeR();
+
+ sprintf(branchname,"%s",GetName());
+ if (treeR) {
+ branch = treeR->GetBranch(branchname);
+ if (branch)
+ {
+ if (fRecPoints == 0x0) {
+ fRecPoints = new TClonesArray("AliPMDRecPoint",10000);
+ }
+ branch->SetAddress(&fRecPoints);
+ }
+ }
+}
+
+void AliPMD::ResetHits()
+{
+ //
+ // Reset number of hits and the hits array
+ //
+ AliDetector::ResetHits();
+ fNRecPoints = 0;
+ if (fRecPoints) fRecPoints->Clear();
+}
+
///////////////////////////////////////////////////////////////////////////////
// //
// Photon Multiplicity Detector Version 1 //
// //
///////////////////////////////////////////////////////////////////////////////
+
+
ClassImp(AliPMDhit)
//_____________________________________________________________________________