]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HMPID/AliHMPIDQADataMakerSim.cxx
Removing .cvsignore files
[u/mrichter/AliRoot.git] / HMPID / AliHMPIDQADataMakerSim.cxx
CommitLineData
04236e67 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16
17/* $Id$ */
18
19//---
20// Produces the data needed to calculate the quality assurance.
21// All data must be mergeable objects.
22// A. Mastroserio
23//---
24
25// --- ROOT system ---
26#include <TClonesArray.h>
27#include <TFile.h>
28#include <TH1F.h>
29#include <TH2F.h>
30#include <TH1I.h>
31#include <TDirectory.h>
32#include <Riostream.h>
33// --- Standard library ---
34
35// --- AliRoot header files ---
36#include "AliLog.h"
37#include "AliHMPIDDigit.h"
38#include "AliHMPIDHit.h"
39#include "AliHMPIDQADataMakerSim.h"
40
41ClassImp(AliHMPIDQADataMakerSim)
42
43//____________________________________________________________________________
44 AliHMPIDQADataMakerSim::AliHMPIDQADataMakerSim() :
45 AliQADataMakerSim(AliQA::GetDetName(AliQA::kHMPID), "HMPID Quality Assurance Data Maker"),
46 fhHitQdc(0x0),
47 fhSDigits(0x0),
48 fhDigPcEvt(0x0),
49 fhDigChEvt(0x0),
50 fhDigQ(0x0)
51 // fhCluEvt(0x0),
52// fhCluChi2(0x0),
53// fhCluQ(0x0),
54// fhCluFlg(0x0),
55// fhCluSize(0x0),
56// fhMipCluSize(0x0),
57// fhCkovP(0x0),
58// fhSigP(0x0),
59// fhMipXY(0x0),
60// fhDifXY(0x0)
61{
62 // ctor
63 for(Int_t i=0; i<7; i++) fhHitMap[i]=0x0;
64// for(Int_t j=0; j<5; j++) fhPid[j]=0x0;
65// fDetectorDir = fOutput->GetDirectory(GetName()) ;
66// if (!fDetectorDir)
67// fDetectorDir = fOutput->mkdir(GetName()) ;
68}
69
70//____________________________________________________________________________
71AliHMPIDQADataMakerSim::AliHMPIDQADataMakerSim(const AliHMPIDQADataMakerSim& qadm) :
72 AliQADataMakerSim(),
73 fhHitQdc(qadm.fhHitQdc),
74 fhSDigits(qadm.fhSDigits),
75 fhDigPcEvt(qadm.fhDigPcEvt),
76 fhDigChEvt(qadm.fhDigChEvt),
77 fhDigQ(qadm.fhDigQ)
78// fhCluEvt(qadm.fhCluEvt),
79// fhCluChi2(qadm.fhCluChi2),
80// fhCluQ(qadm.fhCluQ),
81// fhCluFlg(qadm.fhCluFlg),
82// fhCluSize(qadm.fhCluSize),
83// fhMipCluSize(qadm.fhMipCluSize),
84// fhCkovP(qadm.fhCkovP),
85// fhSigP(qadm.fhSigP),
86// fhMipXY(qadm.fhMipXY),
87// fhDifXY(qadm.fhDifXY)
88{
89 //copy ctor
90 for(Int_t i=0; i<7; i++) fhHitMap[i]=qadm.fhHitMap[i];
91// for(Int_t j=0; j<5; j++) fhPid[j]=qadm.fhPid[j];
92
93 SetName((const char*)qadm.GetName()) ;
94 SetTitle((const char*)qadm.GetTitle());
95}
96
97//__________________________________________________________________
98AliHMPIDQADataMakerSim& AliHMPIDQADataMakerSim::operator = (const AliHMPIDQADataMakerSim& qadm )
99{
100 // Equal operator.
101 this->~AliHMPIDQADataMakerSim();
102 new(this) AliHMPIDQADataMakerSim(qadm);
103 return *this;
104}
105
106//____________________________________________________________________________
107void AliHMPIDQADataMakerSim::InitHits()
108{
109 // create Hits histograms in Hits subdir
110 fhHitQdc=new TH1F("HitQdc","HMPID Hit Qdc all chamber;QDC",500,0,4000);
111 for(Int_t iCh=0;iCh<7;iCh++)
112 fhHitMap[iCh]=new TH2F(Form("HMPID HitMap%i",iCh),Form("Ch%i;x_{Hit};y_{Hit}",iCh),162,-1,161,146,-1,145);
113}
114
115//____________________________________________________________________________
116void AliHMPIDQADataMakerSim::InitDigits()
117{
118 // create Digits histograms in Digits subdir
119 fhDigPcEvt=new TH1F("hDigPcEvt","PC occupancy",156,-1,77);
120 fhDigChEvt=new TH1F("hDigChEvt","Chamber occupancy",32,-1,7);
121 fhDigQ =new TH1F("Q "," digit charge ",3000,0,3000);
122}
123
124//____________________________________________________________________________
125void AliHMPIDQADataMakerSim::InitSDigits()
126{
127 // create SDigits histograms in SDigits subdir
128 fhSDigits = new TH1F("hHmpidSDigits", "SDigits Q distribution in HMPID", 500, 0., 5000.) ;
129}
130
131//____________________________________________________________________________
132void AliHMPIDQADataMakerSim::MakeHits(TObject * data)
133{
134 //fills QA histos for Hits
135 TClonesArray * hits = dynamic_cast<TClonesArray *>(data) ;
136 if (!hits){
137 AliError("Wrong type of hits container") ;
138 } else {
139 TIter next(hits);
140 AliHMPIDHit * hit ;
141 while ( (hit = dynamic_cast<AliHMPIDHit *>(next())) ) {
142 if(hit->Pid()<500000) fhHitQdc->Fill(hit->Q()) ;
143 if(hit->Pid()<500000) fhHitMap[hit->Ch()]->Fill(hit->LorsX(),hit->LorsY());
144 }
145 }
146}
147
148//____________________________________________________________________________
149void AliHMPIDQADataMakerSim::MakeDigits( TObject * data)
150{
151 //fills QA histos for Digits
152 TObjArray *chambers = dynamic_cast<TObjArray*>(data);
153 if ( !chambers) {
154 AliError("Wrong type of digits container") ;
155 } else {
156 for(Int_t i =0; i< chambers->GetEntries(); i++)
157 {
158 TClonesArray * digits = dynamic_cast<TClonesArray*>(chambers->At(i));
159 fhDigChEvt->Fill(i,digits->GetEntriesFast()/(48.*80.*6.));
160 TIter next(digits);
161 AliHMPIDDigit * digit;
162 while ( (digit = dynamic_cast<AliHMPIDDigit *>(next())) ) {
163 fhDigPcEvt->Fill(10.*i+digit->Pc(),1./(48.*80.));
164 fhDigQ->Fill(digit->Q());
165 }
166 }
167 }
168}
169
170//____________________________________________________________________________
171void AliHMPIDQADataMakerSim::MakeSDigits( TObject * data)
172{
173 //fills QA histos for SDigits
174 TClonesArray * sdigits = dynamic_cast<TClonesArray *>(data) ;
175 if (!sdigits) {
176 AliError("Wrong type of sdigits container") ;
177 } else {
178 AliHMPIDDigit *ref = (AliHMPIDDigit *)sdigits->At(0);
179 Float_t zero = ref->GetTrack(0);
180 TIter next(sdigits) ;
181 AliHMPIDDigit * sdigit ;
182 while ( (sdigit = dynamic_cast<AliHMPIDDigit *>(next())) ) {
183 fhSDigits->Fill(sdigit->Q()) ;
184 if(zero == sdigit->GetTrack(0)) continue;
185 else zero = sdigit->GetTrack(0);
186 }
187 }
188}