]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONClusterInput.h
More consequent seperation of global input data services (AliMUONClusterInput singlet...
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterInput.h
CommitLineData
9825400f 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
8#include <TObject.h>
9#include <TClonesArray.h>
10
11class TMinuit;
12class AliMUONDigit;
13class AliMUONRawCluster;
14class AliMUONSegmentation;
15class AliMUONResponse;
16
17
18
19class AliMUONClusterInput : public TObject {
20 public:
21 static AliMUONClusterInput* Instance();
30aaba74 22// Configuration
9825400f 23 void SetDigits(Int_t chamber, TClonesArray* dig1, TClonesArray* dig2);
24 void SetDigits(Int_t chamber, TClonesArray* dig);
25 void SetCluster(AliMUONRawCluster* cluster);
26// Access functions
30aaba74 27 Int_t Chamber() {return fChamber;}
9825400f 28 AliMUONDigit* Digit(Int_t cath, Int_t i) {return (AliMUONDigit*) (fDigits[cath]->UncheckedAt(i));}
30aaba74 29 TClonesArray* Digits(Int_t cath) {return fDigits[cath];}
30 Int_t NDigits(Int_t cath) {return fNDigits[cath];}
31 AliMUONSegmentation* Segmentation(Int_t cath) {return fSegmentation[cath];}
32 AliMUONResponse* Response() {return fResponse;}
33// Fitting
9825400f 34 TMinuit* Fitter() {return fgMinuit;}
30aaba74 35// Current cluster information
9825400f 36 Float_t TotalCharge(Int_t cath) {return fChargeTot[cath];}
37 Float_t Charge(Int_t dig, Int_t cath) {return fCharge[dig][cath];}
38 Int_t Ix(Int_t dig, Int_t cath) {return fix[dig][cath];}
39 Int_t Iy(Int_t dig, Int_t cath) {return fiy[dig][cath];}
40 Int_t Nmul(Int_t cath) {return fNmul[cath];}
41// Helpers for Fit
42 Float_t DiscrChargeS1(Int_t i,Double_t *par);
43 Float_t DiscrChargeCombiS1(Int_t i,Double_t *par, Int_t cath);
44 Float_t DiscrChargeS2(Int_t i,Double_t *par);
45 Float_t DiscrChargeCombiS2(Int_t i,Double_t *par, Int_t cath);
46//
47 protected:
48 AliMUONClusterInput(){;}
49 private:
30aaba74 50 static AliMUONClusterInput* fgClusterInput; // singleton instance
9825400f 51 // Digits
52 TClonesArray* fDigits[2]; // ! Array of pointers to digits
30aaba74 53 Int_t fNDigits[2]; // ! Number of digits
9825400f 54 AliMUONSegmentation* fSegmentation[2]; // ! Segmentation per cathode
55 AliMUONResponse* fResponse; // ! Response
56 Int_t fNseg; // ! number of cathode planes
30aaba74 57 Int_t fChamber; // ! Current chamber number
58
9825400f 59 // Current cluster
60 AliMUONRawCluster* fCluster; // ! current cluster
61 Int_t fNmul[2]; // ! current cluster multiplicity
62 // Digits contribuing to current cluster
63 Int_t fix[500][2]; // ! List of x-positions for current cluster
64 Int_t fiy[500][2]; // ! List of y-positions for current cluster
65 Float_t fCharge[500][2]; // ! List of charges for current cluster
66 Int_t fChargeTot[2]; // ! Total charge
67 Float_t fQtot[2]; // ! Total charge
68 // Fitter
69 static TMinuit* fgMinuit; // ! Fitter
70 ClassDef(AliMUONClusterInput, 1) // Class definition in ROOT context
71};
72#endif
73