macros.C

Bahytbek Mauyey, 06/14/2018 04:03 AM

Download (2.65 KB)

 
1
#define macros_cxx
2
#include "macros.h"
3
#include <TH2.h>
4
#include <TStyle.h>
5
#include <TCanvas.h>
6

    
7
void macros::Loop()
8
{
9
//   In a ROOT session, you can do:
10
//      Root > .L macros.C
11
//      Root > macros t
12
//      Root > t.GetEntry(12); // Fill t data members with entry number 12
13
//      Root > t.Show();       // Show values of entry 12
14
//      Root > t.Show(16);     // Read and show values of entry 16
15
//      Root > t.Loop();       // Loop on all entries
16
//
17

    
18
//     This is the loop skeleton where:
19
//    jentry is the global entry number in the chain
20
//    ientry is the entry number in the current Tree
21
//  Note that the argument to GetEntry must be:
22
//    jentry for TChain::GetEntry
23
//    ientry for TTree::GetEntry and TBranch::GetEntry
24
//
25
//       To read only selected branches, Insert statements like:
26
// METHOD1:
27
//   fChain->SetBranchStatus("*",0);  // disable all branches
28
//    fChain->SetBranchStatus("NeEvent_SQY_L[16]",1);  // activate branchname
29
//     fChain->SetBranchStatus("NeEvent_SQX_L[32]",1);  // activate branchname
30
// METHOD2: replace line
31
//    fChain->GetEntry(jentry);       //read all branches
32
 //  NeEvent_SQY_L->GetEntry(ientry); //read only this branch
33
//   if (fChain == 0) return;
34

    
35
TFile * fout= new TFile("positionSQ20mkm_thick_13.06.18_.root","recreate");
36
   TTree * tout = new TTree("Position"," ");
37
Double_t xa,ya,x20;
38
tout->Branch("y_1mm",&ya,"y/d");
39
tout->Branch("x_1mm",&xa,"x/d");
40
tout->Branch("x_20mkm",&x20,"x20/d");
41

    
42
   Long64_t nentries = fChain->GetEntriesFast();
43

    
44
   Long64_t nbytes = 0, nb = 0;
45
   for (Long64_t jentry=0; jentry<nentries;jentry++) {
46
      Long64_t ientry = LoadTree(jentry);
47
      if (ientry < 0) break;
48
      nb = fChain->GetEntry(jentry);   nbytes += nb;
49
      // if (Cut(ientry) < 0) continue;
50

    
51
for(int i=0;i<16;i++)
52
      {
53
     if(NeEvent_SQY_L[i]>200 && NeEvent_SQY_L[i]<1500) {ya=(i+0.5)*58./16.-29.; }             //length of thick detector is 58mm; 0.5 means we took center of stripe
54
     if (NeEvent_SQX_L[i]>200 && NeEvent_SQX_L[i]<1500) {xa=(i+0.5)*58./32-29.;}             
55
     if (NeEvent_SQY_R[i]>200 && NeEvent_SQY_R[i]<1500) {x20=(i+0.5)*50./16.-29.+4.65625;}        
56
     }                                                                               // 15th stripe for xa corresponds to the 7th stripe x20, difference 
57
                                                                                                15*58/32+58/64-50/32-7*50/16=4.65625mm
58

    
59

    
60
for(int j=16;j<32;j++)
61
     {
62
   if(NeEvent_SQX_L[j]>200 && NeEvent_SQX_L[j]<1500) {xa=(j+0.5)*58./32.-29.; }
63
      }
64
      tout->Fill();
65
   }
66
 fout->cd();
67
   tout->Write();
68
   fout->Close();
69
}
70