Ciao!

-- ArturoS - 2015-06-05

June Work

June 10

Troubleshooting of VirtualBox running an Ubuntu system, using various versions of Ubuntu from 14.04.2 to 15.10. No successful generation of the virtual computer occurred on the Windows OS. Installed software known as PuTTY which is an open sourced terminal emulator which supports the network protocol SSH.

Download of PuTTY here: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Useful tutorials, documents, and lessons here: https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/MilanoTutorial2015RootHelp#Two_Simple_and_fully_working_ROOT

Video tutorial seen here: https://youtu.be/P9aKV7W5zxg

June 11-12

Working through the tutorials on https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/MilanoTutorial2015RootHelp#Two_Simple_and_fully_working_ROOT, produced two new histograms and added on to the ones produced by the tutorial, adding fill and changing the colors. It's also important to use the latest version of Root, as certain functions such as the TBrowser do not work when on earlier versions.

The first histogram was a TreeTracker and was filled and stylized so that the data is more pronounced. It can be seen in the table below as readertracker_filled_histo.

  • Readertracker Filled output:

readertracker_filled_histo.png

The second histogram which is a histogram of the llqq data, was stylized and filled with two different colors. After doing so, it makes the data less clean to interpret graphically. This version is attached below as llqq_filled_histogram

  • llqq filled histogram:
    llqq_filled_histogram.png

June 14-16

https://cds.cern.ch/record/1693159/files/ATL-COM-PHYS-2014-269.pdf Summery of sections 2, 4-8, and 11 as follows:

Section 2: Introduction

This section introduced the concepts to be covered in this paper, describing the search for the heavy Higgs boson with a decay path of H -> ZZ -> _ll_qq with a Higgs mass between 200 and 1000 GeV. Events are selected by finding jets consistent with Z decays into 2 sets of objects. One being high _P_t jets and the other being a pairs of leptons. The data is then split into subchannels based on the number of b-tagged jets in an event. The results of the search will then be used to further two other models past the Standard Model. These models are the electroweak signet model and the two-Higgs doublet model.

Section 4: Model interpretation

While a new particle consistent with the minimal Higgs mechinism was discovered, other theoretical models have been put forth that call for additional Higgs bosons. Two such models, aforementioned above, are being tested with the H -> ZZ -> _ll_qq processes at the LHC. Each model will be described briefly below.

The electroweak signet model a heavy, real signet is introduced to the SM scalar field of the original Higgs mechanism. Through spontaneous symmetry breaking produces two CP- even Higgs bosons. The lightest of the higgs bosons (h) is identified by its mass being equal to 125 GeV resonance and all other features should be the same as in the SM save for a scaling constant k. Also within this model there is a heavy Higgs boson (H) which are allowed to have non-SM decays. This model predicts that the cross- section width for the h should be different from that of the SM.

The two-Higgs doublet model (2HDM) adds an additional doublet to the SM Higgs sector, and through spontaneous breaking contains 5 physical Higgs bosons. There are six parameters in the model that described the Higgs Sector of this model. These parameters are cut down by identifying the observed higgs mass = 125.5 GeV resonancy with the h boson, and then adding constraints to the CP even bosons. Two different fields are also introduced into the Lagrangian in order to describe the model. So in the H -> ZZ -> ll_qq expirements, this model is looking directly for the _H boson.

Section 5: Data and Monte Carlo samples

This section describes Monte Carlo generations. All Monte Carlo samples are generated with a center-of-mass energy of 8 TeV and is then passed through the simulation of the ATLAS detector. In the case of the SM-like heavy Higgs, samples are divided into two regions in Higgs mass. Either 200 to 400 GeV and 400 to 1000 GeV. Then the line shape is predicted by MC generators using the Breit-Wigner Distribution. However since this has not been an accurate model of the line shape, complex pole schemes are then used.

