AIDA GELINA BRIKEN nToF CRIB ISOLDE CIRCE nTOFCapture DESPEC DTAS EDI_PSA 179Ta CARME StellarModelling DCF K40
  nTOFCapture  ELOG logo
Message ID: 48     Entry time: Wed Oct 18 12:14:09 2023
Author: Emma Walker 
Subject: Processing file for EAR-1 with WF applied, Si-30 

Weighting function for Si-30, Au22, Au20 and Sinatgood applied for parasitic and dedicated beams. 

Attachment 1: Weighting_processing.c  15 kB  Uploaded Wed Oct 18 15:00:06 2023  | Hide | Hide all
/// 23.6.23, 9:30 edit CLW - process also other runlists

// g++ -Wall -O3 -g `root-config --cflags --ldflags --glibs` Process_Si.C -o Process_Si && ./Process_Si

// includes header, and source only in compiled script
#include "/eos/experiment/ntof/codes/TTOFSort/TTOFSort_nTOF.h"
#ifndef __CINT__
#include "/eos/experiment/ntof/codes/TTOFSort/TTOFSort_nTOF.cxx"
#endif
// --------------------------------------------------------------------------
//
//
//
// --------------------------------------------------------------------------

Double_t a2e_c6d61(Double_t x) {  // from amplitude (channel) to MeV
   return (3.71330E-02+ 2.78468E-04* x );
}
Double_t a2e_c6d62(Double_t x) {  // from amplitude (channel) to MeV
   return (1.21071E-02+ 2.82656E-04* x);
}
Double_t a2e_c6d63(Double_t x) {  // from amplitude (channel) to MeV
   return (2.74746E-02+ 2.64094E-04* x);
}
Double_t a2e_c6d64(Double_t x) {  // from amplitude (channel) to MeV
   return (2.96214E-02+ 2.73633E-04* x );
}

Double_t wf_Si(Double_t x) { //WF for silicon 30
  return (9.65464 - 6.83768 * x + 26.4596 * x * x - 5.02546 * x * x * x + 0.372149 * x * x * x * x);
}

Double_t wf_Sinatgood(Double_t x) { //WF for silicon natural
  return (8.86824 - 1.26346 * x + 18.4828 * x * x - 2.25899 * x * x * x + 0.106017 * x * x * x * x);
}

Double_t wf_Au20(Double_t x) { //WF for 20mm-gold
  return (7.93383 + 1.02633 * x + 16.9180 * x * x - 1.95645 * x * x * x + 0.0918222 * x * x * x * x);
}

Double_t wf_Au22(Double_t x) { //WF for 22mm-gold
  return (7.93673 + 1.00093 * x + 16.9408 * x * x - 1.96542 * x * x * x + 0.0923510 * x * x * x * x);
}

