sviluppi

Transcript

sviluppi
Sviluppo del MC per la simulazione del
dimostratore di radiografia muonica
Germano Bonomi
gBonomi - università di brescia
28 settembre 2006
punto di partenza
1) MC Geant
- generatore di cosmici, 2 camere, 1 container pieno di materiale organico
- output: file di geometria, file di dati (informazioni hit + MC)
struttura pensata per MC/dati reali
2) programma di analisi dati
- input: file di geometria e file di dati
- output: ntupla di root (per le visualizzazioni)
3) primi risultati
- risoluzioni delle due camere nelle 2 viste in varie configurazioni
(aria, ferro, con/senza effetti fisici, ecc.)
gBonomi - università di brescia
28 settembre 2006
sviluppi
sviluppo 1) sistemazione della configurazione delle celle
- da 3 mm/alluminio - 1 cm di argon
a 1,5 mm/alluminio - 1,15 cm di argon
PRIMA
ORA
sviluppo 2) completamento della geometria (come da disegno)
gBonomi - università di brescia
28 settembre 2006
sviluppi
sviluppo 3) consolidamento dell’ntupla da analisi
gBonomi - università di brescia
28 settembre 2006
svilippi - confronti
sviluppo 4) MC vs CMS: utilizzo del MC per un primo confronto con i dati reali (configurazione CMS)
MC
90 cm di Fe tra le due camere
(45 cm di spessore del container)
generatore “normale”
gBonomi - università di brescia
28 settembre 2006
sviluppo 4) MC vs CMS
MC
gBonomi - università di brescia
DATI
28 settembre 2006
sviluppo 4) MC vs CMS
MC
MC
DATI
DATI
generatore “normale”
gBonomi - università di brescia
generatore “ad-hoc”
(spettro CMS misurato)
28 settembre 2006
sviluppi
sviluppo 4) ) MC vs CMS - CONCLUSIONI
il confronto con i dati di CMS è molto sensibile allo spettro in ingresso!!!
spettro misurato da CMS non è quello in ingresso alla camera 1 (CMS)
lo spettro misurato ha qualche cut-off in impulso (accettanza/campo magnetico)?
difficile fare il “tuning” del MC su questi dati
confronti “a spanne” comunque dimostrano che I risultati sembrano ragionevoli
sviluppo 5) MC vs test 10 cm: utilizzo possibile confronto con la configurazione attuale di test
- 40x40x10 cm di Fe tra le camere (al centro) - le due camere distano 19 cm tra loro
gBonomi - università di brescia
28 settembre 2006
sviluppi
sviluppo 5) MC vs test 10 cm: primi output (tuning in corso d’opera)
“punto d’impatto” dei cosmici che “passano” per il blocco
“punto d’impatto” =
“passano” =
primo HIT (x & z) rivelato dalla camera
| ultimo HIT camera sopra | < 20 cm
| primo HIT camera sotto | < 20 cm
x vs z “d’impatto” dei cosmici che “passano” per il blocco
gBonomi - università di brescia
28 settembre 2006
sviluppi
sviluppo 5) MC vs test 10 cm
risoluzioni delle camere
(MC - fit)
gBonomi - università di brescia
28 settembre 2006
sviluppi
5) primi output
X view (phi)
cosmici che hanno attraversato il blocco
Z view (theta)
gBonomi - università di brescia
X view (phi)
cosmici che non hanno attraversato il blocco
Z view (theta)
28 settembre 2006
conclusioni
1) MC è pronto per simulare le configurazioni di presa dati (generazione di dati)
“tuning” sulla configurazione di test
2) la struttura per il “processamento” dei dati è pronta
3) lo scheletro il programma di analisi (dai dati RAW alle ntuple) è pronto
4) da fare:
sviluppare gli algoritmi di “analisi dei dati”
- come processare gli hit per “vedere” elementi ad alto Z dentro il container
- come “visualizzarli”
5) al di là della “precisione” con cui viene simulato l’apparato sperimentale il MC può essere
utilizzato a tale scopo
gBonomi - università di brescia
28 settembre 2006
GEOMETRIA E RIVELATORI
o) container: dimensioni 2.2 x 4.55 x 2.26 m3 (WxLxH),
pareti in ferro di 3 mm
carico di: aria
o) rivelatori: camere CMS
dimensioni 2.5 x 3.0 m2 (WxL)
forniscono il punto (x, oppure z) con risoluzione di 250 μm
- camera contenente 12 piani di rivelazione (aria) (8 che danno la X, 4 che danno la Z)
- ogni piano: “case” di alluminio, e 1,15 cm di argon gas (tra piani 1,5 mm)
piano di rivelazione “virtuale” (senza fili) nella y intermedia
hit MC “estrapolati” al centro dei rivelatori
gBonomi - università di brescia
28 settembre 2006
MC OUTPUT
FILE CON LA “GEOMETRIA”
o) muRadio.geo:
n. di camere, n. di piani x camera, tipo di layer x camera (X o Z), Y del piano
i=0, i<nCamere i=0, i<nCamere
n. camere
i=0, i<nCamere
n. piani
n. piani
n. piani
Y piano
Y piano
….
Y piano
i=0, i<nPiani
Y piano
Y piano
….
Y piano
i=0, i<nPiani
Y piano
Y piano
….
Y piano
i=0, i<nPiani
tipo
tipo
….
tipo
i=0, i<nPiani
tipo
tipo
….
tipo
i=0, i<nPiani
tipo
tipo
….
tipo
i=0, i<nPiani
/*############################################################################*/
/* ------------------------>
the geometry file - INIT
<--- */
//Writing Y position of the detector into the geometry file
/* Opening the geometry file */
char geoHeader[50];
geoFile.open("muRadio.geo", ios::out | ios::binary);
sprintf(geoHeader,"muRadio geometry file");
geoFile.write(geoHeader,sizeof(char)); // Header
nCham++;
geoFile.write((char *)&nCham,sizeof(nCham)); // Number of chambers
geoFile.write((char *)&nLayerChamber,sizeof(nLayerChamber)); // Number of layers per chamber
geoFile.write((char *)&posLayers,sizeof(posLayers)); // Position of the layers (detector planes)
geoFile.write((char *)&layerXorZ,sizeof(layerXorZ)); // Type of layer (0=X coordinate,2=Z coordinate)
geoFile.close(); // Closing geometry file
/* ------------------------>
the geometry file END
<--- */
/*############################################################################*/
gBonomi - università di brescia
28 settembre 2006
MC OUTPUT FILE di DATI RAW
o) muRadio_0.dat:
- (RUN HEADER run number, data di inizio, tipo di run)
- eventi ……..
- “EOR”
/*################################################################################*/
/* -------------->
writing event Header - INIT
<----------------*/
char boe[4];
sprintf(boe,"BOE");
rawFile.write((char *)&boe,sizeof(boe));
evtHEADER evtHeader;
evtHeader.number = evt->GetEventID();
sprintf(evtHeader.type,"MC");
evtHeader.nHits = nHitChamber1+nHitChamber2;
rawFile.write((char *)&evtHeader,sizeof(evtHeader));
/* -------------->
writing event Header - END
<----------------*/
/*################################################################################*/
/* -------------->
writing mu generated momentum - INIT
<----------------*/
G4ThreeVector priCos;
G4double muMomAbs,muGenMom[4];
priCos = myGenerator->GetPrimaryCos();
muMomAbs = myGenerator->GetPrimaryMom();
for(int i=0; i<3; i++) muGenMom[i] = priCos[i];
muGenMom[3] = muMomAbs;
// printf("Muon momentum %f (MeV)\n",muMomAbs/GeV);
rawFile.write((char *)&muGenMom,sizeof(muGenMom));
/* --------------> writing mu momentum at chambers - INIT
<----------------*/
G4ThreeVector inDir;
G4double
muMom1[4]={0.,0.,0.,0.};
if(nHitChamber1!=0) {
muRadioChamberHit* aHit = (*Hchamber1)[0]; // First hit
inDir = aHit->GetinDir();
muMom1[3] = aHit->GetMom();
for(int i=0; i<3; i++) muMom1[i] = inDir[i];
}
rawFile.write((char *)&muMom1,sizeof(muMom1));
G4double
muMom2[4]={0.,0.,0.,0.};
if(nHitChamber2!=0) {
muRadioChamberHit* aHit = (*Hchamber2)[0]; // First hit
inDir = aHit->GetinDir();
muMom2[3] = aHit->GetMom();
for(int i=0; i<3; i++) muMom2[i] = inDir[i];
}
rawFile.write((char *)&muMom2,sizeof(muMom2));
/*################################################################################*/
gBonomi - università di brescia
Event header
“BOE”
event number
event type
n. di hit x camera
MC INFO
GENERAZIONE
direzione
| quantità di moto |
MC INFO
IGRESSO CAMERA
direzione
| quantità di moto |
28 settembre 2006
MC OUTPUT
FILE di DATI RAW
i=0, i<nHits
/*################################################################################*/
/* -------------->
writing hit infos - INIT
<----------------*/
//First chamber
G4ThreeVector pos,posMC;
//First chamber
for(int i=0; i<nHitChamber1; i++) {
HIT hit;
muRadioChamberHit* aHit = (*Hchamber1)[i];
hit.chamber = 0;
hit.layer = aHit->GetLayerNumber();
hit.XorZ = myDetector->GetLayerType(hit.chamber,hit.layer); //0 = first chamber
pos = aHit->GetLocalPos();
posMC = aHit->GetPosGen();
hit.coord = pos[hit.XorZ];
hit.coordMC = posMC[hit.XorZ];
rawFile.write((char *)&hit,sizeof(hit));
}
//Second chamber
for(int i=0; i<nHitChamber2; i++) {
HIT hit;
muRadioChamberHit* aHit = (*Hchamber2)[i];
hit.chamber = 1;
hit.layer = aHit->GetLayerNumber();
hit.XorZ = myDetector->GetLayerType(hit.chamber,hit.layer); //1 = second chamber
pos = aHit->GetLocalPos();
posMC = aHit->GetPosGen();
hit.coord = pos[hit.XorZ];
hit.coordMC = posMC[hit.XorZ];
rawFile.write((char *)&hit,sizeof(hit));
}
/* -------------->
writing hit infos - END
<----------------*/
/*################################################################################*/
HIT
camera
piano
tipo piano (X o Z)
coordinata con “smearing” (nei raw n. di filo)
coordinata MC
BOE
evt n.
evt type
n. hit
cx
cy
cz
p
MC-gen
cx
cy
cz
p
MC-cam1
cx
cy
cz
p
MC-cam2
cam
piano
XorZ
coord.
coord.MC
cam
piano
XorZ
coord.
coord.MC
cam
piano
XorZ
coord.
coord.MC
LETTURA RAW FILE --> (analisi dati - MC/reali) --> ROOT OUTPUT (ntupla)
gBonomi - università di brescia
28 settembre 2006