As the width and thus the mass of the Higgs boson increases, so does the background interference between the signal and the non resonant ZZ, which greatly affects the production cross section as well as the kinematic distribution. Calculations are then carried out, as seen in later sections of this paper, which describe the correction processes. In these processes the complex pole scheme (CPS) is used because it reflects the width expected in the SM Higgs boson cases. This will be more often used for the EWS model. In the 2HDM models NWA are used with a gaussian smearing to reconstruct the natural width of the mass of the lljj production.

Background processes give rise to final state that are similar to the signal process. Often time Z+jets decay leptonically into top quarks with contributions from the _b_-tagged jets. The backgrounds are taken from the SM but corrected to fit data.

Vector bosons are also simulated. V+jets are simulated using fast simulation, with exception being the highly boosted samples without b- hadrons and those vector boson decays that decay into tau leptons. Sherpa is used to describe the Z+jets process and the Alpgen used for VBF analysis due to it's efficiency at modeling higher jet multiplicities. Any possible overlap is removed with the HFOR tool.

The rest of this section continues on to describe predictive production methods of various other particles. For example top quark pair or single top quark productions are generated with PowHeg interfaced to Pythia. Diboson production is modeled with background production which contain two vector bosons (ZZ, WZ, WW) are once again generated using Pow Heg and Phythia.

Section 6: Definition of physics objects

This section goes into depth on how various particles are detected and identified for analysis. Muons are detected using the MuID chain for the ggF and VBF channels. Tracks are then reconstructed with the muon spectrometer. Three other muon categories are defined using calorimeters and spectrometers. Muons from cosmic rays are repressed through various longitudinal and transverse impact parameters. Electrons are identified from electromagnetic calorimeter clusters, and later reconstructed. Electron requirements are very loose as they have a large likelyhood of being misidentified. Jets are typically reconstructed from topological clusters and reconstructed using algorithms that are later corrected from the electromagnetic scale to the hadronic scale. Jets are then labeled b or c depending on if they have B-hadrons or D-hadrons respectively.

Jets are then identified by whether or not they have b quarks in them. This is done by exploiting the long lifetime of b quarks. Then using truth tagging, it ignores correlations of efficiency of jets in the same events, thus helping with the MV1c algorithm. Other corrections are applied that take into account changes in energy and one that compensates for bias on the reconstructed jet energy.

Missing transverse energy is usually caused by creation of neutrinos. H -> ZZ -> _ll_qq has little missing transverse energy, thus an upper limit is defined to lower the background from t- t-bar events. After all of this is done, overlaps must be removed in order to avoid double counting in reconstructions.

Section 7: Event selection

Events are selected using single and dilepton signal triggers. After the trigger is made, a preselection is made in order to ensure good data, passing the All_Good standard. The first step is identifying a Z-> ll standard, with the two leptons being the same flavor and type. One must pass the medium requirements and the other must pass the loose requirements. The rest of the section goes into various ways that the events are selected and the various conditions and kinematic equations that must be applied for good data.

For large Higgs boson masses, the decay into two Z particles is highly boosted. Since the angles between these two particles is very small, once these particles decay, they can give rise to jets that overlap one another. Sometimes this leads to a Z-> ll and a high _P_t jet. This is called a monojet.

Section 8: Background

This section discusses how backgrounds are formed and the data that is used. Often times SB are used with Z+jets particle analysis. Determining the relative fraction of Z+jets, b-jets, and c-jets. This determines the flavor of the composition. A MC simulation can not accurately determine the flavor composition of a Z+jets background, and thus data from the SB must be used. The rest of the section goes into errors and uncertainties within the data as well as the modeling. It then goes into t-t bar production and a multijet background, and how it is often obtained by reversing the tracks of two electrons. The rest of the section is dedicated to plots of the backgrounds.

Section 11: Results

This section mostly shows the final discreminant plots for the signal region within different categories.

June 18

