Still some of the things here must still be considered and moved to the new pages

Matteo: 12:18 CERN time I fixed the parameter tree, the jet tracks and vertex tracks. I committed the code in San Diego and tagged it as V00-00-06. Now I'm going to run on a larger sample and try to read back the ntuple to check if it is filled correctly.

Sean: 14:58 SD time
I put the latest version of the code into the UCSD CVS. I tagged it as V00-00-05, but it should be the same as the head. It seems Matteo already made the super clusters and basic clusters the way we decided in the meeting.
The super clusters are set up like this:

sc_varname[] is the array with hybrid in the barrel and island in the endcap.

There is a flag

sc_barrel[] = 1 means a hybrid barrel supercluster

sc_barrel[] = 0 means an island endcap supercluster

thene there is a separate array called sc_islbar_varname[] which is all of the island barrel superclusters.

I included the counts

sc_hybrid_n

sc_islend_n

sc_islbar_n

with sc_n = sc_hybrid_n + sc_islend_n

bc_hybrid_n

bc_islend_n

bc_islend_n

with bc_n = bc_hybrid_n + bc_islend_n + bc_islbar_n

Matteo: 21.15 CERN Time I committed (but not tagged) Muons and Electrons: fixed momentum (Elizabeth you were right), added ID cut, added tkind to CTF tracks, added Stand Alone Muons (not in GlobeAnalyzer? yet. At home I'll take a look at the second tree to store the parameters.

Decision about SC and BC: I think

SC - one collection Hybrid Barrel + Island Endcap

- one collection with Island Barrel

sc_hybrid_n

sc_island_n

+ sc_type 1,2 + 3???

BC - only one collection Island Barrel, Island Endcap, Hybrid Barrel

bc_islbar_n

bc_islend_n

bc_hybbar_n

+ bc_type 3,2,1

Current CVS tag: V00-00-04

All variables in the root tree in lower case

The number of objects are:

gen_n

stk_n

svtx_n

mu_n

el_n

pho_n

sc_n

bc_n

jet_n

genjet_n

ct_n

hc_n

tk_n

vtx_n

...

Currently, Limits.h

#define VERSION 1

#define MAX_PARAMETERS 100

#define MAX_GENERATOR 10000

#define MAX_SIMTRACKS 500

#define MAX_SIMVERTICES 500

#define MAX_MUONS 100

#define MAX_ELECTRONS 100

#define MAX_PHOTONS 100

#define MAX_CONVERTEDPHOTONS 500

#define MAX_CONVERSIONS_PER_PHOTON 30

#define MAX_SUPERCLUSTERS 100

#define MAX_SUPERCLUSTER_BASICCLUSTERS 20

#define MAX_BASICCLUSTERS 500

#define MAX_JETS 100

#define MAX_JET_TOWERS 100

#define MAX_JET_TRACKS 100

#define MAX_GENJETS 100

#define MAX_VERTICES 100

#define MAX_VERTEX_TRACKS 100

#define MAX_CALOTOWERS 1000

#define MAX_HCALHITS 1000 // was 6912

#define MAX_L1 4

#define MAX_TRACKS 200

BLOCK GENERAL

Int_t event;

Int_t run;

Float_t pthat;

Float_t weight;

ADD Something like MC event type? For soups and so on, such as:

Int_t typ_ev;

BLOCK LEVEL 1

Ok for me

Muons sometimes have 5 I don't know why

Int_t l1emiso_n;

Int_t l1emnoniso_n;

Int_t l1cenjet_n;

Int_t l1forjet_n;

Int_t l1taujet_n;

Int_t l1mu_n;

Float_t l1emiso_et[MAX_L1]; //[l1emiso_n]

Float_t l1emnoniso_et[MAX_L1]; //[l1emnoniso_n]

Float_t l1cenjet_et[MAX_L1]; //[l1cenjet_n]

Float_t l1forjet_et[MAX_L1]; //[l1forjet_n]

Float_t l1taujet_et[MAX_L1]; //[l1taujet_n]

Float_t l1met_et;

Float_t l1mu_et[MAX_L1]; //[l1mu_n]

Float_t l1emiso_eta[MAX_L1]; //[l1emiso_n]

Float_t l1emnoniso_eta[MAX_L1]; //[l1emnoniso_n]

Float_t l1cenjet_eta[MAX_L1]; //[l1cenjet_n]

Float_t l1forjet_eta[MAX_L1]; //[l1forjet_n]

Float_t l1taujet_eta[MAX_L1]; //[l1taujet_n]

Float_t l1mu_eta[MAX_L1]; //[l1mu_n]

Float_t l1emiso_phi[MAX_L1]; //[l1emiso_n]

Float_t l1emnoniso_phi[MAX_L1]; //[l1emnoniso_n]

Float_t l1cenjet_phi[MAX_L1]; //[l1cenjet_n]

Float_t l1forjet_phi[MAX_L1]; //[l1forjet_n]

Float_t l1taujet_phi[MAX_L1]; //[l1taujet_n]

Float_t l1met_phi;

Float_t l1mu_phi[MAX_L1]; //[l1mu_n]

BLOCK GENERATOR

Int_t gen_n;

TClonesArray? *gen_p4;

Int_t gen_status[MAX_GENERATOR]; //[gen_n]

Int_t gen_pdgid[MAX_GENERATOR]; //[gen_n]

Int_t gen_mother[MAX_GENERATOR]; //[gen_n]

BLOCK GENJETS

Int_t genjet_it5_n;

TClonesArray? *genjet_it5_p4;

Float_t genjet_it5_em[MAX_GENJETS]; //[genjet_it5_n]

Float_t genjet_it5_had[MAX_GENJETS]; //[genjet_it5_n]

Float_t genjet_it5_inv[MAX_GENJETS]; //[genjet_it5_n]

Float_t genjet_it5_aux[MAX_GENJETS]; //[genjet_it5_n]

Int_t genjet_it7_n;

TClonesArray? *genjet_it7_p4;

Float_t genjet_it7_em[MAX_GENJETS]; //[genjet_it7_n]

Float_t genjet_it7_had[MAX_GENJETS]; //[genjet_it7_n]

Float_t genjet_it7_inv[MAX_GENJETS]; //[genjet_it7_n]

Float_t genjet_it7_aux[MAX_GENJETS]; //[genjet_it7_n]

Int_t genjet_mid_n;

TClonesArray? *genjet_mid_p4;

Float_t genjet_mid_em[MAX_GENJETS]; //[genjet_mid_n]

Float_t genjet_mid_had[MAX_GENJETS]; //[genjet_mid_n]

Float_t genjet_mid_inv[MAX_GENJETS]; //[genjet_mid_n]

Float_t genjet_mid_aux[MAX_GENJETS]; //[genjet_mid_n]

BLOCK SIMTRACKS

Put a sensible selection (electrons + photons in the tracker) maybe see what is does in CMSSW or add something else

Int_t stk_n;

TClonesArray? *stk_p4;

Int_t stk_genId[MAX_SIMTRACKS]; //[stk_n]

Int_t stk_type[MAX_SIMTRACKS]; //[stk_n]

Int_t stk_index[MAX_SIMTRACKS]; //[stk_n]

BLOCK SIMVERTICES

(primary vertex + vertices electrons + photons in the tracker) maybe see what is does in CMSSW or add something else

Int_t svtx_n;

TClonesArray? *svtx_p3;

Int_t svtx_mothIndex[MAX_SIMVERTICES]; //[svtx_n]

BLOCK TRACKS

Int_t tk_n;

TClonesArray? *tk_p4;

Int_t tk_nhits[MAX_TRACKS]; //[tk_n]

Int_t tk_charge[MAX_TRACKS]; //[tk_n]

Float_t tk_dof[MAX_TRACKS]; //[tk_n]

Int_t tk_nlosthit[MAX_TRACKS]; //[tk_n]

Float_t tk_d0[MAX_TRACKS]; //[tk_n]

Float_t tk_chi2[MAX_TRACKS]; //[tk_n]

Float_t tk_dz[MAX_TRACKS]; //[tk_n]

Float_t tk_qoverperr[MAX_TRACKS]; //[tk_n]

Float_t tk_d0err[MAX_TRACKS]; //[tk_n]

Float_t tk_dzerr[MAX_TRACKS]; //[tk_n]

BLOCK ECAL CLUSTERS

Here we must decide if splitting them or not

Maybe we can split the basicclusters or put a type

The type should be indicated together with the indices

Int_t islsc_n;

TClonesArray? *islsc_p4;

Float_t islsc_raw[MAX_SUPERCLUSTERS]; //[islsc_n]

Float_t islsc_pre[MAX_SUPERCLUSTERS]; //[islsc_n]

Int_t islsc_nbc[MAX_SUPERCLUSTERS]; //[islsc_n]

Int_t islsc_seed[MAX_SUPERCLUSTERS]; //[islsc_n]

Int_t islsc_bcseedind[MAX_SUPERCLUSTERS]; //[islsc_n]

Int_t islsc_bcind[MAX_SUPERCLUSTERS][MAX_SUPERCLUSTER_BASICCLUSTERS]; //[islsc_n]

Int_t sc_n;

TClonesArray? *sc_p4;

Float_t sc_raw[MAX_SUPERCLUSTERS]; //[sc_n]

Float_t sc_pre[MAX_SUPERCLUSTERS]; //[sc_n]

Int_t sc_nbc[MAX_SUPERCLUSTERS]; //[sc_n]

Int_t sc_seed[MAX_SUPERCLUSTERS]; //[sc_n]

Int_t sc_bcseedind[MAX_SUPERCLUSTERS]; //[sc_n]

Int_t sc_bcind[MAX_SUPERCLUSTERS][MAX_SUPERCLUSTER_BASICCLUSTERS]; //[sc_n]

Int_t bc_n;

TClonesArray? *bc_p4;

Int_t bc_nhits[MAX_BASICCLUSTERS]; //[bc_n]

Float_t bc_s1[MAX_BASICCLUSTERS]; //[bc_n]

Float_t bc_s9[MAX_BASICCLUSTERS]; //[bc_n]

Float_t bc_s25[MAX_BASICCLUSTERS]; //[bc_n]

Float_t bc_spp[MAX_BASICCLUSTERS]; //[bc_n]

Float_t bc_see[MAX_BASICCLUSTERS]; //[bc_n]

Float_t bc_sep[MAX_BASICCLUSTERS]; //[bc_n]

BLOCK JETS:

Int_t jet_it5_n;

TClonesArray? *jet_it5_p4;

Float_t jet_it5_emfrac[MAX_JETS]; //[jet_it5_n]

Float_t jet_it5_hadfrac[MAX_JETS]; //[jet_it5_n]

Int_t jet_it5_ntk[MAX_JETS]; //[jet_it5_n]

Int_t jet_it5_tkind[MAX_JETS][MAX_JET_TRACKS]; //[jet_it5_n]

Int_t jet_it5_ncalotw[MAX_JETS]; //[jet_it5_n]

Int_t jet_it5_calotwind[MAX_JETS][MAX_JET_TOWERS]; //[jet_it5_n]

Int_t jet_it7_n;

TClonesArray? *jet_it7_p4;

Float_t jet_it7_emfrac[MAX_JETS]; //[jet_it7_n]

Float_t jet_it7_hadfrac[MAX_JETS]; //[jet_it7_n]

Int_t jet_it7_ntk[MAX_JETS]; //[jet_it7_n]

Int_t jet_it7_tkind[MAX_JETS][MAX_JET_TRACKS]; //[jet_it7_n]

Int_t jet_it7_ncalotw[MAX_JETS]; //[jet_it7_n]

Int_t jet_it7_calotwind[MAX_JETS][MAX_JET_TOWERS]; //[jet_it7_n]

Int_t jet_mid_n;

TClonesArray? *jet_mid_p4;

Float_t jet_mid_emfrac[MAX_JETS]; //[jet_mid_n]

Float_t jet_mid_hadfrac[MAX_JETS]; //[jet_mid_n]

Int_t jet_mid_ntk[MAX_JETS]; //[jet_mid_n]

Int_t jet_mid_tkind[MAX_JETS][MAX_JET_TRACKS]; //[jet_mid_n]

Int_t jet_mid_ncalotw[MAX_JETS]; //[jet_mid_n]

Int_t jet_mid_calotwind[MAX_JETS][MAX_JET_TOWERS]; //[jet_mid_n]

BLOCK MET:

Perhaps I would add here HT + some corrected METs if we want

Float_t met_met;

Float_t met_phi;

BLOCK VERTEX

Int_t vtx_std_n;

TClonesArray? *vtx_std_xyz;

TClonesArray? *vtx_std_dxdydz;

Int_t vtx_std_ntks[MAX_VERTICES]; //[vtx_std_n]

Int_t vtx_std_tkind[MAX_VERTICES][MAX_VERTEX_TRACKS]; //[vtx_std_n]

Int_t vtx_pix_n;

TClonesArray? *vtx_pix_xyz;

TClonesArray? *vtx_pix_dxdydz;

Int_t vtx_pix_ntks[MAX_VERTICES]; //[vtx_pix_n]

Int_t vtx_pix_tkind[MAX_VERTICES][MAX_VERTEX_TRACKS]; //[vtx_pix_n]

ADD: tksumpt_pt vector sum of of tracks pt

ADD: tksumpt_phi its phi (useful for H->gamgam)

ADD: tksummodpt scalar sum of tracks pt

BLOCK CALOTOWERS

Int_t ct_n;

TClonesArray? *ct_p4;

Float_t ct_emEnergy[MAX_CALOTOWERS]; //[ct_n]

Float_t ct_hadEnergy[MAX_CALOTOWERS]; //[ct_n]

Float_t ct_outerEnergy[MAX_CALOTOWERS]; //[ct_n]

Int_t ct_emL1[MAX_CALOTOWERS]; //[ct_n]

Int_t ct_hadL1[MAX_CALOTOWERS]; //[ct_n]

Int_t ct_size[MAX_CALOTOWERS]; //[ct_n]

BLOCK HCAL

Check what the ET cut should be for the different parts

TClonesArray? *hc_p4;

Int_t hc_n;

Int_t hc_type[MAX_HCALHITS]; //[hc_n]

BLOCK PHOTON AND CONVERTED PHOTON

Int_t pho_n;

TClonesArray? *pho_p4;

Int_t pho_islscind[MAX_PHOTONS]; //[pho_n]

Float_t pho_islscdr[MAX_PHOTONS]; //[pho_n]

Int_t pho_barrel[MAX_PHOTONS]; //[pho_n]

Int_t pho_scind[MAX_PHOTONS]; //[pho_n]

Float_t pho_s1[MAX_PHOTONS]; //[pho_n]

Float_t pho_s9[MAX_PHOTONS]; //[pho_n]

Float_t pho_s25[MAX_PHOTONS]; //[pho_n]

Int_t pho_nconv[MAX_PHOTONS]; //[pho_n]

Int_t pho_convind[MAX_PHOTONS][30]; //[pho_n]

Int_t cpho_n;

TClonesArray? *cpho_vtxp4;

TClonesArray? *cpho_vtx;

TClonesArray? *cpho_tk1p3;

TClonesArray? *cpho_tk2p3;

Int_t cpho_ntracks[MAX_CONVERTEDPHOTONS]; //[cpho_n]

Int_t cpho_phoind[MAX_CONVERTEDPHOTONS]; //[cpho_n]

Int_t cpho_scind[MAX_CONVERTEDPHOTONS]; //[cpho_n]

Float_t cpho_trk_d0[MAX_CONVERTEDPHOTONS][2]; //[cpho_n]

Int_t cpho_trk_nhits[MAX_CONVERTEDPHOTONS][2]; //[cpho_n]

Float_t cpho_trk_chi2perdof[MAX_CONVERTEDPHOTONS][2]; //[cpho_n]

Float_t cpho_trk_dz[MAX_CONVERTEDPHOTONS][2]; //[cpho_n]

Float_t cpho_vtx_x[MAX_CONVERTEDPHOTONS]; //[cpho_n]

Float_t cpho_vtx_y[MAX_CONVERTEDPHOTONS]; //[cpho_n]

Float_t cpho_vtx_z[MAX_CONVERTEDPHOTONS]; //[cpho_n]

Float_t cpho_vtx_r[MAX_CONVERTEDPHOTONS]; //[cpho_n]

Float_t cpho_pairsep[MAX_CONVERTEDPHOTONS]; //[cpho_n]

Float_t cpho_pairptoveretsc[MAX_CONVERTEDPHOTONS]; //[cpho_n]

Float_t cpho_eoverp[MAX_CONVERTEDPHOTONS]; //[cpho_n]

BLOCK ELECTRON

GGE electron producer must be added in the path

Int_t el_std_n;

TClonesArray? *el_std_p4;

Int_t el_std_crack[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_eopin[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_eopout[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_pout[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_pin[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_fbrem[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_hoe[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_detain[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_dphiin[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_detaout[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_dphiout[MAX_ELECTRONS]; //[el_std_n]

Int_t el_std_class[MAX_ELECTRONS]; //[el_std_n]

Int_t el_std_scind[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_z0[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_d0[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_z0err[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_d0err[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_chi2[MAX_ELECTRONS]; //[el_std_n]

Float_t el_std_dof[MAX_ELECTRONS]; //[el_std_n]

Int_t el_std_charge[MAX_ELECTRONS]; //[el_std_n]

Int_t el_std_losthits[MAX_ELECTRONS]; //[el_std_n]

Int_t el_std_validhits[MAX_ELECTRONS]; //[el_std_n]

BLOCK MUONS

Standalone muon still missing (or partly missing)

Int_t mu_global_n;

TClonesArray? *mu_global_p4;

Int_t mu_global_nmatches[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_em[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_had[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_ho[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_emS9[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_hadS9[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_hoS9[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_chi2[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_dof[MAX_MUONS]; //[mu_global_n]

Int_t mu_global_tkind[MAX_MUONS]; //[mu_global_n]

Int_t mu_global_staind[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_z0[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_d0[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_z0err[MAX_MUONS]; //[mu_global_n]

Float_t mu_global_d0err[MAX_MUONS]; //[mu_global_n]

Int_t mu_global_charge[MAX_MUONS]; //[mu_global_n]

Int_t mu_global_losthits[MAX_MUONS]; //[mu_global_n]

Int_t mu_global_validhits[MAX_MUONS]; //[mu_global_n]

Sometimes it has some problems finding the combined track - should be fixed

Int_t mu_tk_n;

TClonesArray? *mu_tk_p4;

Int_t mu_tk_nmatches[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_em[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_had[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_ho[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_emS9[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_hadS9[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_hoS9[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_chi2[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_dof[MAX_MUONS]; //[mu_tk_n]

Int_t mu_tk_tkind[MAX_MUONS]; //[mu_tk_n]

Int_t mu_tk_staind[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_z0[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_d0[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_z0err[MAX_MUONS]; //[mu_tk_n]

Float_t mu_tk_d0err[MAX_MUONS]; //[mu_tk_n]

Int_t mu_tk_charge[MAX_MUONS]; //[mu_tk_n]

Int_t mu_tk_losthits[MAX_MUONS]; //[mu_tk_n]

Int_t mu_tk_validhits[MAX_MUONS]; //[mu_tk_n]

Elizabeth: 14 Feb 0:23 UCSD

Fixed some bugs, so the head runs without a seg fault (there was a problem in Generator). I didnt make a new tag. There are 3 lines in GlobeSimTracks? .cc that I marked (near the bottom) that cause a seg fault if I uncomment them. I dont know why, and I am not very useful now. I corrected a bunch of small things that aren't important. Matt L. pointed out that we are using the wrong trackmomemtum for pout, but it is an easy fix and I will do it tomorrow. Sorry I didnt get this working

Matteo: 12 Feb 20.29 CERN time

Fixed a stupid bug in GlobeEcalClusters? .cc code committed but not tagged. Now looking at Gen Particles.

Use the new tag V00-00-03, one bug was fixed

Marco: 12 Feb 7.00 pm CERN time

I have just put in cvs the latest version:

The tag is: V00-00-02

Please NEVER move tags, I is a waste of time

You should start from that for any new modifications.

There are some known problems/missing things mainly indicated with the word CHECK

There should be also some unknown bugs to be fixed.

Some I already observed are:

the param root tree may not work well, cannot be opened with TBrowser, can it be read by a program?

when you open the events root tree with TBrowser it complains of something

bc_p4 does not look filled properly

staMuon is not filled (I commented it out)

GlobeVertex? has some problems that I commented out

GlobeJets? has the tracks that don't work

Marco: 12 Feb 8.30 pm CERN time

Matteo and I did not completely finish but the main things are done.

Some of the variables of the ecal are not filled yet, such as the index of bc belonging ro sc + some variables are missing

The converted photons and pizero disc are not included, they should be with the photons as we had decided

The simtracks need also the simvertices together and I wrote in the class what I think should be put.

The code is attached to this page, you can put it in cvs if you want.

The collection names for many of the things matteo did are not there yet.

Grep everywhere CHECK and you will see some of the things that still need to be done

......

**update from Sean**
I just realized I didn't do converted photons. I will make that class first thing in the morning. I put lorentz vectors in instead of energy, et, eta, phi for the hcal hits, ecal clusters, calo towers, & photons. Sim tracks still need work, but I think Ryan will help with that soon.

tag V00-00-00 is now working with the photon and electron indices to superclusters. Also the superclusters are separated by hybrid and island. In the barrel, photons/electrons are matched to island super clusters by a delta-r minimization, and in the endcap by checking that the addresses of the super clusters are the same. Hybrid super clusters are matched by address in the barrel. if there is no match -1 is put in. There is similar matching for indices going the other way (super cluster --> photon/electron).

**update Elizabeth** I think the seg fault is fixed. came from replacing i with el_n in Electrons class, we should look more carefully, i guess. Sorry about that.

The variables I have in so far are: HcalHits:

- energy, eta, phi (hcal hits don't have momentum so I didn't use a lorentz vector)

- energy, et, eta, phi, genId, type (not sure exactly what these last two are yet. also should put in a lorentz p4)

- energy, et, eta, phi, seed energy, number of basic clusters, electron and photon indices, barrel (=0 or 1). Also raw and preshower energy will go in tomorrow(today)

- energy, et, eta, phi, number of hits, index to super cluster to go in tomorrow (today).

- energy, et, eta, phi, emEnergy, hadEnergy, outerEnergy, outerEt, emEt, hadEt, emL1, hadL1,size (these are available variables. need to be looked atbecause I don't know exactly what they are)

- energy, et, eta, phi, index to supercluster, s1, s9, s25 (and tranverse), barrel(0 or 1), p4

I haven't done converted photons yet. I am not sure if I should do it inside of GlobePhoton? or make a separate class.

**10 pm San Diego Elizabeth update**
L1, MET, Vertex, Tracks are in and mostly filled. I did not get in the pointers to the tracks or the variable tkind (vertex class). I don't know what tkind is, and I could not find it in LXR. I also did not put in references to the simtracks or mc in the tracks class. Sorry about this, I just didn't have time to figure these things out. I will try to get to it on Tues if no one does it before then. For the MET, I could only find one MET collection. It is a caloMET. I will try to look in the CMS1 code to find out what they used and what they did to it early this week. Please let me know if you find problems.

**DONE** Another one: ElecrtonColl? in consistently used as the config parameter names (mis-spelled)

**Some more things:**
GlobePhotons? .cc: pho_sc[i] should be pho_sc[pho_n] in two places

**DONE** GlobeElectrons? : [i] should be el_n everywhere

**DONE, although there is no threshhold right now** GlobeTracks? : [i] should be tk_n everywhere

GlobeEcalClusters? : if sc->energy() < SCetCut? _ for some clusters, the index of the SC for photons and electrons is not correct anymore. Either we decide that we do not apply any cut on the SCs or the index has to be found in a different way or updated at the moment of storing the SC if we do electrons and photons first but we should tink about that

GlobeHcal? : put only a TLorentzVector? and add an int hcal_type to say to which collection a hit belongs

**End of some more things**

**Some comments by Marco on the current version Feb 9, 2007 10.45 pm CERN time:**

Sorry but I did not look very well nor try much.

1) There should be parameters in the file.cfi such as:

bool doL1 = true

bool doElectrons =true

bool doPhotons =true

and so on

in Globeanalyzer the classes should not be called ehen the corresponding doX is false

2) _std_should not be in the names when there is only one type of objects, it must be there for electrons because there is std and gge or something like that

3) The sprintf with many lines does not look very useful to me, I find simpler to do

if (=="std") {

.... el_std_et...

...

}

else if ( ==gge) {

....

}

there are many less lines doing like this

For sure I don't think one should do sprintf when there is only one set of variables

4) for the variables please look, comment and and update the list of variables that I started to write below, for example I was proposing _p4 for the 4momentum and not _lv but it should be agreed

5) what is failedToGet() for? it seems to me that if the collection is not there GetByLabel? gives an error and it will not get there

6) In all the loops for filling I have seen, the TLorenzVector? is filled using for the index the variable i (new ..[i], ->At(i)) that is not the same as type_n when there is a threshold and I think it is wrong.

**End of Marco's comments**

Sean put the code in CVS. It is in UserCode/Simon/Analyzers/

**19.16 Feb 8 CERN**
I wrote some code but I will certainly finish it during the week-end anyway I do not commit anything till next Monday. (Matteo)

**8pm PST Feb 7 UCSD :**
Sean and Eliz. have Electron example working in CMSSW_168. Sean has added a working photon class. I have added a working L1 class. Neither are yet complete. Sean has started on the SimTracks? . We plan to get the skeletons up for everything and then work on filling all the variables. The only real trouble I know of is with L1EtMiss? , but I have not spent a long time on it. I will try to be in by 9 tomorrow if you want to talk about anything. We have not yet set up anything in CVS.

To put this as a twiki page:

rm ntptwiki_v1.txt; cat ntp_v1.txt | sed 's/$/

/' >ntptwiki_v1.txt

This is the same as the text file attached ntp_v1.txt, it only has BRs

*February 7th, 2008

ntp_v1.txt: Updated root tree format Version 1. Please have a look and put new versions with updates.

==========================================================================

==========================================================================

==========================================================================

Current Sharing of the work (8 February 2008)

Sean + Elizabeth:

Vtx (data)

L1Trigger?

Hcal Hits/Calo Towers

Ecal stuff

Photons

Tracks

MET

Matteo:

Electrons

Muons

Jets

GenJets? (maybe I can reuse the same class for jet the dataformat should be the same)

MC (incl MC vtx?)

Common Variables

Postponed for the moment:

HLT

SimTracks? (we may have this info, we will add it if we do) (NOT TO BE POSTPONED)

Preshower

==========================================================================

==========================================================================

==========================================================================

First prototype of the code for the electrons.

Some comments:

1) each class sets and fills the branches related to its own object

2) in the main class (GlobeAnalyzer? ) there are two trees one ("event") contains the real events the other one will contain global info about the job we are running (parameter set, total events, total events selected, ....)

3) besides global parameters each class can have a set of specific parameters (look at globeanalyzer.cfi) to perform cuts on the objects and reduce the number of objects to store, the analyze method return a bool (false if no object pass the cuts)

4) each class should have defined a debug_level variable to activate the debug and in Limits.h the maximum number of object of that type to store

5) the names of the branches can be changed, they should be agreed upon

6) for some collections (like electrons, muons and jet where there are many types of algos) we pass a char to the class during constuction to choose which collection do we want to process. So for example in GlobeAnalyzer? we will have two GlobeElectrons? objects:

electrons1 = new GlobeElectrons? ("std", pset); // process standard electrons

electrons2 = new GlobeElectrons? ("gge", pset); // process global gsf electrons

7) in test there is a very simple root macro to read the rootple

8) each time we make a tag we have to change the VERSION variable in Limits.h which will be stored in the common_variables tree of the ntuple

9) if you have a better idea (and probably you have...) you can suggest new names for the classes and if you like we can define our own namespace (for example ucsd), I'm too lazy to think about that. For now we just chose to use the Globe prefix in honour of the big wood ball I can see from my windows ;-)

==========================================================================

==========================================================================

==========================================================================

Two root trees in the output file:

Event

Parameters

In the example there are:

MAX_ELECTRONS

MAX_PHOTONS

MAX_PHOTONS_CONVERTED

MAX_MUONS

MAX_JETS

MAX_GEN

.....

The variables in blocks are:

pho_name

mu_name

el_name

jet_name

gen_name

...

when there are different types possible (example pixmatch electrons and gge)

el_gge_name

el_pix_name (or std as Matteo said, but it may change one day)

For each block the number of objects is for example:

gen_n

pho_n

mu_n

el_n

The pointers are:

pho_scind

The block they point to should be clarified in case of doubt, for example Island or Hybrid sc

==========================================================================

==========================================================================

==========================================================================

BLOCKS and variables

==========================================================================

==========================================================================

==========================================================================

GENERAL:

Int_t run;

Int_t event;

Float_t pt_hat;

...

Something like MC event type? For soups and so on, such as:

Int_t typ_ev;

==========================================================================

==========================================================================

==========================================================================

BLOCK Generator info:

All generated particles

Int_t gen_n;

Int_t gen_status[];

Int_t gen_pdgid[];

Int_t gen_mother[];

TLorentzVector? gen_p4[];

REPLACES:

Float_t gen_energy[];

Float_t gen_et[];

Float_t gen_eta[];

Float_t gen_theta[];

Float_t gen_phi[];

==========================================================================

==========================================================================

==========================================================================

Simvertices+simtracks, someone should look because for now I am only guessing

I would first put electrons and photons in the tracker:

??????

Int_t simvtx_n

Float_t simvtx_x[]

Float_t simvtx_y[]

Float_t simvtx_z[]

Int_t simtk_n

Int_t simtk_pdgid[]

TLorentzVector? simtk_p4 []

Int_t simtk_vtxind[]

?????

==========================================================================

==========================================================================

==========================================================================

L1 TRIGGER

I thing one can use MAX_L1=4

I would put everything lowercase

No TLorentzVector?

l1emiso

Int_t l1emiso_n;

Int_t l1emiso_rank[l1emiso_n]; //IF IT EXISTS, otherwise they are already in decreasing ET order

REMOVE Int_t l1emiso_energy[l1emiso_n]

Float_t l1emiso_et[l1emiso_n]; (I THINK IT IS FLOAT ENEN IF NOW IT HAS INTEGER VALUES)

Float_t l1emiso_eta[l1emiso_n];

Float_t l1emiso_phi[l1emiso_n];

l1emnoniso

-- same as above

l1jet

-- same as above

l1tau

-- same as above

l1muon

-- same as above

==========================================================================

==========================================================================

==========================================================================

Add HLT info to be added but probably later

bit

Candidates passing HLT for all relevant triggers

for em match candidates passing using SC

single e iso

single e non iso

double e iso

double e non iso

single pho iso

single pho non iso

double pho iso

double pho non iso

and so on

==========================================================================

==========================================================================

==========================================================================

Tracks

Int_t tk_n;

TlorontzVector? tk_p4[168]; //[tk_n]

Int_t tk_charge[168]; //[tk_n]

Float_t tk_d0[168]; //[tk_n]

Int_t tk_nhits[168]; //[tk_n]

Float_t tk_chi2[168]; //[tk_n]

Int_t tk_dof[168]; //[tk_n]

Float_t tk_dz[168]; //[tk_n]

Float_t tk_qoverpError[168]; //[tk_n]

+lost hits

+errors on d0, dz

Not full cov matrix

id mc match

reference to gen tracks, if not simtracks

==========================================================================

==========================================================================

==========================================================================

BLOCK MC Vertex info:

vtx_mc_n

Float_t vtx_mc_x[];

Float_t vtx_mc_y[];

Float_t vtx_mc_z[];

Or Point if it is easy.

==========================================================================

==========================================================================

==========================================================================

BLOCK Data Vertex info:

Or Point if it is easy.

vtx_data_n

Float_t vtx_data_x[];

Float_t vtx_data_y[];

Float_t vtx_data_z[];

Float_t vtx_data_dx[];

Float_t vtx_data_dy[];

Float_t vtx_data_dz[];

Int_t vtx_data_ntk[]

Float_t vtx_data_tksumptphi[] //redundant

Float_t vtx_data_tksumpt[] //redundant

Float_t vtx_data_tksumabspt[] //redundant

Pointers to the tracks

Int_t vtx_data_tkind[][MAX_VTDDATATKINDEX]

==========================================================================

==========================================================================

==========================================================================

HCAL BLOCK

all lowercase

Int_t hcalb_n;

Float_t hcalb_eta[5184];

Float_t hcalb_phi[5184];

Float_t hcalb_et[5184];

or TLorentzVector?

Int_t hcalf_n;

Float_t hcalf_eta[1728];

Float_t hcalf_phi[1728];

Float_t hcalf_et[1728];

or TLorentzVector?

add the other type (hcalo for outer???)

and put an energy threshold to store them(not et) to be evaluated in the different regions (eta and type)

~300 MeV?

==========================================================================

==========================================================================

==========================================================================

BLOCK Calotowers

This was put by Sean (check again)

Int_t caltow_n;

Float_t caltow_et[726]; //[caltow_n]

Float_t caltow_energy[726]; //[caltow_n]

Float_t caltow_eta[726]; //[caltow_n]

Float_t caltow_phi[726]; //[caltow_n]

replace th 4 above with

TLorentzVector? caltow_p4[]

Float_t caltow_emEnergy[726]; //[caltow_n]

Float_t caltow_hadEnergy[726]; //[caltow_n]

Float_t caltow_outerEnergy[726]; //[caltow_n]

Float_t caltow_outerEt[726]; //[caltow_n]

Float_t caltow_emEt[726]; //[caltow_n]

Float_t caltow_hadEt[726]; //[caltow_n]

Int_t caltow_emL1[726]; //[caltow_n]

Int_t caltow_hadL1[726]; //[caltow_n]

Int_t caltow_size[726]; //[caltow_n]

==========================================================================

==========================================================================

==========================================================================

BLOCK Electrons

two separate collections (standard + GGE)

add a flag con loose tight cuts for Elizabeth... (integer)

pointers to tracks + number of shared hits and so on

==========================================================================

==========================================================================

==========================================================================

BLOCK Muons

two collections (Global, trackingmuons)

pointers to track used

==========================================================================

==========================================================================

==========================================================================

BLOCK Jets:

4 o 5 types + gen jets

(no eta cut, no et cut)

Int_t jet_type_n

TlorentzVector? jet_type_p4

Corrected energy???

em fraction???

had fraction???

track energy (if tracks are used) ????

==========================================================================

==========================================================================

==========================================================================

BLOCK MET Missing et

Some different types if available

Missing et

Missing et phi

met_type_et

met_type_phi

Elizabeth should check it

==========================================================================

==========================================================================

==========================================================================

No taus for the moment

==========================================================================

==========================================================================

==========================================================================

No PFlow for the moment

==========================================================================

==========================================================================

==========================================================================

==========================================================================

==========================================================================

==========================================================================

BLOCK Photons + converted photons:

I am not sure

In future (CMSSW_2_0_0) the converted photon info will be added to the photons

We could do immediately and add to the photons n_convetracks +

all the track pairs prensent in the conv pho

Or leave it as it is now and have two separate blocks: pho and convpho with repeated photons

Perhaps I would do the first option

Must make sure that the vertex is at 0, 0, 0 as we want because we want to choose the vertex later

It would be:

Int_t pho_n;

TLorentzVector? pho_p4[]; //with corrected energy

Float_t pho_energyuncor[]; //SC Energy

Float_t pho_preshenergy[]; //SC Energy

Int_t pho_scind;

Int_t pho_barrel[] //barrel 1, endcaps 0 also needed to know to which collection of SC the previous points

Float_t pho_s1[MAX_PHOTONS]; //[pho_n]

Float_t pho_s9[MAX_PHOTONS]; //[pho_n]

Float_t pho_s25[MAX_PHOTONS]; //[pho_n]

also add: varetaeta, varphiphi, ...

Float_t pho_ecalr[MAX_PHOTONS]; //radius of the SC cog

Float_t pho_ecalz[MAX_PHOTONS]; //z of the SC cog

//pizero disc variables

Int_t pho_pizerotype[MAX_PHOTONS]; //[pho_n]

Float_t pho_pizeronn[MAX_PHOTONS]; //[pho_n]

maybe something like this: correction for leakage but we will have anyway to rivisit corrections as soon as the new sc corrections will be in

Float_t pho_bordercorr[MAX_PHOTONS]; //[pho_n]

OPTIONAL, MAYBE LATER, SOME ISOLATION VARIABLES

Int_t pho_ntk[MAX_PHOTONS]; //[pho_n]

Int_t pho_ntk030[MAX_PHOTONS]; //[pho_n]

Int_t pho_ntk025[MAX_PHOTONS]; //[pho_n]

Int_t pho_ntk035[MAX_PHOTONS]; //[pho_n]

Int_t pho_barrel[MAX_PHOTONS]; //[pho_n]

Int_t pho_gen[MAX_PHOTONS]; //[pho_n]

Float_t pho_drmatch[MAX_PHOTONS]; //[pho_n]

Float_t pho_hcal030[MAX_PHOTONS]; //[pho_n]

Float_t pho_hcal040[MAX_PHOTONS]; //[pho_n]

Float_t pho_hcal050[MAX_PHOTONS]; //[pho_n]

Float_t pho_ecal030[MAX_PHOTONS]; //[pho_n]

Float_t pho_ecal040[MAX_PHOTONS]; //[pho_n]

Float_t pho_ecal050[MAX_PHOTONS]; //[pho_n]

Float_t pho_ecal00MAX_PHOTONS035[MAX_PHOTONS]; //[pho_n]

Float_t pho_ecal00MAX_PHOTONS030[MAX_PHOTONS]; //[pho_n]

Float_t pho_ecal00MAX_PHOTONS040[MAX_PHOTONS]; //[pho_n]

Float_t pho_ecal008035[MAX_PHOTONS]; //[pho_n]

Float_t pho_ecal008030[MAX_PHOTONS]; //[pho_n]

Float_t pho_ecal008040[MAX_PHOTONS]; //[pho_n]

END OPTIONAL

Int_t pho_nconvtk[MAX_PHOTONS]; //[convpho_n]

Float_t pho_convtk_pt[MAX_PHOTONS][MAX_NPAIR][2]; //both tracks together

Float_t pho_convtk_eta[MAX_PHOTONS][MAX_NPAIR][2]; //both tracks together

Float_t pho_convtk_phi[MAX_PHOTONS][MAX_NPAIR][2]; //both tracks together

Float_t pho_convtk_d0[MAX_PHOTONS][MAX_NPAIR][2]; //both tracks together

Float_t pho_convtk_dz[MAX_PHOTONS][MAX_NPAIR][2]; //both tracks together

Int_t pho_convtk_nhits[MAX_PHOTONS][MAX_NPAIR][2]; //both tracks together

Float_t pho_convtk_chi2perDof[MAX_PHOTONS][MAX_NPAIR][2]; //both tracks together

Float_t pho_vtx_x[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

Float_t pho_vtx_y[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

Float_t pho_vtx_z[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

Float_t pho_pairmass[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

Float_t pho_pairsep[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

Float_t pho_vtx_px[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

Float_t pho_vtx_py[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

Float_t pho_vtx_pz[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

Float_t pho_vtx_pt[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

Float_t pho_pairptoveretsc[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

Float_t pho_eoverp[MAX_PHOTONS][MAX_NPAIR]; //[convpho_n]

extrapolation of the pair to the beam line

Float_t convpho_zbeamline[MAX_PHOTONS]; //[convpho_n]

==========================================================================

==========================================================================

==========================================================================

BLOCKS ECAL CLUSTERS

Decide how to link them (probably in both directions)

Also link the sc to the seed basic cluster

Probably put together barrel and endcaps

Int_t islbc_n;

TlorentzVector? islbc_p4[MAX_ISLANDBASICCLUSTERS]

Int_t islbc_barrel[MAX_ISLANDBASICCLUSTERS]; //1 barrel, 0 endcaps

Int_t islbc_scind[MAX_ISLANDBASICCLUSTERS];

Int_t islbc_ncry[MAX_ISLANDBASICCLUSTERS];

Int_t islsc_n;

TlorentzVector? islsc_p4[MAX_ISLANDSUPERCLUSTERS]

Int_t islsc_barrel[MAX_ISLANDSUPERCLUSTERS]; //1 barrel, 0 endcaps

Int_t islsc_scind[MAX_ISLANDSUPERCLUSTERS];

Float_t correction due to preshower in endcaps

list of indexes to basiclusters

Int_t hybsc_n;

TlorentzVector? hybsc_p4[MAX_HYBRIDSUPERCLUSTERS]

Int_t hybsc_barrel[MAX_HYBRIDSUPERCLUSTERS]; //1 barrel, 0 endcaps

Int_t hybsc_scind[MAX_HYBRIDSUPERCLUSTERS];

Check WELL if there is another collection of Hybrid Clusters

Maybe some shape variables in the super clusters

varetaeta, varphiphi, s1, s9, .....

Perhaps some shape variables in the basic clusters

Energy, raw energy, presh energy

==========================================================================

==========================================================================

==========================================================================

SOME MORE USELESS COMMENTS JUST FOR ME (MARCO) TO REMEMBER

EXAMPLE OF REDUNDANT INFO OPTIONAL OUR OWN VERTICES DONE BY HAND BUT WE WILL PUT IT LATER< FIRST WE NEED TO STUDY IT

Int_t vtx_n;

Float_t vtx_z[30]; //[vtx_n]

Int_t vtx_ntk[30]; //[vtx_n]

Float_t vtx_vecmom[30]; //[vtx_n]

Float_t vtx_vecmomphi[30]; //[vtx_n]

Float_t vtx_absmom[30]; //[vtx_n]

END OPTIONAL

PUT MAX objects +

check that we never write more than that

for two dimensions use fixed second [10]

For physics objects (e, gamma may add et threshold) think!!!!

OPTIONAL: REDUNDANT INFO

Some selected particles such as e, mu, gamma, tau? with ET thresholds

e, before and after photon emissiom

Int_t gen_mu_n;

Int_t gen_mu_status[];

Int_t gen_mu_pdgid[];

TLorentzVector? gen_mu_p4[];

END OPTIONAL

*February 6th, 2008

ntp.txt: New root tree format Version 0. Please have a look and put new versions with updates.

December 13th, 2007

- Add 1 LorentzVector? or 3dvector (later maybe more) (IS THIS WORTH IT? MULTIPLE PHOTONS PER EVENT MEANS WE NEED AN ARRAY OF LORENTZ VECTORS)
- Replace all arrays into std::vector (ON HOLD)
- Get collections only once (DONE)
- Remove all duplicated variables (DONE)
- Allgen_p_eta (goes to very large numbers because of very large eta gen particles) (COMES FROM FIRST TWO PARTICLES (the protons). THEY HAVE ETA OF +-1e72. NOW SKIPPING THEM)
- remove
*p**n**i*(DONE) - check R9 larger than 1( r9 > 1 about ~1% of the time (26 in 2300 photons). Only about 20% (5/26) are at eta < 2. s9/s25 is always less than 1.
- review photon energy variables (NOT DONE YET)

- HCAL Info + verify how many HCAL Hits and what type ( E or Et cuts???)(DONE)HCAL RECHIT INFO(eta, phi, Et) FOR BARREL(5184) AND FORWARD(1728), NOT HCAL-OUTER

- Links to BasicClusters? (PHOTONS NOW HAVE AN ARRAY WITH INDICES TO ISLAND BASIC CLUSTERS)
- MC truth conversions(NOT SURE WHAT THIS MEANS ?? )(It means that we should put the simtracks of the converted photons and probably brem from electrons - not urgent)
- LV1 (Et, eta and phi are in for ISO, NONISO, JETS, TAUS, and MUONS)
- HLT (HLTHighLevel? ) (HLTAnalyzer - Pedrame Bargassa or Alessio Ghezzi)(NOT DONE YET. LOOKED INTO IT AND WASN"T ABLE TO DO IT QUICKLY)

- even muons and something else in gen_(NOT SURE WHAT THIS MEANS ??)

- Put more converted photon variables (such as track parameters) (TRACK PARAMETERS d0,nhits,Chi2/dof,dz DONE)(Also add pt, eta, phi)
- Put more converted track variables (hits, chi2, some errors...)(WHAT IS A CONVERTED TRACK ??)(Nothing, the same as the previous point)
- Add index to pho of convpho + number of convpho (INDEX TO PHOTON DONE)
- See cfg file to recompute conversions(DO WE WANT TO RECOMPUTE CONVERSIONS?)(Yes because there were some bugs in the official reconstruction that was carried out)

- Verify variables:
- not filled pho_: bcenergy nbc bordercorr cor (pho_nbc FILLED. PROBABLY DON'T NEED bcenergy SINCE WE HAVE INDICES TO BASIC CLUSTERS FOR EACH PHOTON)bordercorr?? cor?? Just not sure what these are yet

- Check the use of the Preshower(NOT DONE YET)

- Electrons-muons-jets-met(NOT SURE WHAT TO DO HERE??)(We should add electrons, muons, jets and met, we will get electrons from Matteo, the rest can be taken from CMS1 S and T)

- Add more track variables for selection (Matt: d0<1mm Chi2/dof<10, Hits >=8 Delta dz<5mm )

- Check status of twophoton BG production(NOT SURE WHAT THIS MEANS)(I have asked and I am waiting for a response)

- I think for all tracks we should also put at least the error on 1/pt

- At some point organize disk space
- We made new TkIsol? function, to be improved

- Script to add new ityp and new reduction files (maybe only one type at a time, probably not)

- See well normalization + requirements on rejection
- Check well matching efficiency with MC thruth
- Match only to photons

- Isolation studies
- Energy scale and energy resolution studies

- running_at_fnal.txt: Marco's way to run at FNAL

- ntp.txt: New root tree format Version 0

I | Attachment | Action | Size | Date | Who | Comment |
---|---|---|---|---|---|---|

tarz | GlobeAnalyzer.tarz | manage | 21.2 K | 2008/02/12 - 19:21 | MarcoPieri | last version of the code, to be put in cvs |

egamma_10_11_08.pdf | manage | 817.3 K | 2008/11/09 - 18:00 | MatteoSani | ||

txt | ntp.txt | manage | 14.2 K | 2008/02/06 - 16:52 | MarcoPieri | New root tree format Version 0 |

txt | ntp_v1.txt | manage | 19.8 K | 2008/02/08 - 10:20 | MarcoPieri | |

txt | running_at_fnal.txt | manage | 5.7 K | 2008/01/22 - 17:52 | MarcoPieri | Marco's way to run at FNAL |

txt | running_with_crab.txt | manage | 0.7 K | 2008/01/22 - 17:54 | MarcoPieri | Old version not working yer, put just for reference |

Topic revision: r44 - 2010/02/17 - 17:24:59 - ElizabethDusinberre

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.

Ideas, requests, problems regarding TWiki? Send feedback

Ideas, requests, problems regarding TWiki? Send feedback