]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFT0.cxx
Obsolete medium 609 commented out (I.Hrivnacova). Sum of G10 fractions normalized...
[u/mrichter/AliRoot.git] / TOF / AliTOFT0.cxx
index b3e8e23e8952d989653e9f3c7e00e180aa45d74a..a4b0ea04b993f30b7f6306e14b3569a55b80c98e 100644 (file)
@@ -13,6 +13,8 @@
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
+/* $Id$ */
+
 //_________________________________________________________________________
 // This is a TTask that made the calculation of the Time zero using TOF.
 // Description: The algorithm used to calculate the time zero of interaction
 //-- Author: F. Pierella
 //////////////////////////////////////////////////////////////////////////////
 
+#include <Riostream.h>
+#include <stdlib.h>
+
+#include <TBenchmark.h>
+#include <TCanvas.h>
+#include <TClonesArray.h>
+#include <TFile.h>
+#include <TFolder.h>
+#include <TFrame.h>
+#include <TH1.h>
+#include <TParticle.h>
+#include <TROOT.h>
+#include <TSystem.h>
+#include <TTask.h>
+#include <TTree.h>
+#include <TVirtualMC.h>
+
+#include "AliDetector.h"
+#include "AliRun.h"
+#include "AliTOF.h"
 #include "AliTOFT0.h"
 #include "AliTOFhitT0.h"
-#include "AliTOF.h"
 #include "AliTOFv4T0.h"
-#include "AliRun.h"
-#include "AliDetector.h"
 #include "AliMC.h"
 
-#include "TH1.h"
-#include "TFile.h"
-#include "TTask.h"
-#include "TTree.h"
-#include "TSystem.h"
-#include "TCanvas.h"
-#include "TFrame.h"
-#include "TROOT.h"
-#include "TFolder.h"
-#include "TBenchmark.h"
-#include "TParticle.h"
-#include "TClonesArray.h"
-#include <stdlib.h>
-#include <iostream.h>
-#include <fstream.h>
-#include <iomanip.h>
-
 ClassImp(AliTOFT0)
 
 //____________________________________________________________________________ 
   AliTOFT0::AliTOFT0():TTask("AliTOFT0","") 
 {
   // ctor
-  fNevents = 0 ;     
-  fHits = 0 ;
-
+  fNevents = 0 ;
 }
            
 //____________________________________________________________________________ 
@@ -106,7 +106,6 @@ ClassImp(AliTOFT0)
   fUpperMomBound=2. ; // [GeV/c] default value
   fTimeResolution   = 1.2e-10; // 120 ps by default    
   fHeadersFile = headerFile ;
-  fHits = 0 ;
 
   TFile * file = (TFile*) gROOT->GetFile(fHeadersFile.Data() ) ;
 
@@ -124,6 +123,12 @@ ClassImp(AliTOFT0)
   roottasks->Add(this) ; 
 }
 
