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