]>
Commit | Line | Data |
---|---|---|
451f5018 | 1 | #ifndef ALIITSUMODULE_H |
2 | #define ALIITSUMODULE_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id: AliITSUModule.h 53509 2011-12-10 18:55:52Z masera $ */ | |
7 | /////////////////////////////////////////////////////////////////////// | |
8 | // // | |
9 | // Class AliITSUModule // | |
10 | // is a superclass for AliITSUModuleSSD, SPD and SDD. // | |
11 | // The main function of modules is to simulate DIGITS from // | |
12 | // GEANT HITS and produce POINTS from DIGITS // | |
13 | // It also make fast simulation without use of DIGITS // | |
14 | // // | |
15 | // created by: A.Boucham, W.Peryt, S.Radomski, P.Skowronski // | |
16 | // R.Barbera, B. Batynia, B. Nilsen // | |
17 | // ver. 1.0 CERN, 16.09.1999 // | |
18 | // modified for upgrade: ruben.shahoyan@cern.ch // | |
19 | // // | |
20 | /////////////////////////////////////////////////////////////////////// | |
21 | ||
22 | #include <TObject.h> | |
23 | #include <TObjArray.h> | |
24 | #include "AliITSUHit.h" | |
25 | class AliITSUGeomTGeo; | |
26 | ||
27 | class AliITSUModule: public TObject { | |
28 | ||
29 | public: | |
30 | AliITSUModule(); // default constructor | |
31 | AliITSUModule(Int_t index, AliITSUGeomTGeo* tg); | |
32 | virtual ~AliITSUModule(); | |
33 | UInt_t GetIndex() const {return GetUniqueID();} | |
34 | void SetIndex(UInt_t ind) {return SetUniqueID(ind);} | |
35 | Int_t GetNHits() const {return fHitsM->GetEntriesFast();} | |
36 | TObjArray *GetHits() const {return fHitsM;} | |
37 | AliITSUHit *GetHit(Int_t i) const {return (AliITSUHit*)fHitsM->UncheckedAt(i);} | |
38 | void AddHit(AliITSUHit *hit) {fHitsM->AddLast(hit);} | |
39 | void Clear(Option_t* opt=0); | |
40 | // | |
41 | Bool_t MedianHitG(AliITSUHit *h1,AliITSUHit *h2,Float_t &x,Float_t &y,Float_t &z); | |
42 | void MedianHitG(Int_t index, Float_t hitx1,Float_t hity1,Float_t hitz1,Float_t hitx2,Float_t hity2,Float_t hitz2, Float_t &xMg,Float_t &yMg, Float_t &zMg); | |
43 | Bool_t MedianHitL(AliITSUHit *h1,AliITSUHit *h2,Float_t &x,Float_t &y,Float_t &z) const; | |
44 | void MedianHitL(Int_t,AliITSUHit *,AliITSUHit *,Float_t &,Float_t &, Float_t &){}; | |
45 | Double_t PathLength(const AliITSUHit *itsHit1,const AliITSUHit *itsHit2); | |
46 | void MedianHit(Int_t index, Float_t xg,Float_t yg,Float_t zg,Int_t status,Float_t &xMg, Float_t &yMg, Float_t &zMg,Int_t &flag); | |
47 | void PathLength(Float_t x,Float_t y,Float_t z,Int_t status,Int_t &nseg,Float_t &x1,Float_t &y1,Float_t &z1,Float_t &dx1,Float_t &dy1, Float_t &dz1,Int_t &flag) const; | |
48 | Bool_t LineSegmentL(Int_t hindex,Double_t &a,Double_t &b,Double_t &c,Double_t &d,Double_t &e,Double_t &f,Double_t &de); | |
0ebc85cf | 49 | Bool_t LineSegmentL(Int_t hindex,Double_t &a,Double_t &b,Double_t &c,Double_t &d,Double_t &e,Double_t &f,Double_t &de, Double_t &tof, Int_t &track); |
451f5018 | 50 | // |
51 | Bool_t LineSegmentG(Int_t hindex,Double_t &a,Double_t &b,Double_t &c,Double_t &d,Double_t &e,Double_t &f,Double_t &de); | |
0ebc85cf | 52 | Bool_t LineSegmentG(Int_t hindex,Double_t &a,Double_t &b,Double_t &c,Double_t &d,Double_t &e,Double_t &f,Double_t &de, Double_t &tof, Int_t &track); |
451f5018 | 53 | // |
54 | protected: | |
55 | AliITSUModule(const AliITSUModule &source); | |
56 | AliITSUModule& operator=(const AliITSUModule &source); | |
57 | TObjArray *fHitsM; // Pointer to list of hits on this module | |
58 | AliITSUGeomTGeo *fGeomTG; // pointed to geometry | |
59 | // | |
60 | ClassDef(AliITSUModule,1) // Copy the hits into a more useful order | |
61 | }; | |
62 | ||
63 | inline void AliITSUModule::Clear(Option_t *) {fHitsM->Clear();} | |
64 | ||
65 | #endif | |
66 | ||
67 | ||
68 |