Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:12:44

0001 float ClusAdcCut_toy()
0002 {
0003     std::vector<int> inner_cluster_phi; inner_cluster_phi.clear();
0004     std::vector<int> outer_cluster_phi; outer_cluster_phi.clear();
0005 
0006     TRandom3 * r = new TRandom3(0);
0007 
0008     int number_of_tracks = 50000;
0009     double clus_drop_ratio = 0.05; 
0010 
0011     for (int i = 0; i < number_of_tracks; i++) // note : define number of tracks 
0012     {
0013         inner_cluster_phi.push_back(i);
0014         outer_cluster_phi.push_back(i);
0015     }
0016     // note : inner_cluster_phi[i] should pair with outer_cluster_phi[i]
0017 
0018     std::cout<<"set number_of_tracks = "<<number_of_tracks<<std::endl;
0019     std::cout<<"drop fraction: "<<clus_drop_ratio<<std::endl;
0020     std::cout<<"before hit dropping, inner_cluster_phi.size(): "<<inner_cluster_phi.size()<<", outer_cluster_phi.size(): "<<outer_cluster_phi.size()<<std::endl;
0021 
0022     for (int i = 0; i < inner_cluster_phi.size(); i++)
0023     {
0024         if (r -> Uniform(0,1) < clus_drop_ratio)
0025         {
0026             inner_cluster_phi.erase(inner_cluster_phi.begin() + i);
0027             i--;
0028         }
0029     }
0030 
0031     for (int i = 0; i < outer_cluster_phi.size(); i++)
0032     {
0033         if (r -> Uniform(0,1) < clus_drop_ratio)
0034         {
0035             outer_cluster_phi.erase(outer_cluster_phi.begin() + i);
0036             i--;
0037         }
0038     }
0039 
0040     std::cout<<"post hit dropping, inner_cluster_phi.size() = "<<inner_cluster_phi.size()<<std::endl;
0041     std::cout<<"post hit dropping, outer_cluster_phi.size() = "<<outer_cluster_phi.size()<<std::endl;
0042 
0043     int remaining_track_count = 0;
0044     for (auto clu_inner : inner_cluster_phi)
0045     {
0046         for (auto clu_outer : outer_cluster_phi)
0047         {
0048             // std::cout<<"clu_inner = "<<clu_inner<<", clu_outer = "<<clu_outer<<std::endl;
0049             if (clu_inner == clu_outer)
0050             {
0051                 remaining_track_count++;
0052             }
0053         }
0054     }
0055 
0056     std::cout<<"remaining_track_count = "<<remaining_track_count<<std::endl;
0057     std::cout<<"ratio: "<<(double)remaining_track_count/(double)number_of_tracks<<std::endl;
0058 
0059 
0060     return 0;
0061 }