Skip to content
Snippets Groups Projects
Commit 790d7f41 authored by lintao@ihep.ac.cn's avatar lintao@ihep.ac.cn
Browse files

WIP: migrate the ECAL/HCAL collections.

parent 195fbd3b
No related branches found
No related tags found
No related merge requests found
...@@ -244,6 +244,16 @@ StatusCode TotalInvMass::execute() ...@@ -244,6 +244,16 @@ StatusCode TotalInvMass::execute()
_J1CosTheta = -2; _J1CosTheta = -2;
_J2CosTheta = -2; _J2CosTheta = -2;
std::vector<CaloHitColHandler*> hdl_EcalHitColl{
&m_ecalbarrelhitcol,
&m_ecalendcaphitcol
};
std::vector<CaloHitColHandler*> hdl_HcalHitColl{
&m_hcalbarrelhitcol,
&m_hcalendcaphitcol,
&m_hcalotherhitcol
};
std::vector<std::string> EcalHitColl; std::vector<std::string> EcalHitColl;
std::vector<std::string> HcalHitColl; std::vector<std::string> HcalHitColl;
EcalHitColl.push_back("ECALBarrel"); EcalHitColl.push_back("ECALBarrel");
...@@ -257,71 +267,54 @@ StatusCode TotalInvMass::execute() ...@@ -257,71 +267,54 @@ StatusCode TotalInvMass::execute()
try{ try{
for(int t = 0; t< int(EcalHitColl.size()); t++) for(int t = 0; t< int(hdl_EcalHitColl.size()); t++) {
{ const edm4hep::CalorimeterHitCollection* ecalcoll = hdl_EcalHitColl[t]->get();
EVENT::LCCollection * aecalcoll = evtP->getCollection(EcalHitColl[t].c_str()); for(auto hit: *ecalcoll) {
for(int s = 0; s < aecalcoll->getNumberOfElements();s++) // TODO
{ int NLayer = 0;
EVENT::CalorimeterHit * a_hit = dynamic_cast<EVENT::CalorimeterHit*>(aecalcoll->getElementAt(s)); _EcalTotalE += hit.getEnergy();
_EcalTotalE += a_hit->getEnergy();
// UTIL::CellIDDecoder<EVENT::CalorimeterHit> idDecoder(ECALCellIDDecoder);
UTIL::CellIDDecoder<EVENT::CalorimeterHit> idDecoder(ECALCellIDDecoder); // int NLayer = idDecoder(a_hit)["K-1"];
int NLayer = idDecoder(a_hit)["K-1"]; //h_hit->Fill(NLayer,a_hit->getEnergy());
//h_hit->Fill(NLayer,a_hit->getEnergy()); if(NLayer < 6) {
if(NLayer < 6) _EcalEn1 += hit.getEnergy();
{ } else if(NLayer < 12) {
_EcalEn1 += a_hit->getEnergy(); _EcalEn2 += hit.getEnergy();
} } else if(NLayer < 18) {
else if(NLayer < 12) _EcalEn3 += hit.getEnergy();
{ } else if(NLayer < 24) {
_EcalEn2 += a_hit->getEnergy(); _EcalEn4 += hit.getEnergy();
} } else{
else if(NLayer < 18) _EcalEn5 += hit.getEnergy();
{ }
_EcalEn3 += a_hit->getEnergy();
}
else if(NLayer < 24)
{
_EcalEn4 += a_hit->getEnergy();
}
else{
_EcalEn5 += a_hit->getEnergy();
}
}
} }
}
for(int t2 = 0; t2< int(HcalHitColl.size()); t2++)
{ for(int t2 = 0; t2< int(hdl_HcalHitColl.size()); t2++) {
EVENT::LCCollection * ahcalcoll = evtP->getCollection(HcalHitColl[t2].c_str()); const edm4hep::CalorimeterHitCollection* hcalcoll = hdl_HcalHitColl[t2]->get();
for(int s = 0; s < ahcalcoll->getNumberOfElements();s++) for (auto hit: *hcalcoll) {
{ // TODO
EVENT::CalorimeterHit * a_hit = dynamic_cast<EVENT::CalorimeterHit*>(ahcalcoll->getElementAt(s)); int NLayer = 0;
UTIL::CellIDDecoder<EVENT::CalorimeterHit> idDecoder(ECALCellIDDecoder); int HLayer = NLayer+30;
int NLayer = idDecoder(a_hit)["K-1"]; // UTIL::CellIDDecoder<EVENT::CalorimeterHit> idDecoder(ECALCellIDDecoder);
int HLayer=NLayer+30; // int NLayer = idDecoder(a_hit)["K-1"];
//h_hit->Fill(HLayer,a_hit->getEnergy());
_HcalTotalE += a_hit->getEnergy(); //h_hit->Fill(HLayer,a_hit->getEnergy());
if(NLayer < 10) _HcalTotalE += hit.getEnergy();
{ if(NLayer < 10) {
_HcalEn1 += a_hit->getEnergy(); _HcalEn1 += hit.getEnergy();
} } else if(NLayer < 20) {
else if(NLayer < 20) _HcalEn2 += hit.getEnergy();
{ } else if(NLayer < 30) {
_HcalEn2 += a_hit->getEnergy(); _HcalEn3 += hit.getEnergy();
} } else if(NLayer < 40) {
else if(NLayer < 30) _HcalEn4 += hit.getEnergy();
{ } else {
_HcalEn3 += a_hit->getEnergy(); _HcalEn5 += hit.getEnergy();
} }
else if(NLayer < 40)
{
_HcalEn4 += a_hit->getEnergy();
}
else{
_HcalEn5 += a_hit->getEnergy();
}
}
} }
}
}catch(lcio::DataNotAvailableException err) { } }catch(lcio::DataNotAvailableException err) { }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment