]>
Commit | Line | Data |
---|---|---|
d3da6dc4 | 1 | #ifndef AliHMPID_h |
2 | #define AliHMPID_h | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | #include <AliDetector.h> //base class | |
7 | #include <TClonesArray.h> //XxxCreate() | |
3c6274c1 | 8 | #include <TObjArray.h> //fDig,fClu field |
d3da6dc4 | 9 | |
423554a3 | 10 | //. |
11 | //HMPID base class | |
12 | //. | |
d3da6dc4 | 13 | |
14 | class AliHMPID : public AliDetector //TObject-TNamed-AliModule-AliDetector-AliHMPID | |
15 | { | |
16 | public: | |
17 | //ctor & dtor | |
18 | AliHMPID(const char *nm,const char *ttl); //named ctor | |
19 | AliHMPID( ):AliDetector( ),fSdi(0),fDig(0),fClu(0) {} //default ctor | |
20 | virtual ~AliHMPID(); | |
21 | //framework part | |
22 | void BuildGeometry ( ) {} //from AliModule invoked from AliMC::InitGeometry() to build geometry for old event display | |
23 | virtual void CreateMaterials ( )=0; //from AliModule invoked from AliMC::ConstructGeometry() to define detector materials | |
24 | virtual void CreateGeometry ( )=0; //from AliModule invoked from AliMC::ConstructGeometry() to build detector for simulation | |
d1bf51e1 | 25 | |
d3da6dc4 | 26 | virtual Int_t IsVersion ( )const=0; //from AliModule not used |
27 | virtual void Init ( )=0; //from AliModule invoked from AliMC::InitGeometry() after CreateGeometry() to do VolID initialization | |
661663fa | 28 | virtual void DefineOpticalProperties() {} //from AliModule invoked from AliMC::ConstructOpGeometry() to set Cerenkov properties |
d3da6dc4 | 29 | void MakeBranch (Option_t *opt=""); //from AliModule invokde from AliRun::Tree2Tree() to make requested HMPID branch |
30 | void SetTreeAddress ( ); //from AliModule invoked from AliRun::GetEvent(), AliLoader::SetTAddrInDet() | |
31 | virtual void StepManager ( )=0; //from AliModule invoked from AliMC | |
423554a3 | 32 | void DoFeed (Bool_t doFeed ){fgDoFeed=doFeed;} // Set feedback photons |
d3da6dc4 | 33 | //private part +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1d4857c5 | 34 | void HitCreate( ) {if(fHits)return; fHits=new TClonesArray("AliHMPIDHit"); fNhits=0; }//create hits list |
d3da6dc4 | 35 | |
36 | TClonesArray* SdiLst ( )const{return fSdi; }//get sdigits list | |
1d4857c5 | 37 | void SdiCreate( ) {if(fSdi)return; fSdi=new TClonesArray("AliHMPIDDigit"); }//create sdigits list |
d3da6dc4 | 38 | void SdiReset ( ) {if(fSdi) fSdi ->Clear(); }//clean sdigits list |
d3da6dc4 | 39 | |
40 | TObjArray* DigLst ( )const{return fDig; }//get digits list for all chambers | |
41 | TClonesArray* DigLst (Int_t c )const{return fDig ? (TClonesArray *)fDig->At(c):0; }//get digits list for chamber | |
470d5932 | 42 | void DigCreate( ) { |
43 | if (fDig) return; //PH do not recreate existing containers | |
44 | fDig=new TObjArray(7);for(Int_t i=0;i<7;i++)fDig->AddAt(new TClonesArray("AliHMPIDDigit"),i); }//create digits list | |
d3da6dc4 | 45 | void DigReset ( ) {if(fDig)for(int i=0;i<7;i++)fDig->At(i)->Clear(); }//clean digits list |
d3da6dc4 | 46 | |
3c6274c1 | 47 | TObjArray* CluLst ( )const{return fClu; }//get clusters list for all chambers |
d3da6dc4 | 48 | TClonesArray* CluLst (Int_t c )const{return fClu ? (TClonesArray *)fClu->At(c):0; }//get clusters list for chamber |
470d5932 | 49 | void CluCreate( ) { |
50 | if (fClu) return; //PH do not recreate existing containers | |
51 | fClu=new TObjArray(7); for(Int_t i=0;i<7;i++)fClu->AddAt(new TClonesArray("AliHMPIDCluster"),i); }//create clusters list | |
d3da6dc4 | 52 | void CluReset ( ) {if(fClu)for(int i=0;i<7;i++)fClu->At(i)->Clear(); }//clean clusters list |
d3da6dc4 | 53 | protected: |
423554a3 | 54 | static Bool_t fgDoFeed; //Flag to switch on/off Feedback photon creation |
d3da6dc4 | 55 | TClonesArray *fSdi; //! list of sdigits |
56 | TObjArray *fDig; //! each chamber holds it's one list of digits | |
57 | TObjArray *fClu; //! each chamber holds it's one list of clusters | |
58 | ||
1d4857c5 | 59 | private: |
d3da6dc4 | 60 | AliHMPID(const AliHMPID &rich ); |
61 | AliHMPID& operator=(const AliHMPID&); | |
62 | ||
63 | ClassDef(AliHMPID,11) //Main HMPID class | |
64 | };//class AliHMPID | |
cf7e313e | 65 | |
d3da6dc4 | 66 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
67 | #endif |