1 //-----------------------------------------------------------------------------
3 // Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk
5 // Implementation of class AliTPCD
7 //-----------------------------------------------------------------------------
10 #include "AliTPCParam.h"
11 #include "AliTPCRF1D.h"
12 #include "AliTPCPRF2D.h"
14 #include "TClonesArray.h"
16 #include "TBranchClones.h"
18 #include "TDirectory.h"
22 // other include files follow here
26 //_____________________________________________________________
27 AliTPCD::AliTPCD(Text_t * name,
28 AliTPCParam * param, AliTPCPRF2D* prf, AliTPCRF1D* prfz)
30 //construct new object's or accept objects sent to constructor
31 //AliTPCD handle sent object and is repsonsible for
36 <img src="picts/alitpcd.gif">
41 ( (param->IsA()->InheritsFrom("AliTPCParam")==kTRUE ) ))
44 fParam= new AliTPCParam;
45 if ( (prf!=0) && (prf->IsA()->InheritsFrom("AliTPCPRF2D")==kTRUE) )
48 fPRF = new AliTPCPRF2D;
49 if ( (prfz!=0) && (prfz->IsA()->InheritsFrom("AliTPCRF1D")==kTRUE) )
52 fRF = new AliTPCRF1D(kTRUE);
53 fDigits = new TClonesArray("AliTPCdigit",5000);
59 if (fParam!=0) fParam->Delete();
60 if (fPRF!=0) fPRF->Delete();
61 if (fRF!=0) fRF->Delete();
62 if (fDigits!=0) fDigits->Delete();
66 Bool_t AliTPCD::SetTree(Int_t nevent, TDirectory *dir )
69 // Get Hits Tree header from file
70 sprintf(treeName,"TreeD%d_%s",nevent,GetName());
71 fTreeD = (TTree*)dir->Get(treeName);
72 if (fTreeD == 0) return kFALSE;
74 TBranch *b = fTreeD->GetBranch("Digits");
75 if (b==0) return kFALSE;
76 b->SetAddress(&fDigits);
81 Bool_t AliTPCD::MakeTree(Int_t nevent)
84 // Get Hits Tree header from file
85 sprintf(treeName,"TreeD%d_%s",nevent,GetName());
86 fTreeD = new TTree(treeName,treeName);
87 if (fTreeD == 0) return kFALSE;
89 TBranch *b = fTreeD->Branch("Digits",&fDigits,40000);
90 if (b==0) return kFALSE;
91 b->SetAddress(&fDigits);
98 if (fTreeD!=0) fTreeD->Fill();
105 void AliTPCD::Streamer(TBuffer &R__b)
107 // Stream an object of class AliTPCD.
108 if (R__b.IsReading()) {
109 Version_t R__v = R__b.ReadVersion(); if (R__v) { }
110 TNamed::Streamer(R__b);
113 fParam = new AliTPCParam;
117 fPRF = new AliTPCPRF2D;
121 fRF = new AliTPCRF1D;
125 fRF = new AliTPCRF1D;
132 R__b.WriteVersion(AliTPCD::IsA());
133 TNamed::Streamer(R__b);
137 if (fTreeD!=0) fTreeD->Write();