]>
Commit | Line | Data |
---|---|---|
d810d0de | 1 | // $Id$ |
2 | // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |
3 | ||
4 | /************************************************************************** | |
5 | * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. * | |
6 | * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * | |
51346b82 | 7 | * full copyright notice. * |
d810d0de | 8 | **************************************************************************/ |
16718cdc | 9 | |
03916485 | 10 | ////////////////////////////////////////////////////////////////////////// |
11 | // // | |
12 | // The main AliEVE drawing module for the T0 detector // | |
13 | // // | |
14 | ////////////////////////////////////////////////////////////////////////// | |
51346b82 | 15 | |
d810d0de | 16 | #include "AliEveT0Module.h" |
707b281a | 17 | |
18 | #include <EveBase/AliEveEventManager.h> | |
19 | ||
03916485 | 20 | #include <AliT0digit.h> |
03916485 | 21 | #include <AliRawReader.h> |
22 | #include <AliRawReaderFile.h> | |
23 | #include <AliRawReaderDate.h> | |
24 | #include <AliRawReaderRoot.h> | |
707b281a | 25 | #include <AliT0RawReader.h> |
03916485 | 26 | #include <AliCDBManager.h> |
51346b82 | 27 | #include <AliCDBStorage.h> |
03916485 | 28 | |
707b281a | 29 | #include <TArrayI.h> |
30 | #include <TStyle.h> | |
31 | #include <TMath.h> | |
32 | #include <TRandom.h> | |
33 | #include <TEveManager.h> | |
03916485 | 34 | |
d810d0de | 35 | |
36 | ClassImp(AliEveT0Module) | |
03916485 | 37 | |
57ffa5fb | 38 | /******************************************************************************/ |
d810d0de | 39 | AliEveT0Module::AliEveT0Module(const Text_t* n, Int_t sigType, AliT0digit *digits, AliT0RawReader *start) |
84aff7a4 | 40 | : TEveQuadSet(n), fSigType(sigType), fDigits(digits), fStart(start) |
03916485 | 41 | { |
42 | // | |
43 | // Default constructor | |
44 | // | |
51346b82 | 45 | |
03916485 | 46 | } |
47 | ||
57ffa5fb | 48 | /******************************************************************************/ |
d810d0de | 49 | AliEveT0Module::~AliEveT0Module() |
03916485 | 50 | { |
51 | ||
52 | } | |
53 | ||
d810d0de | 54 | void AliEveT0Module::LoadRaw(TString fileName, Int_t ievt) |
03916485 | 55 | { |
56 | AliT0digit *digits = 0; | |
57 | AliRawReader *reader = new AliRawReaderRoot(fileName,ievt); | |
58 | reader->LoadEquipmentIdsMap("T0map.txt"); | |
59 | reader->RequireHeader(kTRUE); | |
60 | AliT0RawReader *start = new AliT0RawReader(reader); | |
61 | Int_t allData[110][5]; | |
51346b82 | 62 | TRandom r(0); |
03916485 | 63 | // cout<<ievt<<endl; |
84aff7a4 | 64 | TEveRGBAPalette* rawPalette = new TEveRGBAPalette(0, 3000); |
03916485 | 65 | rawPalette->SetLimits(1, 3000); // Set proper raw time range. |
d810d0de | 66 | TEveQuadSet* raw_a = new AliEveT0Module("T0_RAW_A", 2,digits, start); raw_a->SetPalette(rawPalette); |
84aff7a4 | 67 | raw_a->Reset(TEveQuadSet::kQT_HexagonXY, kFALSE, 32); |
d810d0de | 68 | TEveQuadSet* raw_c = new AliEveT0Module("T0_RAW_C", 3,digits, start); raw_c->SetPalette(rawPalette); |
84aff7a4 | 69 | raw_c->Reset(TEveQuadSet::kQT_HexagonXY, kFALSE, 32); |
51346b82 | 70 | Float_t angle = 2 * TMath::Pi() / 12; |
03916485 | 71 | start->Next(); |
72 | for (Int_t i=0; i<110; i++) | |
73 | { | |
51346b82 | 74 | for (Int_t iHit=0; iHit<5; iHit++) |
03916485 | 75 | { |
76 | allData[i][iHit]= start->GetData(i,iHit); | |
77 | if (allData[i][iHit] != 0) cout<<"event"<<ievt<<" i "<< i<<" "<<allData[i][iHit] - allData[0][0]<<endl; | |
78 | } | |
79 | } | |
80 | for (Int_t i=0; i<12; i++) | |
81 | { | |
82 | Float_t x = 6.5 * TMath::Sin(i * angle); | |
83 | Float_t y = 6.5 * TMath::Cos(i * angle); | |
84 | raw_a->AddHexagon(x, y, r.Uniform(-0.1, 0.1), 1.0); | |
85 | raw_a->QuadValue(start->GetData(i+37,0)-start->GetData(0,0)); | |
86 | raw_c->AddHexagon(x, y, r.Uniform(-0.1, 0.1), 1.0); | |
87 | raw_c->QuadValue(start->GetData(i+25,0)-start->GetData(0,0)); | |
88 | } | |
89 | ||
90 | ||
91 | raw_a->RefitPlex(); | |
92 | raw_c->RefitPlex(); | |
51346b82 | 93 | |
84aff7a4 | 94 | TEveTrans& ta_a = raw_a->RefHMTrans(); |
03916485 | 95 | ta_a.SetPos(0, 0, 373); |
84aff7a4 | 96 | TEveTrans& tc_c = raw_c->RefHMTrans(); |
03916485 | 97 | tc_c.SetPos(0, 0, -69.7); |
98 | ||
84aff7a4 | 99 | gEve->AddElement(raw_a); |
100 | gEve->AddElement(raw_c); | |
101 | gEve->Redraw3D(); | |
03916485 | 102 | } |
103 | ||
57ffa5fb | 104 | /******************************************************************************/ |
d810d0de | 105 | void AliEveT0Module::MakeModules(AliT0digit *digits) |
03916485 | 106 | { |
51346b82 | 107 | TRandom r(0); |
03916485 | 108 | TArrayI ADC(24); |
109 | TArrayI TDC(24); | |
51346b82 | 110 | |
03916485 | 111 | digits->GetQT1(ADC); |
112 | digits->GetTimeCFD(TDC); | |
113 | // printf("%3d\n",besttimeright); | |
114 | for (Int_t i=0;i<24; i++){ | |
115 | printf("%3d %3d\n ",ADC[i], TDC[i]); | |
116 | } | |
117 | ||
84aff7a4 | 118 | TEveRGBAPalette* adcPalette = new TEveRGBAPalette(5, 1024); |
03916485 | 119 | adcPalette->SetLimits(1, 1024); // Set proper ADC range. |
84aff7a4 | 120 | TEveRGBAPalette* tdcPalette = new TEveRGBAPalette(0, 9999); |
03916485 | 121 | tdcPalette->SetLimits(1, 9999); // Set proper TDC range. |
122 | ||
d810d0de | 123 | TEveQuadSet* qa = new AliEveT0Module("T0A_ADC", 0, digits); qa->SetPalette(adcPalette); |
124 | TEveQuadSet* qc = new AliEveT0Module("T0C_ADC", 0, digits); qc->SetPalette(adcPalette); | |
125 | TEveQuadSet* qat = new AliEveT0Module("T0A_TDC", 1, digits); qat->SetPalette(tdcPalette); | |
126 | TEveQuadSet* qct = new AliEveT0Module("T0C_TDC", 1, digits); qct->SetPalette(tdcPalette); | |
03916485 | 127 | |
128 | Float_t angle = 2 * TMath::Pi() / 12; | |
129 | ||
84aff7a4 | 130 | qa->Reset(TEveQuadSet::kQT_HexagonXY, kFALSE, 32); |
131 | qc->Reset(TEveQuadSet::kQT_HexagonXY, kFALSE, 32); | |
132 | qat->Reset(TEveQuadSet::kQT_HexagonXY, kFALSE, 32); | |
133 | qct->Reset(TEveQuadSet::kQT_HexagonXY, kFALSE, 32); | |
03916485 | 134 | |
135 | ||
136 | ||
137 | for (Int_t i=0; i<12; i++) { | |
138 | Float_t x = 6.5 * TMath::Sin(i * angle); | |
139 | Float_t y = 6.5 * TMath::Cos(i * angle); | |
140 | ||
141 | qa->AddHexagon(x, y, r.Uniform(-0.1, 0.1), 1.0); | |
142 | qa->QuadValue(ADC[i+12]); | |
143 | // qa->QuadId(new TNamed(Form("PMT with idx=%d", i), "PMT's aplitude in side A.")); | |
144 | ||
145 | qat->AddHexagon(x, y, r.Uniform(-0.1, 0.1), 1.0); | |
146 | qat->QuadValue(TDC[i+12]); | |
147 | // qat->QuadId(new TNamed(Form("Quad with idx=%d", i), "PMT's time in side A.")); | |
51346b82 | 148 | |
03916485 | 149 | qc->AddHexagon(x, y, r.Uniform(-0.1, 0.1), 1.0); |
150 | qc->QuadValue(ADC[i]); | |
151 | // qc->QuadId(new TNamed(Form("Quad with idx=%d", i), "PMT's amplitude in side C.")); | |
152 | ||
153 | qct->AddHexagon(x, y, r.Uniform(-0.1, 0.1), 1.0); | |
154 | qct->QuadValue(TDC[i]); | |
155 | // qct->QuadId(new TNamed(Form("Quad with idx=%d", i), "PMT's time in side C.")); | |
156 | } | |
157 | ||
158 | qa->RefitPlex(); | |
159 | qc->RefitPlex(); | |
160 | qat->RefitPlex(); | |
161 | qct->RefitPlex(); | |
162 | ||
84aff7a4 | 163 | TEveTrans& ta = qa->RefHMTrans(); |
03916485 | 164 | ta.SetPos(0, 0, 373); |
84aff7a4 | 165 | TEveTrans& tc = qc->RefHMTrans(); |
03916485 | 166 | tc.SetPos(0, 0, -69.7); |
51346b82 | 167 | |
84aff7a4 | 168 | TEveTrans& tat = qat->RefHMTrans(); |
03916485 | 169 | tat.SetPos(0, 0, 373); |
84aff7a4 | 170 | TEveTrans& tct = qct->RefHMTrans(); |
03916485 | 171 | tct.SetPos(0, 0, -69.7); |
51346b82 | 172 | |
84aff7a4 | 173 | gEve->AddElement(qa); |
174 | gEve->AddElement(qc); | |
175 | gEve->AddElement(qat); | |
176 | gEve->AddElement(qct); | |
03916485 | 177 | |
84aff7a4 | 178 | gEve->Redraw3D(); |
03916485 | 179 | } |
180 | ||
57ffa5fb | 181 | /******************************************************************************/ |
03916485 | 182 | |
d810d0de | 183 | void AliEveT0Module::DigitSelected(Int_t idx) |
03916485 | 184 | { |
84aff7a4 | 185 | // Override control-click from TEveQuadSet |
03916485 | 186 | |
84aff7a4 | 187 | DigitBase_t* qb = GetDigit(idx); |
03916485 | 188 | if (fSigType == 0) { //ADC |
189 | printf("adc====================\n"); | |
190 | Int_t besttimeright = fDigits->BestTimeA(); | |
191 | Int_t besttimeleft = fDigits->BestTimeC(); | |
192 | Int_t meantime = fDigits->MeanTime(); | |
193 | Int_t timediff = fDigits->TimeDiff(); | |
194 | Int_t summult = fDigits->SumMult(); | |
195 | ||
196 | printf("besttimeA=%3d\n",besttimeright); | |
197 | printf("besttimeC=%3d\n",besttimeleft); | |
198 | printf("meantime=%3d\n",meantime); | |
199 | printf("timediff=%3d\n",timediff); | |
200 | printf("summult=%3d\n",summult); | |
201 | ||
202 | printf(" idx=%d, amplitude=%d\n", idx, qb->fValue); | |
203 | ||
51346b82 | 204 | } |
03916485 | 205 | if (fSigType == 1) { |
206 | printf("tdc====================\n"); | |
51346b82 | 207 | |
03916485 | 208 | Int_t besttimeright = fDigits->BestTimeA(); |
209 | Int_t besttimeleft = fDigits->BestTimeC(); | |
210 | Int_t meantime = fDigits->MeanTime(); | |
211 | Int_t timediff = fDigits->TimeDiff(); | |
212 | Int_t summult = fDigits->SumMult(); | |
213 | ||
214 | printf("besttimeA=%3d\n",besttimeright); | |
215 | printf("besttimeC=%3d\n",besttimeleft); | |
216 | printf("meantime=%3d\n",meantime); | |
217 | printf("timediff=%3d\n",timediff); | |
218 | printf("summult=%3d\n",summult); | |
219 | ||
220 | printf(" idx=%d, amplitude=%d\n", idx, qb->fValue); | |
221 | } | |
222 | if (fSigType == 2) { | |
223 | printf("raw====================\n"); | |
224 | printf("besttimeA=%3d\n",fStart->GetData(51,0)-fStart->GetData(0,0)); | |
225 | printf("besttimeC=%3d\n",fStart->GetData(52,0)-fStart->GetData(0,0)); | |
226 | printf("meantime=%3d\n",fStart->GetData(49,0)-fStart->GetData(0,0)); | |
227 | printf("amplitude= %3d\n",fStart->GetData(idx+1,0)); | |
51346b82 | 228 | |
03916485 | 229 | printf(" idx=%d, time %d\n", idx, qb->fValue); |
230 | } | |
231 | if (fSigType == 3) { | |
232 | printf("raw====================\n"); | |
233 | printf("besttimeA=%3d\n",fStart->GetData(51,0)-fStart->GetData(0,0)); | |
234 | printf("besttimeC=%3d\n",fStart->GetData(52,0)-fStart->GetData(0,0)); | |
235 | printf("meantime=%3d\n",fStart->GetData(49,0)-fStart->GetData(0,0)); | |
236 | printf("amplitude= %3d\n",fStart->GetData(idx+13,0)); | |
51346b82 | 237 | |
03916485 | 238 | printf(" idx=%d, time %d\n", idx, qb->fValue); |
239 | } | |
240 | ||
241 | } |