Added new creator which passes a pointer to type AliRun. Can now use either
authornilsen <nilsen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 9 Sep 2002 17:30:02 +0000 (17:30 +0000)
committernilsen <nilsen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 9 Sep 2002 17:30:02 +0000 (17:30 +0000)
gAlice or a local instance of AliRun.

ITS/AliITSreconstruction.cxx
ITS/AliITSreconstruction.h

index 88167646502e5047bd4081f696433ceada1de712..a2f68d9412108db0097b99ecc8d2bc01610bdf5d 100644 (file)
@@ -15,6 +15,9 @@
  
 /*
 $Log$
  
 /*
 $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.4  2002/05/10 22:31:30  nilsen
 Changes by Massimo Masera to allow Recpoints and Clusters to be written
 to separate files.
@@ -70,6 +73,28 @@ AliITSreconstruction::AliITSreconstruction(){
     fITS      = 0;
     fDet[0] = fDet[1] = fDet[2] = kTRUE;
     fInit     = kFALSE;
     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){
 }
 //______________________________________________________________________
 AliITSreconstruction::AliITSreconstruction(const char* filename){
@@ -88,20 +113,22 @@ AliITSreconstruction::AliITSreconstruction(const char* filename){
     fFilename = filename;
     fFile2 = 0;
     fFile = 0;
     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(filename){
        fFile = (TFile*)gROOT->GetListOfFiles()->FindObject(fFilename.Data());
        if(fFile) fFile->Close();
        fFile = new TFile(fFilename.Data(),"UPDATE");
-    if(gAlice) {
-      delete gAlice;
-      gAlice = 0;
+    if(fArp) {
+      delete fArp;
+      fArp = 0;
     }
     }
-       gAlice = (AliRun*)fFile->Get("gAlice");
-       if(!gAlice) {
+       fArp = (AliRun*)fFile->Get("gAlice");
+       if(!fArp) {
            cout << "gAlice not found on file. Aborting." << endl;
            fInit = kFALSE;
            return;
            cout << "gAlice not found on file. Aborting." << endl;
            fInit = kFALSE;
            return;
-       } // end if !gAlice
+       } // end if !fArp
     } // end if !filename.
 }
 //______________________________________________________________________
     } // end if !filename.
 }
 //______________________________________________________________________
@@ -117,7 +144,9 @@ AliITSreconstruction::~AliITSreconstruction(){
     if(fFile) fFile->Close();
     fFile     = 0;
     fITS      = 0;
     if(fFile) fFile->Close();
     fFile     = 0;
     fITS      = 0;
-    
+    if(fDfArp){
+       if(fArp) delete fArp;
+    } // end if
 }
 //______________________________________________________________________
 Bool_t AliITSreconstruction::Init(){
 }
 //______________________________________________________________________
 Bool_t AliITSreconstruction::Init(){
@@ -129,7 +158,7 @@ Bool_t AliITSreconstruction::Init(){
     // Return:
     //    kTRUE if no errors initilizing this class occurse else kFALSE
     Int_t nparticles;
     // 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;
     if(!fITS){
        cout << "ITS not found aborting. fITS=" << fITS << endl;
        fInit = kFALSE;
@@ -144,9 +173,9 @@ Bool_t AliITSreconstruction::Init(){
 
     fDet[0] = fDet[1] = fDet[2] = kTRUE;
     fEnt0 = 0;
 
     fDet[0] = fDet[1] = fDet[2] = kTRUE;
     fEnt0 = 0;
-    fEnt  = gAlice->GetEventsPerRun();
+    fEnt  = fArp->GetEventsPerRun();
     fITS->MakeTreeC();
     fITS->MakeTreeC();
-    nparticles = gAlice->GetEvent(fEnt0);
+    nparticles = fArp->GetEvent(fEnt0);
     
     // finished init.
     fInit = InitRec();
     
     // finished init.
     fInit = InitRec();
@@ -233,14 +262,14 @@ void AliITSreconstruction::Exec(const Option_t *opt){
     TDirectory *curr = gDirectory;
     if(fFile2)fFile2->cd();
     for(evnt=0;evnt<fEnt;evnt++){
     TDirectory *curr = gDirectory;
     if(fFile2)fFile2->cd();
     for(evnt=0;evnt<fEnt;evnt++){
-      nparticles = gAlice->GetEvent(evnt);
-      gAlice->SetEvent(evnt);
-      if(!gAlice->TreeR()){
+      nparticles = fArp->GetEvent(evnt);
+      fArp->SetEvent(evnt);
+      if(!fArp->TreeR()){
         if(fFile2){
         if(fFile2){
-          gAlice->MakeTree("R",fFile2);
+          fArp->MakeTree("R",fFile2);
         }
         else {
         }
         else {
-          gAlice->MakeTree("R");
+          fArp->MakeTree("R");
         }
       }
       fITS->MakeBranch("R");
         }
       }
       fITS->MakeBranch("R");
@@ -253,7 +282,7 @@ void AliITSreconstruction::Exec(const Option_t *opt){
 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.
 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 = gAlice->InitTreeFile("R",filename);
+  fFile2 = fArp->InitTreeFile("R",filename);
 }
 
 
 }
 
 
index 7bfc19a23cb972b10e41d505cef432ffff0b6e5c..74e0f74a3654e3114853917a413cb6ba770570ed 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <TTask.h>
 
 
 #include <TTask.h>
 
+class AliRun;
 class TString;
 class AliITS;
 
 class TString;
 class AliITS;
 
@@ -16,6 +17,7 @@ class AliITSreconstruction : public TTask{
  public:
     AliITSreconstruction(); // default constructor
     AliITSreconstruction(const char *filename); // standard constructor
  public:
     AliITSreconstruction(); // default constructor
     AliITSreconstruction(const char *filename); // standard constructor
+    AliITSreconstruction(AliRun *ar); // standard constructor
     virtual ~AliITSreconstruction();//Destructor
     virtual Bool_t Init();
     virtual void Exec(const Option_t *opt="ALL");
     virtual ~AliITSreconstruction();//Destructor
     virtual Bool_t Init();
     virtual void Exec(const Option_t *opt="ALL");
@@ -33,6 +35,8 @@ class AliITSreconstruction : public TTask{
     Int_t   fEnt;      //! Number of events to processevent index.
     Int_t   fEnt0;     //! first event to process, default 0.
     AliITS  *fITS;     //! Local pointer to ITS class.
     Int_t   fEnt;      //! Number of events to processevent index.
     Int_t   fEnt0;     //! first event to process, default 0.
     AliITS  *fITS;     //! Local pointer to ITS class.
+    AliRun  *fArp;     //! Local pointer to AliRun or gAlice
+    Bool_t  fDfArp;    //! if True then delete fArp in destructor.
 
     ClassDef(AliITSreconstruction,2) // Task to Reconstruct ITS from Digits.
 
 
     ClassDef(AliITSreconstruction,2) // Task to Reconstruct ITS from Digits.