ROOT logo

void read_jets(const char* fn = "jets.root")

{
    //
    // Some histos
    //
    TH1F* eH     = new TH1F("eH"  , "Jet Energy", 40.,  0., 200.);
    TH1F* e1H    = new TH1F("e1H" , "Jet Energy", 40.,  0., 200.);
    TH1F* e2H    = new TH1F("e2H" , "Jet Energy", 40.,  0., 200.);
    TH1F* e3H    = new TH1F("e3H" , "Jet Energy", 40.,  0., 200.);
    TH1F* e4H    = new TH1F("e4H" , "Jet Energy", 40.,  0., 200.);
    TH1F* dr1H = new TH1F("dr1H", "delta R",  160., 0.,   2.);
    TH1F* dr2H = new TH1F("dr2H", "delta R",  160., 0.,   2.);
    TH1F* dr3H = new TH1F("dr4H", "delta R",  160., 0.,   2.);
    TH1F* etaH  = new TH1F("etaH",  "eta",  160., -2.,   2.);
    TH1F* eta1H = new TH1F("eta1H", "eta",  160., -2.,   2.);
    TH1F* eta2H = new TH1F("eta2H", "eta",  160., -2.,   2.);

    TH1F* phiH  = new TH1F("phiH",  "phi",  160., -3.,   3.);
    TH1F* phi1H = new TH1F("phi1H", "phi",  160.,  0.,   6.28);
    TH1F* phi2H = new TH1F("phi2H", "phi",  160.,  0.,   6.28);
    

  // load jet library
  gSystem->Load("$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET)/libJETAN");

  // open file
  TFile *jFile = new TFile(fn);

  // get jet header and display parameters
  AliUA1JetHeader* jHeader = 
    (AliUA1JetHeader*) (jFile->Get("AliUA1JetHeader"));
  jHeader->PrintParameters();

  // get reader header and events to be looped over
  AliJetESDReaderHeader *jReaderH = 
    (AliJetESDReaderHeader*)(jFile->Get("AliJetESDReaderHeader"));
  Int_t first = jReaderH->GetFirstEvent(); 
  Int_t last  = jReaderH->GetLastEvent();
  cout << "First event = " << first << "   Last event = " << last << endl;


  // loop over events
  AliJet *jets, *gjets;
  AliLeading *leading;

  for (Int_t i=first; i< last; i++) {
      cout << "  Analyzing event " << i << endl;
      // get next tree with AliJet
      char nameT[100];
      sprintf(nameT, "TreeJ%d",i);
      TTree *jetT =(TTree *)(jFile->Get(nameT));
      jetT->SetBranchAddress("FoundJet",    &jets);
      jetT->SetBranchAddress("GenJet",      &gjets);
      jetT->SetBranchAddress("LeadingPart", &leading);
      jetT->GetEntry(0);

//
//    Find the jet with the highest E_T 
//
      Int_t njets = jets->GetNJets();
      
      Float_t emax = 0.;
      Int_t   imax = -1;
      for (Int_t j = 0; j < njets; j++) {
	  if (jets->GetPt(j) > emax && TMath::Abs(jets->GetEta(j)) < 0.5) {
	      emax = jets->GetPt(j);
	      imax = j;
	  }
      }
      
      if (imax == -1) {
	  e2H->Fill(gjets->GetPt(0));
      } else {
	  eH->Fill(jets->GetPt(imax));
	  dr1H->Fill(jets->GetEta(imax) - gjets->GetEta(0));
//
//    Find the generated jet closest to the reconstructed 
//
	  
	  Float_t rmin;
	  Int_t   igen;
	  Float_t etaj = jets->GetEta(imax);
	  Float_t phij = jets->GetPhi(imax);
	  
	  Int_t ngen = gjets->GetNJets();
	  if (ngen != 0) {
	      rmin = 1.e6;
	      igen = -1;
	      for (Int_t j = 0; j < ngen; j++) {
		  Float_t etag = gjets->GetEta(j);
		  Float_t phig = gjets->GetPhi(j);
		  Float_t deta = etag - etaj;
		  Float_t dphi = TMath::Abs(phig - phij);
		  if (dphi > TMath::Pi()) dphi = 2. * TMath::Pi() - dphi;
		  Float_t r = TMath::Sqrt(deta * deta + dphi * dphi);
		  if (r  < rmin) {
		      rmin = r;
		      igen = j;
		  }
	      }

	      Float_t egen = gjets->GetPt(igen);
	      e1H->Fill(gjets->GetPt(igen));
	      Float_t etag = gjets->GetEta(igen);
	      Float_t phig = gjets->GetPhi(igen);
	      Float_t dphi = phig - phij;

	      if (egen > 125. && egen < 150.) {
		  phiH->Fill((dphi));
		  etaH->Fill(etag - etaj);
		  phi1H->Fill(phig);
		  phi2H->Fill(phij);		  
		  eta1H->Fill(etag);
		  eta2H->Fill(etaj);
		  e4H->Fill(emax);
		  dr2H->Fill(rmin);
	      }
	  }
      }
      

//
//   Leading particle
//
    Float_t etal = leading->GetLeading()->Eta();
    Float_t phil = leading->GetLeading()->Phi();
    Float_t el   = leading->GetLeading()->E();
    e3H->Fill(el);
    
    Float_t rmin = 1.e6;
    Int_t igen = -1;
    Int_t ngen = gjets->GetNJets();
    for (Int_t j = 0; j < ngen; j++) {
	Float_t etag = gjets->GetEta(j);
	Float_t phig = gjets->GetPhi(j);
	Float_t deta = etag-etal;
	Float_t dphi = TMath::Abs(phig - phil);
	if (dphi > TMath::Pi()) dphi = 2. * TMath::Pi() - dphi;

	Float_t r = TMath::Sqrt(deta * deta + dphi * dphi);
	
	if (r  < rmin) {
		rmin = r;
		igen = j;
	}
    }
    if (egen > 125. && egen < 150.) 
	dr3H->Fill(rmin);

//    cout << " Generated Jets:" << endl;
//    gjets->PrintJets();
//    cout << " Leading particle: " << endl;
//    leading->PrintLeading();
  }

  // Get Control Plots
  TCanvas* c1 = new TCanvas("c1");
  eH->Draw();
  e1H->SetLineColor(2);
  e2H->SetLineColor(4);
  e3H->SetLineColor(5);
  e1H->Draw("same");
  e2H->Draw("same");
  e3H->Draw("same");

  TCanvas* c2 = new TCanvas("c2");
//  dr1H->Draw();
  dr2H->SetLineColor(2);
  dr2H->Draw("");
  
  TCanvas* c3 = new TCanvas("c3");
  dr2H->Draw();
  dr3H->Draw("same");

  TCanvas* c4 = new TCanvas("c4");
  eH->Draw();

  TCanvas* c5 = new TCanvas("c5");
  etaH->Draw();

  TCanvas* c5a = new TCanvas("c5a");
  eta1H->Draw();

  TCanvas* c5b = new TCanvas("c5b");
  eta2H->Draw();

  TCanvas* c6 = new TCanvas("c6");
  e4H->Draw();
  TCanvas* c7 = new TCanvas("c7");
  phiH->Draw();

  TCanvas* c7a = new TCanvas("c7a");
  phi1H->Draw();
  TCanvas* c7b = new TCanvas("c7b");
  phi2H->Draw();
}
 read_jets.C:1
 read_jets.C:2
 read_jets.C:3
 read_jets.C:4
 read_jets.C:5
 read_jets.C:6
 read_jets.C:7
 read_jets.C:8
 read_jets.C:9
 read_jets.C:10
 read_jets.C:11
 read_jets.C:12
 read_jets.C:13
 read_jets.C:14
 read_jets.C:15
 read_jets.C:16
 read_jets.C:17
 read_jets.C:18
 read_jets.C:19
 read_jets.C:20
 read_jets.C:21
 read_jets.C:22
 read_jets.C:23
 read_jets.C:24
 read_jets.C:25
 read_jets.C:26
 read_jets.C:27
 read_jets.C:28
 read_jets.C:29
 read_jets.C:30
 read_jets.C:31
 read_jets.C:32
 read_jets.C:33
 read_jets.C:34
 read_jets.C:35
 read_jets.C:36
 read_jets.C:37
 read_jets.C:38
 read_jets.C:39
 read_jets.C:40
 read_jets.C:41
 read_jets.C:42
 read_jets.C:43
 read_jets.C:44
 read_jets.C:45
 read_jets.C:46
 read_jets.C:47
 read_jets.C:48
 read_jets.C:49
 read_jets.C:50
 read_jets.C:51
 read_jets.C:52
 read_jets.C:53
 read_jets.C:54
 read_jets.C:55
 read_jets.C:56
 read_jets.C:57
 read_jets.C:58
 read_jets.C:59
 read_jets.C:60
 read_jets.C:61
 read_jets.C:62
 read_jets.C:63
 read_jets.C:64
 read_jets.C:65
 read_jets.C:66
 read_jets.C:67
 read_jets.C:68
 read_jets.C:69
 read_jets.C:70
 read_jets.C:71
 read_jets.C:72
 read_jets.C:73
 read_jets.C:74
 read_jets.C:75
 read_jets.C:76
 read_jets.C:77
 read_jets.C:78
 read_jets.C:79
 read_jets.C:80
 read_jets.C:81
 read_jets.C:82
 read_jets.C:83
 read_jets.C:84
 read_jets.C:85
 read_jets.C:86
 read_jets.C:87
 read_jets.C:88
 read_jets.C:89
 read_jets.C:90
 read_jets.C:91
 read_jets.C:92
 read_jets.C:93
 read_jets.C:94
 read_jets.C:95
 read_jets.C:96
 read_jets.C:97
 read_jets.C:98
 read_jets.C:99
 read_jets.C:100
 read_jets.C:101
 read_jets.C:102
 read_jets.C:103
 read_jets.C:104
 read_jets.C:105
 read_jets.C:106
 read_jets.C:107
 read_jets.C:108
 read_jets.C:109
 read_jets.C:110
 read_jets.C:111
 read_jets.C:112
 read_jets.C:113
 read_jets.C:114
 read_jets.C:115
 read_jets.C:116
 read_jets.C:117
 read_jets.C:118
 read_jets.C:119
 read_jets.C:120
 read_jets.C:121
 read_jets.C:122
 read_jets.C:123
 read_jets.C:124
 read_jets.C:125
 read_jets.C:126
 read_jets.C:127
 read_jets.C:128
 read_jets.C:129
 read_jets.C:130
 read_jets.C:131
 read_jets.C:132
 read_jets.C:133
 read_jets.C:134
 read_jets.C:135
 read_jets.C:136
 read_jets.C:137
 read_jets.C:138
 read_jets.C:139
 read_jets.C:140
 read_jets.C:141
 read_jets.C:142
 read_jets.C:143
 read_jets.C:144
 read_jets.C:145
 read_jets.C:146
 read_jets.C:147
 read_jets.C:148
 read_jets.C:149
 read_jets.C:150
 read_jets.C:151
 read_jets.C:152
 read_jets.C:153
 read_jets.C:154
 read_jets.C:155
 read_jets.C:156
 read_jets.C:157
 read_jets.C:158
 read_jets.C:159
 read_jets.C:160
 read_jets.C:161
 read_jets.C:162
 read_jets.C:163
 read_jets.C:164
 read_jets.C:165
 read_jets.C:166
 read_jets.C:167
 read_jets.C:168
 read_jets.C:169
 read_jets.C:170
 read_jets.C:171
 read_jets.C:172
 read_jets.C:173
 read_jets.C:174
 read_jets.C:175
 read_jets.C:176
 read_jets.C:177
 read_jets.C:178
 read_jets.C:179
 read_jets.C:180
 read_jets.C:181
 read_jets.C:182
 read_jets.C:183
 read_jets.C:184
 read_jets.C:185
 read_jets.C:186
 read_jets.C:187
 read_jets.C:188
 read_jets.C:189
 read_jets.C:190
 read_jets.C:191
 read_jets.C:192
 read_jets.C:193
 read_jets.C:194
 read_jets.C:195
 read_jets.C:196
 read_jets.C:197
 read_jets.C:198
 read_jets.C:199