int main() {

    Char_t prefix[] = "/eos/experiment/ntof/processing/official/done/run";
    Char_t suffix[] = ".root";

    Int_t runlist_co[] = {116215, 116216, 116217, 116218, -1};

    Int_t runlist_ba[] = {116208, 116209, 116210, 116211, 116212, 116213, 116214, -1};

    Int_t runlist_mn[] = {116203, 116204, 116205, 116206, 116207, -1};

    Int_t runlist_bi[] = {116193, 116194, -1};

    Int_t runlist_cs[] = {116093, 116159, 116160, 116161, 116296, 116384, 116385,116445,116476,116567 ,-1};

    Int_t runlist_y[] = {116094, 116162, 116163, 116164, 116297, 116298, 116380, 116381, 116382,116446,116475,116568, -1};

    Int_t runlist_ambe[] = {116095, 116096, 116097, 116165, 116166, 116167, 116168, 116169, 116170, 116171, 116172, 116173, 116174, 116299, 116301, 116302, 116375, 116376,116467,116468,116469,116470,116569 ,116570,116571,-1};

    Int_t runlist_cmc[] = {116179, 116180, 116181, 116182, 116183, 116184, 116185, 116186, 116187, 116188, 116189, 116190, 116191, 116192, 116219, 116220, 116221, 116222, 116303, 116304, 116305, 116377,116378, 116379,116447,116448, 116449,116450, 116451,116471,116472,116473,116474, -1};
    
    Int_t runlist_cnat[]={116284, 116285, 116286, 116287, 116288, 116308, 116309, 116310, 116311,
116312,116313,116314,116315,116316,116317,116318,116319,116320, -1};

    Int_t runlist_au20mm[] = {116100, 116101, 116102,116322,116548, -1};

    Int_t runlist_au22mm[] = { 116226, 116227, 116229, 116231, 116232, 116234, 116235, 116321,116507,116508,116509,116510,-1};
    //116225 116505 116506was 'BAD'
    Int_t runlist_amb[] = {116103, 116104, 116106, 116108, 116109, 116110, 116111, 116119, 116120, 116121, 116122, 116123, 116127, 116128, 116129, 116130, 116131, 116132, 116133, 116134, 116135, 116141, 116143, 116154, 116155, 116156, 116157, 116158, 116175, 116176, 116177, 116178,116197, 116198, 116199, 116200, 116201, 116202, 116248, 116249, 116250, 116251, 116252, 116253, 116254, 116255, 116257, 116258, 116259,116374, 116386, 116387, 116388, 116389, 116390, 116391, 116392, 116393,116405,116444,116443,116452,116453,116454,116455,116456,116457,116458,116459,116460,116461,116462,116463,116464,116465,116466,116477,116478,116479,116480,116481,116483,116485,116487,116488,116490,116491,116492,116493,116494,116495,116496,116498,116499,116501,116503,116519,116520,116521,116522, -1};  // no beam and no calibration source

    Int_t runlist_dummy[] = {116237, 116241, 116242, 116243, 116244, 116245, 116246, 116247, 116253, 116260, 116261, 116420, 116421, 116422, 116423, 116424, 116425, 116426, 116427, 116428, 116429, 116430, 116431, 116432, 116433, 116434, 116435, 116436, 116437, 116438,116439,-1};
    //, 116418 too slow 116240 is bad
     Int_t runlist_empty[] = {116323, 116324, 116325,116326,116327,116328, -1};
     
    Int_t runlist_30si[] = {116105, 116112, 116113, 116114, 116115, 116116, 116117, 116118, 116124, 116125, 116126, 116136, 116137, 116138, 116139, 116140, 116142, 116144, 116145, 116146, 116147, 116148, 116149, 116150, 116151, 116152, 116153, 116263, 116264, 116265, 116266, 116268, 116269, 116270, 116271, 116272, 116273, 116274, 116275, 116276, 116277, 116278, 116279, 116280, 116281, 116282, 116283, 116358, 116359, 116360, 116361, 116362, 116363, 116364, 116367, 116368, 116369, 116371, 116372, 116373, 116394, 116395, 116396, 116397, 116398, 116399, 116400, 116401, 116402, 116403, 116404, 116406, 116407, 116408, 116409, 116411, 116412, 116413, 116415,116440,116441,116482,116484,116486,116489,116502,116504, -1};
    //116365, 116466 are empty (should be Si run) , 116370,116442,116414 (116262 this one was 'bad')
    Int_t runlist_sinat[] = {116330, 116331, 116332, 116333, 116335, 116337, 116339, 116341, 116342, 116343, 116344, 116345, 116346, 116347, 116348, 116349, 116350, 116351, 116352, 116353, 116354, 116355, 116356, 116357,116511 ,116512 ,116513 ,116514 ,116517 ,116518 ,116523 ,116524 ,116525 ,116526 ,116527 ,116528  ,116532 ,116533 ,116534 ,116535 ,116536 ,116537 ,116538 ,116539 ,116540 ,116541 ,116542 ,116543 ,116544 ,116545 ,116546 ,-1};
    //bad 116529, 116530,116531
    Int_t runlist_sinat_good[] = { 116549 ,116551 ,116552 ,116553 ,116554 ,116555 ,116556 ,116557 ,116558 ,116559 ,116560 ,116561 ,116562,116563,116564,116565,116566, -1 };
    
    TTOFSort *a = new TTOFSort();

    a->AddDetector(kC6D6, 4);
    
    //a->SetNewBinParsA(kC6D6, 0.0, 6500, 6500000.0);
    a->SetNewBinParsT(kC6D6, -10.0, 2.0, 1e3, 5000, 1e9); //Double the nbins (10k here becomes 20k bpd spec)

    a->PrintSettings();
        
    a->SetNewFixedDeadtime(kC6D6, 30.0);//fixed deadtime of 30 ns
    a->SetNewCoincidencetime(kC6D6, 30.0);//Coincidences between 30 ns
    a->SetNewVariableNames_amplitude(kC6D6, "amp");
    a->SetNewBinParsA(kC6D6, 0.0, 6500, 70000);
    a->SetNewCutsAmp_all(kC6D6, 600, 50000);

    a->UseCalibration(kC6D6, a2e_c6d61, a2e_c6d62, a2e_c6d63, a2e_c6d64);
    a->SetNewCutsEg(kC6D6, 0.200, 8.0, 0.200, 8.0, 0.200, 8.0, 0.200, 8.0);

    a->SetPriorCut(kC6D6, "PulseIntensity<1e7");

    //a->ProcessListOfRuns_Sum(prefix, runlist_co, suffix, "Sum_Cal.root", "Co", "RECREATE");
    //a->ProcessListOfRuns_Sum(prefix, runlist_bi, suffix, "Sum_Cal.root", "Bi", "UPDATE");
    //a->ProcessListOfRuns_Sum(prefix, runlist_ba, suffix, "Sum_Cal.root", "Ba", "UPDATE");
    //a->ProcessListOfRuns_Sum(prefix, runlist_mn, suffix, "Sum_Cal.root", "Mn", "UPDATE");
    //a->ProcessListOfRuns_Sum(prefix, runlist_cs, suffix, "Sum_Cal.root", "Cs", "UPDATE");
    //a->ProcessListOfRuns_Sum(prefix, runlist_y, suffix, "Sum_Cal.root", "Y", "UPDATE");
    //a->ProcessListOfRuns_Sum(prefix, runlist_ambe, suffix, "Sum_Cal.root", "Ambe", "UPDATE");
    //a->ProcessListOfRuns_Sum(prefix, runlist_cmc, suffix, "Sum_Cal.root", "Cmc", "UPDATE");
    //a->ProcessListOfRuns_Sum(prefix, runlist_amb, suffix, "Sum_Amb.root", "Amb", "RECREATE");


    //a->ProcessListOfRuns_Single(prefix, runlist_co, suffix, "Co.root", "Co", "RECREATE");
    //a->ProcessListOfRuns_Single(prefix, runlist_bi, suffix, "Bi.root", "Bi", "RECREATE");
    //a->ProcessListOfRuns_Single(prefix, runlist_ba, suffix, "Ba.root", "Ba", "RECREATE");
    //a->ProcessListOfRuns_Single(prefix, runlist_mn, suffix, "Mn.root", "Mn", "RECREATE");
    //a->ProcessListOfRuns_Single(prefix, runlist_cs, suffix, "Cs.root", "Cs", "RECREATE");
    //a->ProcessListOfRuns_Single(prefix, runlist_y, suffix, "Y.root", "Y", "RECREATE");
    //a->ProcessListOfRuns_Single(prefix, runlist_ambe, suffix, "Ambe.root", "Ambe", "RECREATE");
    //a->ProcessListOfRuns_Single(prefix, runlist_cmc, suffix, "Cmc.root", "Cmc", "RECREATE");
    
    
    a->UseWeightingFunction(kC6D6, wf_Si);
    a->ProcessListOfRuns_Sum(prefix, runlist_amb, suffix, "Amb_sum_SiWF.root", "Amb", "RECREATE");
    a->UseWeightingFunction(kC6D6, wf_Au20);
    a->ProcessListOfRuns_Sum(prefix, runlist_amb, suffix, "Amb_sum_Au20WF.root", "Amb", "RECREATE");
    a->UseWeightingFunction(kC6D6, wf_Au22);
    a->ProcessListOfRuns_Sum(prefix, runlist_amb, suffix, "Amb_sum_Au22WF.root", "Amb", "RECREATE");
    a->UseWeightingFunction(kC6D6, wf_Sinatgood);
    a->ProcessListOfRuns_Sum(prefix, runlist_amb, suffix, "Amb_sum_SinatgoodWF.root", "Amb", "RECREATE");
    
    
    // dedicated >5E12, parasitic 1-5 E12
    //a->SetPriorCut(kC6D6, "PulseIntensity>1e12");
    a->AddDetector(kSILI, 4);
    //a->SetNewBinParsA(kSILI, 0.0, 1e4, 1e5);
    a->SetNewVariableNames_amplitude(kSILI, "amp");
    //a->SetPriorCut(kSILI, "PulseIntensity>1e12");
    a->SetNewBinParsA(kSILI, 0.0, 6500, 70000);
    a->SetNewCutsAmp_all(kSILI, 8000, 40000);
    a->SetNewCutsTime_all(kSILI, 1E4, 1E9);
    a->AddDetector(kPKUP, 1);
    a->SetNewVariableNames_amplitude(kPKUP, "amp");
    a->SetPriorCut(kPKUP,"amp>5000 && amp<50000");
    a->SetNewBinParsA(kPKUP,0.0,6500,70000);
    //a->SetPriorCut(kPKUP, "PulseIntensity>1e12");
    //a->UseWeightingFunction(kC6D6, wf, wf, wf, wf);
    
    a->SetPriorCut(kC6D6, "PulseIntensity>1e+12");
    a->SetPriorCut(kPKUP, "PulseIntensity>1e+12");
    a->SetPriorCut(kSILI, "PulseIntensity>1e+12");

    //For dedicated pulse
    a->SetPriorCut(kC6D6, "PulseIntensity>5e+12");
    a->SetPriorCut(kSILI, "PulseIntensity>5e+12");
    a->SetPriorCut(kPKUP, "PulseIntensity>5e+12");

    a->UseWeightingFunction(kC6D6, wf_Si);
    a->ProcessListOfRuns_Sum(prefix, runlist_30si, suffix, "Dedicated_Si_weighting.root", "Si", "RECREATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_dummy, suffix, "Dedicated_Si_weighting.root", "Dummy", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_cnat, suffix, "Dedicated_Si_weighting.root", "C", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_empty, suffix, "Dedicated_Si_weighting.root", "E", "UPDATE");
    
    a->UseWeightingFunction(kC6D6, wf_Au20);
    a->ProcessListOfRuns_Sum(prefix, runlist_au20mm, suffix, "Dedicated_Au20_weighting.root", "Au20", "RECREATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_dummy, suffix, "Dedicated_Au20_weighting.root", "Dummy", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_cnat, suffix, "Dedicated_Au20_weighting.root", "C", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_empty, suffix, "Dedicated_Au20_weighting.root", "E", "UPDATE");
    
    a->UseWeightingFunction(kC6D6, wf_Au22);
    a->ProcessListOfRuns_Sum(prefix, runlist_au22mm, suffix, "Dedicated_Au22_weighting.root", "Au22", "RECREATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_dummy, suffix, "Dedicated_Au22_weighting.root", "Dummy", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_cnat, suffix, "Dedicated_Au22_weighting.root", "C", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_empty, suffix, "Dedicated_Au22_weighting.root", "E", "UPDATE");
    
    a->UseWeightingFunction(kC6D6, wf_Sinatgood);
    a->ProcessListOfRuns_Sum(prefix, runlist_sinat_good, suffix, "Dedicated_Sinatgood_weighting.root", "Sinatgood", "RECREATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_dummy, suffix, "Dedicated_Sinatgood_weighting.root", "Dummy", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_cnat, suffix, "Dedicated_Sinatgood_weighting.root", "C", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_empty, suffix, "Dedicated_Sinatgood_weighting.root", "E", "UPDATE");
    
    //For parastic pulse
    a->SetPriorCut(kC6D6, "PulseIntensity>1e+12 && PulseIntensity<5e+12");
    a->SetPriorCut(kSILI, "PulseIntensity>1e+12 && PulseIntensity<5e+12");
    a->SetPriorCut(kPKUP, "PulseIntensity>1e+12 && PulseIntensity<5e+12");

    a->UseWeightingFunction(kC6D6, wf_Si);
    a->ProcessListOfRuns_Sum(prefix, runlist_30si, suffix, "Parasitic_Si_weighting.root", "Si", "RECREATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_dummy, suffix, "Parasitic_Si_weighting.root", "Dummy", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_cnat, suffix, "Parasitic_Si_weighting.root", "C", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_empty, suffix, "Parasitic_Si_weighting.root", "E", "UPDATE");
    
    a->UseWeightingFunction(kC6D6, wf_Au20);
    a->ProcessListOfRuns_Sum(prefix, runlist_au20mm, suffix, "Parasitic_Au20_weighting.root", "Au20", "RECREATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_dummy, suffix, "Parasitic_Au20_weighting.root", "Dummy", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_cnat, suffix, "Parasitic_Au20_weighting.root", "C", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_empty, suffix, "Parasitic_Au20_weighting.root", "E", "UPDATE");
    
    a->UseWeightingFunction(kC6D6, wf_Au22);
    a->ProcessListOfRuns_Sum(prefix, runlist_au22mm, suffix, "Parasitic_Au22_weighting.root", "Au22", "RECREATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_dummy, suffix, "Parasitic_Au22_weighting.root", "Dummy", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_cnat, suffix, "Parasitic_Au22_weighting.root", "C", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_empty, suffix, "Parasitic_Au22_weighting.root", "E", "UPDATE");
    
    a->UseWeightingFunction(kC6D6, wf_Sinatgood);
    a->ProcessListOfRuns_Sum(prefix, runlist_sinat_good, suffix, "Parasitic_Sinatgood_weighting.root", "Sinatgood", "RECREATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_dummy, suffix, "Parasitic_Sinatgood_weighting.root", "Dummy", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_cnat, suffix, "Parasitic_Sinatgood_weighting.root", "C", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_empty, suffix, "Parasitic_Sinatgood_weighting.root", "E", "UPDATE");

    /*
    //For total pulse
    a->ProcessListOfRuns_Sum(prefix, runlist_30si, suffix, "Sum_Beam.root", "Si", "RECREATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_au20mm, suffix, "Sum_Beam.root", "Au20", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_au22mm, suffix, "Sum_Beam.root", "Au22", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_dummy, suffix, "Sum_Beam.root", "Dummy", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_cnat, suffix, "Sum_Beam.root", "C", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_empty, suffix, "Sum_Beam.root", "E", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_sinat, suffix, "Sum_Beam.root", "Sinat", "UPDATE");
    a->ProcessListOfRuns_Sum(prefix, runlist_sinat_good, suffix, "Beam.root", "Sinatgood", "UPDATE");

    a->ProcessListOfRuns_Single(prefix, runlist_30si, suffix, "Single_30Si.root", "Si", "RECREATE");
    a->ProcessListOfRuns_Single(prefix, runlist_au20mm, suffix, "Single_Au20.root", "Au20", "RECREATE");
    a->ProcessListOfRuns_Single(prefix, runlist_au22mm, suffix, "Single_Au22.root", "Au22", "RECREATE");
    a->ProcessListOfRuns_Single(prefix, runlist_dummy, suffix, "Single_Dummy.root", "Dummy", "RECREATE");
    a->ProcessListOfRuns_Single(prefix, runlist_cnat, suffix, "Single_C.root", "C", "RECREATE");
    a->ProcessListOfRuns_Single(prefix, runlist_empty, suffix, "Single_E.root", "E", "RECREATE");
    a->ProcessListOfRuns_Single(prefix, runlist_sinat, suffix, "Single_Sinat.root", "Sinat", "RECREATE");
    a->ProcessListOfRuns_Single(prefix, runlist_sinat_good, suffix, "Single_Sinatgood.root", "Sinatgood", "RECREATE");
    */
    
    /*
    a->SetPriorCut(kC6D6, "PulseIntensity>1e12");
    a->SetPriorCut(kC6D6, "tflash>10000");

    a->SetTgWindow(kC6D6,10000,15000);
    
    
    a->SetNewCutsAmp_all(kC6D6, 1800, 50000);
    a->ProcessListOfRuns_Sum(prefix, runlist_30si, suffix, "Sum_30Si_hithresh.root", "Si", "RECREATE");
    */
    return 0;
}
ELOG V3.1.4-unknown