Developing the code for physics.C to run the ZZ->llqq plots to be matched up to the web based histogram cutting tool, the server crashed part way through. Unable to recover the program completely, the code used in the tutorial on the 11th of June to plot histograms.

Also working on the code for the histogram tools found here: https://twiki.cern.ch/twiki/bin/view/Main/SummerStudentProject2014Napoli The next step is to find a way to print the cuts into a table, and download that table. The information on the easiest way to do that with the javascript crossfilter libary is found here: https://github.com/square/crossfilter/pull/95

June 19

Continuing the work of the 18th of June, the code that was developed did not produce separate plots. ROOT will set up a default canvas when one is not specified. The next few hours were used to find a way to best set up the canvases, possibly using a method that would divide the canvas into various zones so that it would all 20 plots would be shown at once on a single canvas rather than having all 20 in separate canvases. This may save space, however it may not be visually as convenient.

June 22-23

After finally setting up all the plots there were many errors and bugs to work through. For the time being each canvas is set up with it's own histogram. All are then saved to a local file which can be opened and browsed. Twenty one new variables were defined within the physics.h document, so that the set up of the histograms were easier and cleaner in physics.C. However this may be a problem later while working on the cross filter. Also the style of histogram that was created isn't the most legible, this will have to be changed before continuing onward.


  if(fChain->GetTree()->GetEntries()>0)
    {
      //Do analysis

      if(n_jets>0)
        {
         channel1->Fill(channel);
         lep_chargeproduct1->Fill(lep_chargeproduct);
         lep1_pt1->Fill(lep1_pt);
         lep2_pt1->Fill(lep2_pt);
         lept1_eta1->Fill(lep1_eta);
         lept2_eta1->Fill(lep2_eta);
         lep1_phi1->Fill(lep1_phi);
         lep2_phi1->Fill(lep2_phi);
         met1->Fill(met);
         lepZ_m1->Fill(lepZ_m);
         lepZ_pt1->Fill(lepZ_pt);
         realZ_Lj_m1->Fill(realZ_LJ_m);
         realZ_Lj_pt1->Fill(realZ_LJ_pt);
         n_jets1->Fill(n_jets);
         n_b_jets1->Fill(n_b_jets);
         realH_Lj_m1->Fill(realH_LJ_m);
         realH_Lj_pt1->Fill(realH_LJ_pt);
         realJ1_LJ_pt1->Fill(realJ1_LJ_pt);
         realJ2_LJ_pt1->Fill(realJ2_LJ_pt);
         realJ1_LJ_m1->Fill(realJ1_LJ_m);
         realJ2_LJ_m1->Fill(realJ2_LJ_m);

        }
    }

   return kTRUE;
}

void physics::SlaveTerminate()
{
   // The SlaveTerminate() function is called after all entries or objects
   // have been processed. When running with PROOF SlaveTerminate() is called
   // on each slave server.

}

