Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 10:33:29

0001 
0002 //
0003 // root -l dconfig-jaydeep.C
0004 //
0005 
0006 void dconfig_jaydeep( void )
0007 {
0008   auto delphes = new DelphesConfigRICH("pfRICH");
0009 
0010   // Define particle mass hypotheses in ascending mass order; yes, there is no 
0011   // reason to overcomplicate things;
0012   delphes->AddMassHypothesis("e-");
0013   delphes->AddMassHypothesis("pi+");
0014 
0015   // Define radiator refractive index;
0016   delphes->SetRefractiveIndex(1.04549);
0017   // Tracker angular resolution as provided by Matt; FIXME: momentum resolution ignored;
0018   //delphes->ImportTrackingSmearing("../database/dth_parameters_22.11.2.txt", 
0019   //                  "../database/dph_parameters_22.11.2.txt");
0020   //delphes->ImportTrackingSmearing("../database/par_th.modified.txt", 
0021   //                  "../database/par_ph.modified.txt");
0022 
0023   // Define eta ranges in ascending order;
0024   {
0025     auto eta = delphes->AddEtaRange(-3.5, -2.8);
0026 
0027     // Arguments [0..1]: momentum ranges for this eta in [GeV] in ascending order without gaps, 
0028     // Arguments [2..N]: sigma values in [mrad] matching the mass hypotheses above, in the same 
0029     // ascending order used to call delphes->AddMassHypothesis(); 
0030 #if 0
0031     eta->AddMomentumRange( 0.05, 0.10, 0.00,  0.00);
0032     eta->AddMomentumRange( 0.10, 0.15, 0.00,  0.00);
0033     eta->AddMomentumRange( 0.15, 0.20, 2.48,  0.00);
0034     eta->AddMomentumRange( 0.20, 0.25, 2.00,  0.00);
0035     eta->AddMomentumRange( 0.25, 0.30, 1.89,  0.00);
0036     eta->AddMomentumRange( 0.30, 0.35, 1.78,  0.00);
0037     eta->AddMomentumRange( 0.35, 0.40, 1.73,  0.00);
0038 #endif
0039     eta->AddMomentumRange( 0.40, 0.45, 1.69,  0.00);
0040     eta->AddMomentumRange( 0.45, 0.50, 1.68, 10.56);
0041     eta->AddMomentumRange( 0.50, 0.55, 1.64,  4.59);
0042     eta->AddMomentumRange( 0.55, 0.60, 1.63,  3.18);
0043     eta->AddMomentumRange( 0.60, 0.70, 1.60,  2.41);
0044     eta->AddMomentumRange( 0.70, 0.80, 1.60,  2.05);
0045     eta->AddMomentumRange( 0.80, 0.90, 1.65,  1.86);
0046     eta->AddMomentumRange( 0.90, 1.00, 1.58,  1.80);
0047     eta->AddMomentumRange( 1.00, 1.50, 1.59,  1.68);
0048     eta->AddMomentumRange( 1.50, 2.00, 1.57,  1.63);
0049     eta->AddMomentumRange( 2.00, 2.50, 1.59,  1.59);
0050     eta->AddMomentumRange( 2.50, 3.00, 1.58,  1.62);
0051     eta->AddMomentumRange( 3.00, 3.50, 1.57,  1.63);
0052     eta->AddMomentumRange( 3.50, 4.00, 1.59,  1.60);
0053     eta->AddMomentumRange( 4.00, 4.50, 1.53,  1.58);
0054     eta->AddMomentumRange( 4.50, 5.00, 1.61,  1.58);
0055     eta->AddMomentumRange( 5.00, 5.50, 1.59,  1.57);
0056   }
0057   {
0058     auto eta = delphes->AddEtaRange(-2.8, -1.9);
0059 
0060     // Well, average bin momentum is used to calculate Cherenkov theta, so the bins
0061     // should not be too wide in the areas where dtheta/dp is high for at least one 
0062     // of the hypotheses;
0063 #if 0
0064     eta->AddMomentumRange( 0.05, 0.10, 3.67,  0.00);
0065     eta->AddMomentumRange( 0.10, 0.15, 3.62,  0.00);
0066     eta->AddMomentumRange( 0.15, 0.20, 2.24,  0.00);
0067     eta->AddMomentumRange( 0.20, 0.25, 1.82,  0.00);
0068     eta->AddMomentumRange( 0.25, 0.30, 1.76,  0.00);
0069     eta->AddMomentumRange( 0.30, 0.35, 1.69,  0.00);
0070     eta->AddMomentumRange( 0.35, 0.40, 1.66,  0.00);
0071 #endif
0072     eta->AddMomentumRange( 0.40, 0.45, 1.69,  0.00);
0073     eta->AddMomentumRange( 0.45, 0.50, 1.66, 10.76);
0074     eta->AddMomentumRange( 0.50, 0.55, 1.64,  4.62);
0075     eta->AddMomentumRange( 0.55, 0.60, 1.61,  3.07);
0076     eta->AddMomentumRange( 0.60, 0.70, 1.60,  2.40);
0077     eta->AddMomentumRange( 0.70, 0.80, 1.57,  2.05);
0078     eta->AddMomentumRange( 0.80, 0.90, 1.60,  1.93);
0079     eta->AddMomentumRange( 0.90, 1.00, 1.59,  1.78);
0080     eta->AddMomentumRange( 1.00, 1.50, 1.59,  1.68);
0081     eta->AddMomentumRange( 1.50, 2.00, 1.55,  1.60);
0082     eta->AddMomentumRange( 2.00, 2.50, 1.57,  1.60);
0083     eta->AddMomentumRange( 2.50, 3.00, 1.56,  1.58);
0084     eta->AddMomentumRange( 3.00, 3.50, 1.53,  1.59);
0085     eta->AddMomentumRange( 3.50, 4.00, 1.55,  1.55);
0086     eta->AddMomentumRange( 4.00, 4.50, 1.55,  1.54);
0087     eta->AddMomentumRange( 4.50, 5.00, 1.57,  1.56);
0088     eta->AddMomentumRange( 5.00, 5.50, 1.57,  1.55);
0089     
0090   }
0091 
0092   {
0093     auto eta = delphes->AddEtaRange(-1.9, -1.5);
0094 
0095 #if 0
0096     eta->AddMomentumRange( 0.05, 0.10, 3.78,  0.00);
0097     eta->AddMomentumRange( 0.10, 0.15, 3.52,  0.00);
0098     eta->AddMomentumRange( 0.15, 0.20, 2.31,  0.00);
0099     eta->AddMomentumRange( 0.20, 0.25, 2.04,  0.00);
0100     eta->AddMomentumRange( 0.25, 0.30, 1.87,  0.00);
0101     eta->AddMomentumRange( 0.30, 0.35, 1.79,  0.00);
0102     eta->AddMomentumRange( 0.35, 0.40, 1.76,  0.00);
0103 #endif
0104     eta->AddMomentumRange( 0.40, 0.45, 1.71,  0.00);
0105     eta->AddMomentumRange( 0.45, 0.50, 1.71, 10.67);
0106     eta->AddMomentumRange( 0.50, 0.55, 1.71,  4.99);
0107     eta->AddMomentumRange( 0.55, 0.60, 1.62,  3.38);
0108     eta->AddMomentumRange( 0.60, 0.70, 1.59,  2.52);
0109     eta->AddMomentumRange( 0.70, 0.80, 1.58,  2.11);
0110     eta->AddMomentumRange( 0.80, 0.90, 1.56,  1.88);
0111     eta->AddMomentumRange( 0.90, 1.00, 1.55,  1.78);
0112     eta->AddMomentumRange( 1.00, 1.50, 1.53,  1.65);
0113     eta->AddMomentumRange( 1.50, 2.00, 1.56,  1.60);
0114     eta->AddMomentumRange( 2.00, 2.50, 1.56,  1.53);
0115     eta->AddMomentumRange( 2.50, 3.00, 1.57,  1.54);
0116     eta->AddMomentumRange( 3.00, 3.50, 1.54,  1.56);
0117     eta->AddMomentumRange( 3.50, 4.00, 1.53,  1.52);
0118     eta->AddMomentumRange( 4.00, 4.50, 1.52,  1.54);
0119     eta->AddMomentumRange( 4.50, 5.00, 1.51,  1.53);
0120     eta->AddMomentumRange( 5.00, 5.50, 1.49,  1.51); } 
0121 
0122   // This call also makes a guess on the kaon and proton thresholds;
0123   delphes->AddZeroSigmaEntries();
0124   //delphes->Print();
0125   delphes->WriteTcl();
0126   {
0127     auto fout = new TFile("pfRICH.root", "RECREATE");
0128     delphes->Write();
0129     fout->Close();
0130   }
0131   exit(0);
0132 } // dconfig()