]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSQASSDDataMakerSim.cxx
Removing extra line, adding EINCLUDE
[u/mrichter/AliRoot.git] / ITS / AliITSQASSDDataMakerSim.cxx
CommitLineData
8dc34e37 1/**************************************************************************\r
2 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *\r
3 * *\r
4 * Author: The ALICE Off-line Project. *\r
5 * Contributors are mentioned in the code where appropriate. *\r
6 * *\r
7 * Permission to use, copy, modify and distribute this software and its *\r
8 * documentation strictly for non-commercial purposes is hereby granted *\r
9 * without fee, provided that the above copyright notice appears in all *\r
10 * copies and that both the copyright notice and this permission notice *\r
11 * appear in the supporting documentation. The authors make no claims *\r
12 * about the suitability of this software for any purpose. It is *\r
13 * provided "as is" without express or implied warranty. *\r
14 **************************************************************************/\r
15\r
16/* $Id$ */\r
17\r
18// *************************************************************\r
19// Checks the quality assurance \r
20// by comparing with reference data\r
21// contained in a DB\r
22// -------------------------------------------------------------\r
23// W. Ferrarese + P. Cerello Feb 2008\r
24// INFN Torino\r
b20aae70 25// SSD QA part: P. Christakoglou - NIKHEF/UU\r
8dc34e37 26\r
27// --- ROOT system ---\r
28#include <TTree.h>\r
b20aae70 29#include <TH1.h>\r
30#include <TH2.h>\r
31#include <TMath.h>\r
8dc34e37 32// --- Standard library ---\r
33\r
34// --- AliRoot header files ---\r
b20aae70 35#include "AliITS.h"\r
13bd31e2 36#include "AliITSmodule.h"\r
b20aae70 37#include "AliITShit.h"\r
38#include "AliITSdigit.h"\r
39#include "AliITSpListItem.h"\r
40#include "AliRun.h"\r
8dc34e37 41#include "AliITSQADataMakerSim.h"\r
42#include "AliITSQASSDDataMakerSim.h"\r
43#include "AliLog.h"\r
44#include "AliQA.h"\r
45#include "AliQAChecker.h"\r
46#include "AliRawReader.h"\r
47\r
48ClassImp(AliITSQASSDDataMakerSim)\r
49\r
50//____________________________________________________________________________ \r
51AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(AliITSQADataMakerSim *aliITSQADataMakerSim) :\r
52TObject(),\r
53fAliITSQADataMakerSim(aliITSQADataMakerSim),\r
54fSSDhDigits(0),\r
55fSSDhSDigits(0),\r
56fSSDhHits(0),\r
57fDigitsOffset(0),\r
58fSDigitsOffset(0),\r
b20aae70 59fHitsOffset(0) {\r
8dc34e37 60 //ctor used to discriminate OnLine-Offline analysis \r
61}\r
62\r
63//____________________________________________________________________________ \r
64AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(const AliITSQASSDDataMakerSim& qadm) :\r
65TObject(),\r
66fAliITSQADataMakerSim(qadm.fAliITSQADataMakerSim),\r
67fSSDhDigits(qadm.fSSDhDigits),\r
68fSSDhSDigits(qadm.fSSDhSDigits),\r
69fSSDhHits(qadm.fSSDhHits),\r
70fDigitsOffset(qadm.fDigitsOffset),\r
71fSDigitsOffset(qadm.fSDigitsOffset),\r
b20aae70 72fHitsOffset(qadm.fHitsOffset) {\r
8dc34e37 73 //copy ctor \r
74 fAliITSQADataMakerSim->SetName((const char*)qadm.fAliITSQADataMakerSim->GetName()) ; \r
75 fAliITSQADataMakerSim->SetTitle((const char*)qadm.fAliITSQADataMakerSim->GetTitle());\r
76 }\r
77\r
78//__________________________________________________________________\r
b20aae70 79AliITSQASSDDataMakerSim& AliITSQASSDDataMakerSim::operator = (const AliITSQASSDDataMakerSim& qac ) {\r
8dc34e37 80 // Equal operator.\r
81 this->~AliITSQASSDDataMakerSim();\r
82 new(this) AliITSQASSDDataMakerSim(qac);\r
83 return *this;\r
84}\r
85\r
86//____________________________________________________________________________ \r
b20aae70 87void AliITSQASSDDataMakerSim::StartOfDetectorCycle() {\r
8dc34e37 88 //Detector specific actions at start of cycle\r
89 AliDebug(1,"AliITSQADM::Start of SSD Cycle\n");\r
90}\r
91\r
92//____________________________________________________________________________ \r
b20aae70 93void AliITSQASSDDataMakerSim::EndOfDetectorCycle(AliQA::TASKINDEX_t /*task*/, TObjArray* /*list*/) {\r
8dc34e37 94 // launch the QA checking\r
95 AliDebug(1,"AliITSDM instantiates checker with Run(AliQA::kITS, task, list)\n"); \r
96 \r
97 //AliQAChecker::Instance()->Run( AliQA::kITS , task, list);\r
98}\r
99\r
100//____________________________________________________________________________ \r
b20aae70 101void AliITSQASSDDataMakerSim::InitDigits() { \r
8dc34e37 102 // Initialization for DIGIT data - SSD -\r
103 fDigitsOffset = (fAliITSQADataMakerSim->fDigitsQAList)->GetEntries();\r
104\r
105 // custom code here\r
b20aae70 106 TH1F *fHistSSDModule = new TH1F("fHistSSDDigitsModule",\r
107 ";SSD Module Number;N_{DIGITS}",\r
108 1698,499.5,2197.5); \r
109 fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModule,\r
110 fDigitsOffset + fSSDhDigits);\r
111 fSSDhDigits += 1;\r
112 TH2F *fHistSSDModuleStrip = new TH2F("fHistSSDDigitsModuleStrip",\r
113 ";N_{Strip};N_{Module}",\r
114 1540,0,1540,1698,499.5,2197.5); \r
115 fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModuleStrip,\r
116 fDigitsOffset + fSSDhDigits);\r
117 fSSDhDigits += 1;\r
8dc34e37 118\r
119 AliDebug(1,Form("%d SSD Digits histograms booked\n",fSSDhDigits));\r
120\r
121}\r
122\r
8dc34e37 123//____________________________________________________________________________\r
b20aae70 124void AliITSQASSDDataMakerSim::MakeDigits(TTree *digits) { \r
8dc34e37 125 // Fill QA for DIGIT - SSD -\r
b20aae70 126 AliITS *fITS = (AliITS*)gAlice->GetModule("ITS");\r
127 fITS->SetTreeAddress();\r
128 TClonesArray *iSSDdigits = fITS->DigitsAddress(2);\r
129 for(Int_t iModule = 500; iModule < 2198; iModule++) {\r
130 iSSDdigits->Clear();\r
131 digits->GetEvent(iModule); \r
132 Int_t ndigits = iSSDdigits->GetEntries();\r
133 fAliITSQADataMakerSim->GetDigitsData(fDigitsOffset + 0)->Fill(iModule,ndigits);\r
134 if(ndigits != 0)\r
135 AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));\r
136 \r
137 for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {\r
138 AliITSdigit *dig = (AliITSdigit*)iSSDdigits->UncheckedAt(iDigit);\r
139 Int_t fStripNumber = (dig->GetCoord1() == 0) ? dig->GetCoord2() : dig->GetCoord2() + fgkNumberOfPSideStrips;\r
140 ((TH2F *)fAliITSQADataMakerSim->GetDigitsData(fDigitsOffset + 1))->Fill(fStripNumber,iModule,dig->GetSignal());\r
141 }//digit loop\r
142 }//module loop\r
8dc34e37 143}\r
144\r
8dc34e37 145//____________________________________________________________________________ \r
b20aae70 146void AliITSQASSDDataMakerSim::InitSDigits() { \r
8dc34e37 147 // Initialization for SDIGIT data - SSD -\r
148 fSDigitsOffset = (fAliITSQADataMakerSim->fSDigitsQAList)->GetEntries();\r
149\r
150 // custom code here\r
b20aae70 151 TH1F *fHistSSDModule = new TH1F("fHistSSDSDigitsModule",\r
152 ";SSD Module Number;N_{SDIGITS}",\r
153 1698,499.5,2197.5); \r
154 fAliITSQADataMakerSim->Add2SDigitsList(fHistSSDModule,\r
155 fSDigitsOffset + fSSDhSDigits);\r
156 fSSDhSDigits += 1; \r
8dc34e37 157\r
158 AliDebug(1,Form("%d SSD SDigits histograms booked\n",fSSDhSDigits));\r
8dc34e37 159}\r
160\r
8dc34e37 161//____________________________________________________________________________\r
b20aae70 162void AliITSQASSDDataMakerSim::MakeSDigits(TTree *sdigits) { \r
8dc34e37 163 // Fill QA for SDIGIT - SSD -\r
b20aae70 164 TClonesArray *iSSDsdigits = new TClonesArray("AliITSpListItem",10000);\r
165 TBranch *brchSDigits = sdigits->GetBranch("ITS");\r
166 brchSDigits->SetAddress(&iSSDsdigits);\r
167 for(Int_t iModule = 500; iModule < 2198; iModule++) {\r
168 iSSDsdigits->Clear();\r
169 sdigits->GetEvent(iModule); \r
170 Int_t ndigits = iSSDsdigits->GetEntries();\r
171 fAliITSQADataMakerSim->GetSDigitsData(fSDigitsOffset + 0)->Fill(iModule,ndigits);\r
172 if(ndigits != 0)\r
173 AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));\r
174\r
175 for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {\r
176 AliITSpListItem *dig=(AliITSpListItem*)iSSDsdigits->At(iDigit);\r
177 }//digit loop\r
178 }//module loop\r
8dc34e37 179}\r
180\r
8dc34e37 181//____________________________________________________________________________ \r
b20aae70 182void AliITSQASSDDataMakerSim::InitHits() { \r
8dc34e37 183 // Initialization for HITS data - SSD -\r
184 fHitsOffset = (fAliITSQADataMakerSim->fHitsQAList)->GetEntries();\r
185\r
186 // custom code here\r
b20aae70 187 TH1F *fHistSSDModule = new TH1F("fHistSSDHitsModule",\r
188 ";SDD Module Number;N_{HITS}",\r
189 1698,499.5,2197.5); \r
190 fAliITSQADataMakerSim->Add2HitsList(fHistSSDModule,\r
191 fHitsOffset + fSSDhHits);\r
192 fSSDhHits += 1;\r
193 TH1F *fHistSSDGlobalX = new TH1F("fHistSSDHitsGlobalX",\r
194 ";x [cm];Entries",\r
195 1000,-50.,50.);\r
196 fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalX,\r
197 fHitsOffset + fSSDhHits);\r
198 fSSDhHits += 1;\r
199 TH1F *fHistSSDGlobalY = new TH1F("fHistSSDHitsGlobalY",\r
200 ";y [cm];Entries",\r
201 1000,-50.,50.);\r
202 fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalY,\r
203 fHitsOffset + fSSDhHits);\r
204 fSSDhHits += 1;\r
205 TH1F *fHistSSDGlobalZ = new TH1F("fHistSSDHitsGlobalZ",\r
206 ";z [cm];Entries",\r
207 1000,-60.,60.);\r
208 fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalZ,\r
209 fHitsOffset + fSSDhHits);\r
210 fSSDhHits += 1;\r
211 TH1F *fHistSSDLocalX = new TH1F("fHistSSDHitsLocalX",\r
212 ";x [cm];Entries",\r
213 1000,-4.,4.);\r
214 fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalX,\r
215 fHitsOffset + fSSDhHits);\r
216 fSSDhHits += 1;\r
217 TH1F *fHistSSDLocalY = new TH1F("fHistSSDHitsLocalY",\r
218 ";y [cm];Entries",\r
219 1000,-0.1,0.1);\r
220 fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalY,\r
221 fHitsOffset + fSSDhHits);\r
222 fSSDhHits += 1;\r
223 TH1F *fHistSSDLocalZ = new TH1F("fHistSSDHitsLocalZ",\r
224 ";z [cm];Entries",\r
225 1000,-4.,4.);\r
226 fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalZ,\r
227 fHitsOffset + fSSDhHits);\r
228 fSSDhHits += 1;\r
229 TH1F *fHistSSDIonization = new TH1F("fHistSSDHitsIonization",\r
230 ";log(dE/dx) [KeV];N_{Hits}",\r
231 100,-7,-2);\r
232 fAliITSQADataMakerSim->Add2HitsList(fHistSSDIonization,\r
233 fHitsOffset + fSSDhHits);\r
234 fSSDhHits += 1;\r
235 TH2F *fHistSSDGlobalXY = new TH2F("fHistSSDHitsGlobalXY",\r
236 ";x [cm];y [cm]",\r
237 1000,-50.,50.,\r
238 1000,-50.,50.);\r
239 fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalXY,\r
240 fHitsOffset + fSSDhHits);\r
241 fSSDhHits += 1;\r
242 \r
8dc34e37 243 AliDebug(1,Form("%d SSD Hits histograms booked\n",fSSDhHits));\r
8dc34e37 244}\r
245\r
246\r
247//____________________________________________________________________________\r
b20aae70 248void AliITSQASSDDataMakerSim::MakeHits(TTree *hits) { \r
8dc34e37 249 // Fill QA for HITS - SSD -\r
b20aae70 250 AliITS *fITS = (AliITS*)gAlice->GetModule("ITS");\r
251 fITS->SetTreeAddress();\r
252 Int_t nmodules;\r
253 fITS->InitModules(-1,nmodules);\r
254 fITS->FillModules(hits,0);\r
255 for(Int_t iModule = 500; iModule < 2198; iModule++) {\r
256 AliITSmodule *module = fITS->GetModule(iModule);\r
257 TObjArray *arrHits = module->GetHits();\r
258 Int_t nhits = arrHits->GetEntriesFast();\r
259 if(nhits != 0)\r
260 AliDebug(1,Form("Module: %d - Hits: %d",iModule,nhits));\r
261 for (Int_t iHit = 0; iHit < nhits; iHit++) {\r
262 AliITShit *hit = (AliITShit*) arrHits->At(iHit);\r
263 \r
264 fAliITSQADataMakerSim->GetHitsData(fHitsOffset + 0)->Fill(iModule);\r
265 fAliITSQADataMakerSim->GetHitsData(fHitsOffset + 1)->Fill(hit->GetXG());\r
266 fAliITSQADataMakerSim->GetHitsData(fHitsOffset + 2)->Fill(hit->GetYG());\r
267 fAliITSQADataMakerSim->GetHitsData(fHitsOffset + 3)->Fill(hit->GetZG());\r
268 fAliITSQADataMakerSim->GetHitsData(fHitsOffset + 4)->Fill(hit->GetXL());\r
269 fAliITSQADataMakerSim->GetHitsData(fHitsOffset + 5)->Fill(hit->GetYL());\r
270 fAliITSQADataMakerSim->GetHitsData(fHitsOffset + 6)->Fill(hit->GetZL());\r
271 if(hit->GetIonization())\r
272 fAliITSQADataMakerSim->GetHitsData(fHitsOffset + 7)->Fill(TMath::Log10(hit->GetIonization()));\r
273 fAliITSQADataMakerSim->GetHitsData(fHitsOffset + 8)->Fill(hit->GetXG(),hit->GetYG());\r
274 }//hit loop\r
275 }//module loop \r
8dc34e37 276}\r