]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PMD/AliPMD.cxx
class AliHBTOutSideLongFctn: Added switch for steering o if Abs values are histogrammed
[u/mrichter/AliRoot.git] / PMD / AliPMD.cxx
index 9eacfe19c76dcafb0a5b46a3ba3660d89cc8fc7f..3039638f702662446655d150f703d07fc6179b14 100644 (file)
 
 #include "AliConst.h" 
 #include "AliLoader.h" 
+#include "AliPMDLoader.h" 
 #include "AliPMD.h"
 #include "AliPMDRecPoint.h"
 #include "AliRun.h"
+#include "AliMC.h"
+#include "AliPMDDigitizer.h"
+#include "AliPMDhit.h"
   
 ClassImp(AliPMD)
  
@@ -77,7 +81,7 @@ AliPMD::AliPMD(const char *name, const char *title)
   // 
   // Allocate the array of hits
   fHits   = new TClonesArray("AliPMDhit",  405);
-  gAlice->AddHitList(fHits);
+  gAlice->GetMCApp()->AddHitList(fHits);
 
   fRecPoints  = new TClonesArray("AliPMDRecPoint",10000); 
   fNRecPoints = 0;
@@ -105,20 +109,20 @@ AliPMD::AliPMD(const char *name, const char *title)
 
 AliLoader* AliPMD::MakeLoader(const char* topfoldername)
 {
- cout<<"AliPMD::MakeLoader ";
+  // Makes PMD Loader
  
- fLoader = new AliPMDLoader(GetName(),topfoldername);
 fLoader = new AliPMDLoader(GetName(),topfoldername);
  
- if (fLoader)
-  {
-   cout<<"Success"<<endl;
-  }
- else
-  {
-   cout<<"Failure"<<endl;
-  }
 if (fLoader)
+    {
+      cout<<"Success"<<endl;
+    }
 else
+    {
+      cout<<"Failure"<<endl;
+    }
 
- return fLoader;
 return fLoader;
 }
 
 AliPMD::~AliPMD()
@@ -167,22 +171,22 @@ void AliPMD::BuildGeometry()
   // Build simple ROOT TNode geometry for event display
   //
 
-  TNode *Node, *Top;
+  TNode *node, *top;
   const int kColorPMD  = kRed;
 
   //
-  Top=gAlice->GetGeometry()->GetNode("alice");
+  top=gAlice->GetGeometry()->GetNode("alice");
 
   // PMD
   new TBRIK("S_PMD","PMD box","void",300,300,5);
-  Top->cd();
-  Node = new TNode("PMD","PMD","S_PMD",0,0,-600,"");
-  Node->SetLineColor(kColorPMD);
-  fNodes->Add(Node);
+  top->cd();
+  node = new TNode("PMD","PMD","S_PMD",0,0,-600,"");
+  node->SetLineColor(kColorPMD);
+  fNodes->Add(node);
 }
 
 //_____________________________________________________________________________
-Int_t AliPMD::DistancetoPrimitive(Int_t , Int_t )
+Int_t AliPMD::DistancetoPrimitive(Int_t , Int_t ) const
 {
   //
   // Distance from mouse to detector on the screen
@@ -268,7 +272,7 @@ void AliPMD::MakeBranch(Option_t* option)
     AliDetector::MakeBranch(option);
 
     if (cR  && fLoader->TreeR()) {
-      printf("Make Branch - TreeR address %p\n",fLoader->TreeR());
+      printf("Make Branch - TreeR address %p\n",(void*)fLoader->TreeR());
     
       const Int_t kBufferSize = 4000;
       char branchname[30];
@@ -317,35 +321,53 @@ void AliPMD::ResetHits()
     fNRecPoints   = 0;
     if (fRecPoints)   fRecPoints->Clear();
 }
+//____________________________________________________________________________
+void AliPMD::Hits2SDigits()  
+{ 
+// create summable digits
 
-///////////////////////////////////////////////////////////////////////////////
-//                                                                           //
-//  Photon Multiplicity Detector Version 1                                   //
-//                                                                           //
-//Begin_Html
-/*
-<img src="picts/AliPMDv1Class.gif">
-*/
-//End_Html
-//                                                                           //
-///////////////////////////////////////////////////////////////////////////////
+  AliRunLoader* runLoader = fLoader->GetRunLoader(); 
+  AliPMDDigitizer* pmdDigitizer = new AliPMDDigitizer;
+  pmdDigitizer->OpengAliceFile(fLoader->GetRunLoader()->GetFileName().Data(),
+                              "HS");
+  pmdDigitizer->SetZPosition(361.5);
 
+  for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) {
+    pmdDigitizer->Hits2SDigits(iEvent);
+  }
+  fLoader->UnloadHits();
+  fLoader->UnloadSDigits();
+  delete pmdDigitizer;
+}
+//____________________________________________________________________________
+void AliPMD::SDigits2Digits()  
+{ 
+  // creates sdigits to digits
+}
+//____________________________________________________________________________
+void AliPMD::Hits2Digits()  
+{ 
+// create digits
 
+  AliRunLoader* runLoader = fLoader->GetRunLoader(); 
+  AliPMDDigitizer* pmdDigitizer = new AliPMDDigitizer;
+  pmdDigitizer->OpengAliceFile(fLoader->GetRunLoader()->GetFileName().Data(),
+                              "HD");
+  pmdDigitizer->SetZPosition(361.5);
+
+  for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) {
+    pmdDigitizer->Hits2Digits(iEvent);
+  }
+  fLoader->UnloadHits();
+  fLoader->UnloadDigits();
+  delete pmdDigitizer;
 
-ClassImp(AliPMDhit)
-  
-//_____________________________________________________________________________
-AliPMDhit::AliPMDhit(Int_t shunt,Int_t track, Int_t *vol, Float_t *hits):
-  AliHit(shunt, track)
-{
-  //
-  // Add a PMD hit
-  //
-  Int_t i;
-  for (i=0;i<8;i++) fVolume[i] = vol[i];
-  fX=hits[0];
-  fY=hits[1];
-  fZ=hits[2];
-  fEnergy=hits[3];
 }
-  
+// ---------------------------------------------------------------------------
+AliDigitizer* AliPMD::CreateDigitizer(AliRunDigitizer* manager) const
+{ 
+  return new AliPMDDigitizer(manager);
+}
+// ---------------------------------------------------------------------------
+
+