void physics::Terminate()
{
   // The Terminate() function is the last function to be called during
   // a query. It always runs on the client, it can be used to present
   // the results graphically or save the results to file.



   // fill each of the histograms with blue

  channel1->SetFillColor(kBlue);
  lep_chargeproduct1->SetFillColor(kBlue);
  lep1_pt1->SetFillColor(kBlue);
  lep2_pt1->SetFillColor(kBlue);
  lept1_eta1->SetFillColor(kBlue);
  lept2_eta1->SetFillColor(kBlue);

This was continued for the remaining plots that are to be drawn. Then afterwards canvass were created and histograms were drawn on top of them. Then they will all be saved in a file called physicsoutxxx.root where the xxx is replaced by the energy levels of the various data sets.

June 24

There is an issue of back compatibility of the data that was taken from /afs/cern.ch/user/a/arturos/public/SummerStudentProgram2015/ from when each of the samples were saved in individual folders under my account. This caused an inability for the plots to be saved cleanly. A more elegant solution must be found. Also there were a few remaining errors from the work done yesterday that had to be corrected. For example:

  //fChain->GetTree()->GetEntry(entry);



  //if(fChain->GetTree()->GetEntries()>0)
    {
      //Do analysis

// if(n_jets>1)

There error lies in the n_jets>1, since this is a cut that we are doing to the number of jets. To remedy the error the number of jets has to be set greater than 0.

June 25

Once all the bugs were worked out of the code, plots of all 20 data sets were created. Both the histograms and the canvases were saved to root files. There was an error in the length of the x-axis, which had to be remedied in order to see the complete data. Once this was fixed all the files were saved and run through. This will be used to help determine whether the code we are using in for the crossfilter process will create accurate histograms.

Once this was completed, next I searched for the necessary code to tabulate the data from a crossfilter processes. I still have not found anything that would definitively help. I plan on comparing the codes side by side to find exactly where the codes similarities end.

June 26

The next step is to take the cuts as described by https://twiki.cern.ch/twiki/bin/view/Main/SummerStudentProject2014Napoli#July_8th]] and save all of those to a root file as well. I also began scanning through all of the source code for the crossfilter website http://square.github.io/crossfilter/ and then compared it to the source code here https://twiki.cern.ch/twiki/pub/Main/SummerStudentProject2014Napoli/llqq_MC_ggH900GeV.html to see where the differences lie.

June 29

After going through all the source code differences from the two sites, the differences were listed and found. Also through research of https://github.com/square/crossfilter/wiki/API-Reference, the most relevant code for what we are trying to achieve is # dimension.top(k). Where k is the number of dimensions that are being listed, and dimension is which dimension is being looked at. In our case it could be transverse momentum, or the mass of the ZZ->llqq system, etc.

June 30- July 2

Working through the code in the original physics.C file to produce a histogram displaying all the cuts for the Z lepton masses. They are all then displayed on the same histogram to show the differences in the amount and the objects in each cut. This was then repeated with the other 20 variables in the set using the same cuts. However code wise this is a very difficult to follow.

Here is an example as to what this code looks like:

 if(fChain->GetTree()->GetEntries()>0)
    {
      //_____________________________________________________________________________
      // Cut_min_0
      // first histogram, not cuts.
      lepZ_m_cut0->Fill(lepZ_m);

      if (
        low_event            == 0
        && weight            >= 0
        // && channel           == current_channel   // (0 for
Electrons and 2 for Muons)
        && isqcdevent        == 0
        && issystematicevent == -1
        && lepZ_m            > 20000.
        && lep1_caloiso      > 0.
        && lep2_caloiso      > 0.
         )
       {
        if((lep1_charge*lep2_charge)==-1 || /*current_i*/channel==0)
//OS just for Muon Channel
        {
         // *Fill your histograms*

         // pT Muon or Electron 1 (leading lepton) (lep1_pt)
         // pT Muon or Electron 2 (second lepton)  (lep2_pt)
         // eta Muon or Electron 1                 (lep1_eta)
         // eta Muon or Electron 2                 (lep2_eta)
         // phi Muon or Electron 1                 (lep1_phi)
         // phi Muon or Electron 2                 (lep2_phi)
         // mass Leptonic Z                        (lepZ_m)
         lepZ_m_cut1->Fill(lepZ_m);
         // pT Leptonic Z                          (lepZ_pt)
         // Missing Transverse Energy              (met)

         if ( met < 60000. )
            {
              lepZ_m_cut2->Fill(lepZ_m);

              if ( n_jets >= 2 ) // > 1 Jets
                 {
                   lepZ_m_cut3->Fill(lepZ_m);

                   if ( lepZ_m > 83000. && lepZ_m < 99000. ) // 83 GeV
< Mll < 99 GeV
                      {
                        lepZ_m_cut4->Fill(lepZ_m);

                        if( met < 60000) //met less than 60 GeV
                          {
                            lepZ_m_cut5->Fill(lepZ_m);

                            if ( n_b_jets > 2)
                              {
                                lepZ_m_cut6->Fill(lepZ_m);

                                  if (realJ1_LJ_pt >45000)
                                    {
                                      lepZ_m_cut7->Fill(lepZ_m);
                                     }
                                  }
                              }
                          }
                      }
                 }
            }
         }
       }

There are many brackets that can easily get misplaced and shifted, especially when trying to change all the variable around to get a better understanding or view of the histogram. Especially when going through all 20 variables that can be cut, there are many ways all the cuts can go wrong and many errors ensue.

  • mass_lepton_Z_cuts.png:
    mass_lepton_Z_cuts.png

July 6

I began looking at the crossfilter examples and trying to tabulate the data. The original website that our source code was based off of has some key differences, and they may have a library or a second file they are using to call the table as the crossfilter library itself simply uses one line to define and tabulate the data. However this command is not seen in the original websites source code. So I will have to see where I can best add it in and get it working.

July 7

I began searching for better ways to set up the systems of cuts in the physics.C file. My supervisor Arturo Sanchez Pineda showed me an example that may work from https://twiki.cern.ch/twiki/bin/view/Main/SummerStudentProject2014Napoli on July 8.


//_____________________________________________________________________________
Cut_min_0

  if (
      low_event            == 0
      && weight            >= 0
      && channel           == current_channel   // (0 for Electrons and 2 for Muons)
      && isqcdevent        == 0
      && issystematicevent == -1
      && lepZ_m            > 20000.
      && lep1_caloiso      > 0.
      && lep2_caloiso      > 0.
       )
    {
      if((lep1_charge*lep2_charge)==-1 || current_channel==0)  //OS just for Muon Channel
       
       // *Fill your histograms*

       // pT Muon or Electron 1 (leading lepton) (lep1_pt)
       // pT Muon or Electron 2 (second lepton)  (lep2_pt)
       // eta Muon or Electron 1                 (lep1_eta)
       // eta Muon or Electron 2                 (lep2_eta)
       // phi Muon or Electron 1                 (lep1_phi)
       // phi Muon or Electron 2                 (lep2_phi)
       // mass Leptonic Z                        (lepZ_m)
       // pT Leptonic Z                          (lepZ_pt)
       // Missing Transverse Energy              (met)
    }


//_____________________________________________________________________________
Cut_min_A (Passing all previous cuts, e.g. Cut_min_0)

  if ( previous_cut && met < 60000. )
    { 
       // pT Muon or Electron 1
       // pT Muon or Electron 2
       // eta Muon or Electron 1
       // eta Muon or Electron 2
       // phi Muon or Electron 1
       // phi Muon or Electron 2
       // mass Leptonic Z
       // pT Leptonic Z
       // Number of Jets                        (n_jets)
       // Number of b Jets                      (n_b_jets)
       // mass hadronic Z                       (realZ_m)
       // pT Leptonic Z                         (realZ_pt)
    }


//_____________________________________________________________________________
Cut_min_B (Passing all previous cuts, e.g. Cut_min_A)

  if ( previous_cut && n_jets >= 2 ) // > 1 Jets
    { 
       // mass Leptonic Z
       // pT Leptonic Z
       // Number of Jets
       // Number of b Jets       
       // mass hadronic Z
       // pT hadronic Z
       // mass of lljj system (Higgs)           (realH_m)
       // pT of lljj system (Higgs)             (realH_pt) 
    }


//_____________________________________________________________________________
Cut_min_C (Passing all previous cuts, e.g. Cut_min_B)
  
  if ( previous_cut && lepZ_m > 83000. && lepZ_m < 99000. ) tmp_cut = 1; // 83 GeV < Mll < 99 GeV
    { 
       // mass Leptonic Z
       // pT Leptonic Z
       // Number of Jets
       // Number of b Jets       
       // mass hadronic Z
       // pT hadronic Z
       // mass of lljj system (Higgs)
       // pT of lljj system (Higgs)
    }


//_____________________________________________________________________________
Cut_min_D (Passing all previous cuts, e.g. Cut_min_C)

  if ( previous_cut && realZ_LJ_m > 70000. && realZ_LJ_m < 105000. ) // 70 GeV < Mjj < 105 GeV 
    { 
       // mass Leptonic Z
       // pT Leptonic Z
       // Number of Jets
       // Number of b Jets       
       // mass hadronic Z                       (realZ_LJ_m)
       // pT hadronic Z                         (realZ_LJ_pt)
       // mass of lljj system (Higgs)           (realH_LJ_m)
       // pT of lljj system (Higgs)             (realH_LJ_pt) 
    }

The problem with doing it this way, I feel is that I will still be repeating this process for all 20 variables and it greatly expands the amount of lines of code needed, however it is far cleaner than the previous way done using multiple if statements within if statements. I also began toying with the idea of Boolean statements and counters.

July 8

After consulting with Daniel Turner from CSU Channel Islands, I was led to a possible way of using data structures to run through a code once. This will save a lot of time and space and allow for each of the variables to be run through the same code giving ease of editing and troubleshooting. The general form goes as follows

struct name {

          int A,B,C,D ;
          float E, F, G ;
          
         }

list of varibles;

More research will need to be done on the best way to do this. But this task should be completed by the end of the weekend. Then the crossfilter work can be focused on.

August 5

Been a while since the last update. I was able to get the cut production to work. The code is not the cleanest or the best way to do it. However it did produce a series of cuts that came out nice for the Monte Carlo Higgs datasets. The final form of that code can be seen below in the attached physics.C file and the list of variables used can be seen in the physics.h file. Some of these plots can be seen in the screenshot images and higgs.png.

There is also the work done on the crossfilter code. I added parts from Tatiana's code found https://twiki.cern.ch/twiki/pub/Main/SummerStudentProject2014Napoli and attempted to take the code from http://square.github.io/crossfilter/ and adapt the sections that allow for a dynamic table and add it back into Tatiana's code. Unfortunately the attempts were unsuccessful, however the code for it can be found below in crossfilter1.html.

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng Higgs.png r1 manage 53.2 K 2015-08-05 - 14:33 GeordanRyanWaldman  
PNGpng Screenshot-5.png r1 manage 51.3 K 2015-08-05 - 14:33 GeordanRyanWaldman  
PNGpng Screenshot-6.png r1 manage 53.4 K 2015-08-05 - 14:33 GeordanRyanWaldman  
PNGpng Screenshot-7.png r1 manage 46.6 K 2015-08-05 - 14:33 GeordanRyanWaldman  
Texttxt arturos1.txt r1 manage 44.8 K 2015-08-02 - 16:55 GeordanRyanWaldman  
Texttxt arturos2.txt r1 manage 141.4 K 2015-08-02 - 16:55 GeordanRyanWaldman  
HTMLhtml crossfilter1.html r1 manage 27.5 K 2015-08-02 - 16:55 GeordanRyanWaldman  
Unknown file formatjson llqq_MC_ggH400GeV_NWA.json r1 manage 2783.0 K 2015-08-02 - 16:55 GeordanRyanWaldman  
C source code filec physics.C r2 r1 manage 32.4 K 2015-08-05 - 15:09 GeordanRyanWaldman  
Header fileh physics.h r1 manage 51.8 K 2015-08-02 - 16:51 GeordanRyanWaldman  
Unknown file formatext readertracker_filled_output r1 manage 10.7 K 2015-06-12 - 17:43 GeordanRyanWaldman A filled output histogram of a tracker tree file
Edit | Attach | Watch | Print version | History: r15 < r14 < r13 < r12 < r11 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r15 - 2015-08-05 - GeordanRyanWaldman
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback