/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
+/* $Id$ */
+
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.44 2006/09/27 19:55:57 kharlov
+ * Alignment object with symbolic volume names are introduced
+ *
+ * Revision 1.43 2005/05/28 14:19:05 schutz
+ * Compilation warnings fixed by T.P.
+ *
+ */
+
//_________________________________________________________________________
// Implementation version v0 of PHOS Manager class
-// Layout EMC + PPSD has name GPS2
-//
+// Layout EMC + CPV has name IHEP
+//*--
//*-- Author: Yves Schutz (SUBATECH)
// --- ROOT system ---
-#include "TClonesArray.h"
+
+class TFile;
+class TFolder;
// --- AliRoot header files ---
#include "AliPHOS.h"
-#include "AliPHOSGeometry.h"
-#include "AliPHOSReconstructioner.h"
-#include "AliPHOSTrackSegmentMaker.h"
-#include "AliPHOSPID.h"
class AliPHOSv0 : public AliPHOS {
-public:
+ public:
- AliPHOSv0(void) ;
+ AliPHOSv0() {}
AliPHOSv0(const char *name, const char *title="") ;
- AliPHOSv0(AliPHOSReconstructioner * Reconstructioner, const char *name, const char *title="") ;
- virtual ~AliPHOSv0(void) ;
+ virtual ~AliPHOSv0(void){
+ // dtor
+ }
- virtual void AddHit( Int_t primary, Int_t id, Float_t *hits ) ; // adds a pre-digitilized hit to the hit tree
- virtual void BuildGeometry(void) ; // creates the geometry for the ROOT display
- void BuildGeometryforPHOS(void) ; // creates the PHOS geometry for the ROOT display
- void BuildGeometryforPPSD(void) ; // creates the PPSD geometry for the ROOT display
- virtual void CreateGeometry(void) ; // creates the geometry for GEANT
- void CreateGeometryforPHOS(void) ; // creates the PHOS geometry for GEANT
- void CreateGeometryforPPSD(void) ; // creates the PPSD geometry for GEANT
- Int_t Digitize(Float_t Energy);
- RecPointsList* EmcClusters() {return fEmcClusters;} // gets TClonesArray of cluster in the crystals
- void FinishEvent(void) ; // makes the digits from the hits
- virtual AliPHOSGeometry * GetGeometry() { return fGeom ; }
- virtual void Init(void) ; // does nothing
- Int_t IsVersion(void) const { return 0 ; }
- void MakeBranch(Option_t* opt) ;
- RecPointsList* PpsdClusters() { return fPpsdClusters ; } // gets TClonesArray of clusters in the PPSD
- void Reconstruction(AliPHOSReconstructioner * Reconstructioner) ;
- RecParticlesList * RecParticles() { return fRecParticles ; } // gets TClonesArray of reconstructed particles
- void ResetClusters(){} ;
- void SetReconstructioner(AliPHOSReconstructioner& Reconstructioner) {fReconstructioner = &Reconstructioner ;}
- void SetDigitThreshold(Float_t th) { fDigitThreshold = th ; }
- virtual void StepManager(void) ; // does the tracking through PHOS and a preliminary digitalization
- TrackSegmentsList * TrackSegments(){return fTrackSegments ;}
-
-protected:
+// virtual void AddHit( Int_t shunt, Int_t primary, Int_t track, Int_t id, Float_t *hits ) {
+ //this function is not a final-overrider for AliPHOS::AddHit, to
+ //supress warning, I use using-declaration :)
+ using AliPHOS::AddHit;
+ virtual void AddHit( Int_t, Int_t, Int_t, Int_t, Float_t*) {
+ // useless since there are no hits
+ Fatal("AddHit", "not to be used with v0") ;
+ }
+ virtual void BuildGeometry(void) ; // creates the geometry for the ROOT display
+ void BuildGeometryforEMC(void) ; // creates the PHOS geometry for the ROOT display
+ // void BuildGeometryforPPSD(void) ; // creates the PPSD geometry for the ROOT display
+ void BuildGeometryforCPV(void) ; // creates the CPV geometry for the ROOT display
+ virtual void CreateGeometry(void) ; // creates the geometry for GEANT
+ void CreateGeometryforEMC(void) ; // creates the PHOS geometry for GEANT
+ // void CreateGeometryforPPSD(void) ; // creates the PPSD geometry for GEANT
+ void CreateGeometryforCPV(void) ; // creates the CPV geometry for GEANT
+ void CreateGeometryforSupport(void) ; // creates the Support geometry for GEANT
+ virtual void AddAlignableVolumes() const; // define sym.names for alignable volumes
- Float_t fDigitThreshold ; // Threshold for the digit registration
- RecPointsList * fEmcClusters ; // The RecPoints (clusters) list in EMC
- AliPHOSGeometry * fGeom ; // Geometry definition
- Int_t fNTmpHits ; //! Used internally for digitalization
- Float_t fPinElectronicNoise ; // Electronic Noise in the PIN
- RecPointsList * fPpsdClusters ; // The RecPoints (clusters) list in PPSD
- AliPHOSReconstructioner * fReconstructioner ; // Reconstrutioner of the PHOS event: Clusterization and subtracking procedures
- TClonesArray * fTmpHits ; //! Used internally for digitalization
- AliPHOSTrackSegmentMaker * fTrackSegmentMaker ; // Reconstructioner of the PHOS track segment: 2 x PPSD + 1 x EMC
- TrackSegmentsList * fTrackSegments ; // The TrackSegment list in PHOS
- RecParticlesList * fRecParticles ; // The reconstructed particles list in PHOS
+ virtual Float_t ZMin() const; // overall dimension of the module (min)
+ virtual Float_t ZMax() const; // overall dimension of the module (max)
- ClassDef(AliPHOSv0,1) // Implementation of PHOS manager class for layout EMC+PPSD
-
-};
+ virtual void Init(void) ; // does nothing
+ virtual Int_t IsVersion(void) const {
+ // Gives the version number
+ return 0 ;
+ }
+ virtual const TString Version(void)const {
+ // As above
+ return TString("v0") ;
+ }
+
+
+ private:
+ AliPHOSv0(AliPHOSv0 & phos);
+ AliPHOSv0 & operator = (const AliPHOSv0 & /*rvalue*/);
+ ClassDef(AliPHOSv0,1) // Implementation of PHOS manager class for layout EMC+PPSD
+
+ };
+
#endif // AliPHOSV0_H