/**************************************************************************
* 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. *
**************************************************************************/
/*
$Log$
Revision 1.5 1999/09/29 09:24:27 fca
Introduction of the Copyright and cvs Log
*/
///////////////////////////////////////////////////////////////////////////////
//
// //
// Photon Multiplicity Detector //
// This class contains the basic functions for the Photon Multiplicity //
// Detector. Functions specific to one particular geometry are //
// contained in the derived classes //
// //
//Begin_Html
/*
The responsible person for this module is
Subhasis Chattopadhyay.
*/ //End_Html // // /////////////////////////////////////////////////////////////////////////////// #include#include #include "AliPMD.h" #include "AliRun.h" #include "AliMC.h" #include "AliConst.h" ClassImp(AliPMD) //_____________________________________________________________________________ AliPMD::AliPMD() { // // Default constructor // fIshunt = 0; } //_____________________________________________________________________________ AliPMD::AliPMD(const char *name, const char *title) : AliDetector(name,title) { // // Default constructor // // // Allocate the array of hits fHits = new TClonesArray("AliPMDhit", 405); gAlice->AddHitList(fHits); fIshunt = 1; fPar[0] = 1; fPar[1] = 1; fPar[2] = 0.8; fPar[3] = 0.02; fIn[0] = 6; fIn[1] = 20; fIn[2] = 600; fIn[3] = 27; fIn[4] = 27; fGeo[0] = 0; fGeo[1] = 0.2; fGeo[2] = 4; fPadSize[0] = 0.8; fPadSize[1] = 1.0; fPadSize[2] = 1.2; fPadSize[3] = 1.5; } //_____________________________________________________________________________ void AliPMD::AddHit(Int_t track, Int_t *vol, Float_t *hits) { // // Add a PMD hit // TClonesArray &lhits = *fHits; AliPMDhit *newcell, *curcell; // printf("PMD++ Adding energy %f, prim %d, vol %d %d %d %d\n", // hits[3],gAlice->GetPrimary(track-1),vol[0],vol[1],vol[2],vol[3]); newcell = new AliPMDhit(fIshunt, track, vol, hits); Int_t i; for (i=0; i Print(); *curcell = *curcell+*newcell; // printf("Cell after addition\n") ; curcell->Print(); delete newcell; return; } } new(lhits[fNhits++]) AliPMDhit(newcell); delete newcell; } //_____________________________________________________________________________ void AliPMD::BuildGeometry() { // // Build simple ROOT TNode geometry for event display // TNode *Node, *Top; const int kColorPMD = kRed; // 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); } //_____________________________________________________________________________ Int_t AliPMD::DistancetoPrimitive(Int_t , Int_t ) { // // Distance from mouse to detector on the screen // dummy routine // return 9999; } //_____________________________________________________________________________ void AliPMD::SetPAR(Float_t p1, Float_t p2, Float_t p3,Float_t p4) { // // Set PMD parameters // fPar[0] = p1; fPar[1] = p2; fPar[2] = p3; fPar[3] = p4; } //_____________________________________________________________________________ void AliPMD::SetIN(Float_t p1, Float_t p2, Float_t p3,Float_t p4,Float_t p5) { // // Set PMD parameters // fIn[0] = p1; fIn[1] = p2; fIn[2] = p3; fIn[3] = p4; fIn[4] = p5; } //_____________________________________________________________________________ void AliPMD::SetGEO(Float_t p1, Float_t p2, Float_t p3) { // // Set geometry parameters // fGeo[0] = p1; fGeo[1] = p2; fGeo[2] = p3; } //_____________________________________________________________________________ void AliPMD::SetPadSize(Float_t p1, Float_t p2, Float_t p3,Float_t p4) { // // Set pad size // fPadSize[0] = p1; fPadSize[1] = p2; fPadSize[2] = p3; fPadSize[3] = p4; } //_____________________________________________________________________________ void AliPMD::StepManager() { // // Called at every step in PMD // } /////////////////////////////////////////////////////////////////////////////// // // // Photon Multiplicity Detector Version 1 // // // //Begin_Html /* */ //End_Html // // /////////////////////////////////////////////////////////////////////////////// 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<5;i++) fVolume[i] = vol[i]; fX=hits[0]; fY=hits[1]; fZ=hits[2]; fEnergy=hits[3]; }