]>
Commit | Line | Data |
---|---|---|
8d72d1c2 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | /* $Id$ */ | |
17 | ||
18 | #include <Riostream.h> | |
19 | ||
20 | #include "AliLog.h" | |
21 | #include "AliT0Parameters.h" | |
22 | #include "AliT0Calibrator.h" | |
23 | #include <TArrayI.h> | |
24 | #include <TGraph.h> | |
7d95281b | 25 | #include <TH1F.h> |
8d72d1c2 | 26 | |
27 | ClassImp(AliT0Calibrator) | |
28 | ||
29 | //____________________________________________________________________ | |
9e1b06a2 | 30 | AliT0Calibrator::AliT0Calibrator():TNamed(), |
8d72d1c2 | 31 | fChannelWidth(0), |
74adb36a | 32 | fWalk(0) |
8d72d1c2 | 33 | { |
34 | AliT0Parameters* param = AliT0Parameters::Instance(); | |
35 | param->Init(); | |
36 | ||
37 | fChannelWidth = param->GetChannelWidth() ; | |
38 | ||
39 | for (Int_t i=0; i<24; i++){ | |
40 | fTimeDelayCFD[i] = Int_t (param->GetTimeDelayCFD(i)); | |
8d72d1c2 | 41 | TGraph* fu = param ->GetWalk(i); |
42 | fWalk.AddAtAndExpand(fu,i); | |
74adb36a | 43 | |
8d72d1c2 | 44 | } |
45 | ||
46 | // | |
47 | } | |
48 | //_____________________________________________________________________________ | |
49 | ||
9e1b06a2 | 50 | AliT0Calibrator::AliT0Calibrator(const AliT0Calibrator &r): TNamed(), |
8d72d1c2 | 51 | fChannelWidth(0), |
74adb36a | 52 | fWalk(0) |
8d72d1c2 | 53 | |
54 | { | |
55 | // | |
56 | // AliT0calibartor copy constructor | |
57 | // | |
58 | ||
59 | ((AliT0Calibrator &) r).Copy(*this); | |
60 | ||
61 | } | |
62 | ||
63 | //_____________________________________________________________________________ | |
64 | AliT0Calibrator &AliT0Calibrator::operator=(const AliT0Calibrator &r) | |
65 | { | |
66 | // | |
67 | // Assignment operator | |
68 | // | |
69 | ||
70 | if (this != &r) ((AliT0Calibrator &) r).Copy(*this); | |
71 | return *this; | |
72 | ||
73 | } | |
74 | ||
75 | ||
76 | ||
77 | //____________________________________________________________________ | |
78 | Int_t AliT0Calibrator::WalkCorrection(Int_t ipmt, Int_t qt, Int_t time) | |
79 | { | |
80 | //slewing correcion and equalizing channels | |
81 | ||
82 | Int_t timeEq=0, timeWalk=0; | |
83 | TGraph *fu1=(TGraph*) fWalk.At(ipmt); | |
84 | Float_t walk=fu1->Eval(Float_t(qt)); | |
85 | TH1F*hr=fu1->GetHistogram(); | |
86 | Float_t maxValue=hr->GetMaximum(50); | |
9e1b06a2 | 87 | timeWalk = time + Int_t((maxValue-walk)/fChannelWidth) ; |
8d72d1c2 | 88 | |
89 | timeEq= timeWalk - (fTimeDelayCFD[ipmt]-fTimeDelayCFD[0]); | |
9e1b06a2 | 90 | AliDebug(10,Form(" time before %i timeWalk %i , qt %i timeEq %i \n ", |
74adb36a | 91 | time,timeWalk, qt, timeEq )); |
8d72d1c2 | 92 | return timeEq; |
93 | } | |
94 | ||
95 | ||
96 |