+//____________________________________________________________________________ 
+  AliTOFT0::AliTOFT0(const AliTOFT0 & tzero):TTask("AliTOFT0","")
+{
+( (AliTOFT0 &)tzero ).Copy(*this);
+}
+
 //____________________________________________________________________________ 
   AliTOFT0::~AliTOFT0()
 {
@@ -228,7 +233,7 @@ void AliTOFT0::Exec(Option_t *option)
 
   for (Int_t ievent = 0; ievent < fNevents; ievent++) {
     gAlice->GetEvent(ievent);
-    TTree *TH = gAlice->TreeH ();
+    TTree *TH = TOF->TreeH ();
     if (!TH)
       return;
     TParticle*    particle;
@@ -237,6 +242,10 @@ void AliTOFT0::Exec(Option_t *option)
 
     Int_t lasttrack=-1;
     Int_t nset=0;
+
+    TH->SetBranchStatus("*",0); // switch off all branches
+    TH->SetBranchStatus("TOF*",1); // switch on only TOF
+
     // Start loop on primary tracks in the hits containers
 
     Int_t ntracks = static_cast<Int_t>(TH->GetEntries());
@@ -246,7 +255,7 @@ void AliTOFT0::Exec(Option_t *option)
       
       gAlice->ResetHits();
       TH->GetEvent(track);
-      particle = gAlice->Particle(track);
+      particle = gAlice->GetMCApp()->Particle(track);
       Int_t nhits = TOFhits->GetEntriesFast();
 
       for (Int_t hit = 0; hit < nhits; hit++)
@@ -258,7 +267,7 @@ void AliTOFT0::Exec(Option_t *option)
 
        if (ipart != ipartold){
          
-         particle = (TParticle*)gAlice->Particle(ipart);
+         particle = (TParticle*)gAlice->GetMCApp()->Particle(ipart);
          
          Float_t idealtime=tofHit->GetTof();
          //       Float_t time=idealtime;
@@ -305,38 +314,35 @@ void AliTOFT0::Exec(Option_t *option)
            selected=0;
            //cout << "starting t0 calculation for current set" << endl;
            for (Int_t i1=0; i1<3;i1++) {
+             beta[0]=momentum[0]/sqrt(massarray[i1]*massarray[i1]+momentum[0]*momentum[0]);
              for (Int_t i2=0; i2<3;i2++) { 
+               beta[1]=momentum[1]/sqrt(massarray[i2]*massarray[i2]+momentum[1]*momentum[1]);
                for (Int_t i3=0; i3<3;i3++) {
+                 beta[2]=momentum[2]/sqrt(massarray[i3]*massarray[i3]+momentum[2]*momentum[2]);
                  for (Int_t i4=0; i4<3;i4++) {
+                   beta[3]=momentum[3]/sqrt(massarray[i4]*massarray[i4]+momentum[3]*momentum[3]);
                    for (Int_t i5=0; i5<3;i5++) {
+                     beta[4]=momentum[4]/sqrt(massarray[i5]*massarray[i5]+momentum[4]*momentum[4]);
                      for (Int_t i6=0; i6<3;i6++) {
+                       beta[5]=momentum[5]/sqrt(massarray[i6]*massarray[i6]+momentum[5]*momentum[5]);
                        for (Int_t i7=0; i7<3;i7++) { 
+                         beta[6]=momentum[6]/sqrt(massarray[i7]*massarray[i7]+momentum[6]*momentum[6]);
                          for (Int_t i8=0; i8<3;i8++) {
+                           beta[7]=momentum[7]/sqrt(massarray[i8]*massarray[i8]+momentum[7]*momentum[7]);
                            for (Int_t i9=0; i9<3;i9++) {
+                             beta[8]=momentum[8]/sqrt(massarray[i9]*massarray[i9]+momentum[8]*momentum[8]);
                              for (Int_t i10=0; i10<3;i10++) {  
-
-                               beta[0]=momentum[0]/sqrt(massarray[i1]*massarray[i1]+momentum[0]*momentum[0]);
-                               beta[1]=momentum[1]/sqrt(massarray[i2]*massarray[i2]+momentum[1]*momentum[1]);
-                               beta[2]=momentum[2]/sqrt(massarray[i3]*massarray[i3]+momentum[2]*momentum[2]);
-                               beta[3]=momentum[3]/sqrt(massarray[i4]*massarray[i4]+momentum[3]*momentum[3]);
-                               beta[4]=momentum[4]/sqrt(massarray[i5]*massarray[i5]+momentum[4]*momentum[4]);
-                               beta[5]=momentum[5]/sqrt(massarray[i6]*massarray[i6]+momentum[5]*momentum[5]);
-                               beta[6]=momentum[6]/sqrt(massarray[i7]*massarray[i7]+momentum[6]*momentum[6]);
-                               beta[7]=momentum[7]/sqrt(massarray[i8]*massarray[i8]+momentum[7]*momentum[7]);
-                               beta[8]=momentum[8]/sqrt(massarray[i9]*massarray[i9]+momentum[8]*momentum[8]);
                                beta[9]=momentum[9]/sqrt(massarray[i10]*massarray[i10]+momentum[9]*momentum[9]);
                                
-                               
                                Float_t meantzero=0.;
                                Float_t sumAllweights=0.;
                                for (Int_t itz=0; itz<10;itz++) {
                                  sqMomError[itz]=((1.-beta[itz]*beta[itz])*0.025)*((1.-beta[itz]*beta[itz])*0.025)*(tracktoflen[itz]/(0.299792*beta[itz]))*(tracktoflen[itz]/(0.299792*beta[itz])); // this gives the square of the momentum error in nanoseconds
                                  sqTrackError[itz]=(timeresolutioninns*timeresolutioninns+sqMomError[itz]); // total error for the current track
                                  sumAllweights+=1./sqTrackError[itz];
-                                 // redefining beta, it is useful in order to calculate t zero
-                                 beta[itz]*=0.299792;
-                                 timezero[itz]=(tracktoflen[itz]/beta[itz])-timeofflight[itz];
-                                 weightedtimezero[itz]=((tracktoflen[itz]/beta[itz])-timeofflight[itz])/sqTrackError[itz];// weighted time zero for current track
+
+                                 timezero[itz]=(tracktoflen[itz]/(beta[itz]*0.299792))-timeofflight[itz];
+                                 weightedtimezero[itz]=((tracktoflen[itz]/(beta[itz]*0.299792))-timeofflight[itz])/sqTrackError[itz];// weighted time zero for current track
                                  meantzero+=weightedtimezero[itz];
                                } // end loop for (Int_t itz=0; itz<10;itz++)
                                meantzero=meantzero/sumAllweights; // it is given in [ns]
@@ -471,7 +477,7 @@ void AliTOFT0::SetTZeroFile(char * file ){
   fT0File=file;
 }
 //__________________________________________________________________
-void AliTOFT0::Print(Option_t* option)const
+void AliTOFT0::Print(Option_t* /*option*/)const
 {
   cout << "------------------- "<< GetName() << " -------------" << endl ;
   if(!fT0File.IsNull())