/data3/calcul/jacquem/working_dir/Micromegas/micromegasFrameWork/src/analyse/root/Analysis_dirac.C

Go to the documentation of this file.
00001 {gROOT->Reset();
00002   
00003   gSystem->Load("libMicro.so");
00004   gStyle->SetPalette(1);
00005 
00006   bool display = 0;
00007   bool plot = 1;
00008 
00009   TString file = "dirac";
00010 
00011   TString filename =  file +".root";
00012 
00013   int xpos,ypos,zpos,val;
00014   Long64_t t,t1,t2,t3,dt;
00015   int nchannel = 0;
00016   bool time_cut = 0;
00017   int hardid = 0;
00018   int softid = 0;
00019   int nhit = 0;
00020 
00021   TH1I * hx_1 = new TH1I("hx_1","X distribution of hits in chamber 1",8,0,8);
00022   TH1I * hx_2 = new TH1I("hx_2","X distribution of hits in chamber 2",8,0,8);
00023   TH1I * hx_3 = new TH1I("hx_3","X distribution of hits in chamber 3",8,0,8);
00024   TH1I * hx_4 = new TH1I("hx_4","X distribution of hits in chamber 4",8,0,8);
00025 
00026   TH1I * hy_1 = new TH1I("hy_1","Y distribution of hits in chamber 1",8,0,8);
00027   TH1I * hy_2 = new TH1I("hy_2","Y distribution of hits in chamber 2",8,0,8);
00028   TH1I * hy_3 = new TH1I("hy_3","Y distribution of hits in chamber 3",8,0,8);
00029   TH1I * hy_4 = new TH1I("hy_4","Y distribution of hits in chamber 4",8,0,8);
00030 
00031   TH2I * hxy_1 = new TH2I("hxy_1","XY distribution of hits in chamber 1",8,0,8,8,0,8);
00032   TH2I * hxy_2 = new TH2I("hxy_2","XY distribution of hits in chamber 2",8,0,8,8,0,8);
00033   TH2I * hxy_3 = new TH2I("hxy_3","XY distribution of hits in chamber 3",8,0,8,8,0,8);
00034   TH2I * hxy_4 = new TH2I("hxy_4","XY distribution of hits in chamber 4",8,0,8,8,0,8);
00035 
00036   TH1I * hz = new TH1I("hz","Z distribution of hits",25,-5,20);
00037 
00038   TH1I * hc_1 = new TH1I("hc_1","Channel number of hits in chamber 1",64,0,64);
00039   TH1I * hc_2 = new TH1I("hc_2","Channel number of hits in chamber 2",64,0,64);
00040   TH1I * hc_3 = new TH1I("hc_3","Channel number of hits in chamber 3",64,0,64);
00041   TH1I * hc_4 = new TH1I("hc_4","Channel number of hits in chamber 4",64,0,64);
00042 
00043   int bcid_hit_max = 10000;
00044   TH1I * hbcid_hit_1 = new TH1I("hbcid_hit_1","BCID_hit distribution in chamber 1",1000,0,bcid_hit_max);
00045   TH1I * hbcid_hit_2 = new TH1I("hbcid_hit_2","BCID_hit distribution in chamber 2",1000,0,bcid_hit_max);
00046   TH1I * hbcid_hit_3 = new TH1I("hbcid_hit_3","BCID_hit distribution in chamber 3",1000,0,bcid_hit_max);
00047   TH1I * hbcid_hit_4 = new TH1I("hbcid_hit_4","BCID_hit distribution in chamber 4",1000,0,bcid_hit_max);
00048 
00049   int bcid_dif_max = 2000;
00050   TH1I * hbcid_dif_1 = new TH1I("hbcid_dif_1","BCID_dif distribution in chamber 1",1000,0,bcid_dif_max);
00051   TH1I * hbcid_dif_2 = new TH1I("hbcid_dif_2","BCID_dif distribution in chamber 2",1000,0,bcid_dif_max);
00052   TH1I * hbcid_dif_3 = new TH1I("hbcid_dif_3","BCID_dif distribution in chamber 3",1000,0,bcid_dif_max);
00053   TH1I * hbcid_dif_4 = new TH1I("hbcid_dif_4","BCID_dif distribution in chamber 4",1000,0,bcid_dif_max);
00054 
00055   int bcid_abs_max = 1e9;
00056   TH1I * hbcid_abs_1 = new TH1I("hbcid_abs_1","BCID_abs distribution in chamber 1",1000,0,bcid_abs_max);
00057   TH1I * hbcid_abs_2 = new TH1I("hbcid_abs_2","BCID_abs distribution in chamber 2",1000,0,bcid_abs_max);
00058   TH1I * hbcid_abs_3 = new TH1I("hbcid_abs_3","BCID_abs distribution in chamber 3",1000,0,bcid_abs_max);
00059   TH1I * hbcid_abs_4 = new TH1I("hbcid_abs_4","BCID_abs distribution in chamber 4",1000,0,bcid_abs_max);
00060 
00061   TH1I * hnhit_1 = new TH1I("hnhit_1","Number of hits per event (per DIF readout) in chamber 1",100,0,100);
00062   TH1I * hnhit_2 = new TH1I("hnhit_2","Number of hits per event (per DIF readout) in chamber 2",100,0,100);
00063   TH1I * hnhit_3 = new TH1I("hnhit_3","Number of hits per event (per DIF readout) in chamber 3",100,0,100);
00064   TH1I * hnhit_4 = new TH1I("hnhit_4","Number of hits per event (per DIF readout) in chamber 4",100,0,100);
00065 
00066 
00067 
00068   int n1=0;
00069   int n2=0;
00070   int n3=0;
00071   int n4=0;
00072   int one_hit_each_chamber = 0;
00073 
00074 
00075 
00076   TFile *f = new TFile(filename);
00077   cout<<"reading File : "<<filename<<endl;
00078 
00079 
00080   TIter nextkey(f.GetListOfKeys());
00081   TKey *key;
00082 
00083   while (key = (TKey*)nextkey()) {
00084     
00085     TTree *tree = (TTree*)key->ReadObj();                
00086     MTRun* run = (MTRun*)tree->GetUserInfo()->FindObject("MTRun");
00087     run->Info();
00088 
00089 
00090   int nEvent = tree.GetEntries();
00091   cout <<"nEvent="<<nEvent<<endl;
00092   float nevent = nEvent;
00093 
00094 
00095   MTEvent *evt = new MTEvent();
00096 
00097   TBranch *branch= tree->GetBranch("MTEvent");
00098   branch->SetAddress(&evt);
00099 
00100 
00101 
00102 
00103 
00104   for (int i=0;i<nevent;i++){  
00105     //for (int i=nevent-10;i<nevent;i++){  
00106 
00107     if (i%10 == 0){cout<<i/nevent*100<<" %"<<"\r"<<flush;}
00108 
00109     tree.GetEntry(i);
00110     nchannel = evt->GetNchannel();
00111     nhit+=nchannel;
00112 
00113     //cout<<"event number = "<<i<<"  Number of hits = "<<nchannel<<endl;
00114 
00115 
00116     n1=0;n2=0;n3=0;n4=0;
00117 
00118 
00119     for (int j=0;j<nchannel;j++){
00120 
00121     MTChannel* channel = (MTChannel*)evt->GetChannels()->UncheckedAt(j);
00122     xpos = channel->GetX();
00123     ypos = channel->GetY();
00124     zpos = channel->GetZ();
00125     val = channel->GetDigitalValue();
00126     hardid = channel->GetHardId();
00127     softid = channel->GetSoftId();
00128 
00129     t1 = channel->GetBcId_Abs();
00130     t2 = channel->GetBcId_Dif();
00131     t3 = channel->GetBcId_Hit();
00132     dt = (t2-t3);
00133     t = (t1 - (t2-t3));
00134 
00135 
00136     hz->Fill(zpos);
00137 
00138     if (zpos == 0) {
00139       hx_1->Fill(xpos);hy_1->Fill(ypos);hxy_1->Fill(xpos,ypos);hc_1->Fill(hardid);hbcid_hit_1->Fill(t3);hbcid_dif_1->Fill(t2);hbcid_abs_1->Fill(t1);hnhit_1->Fill(nchannel);if (hardid!=11 && hardid!=57){n1++;}}
00140 
00141     if (zpos == 5) {
00142       hx_2->Fill(xpos);hy_2->Fill(ypos);hxy_2->Fill(xpos,ypos);hc_2->Fill(hardid);hbcid_hit_2->Fill(t3);hbcid_dif_2->Fill(t2);hbcid_abs_2->Fill(t1);hnhit_2->Fill(nchannel);if (hardid!=11 && hardid!=57){n2++;}}
00143 
00144     if (zpos == 10){
00145       hx_3->Fill(xpos);hy_3->Fill(ypos);hxy_3->Fill(xpos,ypos);hc_3->Fill(hardid);hbcid_hit_3->Fill(t3);hbcid_dif_3->Fill(t2);hbcid_abs_3->Fill(t1);hnhit_3->Fill(nchannel);if (hardid!=11 && hardid!=57){n3++;}}
00146 
00147     if (zpos == 15){
00148       hx_4->Fill(xpos);hy_4->Fill(ypos);hxy_4->Fill(xpos,ypos);hc_4->Fill(hardid);hbcid_hit_4->Fill(t3);hbcid_dif_4->Fill(t2);hbcid_abs_4->Fill(t1);hnhit_4->Fill(nchannel);if (hardid!=11 && hardid!=57){n4++;}}
00149 
00150     time_cut = (dt>=2 && dt<=8);
00151 
00152     if (display){cout<<" x = "<<xpos<<" y = "<<ypos<<" z = "<<zpos<<" val = "<<val<<" hardid = "<<hardid<<" softid = "<<softid<<" bcid_abs = "<<t1<<" bcid_dif = "<<t2<<" bcid_hit = "<<t3<<endl;}}}}
00153 
00154    
00155 
00156 
00157   cout<<"Number of hits = "<<nhit<<endl;
00158 
00159 
00160 
00161 
00162   if (plot){
00163 
00164     TCanvas * c1 = new TCanvas("c1","",10,10,1600,400);
00165     c1->Divide(4,1);
00166     c1->cd(1);
00167     hxy_1->Draw("zcol");
00168     c1->cd(2);
00169     hxy_2->Draw("zcol");
00170     c1->cd(3);
00171     hxy_3->Draw("zcol");
00172     c1->cd(4);
00173     hxy_4->Draw("zcol");
00174 
00175     TCanvas * c2 = new TCanvas("c2","",10,10,1600,400);
00176     c2->Divide(4,1);
00177     c2->cd(1);
00178     hc_1->Draw();
00179     c2->cd(2);
00180     hc_2->Draw();
00181     c2->cd(3);
00182     hc_3->Draw();
00183     c2->cd(4);
00184     hc_4->Draw();
00185 
00186     TCanvas * c3 = new TCanvas("c3","",10,10,1600,400);
00187     c3->Divide(4,1);
00188     c3->cd(1);
00189     hbcid_hit_1->Draw();
00190     c3->cd(2);
00191     hbcid_hit_2->Draw();
00192     c3->cd(3);
00193     hbcid_hit_3->Draw();
00194     c3->cd(4);
00195     hbcid_hit_4->Draw();
00196 
00197     TCanvas * c4 = new TCanvas("c4","",10,10,600,600);
00198     hz->Draw();
00199 
00200     TCanvas * c5 = new TCanvas("c5","",10,10,1600,400);
00201     c5->Divide(4,1);
00202     c5->cd(1);
00203     hnhit_1->Draw();
00204     c5->cd(2);
00205     hnhit_2->Draw();
00206     c5->cd(3);
00207     hnhit_3->Draw();
00208     c5->cd(4);
00209     hnhit_4->Draw();
00210 
00211     TCanvas * c6 = new TCanvas("c6","",10,10,1600,400);
00212     c6->Divide(4,1);
00213     c6->cd(1);
00214     hbcid_dif_1->Draw();
00215     c6->cd(2);
00216     hbcid_dif_2->Draw();
00217     c6->cd(3);
00218     hbcid_dif_3->Draw();
00219     c6->cd(4);
00220     hbcid_dif_4->Draw();
00221 
00222     TCanvas * c7 = new TCanvas("c7","",10,10,1600,400);
00223     c7->Divide(4,1);
00224     c7->cd(1);
00225     hbcid_abs_1->Draw();
00226     c7->cd(2);
00227     hbcid_abs_2->Draw();
00228     c7->cd(3);
00229     hbcid_abs_3->Draw();
00230     c7->cd(4);
00231     hbcid_abs_4->Draw();
00232 
00233 
00234     TString plotname1 = "Plots/"+ file +"_xy_hit.png";
00235     TString plotname2 = "Plots/"+ file +"_channel_number_hit.png";
00236     TString plotname3 = "Plots/"+ file +"_bcid_hit.png";
00237     TString plotname4 = "Plots/"+ file +"_z_hit.png";
00238     TString plotname5 = "Plots/"+ file +"_number_of_hit.png";
00239     TString plotname6 = "Plots/"+ file +"_bcid_dif.png";
00240     TString plotname7 = "Plots/"+ file +"_bcid_abs.png";
00241 
00242     c1->Print(plotname1.Data());
00243     c2->Print(plotname2.Data());
00244     c3->Print(plotname3.Data());
00245     c4->Print(plotname4.Data());
00246     c5->Print(plotname5.Data());
00247     c6->Print(plotname6.Data());
00248     c7->Print(plotname7.Data());
00249 
00250 
00251 
00252   }
00253 
00254 
00255 
00256 
00257 }

Generated on Mon Jan 7 13:15:21 2013 for MicromegasFramework by  doxygen 1.4.7