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