]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSQASSDDataMakerSim.cxx
From Alex: updated and new macros for TRD.
[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
c71529b0 57fGenOffset(0) {\r
8dc34e37 58 //ctor used to discriminate OnLine-Offline analysis \r
59}\r
60\r
61//____________________________________________________________________________ \r
62AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(const AliITSQASSDDataMakerSim& qadm) :\r
63TObject(),\r
64fAliITSQADataMakerSim(qadm.fAliITSQADataMakerSim),\r
65fSSDhDigits(qadm.fSSDhDigits),\r
66fSSDhSDigits(qadm.fSSDhSDigits),\r
67fSSDhHits(qadm.fSSDhHits),\r
c71529b0 68fGenOffset(qadm.fGenOffset) {\r
8dc34e37 69 //copy ctor \r
70 fAliITSQADataMakerSim->SetName((const char*)qadm.fAliITSQADataMakerSim->GetName()) ; \r
71 fAliITSQADataMakerSim->SetTitle((const char*)qadm.fAliITSQADataMakerSim->GetTitle());\r
72 }\r
73\r
74//__________________________________________________________________\r
b20aae70 75AliITSQASSDDataMakerSim& AliITSQASSDDataMakerSim::operator = (const AliITSQASSDDataMakerSim& qac ) {\r
8dc34e37 76 // Equal operator.\r
77 this->~AliITSQASSDDataMakerSim();\r
78 new(this) AliITSQASSDDataMakerSim(qac);\r
79 return *this;\r
80}\r
81\r
82//____________________________________________________________________________ \r
b20aae70 83void AliITSQASSDDataMakerSim::StartOfDetectorCycle() {\r
8dc34e37 84 //Detector specific actions at start of cycle\r
85 AliDebug(1,"AliITSQADM::Start of SSD Cycle\n");\r
86}\r
87\r
88//____________________________________________________________________________ \r
b20aae70 89void AliITSQASSDDataMakerSim::EndOfDetectorCycle(AliQA::TASKINDEX_t /*task*/, TObjArray* /*list*/) {\r
8dc34e37 90 // launch the QA checking\r
91 AliDebug(1,"AliITSDM instantiates checker with Run(AliQA::kITS, task, list)\n"); \r
92 \r
93 //AliQAChecker::Instance()->Run( AliQA::kITS , task, list);\r
94}\r
95\r
96//____________________________________________________________________________ \r
b20aae70 97void AliITSQASSDDataMakerSim::InitDigits() { \r
8dc34e37 98 // Initialization for DIGIT data - SSD -\r
c71529b0 99 fGenOffset = (fAliITSQADataMakerSim->fDigitsQAList)->GetEntries();\r
8dc34e37 100\r
101 // custom code here\r
b20aae70 102 TH1F *fHistSSDModule = new TH1F("fHistSSDDigitsModule",\r
103 ";SSD Module Number;N_{DIGITS}",\r
104 1698,499.5,2197.5); \r
105 fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModule,\r
c71529b0 106 fGenOffset + fSSDhDigits);\r
b20aae70 107 fSSDhDigits += 1;\r
108 TH2F *fHistSSDModuleStrip = new TH2F("fHistSSDDigitsModuleStrip",\r
109 ";N_{Strip};N_{Module}",\r
110 1540,0,1540,1698,499.5,2197.5); \r
111 fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModuleStrip,\r
c71529b0 112 fGenOffset + fSSDhDigits);\r
b20aae70 113 fSSDhDigits += 1;\r
8dc34e37 114\r
115 AliDebug(1,Form("%d SSD Digits histograms booked\n",fSSDhDigits));\r
116\r
117}\r
118\r
8dc34e37 119//____________________________________________________________________________\r
b20aae70 120void AliITSQASSDDataMakerSim::MakeDigits(TTree *digits) { \r
8dc34e37 121 // Fill QA for DIGIT - SSD -\r
b20aae70 122 AliITS *fITS = (AliITS*)gAlice->GetModule("ITS");\r
123 fITS->SetTreeAddress();\r
124 TClonesArray *iSSDdigits = fITS->DigitsAddress(2);\r
125 for(Int_t iModule = 500; iModule < 2198; iModule++) {\r
126 iSSDdigits->Clear();\r
127 digits->GetEvent(iModule); \r
128 Int_t ndigits = iSSDdigits->GetEntries();\r
c71529b0 129 fAliITSQADataMakerSim->GetDigitsData(fGenOffset + 0)->Fill(iModule,ndigits);\r
b20aae70 130 if(ndigits != 0)\r
131 AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));\r
132 \r
133 for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {\r
134 AliITSdigit *dig = (AliITSdigit*)iSSDdigits->UncheckedAt(iDigit);\r
135 Int_t fStripNumber = (dig->GetCoord1() == 0) ? dig->GetCoord2() : dig->GetCoord2() + fgkNumberOfPSideStrips;\r
c71529b0 136 ((TH2F *)fAliITSQADataMakerSim->GetDigitsData(fGenOffset + 1))->Fill(fStripNumber,iModule,dig->GetSignal());\r
b20aae70 137 }//digit loop\r
138 }//module loop\r
8dc34e37 139}\r
140\r
8dc34e37 141//____________________________________________________________________________ \r
b20aae70 142void AliITSQASSDDataMakerSim::InitSDigits() { \r
8dc34e37 143 // Initialization for SDIGIT data - SSD -\r
c71529b0 144 fGenOffset = (fAliITSQADataMakerSim->fSDigitsQAList)->GetEntries();\r
8dc34e37 145\r
146 // custom code here\r
b20aae70 147 TH1F *fHistSSDModule = new TH1F("fHistSSDSDigitsModule",\r
148 ";SSD Module Number;N_{SDIGITS}",\r
149 1698,499.5,2197.5); \r
150 fAliITSQADataMakerSim->Add2SDigitsList(fHistSSDModule,\r
c71529b0 151 fGenOffset + fSSDhSDigits);\r
b20aae70 152 fSSDhSDigits += 1; \r
8dc34e37 153\r
154 AliDebug(1,Form("%d SSD SDigits histograms booked\n",fSSDhSDigits));\r
8dc34e37 155}\r
156\r
8dc34e37 157//____________________________________________________________________________\r
b20aae70 158void AliITSQASSDDataMakerSim::MakeSDigits(TTree *sdigits) { \r
8dc34e37 159 // Fill QA for SDIGIT - SSD -\r
b20aae70 160 TClonesArray *iSSDsdigits = new TClonesArray("AliITSpListItem",10000);\r
161 TBranch *brchSDigits = sdigits->GetBranch("ITS");\r
162 brchSDigits->SetAddress(&iSSDsdigits);\r
163 for(Int_t iModule = 500; iModule < 2198; iModule++) {\r
164 iSSDsdigits->Clear();\r
165 sdigits->GetEvent(iModule); \r
166 Int_t ndigits = iSSDsdigits->GetEntries();\r
c71529b0 167 fAliITSQADataMakerSim->GetSDigitsData(fGenOffset + 0)->Fill(iModule,ndigits);\r
b20aae70 168 if(ndigits != 0)\r
169 AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));\r
170\r
171 for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {\r
172 AliITSpListItem *dig=(AliITSpListItem*)iSSDsdigits->At(iDigit);\r
c71529b0 173 dig=0;\r
b20aae70 174 }//digit loop\r
175 }//module loop\r
8dc34e37 176}\r
177\r
8dc34e37 178//____________________________________________________________________________ \r
b20aae70 179void AliITSQASSDDataMakerSim::InitHits() { \r
8dc34e37 180 // Initialization for HITS data - SSD -\r
c71529b0 181 fGenOffset = (fAliITSQADataMakerSim->fHitsQAList)->GetEntries();\r
8dc34e37 182\r
183 // custom code here\r
b20aae70 184 TH1F *fHistSSDModule = new TH1F("fHistSSDHitsModule",\r
185 ";SDD Module Number;N_{HITS}",\r
186 1698,499.5,2197.5); \r
187 fAliITSQADataMakerSim->Add2HitsList(fHistSSDModule,\r
c71529b0 188 fGenOffset + fSSDhHits);\r
b20aae70 189 fSSDhHits += 1;\r
190 TH1F *fHistSSDGlobalX = new TH1F("fHistSSDHitsGlobalX",\r
191 ";x [cm];Entries",\r
192 1000,-50.,50.);\r
193 fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalX,\r
c71529b0 194 fGenOffset + fSSDhHits);\r
b20aae70 195 fSSDhHits += 1;\r
196 TH1F *fHistSSDGlobalY = new TH1F("fHistSSDHitsGlobalY",\r
197 ";y [cm];Entries",\r
198 1000,-50.,50.);\r
199 fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalY,\r
c71529b0 200 fGenOffset + fSSDhHits);\r
b20aae70 201 fSSDhHits += 1;\r
202 TH1F *fHistSSDGlobalZ = new TH1F("fHistSSDHitsGlobalZ",\r
203 ";z [cm];Entries",\r
204 1000,-60.,60.);\r
205 fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalZ,\r
c71529b0 206 fGenOffset + fSSDhHits);\r
b20aae70 207 fSSDhHits += 1;\r
208 TH1F *fHistSSDLocalX = new TH1F("fHistSSDHitsLocalX",\r
209 ";x [cm];Entries",\r
210 1000,-4.,4.);\r
211 fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalX,\r
c71529b0 212 fGenOffset + fSSDhHits);\r
b20aae70 213 fSSDhHits += 1;\r
214 TH1F *fHistSSDLocalY = new TH1F("fHistSSDHitsLocalY",\r
215 ";y [cm];Entries",\r
216 1000,-0.1,0.1);\r
217 fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalY,\r
c71529b0 218 fGenOffset + fSSDhHits);\r
b20aae70 219 fSSDhHits += 1;\r
220 TH1F *fHistSSDLocalZ = new TH1F("fHistSSDHitsLocalZ",\r
221 ";z [cm];Entries",\r
222 1000,-4.,4.);\r
223 fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalZ,\r
c71529b0 224 fGenOffset + fSSDhHits);\r
b20aae70 225 fSSDhHits += 1;\r
226 TH1F *fHistSSDIonization = new TH1F("fHistSSDHitsIonization",\r
227 ";log(dE/dx) [KeV];N_{Hits}",\r
228 100,-7,-2);\r
229 fAliITSQADataMakerSim->Add2HitsList(fHistSSDIonization,\r
c71529b0 230 fGenOffset + fSSDhHits);\r
b20aae70 231 fSSDhHits += 1;\r
232 TH2F *fHistSSDGlobalXY = new TH2F("fHistSSDHitsGlobalXY",\r
233 ";x [cm];y [cm]",\r
234 1000,-50.,50.,\r
235 1000,-50.,50.);\r
236 fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalXY,\r
c71529b0 237 fGenOffset + fSSDhHits);\r
b20aae70 238 fSSDhHits += 1;\r
239 \r
8dc34e37 240 AliDebug(1,Form("%d SSD Hits histograms booked\n",fSSDhHits));\r
8dc34e37 241}\r
242\r
243\r
244//____________________________________________________________________________\r
b20aae70 245void AliITSQASSDDataMakerSim::MakeHits(TTree *hits) { \r
8dc34e37 246 // Fill QA for HITS - SSD -\r
b20aae70 247 AliITS *fITS = (AliITS*)gAlice->GetModule("ITS");\r
248 fITS->SetTreeAddress();\r
249 Int_t nmodules;\r
250 fITS->InitModules(-1,nmodules);\r
251 fITS->FillModules(hits,0);\r
252 for(Int_t iModule = 500; iModule < 2198; iModule++) {\r
253 AliITSmodule *module = fITS->GetModule(iModule);\r
254 TObjArray *arrHits = module->GetHits();\r
255 Int_t nhits = arrHits->GetEntriesFast();\r
256 if(nhits != 0)\r
257 AliDebug(1,Form("Module: %d - Hits: %d",iModule,nhits));\r
258 for (Int_t iHit = 0; iHit < nhits; iHit++) {\r
259 AliITShit *hit = (AliITShit*) arrHits->At(iHit);\r
260 \r
c71529b0 261 fAliITSQADataMakerSim->GetHitsData(fGenOffset + 0)->Fill(iModule);\r
262 fAliITSQADataMakerSim->GetHitsData(fGenOffset + 1)->Fill(hit->GetXG());\r
263 fAliITSQADataMakerSim->GetHitsData(fGenOffset + 2)->Fill(hit->GetYG());\r
264 fAliITSQADataMakerSim->GetHitsData(fGenOffset + 3)->Fill(hit->GetZG());\r
265 fAliITSQADataMakerSim->GetHitsData(fGenOffset + 4)->Fill(hit->GetXL());\r
266 fAliITSQADataMakerSim->GetHitsData(fGenOffset + 5)->Fill(hit->GetYL());\r
267 fAliITSQADataMakerSim->GetHitsData(fGenOffset + 6)->Fill(hit->GetZL());\r
b20aae70 268 if(hit->GetIonization())\r
c71529b0 269 fAliITSQADataMakerSim->GetHitsData(fGenOffset + 7)->Fill(TMath::Log10(hit->GetIonization()));\r
270 fAliITSQADataMakerSim->GetHitsData(fGenOffset + 8)->Fill(hit->GetXG(),hit->GetYG());\r
b20aae70 271 }//hit loop\r
272 }//module loop \r
8dc34e37 273}\r