1 #include "ERHe10Reconstructor.h" 7 #include "FairRootManager.h" 9 #include "FairRuntimeDb.h" 11 #include "ERParticle.h" 17 : FairTask(
"ER He10 reconstruction scheme")
19 ,fRTelescopeEvent(NULL)
26 : FairTask(
"ER He10 reconstruction scheme", verbose)
40 void ERHe10Reconstructor::SetParContainers()
43 FairRun* run = FairRun::Instance();
44 if ( ! run ) Fatal(
"SetParContainers",
"No analysis run");
46 FairRuntimeDb* rtdb = run->GetRuntimeDb();
47 if ( ! rtdb ) Fatal(
"SetParContainers",
"No runtime database");
55 FairRootManager* ioman = FairRootManager::Instance();
56 if ( ! ioman ) Fatal(
"Init",
"No FairRootManager");
58 fRTelescopeEvent = (ERTelescopeRecoEvent*)ioman->GetObject(
"TelescopeRecoEvent.");
60 Fatal(
"Init",
"Can`t find branch in input file!");
61 fBeamDetEvent = (ERBeamDetRecoEvent*)ioman->GetObject(
"BeamDetRecoEvent.");
63 Fatal(
"Init",
"Can`t find branch in input file!");
66 ioman->Register(
"He10RecoEvent.",
"Analyze",fOutEvent, kTRUE);
75 ERParticle* projectile = &(fBeamDetEvent->projectile);
81 Float_t Mmis = fMisMass;
83 TVector3 Pmis(projectile->Part.Px()-ej11->Part.Px(),
84 projectile->Part.Py()-ej11->Part.Py(),
85 projectile->Part.Pz()-ej11->Part.Pz());
88 Float_t Emis = TMath::Sqrt(Pmis.Mag2()+pow(Mmis,2));
90 Float_t Tmis = Emis-Mmis;
92 Float_t Exmis = projectile->Part.E()+target->Mass-ej11->Part.E()-Tmis-Mmis;
95 Emis = TMath::Sqrt(Pmis.Mag2()+pow(Mmis+Exmis,2));
96 Tmis = Emis-Mmis-Exmis;
97 Exmis = projectile->Part.E()+target->Mass-ej11->Part.E()-Tmis-Mmis;
101 mis.Excitation = Exmis;
102 mis.Part.SetVect(Pmis);
103 mis.Part.SetE(Tmis+Exmis+Mmis);
104 fOutEvent->mis11 = mis;
106 Emis = projectile->Part.E()+target->Mass-ej11->Part.E();
107 Exmis= sqrt(pow(Emis,2)- Pmis.Mag2()) - Mmis;
110 misNew.Excitation = Exmis;
111 misNew.Part.SetVect(Pmis);
112 misNew.Part.SetE(Emis);
113 fOutEvent->mis11n = misNew;
116 projectile->Part.Boost(-CM0->Part.BoostVector());
117 target->Part.Boost(-CM0->Part.BoostVector());
118 ej11->Part.Boost(-CM0->Part.BoostVector());
119 mis.Part.Boost(-CM0->Part.BoostVector());
120 misNew.Part.Boost(-CM0->Part.BoostVector());
121 fOutEvent->mis11cm0 = mis;
122 fOutEvent->mis11ncm0 = misNew;
123 fOutEvent->ej11cm0 = (*ej11);
124 fOutEvent->projcm0 = (*projectile);
125 fOutEvent->targetcm0 = (*target);
ERTelescopeRecoEvent * fRTelescopeEvent
virtual InitStatus Init()
virtual void Exec(Option_t *opt)