/// it has to be implemented the random coincidence counts /// correct and add fiducial volume /// this version compares 2 files and check what are the common radon events #include #include #include #include #include #include #include "TNtuple.h" #include "TFile.h" #include "TH1F.h" #include "TH2F.h" #include "TTree.h" #include "TChain.h" #include "TCanvas.h" #include "TGraph.h" #include "TGraphErrors.h" #include "TF1.h" #include "TStyle.h" #include "TCut.h" #include "TObject.h" #include "Compare_Radon_2.h" std::vector *radon_run; std::vector *radon_run2; std::vector ::iterator check_file1_run; std::vector ::iterator check_file2_run; std::vector ::iterator check_ident1; std::vector ::iterator check_ident2; std::vector ::iterator TrovaRun(std::vector *vettore_run, int run){ std::vector ::iterator iter; for(iter=vettore_run->begin();iter!=vettore_run->end();iter++){ if((*iter).RunNumber==run){ return iter; } } return vettore_run->end(); } void CompareRadonBXFilled(char *filename1,char *filename2,bool write_radon=false){ // Tagli Gemma TCut Before ("HoursFromBegin/24.<18."); TCut After ("HoursFromBegin/24.>=18. && HoursFromBegin/24.<27."); TCut Last ("HoursFromBegin/24.>=27. "); TCut Up ("(BiClus_z_mi+PoClus_z_mi)/2.>0"); TCut Down ("(BiClus_z_mi+PoClus_z_mi)/2.<0"); TCut NoMuon ("(BiMuon!=1) && (Bitt70<0.4) && (Pott70<0.4) && (BiMeanTime<100) && (PoMeanTime<100) && (PoMuon!=1)"); TCut SmallBi ("BiCharge<800"); TCut Maggio ("HoursFromBegin/24.>=0. && HoursFromBegin/24.<13."); TCut Giugno ("HoursFromBegin/24.>=13. && HoursFromBegin/24.<43."); TCut Luglio ("HoursFromBegin/24.>=43. && HoursFromBegin/24.<74."); TCut Agosto ("HoursFromBegin/24.>=74. && HoursFromBegin/24.<105."); TCut Settembre ("HoursFromBegin/24.>=105. && HoursFromBegin/24.<135."); TCut Ottobre ("HoursFromBegin/24.>=135. && HoursFromBegin/24.<166."); TCut Novembre ("HoursFromBegin/24.>=166. && HoursFromBegin/24.<196."); TCut Dicembre ("HoursFromBegin/24.>=196. && HoursFromBegin/24.<227."); //TCut Bossa = Novembre; //per fare al volo tagli pallosi char Dist_s[200]; float DistValue=1.0; sprintf(Dist_s,"sqrt( (BiClus_x_mi-PoClus_x_mi)**2+(BiClus_y_mi-PoClus_y_mi)**2+(BiClus_z_mi-PoClus_z_mi)**2)<%f",DistValue); TCut cutDist(Dist_s); char Dist_sMi[200]; sprintf(Dist_sMi,"sqrt( (BiClus_x_mi-PoClus_x_mi)**2+(BiClus_y_mi-PoClus_y_mi)**2+(BiClus_z_mi-PoClus_z_mi)**2)<%f",DistValue); TCut cutDistMi(Dist_sMi); char Dist_max_s[200]; float DistValue_max=7.0; sprintf(Dist_max_s,"sqrt( (BiClus_x_mi-PoClus_x_mi)**2+(BiClus_y_mi-PoClus_y_mi)**2+(BiClus_z_mi-PoClus_z_mi)**2)<%f",DistValue_max); TCut cutDist_max(Dist_max_s); char BiPoRad_s[200]; float BiPoRadValue=3.218; sprintf(BiPoRad_s,"sqrt( 0.25*(BiClus_x_mi+PoClus_x_mi)**2+ 0.25*(BiClus_y_mi+PoClus_y_mi)**2+0.25*(BiClus_z_mi+PoClus_z_mi)**2)<%f",BiPoRadValue); TCut cutPosBiPo(BiPoRad_s); char BiPoGuscio_s[200]; float BiPoGuscio_Value=4.0; sprintf(BiPoGuscio_s,"sqrt( 0.25*(BiClus_x_mi+PoClus_x_mi)**2+ 0.25*(BiClus_y_mi+PoClus_y_mi)**2+0.25*(BiClus_z_mi+PoClus_z_mi)**2)<%f",BiPoGuscio_Value); TCut cutBiPo_Guscio(BiPoGuscio_s); char BiRad_s[200]; float BiRadValue=3.218; sprintf(BiRad_s,"sqrt( (BiClus_x_mi)**2+(BiClus_y_mi)**2+(BiClus_z_mi)**2)<%f",BiRadValue); TCut cutPosBi(BiRad_s); char PoRad_s[200]; float PoRadValue=3.218; sprintf(PoRad_s,"sqrt( (PoClus_x_mi)**2+(PoClus_y_mi)**2+(PoClus_z_mi)**2)<%f",PoRadValue); TCut cutPosPo(BiPoRad_s); char PoCharge_s[200]; float PoChargeMin=150.; float PoChargeMax=500.; sprintf(PoCharge_s,"(PoCharge>%f)&&( PoCharge<%f)",PoChargeMin,PoChargeMax); TCut cutPoCharge(PoCharge_s); //TCut LowPoCharge("PoCharge<200"); char BiCharge_s[200]; float BiChargeMin=90.; float BiChargeMax=1900.; sprintf(BiCharge_s,"(BiCharge>%f)&&( BiCharge<%f)",BiChargeMin,BiChargeMax); TCut cutBiCharge(BiCharge_s); char Good_Event_s[400]; float BiPoRadCut=1.0; sprintf(Good_Event_s,"sqrt( (BiClus_x_mi-PoClus_x_mi)**2+(BiClus_y_mi-PoClus_y_mi)**2+(BiClus_z_mi-PoClus_z_mi)**2)<%f && ",BiPoRadCut); TCut Good_Event(Good_Event_s); TFile *f1 = new TFile(filename1,"READ"); //f1->ls(); TTree *globtree1 = (TTree*)f1->Get("globtree"); if(!globtree1){ std::cout << "globtree Invalid root file: " << filename1 << ". Ignored. \n"; return; }else{ std::cout << "globtree good root file: " << filename1 << " \n"; } TFile *f2 = new TFile(filename2,"READ"); //f2->ls(); TTree *globtree2 = (TTree*)f2->Get("globtree"); if(!globtree1){ std::cout << "globtree Invalid root file: " << filename2 << ". Ignored. \n"; return; }else{ std::cout << "globtree good root file: " << filename2 << " \n"; } char output_name_ASCI1[600]; sprintf(output_name_ASCI1,"Compare_%s_%s.ASCI.txt",filename1,filename2); fstream f_out1(output_name_ASCI1,std::ios::out); if(write_radon) f_out1.precision(4); //if(write_radon) f_out1 << "RUN\tBiEv\tPoEv\txBi (m)\tyBi (m)\tzBi (m)\txPo (m)\tyPo (m)\tzPo (m)\ttrun (h)\tdt (mus)\tBiCharge\tPoCharge\tBiHits\tPohits" << std::endl; int last_dummy_run=0; int last_dummy_run2=0; int entries1=globtree1->GetEntries(); int entries2=globtree2->GetEntries(); int loc1_Biiev=0,loc1_Poiev=0,loc1_RunNumber=0; double loc1_trun=0,loc1_HoursFromBegin=0; Long64_t loc1_StartRunSec=0,loc1_StopRunSec=0,loc1_BitimeNs=0,loc1_dt=0; double loc1_BiMeanTime=0,loc1_PoMeanTime=0,loc1_Bitt70=0,loc1_Pott70=0; float loc1_BiClus_x_mi=0,loc1_BiClus_y_mi=0,loc1_BiClus_z_mi=0; float loc1_PoClus_x_mi=0,loc1_PoClus_y_mi=0,loc1_PoClus_z_mi=0; float loc1_BiCharge=0,loc1_PoCharge=0; int loc1_BiHits=0,loc1_PoHits=0; double loc1_Bihour=0,loc1_Pohour=0; float loc1_vol=321.0; int loc1_Bipmt=0,loc1_Popmt=0; int loc1_BiMuon=0,loc1_PoMuon=0; float loc1_daysfromstart=0; int loc2_Biiev=0,loc2_Poiev=0,loc2_RunNumber=0; double loc2_trun=0,loc2_HoursFromBegin=0; Long64_t loc2_StartRunSec=0,loc2_StopRunSec=0,loc2_BitimeNs=0,loc2_dt=0; double loc2_BiMeanTime=0,loc2_PoMeanTime=0,loc2_Bitt70=0,loc2_Pott70=0; float loc2_BiClus_x_mi=0,loc2_BiClus_y_mi=0,loc2_BiClus_z_mi=0; float loc2_PoClus_x_mi=0,loc2_PoClus_y_mi=0,loc2_PoClus_z_mi=0; float loc2_BiCharge=0,loc2_PoCharge=0; int loc2_BiHits=0,loc2_PoHits=0; double loc2_Bihour=0,loc2_Pohour=0; float loc2_vol=321.0; int loc2_Bipmt=0,loc2_Popmt=0; int loc2_BiMuon=0,loc2_PoMuon=0; float loc2_daysfromstart=0; double CMinPo=150,CMaxPo=500,CMinBi=90,CMaxBi=1900; //float loc2_run=0,loc2_trun=0,loc2_vol=0,loc2_NBi=0,loc2_NPo=0,loc2_NBiPo=0; globtree1->SetBranchAddress("RunNumber",&loc1_RunNumber); globtree1->SetBranchAddress("BiIev",&loc1_Biiev); globtree1->SetBranchAddress("PoIev",&loc1_Poiev); globtree1->SetBranchAddress("trun",&loc1_trun); globtree1->SetBranchAddress("HoursFromBegin",&loc1_HoursFromBegin); globtree1->SetBranchAddress("StartRunSec",&loc1_StartRunSec); globtree1->SetBranchAddress("StopRunSec",&loc1_StopRunSec); globtree1->SetBranchAddress("BiTimeNs",&loc1_BitimeNs); globtree1->SetBranchAddress("dt",&loc1_dt); globtree1->SetBranchAddress("BiMeanTime",&loc1_BiMeanTime); globtree1->SetBranchAddress("PoMeanTime",&loc1_PoMeanTime); globtree1->SetBranchAddress("Bitt70",&loc1_Bitt70); globtree1->SetBranchAddress("Pott70",&loc1_Pott70); globtree1->SetBranchAddress("BiClus_x_mi",&loc1_BiClus_x_mi); globtree1->SetBranchAddress("BiClus_y_mi",&loc1_BiClus_y_mi); globtree1->SetBranchAddress("BiClus_z_mi",&loc1_BiClus_z_mi); globtree1->SetBranchAddress("PoClus_x_mi",&loc1_PoClus_x_mi); globtree1->SetBranchAddress("PoClus_y_mi",&loc1_PoClus_y_mi); globtree1->SetBranchAddress("PoClus_z_mi",&loc1_PoClus_z_mi); globtree1->SetBranchAddress("BiMuon",&loc1_BiMuon); globtree1->SetBranchAddress("PoMuon",&loc1_PoMuon); globtree1->SetBranchAddress("BiCharge",&loc1_BiCharge); globtree1->SetBranchAddress("PoCharge",&loc1_PoCharge); globtree1->SetBranchAddress("BiHits",&loc1_BiHits); globtree1->SetBranchAddress("PoHits",&loc1_PoHits); globtree1->SetBranchAddress("BiPmt",&loc1_Bipmt); globtree1->SetBranchAddress("PoPmt",&loc1_Popmt); globtree2->SetBranchAddress("RunNumber",&loc2_RunNumber); globtree2->SetBranchAddress("BiIev",&loc2_Biiev); globtree2->SetBranchAddress("PoIev",&loc2_Poiev); globtree2->SetBranchAddress("trun",&loc2_trun); globtree2->SetBranchAddress("HoursFromBegin",&loc2_HoursFromBegin); globtree2->SetBranchAddress("StartRunSec",&loc2_StartRunSec); globtree2->SetBranchAddress("StopRunSec",&loc2_StopRunSec); globtree2->SetBranchAddress("BiTimeNs",&loc2_BitimeNs); globtree2->SetBranchAddress("dt",&loc2_dt); globtree2->SetBranchAddress("BiMeanTime",&loc2_BiMeanTime); globtree2->SetBranchAddress("PoMeanTime",&loc2_PoMeanTime); globtree2->SetBranchAddress("Bitt70",&loc2_Bitt70); globtree2->SetBranchAddress("Pott70",&loc2_Pott70); globtree2->SetBranchAddress("BiClus_x_mi",&loc2_BiClus_x_mi); globtree2->SetBranchAddress("BiClus_y_mi",&loc2_BiClus_y_mi); globtree2->SetBranchAddress("BiClus_z_mi",&loc2_BiClus_z_mi); globtree2->SetBranchAddress("PoClus_x_mi",&loc2_PoClus_x_mi); globtree2->SetBranchAddress("PoClus_y_mi",&loc2_PoClus_y_mi); globtree2->SetBranchAddress("PoClus_z_mi",&loc2_PoClus_z_mi); globtree2->SetBranchAddress("BiMuon",&loc2_BiMuon); globtree2->SetBranchAddress("PoMuon",&loc2_PoMuon); globtree2->SetBranchAddress("BiCharge",&loc2_BiCharge); globtree2->SetBranchAddress("PoCharge",&loc2_PoCharge); globtree2->SetBranchAddress("BiHits",&loc2_BiHits); globtree2->SetBranchAddress("PoHits",&loc2_PoHits); globtree2->SetBranchAddress("BiPmt",&loc2_Bipmt); globtree2->SetBranchAddress("PoPmt",&loc2_Popmt); TH1F *hrBiPoMi = new TH1F("hrBiPoMi","hrBiPoMi",700,0,7.0); TH2F *hrhtMi = new TH2F("hrhtMi","hrhtMi",200,0,710,200,0,7.0); TH1F *GOODhrBiPoMi = new TH1F("GOODhrBiPoMi","GOODhrBiPoMi",700,0,7.0); TH1F *zoom_GOODhrBiPoMi = new TH1F("zoom_GOODhrBiPoMi","zoom_GOODhrBiPoMi",50,0,1.0); TH2F *GOODhrhtMi = new TH2F("GOODhrhtMi","GOODhrhtMi",200,0,710,200,0,7.0); TH2F *GOODhX2Y2zMi = new TH2F("GOODhX2Y2zMi","GOODhX2Y2zMi",160,0,6,160,-6,6); TH2F *hX2Y2zMi = new TH2F("hX2Y2zMi","hX2Y2zMi",160,0,6,160,-6,6); TH1F *hBiMuon = new TH1F("hBiMuon","hBiMuon",10,-1.5,1.5); TH1F *hPoMuon = new TH1F("hPoMuon","hPoMuon",10,-1.5,1.5); TH1F *ttBi= new TH1F("ttBi","ttBi",200,0.0,1.0); TH1F *ttPo = new TH1F("ttPo","ttPo",200,0.0,1.0); TH1F *ttBiI= new TH1F("ttBiI","ttBiI",200,0.0,1.0); TH1F *ttPoI = new TH1F("ttPoI","ttPoI",200,0.0,1.0); TH1F *ttBiO= new TH1F("ttBiO","ttBiO",200,0.0,1.0); TH1F *ttPoO = new TH1F("ttPoO","ttPoO",200,0.0,1.0); TH1F *hBiCharge = new TH1F("hBiCharge","hBiCharge",100,90,2000); TH1F *hPoCharge = new TH1F("hPoCharge","hPoCharge",100,90,600); TH1F *hBiHits = new TH1F("hBiHits","hBiHits",100,90,2000); TH1F *hPoHits = new TH1F("hPoHits","hPoHits",100,90,600); TH1F *GOODhBiCharge = new TH1F("GOODhBiCharge","GOODhBiCharge",100,90,2000); TH1F *GOODhPoCharge = new TH1F("GOODhPoCharge","GOODhPoCharge",100,90,600); TH1F *GOODhBiHits = new TH1F("GOODhBiHits","GOODhBiHits",100,90,2000); TH1F *GOODhPoHits = new TH1F("GOODhPoHits","GOODhPoHits",100,90,600); TH1F *hBiClus_x_mi = new TH1F("hBiClus_x_mi","hBiClus_x_mi",100,-6.0,6.0); TH1F *hBiClus_y_mi = new TH1F("hBiClus_y_mi","hBiClus_y_mi",100,-6.0,6.0); TH1F *hBiClus_z_mi = new TH1F("hBiClus_z_mi","hBiClus_z_mi",100,-6.0,6.0); TH1F *hPoClus_x_mi = new TH1F("hPoClus_x_mi","hPoClus_x_mi",100,-6.0,6.0); TH1F *hPoClus_y_mi = new TH1F("hPoClus_y_mi","hPoClus_y_mi",100,-6.0,6.0); TH1F *hPoClus_z_mi = new TH1F("hPoClus_z_mi","hPoClus_z_mi",100,-6.0,6.0); TH1F *hdt = new TH1F("hdt","hdt",120,0.,720.); TH1F *GOODhdt = new TH1F(" Time Distance Bi-Po 214 (musec)"," Time Distance Bi-Po 214 (musec)",120,0.,720.); std::cout << "Numero Totale di Candidati file1:" << entries1 << " file2:" << entries2 << std::endl; //// LOOP FILE 1 std::cout << " LOOP file1 Cerco Radon" << std::endl; for(int i=0;iGetEntry(i); loc1_dt/=1000.0; loc1_Bihour=loc1_HoursFromBegin; loc1_Pohour=loc1_HoursFromBegin; loc1_daysfromstart=loc1_HoursFromBegin/24.0; bool status=false,status2=false; if(loc1_RunNumber!=0 && loc1_RunNumber!=last_dummy_run){ bx_run_comp dummy_radon; dummy_radon.RunNumber=loc1_RunNumber; dummy_radon.RadonI=0; dummy_radon.RadonO=0; dummy_radon.volume=loc1_vol; dummy_radon.hour=loc1_trun; dummy_radon.raddayI=0.0; dummy_radon.raddayO=0.0; dummy_radon.Bihour=loc1_Bihour; dummy_radon.randomBi=0.; dummy_radon.randomPo=0.; dummy_radon.randomBiPo=0.; radon_run->push_back(dummy_radon); } float rBiMi=sqrt(loc1_BiClus_x_mi*loc1_BiClus_x_mi+loc1_BiClus_y_mi*loc1_BiClus_y_mi+loc1_BiClus_z_mi*loc1_BiClus_z_mi); float rPoMi=sqrt(loc1_PoClus_x_mi*loc1_PoClus_x_mi+loc1_PoClus_y_mi*loc1_PoClus_y_mi+loc1_PoClus_z_mi*loc1_PoClus_z_mi); float rBiPoMi=sqrt( pow((loc1_BiClus_x_mi-loc1_PoClus_x_mi),2)+pow((loc1_BiClus_y_mi-loc1_PoClus_y_mi),2)+pow((loc1_BiClus_z_mi-loc1_PoClus_z_mi),2) ); bx_radon_ident dummy_ident; dummy_ident.Bi_Iter=i; dummy_ident.Bi_EvNum=loc1_Biiev; dummy_ident.Bi_Fellow=-1; if( (rBiPoMi150 && loc1_BiCharge<1900 && loc1_BiCharge>90 ) status=true; else status=false; if( !status ){ for(check_file1_run=radon_run->begin();check_file1_run!=radon_run->end();check_file1_run++){ if((*check_file1_run).RunNumber==loc1_RunNumber){ (*check_file1_run).RadonO++; (*check_file1_run).Rad_O.push_back(dummy_ident); break; } } } if( status ){ for(check_file1_run=radon_run->begin();check_file1_run!=radon_run->end();check_file1_run++){ if((*check_file1_run).RunNumber==loc1_RunNumber){ (*check_file1_run).RadonI++; (*check_file1_run).Rad_I.push_back(dummy_ident); break; } } } last_dummy_run=loc1_RunNumber; } int radon_totI_1=0,radon_totO_1=0; std::cout << "FILE1 Numero totale di Runs:" << radon_run->size() << std::endl; float runs_1[radon_run->size()],radtot_1[radon_run->size()],radI_1[radon_run->size()],radO_1[radon_run->size()],rndmBiPo_1[radon_run->size()],runs_day_1[radon_run->size()]; float RUN_num_1[radon_run->size()], DURATION_1[radon_run->size()], radtot_2_1[radon_run->size()]; float err_radtot_1[radon_run->size()],err_radI_1[radon_run->size()],err_radO_1[radon_run->size()]; for(int i=0;isize();i++){ runs_1[i]=0;runs_day_1[i]=0;radtot_1[i]=0.0;radtot_2_1[i]=0.0;radI_1[i]=0.0;radO_1[i]=0.0;rndmBiPo_1[i]=0.0;err_radtot_1[i]=0.0;err_radI_1[i]=0.0;err_radO_1[i]=0.0; } int j=0,k=0; for(check_file1_run=radon_run->begin();check_file1_run!=radon_run->end();check_file1_run++){ (*check_file1_run).raddayI= 24.0*(*check_file1_run).RadonI/((*check_file1_run).volume*(*check_file1_run).hour) ; (*check_file1_run).raddayO= 24.0*(*check_file1_run).RadonO/((*check_file1_run).volume*(*check_file1_run).hour) ; RUN_num_1[k]=(*check_file1_run).RunNumber ; DURATION_1[k]=(*check_file1_run).hour ; runs_day_1[k]=(*check_file1_run).Bihour/24.0; runs_1[k]=(*check_file1_run).Bihour;radtot_1[k]=(*check_file1_run).raddayI+(*check_file1_run).raddayO;radI_1[k]=(*check_file1_run).raddayI;radO_1[k]=(*check_file1_run).raddayO; err_radtot_1[k]=24.0* sqrt( (*check_file1_run).RadonI )/((*check_file1_run).volume*(*check_file1_run).hour)+24.0*(*check_file1_run).RadonO/((*check_file1_run).volume*(*check_file1_run).hour); err_radI_1[k]=24.0* sqrt( (*check_file1_run).RadonI )/((*check_file1_run).volume*(*check_file1_run).hour); err_radO_1[k]=24.0* sqrt( (*check_file1_run).RadonO )/((*check_file1_run).volume*(*check_file1_run).hour); radtot_2_1[k]=(*check_file1_run).RadonI+(*check_file1_run).RadonO; //rndmBiPo_1[k]=24.* (3*236.*1e-6)*(*check_file1_run).randomBiPo/( (*check_file1_run).volume*(*check_file1_run).hour ); //rndmBiPo_1[k]=24.* (3*236.*1e-6)*( (*check_file1_run).randomBi*(*check_file1_run).randomPo )/( (*check_file1_run).volume*(*check_file1_run).hour ); radon_totI_1+=(*check_file1_run).RadonI; radon_totO_1+=(*check_file1_run).RadonO; //std::cout << k << " run:" << RUN_num_1[k] << " duration:" << DURATION_1[k] << " bihour:" << runs_1[k] << " radtot:" << radtot_1[k] << std::endl; j++;k++; }//*/ std::cout << "FILE1 Radon totI:" << radon_totI_1 << " Radon totO:" << radon_totO_1 << " Somma:" << radon_totI_1+radon_totO_1 << std::endl; //// LOOP FILE 2 bool exist_file1_evnum=false; std::cout << " LOOP file2 Cerco Radon" << std::endl; for(int i=0;iGetEntry(i); loc2_dt/=1000.0; loc2_Bihour=loc2_HoursFromBegin; loc2_Pohour=loc2_HoursFromBegin; loc2_daysfromstart=loc2_HoursFromBegin/24.0; bool status=false,status2=false; if(loc2_RunNumber!=0 && loc2_RunNumber!=last_dummy_run2){ bx_run_comp dummy_radon; dummy_radon.RunNumber=loc2_RunNumber; dummy_radon.RadonI=0; dummy_radon.RadonO=0; dummy_radon.volume=loc2_vol; dummy_radon.hour=loc2_trun; dummy_radon.raddayI=0.0; dummy_radon.raddayO=0.0; dummy_radon.Bihour=loc2_Bihour; dummy_radon.randomBi=0.; dummy_radon.randomPo=0.; dummy_radon.randomBiPo=0.; radon_run2->push_back(dummy_radon); } float rBiMi=sqrt(loc2_BiClus_x_mi*loc2_BiClus_x_mi+loc2_BiClus_y_mi*loc2_BiClus_y_mi+loc2_BiClus_z_mi*loc2_BiClus_z_mi); float rPoMi=sqrt(loc2_PoClus_x_mi*loc2_PoClus_x_mi+loc2_PoClus_y_mi*loc2_PoClus_y_mi+loc2_PoClus_z_mi*loc2_PoClus_z_mi); float rBiPoMi=sqrt( pow((loc2_BiClus_x_mi-loc2_PoClus_x_mi),2)+pow((loc2_BiClus_y_mi-loc2_PoClus_y_mi),2)+pow((loc2_BiClus_z_mi-loc2_PoClus_z_mi),2) ); bx_radon_ident dummy_ident; dummy_ident.Bi_Iter=i; dummy_ident.Bi_EvNum=loc2_Biiev; dummy_ident.Bi_Fellow=-1; if( (rBiPoMi150 && loc2_BiCharge<1900 && loc2_BiCharge>90 ) status=true; else status=false; if( !status ){ check_file2_run=TrovaRun(radon_run2,loc2_RunNumber); if( check_file2_run!=radon_run2->end()){ (*check_file2_run).RadonO++; int *fellow_type; *fellow_type=-1; check_file1_run=TrovaRun(radon_run,loc2_RunNumber); bool trovato=(*check_file1_run).TrovaRad(dummy_ident.Bi_EvNum,fellow_type); if(trovato){ if(*fellow_type==0){ dummy_ident.Bi_Fellow=1;//stesso tipo }else{ dummy_ident.Bi_Fellow=0;//tipo opposto } } if(!trovato) dummy_ident.Bi_Fellow=-1; (*check_file2_run).Rad_O.push_back(dummy_ident); break; } } //bool run_number_exist=false; if( status ){ check_file2_run=TrovaRun(radon_run2,loc2_RunNumber); if( check_file2_run!=radon_run2->end()){ (*check_file2_run).RadonI++; int *fellow_type; *fellow_type=-1; check_file1_run=TrovaRun(radon_run,loc2_RunNumber); bool trovato=(*check_file1_run).TrovaRad(dummy_ident.Bi_EvNum,fellow_type); if(trovato){ if(*fellow_type==1){ dummy_ident.Bi_Fellow=1;//stesso tipo }else{ dummy_ident.Bi_Fellow=0;//tipo opposto } } if(!trovato) dummy_ident.Bi_Fellow=-1; (*check_file2_run).Rad_I.push_back(dummy_ident); break; } } last_dummy_run2=loc2_RunNumber; } /* //////LOOP FILE 1 TO SAVE RADON THAT IS NOT PRESENT IN FILE 2 for(check_file1_run=radon_run->begin();check_file1_run!=radon_run->end();check_file1_run++){ check_file2_run=TrovaRun(radon_run2,(*check_file1_run).RunNumber); if( check_file2_run!=radon_run2->end() ){ for(check_ident1=(*check_file1_run).Rad_I.begin();check_ident1!=(*check_file1_run).Rad_I.end();check_ident1++){ int *fellow_type; *fellow_type=-1; bool trovato=(*check_file2_run).TrovaRad((*check_ident1).Bi_EvNum,fellow_type); if(trovato && ((*fellow_type)==1) ) (*check_ident1).Bi_Fellow=1;//stesso tipo if(trovato && ((*fellow_type)==0) ) (*check_ident1).Bi_Fellow=0;//stesso tipo if(!trovato) (*check_ident1).Bi_Fellow=-1;//non c'è } for(check_ident1=(*check_file1_run).Rad_O.begin();check_ident1!=(*check_file1_run).Rad_O.end();check_ident1++){ int *fellow_type; *fellow_type=-1; bool trovato=(*check_file2_run).TrovaRad((*check_ident1).Bi_EvNum,fellow_type); if(trovato && ((*fellow_type)==0) ) (*check_ident1).Bi_Fellow=1;//stesso tipo if(trovato && ((*fellow_type)==1) ) (*check_ident1).Bi_Fellow=0;//stesso tipo if(!trovato) (*check_ident1).Bi_Fellow=-1;//non c'è } } } //*/ }