ROOT logo
Int_t AliTOFanalyzeHits(Int_t numberOfEvents=0, Bool_t drawing=kFALSE)
{

  /////////////////////////////////////////////////////////////////////////
  //
  // Analyzes TOF hits and fills QA-histograms
  // and writes the histograms in the TOF_hitsQA.root file
  //
  // Use case:
  // start aliroot
  // root [0] .L AliTOFanalyzeHits.C
  // root [1] AliTOFanalyzeHits()
  //
  // By default, it analyzes hits for all the events in the header file
  // and does not draw the histograms filled
  //
  // If you want analyze hits only the 1th event
  // you can use the following line:
  //
  // root[0] .L AliTOFanalyzeHits.C
  // root[1] AliTOFanalyzeHits(1)
  //
  // Updated to the new I/O: C. Zampolli
  //
  // Report problems to decaro@sa.infn.it
  //
  /////////////////////////////////////////////////////////////////////////

  Int_t rc = 0;
  
  // Define the histograms
  // x,y,z, rho, tof, padx, padz, sector, plate, strip, (x vs y)

  // hit-map in a plane
  TH2F *h2hitMap = new TH2F("h2hitMap","Hit Map (projection on the plane)",2500,-12500.,12500.,800,-400.,400.);
  // time of flight distribution for primaries and secondaries
  TH1F *htofp    = new TH1F("htofp","Time of Flight (primaries)",800,0.,80.);
  TH1F *htofs    = new TH1F("htofs","Time of Flight (secondaries)",800,0.,80.);
  // momentum when striking the TOF for primaries and secondaries
  TH1F *htofmomp = new TH1F("htofmomp","Momentum at TOF (primaries)",100,0.,10.);
  TH1F *htofmoms = new TH1F("htofmoms","Momentum at TOF (secondaries)",100,0.,10.);
  // TOF hit volumes
  TH1F *hsector  = new TH1F("hsector","Sector",18,0.,18.);
  TH1F *hplate   = new TH1F("hplate","Plate ", 5,0., 5.);
  TH1F *hstrip   = new TH1F("hstrip","Strip ",20,0.,20.);
  TH1F *hpadz    = new TH1F("hpadz","Pad along z ",2,0.,2.);
  TH1F *hpadx    = new TH1F("hpadx","Pad along x",48,0.,48.);
  // track length when striking the TOF (used by AliTOFT0)
  TH1F *htrackLenp= new TH1F("htrackLenp","Track Length on TOF for Primaries",800,0.,800.);

  // Histograms added to control the right TOF element numbering:
  // it should be increasing with the azimuthal and polar angles

  TH2F *hmoduleVStheta     = new TH2F("hmoduleVStheta", "hmoduleVStheta", 180,0.,180.,5,0,5);
  TH2F *hsectorVSphi       = new TH2F("hsectorVSphi", "hsectorVSphi", 360,0.,360.,18,0,18);
  TH2F *hstripVStheta      = new TH2F("hstripVStheta", "hstripVStheta", 180,0.,180.,20,0,20);
  //TH2F *hpadzVStheta       = new TH2F("hpadzVStheta", "hpadzVStheta", 180,0.,180.,2,0,2);
  TH2F *hpadxVSphi         = new TH2F("hpadxVSphi", "hpadxVSphi", 360,0.,360.,48,0,48);
  TH2F *hpadz2stripVStheta = new TH2F("hpadz2stripVStheta", "hpadz2stripVStheta", 180,0.,180.,40,0,40);
  //TH2F *hdzVSpadz2strip    = new TH2F("hdzVSpadz2strip", "hdzVSpadz2strip",40,0,40,70,-3.5,3.5);

  // Dynamically link some shared libs
  if (gClassTable->GetID("AliRun") < 0) {
    gROOT->LoadMacro("loadlibs.C");
    loadlibs();
  }

  if (gAlice)
    {
      delete AliRunLoader::Instance();
      delete gAlice;
      gAlice = 0x0;
    }

  AliRunLoader *rl = AliRunLoader::Open("galice.root",AliConfig::GetDefaultEventFolderName(),"read");
  if (!rl)
    {
      cerr<<"Can't load RunLoader from file! \n";
      rc = 1;
      return rc;
    }

  rl->LoadgAlice();
  gAlice = rl->GetAliRun();

  if (!gAlice)
    {
      cerr << "<AliTOFanalyzeHits> AliRun object not found on file \n";
      rc = 2;
      return rc;
    }

  rl->LoadHeader();

  // Get the pointer to the TOF detector
  AliLoader *tofl = rl->GetLoader("TOFLoader");
  AliTOF *tof = (AliTOF *) gAlice->GetDetector("TOF");
  if (tof == 0x0 || tofl == 0x0) {
    cerr << "<AliTOFanalyzeHits> Can not find TOF or TOFLoader \n";
    rc = 3;
    return rc;
  }

  Int_t countHits = 0;

  if (numberOfEvents==0) numberOfEvents=(Int_t)(rl->GetNumberOfEvents());

  for (Int_t ievent=0; ievent<numberOfEvents; ievent++) {
    printf ("Processing event %d \n", ievent);
    rl->GetEvent(ievent);

    // Get the pointer Hit tree
    tofl->LoadHits();
    TTree *hitTree = tofl->TreeH();
    tof->SetTreeAddress();
    if (!hitTree) {
      cout << "<AliTOFanalyzeHits> No TreeH found" << endl;
      rc = 4;
      return rc;
    }

    rl->LoadKinematics();
    //AliStack* stack = rl->Stack(); // it is not necessary to use the stack!

    // Get the number of entries in the hit tree
    // (Number of primary particles creating a hit somewhere)
    Int_t nTrack = (Int_t) hitTree->GetEntries();
    cout << "<AliTOFanalyzeHits> Found " << nTrack 
         << " primary particles with hits \n";

    Int_t nPrimaryOnTof = 0;
    Int_t nSecondaryOnTof = 0;
    Int_t nelectron  = 0;
    Int_t npion      = 0;
    Int_t nkaon      = 0;
    Int_t nproton    = 0;    
    Int_t nmuon      = 0;
  
    // Loop through all entries in the tree
    for (Int_t iTrack = 0; iTrack < nTrack; iTrack++) {

      tof->ResetHits();
      hitTree->GetEvent(iTrack);

      // Loop through the TOF hits  
      AliTOFhitT0 *hit = (AliTOFhitT0 *) tof->FirstHit(-1);
      while (hit) {

	countHits++;
	
        Float_t x     = hit->X();
        Float_t y     = hit->Y();
        Float_t z     = hit->Z();
        Float_t phiAngle=TMath::Pi() + TMath::ATan2(-y,-x);
        Float_t rhoRadius=TMath::Sqrt(x*x+y*y);
        Float_t thetaAngle=TMath::Pi() + TMath::ATan2(-rhoRadius,-z);
        Float_t dummy=rhoRadius*phiAngle;
        h2hitMap->Fill(dummy,z);

        phiAngle*=180./TMath::Pi();
        thetaAngle*=180./TMath::Pi();

        Float_t flightTime = hit->GetTof(); // [s]
        flightTime *= 1.e+09; // convert in [ns]
        Float_t angle = hit->GetIncA();
        Float_t tofmom = hit->GetMom(); // [GeV/c]
        Float_t trackLen = hit->GetLen(); // [cm]

        // TOF hit volumes
        Int_t sector = hit->GetSector(); // range [1-18]
        Int_t plate  = hit->GetPlate();  // range [1- 5]
        Int_t strip  = hit->GetStrip();  // range [1-20]
        Int_t padz   = hit->GetPadz();   // range [1- 2]
        Int_t padx   = hit->GetPadx();   // range [1-48]
        // it is QA, then I perform QA!

        Bool_t isHitBad = (sector<0 || sector>17 || 
			    plate<0 || plate>4   || 
			     padz<0 || padz>1    || 
			     padx<0 || padx>47   ||
			   ((strip<0 || strip>14) && plate == 2) ||
			   ((strip<0 || strip>18) && (plate == 1 || plate == 3)) ||
			   ((strip<0 || strip>19) && (plate == 0 || plate == 4)));

	if (isHitBad) {
          cout << "<AliTOFanalyzeHits>  strange hit found \n";
	  cout << "sector = " << sector <<
	          " plate = " << plate <<
	          " strip = " << strip <<
	          " padx = " << padx <<
	          " padz = " << padz << endl;
	  rc = 5;
	  return rc;
        }
	
        hmoduleVStheta->Fill(thetaAngle,plate);
	hstripVStheta->Fill(thetaAngle,strip);
        hsectorVSphi->Fill(phiAngle,sector);
        //hpadzVStheta->Fill(thetaAngle,padx);
        hpadxVSphi->Fill(phiAngle,padx);

	Float_t dummy2 = 2*strip + padz;
	hpadz2stripVStheta->Fill(thetaAngle,dummy2);

	/*
	  Float_t dummy3;
	  if (hit->GetDz()<=0) dummy3 = hit->GetDz()-1.75;
	  else dummy3 = hit->GetDz()+1.75;	
	  hdzVSpadz2strip->Fill(dummy2,dummy3);
	*/

        // filling hit volume histos
        hsector->Fill(sector);
        hplate->Fill(plate);
        hstrip->Fill(strip);
        hpadx->Fill(padx);
        hpadz->Fill(padz);
/*
        Int_t track = hit->Track();
        TParticle *part = gAlice->GetMCApp()->Particle(track);

        // getting MC info for the current track
        if (part->GetFirstMother()<0){
          Int_t icod = TMath::Abs(part->GetPdgCode());
 	  switch (icod) {
	  case 211:
	    npion++;
	    break ;
	  case 321:
	    nkaon++;
	    break ;
	  case 2212:
	    nproton++;
	    break ;
	  case 11:
	    nelectron++;
	    break ;
	  case 13:
	    nmuon++;
	    break ;
	  }
	  htofp->Fill(flightTime);
	  htofmomp->Fill(tofmom);
          htrackLenp->Fill(trackLen);
        } else {
	  htofs->Fill(flightTime);
	  htofmoms->Fill(tofmom);
        }
*/
        // go to next hit
        hit = (AliTOFhitT0 *) tof->NextHit();

      }

    }

    tofl->UnloadHits();
    rl->UnloadKinematics();

    cout << "<AliTOFanalyzeHits> Found " << countHits << " hits in total \n";
    cout << npion     << " primary pions reached the TOF detector \n";
    cout << nkaon     << " primary kaons reached the TOF detector \n";
    cout << nproton   << " primary protons reached the TOF detector \n";
    cout << nelectron << " primary electrons reached the TOF detector \n";
    cout << nmuon     << " primary muons reached the TOF detector \n";

  }

  cout << "hpadx->GetEntries() = " << hpadx->GetEntries() << endl;

  rl->UnloadHeader();
  rl->UnloadgAlice();

  if (drawing) {  
    TCanvas *cHits = new TCanvas("cHits","AliTOFanalyzeHits hit volumes",50,50,900,900);
    cHits->Divide(3,2);
    cHits->cd(1);
    hsector->Draw();
    cHits->cd(2);
    hplate->Draw();
    cHits->cd(3);
    hstrip->Draw();
    cHits->cd(4);
    hpadz->Draw();
    cHits->cd(5);
    hpadx->Draw();
    
    TCanvas *chitmap = new TCanvas("chitmap","AliTOFanalyzeHits Hit Map",50,50,600,600);
    chitmap->cd();
    h2hitMap->Draw();
    
    TCanvas *ctrackLen = new TCanvas("ctrackLen","AliTOFanalyzeHits Track Length for primaries on TOF",50,50,400,400);
    ctrackLen->cd();
    htrackLenp->Draw();
    
    TCanvas *ctofmom = new TCanvas("ctofmom","AliTOFanalyzeHits flight times",50,50,700,700);
    ctofmom->Divide(2,2);
    ctofmom->cd(1);
    gPad->SetLogy();
    htofp->Draw();
    ctofmom->cd(2);
    gPad->SetLogy();
    htofs->Draw();
    ctofmom->cd(3);
    gPad->SetLogy();
    htofmomp->Draw();
    ctofmom->cd(4);
    gPad->SetLogy();
    htofmoms->Draw();
  }
  
  // save histos into file TOF_hitsQA.root
  TFile *fout = new TFile("TOF_hitsQA.root","RECREATE");
  h2hitMap->Write();
  htofp->Write();
  htofs->Write();
  htofmomp->Write();
  htofmoms->Write();
  hsector->Write();
  hplate->Write();
  hstrip->Write();
  hpadz->Write();
  hpadx->Write();
  htrackLenp->Write();

  hmoduleVStheta->Write();
  hsectorVSphi->Write();
  hstripVStheta->Write();
  //hpadzVStheta->Write();
  hpadxVSphi->Write();
  hpadz2stripVStheta->Write();
  //hdzVSpadz2strip->Write();

  fout->Close(); 

  cout << " Finished AliTOFanalizeHits \n";

  if (gAlice)
    {
      delete AliRunLoader::Instance();
      delete gAlice;
      gAlice = 0x0;
    }

  return rc;

}
 AliTOFanalyzeHits.C:1
 AliTOFanalyzeHits.C:2
 AliTOFanalyzeHits.C:3
 AliTOFanalyzeHits.C:4
 AliTOFanalyzeHits.C:5
 AliTOFanalyzeHits.C:6
 AliTOFanalyzeHits.C:7
 AliTOFanalyzeHits.C:8
 AliTOFanalyzeHits.C:9
 AliTOFanalyzeHits.C:10
 AliTOFanalyzeHits.C:11
 AliTOFanalyzeHits.C:12
 AliTOFanalyzeHits.C:13
 AliTOFanalyzeHits.C:14
 AliTOFanalyzeHits.C:15
 AliTOFanalyzeHits.C:16
 AliTOFanalyzeHits.C:17
 AliTOFanalyzeHits.C:18
 AliTOFanalyzeHits.C:19
 AliTOFanalyzeHits.C:20
 AliTOFanalyzeHits.C:21
 AliTOFanalyzeHits.C:22
 AliTOFanalyzeHits.C:23
 AliTOFanalyzeHits.C:24
 AliTOFanalyzeHits.C:25
 AliTOFanalyzeHits.C:26
 AliTOFanalyzeHits.C:27
 AliTOFanalyzeHits.C:28
 AliTOFanalyzeHits.C:29
 AliTOFanalyzeHits.C:30
 AliTOFanalyzeHits.C:31
 AliTOFanalyzeHits.C:32
 AliTOFanalyzeHits.C:33
 AliTOFanalyzeHits.C:34
 AliTOFanalyzeHits.C:35
 AliTOFanalyzeHits.C:36
 AliTOFanalyzeHits.C:37
 AliTOFanalyzeHits.C:38
 AliTOFanalyzeHits.C:39
 AliTOFanalyzeHits.C:40
 AliTOFanalyzeHits.C:41
 AliTOFanalyzeHits.C:42
 AliTOFanalyzeHits.C:43
 AliTOFanalyzeHits.C:44
 AliTOFanalyzeHits.C:45
 AliTOFanalyzeHits.C:46
 AliTOFanalyzeHits.C:47
 AliTOFanalyzeHits.C:48
 AliTOFanalyzeHits.C:49
 AliTOFanalyzeHits.C:50
 AliTOFanalyzeHits.C:51
 AliTOFanalyzeHits.C:52
 AliTOFanalyzeHits.C:53
 AliTOFanalyzeHits.C:54
 AliTOFanalyzeHits.C:55
 AliTOFanalyzeHits.C:56
 AliTOFanalyzeHits.C:57
 AliTOFanalyzeHits.C:58
 AliTOFanalyzeHits.C:59
 AliTOFanalyzeHits.C:60
 AliTOFanalyzeHits.C:61
 AliTOFanalyzeHits.C:62
 AliTOFanalyzeHits.C:63
 AliTOFanalyzeHits.C:64
 AliTOFanalyzeHits.C:65
 AliTOFanalyzeHits.C:66
 AliTOFanalyzeHits.C:67
 AliTOFanalyzeHits.C:68
 AliTOFanalyzeHits.C:69
 AliTOFanalyzeHits.C:70
 AliTOFanalyzeHits.C:71
 AliTOFanalyzeHits.C:72
 AliTOFanalyzeHits.C:73
 AliTOFanalyzeHits.C:74
 AliTOFanalyzeHits.C:75
 AliTOFanalyzeHits.C:76
 AliTOFanalyzeHits.C:77
 AliTOFanalyzeHits.C:78
 AliTOFanalyzeHits.C:79
 AliTOFanalyzeHits.C:80
 AliTOFanalyzeHits.C:81
 AliTOFanalyzeHits.C:82
 AliTOFanalyzeHits.C:83
 AliTOFanalyzeHits.C:84
 AliTOFanalyzeHits.C:85
 AliTOFanalyzeHits.C:86
 AliTOFanalyzeHits.C:87
 AliTOFanalyzeHits.C:88
 AliTOFanalyzeHits.C:89
 AliTOFanalyzeHits.C:90
 AliTOFanalyzeHits.C:91
 AliTOFanalyzeHits.C:92
 AliTOFanalyzeHits.C:93
 AliTOFanalyzeHits.C:94
 AliTOFanalyzeHits.C:95
 AliTOFanalyzeHits.C:96
 AliTOFanalyzeHits.C:97
 AliTOFanalyzeHits.C:98
 AliTOFanalyzeHits.C:99
 AliTOFanalyzeHits.C:100
 AliTOFanalyzeHits.C:101
 AliTOFanalyzeHits.C:102
 AliTOFanalyzeHits.C:103
 AliTOFanalyzeHits.C:104
 AliTOFanalyzeHits.C:105
 AliTOFanalyzeHits.C:106
 AliTOFanalyzeHits.C:107
 AliTOFanalyzeHits.C:108
 AliTOFanalyzeHits.C:109
 AliTOFanalyzeHits.C:110
 AliTOFanalyzeHits.C:111
 AliTOFanalyzeHits.C:112
 AliTOFanalyzeHits.C:113
 AliTOFanalyzeHits.C:114
 AliTOFanalyzeHits.C:115
 AliTOFanalyzeHits.C:116
 AliTOFanalyzeHits.C:117
 AliTOFanalyzeHits.C:118
 AliTOFanalyzeHits.C:119
 AliTOFanalyzeHits.C:120
 AliTOFanalyzeHits.C:121
 AliTOFanalyzeHits.C:122
 AliTOFanalyzeHits.C:123
 AliTOFanalyzeHits.C:124
 AliTOFanalyzeHits.C:125
 AliTOFanalyzeHits.C:126
 AliTOFanalyzeHits.C:127
 AliTOFanalyzeHits.C:128
 AliTOFanalyzeHits.C:129
 AliTOFanalyzeHits.C:130
 AliTOFanalyzeHits.C:131
 AliTOFanalyzeHits.C:132
 AliTOFanalyzeHits.C:133
 AliTOFanalyzeHits.C:134
 AliTOFanalyzeHits.C:135
 AliTOFanalyzeHits.C:136
 AliTOFanalyzeHits.C:137
 AliTOFanalyzeHits.C:138
 AliTOFanalyzeHits.C:139
 AliTOFanalyzeHits.C:140
 AliTOFanalyzeHits.C:141
 AliTOFanalyzeHits.C:142
 AliTOFanalyzeHits.C:143
 AliTOFanalyzeHits.C:144
 AliTOFanalyzeHits.C:145
 AliTOFanalyzeHits.C:146
 AliTOFanalyzeHits.C:147
 AliTOFanalyzeHits.C:148
 AliTOFanalyzeHits.C:149
 AliTOFanalyzeHits.C:150
 AliTOFanalyzeHits.C:151
 AliTOFanalyzeHits.C:152
 AliTOFanalyzeHits.C:153
 AliTOFanalyzeHits.C:154
 AliTOFanalyzeHits.C:155
 AliTOFanalyzeHits.C:156
 AliTOFanalyzeHits.C:157
 AliTOFanalyzeHits.C:158
 AliTOFanalyzeHits.C:159
 AliTOFanalyzeHits.C:160
 AliTOFanalyzeHits.C:161
 AliTOFanalyzeHits.C:162
 AliTOFanalyzeHits.C:163
 AliTOFanalyzeHits.C:164
 AliTOFanalyzeHits.C:165
 AliTOFanalyzeHits.C:166
 AliTOFanalyzeHits.C:167
 AliTOFanalyzeHits.C:168
 AliTOFanalyzeHits.C:169
 AliTOFanalyzeHits.C:170
 AliTOFanalyzeHits.C:171
 AliTOFanalyzeHits.C:172
 AliTOFanalyzeHits.C:173
 AliTOFanalyzeHits.C:174
 AliTOFanalyzeHits.C:175
 AliTOFanalyzeHits.C:176
 AliTOFanalyzeHits.C:177
 AliTOFanalyzeHits.C:178
 AliTOFanalyzeHits.C:179
 AliTOFanalyzeHits.C:180
 AliTOFanalyzeHits.C:181
 AliTOFanalyzeHits.C:182
 AliTOFanalyzeHits.C:183
 AliTOFanalyzeHits.C:184
 AliTOFanalyzeHits.C:185
 AliTOFanalyzeHits.C:186
 AliTOFanalyzeHits.C:187
 AliTOFanalyzeHits.C:188
 AliTOFanalyzeHits.C:189
 AliTOFanalyzeHits.C:190
 AliTOFanalyzeHits.C:191
 AliTOFanalyzeHits.C:192
 AliTOFanalyzeHits.C:193
 AliTOFanalyzeHits.C:194
 AliTOFanalyzeHits.C:195
 AliTOFanalyzeHits.C:196
 AliTOFanalyzeHits.C:197
 AliTOFanalyzeHits.C:198
 AliTOFanalyzeHits.C:199
 AliTOFanalyzeHits.C:200
 AliTOFanalyzeHits.C:201
 AliTOFanalyzeHits.C:202
 AliTOFanalyzeHits.C:203
 AliTOFanalyzeHits.C:204
 AliTOFanalyzeHits.C:205
 AliTOFanalyzeHits.C:206
 AliTOFanalyzeHits.C:207
 AliTOFanalyzeHits.C:208
 AliTOFanalyzeHits.C:209
 AliTOFanalyzeHits.C:210
 AliTOFanalyzeHits.C:211
 AliTOFanalyzeHits.C:212
 AliTOFanalyzeHits.C:213
 AliTOFanalyzeHits.C:214
 AliTOFanalyzeHits.C:215
 AliTOFanalyzeHits.C:216
 AliTOFanalyzeHits.C:217
 AliTOFanalyzeHits.C:218
 AliTOFanalyzeHits.C:219
 AliTOFanalyzeHits.C:220
 AliTOFanalyzeHits.C:221
 AliTOFanalyzeHits.C:222
 AliTOFanalyzeHits.C:223
 AliTOFanalyzeHits.C:224
 AliTOFanalyzeHits.C:225
 AliTOFanalyzeHits.C:226
 AliTOFanalyzeHits.C:227
 AliTOFanalyzeHits.C:228
 AliTOFanalyzeHits.C:229
 AliTOFanalyzeHits.C:230
 AliTOFanalyzeHits.C:231
 AliTOFanalyzeHits.C:232
 AliTOFanalyzeHits.C:233
 AliTOFanalyzeHits.C:234
 AliTOFanalyzeHits.C:235
 AliTOFanalyzeHits.C:236
 AliTOFanalyzeHits.C:237
 AliTOFanalyzeHits.C:238
 AliTOFanalyzeHits.C:239
 AliTOFanalyzeHits.C:240
 AliTOFanalyzeHits.C:241
 AliTOFanalyzeHits.C:242
 AliTOFanalyzeHits.C:243
 AliTOFanalyzeHits.C:244
 AliTOFanalyzeHits.C:245
 AliTOFanalyzeHits.C:246
 AliTOFanalyzeHits.C:247
 AliTOFanalyzeHits.C:248
 AliTOFanalyzeHits.C:249
 AliTOFanalyzeHits.C:250
 AliTOFanalyzeHits.C:251
 AliTOFanalyzeHits.C:252
 AliTOFanalyzeHits.C:253
 AliTOFanalyzeHits.C:254
 AliTOFanalyzeHits.C:255
 AliTOFanalyzeHits.C:256
 AliTOFanalyzeHits.C:257
 AliTOFanalyzeHits.C:258
 AliTOFanalyzeHits.C:259
 AliTOFanalyzeHits.C:260
 AliTOFanalyzeHits.C:261
 AliTOFanalyzeHits.C:262
 AliTOFanalyzeHits.C:263
 AliTOFanalyzeHits.C:264
 AliTOFanalyzeHits.C:265
 AliTOFanalyzeHits.C:266
 AliTOFanalyzeHits.C:267
 AliTOFanalyzeHits.C:268
 AliTOFanalyzeHits.C:269
 AliTOFanalyzeHits.C:270
 AliTOFanalyzeHits.C:271
 AliTOFanalyzeHits.C:272
 AliTOFanalyzeHits.C:273
 AliTOFanalyzeHits.C:274
 AliTOFanalyzeHits.C:275
 AliTOFanalyzeHits.C:276
 AliTOFanalyzeHits.C:277
 AliTOFanalyzeHits.C:278
 AliTOFanalyzeHits.C:279
 AliTOFanalyzeHits.C:280
 AliTOFanalyzeHits.C:281
 AliTOFanalyzeHits.C:282
 AliTOFanalyzeHits.C:283
 AliTOFanalyzeHits.C:284
 AliTOFanalyzeHits.C:285
 AliTOFanalyzeHits.C:286
 AliTOFanalyzeHits.C:287
 AliTOFanalyzeHits.C:288
 AliTOFanalyzeHits.C:289
 AliTOFanalyzeHits.C:290
 AliTOFanalyzeHits.C:291
 AliTOFanalyzeHits.C:292
 AliTOFanalyzeHits.C:293
 AliTOFanalyzeHits.C:294
 AliTOFanalyzeHits.C:295
 AliTOFanalyzeHits.C:296
 AliTOFanalyzeHits.C:297
 AliTOFanalyzeHits.C:298
 AliTOFanalyzeHits.C:299
 AliTOFanalyzeHits.C:300
 AliTOFanalyzeHits.C:301
 AliTOFanalyzeHits.C:302
 AliTOFanalyzeHits.C:303
 AliTOFanalyzeHits.C:304
 AliTOFanalyzeHits.C:305
 AliTOFanalyzeHits.C:306
 AliTOFanalyzeHits.C:307
 AliTOFanalyzeHits.C:308
 AliTOFanalyzeHits.C:309
 AliTOFanalyzeHits.C:310
 AliTOFanalyzeHits.C:311
 AliTOFanalyzeHits.C:312
 AliTOFanalyzeHits.C:313
 AliTOFanalyzeHits.C:314
 AliTOFanalyzeHits.C:315
 AliTOFanalyzeHits.C:316
 AliTOFanalyzeHits.C:317
 AliTOFanalyzeHits.C:318
 AliTOFanalyzeHits.C:319
 AliTOFanalyzeHits.C:320
 AliTOFanalyzeHits.C:321
 AliTOFanalyzeHits.C:322
 AliTOFanalyzeHits.C:323
 AliTOFanalyzeHits.C:324
 AliTOFanalyzeHits.C:325
 AliTOFanalyzeHits.C:326
 AliTOFanalyzeHits.C:327
 AliTOFanalyzeHits.C:328
 AliTOFanalyzeHits.C:329
 AliTOFanalyzeHits.C:330
 AliTOFanalyzeHits.C:331
 AliTOFanalyzeHits.C:332
 AliTOFanalyzeHits.C:333
 AliTOFanalyzeHits.C:334
 AliTOFanalyzeHits.C:335
 AliTOFanalyzeHits.C:336
 AliTOFanalyzeHits.C:337
 AliTOFanalyzeHits.C:338
 AliTOFanalyzeHits.C:339
 AliTOFanalyzeHits.C:340
 AliTOFanalyzeHits.C:341
 AliTOFanalyzeHits.C:342
 AliTOFanalyzeHits.C:343
 AliTOFanalyzeHits.C:344
 AliTOFanalyzeHits.C:345
 AliTOFanalyzeHits.C:346
 AliTOFanalyzeHits.C:347
 AliTOFanalyzeHits.C:348