Line data Source code
1 : #ifndef AliHMPIDv3_h
2 : #define AliHMPIDv3_h
3 :
4 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 : * See cxx source for full Copyright notice */
6 :
7 : //.
8 : //HMPID class for new geometry based on TGeo
9 : //.
10 : //.
11 :
12 : #include "AliHMPID.h" //base class
13 : #include "AliHMPIDDigitizer.h" //CreateDigitizer()
14 : #include <TGeoManager.h>
15 :
16 : class TGeoVolume;
17 : class TGeoMedium;
18 :
19 : class AliHMPIDv3 : public AliHMPID //TObject-TNamed-AliModule-AliDetector-AliHMPID-AliHMPIDv3
20 : {
21 : public:
22 48 : AliHMPIDv3() :AliHMPID( ) {;} //default ctor
23 4 : AliHMPIDv3(const char *name, const char *title):AliHMPID(name,title) {;} //named ctor
24 78 : virtual ~AliHMPIDv3() {;} //dtor
25 : //framework part++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
26 : void AddAlignableVolumes( )const; //from AliModule invoked from AliMC
27 : void CreateMaterials ( ); //from AliModule invoked from AliMC
28 : static void IdealPosition(Int_t iCh,TGeoHMatrix *m); //ideal position of a given chamber
29 : static void IdealPositionCradle(Int_t iCh,TGeoHMatrix *m); //ideal position of a module of the cradle
30 : void CreateGeometry ( ); //from AliModule invoked from AliMC
31 3 : AliDigitizer* CreateDigitizer (AliDigitizationInput *m )const{return new AliHMPIDDigitizer(m);} //from AliModule invoked from AliSimulation::RunDigitization()
32 : void Digits2Raw ( ); //from AliModule invoked from AliSimulation::WriteRawFiles()
33 : virtual void DefineOpticalProperties( ); //from AliModule invoked from AliMC::ConstructOpGeometry() to set Cerenkov properties
34 : // void InitProperties ( ); //define the phys processes on/off (dray,eloss...)
35 : void Hits2SDigits ( ); //from AliModule invoked from AliSimulation::RunSDigitization()
36 : void Init ( ); //from AliModule invoked from AliMC::InitGeometry()
37 0 : Int_t IsVersion ( )const{return 1; } //from AliModule not used
38 : void Print (const Option_t *opt="" )const; //from TObject
39 : Bool_t Raw2SDigits (AliRawReader *pRR ); //from AliModule invoked from AliSimulation
40 : void StepManager ( ); //from AliModule invoked from AliMC::Stepping()
41 : //private part++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
42 : void GenFee (Float_t qtot ); //generates feedback photons
43 : static Float_t Fresnel (Float_t geV,Float_t p, Bool_t pl ); //deals with Fresnel absorption on PC
44 : static void Hit2Sdi (TClonesArray *pH,TClonesArray *pS); //hits to sdigits conversion
45 : Bool_t IsLostByFresnel ( ); //checks if the photon lost on Fresnel reflection
46 : void StepCount ( ); //counts particles in StepManager()
47 : void StepHistory ( ); //prints history of tracking in StepManager()
48 : static void TestGeom ( ); //tests the validity of geometry
49 : static void TestPoint (Int_t ch,Float_t x,Float_t y ); //tests the validity of geometry
50 : TGeoVolume* CreateChamber (Int_t number ); //chamber geometry building
51 : TGeoVolume* CradleBaseVolume ( TGeoMedium *med, Double_t l[7], const char *name); //base topology of the cradle elements
52 : TGeoVolume* CreateCradle ( ); //cradle geometry building
53 : protected:
54 : enum EMedia {kAir=1,kRoha=2,kSiO2=3,kC6F14=4,kCH4=5,kCsI=6,kAl=7,kCu=8,kW=9,kNeo=10,kAr=11}; //media ids, used for geometry creation
55 : enum Ecounters {kMipEnterRad=1,kCkovNew,kCkovNewRad,kCkovNewWin,kCkovNewProxGap,kCkovNewAmpGap,kCkovEnterPc,kPhotoEle}; //counters id's
56 2190 : ClassDef(AliHMPIDv3,2) //HMPID full version for simulation
57 : };
58 :
59 : #endif
|