]>
Commit | Line | Data |
---|---|---|
100711d2 | 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 | AliHMPIDv3() :AliHMPID( ),fIdPad(-1),fIdCell(-1) {;} //default ctor | |
23 | AliHMPIDv3(const char *name, const char *title):AliHMPID(name,title),fIdPad(-1),fIdCell(-1) {;} //named ctor | |
24 | 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 | AliDigitizer* CreateDigitizer (AliRunDigitizer *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 | 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], 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 | Int_t fIdPad,fIdCell; //! volumes ID's used in StepManager() and Count() | |
57 | ClassDef(AliHMPIDv3,1) //HMPID full version for simulation | |
58 | }; | |
59 | ||
60 | #endif |