ILC Análisis
De e-Ciencia
Tabla de contenidos |
Entorno GRID
Información disponible en http://grid.desy.de//ilc
Suponiendo que tenemos un certificado válido (en caso contrario contactar con Rafael Marcos) hemos de registrarnos como usuarios de las VO ilc o calice:
https://grid-voms.desy.de:8443/vo/ilc/vomrs o https://grid-boms.desy.de:8443/voms/calice, respectivamente.
Para empezar a trabajar, nos creamos un proxy: (todavía no disponible en egaes, ok en egeeui01)
voms-proxy-init -voms ilc
--working--
Descarga de datasets
La página http://ilcsoft.desy.de/portal/data_samples/ contiene enlaces a los diferentes datasets generados, simulados y reconstruidos. Las páginas contienen el nombre lógico del fichero (LFN) que podrá descargarse via GRID:
lcg-cp -v --vo ilc lfn:/nombre/logico/que/hemos/encontrado/en/las/paginas nombre_local_del_fichero
--working--
Descripción de Paquetes
MarlinReco
(Información extraida de http://ilcsoft.desy.de/MarlinReco/v00-05/doc/manual_html/manual.html)
El paquete de software MarlinReco contiene los diferentes procesadores útiles para la reconstrucción, por ejemplo, procesadores del visor de sucesos (CEDViewer y GenericViewer), procesadores de ajuste de trazas en las TPC(LEPTrackingProcessor), etc...
Primer Análisis
- Datasets utilizados: Muones generados con Particle gun de 1 a 50 GeV y entre 1 y 40 grados en θ.
- Localizacion de Archivos: lfn:/grid/ilc/mc-2008/simulated/ILD_00_test/singleparticle/M-06-07-pre01_ppr002_muon_Theta1-40_1-50GeV__ILD_SinglePar_00$i.tar.gz, i=1,..10
- Localización de .slcio: lfn:/grid/ilc/mc-2008/simulated/ILD_00_test/singleparticle/M-06-07-pre01_ppr002_muon_Theta1-40_1-50GeV__ILD_SinglePar_00$i.slcio, i=1,..10
- (Página de búsqueda de datasets)
- Descargadas en egeeui01 ~/datasets_ILC
- Datasets utilizados: Muones generados con Particle gun de 1 a 50 GeV y entre 1 y 40 grados en θ.
Tras la descompresión de los .tar.gz, encontramos 6 ficheros en cada subdirectorio creado:
- err, out: ficheros de salida estándard y errores en la ejecución (via grid) de la simulación.
- <nombre>.g4 : fichero que contiene los parámetros utilizados en Mokka (Geant4).
- <nombre>.log: fichero que contiene los mensajes de salida de Mokka (Geant4).
- <nombre>.steer: fichero de órdenes de Mokka.
- GearOutput.xml: fichero de geometría (GEAR) del detector ILD_00 (en nuestro caso). Éste fichero podemos utilizarlo cuando lancemos Marlin.
Contenido de los datasets
Podemos mostrar el contenido de los datasets utilizando diferentes herramientas.
dumpevent
La herramienta dumpevent muestra el contenido de un fichero en formato lcio, nos servimos de ella para comprobar que los ficheros que nos hemos descargado sólo contienen hasta la simulación del paso de las partículas a través del detector ILD.
duarte@egaes07 test]$ dumpevent ../datasets_ILC/SinglePar_muon_Theta1-40_1-50GeV_0001.slcio 2
SIOReader::getEventMap() recreating event map for direct access ...
SIOReader::getEventMap() : done
============================================================================
Event : 1 - run: 0 - timestamp 0 - weight 1
============================================================================
date: 01.01.1970 00:00:00.000000000
detector : ILD_00
event parameters:
collection name : ETDCollection
parameters:
--------------- print out of SimTrackerHit collection ---------------
flag: 0xb00
LCIO::THBIT_BARREL : 0
LCIO::THBIT_MOMENTUM : 0
cellID[indices] | position (x,y,z) | dEdx | time | PDG of MCParticle
-----------------------------------------
WARNING: CellIDDecoder - no CellIDEncoding parameter in collection ! -> using default : "byte0:8,byte1:8,byte2:8,byte3:8"
------------------------------------------
0: 1[byte0:1,byte1:0,byte2:0,byte3:0] | (370.141, 790.693, 2426) | 9.19724e-05 | 8.60581 | 13
1: 2[byte0:2,byte1:0,byte2:0,byte3:0] | (370.338, 791.39, 2428) | 8.59193e-05 |8.61291 | 13
2: 3[byte0:3,byte1:0,byte2:0,byte3:0] | (370.533, 792.088, 2430) | 7.71785e-05 | 8.62 | 13
3: 1[byte0:1,byte1:0,byte2:0,byte3:0] | (360.89, 759.687, 2426) | 0.00025424 | 8.78791 | 11
--------------------------------------------------------------------------------
...
.
Mostramos parte del contenido del suceso 2. Podemos comprobar que el detector es el ILD, que tenemos una colección de SimTrackerHit (es decir, impactos simulados de trazas) en el subdetector ETD, ofreciéndono información de us energía, el tiempo, su posición absoluta y de qué partícula se trata. El fichero completo nos muestra que únicamente tenemos SimTrackerHit, SimCalorimeterHit y MCParticle. Podemos encontrar una descripción detallada de estas clases en [1]. Brevemente,
- La colección MCParticle (que siempre existirá una única por suceso) contiene las partículas del Montecarlo truth que fueron generadas por el generador o que se añadieron (decay in flight) por el programa de simulación, Mokka.
- La clase genérica (y por tanto virtual) SimCalorimeterHit almacena colecciones de impactos en los calorímetros a partir del programa de simulación. Cada subdetector creará una colección de este tipo, por ejemplo, el ECAL de las tapas nos creará una colección de impactos en sus calorímetros llamada EcalEndcapCollection.
- La clase genérica SimTrackerHit almacena impactos de los subdetectores de trayectorias, por ejemplo el subdetector TPC, creará la colección de trazas simuladas TPCCollection.
Visor de sucesos
Para poder utilizar el visor de sucesos, es necesario cargar la librería del visor.
duarte@egaes07 test]$ export MARLIN_DLL=$MARLIN_DLL:libCEDViewer.soSi ejecutamos Marlin -x, nos devolverá un ejemplo de fichero steer con todos los procesadores que tenemos cargados (tanto estática como dinámicamente); cada vez que carguemos un nuevo procesador, via la variable de entorno MARLIN_DLL, nos aparecerá en el fichero steer de ejemplo. Así, si lo ejecutamos después de incluir la librería del visor, veremos que disponemos de unos cuantos procesadores relacionados con el visor de sucesos: GenericViewer, CEDViewer, VertexViewer, DrawMCParticles, ... . Centrándonos en CEDViewer, activamos el procesador en la etiqueta execute del fichero steer, y elegimos que colecciones vamos a visualizar (las colecciones que podremos dibujar, podemos extraerlas mediante dumpevent
dumpevent filename n|grep 'collection name'
La siguientes figuras muestran un suceso donde hemos cargado todos las colecciones que hemos sido capaces de encontrar:
Jas3
También es posible observar el contenido de un fichero lcio mediante el Toolkit de análisis jas3. Ver [2] para información de uso (hasta este momento, todavía no he sido capaz de ver un suceso generado en el detector ILD, es posible que sea debido a que no está definido en el plugin de LCIO que he cargado).
La observación de los ficheros con cualquiera de los métodos descritos, nos confirma que nos hemos quedado en el proceso de simulación del paso de las partículas por el detector. Necesitamos digitalizar los impactos simulados, es decir, simular la respuesta de la electrónica de los subdetectores. Con esto, ya podemos tratar los datos como si fueran reales y proceder a la reconstrucción.
Digitalización
(Información extraida de [3])
El proceso de digitalización de los hits simulados se lleva a cabo con diversos procesadores de Marlin.
- FTDDigiProcessor
- TPCDigiProcessor
- VTXDigiProcessor
- MokkaCaloDigi
- SimpleCaloDigi
- ...
Los procesadores de digitalización de los calorímetros, recogen un SimCalorimeterHit y produce un CalorimeterHit. Los depósitos de energía de las capas activas de los calorímetros se convierten en energía físicas.
La digitalización de los impactos en las TPC se realiza mediante el smearing en las direcciones r − φ y en z, convirtiendo un SimTrackerHit en un TrackerHit.
Para la digitalización del sistema de tracking en la zona forward y el detector de vértices no disponemos más que de procesadores dummy que no aplican ningún smearing; lo único que hacen es convertir los impactos simulados en datos raw. (Creo que esta última afirmación está obsoleta, he comprobado que existen procesadores que aplican smearing)
Parámetros de los procesadores
- FTDigiProcessor
- Procesador descrito en [4]. Produce una colección de TrackerHit de los FTD (Forward Tracker Discs) a partir de una colección de SimTrackerHit de los FTD. Input: require colecciones de SimTrackerHits en FTD. Output: produce una colección de TrackerHits en FTD digitalizados.
- Parametros:
- CollectionName: El nombre de la colección de entrada SimTrackerHit de FTD (por defecto ftd01_VXD).
- OutputCollectionName: El nombre de la colección de salida de TrackerHits (por defecto FTDTrackerHits).
- PointResolution: La resolución del punto en (x,y) para los detectores planares FTD, en mm (valor por defecto 0.01).
- RemoveDrays: Cuando activamos este flag (1), los impactos producidos por delta-electrones se borran de la colección de salida (valor por defecto 0).
- MomentumCutForDRays: El corte superior del momento de los delta-electrones, en MeV (valor por defecto 10).
- Input: FTDCollection
- Output: FTDTrackerHits
- Mantenemos el resto de parámetros por defecto. Activamos el módulo en el fichero steer y comprobamos que todo funciona perfectamente.
- TPCDigiProcessor
- Procesador descrito en [5]. El procesador depende de Circle.h del paquete MarlinUtil, así pues hay que cargar la librería
export MARLIN_DLL=$MARLIN_DLL:libMarlinUtil.so
- Este digitalizador produce TrackerHit a partir de SimTrackerHit de las TPC, mediante un smearing gaussiano en la proyección del plano r − φ y z. Se identifican los impcatos dobles pero todavía no se añaden a la colección. Esto puede cambiar cuando se defina un criterio de separación. Las resoluciones están definidas en el fichero steering de 'GEAR. La resolución en r − φ se calcula de acuerdo a:
, siendo σ0 una constante, D el coeficiente de difusión y Ldrift es la longitud de deriva. Por el momento, la resolución en z se asume independiente de la longitud de deriva. Input: requiere colecciones de SimTrackerHit en las TPC. Output: devuelve una colección de TrackerHits en las TPC digializados.
- Parametros:
- CollectionName: El nombre de la colección de entrada SimTrackerHit de las TPC (por defecto TPCCollection).
- RejectCellID0: Si rechazamos o no las SimTrackerHits con una identificación de celda igual a 0, Cell ID 0 (por defecto 1)
- TPCTrackerHitsCol: El nombre de la colección de salida de TrackerHits (por defecto TPCTrackerHits).
- ... (Faltan más...coeficientes de difusión, ...) <-- TO DO!!
- Input: TPCCollection
- Output: TPCTrackerHits
- Hemos mantenido todos los parámetros con los valores por defecto. No ha habido ningún problema.
- VTXDigiProcessor
- Procesador descrito en [6]. El procesador produce TrackerHit a partir de SimTrackerHit del detector de vértices, del SET (External Si Tracker??) y del SIT (Intermediate Si Tracker). De acuerdo con la resolución especificada del punto, realiza un smearing gaussiano en la proyección del plano r − φ y z.
- Parametros:
- ...coeficientes de difusión, ...) <-- TO DO!!
- Input: SETCollection SITCollection VXDCollection
- Output: SETTrackerHits SITTrackerHits VTXTrackerHits
- Hemos mantenido todos los parámetros con los valores por defecto. No ha habido ningún problema.
- Para la digitalización de impactos en el detector de vértices, disponemos de 2 procesadores extras: VTXDigitizer y VTXNoiseHits.
- ETDDigiProcessor
- Procesador descrito en [7]. TO DO!!
- Input:ETDCollection
- Otuput:ETDTrackerHit
- MokkaCaloDigi
- Procesador descrito en [8]. Produce colecciones de CalorimeterHit a partir de SimCalorimeterHit del ECAL y del HCAL (Inicialmente utilicé LDCCaloDigi pero es posible que el procesador sea específico para el detector LDC, así que utilizo el procesador MokkaCaloDigi).
- Parametros:
- TODO!!
- Input: EcalBarrelCollection EcalEndcapCollection EcalEndCapRingCollection (ECAL)
- HcalBarrelRegCollection HcalEndCapsCollection HcalEndcapRingsCollection LHcalCollection (HCAL).
- -- Queda pendientes las colecciones PreShower (van aquí?)--
- HcalBarrelRegCollection HcalEndCapsCollection HcalEndcapRingsCollection LHcalCollection (HCAL).
- Output: ECAL HCAL
- Nota que incluyo la digitalización del LHCAL (Low angle Hadronic Calorimeter) en ese módulo. En el procesado, aparece un warning del procesador
[ VERBOSSE "MyMokkaCaloDigi"] WARNING ==> Distance = 1838.5 < 0.001
¿Qué significa?
- SimpleLCalDigi
- ...blablabla...
- Input: LumiCalCollection
- Output: LCAL
- SimpleMuonDigi
- Procesador descrito en [9]. Procesador que digitaliza los detectores de muones; produce CalorimeterHit a partir de SimCalorimeterHit de los sistemas de detección de muones
- Parámetros:
- CalibrMuon: Coeficientes de calibración (por defecto, 31).
- MUONCollection: Coleccion de SimCalorimeterHit de entrada.
- MUONOutputCollection: Nombre de la colección de CalorimeterHit de salida.
- MuonThreshold: Umbral de impacto de muones en GeV (por defecto 0).
- RelationOutputCollection: ...
- Input: MuonBarrelCollection MuonEndCapCollection MuonPlugCollection
- Output: MUON
---Por el momento, no he encontrado un digitalizador del calorímetro del beam---
Reconstrucción
Paso a la reconstrucción de trazas, ver [10] (preferentemente me centraré en la zona forward). Recordamos que tenemos las siguientes colecciones de trazas digitalizadas:
- FTDTrackerHits, trazas en los discos forward del tracker.
- ETDTrackerHits, trazas en los discos del tracker externo?
- TPCTrackerHits, trazas en la cámara de proyección temporal.
- SETTrackerHits, trazas en el tracker externo de silicio.
- SITTrackerHits, trazas en el tracker intermedio de silicio.
- VTXTrackerHits, trazas en el detector de vértices.
- Reconocimiento de patrones
-
- TPC, utilizando el procesador LEPTrackingProcessor ([11]), se realiza una búsqueda, del IP hacia afuera, de secuencias espacialmente contínuas de impactos compatible con la hipótesis de helicidad, y se ajusta dicha secuencia.
- Input: TPCTrackerHits
- Output: TPCTracks
- Problemas: error de excepción de coma flotante --> ( Me olvidé incluir en el steering file el campo magnético: bajo global-> <parameter name="BField"> 3.5</parameter>)
- Detectores de Silicio, el procesador SiliconTracking implementa reconocimiento de patrones combinado para todos los dispositivos traceadores de silicio (VTX, FTD, SIT ( y SET ?)). blabla
- Input: FTDTrackerHits VTXTrackerHits SITTrackerHits
- Output: SiTracks
