CMS Description

CMS Maintenance and Improvements (Driven by DanK)

  • CMS uses some old data - how to update that
  • CMS has some older version of the ROOT script, how to update it
  • the OGRE UI needs to be updated

Ways to empower Dan Karmgard:
  • access to the CVS
  • testing environment for Dan (maybe a virtual machine with the CMS installed)
  • discuss and document a clean interface between the UI, the ROOT part, and the GRID compoment

The Making of a Grid-Enabled CMS

Start with the Root scripts: extract the script from the original CGI-BIN, and document its inputs, its outputs, and its dependencies
  • inputs: some parameters from the from that invokes the CGI get embedded into the Root script
  • outputs: a plot file with a well-known name (depending on one input variable), and a raw data (text file)
  • dependencies: the tb.data archives that contain pre-recorded physics experiments, used in the CMS elab

Create a swift workflow that produces the same results as the CGI-BIN:
  • write the workflow
  • install the remote components on the selected grid sites:
    • install Root
    • install the data dependencies (tb,data)
  • execute the workflow from the command line, with the proper parameters

Integrate the workflow into the ELabs portal
  • use the jsp pages and the java classes that Mihael developed to include transparently the stand-alone workflow into the portal
    • the cms-vdl2/src/jsp/ogre-new.jsp (from CVS) is the part that builds up the user interface
    • the FORM ACTION points to the code in cms-vdl2/src/jsp/ogreProcess.jsp (from CVS) Here a workflow object is created and initialized with the relevant workflow (the one illustrated below), then the user is forwarded to the workflowStart.jsp which triggers the workflow execution
  • link the output from the workflow running Root to the output pages in the portal (embed the plot file)
    • once the workflow finished executing ROOT, the output files are brought back to the local directory, which I made sure to be web-visible, then the window that is supposed to display the results will simply embed the plots produced by root

The Grid Workflow

type file {}

(file t, file o) rootInvoke (file s) {
        app {
                rootInvoke @filename(s) stdout=@filename(o);
        }
}

file script<fixed_mapper; file=@arg("scriptFile")>;
file img <fixed_mapper; file=@arg("outputFile")>;
file out <fixed_mapper; file=@arg("rawOutData")>;

(img,out) = rootInvoke(script);
//img,out = root("-b -q -l -n /home/tiberius/local/OGRE/script-tibi.c");

The Grid Resources setup

They determine where the Root script will run These can be found on www12.i2u2.org, in /var/tmp/quarknet-m/tomcat/webapps/elab/cms/output, under ./etc and ./var

sites.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!--Generated Wed Aug 17 15:17:52 PDT 2005-->
<!--Generated by gmehta [US] -->
<config xmlns="http://www.griphyn.org/chimera/GVDS-PoolConfig" xsi:schemaLocation="http://www.griphyn.org/chimera/GVDS  http://www.griphyn.org/chimera/gvds-poolcfg-1.5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.5"> 

        <pool handle="localhost" sysinfo="INTEL32::LINUX">
                <gridftp url="local://localhost" storage="/home/mike/work/i2u2/tmp" major="1" minor="0" patch="0"/>
                <jobmanager universe="vanilla" url="local://localhost" major="1" minor="0" patch="0"/>
                <workdirectory>/sandbox/hategan/vdlworkdir</workdirectory>
        </pool>

  <pool handle="evitable" sysinfo="INTEL32::LINUX" gridlaunch="/autonfs/home/tiberius/local/vds-1.4.7cvs/bin/kickstart">
    <lrc url="rlsn://evitable.ci.uchicago.edu"/>
     <gridftp url="gsiftp://evitable.ci.uchicago.edu" storage="/home/tiberius" major="2" minor="4" patch="3"/>
    <jobmanager universe="vanilla" url="evitable.ci.uchicago.edu/jobmanager-condor" major="2" minor="4" patch="3" />
    <jobmanager universe="transfer" url="evitable.ci.uchicago.edu/jobmanager-fork" major="2" minor="4" patch="3"/>
    <workdirectory>/home/tiberius</workdirectory>
  </pool>

</config>

tc.data:
evitable        rootInvoke      /home/tiberius/local/OGRE-v2/rootInvoke.sh       INSTALLED       INTEL32::LINUX      null

Sample Root script, as generated by the JSP invoked by the user interface FORM ACTION

{

         gROOT->Reset();
         TCanvas *canvas = new TCanvas("c1","",800,600);
         canvas->Divide(1,2);

         TChain *chain = new TChain("Event");
         chain->Add("/home/tiberius/local/tbdata/r11001.root");
         chain->Add("/home/tiberius/local/tbdata/r11002.root");
         c1_1->cd();
         chain->SetFillColor(0);
         chain->Draw("cluster.c1x1.e", NULL, NULL);
         htemp->GetXaxis()->SetTitle("E (GeV)");
         htemp->GetYaxis()->SetTitle("Number of Events");
         htemp->SetTitle("Total Energy (1x1)");
         c1_2->cd();
         chain->SetFillColor(0);
         chain->Draw("cluster.c1x1.ee", NULL, NULL);
         htemp->GetXaxis()->SetTitle("E (GeV)");
         htemp->GetYaxis()->SetTitle("Number of Events");
         htemp->SetTitle("Ecal Energy (1x1)");
         canvas->cd();
         canvas->Update();
         canvas->SaveAs("canvas-0.709243756044679.png");

         chain->SetScanField(chain->GetEntries()+1);
         chain->Scan("cluster.c1x1.e:cluster.c1x1.ee");
}

-- Main.TiberiuStefPraun - 29 May 2007
Topic revision: r8 - 2019-05-22, AdminUser
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback