Add all TNodes to the fNodes list
[u/mrichter/AliRoot.git] / MUON / AliMUON.cxx
index 2ce4bf4368043236256b6e42950452e678318dac..0b611c92d51509086a15067d7ce50f4d3fe6e5d2 100644 (file)
@@ -103,7 +103,7 @@ Float_t type_of_call rndm() {return gRandom->Rndm();}
 // Static variables for the pad-hit iterator routines
 static Int_t sMaxIterPad=0;
 static Int_t sCurIterPad=0;
-static TTree *TH1;
+static TTree *TrH1;
 static TTree *TK1;
 static TClonesArray *fHits2;        //Listof hits for one track only
 static TClonesArray *fClusters2;    //List of clusters for one track only
@@ -117,7 +117,6 @@ AliMUON::AliMUON()
    fClusters   = 0;
    fNclusters  = 0;
    fDchambers  = 0;
-   //   fRecClusters= 0;
    fNdch       = 0;
    fRawClusters= 0;
    fNrawch     = 0;
@@ -130,11 +129,6 @@ AliMUON::AliMUON()
    fSSigmaCut  = 0;
    fSXPrec     = 0; 
    fSYPrec     = 0;
-   /*
-   fSSigmaCut = 4.0;
-   fSXPrec    = 0.006; 
-   fSYPrec    = 0.12;
-   */
 }
  
 //___________________________________________
@@ -192,11 +186,7 @@ AliMUON::AliMUON(const char *name, const char *title)
    fSSigmaCut = 1.0;
    fSXPrec    = 0.01; 
    fSYPrec    = 0.144;
-   /*
-   fSSigmaCut = 4.0;
-   fSXPrec    = 0.006; 
-   fSYPrec    = 0.12;
-   */
+
    SetMarkerColor(kRed);
 }
  
@@ -206,24 +196,25 @@ AliMUON::~AliMUON()
 
     printf("Calling AliMUON destructor !!!\n");
     
+  Int_t i;
   fIshunt  = 0;
   delete fHits;
   delete fClusters;
   delete fTreeC;
 
-  for (Int_t i=0;i<10;i++) {
+  for (i=0;i<10;i++) {
       delete (*fDchambers)[i];
       fNdch[i]=0;
   }
   delete fDchambers;
 
-  for (Int_t i=0;i<10;i++) {
+  for (i=0;i<10;i++) {
       delete (*fRawClusters)[i];
       fNrawch[i]=0;
   }
   delete fRawClusters;
 
-  for (Int_t i=0;i<10;i++) {
+  for (i=0;i<10;i++) {
       delete (*fCathCorrel)[i];
       fNcorch[i]=0;
   }
@@ -274,19 +265,6 @@ void AliMUON::AddCathCorrel(Int_t id, Int_t *idx, Float_t *x, Float_t *y)
     new(lcorrel[fNcorch[id]++]) AliMUONcorrelation(idx,x,y);
 }
 
-
-//_____________________________________________________________________________
-void AliMUON::AddRecCluster(Int_t iCh, Int_t iCat, AliMUONRecCluster* Cluster)
-{
-    //
-    // Add a MUON reconstructed cluster to the list
-    //
-  /*
-    TObjArray* ClusterList = RecClusters(iCh,iCat);
-    ClusterList->Add(Cluster);
-  */
-}
-
 //___________________________________________
 void AliMUON::BuildGeometry()
 {
@@ -346,23 +324,28 @@ void AliMUON::BuildGeometry()
            sprintf(NameNode,"MUON%d",200+id);
            Node = new TNode(NameNode,"Sens. Region Node",NameSense,0,0,0,"");
            Node->SetLineColor(kColorMUON);
+           fNodes->Add(Node);
            Node->cd();
            dr=dx+rmin;
            sprintf(NameNode,"MUON%d",300+id);
            NodeF = new TNode(NameNode,"Frame0",FMUON,dr, 0, 0,rot000,"");
            NodeF->SetLineColor(kColorMUON);
+           fNodes->Add(NodeF);
            Node->cd();
            sprintf(NameNode,"MUON%d",400+id);
            NodeF = new TNode(NameNode,"Frame1",FMUON,0 ,dr,0,rot090,"");
            NodeF->SetLineColor(kColorMUON);
+           fNodes->Add(NodeF);
            Node->cd();
            sprintf(NameNode,"MUON%d",500+id);
            NodeF = new TNode(NameNode,"Frame2",FMUON,-dr,0,0,rot180,"");
            NodeF->SetLineColor(kColorMUON);
+           fNodes->Add(NodeF);
            Node  ->cd();
            sprintf(NameNode,"MUON%d",600+id);   
            NodeF = new TNode(NameNode,"Frame3",FMUON,0,-dr,0,rot270,"");
            NodeF->SetLineColor(kColorMUON);
+           fNodes->Add(NodeF);
        }
     }
 }
@@ -402,7 +385,7 @@ void AliMUON::MakeBranch(Option_t* option)
       }        
   }
 
-  printf("Make Branch - TreeR address %p\n",gAlice->TreeR());
+  //printf("Make Branch - TreeR address %p\n",gAlice->TreeR());
 
 // one branch for raw clusters per chamber
   for (i=0; i<10 ;i++) {
@@ -414,20 +397,6 @@ void AliMUON::MakeBranch(Option_t* option)
       }        
   }
 
-// Emmanuel's stuff - one branch for rec clusters
-  /*
-  for (i=0; i<20; i++) {
-      sprintf(branchname,"%sRecClus%d",GetName(),i+1);
-      if (fRecClusters   && gAlice->TreeD()) {
-         gAlice->TreeR()
-             ->Branch(branchname,"TObjArray", 
-                      &((*fRecClusters)[i]), buffersize,0);
-         printf("Making Branch %s for clusters in chamber %d\n",
-                branchname,i+1);
-      }
-  }
-  */
-
 }
 
 //___________________________________________
@@ -471,18 +440,6 @@ void AliMUON::SetTreeAddress()
       }
   }
 
-  // Emmanuel's stuff
-  /*
-  if (treeR) {
-      for (int i=0; i<20; i++) {
-         sprintf(branchname,"%sRecClus%d",GetName(),i+1);
-         if (fRecClusters) {
-             branch = treeR->GetBranch(branchname);
-             if (branch) branch->SetAddress(&((*fRecClusters)[i]));
-         }
-      }
-  }
-  */
 }
 //___________________________________________
 void AliMUON::ResetHits()
@@ -528,18 +485,6 @@ void AliMUON::ResetCorrelation()
     }
 }
 
-//____________________________________________
-void AliMUON::ResetRecClusters()
-{
-    //
-    // Reset the rec clusters
-    //
-  /*
-    for ( int i=0;i<20;i++ ) {
-       if ((*fRecClusters)[i])   (*fRecClusters)[i]->Clear();
-    }
-  */
-}
 //___________________________________________
 
 void AliMUON::SetPADSIZ(Int_t id, Int_t isec, Float_t p1, Float_t p2)
@@ -639,6 +584,7 @@ void   AliMUON::SetNsec(Int_t id, Int_t nsec)
 void AliMUON::StepManager()
 {
     printf("Dummy version of muon step -- it should never happen!!\n");
+    /*
     const Float_t kRaddeg = 180/TMath::Pi();
     AliMC* pMC = AliMC::GetMC();
     Int_t nsec, ipart;
@@ -651,7 +597,7 @@ void AliMUON::StepManager()
            if((pMC->TrackPid()==443 || pMC->TrackPid()==553) && !strcmp(proc,"DCAY")) {
                //
                // Check angular acceptance
-               //* --- and have muons from resonance decays in the wanted window --- 
+               // --- and have muons from resonance decays in the wanted window --- 
                if(nsec != 2) {
                    printf(" AliMUON::StepManager: Strange resonance Decay into %d particles\n",nsec);
                    pMC->StopEvent();
@@ -659,7 +605,7 @@ void AliMUON::StepManager()
                    pMC->GetSecondary(0,ipart,x,p);
                    pt  = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]);
                    th0 = TMath::ATan2(pt,p[2])*kRaddeg;
-                   pMC->GetSecondary(1,ipart,x,p);
+                   pMC->GetSecondary(1,ipart,x,p);
                    pt  = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]);
                    th2 = TMath::ATan2(pt,p[2])*kRaddeg;
                    if(!(fAccMin < th0 && th0 < fAccMax) ||
@@ -669,6 +615,7 @@ void AliMUON::StepManager()
            }
        }
     }
+    */
 }
 
 void AliMUON::MakePadHits(Float_t xhit,Float_t yhit,Float_t eloss, Int_t idvol)
@@ -717,13 +664,13 @@ void AliMUON::MakePadHits(Float_t xhit,Float_t yhit,Float_t eloss, Int_t idvol)
 //    printf("\n %d new clusters added", ic);
 }
 
-void AliMUON::Digitise(Int_t nev,Int_t bgr_ev,Option_t *option,Option_t *opt,Text_t *filename)
+void AliMUON::Digitise(Int_t nev,Int_t bgr_ev,Option_t *option, Option_t *,Text_t *filename)
 {
     // keep galice.root for signal and name differently the file for 
     // background when add! otherwise the track info for signal will be lost !
   
-    static Bool_t first=true;
-//    static TTree *TH1;
+    static Bool_t first=kTRUE;
+//    static TTree *TrH1;
     static TFile *File;
     char *Add = strstr(option,"Add");
     //char *listoftracks = strstr(opt,"listoftracks");
@@ -751,37 +698,37 @@ void AliMUON::Digitise(Int_t nev,Int_t bgr_ev,Option_t *option,Option_t *opt,Tex
            fHits2     = new TClonesArray("AliMUONhit",1000  );
            fClusters2 = new TClonesArray("AliMUONcluster",10000);
        }           
-       first=false;
+       first=kFALSE;
        File->cd();
        //File->ls();
        // Get Hits Tree header from file
        if(fHits2) fHits2->Clear();
        if(fClusters2) fClusters2->Clear();
-       if(TH1) delete TH1;
-       TH1=0;
+       if(TrH1) delete TrH1;
+       TrH1=0;
        
        char treeName[20];
        sprintf(treeName,"TreeH%d",bgr_ev);
-       TH1 = (TTree*)gDirectory->Get(treeName);
-        //printf("TH1 %p of treename %s for event %d \n",TH1,treeName,bgr_ev);
+       TrH1 = (TTree*)gDirectory->Get(treeName);
+        //printf("TrH1 %p of treename %s for event %d \n",TrH1,treeName,bgr_ev);
        
-       if (!TH1) {
+       if (!TrH1) {
            printf("ERROR: cannot find Hits Tree for event:%d\n",bgr_ev);
        }
        // Set branch addresses
        TBranch *branch;
        char branchname[20];
        sprintf(branchname,"%s",GetName());
-       if (TH1 && fHits2) {
-           branch = TH1->GetBranch(branchname);
+       if (TrH1 && fHits2) {
+           branch = TrH1->GetBranch(branchname);
            if (branch) branch->SetAddress(&fHits2);
        }
-       if (TH1 && fClusters2) {
-           branch = TH1->GetBranch("MUONCluster");
+       if (TrH1 && fClusters2) {
+           branch = TrH1->GetBranch("MUONCluster");
            if (branch) branch->SetAddress(&fClusters2);
        }
 // test
-       //Int_t ntracks1 =(Int_t)TH1->GetEntries();
+       //Int_t ntracks1 =(Int_t)TrH1->GetEntries();
        //printf("background - ntracks1 - %d\n",ntracks1);
     }
     //
@@ -790,16 +737,6 @@ void AliMUON::Digitise(Int_t nev,Int_t bgr_ev,Option_t *option,Option_t *opt,Tex
     AliMUONHitMap* hm;
     Int_t countadr=0;
     for (int icat=0; icat<2; icat++) { 
-/*
-       for (Int_t i=0; i<10; i++) {
-           if (HitMap[i]) {
-               hm=HitMap[i];
-               delete hm;
-               HitMap[i]=0;
-           }
-       }
-*/
-
        Int_t counter=0;
        for (Int_t i =0; i<10; i++) {
            iChamber=(AliMUONchamber*) (*fChambers)[i];
@@ -943,7 +880,7 @@ void AliMUON::Digitise(Int_t nev,Int_t bgr_ev,Option_t *option,Option_t *opt,Tex
        // open the file with background
        
        if (Add ) {
-           ntracks =(Int_t)TH1->GetEntries();
+           ntracks =(Int_t)TrH1->GetEntries();
            //printf("background - icat,ntracks1  %d %d\n",icat,ntracks);
            //printf("background - Start loop over tracks \n");     
 //
@@ -954,7 +891,7 @@ void AliMUON::Digitise(Int_t nev,Int_t bgr_ev,Option_t *option,Option_t *opt,Tex
                if (fHits2)       fHits2->Clear();
                if (fClusters2)   fClusters2->Clear();
 
-               TH1->GetEvent(track);
+               TrH1->GetEvent(track);
 //
 //   Loop over hits
                AliMUONhit* mHit;
@@ -968,24 +905,23 @@ void AliMUON::Digitise(Int_t nev,Int_t bgr_ev,Option_t *option,Option_t *opt,Tex
                    Int_t rmax = (Int_t)iChamber->ROuter();
                     Float_t xbgr=mHit->fX;
                    Float_t ybgr=mHit->fY;
-                   Bool_t cond=false;
+                   Bool_t cond=kFALSE;
                    
                    for (Int_t imuon =0; imuon < nmuon[nch]; imuon++) {
                        Float_t dist= (xbgr-xhit[nch][imuon])*(xbgr-xhit[nch][imuon])
                            +(ybgr-yhit[nch][imuon])*(ybgr-yhit[nch][imuon]);
-                       if (dist<100) cond=true;
+                       if (dist<100) cond=kTRUE;
                    }
                    if (!cond) continue;
                    
 //
 // Loop over pad hits
-                   //for(int j=0;j<fClusters2->GetEntriesFast();++j)
                    for (AliMUONcluster* mPad=
                             (AliMUONcluster*)MUON->FirstPad(mHit,fClusters2);
                         mPad;
                         mPad=(AliMUONcluster*)MUON->NextPad(fClusters2))
                    {
-                       //                  mPad = (AliMUONcluster*) (*fClusters2)[j];
+
                        Int_t cathode  = mPad->fCathode;    // cathode number
                        Int_t ipx      = mPad->fPadX;       // pad number on X
                        Int_t ipy      = mPad->fPadY;       // pad number on Y
@@ -993,7 +929,7 @@ void AliMUON::Digitise(Int_t nev,Int_t bgr_ev,Option_t *option,Option_t *opt,Tex
 //                     Int_t iqpad    = mPad->fQpad;       // charge per pad
 
                        if (cathode != (icat+1)) continue;
-//                 if (!HitMap[nch]->CheckBoundary()) continue;
+                       //if (!HitMap[nch]->CheckBoundary()) continue;
                        // fill the info array
                        Float_t thex, they;
                        segmentation=iChamber->GetSegmentationModel(cathode);
@@ -1130,31 +1066,27 @@ void AliMUON::Digitise(Int_t nev,Int_t bgr_ev,Option_t *option,Option_t *opt,Tex
 
            // fill digits
            MUON->AddDigits(ich,tracks,charges,digits);
-           // delete trlist;
-//         delete address;
        }
        //cout<<"I'm out of the loops for digitisation"<<endl;
-       //      gAlice->GetEvent(nev);
        gAlice->TreeD()->Fill();
-       //TTree *TD=gAlice->TreeD();
-       /*
+       TTree *TD=gAlice->TreeD();
+
        Stat_t ndig=TD->GetEntries();
        cout<<"number of digits  "<<ndig<<endl;
        TClonesArray *fDch;
-       for (int i=0;i<10;i++) {
-           fDch= MUON->DigitsAddress(i);
+       for (int k=0;k<10;k++) {
+           fDch= MUON->DigitsAddress(k);
            int ndig=fDch->GetEntriesFast();
-           printf (" i, ndig %d %d \n",i,ndig);
+           printf (" i, ndig %d %d \n",k,ndig);
        }
-       */
+
        MUON->ResetDigits();
        list->Delete();
-       //printf("Here\n");
-       for(Int_t i=0;i<10;++i) {
-           if (HitMap[i]) {
-               hm=HitMap[i];
+       for(Int_t ii=0;ii<10;++ii) {
+           if (HitMap[ii]) {
+               hm=HitMap[ii];
                delete hm;
-               HitMap[i]=0;
+               HitMap[ii]=0;
            }
        }
        
@@ -1169,14 +1101,6 @@ void AliMUON::Digitise(Int_t nev,Int_t bgr_ev,Option_t *option,Option_t *opt,Tex
        //Int_t nadr=p_adr->GetEntriesFast();
        // printf(" \n \n nadr %d \n",nadr);
 
-       // start filling the digits
-       /*
-       for (Int_t nent=0;nent<nadr;nent++) {
-           TVector *pv=(TVector*)p_adr->At(nent);
-            pv->Delete();
-           //delete pv;
-       }
-       */
        p_adr->Clear();
        // gObjectTable->Print();
        
@@ -1259,15 +1183,13 @@ void AliMUON::FindClusters(Int_t nev,Int_t last_entry)
          AliMUONresponse* response = iChamber->GetResponseModel();
          AliMUONsegmentation*  seg = iChamber->GetSegmentationModel(icat+1);
          AliMUONClusterFinder* rec = iChamber->GetReconstructionModel();
-//       if (icat==1 && (ich==4 || ich==5)) continue;
-//       printf("icat, ich, seg - %d %d %p\n",icat,ich,seg);
+         //printf("icat, ich, seg - %d %d %p\n",icat,ich,seg);
          if (seg) {      
              rec->SetSegmentation(seg);
              rec->SetResponse(response);
              rec->SetDigits(MUONdigits);
              rec->SetChamber(ich);
              if (nev==0) rec->CalibrateCOG(); 
-//           rec->CalibrateCOG(); 
              rec->FindRawClusters();
          }  
           //printf("Finish FindRawClusters for cathode %d in chamber %d\n",icat,ich);
@@ -1280,10 +1202,10 @@ void AliMUON::FindClusters(Int_t nev,Int_t last_entry)
 
       } // for ich
       // fill the tree
-      //TTree *TR=gAlice->TreeR();
+      TTree *TR=gAlice->TreeR();
 
       gAlice->TreeR()->Fill();
-      /*
+
       Stat_t nent=TR->GetEntries();
       cout<<"number of entries  "<<nent<<endl;
       TClonesArray *fRch;
@@ -1292,7 +1214,6 @@ void AliMUON::FindClusters(Int_t nev,Int_t last_entry)
          int nraw=fRch->GetEntriesFast();
          printf (" i, nraw %d %d \n",i,nraw);
       }
-      */
       ResetRawClusters();
 
   } // for icat
@@ -1321,7 +1242,7 @@ void AliMUON::CathodeCorrelation(Int_t nev)
 // Loop on chambers and on clusters on the cathode plane with the highest
 // number of clusters
 
-    static Bool_t first=true;
+    static Bool_t first=kTRUE;
 
      AliMUONRawCluster  *mRaw1;
      AliMUONRawCluster  *mRaw2;
@@ -1346,7 +1267,7 @@ void AliMUON::CathodeCorrelation(Int_t nev)
      Float_t xrec2, yrec2;
      Float_t xd0, xdif, ydif;
      Float_t ysrch,xd,xmax,ymax;
-     Int_t ilow, iup, iraw1;
+     Int_t ilow, iup, iraw1, i;
      //
      Float_t xarray[50];
      Float_t xdarray[50];
@@ -1356,14 +1277,14 @@ void AliMUON::CathodeCorrelation(Int_t nev)
 
      // Int_t nraw[2], entry,cathode;
 
-     for (int i=0;i<50;i++) {
+     for (i=0;i<50;i++) {
          xdarray[i]=1100.;
          xarray[i]=0.;
          yarray[i]=0.;
          qarray[i]=0.;
          idx2[i]=-1;
      }
-     for (int i=0;i<4;i++) {
+     for (i=0;i<4;i++) {
           idx[i]=-1;
           xc2[i]=0.;
           yc2[i]=0.;
@@ -1508,17 +1429,17 @@ void AliMUON::CathodeCorrelation(Int_t nev)
                 //if (idx[0] <0)  printf("iraw1 imax idx2[0] idx[0] %d %d %d %d\n",iraw1,imax,idx2[0],idx[0]);
                  AddCathCorrel(ich,idx,xc2,yc2);
                 // reset
-                 for (int i=0;i<counter;i++) {
-                    xdarray[i]=1100.;
-                    xarray[i]=0.;
-                    yarray[i]=0.;
-                    qarray[i]=0.;
-                    idx2[i]=-1;
+                 for (Int_t ii=0;ii<counter;ii++) {
+                    xdarray[ii]=1100.;
+                    xarray[ii]=0.;
+                    yarray[ii]=0.;
+                    qarray[ii]=0.;
+                    idx2[ii]=-1;
                 }
-                 for (int i=0;i<3;i++) {
-                    idx[i]=-1;
-                    xc2[i]=0.;
-                    yc2[i]=0.;
+                 for (Int_t iii=0;iii<3;iii++) {
+                    idx[iii]=-1;
+                    xc2[iii]=0.;
+                    yc2[iii]=0.;
                 }
             } // iraw1
         }
@@ -1532,7 +1453,7 @@ void AliMUON::CathodeCorrelation(Int_t nev)
 // 
      if (first) {
          MakeTreeC("C");
-         first=false;
+         first=kFALSE;
      }
      TTree *TC=TreeC();
      TC->Fill();
@@ -1542,10 +1463,10 @@ void AliMUON::CathodeCorrelation(Int_t nev)
      static Int_t countev=0;
      Int_t countch=0;
 
-     for (int i=0;i<10;i++) {
-          fCch= CathCorrelAddress(i);
+     for (Int_t ii=0;ii<10;ii++) {
+          fCch= CathCorrelAddress(ii);
           Int_t ncor=fCch->GetEntriesFast();
-          printf (" i, ncor %d %d \n",i,ncor);
+          printf (" ii, ncor %d %d \n",ii,ncor);
            if (ncor>=2) countch++;
      }
 
@@ -1646,7 +1567,6 @@ void AliMUON::Streamer(TBuffer &R__b)
       R__b.ReadArray(fNdch);
       R__b.ReadArray(fNrawch);
       R__b.ReadArray(fNcorch);
-      //      R__b >> fRecClusters;
       //
       R__b >> fAccCut;
       R__b >> fAccMin;
@@ -1693,7 +1613,6 @@ void AliMUON::Streamer(TBuffer &R__b)
       R__b.WriteArray(fNdch, 10);
       R__b.WriteArray(fNrawch, 10);
       R__b.WriteArray(fNcorch, 10);
-      //      R__b << fRecClusters;
       //
       R__b << fAccCut;
       R__b << fAccMin;
@@ -1707,12 +1626,6 @@ void AliMUON::Streamer(TBuffer &R__b)
       //
       R__b << fChambers;
 //  Stream chamber related information
-      /*
-      for (Int_t i =0; i<20; i++) {
-         clustaddress=(TObjArray*) (*fRecClusters)[i];
-         clustaddress->Streamer(R__b);
-      }
-      */
       for (Int_t i =0; i<10; i++) {
          iChamber=(AliMUONchamber*) (*fChambers)[i];
          iChamber->Streamer(R__b);
@@ -1804,7 +1717,7 @@ void AliMUON::Reconst(Int_t &ifit, Int_t &idebug, Int_t bgd_ev, Int_t &nev, Int_
   //
   // open kine and hits tree of background file for reconstruction of geant hits 
   // call tracking fortran program
-  static Bool_t first=true;
+  static Bool_t first=kTRUE;
   static TFile *File;
   char *Add = strstr(option,"Add");
   
@@ -1816,31 +1729,31 @@ void AliMUON::Reconst(Int_t &ifit, Int_t &idebug, Int_t bgd_ev, Int_t &nev, Int_
       cout<<"I have opened "<<fFileName<<" file "<<endl;
       fHits2     = new TClonesArray("AliMUONhit",1000  );
       fParticles2 = new TClonesArray("GParticle",1000);
-      first=false;
+      first=kFALSE;
     }
     File->cd();
     if(fHits2) fHits2->Clear();
     if(fParticles2) fParticles2->Clear();
-    if(TH1) delete TH1;
-    TH1=0;
+    if(TrH1) delete TrH1;
+    TrH1=0;
     if(TK1) delete TK1;
     TK1=0;
     // Get Hits Tree header from file
     char treeName[20];
     sprintf(treeName,"TreeH%d",bgd_ev);
-    TH1 = (TTree*)gDirectory->Get(treeName);
-    if (!TH1) {
+    TrH1 = (TTree*)gDirectory->Get(treeName);
+    if (!TrH1) {
       printf("ERROR: cannot find Hits Tree for event:%d\n",bgd_ev);
     }
     // set branch addresses
     TBranch *branch;
     char branchname[30];
     sprintf(branchname,"%s",GetName());
-    if (TH1 && fHits2) {
-      branch = TH1->GetBranch(branchname);
+    if (TrH1 && fHits2) {
+      branch = TrH1->GetBranch(branchname);
       if (branch) branch->SetAddress(&fHits2);
     }
-    TH1->GetEntries();
+    TrH1->GetEntries();
     // get the Kine tree
     sprintf(treeName,"TreeK%d",bgd_ev);
     TK1 = (TTree*)gDirectory->Get(treeName);
@@ -1865,7 +1778,7 @@ void AliMUON::Reconst(Int_t &ifit, Int_t &idebug, Int_t bgd_ev, Int_t &nev, Int_
 }
 
 
-void AliMUON::Init(Double_t &seff, Double_t &sb0, Double_t &sbl3)
+void AliMUON::InitTracking(Double_t &seff, Double_t &sb0, Double_t &sbl3)
 {
   //
   // introduce in fortran program somme parameters and cuts for tracking 
@@ -1885,14 +1798,14 @@ void AliMUON::FinishEvent()
     file1->cd();
 }
 
-void AliMUON::Close()
+void AliMUON::CloseTracking()
 {
   //
   // write histos and ntuple to "reconst.root" file
     reco_term();
 }
 
-void chfill(Int_t &id, Float_t &x, Float_t &y, Float_t &w)
+void chfill(Int_t &id, Float_t &x, Float_t &, Float_t &)
 {
   //
   // fill histo like hfill in fortran
@@ -2357,18 +2270,12 @@ void trackf_read_geant(Int_t *itypg, Double_t *xtrg, Double_t *ytrg, Double_t *p
                     if (id==kMuonPlus) itypg[maxidg]  = 5;
                    else  itypg[maxidg]  = 6;
 
-
-
-                    //printf("ich, itypg[maxidg] %d %d\n",izch[maxidg],itypg[maxidg]);
-
                    ptotg[maxidg]  = mHit->fPTot;          // P of hit 
                    
                    Part = (TParticle*) fPartArray->UncheckedAt(ftrack);
                    Float_t thet = Part->Theta();
                    thet = thet*180./3.1416;
                    
-                   //cout<<"chambre "<<izch[maxidg]<<"  ptot="<<ptotg[maxidg]<<"   theta="<<thet<<"   phi="<<mHit->fPhi<<" z="<<zz<<endl;          
-                   
                    Int_t iparent = Part->GetFirstMother();
                    if (iparent >= 0) {
                        Int_t ip;
@@ -2399,11 +2306,6 @@ void trackf_read_geant(Int_t *itypg, Double_t *xtrg, Double_t *ytrg, Double_t *p
                    pvert2g[maxidg] = Part->Px();      // Py vertex  
                    pvert3g[maxidg] = Part->Pz();      // Pz vertex
                    zvertg[maxidg]  = Part->Vz();      // z vertex 
-           
-                   //      cout<<"x="<<xgeant[maxidg]<<endl;
-                   //cout<<"y="<<ygeant[maxidg]<<endl;
-                   //cout<<"typ="<<itypg[maxidg]<<endl;
-
                    maxidg ++;
 
                }
@@ -2412,15 +2314,15 @@ void trackf_read_geant(Int_t *itypg, Double_t *xtrg, Double_t *ytrg, Double_t *p
       } // if MUON
   } // track loop first file
 
-  if (TH1 && fHits2 ) { // if background file
-    ntracks =(Int_t)TH1->GetEntries();
+  if (TrH1 && fHits2 ) { // if background file
+    ntracks =(Int_t)TrH1->GetEntries();
     printf("Trackf_read - 2-nd file - ntracks %d\n",ntracks);
 
     //  Loop over tracks
     for (Int_t track=0; track<ntracks; track++) {
       
       if (fHits2) fHits2->Clear();
-      TH1->GetEvent(track);
+      TrH1->GetEvent(track);
 
       //  Loop over hits
       for (int i=0;i<fHits2->GetEntriesFast();i++) 
@@ -2450,6 +2352,7 @@ void trackf_read_geant(Int_t *itypg, Double_t *xtrg, Double_t *ytrg, Double_t *p
            
            TClonesArray *fPartArray = fParticles2;
            TParticle *Part;
+           Part = (TParticle*) fPartArray->UncheckedAt(ftrack);
            Int_t id = ((TParticle*) fPartArray->UncheckedAt(ftrack))->GetPdgCode();
            if (id==kMuonPlus||id==kMuonMinus) {
                if (id==kMuonPlus) itypg[maxidg]  = 5;
@@ -2469,7 +2372,7 @@ void trackf_read_geant(Int_t *itypg, Double_t *xtrg, Double_t *ytrg, Double_t *p
          } // check limits (maxidg)
        } // hit loop 
     } // track loop
-  } // if TH1
+  } // if TrH1
 
   ievr = nev;
   nhittot1 = maxidg ;