/*
$Log$
+Revision 1.5 2002/05/13 14:27:57 hristov
+TreeC created once per event (M.Masera)
+
+Revision 1.4 2002/05/10 22:31:30 nilsen
+Changes by Massimo Masera to allow Recpoints and Clusters to be written
+to separate files.
+
+Revision 1.3 2002/02/06 13:52:27 barbera
+gAlice deletion corrected (from M. Masera)
+
+Revision 1.2 2002/01/31 18:52:09 nilsen
+Minor change to allow the use of files that are already open. grun.C macro
+that also does ITS digitizationa and Reconstruction all in one go.
+
Revision 1.1 2002/01/30 22:20:22 nilsen
New TTask based method to do Digits To clusters. Works with files of multiple
events in the file. Macro added to show how to use. Also the changes made
fFilename = "";
fFile = 0;
+ fFile2 = 0;
fITS = 0;
fDet[0] = fDet[1] = fDet[2] = kTRUE;
fInit = kFALSE;
+ fArp = 0;
+ fDfArp = kFALSE;
+}
+//______________________________________________________________________
+AliITSreconstruction::AliITSreconstruction(AliRun *ar){
+ // Standard constructor.
+ // Inputs:
+ // AliRun *ar Pointer to an existing AliRun object. Assumed that
+ // this AliRun object will not be deleted by this distructor.
+ // Outputs:
+ // none.
+ // Return:
+ // A standardly constructed AliITSreconstruction class.
+
+ fFilename = "";
+ fFile = 0;
+ fFile2 = 0;
+ fITS = 0;
+ fDet[0] = fDet[1] = fDet[2] = kTRUE;
+ fInit = kFALSE;
+ fDfArp = kFALSE;
+ fArp = ar;
}
//______________________________________________________________________
AliITSreconstruction::AliITSreconstruction(const char* filename){
// A standardly constructed AliITSreconstruction class.
fFilename = filename;
-
+ fFile2 = 0;
+ fFile = 0;
+ fArp = 0;
+ fDfArp = kTRUE;
if(filename){
fFile = (TFile*)gROOT->GetListOfFiles()->FindObject(fFilename.Data());
if(fFile) fFile->Close();
fFile = new TFile(fFilename.Data(),"UPDATE");
- //
- if(gAlice) delete gAlice;
- gAlice = (AliRun*)fFile->Get("gAlice");
- if(!gAlice) {
+ if(fArp) {
+ delete fArp;
+ fArp = 0;
+ }
+ fArp = (AliRun*)fFile->Get("gAlice");
+ if(!fArp) {
cout << "gAlice not found on file. Aborting." << endl;
fInit = kFALSE;
return;
- } // end if !gAlice
+ } // end if !fArp
} // end if !filename.
-
- Init();
}
//______________________________________________________________________
AliITSreconstruction::~AliITSreconstruction(){
if(fFile) fFile->Close();
fFile = 0;
fITS = 0;
-
+ if(fDfArp){
+ if(fArp) delete fArp;
+ } // end if
}
//______________________________________________________________________
Bool_t AliITSreconstruction::Init(){
// Return:
// kTRUE if no errors initilizing this class occurse else kFALSE
Int_t nparticles;
-
- fITS = (AliITS*) gAlice->GetDetector("ITS");
+ fITS = (AliITS*) fArp->GetDetector("ITS");
if(!fITS){
cout << "ITS not found aborting. fITS=" << fITS << endl;
fInit = kFALSE;
fDet[0] = fDet[1] = fDet[2] = kTRUE;
fEnt0 = 0;
- fEnt = gAlice->GetEventsPerRun();
+ fEnt = fArp->GetEventsPerRun();
fITS->MakeTreeC();
- nparticles = gAlice->GetEvent(fEnt0);
+ nparticles = fArp->GetEvent(fEnt0);
// finished init.
fInit = InitRec();
cout << "Initilization Failed, Can't run Exec." << endl;
return;
} // end if !fInit
+ TDirectory *curr = gDirectory;
+ if(fFile2)fFile2->cd();
for(evnt=0;evnt<fEnt;evnt++){
- nparticles = gAlice->GetEvent(evnt);
- gAlice->SetEvent(evnt);
- if(!gAlice->TreeR()) gAlice->MakeTree("R");
- fITS->MakeBranch("R");
- fITS->DigitsToRecPoints(evnt,0,lopt);
+ nparticles = fArp->GetEvent(evnt);
+ fArp->SetEvent(evnt);
+ if(!fArp->TreeR()){
+ if(fFile2){
+ fArp->MakeTree("R",fFile2);
+ }
+ else {
+ fArp->MakeTree("R");
+ }
+ }
+ fITS->MakeBranch("R");
+ fITS->MakeTreeC();
+ fITS->DigitsToRecPoints(evnt,0,lopt);
} // end for evnt
+ curr->cd();
}
+//______________________________________________________________________
+void AliITSreconstruction::SetOutputFile(TString filename){
+ // Set a file name for recpoints. Used only if this file is not the file
+ // containing digits. This obj is deleted by AliRun.
+ fFile2 = fArp->InitTreeFile("R",filename);
+}
+
+
+
+
+