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