]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/ITS/AliAnalysisTaskSDDRP.cxx
Add flag to control exclusion of modules in SDD QA task. (F. Prino)
[u/mrichter/AliRoot.git] / PWG1 / ITS / AliAnalysisTaskSDDRP.cxx
CommitLineData
9bf660ff 1#include "AliAnalysisTask.h"
2#include "AliAnalysisManager.h"
3#include "AliAnalysisDataContainer.h"
4#include "AliITSRecPoint.h"
5#include "AliESDEvent.h"
6#include "AliTrackPointArray.h"
7#include "AliITSgeomTGeo.h"
8#include "AliESDfriend.h"
9#include "AliCDBManager.h"
10#include "AliCDBEntry.h"
11#include "AliITSCalibrationSDD.h"
12#include "AliITSresponseSDD.h"
13#include "AliGeomManager.h"
14#include <TSystem.h>
15#include <TTree.h>
16#include <TH1F.h>
c87da6ba 17#include <TH2F.h>
9bf660ff 18#include <TChain.h>
19#include <TGeoGlobalMagField.h>
20#include "AliESDInputHandlerRP.h"
c87da6ba 21/**************************************************************************
22 * Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
23 * *
24 * Author: The ALICE Off-line Project. *
25 * Contributors are mentioned in the code where appropriate. *
26 * *
27 * Permission to use, copy, modify and distribute this software and its *
28 * documentation strictly for non-commercial purposes is hereby granted *
29 * without fee, provided that the above copyright notice appears in all *
30 * copies and that both the copyright notice and this permission notice *
31 * appear in the supporting documentation. The authors make no claims *
32 * about the suitability of this software for any purpose. It is *
33 * provided "as is" without express or implied warranty. *
34 **************************************************************************/
35
36//*************************************************************************
37// Implementation of class AliAnalysiTaskSDDRP
38// AliAnalysisTaskSE to extract from ESD + ESDfreinds + ITS rec points
39// performance plots for SDD detector
40//
41// Author: F. Prino, prino@to.infn.it
42//*************************************************************************
43
44
9bf660ff 45#include "AliAnalysisTaskSDDRP.h"
46
47ClassImp(AliAnalysisTaskSDDRP)
48//______________________________________________________________________________
49AliAnalysisTaskSDDRP::AliAnalysisTaskSDDRP() : AliAnalysisTaskSE("SDD RecPoints"),
50 fOutput(0),
51 fHistNEvents(0),
c87da6ba 52 fHistAllPMod(0),
53 fHistGoodPMod(0),
54 fHistBadRegMod(0),
55 fHistMissPMod(0),
56 fHistSkippedMod(0),
57 fHistOutAccMod(0),
58 fHistNoRefitMod(0),
59 fHistdEdxL3VsP(0),
60 fHistdEdxL4VsP(0),
61 fHistdEdxVsMod(0),
9bf660ff 62 fRecPMod(0),
63 fTrackPMod(0),
64 fGoodAnMod(0),
65 fRecPLadLay3(0),
66 fRecPLadLay4(0),
67 fTrackPLadLay3(0),
68 fTrackPLadLay4(0),
69 fGoodAnLadLay3(0),
70 fGoodAnLadLay4(0),
71 fDriftTimeRP(0),
c87da6ba 72 fDriftTimeTPAll(0),
73 fDriftTimeTPNoExtra(0),
74 fDriftTimeTPExtra(0),
9bf660ff 75 fESD(0),
76 fESDfriend(0),
77 fResp(0),
c87da6ba 78 fUseITSsaTracks(kFALSE),
9bf660ff 79 fMinITSpts(3),
c87da6ba 80 fMinTPCpts(70),
81 fMinPfordEdx(0.5),
9bf660ff 82 fOnlyCINT1BTrig(0),
70b1033a 83 fInitialised(0),
84 fExcludeBadMod(kFALSE)
9bf660ff 85{
86 //
87 DefineOutput(1, TList::Class());
88}
89
90
91//___________________________________________________________________________
92AliAnalysisTaskSDDRP::~AliAnalysisTaskSDDRP(){
93 //
94 if (fOutput) {
95 delete fOutput;
96 fOutput = 0;
97 }
98}
99
100
101//___________________________________________________________________________
102
103void AliAnalysisTaskSDDRP::UserCreateOutputObjects() {
104
105 fOutput = new TList();
106 fOutput->SetOwner();
107 fOutput->SetName("OutputHistos");
108
109 fHistNEvents = new TH1F("hNEvents", "Number of processed events",3,-1.5,1.5);
110 fHistNEvents->Sumw2();
111 fHistNEvents->SetMinimum(0);
112 fOutput->Add(fHistNEvents);
113
114 // -- Module histos
115
c87da6ba 116 fHistAllPMod = new TH1F("hAllPmod","Crossing Tracks vs. Module",260,239.5,499.5);
117 fHistAllPMod->Sumw2();
118 fHistAllPMod->SetMinimum(0);
119 fOutput->Add(fHistAllPMod);
120
121 fHistGoodPMod = new TH1F("hGoodPmod","PointsAssocToTrack per Module",260,239.5,499.5);
122 fHistGoodPMod->Sumw2();
123 fHistGoodPMod->SetMinimum(0);
124 fOutput->Add(fHistGoodPMod);
125
126 fHistBadRegMod = new TH1F("hBadRegmod","Tracks in BadRegion per Module",260,239.5,499.5);
127 fHistBadRegMod->Sumw2();
128 fHistBadRegMod->SetMinimum(0);
129 fOutput->Add(fHistBadRegMod);
130
131 fHistMissPMod = new TH1F("hMissPmod","Missing Points per Module",260,239.5,499.5);
132 fHistMissPMod->Sumw2();
133 fHistMissPMod->SetMinimum(0);
134 fOutput->Add(fHistMissPMod);
135
136 fHistSkippedMod = new TH1F("hSkippedmod","Tracks in Skipped Module",260,239.5,499.5);
137 fHistSkippedMod->Sumw2();
138 fHistSkippedMod->SetMinimum(0);
139 fOutput->Add(fHistSkippedMod);
140
141 fHistOutAccMod = new TH1F("hOutAccmod","Tracks outside zAcc per Module",260,239.5,499.5);
142 fHistOutAccMod->Sumw2();
143 fHistOutAccMod->SetMinimum(0);
144 fOutput->Add(fHistOutAccMod);
145
146 fHistNoRefitMod = new TH1F("hNoRefitmod","Points rejected in refit per Module",260,239.5,499.5);
147 fHistNoRefitMod->Sumw2();
148 fHistNoRefitMod->SetMinimum(0);
149 fOutput->Add(fHistNoRefitMod);
150
151 fHistdEdxL3VsP=new TH2F("hdEdxL3VsP","dE/dx vs. p lay3",40,0.,2.,100,0.,500.);
152 fHistdEdxL3VsP->Sumw2();
153 fHistdEdxL3VsP->SetMinimum(0);
154 fOutput->Add(fHistdEdxL3VsP);
155
156 fHistdEdxL4VsP=new TH2F("hdEdxL4VsP","dE/dx vs. p lay4",40,0.,2.,100,0.,500);
157 fHistdEdxL4VsP->Sumw2();
158 fHistdEdxL4VsP->SetMinimum(0);
159 fOutput->Add(fHistdEdxL4VsP);
160
161 fHistdEdxVsMod=new TH2F("hdEdxVsMod","dE/dx vs. mod",260,239.5,499.5,100,0.,500.);
162 fHistdEdxVsMod->Sumw2();
163 fHistdEdxVsMod->SetMinimum(0);
164 fOutput->Add(fHistdEdxVsMod);
165
166
9bf660ff 167 fRecPMod = new TH1F("hRPMod","Rec Points per Module",260,239.5,499.5);
168 fRecPMod->Sumw2();
169 fRecPMod->SetMinimum(0);
170 fOutput->Add(fRecPMod);
171
172 fTrackPMod = new TH1F("hTPMod","Track Points per Module",260,239.5,499.5);
173 fTrackPMod->Sumw2();
174 fTrackPMod->SetMinimum(0);
175 fOutput->Add(fTrackPMod);
176
177 fGoodAnMod = new TH1F("hGAMod","Good Anodes per Module",260,239.5,499.5);
178 fOutput->Add(fGoodAnMod);
179
180 // -- Ladder histos
181
182 fRecPLadLay3 = new TH1F("hRPLad3","Rec Points per Ladder Layer 3",14,-0.5,13.5);
183 fRecPLadLay3->Sumw2();
184 fRecPLadLay3->SetMinimum(0);
185 fOutput->Add(fRecPLadLay3);
186
187 fRecPLadLay4 = new TH1F("hRPLad4","Rec Points per Ladder Layer 4",22,-0.5,21.5);
188 fRecPLadLay4->Sumw2();
189 fRecPLadLay4->SetMinimum(0);
190 fOutput->Add(fRecPLadLay4);
191
192 fTrackPLadLay3 = new TH1F("hTPLad3","Track Points per Ladder Layer 3",14,-0.5,13.5);
193 fTrackPLadLay3->Sumw2();
194 fTrackPLadLay3->SetMinimum(0);
195 fOutput->Add(fTrackPLadLay3);
196
197 fTrackPLadLay4 = new TH1F("hTPLad4","Track Points per Ladder Layer 4",22,-0.5,21.5);
198 fTrackPLadLay4->Sumw2();
199 fTrackPLadLay4->SetMinimum(0);
200 fOutput->Add(fTrackPLadLay4);
201
202 fGoodAnLadLay3 = new TH1F("hGALad3","Good Anodes per Ladder Layer 3",14,-0.5,13.5);
203 fOutput->Add(fGoodAnLadLay3);
204
205 fGoodAnLadLay4 = new TH1F("hGALad4","Good Anodes per Ladder Layer 4",22,-0.5,21.5);
206 fOutput->Add(fGoodAnLadLay4);
207
c87da6ba 208 fDriftTimeRP=new TH1F("hDrTimRP","Drift Time from Rec Points (ns)",640,0.,6400.);
9bf660ff 209 fDriftTimeRP->Sumw2();
210 fDriftTimeRP->SetMinimum(0.);
211 fOutput->Add(fDriftTimeRP);
212
c87da6ba 213 fDriftTimeTPAll=new TH1F("hDrTimTPAll","Drift Time from Track Points (ns)",640,0.,6400.);
214 fDriftTimeTPAll->Sumw2();
215 fDriftTimeTPAll->SetMinimum(0.);
216 fOutput->Add(fDriftTimeTPAll);
217
218 fDriftTimeTPNoExtra=new TH1F("hDrTimTPNoExtra","Drift Time from Track Points (ns)",640,0.,6400.);
219 fDriftTimeTPNoExtra->Sumw2();
220 fDriftTimeTPNoExtra->SetMinimum(0.);
221 fOutput->Add(fDriftTimeTPNoExtra);
222
223 fDriftTimeTPExtra=new TH1F("hDrTimTPExtra","Drift Time from Track Points (ns)",640,0.,6400.);
224 fDriftTimeTPExtra->Sumw2();
225 fDriftTimeTPExtra->SetMinimum(0.);
226 fOutput->Add(fDriftTimeTPExtra);
9bf660ff 227
228 for(Int_t it=0; it<8; it++){
229 fSignalTime[it]=new TH1F(Form("hSigTimeInt%d",it),Form("hSigTimeInt%d",it),100,0.,300.);
230 fSignalTime[it]->Sumw2();
231 fSignalTime[it]->SetMinimum(0);
232 fOutput->Add(fSignalTime[it]);
233 }
234}
235//______________________________________________________________________________
236void AliAnalysisTaskSDDRP::UserExec(Option_t *)
237{
238 //
70b1033a 239 fESD = (AliESDEvent*) (InputEvent());
240 fESDfriend = static_cast<AliESDfriend*>(fESD->FindListObject("AliESDfriend"));
9bf660ff 241
c87da6ba 242
243 AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
244
245 if(!esdH) {
246 printf("ERROR: Could not get ESDInputHandler\n");
247 return;
248 } else {
249 fESD = esdH->GetEvent();
250 }
9bf660ff 251 if(!fESD) {
252 printf("AliAnalysisTaskSDDRP::Exec(): bad ESD\n");
253 return;
254 }
9bf660ff 255
256
257 if(!fESDfriend) {
258 printf("AliAnalysisTaskSDDRP::Exec(): bad ESDfriend\n");
259 return;
c87da6ba 260 }
261
262
9bf660ff 263 PostData(1, fOutput);
264 fESD->SetESDfriend(fESDfriend);
265
266 if (!fInitialised) {
267 fInitialised = 1;
268
269 AliCDBManager* man = AliCDBManager::Instance();
270 man->SetDefaultStorage("raw://");
271 man->SetRun(fESD->GetRunNumber());
272
273
274 AliCDBEntry* eR=(AliCDBEntry*)man->Get("ITS/Calib/RespSDD");
275 fResp=(AliITSresponseSDD*)eR->GetObject();
276
277 AliCDBEntry* eC=(AliCDBEntry*)man->Get("ITS/Calib/CalibSDD");
278 TObjArray* calsdd=(TObjArray*)eC->GetObject();
279 Int_t countGood3[14];
280 Int_t countGood4[22];
281 Int_t countGoodMod[260];
282 for(Int_t ilad=0;ilad<14;ilad++) countGood3[ilad]=0;
283 for(Int_t ilad=0;ilad<22;ilad++) countGood4[ilad]=0;
284 for(Int_t imod=0;imod<260;imod++) countGoodMod[imod]=0;
285 for(Int_t imod=0;imod<260;imod++){
286 AliITSCalibrationSDD* cal=(AliITSCalibrationSDD*)calsdd->At(imod);
287 if(cal->IsBad()) continue;
288 Int_t modId=imod+AliITSgeomTGeo::GetModuleIndex(3,1,1);
289 Int_t lay,lad,det;
290 AliITSgeomTGeo::GetModuleId(modId,lay,lad,det);
70b1033a 291 if(fExcludeBadMod && !CheckModule(lay,lad,det)) continue;
9bf660ff 292 for(Int_t ian=0; ian<512; ian++){
293 if(cal->IsBadChannel(ian)) continue;
294 countGoodMod[imod]++;
295 if(lay==3) countGood3[lad-1]++;
296 else if(lay==4) countGood4[lad-1]++;
297 }
298 }
299 for(Int_t imod=0;imod<260;imod++) fGoodAnMod->SetBinContent(imod+1,countGoodMod[imod]);
300 fGoodAnMod->SetMinimum(0);
301 for(Int_t ilad=0;ilad<14;ilad++) fGoodAnLadLay3->SetBinContent(ilad+1,countGood3[ilad]);
302 fGoodAnLadLay3->SetMinimum(0);
303 for(Int_t ilad=0;ilad<22;ilad++) fGoodAnLadLay4->SetBinContent(ilad+1,countGood4[ilad]);
304 fGoodAnLadLay4->SetMinimum(0);
305 }
306
307
308 fHistNEvents->Fill(0);
309 if(fOnlyCINT1BTrig){
310 if(!fESD->IsTriggerClassFired("CINT1B-ABCE-NOPF-ALL")) return;
311 fHistNEvents->Fill(1);
312 }
313 const AliTrackPointArray *array = 0;
314 Int_t ntracks = fESD->GetNumberOfTracks();
315 for (Int_t itrack=0; itrack < ntracks; itrack++) {
316 AliESDtrack * track = fESD->GetTrack(itrack);
317 if (!track) continue;
c87da6ba 318
319 Bool_t accept=kTRUE;
320 if(fUseITSsaTracks){
321 if(track->GetNcls(1)>0) accept=kFALSE;
322 }else{
323 if(track->GetNcls(1)<fMinTPCpts) accept=kFALSE;
324 }
325 if(track->GetNcls(0) < fMinITSpts) accept=kFALSE;
326 Int_t trstatus=track->GetStatus();
327 if(!(trstatus&AliESDtrack::kITSrefit)) accept=kFALSE;
328 if(!accept) continue;
329
9bf660ff 330 Double_t dedx[4];
331 track->GetITSdEdxSamples(dedx);
c87da6ba 332 Float_t mom=track->P();
333 Int_t iMod,status;
334 Float_t xloc,zloc;
335 for(Int_t iLay=2; iLay<=3; iLay++){
336 Bool_t ok=track->GetITSModuleIndexInfo(iLay,iMod,status,xloc,zloc);
337 if(ok){
338 iMod+=240;
339 fHistAllPMod->Fill(iMod);
340 if(status==1){
341 fHistGoodPMod->Fill(iMod);
342 if(mom>fMinPfordEdx) fHistdEdxVsMod->Fill(iMod,dedx[iLay-2]);
343 if(iLay==2) fHistdEdxL3VsP->Fill(mom,dedx[0]);
344 else fHistdEdxL4VsP->Fill(mom,dedx[1]);
345 }
346 else if(status==2) fHistBadRegMod->Fill(iMod);
347 else if(status==3) fHistSkippedMod->Fill(iMod);
348 else if(status==4) fHistOutAccMod->Fill(iMod);
349 else if(status==5) fHistMissPMod->Fill(iMod);
350 else if(status==6) fHistNoRefitMod->Fill(iMod);
351 }
352 }
353
354
9bf660ff 355 array = track->GetTrackPointArray();
356 if(!array) continue;
357 for(Int_t ipt=0; ipt<array->GetNPoints(); ipt++) {
358 AliTrackPoint point;
359 Int_t modId;
360 array->GetPoint(point,ipt);
361 Int_t volId = point.GetVolumeID();
362 Int_t layerId = AliGeomManager::VolUIDToLayer(volId,modId);
363 if(layerId<3 || layerId>4) continue;
364 modId+=AliITSgeomTGeo::GetModuleIndex(layerId,1,1);
365 Int_t lay,lad,det;
366 AliITSgeomTGeo::GetModuleId(modId,lay,lad,det);
70b1033a 367 if(fExcludeBadMod && !CheckModule(lay,lad,det)) continue;
9bf660ff 368 fTrackPMod->Fill(modId);
c87da6ba 369 fDriftTimeTPAll->Fill(point.GetDriftTime());
370 if(point.IsExtra()) fDriftTimeTPExtra->Fill(point.GetDriftTime());
371 else fDriftTimeTPNoExtra->Fill(point.GetDriftTime());
9bf660ff 372 Float_t dtime=point.GetDriftTime()-fResp->GetTimeZero(modId);
373 Int_t theBin=int(dtime/6500.*8.);
374 if(layerId==3){
375 fTrackPLadLay3->Fill(lad-1);
376 if(dedx[0]>0. && track->P()>fMinPfordEdx) fSignalTime[theBin]->Fill(dedx[0]);
377 }
378 if(layerId==4){
379 fTrackPLadLay4->Fill(lad-1);
c87da6ba 380 if(dedx[1]>0.&& track->P()>fMinPfordEdx) fSignalTime[theBin]->Fill(dedx[1]);
9bf660ff 381 }
382 }
383 }
384
385 AliESDInputHandlerRP *hand = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
386 TTree* tR = hand->GetTreeR("ITS");
c87da6ba 387 if (tR){
388 TClonesArray *ITSrec= new TClonesArray("AliITSRecPoint");
389 TBranch *branch =tR->GetBranch("ITSRecPoints");
390 branch->SetAddress(&ITSrec);
391 for (Int_t modId=240; modId<500; modId++){
392 Int_t lay,lad,det;
393 AliITSgeomTGeo::GetModuleId(modId,lay,lad,det);
70b1033a 394 if(fExcludeBadMod && !CheckModule(lay,lad,det)) continue;
c87da6ba 395 branch->GetEvent(modId);
396 Int_t nrecp = ITSrec->GetEntries();
397 fRecPMod->Fill(modId,nrecp);
398 if(lay==3) fRecPLadLay3->Fill(lad-1,nrecp);
399 if(lay==4) fRecPLadLay4->Fill(lad-1,nrecp);
400 for(Int_t irec=0;irec<nrecp;irec++) {
401 AliITSRecPoint *recp = (AliITSRecPoint*)ITSrec->At(irec);
402 fDriftTimeRP->Fill(recp->GetDriftTime());
403 }
9bf660ff 404 }
c87da6ba 405 ITSrec->Delete();
406 delete ITSrec;
9bf660ff 407 }
9bf660ff 408 PostData(1,fOutput);
409
410}
411//______________________________________________________________________________
412Bool_t AliAnalysisTaskSDDRP::CheckModule(Int_t lay, Int_t lad, Int_t det) const{
413 //
414 if(lay==4){
415 if(lad==3 && det==5) return kFALSE; // 1500 V
416 if(lad==3 && det==6) return kFALSE; // 0 V
417 if(lad==3 && det==7) return kFALSE; // 1500 V
418 if(lad==4 && det==1) return kFALSE; // 0 V
419 if(lad==4 && det==2) return kFALSE; // 1500 V
420 if(lad==7 && det==5) return kFALSE; // 0 MV
421 if(lad==9 && det==3) return kFALSE; // 1500 V
422 if(lad==9 && det==4) return kFALSE; // 0 V
423 if(lad==9 && det==5) return kFALSE; // 1500 V
424 if(lad==11 && det==6) return kFALSE; // 1500 V
425 if(lad==11 && det==7) return kFALSE; // 0 V
426 if(lad==11 && det==8) return kFALSE; // 1500 V
427 if(lad==18 && det==5) return kFALSE; // 1500 V
428 if(lad==18 && det==6) return kFALSE; // 0 V
429 if(lad==18 && det==7) return kFALSE; // 1500 V
430 if(lad==22 && det==1) return kFALSE; // 0 V
431 if(lad==22 && det==2) return kFALSE; // 1500 V
432 }
433 if(lay==3){
434 if(lad==4 && det==4) return kFALSE; // 1500 V
435 if(lad==3) return kFALSE; // swapped in geometry
436 }
437 return kTRUE;
438}
439
440//______________________________________________________________________________
441void AliAnalysisTaskSDDRP::Terminate(Option_t */*option*/)
442{
443 // Terminate analysis
444 fOutput = dynamic_cast<TList*> (GetOutputData(1));
445 if (!fOutput) {
446 printf("ERROR: fOutput not available\n");
447 return;
448 }
449 fHistNEvents= dynamic_cast<TH1F*>(fOutput->FindObject("hNEvents"));
c87da6ba 450
451 fHistAllPMod= dynamic_cast<TH1F*>(fOutput->FindObject("hAllPMod"));
452 fHistGoodPMod= dynamic_cast<TH1F*>(fOutput->FindObject("hGoodPMod"));
453 fHistBadRegMod= dynamic_cast<TH1F*>(fOutput->FindObject("hBadRegMod"));
454 fHistMissPMod= dynamic_cast<TH1F*>(fOutput->FindObject("hMissPMod"));
455 fHistSkippedMod= dynamic_cast<TH1F*>(fOutput->FindObject("hSkippedMod"));
456 fHistOutAccMod= dynamic_cast<TH1F*>(fOutput->FindObject("hOutAccMod"));
457 fHistNoRefitMod= dynamic_cast<TH1F*>(fOutput->FindObject("hNoRefitMod"));
458
459 fHistdEdxL3VsP= dynamic_cast<TH2F*>(fOutput->FindObject("hdEdxL3VsP"));
460 fHistdEdxL4VsP= dynamic_cast<TH2F*>(fOutput->FindObject("hdEdxL4VsP"));
461 fHistdEdxVsMod= dynamic_cast<TH2F*>(fOutput->FindObject("hdEdxVsMod"));
462
9bf660ff 463 fRecPMod= dynamic_cast<TH1F*>(fOutput->FindObject("hRPMod"));
464 fTrackPMod= dynamic_cast<TH1F*>(fOutput->FindObject("hTPMod"));
465 fGoodAnMod= dynamic_cast<TH1F*>(fOutput->FindObject("hGAMod"));
466
467 fRecPLadLay3= dynamic_cast<TH1F*>(fOutput->FindObject("hRPLad3"));
468 fRecPLadLay4= dynamic_cast<TH1F*>(fOutput->FindObject("hRPLad4"));
469 fTrackPLadLay3= dynamic_cast<TH1F*>(fOutput->FindObject("hTPLad3"));
470 fTrackPLadLay4= dynamic_cast<TH1F*>(fOutput->FindObject("hTPLad4"));
471 fGoodAnLadLay3= dynamic_cast<TH1F*>(fOutput->FindObject("hGALad3"));
472 fGoodAnLadLay4= dynamic_cast<TH1F*>(fOutput->FindObject("hGALad4"));
473
474 fDriftTimeRP= dynamic_cast<TH1F*>(fOutput->FindObject("hDrTimRP"));
c87da6ba 475 fDriftTimeTPAll= dynamic_cast<TH1F*>(fOutput->FindObject("hDrTimTPAll"));
476 fDriftTimeTPNoExtra= dynamic_cast<TH1F*>(fOutput->FindObject("hDrTimTPNoExtra"));
477 fDriftTimeTPExtra= dynamic_cast<TH1F*>(fOutput->FindObject("hDrTimTPExtra"));
9bf660ff 478
479 for(Int_t it=0; it<8; it++){
480 fSignalTime[it]= dynamic_cast<TH1F*>(fOutput->FindObject(Form("hSigTimeInt%d",it)));
481 }
482
483 return;
484}
485
486
487
488
489