1 | ** travail en cours**
|
---|
2 | -> faire un bfield plus rapide
|
---|
3 | -> Track : x,y,z,eta,phi : vertex
|
---|
4 | : x,y,z,eta,phi : calo
|
---|
5 | -> les constructeurs de BlockClasses sont trÚs mal écrits!
|
---|
6 | -> [11:05:29] LoÃŒst Un Ange says:
|
---|
7 | Warning in <TVector3::PseudoRapidity>: transvers momentum = 0! return +/- 10e10
|
---|
8 | ca lui arrive 6 fois, je pense que c'est pas grave mais je ne sais pas si pour vous il faut y faire qq choe
|
---|
9 | -> TrackPropagation::TrackPropagation(const string DetDatacard) {
|
---|
10 | if(DetDatacard="") { }; ///// TODO
|
---|
11 | -> faire un "default" dans SmearUtil, qui sera appelé par le constructeur par défaut, si pas de data card donnée. Changer le ReadDatacard en constructeur
|
---|
12 |
|
---|
13 |
|
---|
14 | To compile :
|
---|
15 | *** ./genMakeFile.tcl > Makefile
|
---|
16 |
|
---|
17 | * check all resolution number and put some reference on them
|
---|
18 | * in smearing functions, should not be some upper value on the eta ? e.g. : if eta < 3 then it is the central calo, else it is the forward calo => put eta<5?
|
---|
19 |
|
---|
20 | delires :
|
---|
21 | - tenir compte des longueurs de radiation ?
|
---|
22 | - mettre une carte des efficacités en eta/phi ?
|
---|
23 | - quid de la construction du détecteur comme un assemblage de petites classes (comme un lego ou comme le beamline d'Hector)
|
---|
24 |
|
---|
25 | Pour les legos:
|
---|
26 |
|
---|
27 | chaque sous détecteur
|
---|
28 | - quel type
|
---|
29 | - couverture en eta
|
---|
30 | - résolution
|
---|
31 | -> ok pour calos et trackers
|
---|
32 | -> quid des RP ?
|
---|
33 |
|
---|
34 |
|
---|
35 | CASTOR arXiv:0706.2641
|
---|
36 | p0 = 1059
|
---|
37 |
|
---|
38 | ZDC = linearity < 2%
|
---|
39 | \sigma/E = 0.7/\sqrt(E) \oplus 0.08 <- positrons
|
---|
40 | \sigma/E = 1.38/\sqrt(E) + 0.13 <- pions
|
---|
41 |
|
---|
42 | stdhep.ps -> page9 = HEPCHG(ID) : get charge for particle ID
|
---|
43 |
|
---|
44 | ne pas oublier de vérifier que la fonction SmearHadron doit avoir un sqrt à la fin
|
---|
45 |
|
---|
46 | si on a une liste de fichier input avec différents types de fichiers (root et hep par exemple), ça va crasher !
|
---|
47 |
|
---|
48 | attention à CalTower.hh qui est hyper spécifiqueà CMS, aprÚs les changements. comment introduire ça dans la carte?
|
---|
49 |
|
---|
50 |
|
---|
51 | * attention : Trigger::
|
---|
52 | * void TriggerBit::PrintTrigCondition(string LogName,int i)
|
---|
53 | --> il y a a déjà un i défini ailleurs dans la fonction
|
---|
54 | * Dans la lecture de la carte, on ne vérifie pas qu'il y a NTOWER+1 valeurs pour les TOWER_ETA_EDGE et NTOWER pour TOWER_DPHI
|
---|
55 |
|
---|
56 | * dans RESOLution
|
---|
57 | TRACK_eff = 100; ???
|
---|
58 | ligne 60 de SmearUtil.cc
|
---|
59 |
|
---|
60 |
|
---|
61 | code pile-up FAMOS
|
---|
62 | // How many pile-up events?
|
---|
63 | 174 int PUevts = (int) random->poissonShoot(averageNumber_);
|
---|
64 | 175
|
---|
65 | 176 // Get N events from random files
|
---|
66 | 177 for ( int ievt=0; ievt<PUevts; ++ievt ) {
|
---|
67 | 178
|
---|
68 | 179 // Draw a file in a ramdom manner
|
---|
69 | 180 unsigned file = (unsigned) (theNumberOfFiles * random->flatShoot());
|
---|
70 | 181 /*
|
---|
71 | 182 if ( debug )
|
---|
72 | 183 std::cout << "The file chosen for event " << ievt
|
---|
73 | 184 << " is the file number " << file << std::endl;
|
---|
74 | 185 */
|
---|
75 | 186
|
---|
76 | 187 // Smear the primary vertex and express it in mm (stupid GenEvent convention...)
|
---|
77 | 188 theVertexGenerator->generate();
|
---|
78 | 189 HepMC::FourVector smearedVertex =
|
---|
79 | 190 HepMC::FourVector(theVertexGenerator->X()*10.,
|
---|
80 | 191 theVertexGenerator->Y()*10.,
|
---|
81 | 192 theVertexGenerator->Z()*10.,
|
---|
82 | 193 0.);
|
---|
83 | 194 HepMC::GenVertex* aVertex = new HepMC::GenVertex(smearedVertex);
|
---|
84 | 195 evt->add_vertex(aVertex);
|
---|
85 | 196
|
---|
86 | 197 // Some rotation around the z axis, for more randomness
|
---|
87 | 198 double theAngle = random->flatShoot() * 2. * 3.14159265358979323;
|
---|
88 | 199 double cAngle = std::cos(theAngle);
|
---|
89 | 200 double sAngle = std::sin(theAngle);
|
---|
90 | 201
|
---|
91 |
|
---|
92 |
|
---|
93 | In src/BField
|
---|
94 | -> la pseudorapidité est calculée à la main via
|
---|
95 | Eta_t = log( (p+Pz_t)/(p-Pz_t) )/2.;
|
---|
96 | et on en déduit Theta_t
|
---|
97 | if(p>0) Theta_t = acos(Pz_t/p); else Theta_t=0;
|
---|
98 |
|
---|
99 |
|
---|
100 |
|
---|
101 |
|
---|
102 | Todo:
|
---|
103 | - dans ParticleUtil
|
---|
104 | eta,phi et eta_calo,phi_calo
|
---|
105 |
|
---|