]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONClusterInput.h
Comments for Doxygen (mostly added comments for inline functions)
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterInput.h
... / ...
CommitLineData
1#ifndef ALIMUONCLUSTERINPUT_H
2#define ALIMUONCLUSTERINPUT_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id $*/
7// Revision of includes 07/04/2006
8
9/// \ingroup rec
10/// \class AliMUONClusterInput
11/// \brief Global data service for hit reconstruction
12
13#include <TObject.h>
14#include <TClonesArray.h> // needed for inline function Digit
15
16class AliMUONDigit;
17class AliMUONRawCluster;
18class AliMUONMathieson;
19class AliMUONGeometryTransformer;
20class AliMUONSegmentation;
21class AliMUONGeometrySegmentation;
22
23class TMinuit;
24
25class AliMUONClusterInput : public TObject
26{
27 public:
28 virtual ~AliMUONClusterInput();
29 static AliMUONClusterInput* Instance();
30// Configuration
31 void SetDigits(Int_t chamber, Int_t idDE, TClonesArray* dig1, TClonesArray* dig2);
32 void SetDigits(Int_t chamber, Int_t idDE, TClonesArray* dig);
33 void SetCluster(AliMUONRawCluster* cluster);
34// Access functions
35 /// Return the current chamber number
36 Int_t Chamber() const {return fChamber;}
37 /// Return i-th digit for given cath
38 AliMUONDigit* Digit(Int_t cath, Int_t i) const {return (AliMUONDigit*) (fDigits[cath]->UncheckedAt(i));}
39 /// Return the array of digits for given cathod
40 TClonesArray* Digits(Int_t cath) const {return fDigits[cath];}
41 /// Return number of digits for given cathod
42 Int_t NDigits(Int_t cath) const {return fNDigits[cath];}
43 /// Return geometry segmentation for given cathod
44 AliMUONGeometrySegmentation* Segmentation2(Int_t cath) const {return fSegmentation2[cath];}
45
46 /// Return Mathieson
47 AliMUONMathieson* Mathieson() const {return fgMathieson;}
48 /// Return charge correlation
49 Float_t ChargeCorrel() const {return fChargeCorrel;}
50 /// Return detection elt id
51 Int_t DetElemId() const {return fDetElemId;}
52
53// Fitting
54 /// Return the fitter
55 TMinuit* Fitter() const {return fgMinuit;}
56// Current cluster information
57 /// Return the total charge for given cathod
58 Float_t TotalCharge(Int_t cath) const {return fChargeTot[cath];}
59 /// Return the charge for the given cluster and cathod
60 Float_t Charge(Int_t dig, Int_t cath) const {return fCharge[dig][cath];}
61 /// Return the x-position for the given cluster and cathod
62 Int_t Ix(Int_t dig, Int_t cath) const {return fix[dig][cath];}
63 /// Return the y-position for the given cluster and cathod
64 Int_t Iy(Int_t dig, Int_t cath) const {return fiy[dig][cath];}
65 /// Return the cluster multiplicity for given cathod
66 Int_t Nmul(Int_t cath) const {return fNmul[cath];}
67
68// Helpers for Fit
69 Float_t DiscrChargeS1(Int_t i,Double_t *par);
70 Float_t DiscrChargeCombiS1(Int_t i,Double_t *par, Int_t cath);
71 Float_t DiscrChargeS2(Int_t i,Double_t *par);
72 Float_t DiscrChargeCombiS2(Int_t i,Double_t *par, Int_t cath);
73//
74 private:
75 /// Not implemented
76 AliMUONClusterInput();
77 /// Not implemented
78 AliMUONClusterInput(const AliMUONClusterInput& clusterInput);
79 /// Not implemented
80 AliMUONClusterInput & operator = (const AliMUONClusterInput& rhs);
81
82 static AliMUONClusterInput* fgClusterInput; //!< singleton instance
83 static AliMUONMathieson* fgMathieson; //!< Mathieson
84 static AliMUONGeometryTransformer* fgTransformer; //!< Geometry transformer
85 static AliMUONSegmentation* fgSegmentation; //!< Segmentation
86
87 // Digits
88 TClonesArray* fDigits[2]; //!< Array of pointers to digits
89 Int_t fNDigits[2]; //!< Number of digits
90 AliMUONGeometrySegmentation* fSegmentation2[2]; //!< Geometry Segmentation per cathode
91
92 Int_t fNseg; //!< number of cathode planes
93 Int_t fChamber; //!< Current chamber number
94
95 // Current cluster
96 AliMUONRawCluster* fCluster; //!< current cluster
97 Int_t fNmul[2]; //!< current cluster multiplicity
98 // Digits contribuing to current cluster
99 Int_t fix[500][2]; //!< List of x-positions for current cluster
100 Int_t fiy[500][2]; //!< List of y-positions for current cluster
101 Float_t fCharge[500][2]; //!< List of charges for current cluster
102 Int_t fChargeTot[2]; //!< Total charge
103 Float_t fQtot[2]; //!< Total charge
104 Float_t fZ; //!< Current z-position
105 Float_t fChargeCorrel; //!< charge correlation
106 Int_t fDetElemId; //!< detection elt id
107
108 // Fitter
109 static TMinuit* fgMinuit; //!< Fitter
110 ClassDef(AliMUONClusterInput, 0) // Global data service for hit reconstruction
111};
112#endif
113